The Web Service Browser Automatic Client Generation and Efficient Data Transfer for Web Services Steffen Heinzl, Markus Mathes, Thilo Stadelmann, Dominik.

Slides:



Advertisements
Similar presentations
1. XP 2 * The Web is a collection of files that reside on computers, called Web servers. * Web servers are connected to each other through the Internet.
Advertisements

Chapter 16 Graphical User Interfaces
Remote Educational Programming Of Robots (REPOR) Tord Fauskanger Aurelie Aurilla Bechina Arntzen Dag Samuelsen Buskerud University College.
19 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Developing Web Services.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
4 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: Servlets.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
6 Copyright © 2005, Oracle. All rights reserved. Building Applications with Oracle JDeveloper 10g.
17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
Click to edit Master title style Page - 1 OneSky Teams Step-by-Step Online Corporate Communication Support 2006.
XP New Perspectives on Microsoft Office Word 2003 Tutorial 7 1 Microsoft Office Word 2003 Tutorial 7 – Collaborating With Others and Creating Web Pages.
Introduction to HTML, XHTML, and CSS
Making the System Operational
Enterprise Java and Data Services Designing for Broadly Available Grid Data Access Services.
Eldas 1.0 Enterprise Level Data Access Services Design Issues, Implementation and Future Development Davy Virdee.
Bringing Procedural Knowledge to XLIFF Prof. Dr. Klemens Waldhör TAUS Labs & FOM University of Applied Science FEISGILTT 16 October 2012 Seattle, USA.
View-Based Application Development Lecture 1 1. Flows of Lecture 1 Before Lab Introduction to the Game to be developed in this workshop Comparison between.
1 NatQuery 3/05 An End-User Perspective On Using NatQuery To Extract Data From ADABAS Presented by Treehouse Software, Inc.
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
4. Internet Programming ENG224 INFORMATION TECHNOLOGY – Part I
Overview Environment for Internet database connectivity
© Telcordia Technologies 2004 – All Rights Reserved AETG Web Service Tutorial AETG is a service mark of Telcordia Technologies. Telcordia Technologies.
Configuration management
Software change management
1 A Test Automation Tool For Java Applets Testing of Web Applications TATJA Program Demonstration Conclusions By Matthew Xuereb.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
1 1 Mechanical Design and Production Dept, Faculty of Engineering, Zagazig University, Egypt. Mechanical Design and Production Dept, Faculty of Engineering,
In The Name Of Allah, The Most Beneficent, The Most Merciful
XP New Perspectives on Introducing Microsoft Office 2003 Tutorial 1 1 Using Common Features of Microsoft Office 2003 Tutorial 1.
Chapter 11: The X Window System Guide To UNIX Using Linux Third Edition.
1 What is JavaScript? JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language A scripting language is a lightweight.
25 July, 2014 Hailiang Mei, TU/e Computer Science, System Architecture and Networking 1 Hailiang Mei Remote Terminal Management.
CAR Training Module PRODUCT REGISTRATION and MANAGEMENT Module 2 - Register a New Document - Without Alternate Formats (Run as a PowerPoint show)
The World Wide Web. 2 The Web is an infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that.
Individual Assisted Living Planning and Rate Negotiation Tool Testing Version Sponsored by Aging and Adult Services MN Department of Human Services Testing.
31242/32549 Advanced Internet Programming Advanced Java Programming
Executional Architecture
Getting Familiar with Web Pages 1 2 The Internet Worldwide collection of interconnected computer networks that enables businesses, organizations, governments,
Macromedia Dreamweaver MX 2004 – Design Professional Dreamweaver GETTING STARTED WITH.
Pasewark & Pasewark Microsoft Office XP: Introductory Course 1 INTRODUCTORY MICROSOFT WORD Lesson 8 – Increasing Efficiency Using Word.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
® Microsoft Office 2010 Browser and Basics.
Services Course Windows Live SkyDrive Participant Guide.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
A1.1 Assignment 1 “Deploying a Simple Web Service” ITCS 4010/5010 Grid Computing, UNC-Charlotte B. Wilkinson, 2005.
Presented by: HCN Clinical Operations Team. 2 TopicPage Top Reasons to have and use the Patient Portal3 Sample Portal Websites4 Portal 1016 Meaningful.
South Dakota Library Network MetaLib User Interface South Dakota Library Network 1200 University, Unit 9672 Spearfish, SD © South Dakota.
Chapter 8 Improving the User Interface
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
CIS101 Introduction to Computing Week 05. Agenda Your questions CIS101 Survey Introduction to the Internet & HTML Online HTML Resources Using the HTML.
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Client/Server Architectures
INTRODUCTION TO WEB DATABASE PROGRAMMING
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
AJAX Chat Analysis and Design Rui Zhao CS SPG UCCS.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
JavaScript & jQuery the missing manual Chapter 11
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
Interactive Workflows Branislav Šimo, Ondrej Habala, Ladislav Hluchý Institute of Informatics, Slovak Academy of Sciences.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
Labs: Create, deploy and test a simple web service
Processes The most important processes used in Web-based systems and their internal organization.
Presentation transcript:

