Date post: | 30-Mar-2015 |
Category: |
Documents |
Upload: | jakayla-pearce |
View: | 215 times |
Download: | 0 times |
The Web Service Browser
Automatic Client Generation and Efficient Data Transfer
for Web ServicesSteffen Heinzl, Markus Mathes, Thilo Stadelmann, Dominik Seiler, Marcel
Diegelmann, Helmut Dohmann, Bernd Freisleben
Department of Mathematics and Computer Science, University of MarburgDeptartment 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
I‘m working in automatic speech processing I want to provide the community with useful tools How to distribute them?
MATLAB®? => expensive, not available everywhere C(++)? => can‘t 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 first4
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 don‘t 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 project14
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 doesn’t work? Ever wished to “perceive” what’s going on inside a
system?
Use re-synthesis of audio-features and –models for “Analysis by Perception”
Resynthesis tools available as the WebVoice web servicehttp://mage.uni-marburg.de/audio/audio.html
24
Epilogue – an Audio Resynthesis Use Case (2)
Generated UI for WebVoice25
Epilogue – an Audio Resynthesis Use Case (3)
Result presentation for WebVoice26
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 http://mage.uni-marburg.de !
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
Thank you for your attention!
28