CORBA AND SOAP
Unmesh Kulkarnii2 Group
Ashish V. TendulkarDirectory Database integration group
(www.eusersolutions.com)
Persistent Systems Pvt. Ltd. Pune (www.pspl.co.in)
OUTLINE
• Introduction to middleware• CORBA Concepts• Problem Domain• SOAP• Synergies• Conclusion
What is Middleware?
Glue for Components Sits Between OS and
Applications Distributed Object Services CORBA, COM, DCE, Java/RMI … XML?
CORBA - Objectives
OS Independence Language Independence Remote Methods Static/Dynamic Invocations Distributed Services
Interoperability
Standardization of – Binary Formats : in-memory API’s : Programming Support IDL, Type Libraries, File Formats Data Representation – CDR/NDR Transfer Protocol
CORBA provides..
The PRO’s : IDL Stub-skeleton
generators Services API’s CDR IIOP
And The CON’s Complexity Vendor dependency Costly - large
volumes Behavior
marshalling Internet / Firewalls COM-CORBA Inter-
operability
The problem..
Client App.
Proxy Server
Server
Application Server
Firewall
Implications
Industry not shifted completely to either one
Vendor specific
Lack of interoperability
Require high-tech runtime environment
Why XML?
Simple text markup language
Platform, language and vendor agnostic
Easily extensible
Capable of solving interoperability problem
Why HTTP?
Ubiquitous
Supported by every web browser and server
Effective technology for transferring text, graphics and other information
XML + HTTP = SOAP
HTTP is used for transport
XML as encoding scheme
Endpoint HTTP based URL for the target
Object mapping: implementation specific
SOAP call anatomy
SOAP Component
HTTP Headers
SOAP method name
SOAP Envelope
SOAP Header
SOAP Body
Call element
Object Endpoint IDMethod/Interface ID
Extension Headers
Parameter Data
Uses of SOAP
SOAP greatly simplifies data exchange in B2B application over extranet
Enables web site to integrate services from other sites
Remote scripting more prevalent with SOAP
Non-browser client could seamlessly access a service across web
Example Message
POST /string_server/Object17 HTTP/1.1 Host: 209.110.197.2 Content-Type: text/xml Content-Length: 152 SOAPMethodName: urn:strings-com:IString#reverse <Envelope> <Body> <m:reverse xmlns:m='urn:strings-com:IString'>
<theString>Hello, World</theString> </m:reverse> </Body>
</Envelope>
Example Response
200 OK Content-Type: text/xml Content-Length: 162
<Envelope> <Body> <m:reverseResponse xmlns:m='urn:strings-
com:IString'> <result>dlroW ,olleH</result> </m:reverseResponse> </Body> </Envelope>
IOR : Object Reference
Interface Name /Method Name
Method Invocation with Parameters
POST/ObjectURI HTTP/1.1
SOAP:MethodName
SOAP:Envelope SOAP:Header SOAP:Body SOAP:CallElem
ent
CORBA vs SOAP
Advantages
Simplest Data Representation Hardware/Language Neutral No Vendor Dependencies Simple and Human-readable Typing Flexibility Firewall Issues
Then Why Not XML?
Distribution Support Resource location, control and
management Services – Transactions, Events, Security
etc. Error Handling Non-text data Quality of Service – Reliability Efficiency (Redundancy Elimination)
XML With CORBA
XML – Structure CORBA – Infrastructure XMI – Metadata Interchange XML Interfaces – Components
accepting/emitting XML documents
XML With CORBA….
Examples : XMI – Exchange of UML models
between Design tools and repositories
Persistent storage of components in IDE’s: JavaBean Persistence Resilience to versioning of libraries/VM’s Defaults/Redundancy elimination
Synergy
Conclusion
SOAP is platform independent, language neutral protocol
SOAP does not replace COM and CORBA SOAP works in place of DCOM and IIOP SOAP does not pose huge security risks Supports interoperation between
different vendor specific implementations
Top Related