210 likes | 422 Views
Distributed Computing: Comparison of CORBA and Web Services. Mentor: Dr. Stephan Rupp Student: Rafat Abusamrah Institute of Communication Networks and Computer Engineering University of Stuttgart. Overview. Introduction Distributed computing CORBA Web Services Comparison Conclusion.
E N D
Distributed Computing: Comparison of CORBA and Web Services Mentor: Dr. Stephan Rupp Student: Rafat Abusamrah Institute of Communication Networks and Computer Engineering University of Stuttgart
Overview • Introduction • Distributed computing • CORBA • Web Services • Comparison • Conclusion
Introduction • 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
Introduction 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)
Distributed 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, PC’s with different operating systems) • Different network protocols (TCP/IP, ATM, Ethernet,...) • Different programming languages (C++, JAVA, PERL,...)
Distributed Computing • To overcome the problem of heterogeneity: Different kinds of transparencies: • Location transparency • Access transparency • Communication transparency • ….. How to reference an agent (object) ?
Distributed Computing The object reference contains: • The network address. • The port number (transport protocol). • Object (agent) name or ID.
CORBA • 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
CORBA • 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
CORBA • 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
CORBA • 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.
CORBA Example:
Web 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”.
Web 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
Web 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:
<?xml version="1.0" ?> - <definitions name="BNQuoteService" targetNamespace="http://www.xmethods.net/sd/BNQuoteService.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.xmethods.net/sd/BNQuoteService.wsdl"> - <message name="getPriceRequest"> <part name="isbn" type="xsd:string" /> </message> - <message name="getPriceResponse"> <part name="return" type="xsd:float" /> </message> - <portType name="BNQuotePortType"> - <operation name="getPrice"> <input message="tns:getPriceRequest" name="getPrice" /> <output message="tns:getPriceResponse" name="getPriceResponse" /> </operation> </portType> - <binding name="BNQuoteBinding" type="tns:BNQuotePortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="getPrice"> <soap:operation soapAction="" /> - <input name="getPrice"> <soap:body use="encoded" namespace="urn:xmethods-BNPriceCheck" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> - <output name="getPriceResponse"> <soap:body use="encoded" namespace="urn:xmethods-BNPriceCheck" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> </binding> - <service name="BNQuoteService"> <documentation>Returns price of a book at BN.com given an ISBN number</documentation> - <port name="BNQuotePort" binding="tns:BNQuoteBinding"> <soap:address location="http://services.xmethods.net:80/soap/servlet/rpcrouter" /> </port> </service> </definitions> Web Services Binding Data types Message type Port type Port
Web 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.
Web Services Scenario:
Conclusion • 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.
Questions ?? Thank you for your attention