Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations

Presentation on theme: "The Web Service Browser Automatic Client Generation and Efficient Data Transfer for Web Services Steffen Heinzl, Markus Mathes, Thilo Stadelmann, Dominik."— Presentation transcript:

1 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

2 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

3 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

4 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

5 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

6 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

7 Requirements for the Solution (2) 7

8 Web Service Browser Components

9 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.

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 Part of Something Big: Multimedia SOA 23

24 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 24

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

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

27 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 1.6.0 04 and 1.6.0 07

28 Thank you for your attention! 28

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

Similar presentations

Ads by Google