1 / 21

Distributed Computing: Comparison of CORBA and Web Services

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.

kael
Download Presentation

Distributed Computing: Comparison of CORBA and Web Services

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Overview • Introduction • Distributed computing • CORBA • Web Services • Comparison • Conclusion

  3. 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

  4. 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)

  5. 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,...)

  6. Distributed Computing • To overcome the problem of heterogeneity: Different kinds of transparencies: • Location transparency • Access transparency • Communication transparency • ….. How to reference an agent (object) ?

  7. Distributed Computing The object reference contains: • The network address. • The port number (transport protocol). • Object (agent) name or ID.

  8. 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

  9. 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

  10. 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

  11. 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.

  12. CORBA Example:

  13. 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”.

  14. 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

  15. 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:

  16. <?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

  17. 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.

  18. Web Services Scenario:

  19. Comparison

  20. 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.

  21. Questions ?? Thank you for your attention

More Related