The Web Service Browser Automatic Client Generation and Efficient Data Transfer for Web Services Steffen Heinzl, Markus Mathes, Thilo Stadelmann, Dominik Seiler, Marcel Diegelmann, Helmut Dohmann, Bernd Freisleben Department of Mathematics and Computer Science, University of Marburg Deptartment of Applied Computer Science, University of Applied Sciences Fulda

Outline Prologue – the Motivation for Using Services as a User Problems that Occur when Using Web Services Requirements for the Solution Web Service Browser Components WSDL Parser/Interpreter & Model User Interface Generator Execution Engine Result Presentation Implementation Issues Part of Something Big: Multimedia SOA Epilogue – an Audio Resynthesis Use Case Conclusion and Future Work 2

Prologue - the Motivation for Using Services as a User Im working in automatic speech processing I want to provide the community with useful tools How to distribute them? MATLAB®? => expensive, not available everywhere C(++)? => cant care for compilation on various platforms Web Service & automatic interface seem very convenient This is a useful 2nd application of services besides web-based libraries It is focussed on users, not on programmers Or: on programmers wishing to debug during development 3

Problems that Occur when Using Web Services If you search for WSDL files on the Web, often clients cannot be found. Non-computer experts can hardly work with the WSDL information alone. Computer scientists implement their own client Command line tools like WSDL2Java which generates stubs, that are used as a basis to program the client. Graphical tools (e.g. from the Eclipse WTP project) to complex for ordinary computer users ordinary users need an easy-to-use GUI without installing complex software first 4

Problems that Occur when Using Web Services (2) Portals only partially solve the problem since they only provide access to web service clients. so why dont we integrate web services into the browser? Idea: WSDL files should become part of the web! when a user surfs to a WSDL file, a GUI is generated from the WSDL that helps him to invoke the service Datatransfers should be integrated into the service invocation User does not need to "learn" data transfer mechanisms 5

Requirements for the Solution Familiar Environment for accessing service-oriented Web/Grid Web Browser Web Browser should understand WSDL files Web Browser renders WSDL just like HTML by generating a UI. Service Developer does not need to develop GUI. Service Provider does not need to maintain portal. Data transfers can be described using the communication policy and implemented using Flex-SwA. User does not need to "learn" data transfer mechanisms 6

Requirements for the Solution (2) 7

Web Service Browser Components

WSDL Parser/Interpreter & Model WSDL Parser and Interpreter based on self-written XML2Java Model Generator. Model is trained at implementation time One Java class for each XML element in an XML file Constitutes a best practice model Becomes finer the more input data it gets Reflects the union of the structures of all XML example files Is only as complex as the files to be processed. If the model is not sufficient for a specific WSDL file, it can simply be extended by being fed with the file.

User Interface Generator Graphical user interface is generated from WSDL UI Generator Service can be service on the web or directly integrated into browser choose between local and remote processing choose between different providers for best graphical representation 10

Execution Engine Actually invokes service with given parameters Local or remote component? Local processing: Data need not be transferred twice Execution engine should process SOAP encoded messages, so encoding must only be done once Remote processing: Data has to be transferred to component and then transferred to service Certificates have to be placed on remote component 11

Result Presentation Displays results in human-readable manner Graphical elements are generated from the WSDL operation's output messages Local or remote component user selects provider with best graphical representations MIME type plugins can be used to render complex computation results, to display audio, etc. 12

