Title: Distributed Computing: Comparison of CORBA and Web Services
1Distributed Computing Comparison of CORBA and
Web Services
- Mentor Dr. Stephan Rupp
- Student Rafat Abusamrah
- Institute of Communication Networks and Computer
Engineering - University of Stuttgart
2Overview
- Introduction
- Distributed computing
- CORBA
- Web Services
- Comparison
- Conclusion
3Introduction
- An e-business scenario
- A company that receives orders electronically
from retailers and suppliers, processes orders,
and provides real time information of the stock - Retailers can check availability of items in
stock - Suppliers can ship goods if the stock is low
4Introduction
- Solutions?
- Building a website for the company
- - retailers and suppliers would have to check
the website manually. - Middleware technology for distributed computing
- - COM/DCOM (Microsoft)
- - Java RMI (SUN)
- - CORBA (OMG)
- - Web Services (W3C)
5Distributed Computing
- Distributed computing
- Distributed agents over the network that have
the ability to perform a certain operation in
parallel according to a context, aiming to solve
large problems with less computing power
computers. - Heterogeneous world
- Different platforms (Mainframes, UNIX
workstations, PCs with different operating
systems) - Different network protocols (TCP/IP, ATM,
Ethernet,...) - Different programming languages (C, JAVA,
PERL,...)
6Distributed Computing
- To overcome the problem of heterogeneity
-
- Different kinds of transparencies
- Location transparency
- Access transparency
- Communication transparency
- ..
- How to reference an agent (object) ?
7Distributed Computing
- The object reference contains
- The network address.
- The port number (transport protocol).
- Object (agent) name or ID.
8CORBA
- Acronym for Common Object Request Broker
Architecture, specified by the OMG - Open and vendor independent architecture and
infrastructure that computer applications use to
work together over the network - ORB (Object Request Broker) mediates the
communication between applications - Locating the remote object
- Activating the remote object
- Communicating the client request to the object
- Communicating the reply after carrying out the
reply
9CORBA
- IDL (Interface Definition Language)
- Contains the description and types of the methods
- Is programming language independent
- Has its own type system
- Simple example Bank accounts
//IDL module BankSimple // Define a named type to represent money. typedef float CashAmount // Forward declaration of interface Account. interface Account interface Bank ... interface Account // The account owner and balance. readonly attribute string name readonly attribute CashAmount balance // Operations available on the account. void deposit (in CashAmount amount) void withdraw (in CashAmount amount)
10CORBA
- Method invocation
- Dynamic
- Interface Repository (IR)
- Dynamic Invocation Interface (DSI)
- Dynamic Skeleton Interface (DSI)
- Static
- Client stub
- Server skeleton
- Other components and features of CORBA
- Portable Object Adapter, ORB interface, and
Internet Inter-ORB protocol IIOP
11CORBA
- Discovery
- Built in services
- Naming service the client is searching for an
object according to its name - Trader service the client is searching for an
object according to certain attributes (features
and properties) - If the requested object is found, an object
reference is returned.
12CORBA
Example
13Web Services
- As defined by the W3C A Web service is a
software system designed to support interoperable
machine-to-machine interaction over a network. It
has an interface described in a
machine-processable format (specifically WSDL).
Other systems interact with the Web service in a
manner prescribed by its description using SOAP
messages, typically conveyed using HTTP with an
XML serialization in conjunction with other
web-related standards.
14Web Services
- Key technologies for Web Services
- XML (eXtensible Markup Language)
- is a markup language for exchanging structured
messages. - SOAP
- is a XML based protocol for exchanging messages
between nodes over different transport protocols
(HTTP, SMTP, ) -
- SOAP envelope
- - Header contains information for nodes in the
message path to its destination - - Body contains the content used by the
application
15Web Services
- WSDL (Web Services Description Language)
- Based on XML Schema
- Information
- The interface description (operations, operations
parameters, data types) - The implementation description (service location,
transport protocol) - An example of a WSDL file
16Web Services
- lt?xml version"1.0" ?gt
- - ltdefinitions name"BNQuoteService"
targetNamespace"http//www.xmethods.net/sd/BNQuot
eService.wsdl" xmlnsxsd"http//www.w3.org/2001/X
MLSchema" xmlnssoap"http//schemas.xmlsoap.org/w
sdl/soap/" xmlns"http//schemas.xmlsoap.org/wsdl/
" xmlnstns"http//www.xmethods.net/sd/BNQuoteSer
vice.wsdl"gt - - ltmessage name"getPriceRequest"gt
- ltpart name"isbn" type"xsdstring" /gt
- lt/messagegt
- - ltmessage name"getPriceResponse"gt
- ltpart name"return" type"xsdfloat" /gt
- lt/messagegt
- - ltportType name"BNQuotePortType"gt
- - ltoperation name"getPrice"gt
- ltinput message"tnsgetPriceRequest"
name"getPrice" /gt - ltoutput message"tnsgetPriceResponse"
name"getPriceResponse" /gt - lt/operationgt
- lt/portTypegt
- - ltbinding name"BNQuoteBinding"
type"tnsBNQuotePortType"gt - ltsoapbinding style"rpc" transport"http//sche
mas.xmlsoap.org/soap/http" /gt - - ltoperation name"getPrice"gt
- ltsoapoperation soapAction"" /gt
- - ltinput name"getPrice"gt
- ltsoapbody use"encoded" namespace"urnxmethods
-BNPriceCheck" encodingStyle"http//schemas.xmlso
ap.org/soap/encoding/" /gt - lt/inputgt
- - ltoutput name"getPriceResponse"gt
- ltsoapbody use"encoded" namespace"urnxmethods
-BNPriceCheck" encodingStyle"http//schemas.xmlso
ap.org/soap/encoding/" /gt - lt/outputgt
- lt/operationgt
- lt/bindinggt
- - ltservice name"BNQuoteService"gt
- ltdocumentationgtReturns price of a book at
BN.com given an ISBN numberlt/documentationgt - - ltport name"BNQuotePort" binding"tnsBNQuoteBin
ding"gt - ltsoapaddress location"http//services.xmethods
.net80/soap/servlet/rpcrouter" /gt - lt/portgt
- lt/servicegt
- lt/definitionsgt
Binding
Data types
Message type
Port type
Port
17Web Services
- Discovery
-
- UDDI (Universal Description, Discovery and
Integration) - Discovery agency that provides find and publish
services for the requester and provider agents. - Provides two kinds of information business
related information and technical information. - The communication between the UDDI and the
requester and provider agents uses SOAP messages.
18Web Services
Scenario
19Comparison
Aspect CORBA Web Services
Computing model Objects distribution SOAP messages exchanging
Interface definition IDL WSDL
Location transparency Object reference URI
Registry Interface repository UDDI
Service discovery Naming and trader services UDDI
Implementation language Any language with an IDL compiler Any language
Message encoding Binary format Unicode
Transport protocol GIOP/IIOP HTTP, SMTP, HTTPS and other transport protocols
Parameter passing By reference by value By value
State Stateful Stateless
20Conclusion
- The differences between both technologies are due
to the fact that they were developed for
different reasons using different technologies. - Web Services require less effort and cost for
deployment of the technology components. - A lot of work has been done to implement SOAP
messaging over CORBA IIOP. - WSDL can be generated from CORBA IDL and vice
versa. - CORBA and Web Services can play a complementary
role.
21Questions ??
- Thank you for your attention