Soap rmi
Download
1 / 19

SOAP RMI - PowerPoint PPT Presentation


  • 472 Views
  • Uploaded on

A New-Old Programming Model for Web Services. SOAP RMI. Aleksander Slominski, Madhusudhan Govindaraju, Randall Bramley, Dennis Gannon Indiana University Extreme! Lab. Outline. Web Services and RMI (Triangle) RMI and SOAP RMI system for Java and C++ Is XML enough for interoperability?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'SOAP RMI' - sherlock_clovis


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Soap rmi l.jpg

A New-Old Programming Modelfor Web Services

SOAP RMI

Aleksander Slominski, Madhusudhan Govindaraju, Randall Bramley, Dennis Gannon

Indiana University Extreme! Lab


Outline l.jpg
Outline

  • Web Services and RMI (Triangle)

  • RMI and SOAP

  • RMI system for Java and C++

  • Is XML enough for interoperability?

  • Can RMI/XML be fast (enough)?

  • Further Steps

  • Conclusions


Web services today l.jpg
Web Services Today

  • Apache SOAP, MS SOAP, …

Optionally:

WSDL or IDL

Optionally:

Create IDL..

Client

Interact

Service


Web services tomorrow l.jpg
Web Services Tomorrow

Registry

Publish

Lookup

Client

Interact

Service


Classical rmi overview l.jpg
Classical RMI Overview

RMI

Registry

Lookup

Publish

Client

Remote Reference

Server

Remote Object

Interact

Skeleton

Stub

Transport Layer


Improving rmi l.jpg
Improving RMI

  • Reusing instead of inventing …

  • Language independent RMI model

    • needs common protocol: SOAP

    • making C++ and Java work together …

  • Naming = <name, remote reference>

    • well known naming service: LDAP

  • Working with future standards

    • UDDI, WSDL, …


Implementation goals l.jpg
Implementation Goals:

  • Compatibility with non-RMI SOAP implementations (platform neutral)

    • over 40 available now

  • Minimal overhead on application writer

  • Easier Naming Service (JNDI, LDAP)

  • Multi-protocol fail-over (prototyped)

  • Allow subscription to services from behind firewall (prototyped)


Soaprmi and java c l.jpg
SoapRMI and Java/C++

  • SOAP is wire protocol

  • Binding to language constructs

  • For C++

    • Stub

    • Skeleton

    • XML related classes (mapping)

  • For Java

    • Can be static: as in C++

    • Or dynamic:

      • Only interfaces and XML mapping info


Dynamic vs static stubs l.jpg
Dynamic vs. Static Stubs

  • 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

  • Good to have both (and be able to run in JDK 1.2 as well – maybe …)


Soaprmi java design l.jpg
SoapRMI/Java Design

  • Subset of RMI like API

  • Transport Layer

  • RPC services

  • Pluggable client and server protocols

  • XML mapping


Design rmi api l.jpg
Design: RMI API

RMI Server API

UnicastRemoteObject

Naming.bind

RMI Client API

Remote, RemoteException

Naming.lookup()


Design transport layer l.jpg
Design: Transport Layer

RMI Server API

UnicastRemoteObject

Naming.bind

RMI Client API

Remote, RemoteException

Naming.lookup()

HTTP

SoapEmbeddedServer

HTTP

java.net.HttpURLConnection


Design rpc layer l.jpg
Design: RPC Layer

RMI Server API

UnicastRemoteObject

Naming.bind

RMI Client API

Remote, RemoteException

Naming.lookup()

SOAP RPC

SoapServices

HTTP

SoapEmbeddedServer

HTTP

java.net.HttpURLConnection


Design protocol providers l.jpg
Design: Protocol Providers

RMI Server API

UnicastRemoteObject

Naming.bind

RMI Client API

Remote, RemoteException

Naming.lookup()

SOAP RPC

SoapServices

Dispatcher

(dynamic-skeleton)

Invoker

(dynamic-stub)

HTTP

SoapEmbeddedServer

HTTP

java.net.HttpURLConnection


Design soap xml layer l.jpg
Design: SOAP/XML layer

RMI Server API

UnicastRemoteObject

Naming.bind

RMI Client API

Remote, RemoteException

Naming.lookup()

SOAP RPC

SoapServices

Dispatcher

(dynamic-skeleton)

Invoker

(dynamic-stub)

SOAP Encoding

with Mapping

HTTP

SoapEmbeddedServer

HTTP

java.net.HttpURLConnection


Xml mapping objectives l.jpg
XML mapping objectives

  • interoperability on the wire

    • supporting multi-ref, xsi:type, …

  • easy to process

    • mapping described in XML and object model

  • flexible enough

    • XML schema types

    • IDL port types (interfaces)

  • powerful enough to allow

    • code generation

    • dynamic stubs

    • SOAP serialization, deserialization


Performance and beyond xml l.jpg
Performance and beyond XML

  • XML is not designed for performance

    • our paper in SC ’00

  • … but for robustness!!!

  • Intranet/Internet: Java RMI/IIOP/SOAP

  • SOAP – simplicity is important but

    • our take: Simple Open Access Protocol

  • RMI abstraction layer

    • Multi-protocol approach possible


Further work l.jpg
Further work

  • Standardized remote references

    • dynamic WSDL or future standards

  • Multi protocol selection (prototyped)

  • Security aspects (under consideration)

  • Exception model (needs more work)

  • Fail-over (prototyped)

  • Routing

  • Transactions


Conclusions l.jpg
Conclusions

  • Web Services

    • ubiquitous and Internet ready

  • RMI model

    • simple but typically only Java

  • Coexistence of New and Old Systems

  • Open Source SoapRMI 1.1 is available now!

    • http://www.extreme.indiana.edu/soap


ad