Download presentation
Presentation is loading. Please wait.
Published byPriscilla Bond Modified over 9 years ago
1
SOAP RMI Aleksander Slominski, Madhusudhan Govindaraju, Randall Bramley, Dennis Gannon Indiana University Extreme! Lab A New-Old Programming Model for Web Services
2
Outline Web Services and RMI (Triangle) Web Services and RMI (Triangle) RMI and SOAP RMI and SOAP RMI system for Java and C++ RMI system for Java and C++ Is XML enough for interoperability? Is XML enough for interoperability? Can RMI/XML be fast (enough)? Can RMI/XML be fast (enough)? Further Steps Further Steps Conclusions Conclusions
3
Web Services Today Apache SOAP, MS SOAP, … Apache SOAP, MS SOAP, … ServiceClient Optionally: WSDL or IDL Optionally: Create IDL.. Interact
4
Web Services Tomorrow Registry ServiceClient Lookup Publish Interact
5
Classical RMI Overview Client Remote Reference Server Remote Object Stub Skeleton RMI Registry Transport Layer LookupPublish Interact
6
Improving RMI Reusing instead of inventing … Reusing instead of inventing … Language independent RMI model Language independent RMI model needs common protocol: SOAP needs common protocol: SOAP making C++ and Java work together … making C++ and Java work together … Naming = Naming = well known naming service: LDAP well known naming service: LDAP Working with future standards Working with future standards UDDI, WSDL, … UDDI, WSDL, …
7
Implementation Goals: Compatibility with non-RMI SOAP implementations (platform neutral) Compatibility with non-RMI SOAP implementations (platform neutral) over 40 available now over 40 available now Minimal overhead on application writer Minimal overhead on application writer Easier Naming Service (JNDI, LDAP) Easier Naming Service (JNDI, LDAP) Multi-protocol fail-over (prototyped) Multi-protocol fail-over (prototyped) Allow subscription to services from behind firewall (prototyped) Allow subscription to services from behind firewall (prototyped)
8
SoapRMI and Java/C++ SOAP is wire protocol SOAP is wire protocol Binding to language constructs Binding to language constructs For C++ For C++ Stub Stub Skeleton Skeleton XML related classes (mapping) XML related classes (mapping) For Java For Java Can be static: as in C++ Can be static: as in C++ Or dynamic: Or dynamic: Only interfaces and XML mapping info Only interfaces and XML mapping info
9
Dynamic vs. Static Stubs Static stubs: classic stubs compiled from IDL – faster but needs to be regenerated each time IDL changes Static stubs: classic stubs compiled from IDL – faster but needs to be regenerated each time IDL changes Dynamic stubs: created with use of advanced reflection in JDK 1.3 (java.lang.reflect.Proxy) – runtime overhead Dynamic stubs: created with use of advanced reflection in JDK 1.3 (java.lang.reflect.Proxy) – runtime overhead Good to have both (and be able to run in JDK 1.2 as well – maybe …) Good to have both (and be able to run in JDK 1.2 as well – maybe …)
10
SoapRMI/Java Design Subset of RMI like API Subset of RMI like API Transport Layer Transport Layer RPC services RPC services Pluggable client and server protocols Pluggable client and server protocols XML mapping XML mapping
11
Design: RMI API RMI Server API UnicastRemoteObject Naming.bind RMI Client API Remote, RemoteException Naming.lookup()
12
Design: Transport Layer HTTP SoapEmbeddedServer HTTP java.net.HttpURLConnection RMI Server API UnicastRemoteObject Naming.bind RMI Client API Remote, RemoteException Naming.lookup()
13
Design: RPC Layer HTTP SoapEmbeddedServer HTTP java.net.HttpURLConnection RMI Server API UnicastRemoteObject Naming.bind RMI Client API Remote, RemoteException Naming.lookup() SOAP RPC SoapServices
14
Design: Protocol Providers HTTP SoapEmbeddedServer Dispatcher (dynamic-skeleton) HTTP java.net.HttpURLConnection Invoker (dynamic-stub) RMI Server API UnicastRemoteObject Naming.bind RMI Client API Remote, RemoteException Naming.lookup() SOAP RPC SoapServices
15
Design: SOAP/XML layer HTTP SoapEmbeddedServer Dispatcher (dynamic-skeleton) HTTP java.net.HttpURLConnection Invoker (dynamic-stub) SOAP Encoding with Mapping RMI Server API UnicastRemoteObject Naming.bind RMI Client API Remote, RemoteException Naming.lookup() SOAP RPC SoapServices
16
XML mapping objectives interoperability on the wire interoperability on the wire supporting multi-ref, xsi:type, … supporting multi-ref, xsi:type, … easy to process easy to process mapping described in XML and object model mapping described in XML and object model flexible enough flexible enough XML schema types XML schema types IDL port types (interfaces) IDL port types (interfaces) powerful enough to allow powerful enough to allow code generation code generation dynamic stubs dynamic stubs SOAP serialization, deserialization SOAP serialization, deserialization
17
Performance and beyond XML XML is not designed for performance XML is not designed for performance our paper in SC ’00 our paper in SC ’00 … but for robustness!!! … but for robustness!!! Intranet/Internet: Java RMI/IIOP/SOAP Intranet/Internet: Java RMI/IIOP/SOAP SOAP – simplicity is important but SOAP – simplicity is important but our take: Simple Open Access Protocol our take: Simple Open Access Protocol RMI abstraction layer RMI abstraction layer Multi-protocol approach possible Multi-protocol approach possible
18
Further work Standardized remote references Standardized remote references dynamic WSDL or future standards dynamic WSDL or future standards Multi protocol selection (prototyped) Multi protocol selection (prototyped) Security aspects (under consideration) Security aspects (under consideration) Exception model (needs more work) Exception model (needs more work) Fail-over (prototyped) Fail-over (prototyped) Routing Routing Transactions Transactions …
19
Conclusions Web Services Web Services ubiquitous and Internet ready ubiquitous and Internet ready RMI model RMI model simple but typically only Java simple but typically only Java Coexistence of New and Old Systems Coexistence of New and Old Systems Open Source SoapRMI 1.1 is available now! Open Source SoapRMI 1.1 is available now! http://www.extreme.indiana.edu/soap http://www.extreme.indiana.edu/soap
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.