Implementation Issues Choose browser: IE and Firefox are most popular Both browsers offer extensibility points Firefox is independent of operating system Firefox was selected To extend Firefox' functionality overlay parts of browser (defined in XUL) additional functionality with JavaScript Cross Platform Component Object Model (XPCOM) components can be written in JavaScript or C++ XPCOM handles the registration process of add-on and event processing taking place before browser GUI is loaded 13

Implementation Issues (2) Globus Toolkit most popular Grid Service container try to "connect" to it and use it to invoke Web and Grid services "bridge" to Java is needed Used HTML forms to provide familiar look Developed two XPCOM components: Observer and Stream converter Used Java Firefox extension from SIMILE project 14

Observer XPCOM component observer: subscribes to xpcom-startup topic (event is fired when XPCOM component is loaded) subscription is added to category manager during registration of add-on (done only if new add-ons are installed/updated) when xpcom-startup event is fired, http-on-examine-response and http-on-modify-request are registered as further topics observes http-on-examine-response topic (event fired for incoming HTTP responses) changes content type of WSDL files (mostly text/xml) to text/mywsdl which our stream converter is registered for 15

Stream converter XPCOM component registered at the category manager; offers three functions onStartRequest: called when remote web page is downloaded content type is changed to */* to guarantee normal further processing onDataAvailable: called when data from web page is available for processing (scriptable) input stream is opened; data from web page is saved as string onStopRequest: called when the data has completely arrived processing of completely downloaded document starts WSDL document UI generation; document replaced by HTML page with HTML forms 16

UI Generation from stream converter HTML page generation done in Java same code for generation either remotely or locally remote generation sending XMLHttpRequest to Java Servlet local generation direct call to Java method bridge to Java needed 17

Java Bridge based on Java Firefox extension from SIMILE project adapted from Firefox 1 to Firefox 3 used as a third XPCOM component connects to Java via LiveConnect to execute Java code from JavaScript loads all Globus and self-written libraries/classes offers to generate Java object by calling a classes' constructor, call an object's method, or write to or read from an object's field implemented as singleton added to the category manager upon registration browser overlay needed to initialize Java Bridge 18

Browser Overlay elements of the browser can be overlayed with newly defined elements overlay code executed directly after code of overlayed element used to initialize Java Bridge directly after browser's main window opened overlay used to provide Options menu user can enter URLs for User Interface generator Execution Engine Result Presentation Engine location of certificates for Globus Toolkit 19

back to UI Generation when onStopRequest detects WSDL, generation of UI locally or remotely is triggered generator returns a string containing the HTML page with JavaScript and some HTML forms Flex-SwA Reference type in WSDL indicates bulk data transfer file input is generated Actual transfer is started by the service which pulls the bulk data from the client. 20

Invoke service user may select port and port type, operation to invoke, user is assisted in which type to use for a message part by clicking the invoke button all fields are put into a SOAP message. SOAP message is transported inside of an XMLHttpRequest to an Execution Engine. some SOAP functionality has been rebuild in JavaScript no further encoding is needed SOAP body can be reused in the execution engine 21

Execution Engine XMLHttpRequest can be processed by remote Execution Engine XMLHttpRequest can be intercepted locally by reacting to the right http-on-modify-request event (which is fired when HTTP request is sent) HTTP request is canceled and local execution engine is called via Java Bridge 22

Part of Something Big: Multimedia SOA 23

Epilogue – an Audio Resynthesis Use Case Automatic speech processing employs a bunch of complex techniques Ever worked with it? Ever been despaired when it doesnt work? Ever wished to perceive whats going on inside a system? Use re-synthesis of audio-features and –models for Analysis by Perception Resynthesis tools available as the WebVoice web service

Epilogue – an Audio Resynthesis Use Case (2) Generated UI for WebVoice 25

Epilogue – an Audio Resynthesis Use Case (3) Result presentation for WebVoice 26

Conclusion and Future Work 27 The WebService Browser… handles UI and data transfer automatically brings (end-) users and services together considerably eases testing during service development Test it at ! Open issues Notification system for long running jobs Extensions for other MIME types reasonable Currently only works with Firefox 3 and Java version between and

Thank you for your attention! 28