David Talk


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • David Talk

    1. 1. Distributed Object Computing David Naney
    2. 2. Introduction <ul><li>Distributed object computing extends an object-oriented programming system by allowing object to be distributed across a heterogeneous network, so that each of these distributed object components interoperate as a unified whole. These objects may be distributed on different computers throughout the network. </li></ul>
    3. 3. Topics <ul><li>Reasons for distributed object computing </li></ul><ul><li>Survey of competing technologies </li></ul>
    4. 4. Vocabulary <ul><li>Glossary of terms </li></ul><ul><ul><li>CORBA </li></ul></ul><ul><ul><li>DCOM </li></ul></ul><ul><ul><li>SOAP </li></ul></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>HTTP </li></ul></ul>
    5. 5. Why Are We Interested in Distributed Object Computing? <ul><li>There are many reasons, but here we will concentrate on only three: </li></ul><ul><ul><li>Flexibility </li></ul></ul><ul><ul><li>Cost </li></ul></ul><ul><ul><li>New user platforms </li></ul></ul>
    6. 6. Flexibility <ul><li>A network-centric architecture that supports open standards allows the user much greater flexibility in the selection of products. </li></ul><ul><li>A major problem with today's legacy systems is that they are so difficult to change. This puts the user into the unfortunate position of having to either completely replace the system, or live with it. Using distributed object computing allows the user the flexibility to update the system piecewise, reducing risk and cost. </li></ul>
    7. 7. Cost <ul><li>Published research in the area that concerns distributed object computing (network-centric architecture) suggests that the use of this technology can provide a substantial cost benefit, up to 60% of the lifecycle cost of the computing infrastructure. [5] </li></ul>
    8. 8. New User Platforms <ul><li>It appears that we will be seeing a large increase in the number and type of end user platforms that will be available for use by the general public. Unfortunately, (or maybe fortunately if you are a distributed objects programmer) most of these platforms are of the “thin” variety, small devices with limited computing power and storage capacity. </li></ul>
    9. 9. New User Platforms <ul><li>These devices will not be able to use software designed for the traditional desktop system. Network based applications which have most of their functionality in the middle tier rather than in the client will be much more adaptable to this market. </li></ul>
    10. 10. Survey of Competing Technology <ul><li>There are several different methods used to do distributed object programming. In this presentation, I will present two, CORBA and SOAP, with a brief mention of a third, DCOM. </li></ul><ul><ul><li>CORBA (Common Object Request Broker Architecture). </li></ul></ul><ul><ul><li>SOAP (Simple Object Access Protocol). </li></ul></ul><ul><ul><li>DCOM (Distributed Component Object Model). </li></ul></ul>
    11. 11. CORBA(Common Object Request Broker Architecture) <ul><li>CORBA defines a model that specifies interoperability between distributed objects on a network in a way that is transparent to the programmer. It achieves this by defining ways for specifying the externally visible characteristics of a distributed object in a way that is implementation-independent. </li></ul>
    12. 12. How Does CORBA Work? <ul><li>In order to create a connection with an object on the server, the programmer creates an IDL file that specifies the object’s interfaces. When compiled, these interfaces can be used by a remote object (client) in a fashion very similar to using a local object. </li></ul><ul><li>Each network system that participates in a CORBA interaction must have an object called an Object Request Broker (ORB) running and accessible somewhere on the network. </li></ul>
    13. 13. How Does CORBA Work? <ul><li>The ORB is the distributed service that implements the request to the remote object. It locates the remote object on the network, communicates the request to the object, waits for the results and when available communicates those results back to the client. </li></ul><ul><li>These ORBs do all of the dirty work of establishing connections between the client object and the server object. </li></ul>
    14. 14. How Does CORBA Work? <ul><li>A CORBA enabled object registers its services with the ORB. This allows the ORB to figure out where a request from a client is supposed to go. </li></ul>
    15. 15. Benefits of CORBA <ul><li>CORBA allows methods on a remote object to be accessed as if they were on the local machine, making the programming of clients simple. </li></ul><ul><li>CORBA is a more mature technology, with better support and tools. </li></ul>
    16. 16. Problems With CORBA <ul><li>Firewall problem </li></ul><ul><li>Cross platform problem </li></ul><ul><li>Complexity of use </li></ul>
    17. 17. Firewall Problem <ul><li>When a stranger comes to your door and knocks, what do you do? </li></ul><ul><ul><li>Let him in? </li></ul></ul><ul><ul><li>Find out what he wants, then let him in? </li></ul></ul><ul><ul><li>Look at him through the peephole, and ask what he wants? </li></ul></ul><ul><ul><li>Ignore him? </li></ul></ul>
    18. 18. Firewall Problem <ul><li>A computer network doesn’t have all of these options! </li></ul><ul><li>If a strange protocol comes knocking, what IS the poor network to do!! </li></ul><ul><ul><li>Let it in (no firewall)? </li></ul></ul><ul><ul><li>Ignore it, it’ll go away (firewall) </li></ul></ul>
    19. 19. Firewall Problem <ul><li>This is one of the major problems CORBA faces in the Internet world. </li></ul><ul><ul><li>You can set up your CORBA client/server system, but if you try to distribute this system beyond your own little pond, you have to deal with cranky system administrators in other parts of the world who may or may not be willing to open a port in their firewall to accommodate your system. </li></ul></ul>
    20. 20. Cross Platform Problem <ul><li>Although one of the main benefits that were supposed to accrue from CORBA was the reduction or elimination of cross platform issues, some still remain. </li></ul><ul><li>Using CORBA entails setting up and configuring an Object Request Broker (ORB) on each system that is involved in the interaction. ORBs from different companies do not necessarily play well together. Even ORBs from the same company, which are designed for different operating systems sometimes don’t want to work together! </li></ul>
    21. 21. Complexity of Use <ul><li>CORBA requires the programmer to learn a new programming language, Interface Definition Language. IDL is not a difficult language but it does present a learning curve that some programmers would just rather not face. </li></ul><ul><li>The different implementations work in different ways and are each fairly complicated to set up and configure. </li></ul>
    22. 22. DCOM (Distributed Component Object Model) <ul><li>DCOM is Microsoft’s answer to the rest of the computing world. Not wanting to be an integral part of the Object Management Group (OMG), Microsoft has developed a competing protocol for distributed object computing, with which I do not have a great deal of experience, but which I mention here for the sake of completeness. </li></ul>
    23. 23. SOAP(Simple Object Access Protocol) <ul><li>SOAP is one of the newest ideas to be endorsed by the World Wide Web Consortium (W3C), in response to the problems that are becoming apparent with other current distributed object architectures. </li></ul>
    24. 24. SOAP(Simple Object Access Protocol) <ul><li>SOAP is a standard way of serializing the information needed to invoke remote services into a format that can be transported across the wire and interpreted by the remote server regardless of its platform. </li></ul>
    25. 25. What’s So Special About SOAP? <ul><li>SOAP goes a long way toward solving the firewall problem by using a protocol that most system administrators have grown to know and love – or at least tolerate, the Hyper Text Transfer Protocol (HTTP). </li></ul><ul><li>SOAP uses a text based payload, (XML) reducing to a minimum the cross platform problem. </li></ul>
    26. 26. The eXtensible Markup Language (XML) <ul><li>XML is a new text based markup language, similar to HTML, but much more powerful. XML allows the programmer to define his or her own markup tags, hence, extensible in the name.It is a method for describing information so that every computer, and most humans can understand it. </li></ul>
    27. 27. The eXtensible Markup Language (XML) <ul><li>Markup refers to instructions written into a document that inform someone or something how to handle a certain section of a document. This is sometimes referred to as metadata. With XML, the concept of markup has been extended to encode instructions that can tell an application what to do with chunks of the information. </li></ul>
    28. 28. How Does SOAP Work? <ul><li>An object has need of a service provided by a server on a different system, across the Internet. </li></ul><ul><ul><li>for instance, a web browser user wants to make a purchase from an eCommerce site. </li></ul></ul><ul><li>The object creates an eXtensible Markup Language (XML) document, following the rules laid out in the official SOAP schemas. The document is then packaged into a soap message, placed as the payload in an HTTP Post operation, and sent to the web server. </li></ul>
    29. 29. How Does SOAP Work? <ul><li>In order for the web server to handle SOAP requests, a SOAP listener must be provided. The listener takes care of receiving the HTTP message, parsing the SOAP payload and invoking the correct object to do the work. </li></ul>
    30. 30. How Does SOAP Work? <ul><li>Like CORBA, SOAP uses a three tier architecture. However, instead of using an ORB for the middleware layer, SOAP uses the Web Server and the SOAP module. </li></ul>
    31. 31. Problems With SOAP <ul><li>SOAP is a cutting edge technology, and as such, has LOTS of problems. </li></ul><ul><ul><li>The fact that the SOAP message has to be parsed with an XML parser makes this method slower than CORBA or DCOM for local implementations. </li></ul></ul><ul><ul><li>Lack of tools and documentation. </li></ul></ul><ul><ul><li>Doing things exactly as specified does not necessarily mean that your SOAP experiment will work. </li></ul></ul><ul><ul><li>Must-have and nice-to-have technologies like schema support and XML namespaces are not yet fully supported. </li></ul></ul>
    32. 32. Summary <ul><li>In this presentation, we have discussed the reasons for using distributed object computing, and looked at two methods currently used to implement this interesting technology. </li></ul>
    33. 33. Where to Get More Information <ul><li>Books: </li></ul><ul><ul><li>Client/Server Programming with Java and Corba , by: Rober Orfali and Dan Harkey </li></ul></ul><ul><ul><li>Professional XML , by Didier Martin, Mark Birbeck, Michael Kay, etal </li></ul></ul><ul><ul><li>Applied XML , by: Alex Ceponkus and Faraz Hoodbhoy </li></ul></ul>
    34. 34. Where to Get More Information <ul><li>Articles: </li></ul><ul><ul><li>“ A detailed Comparison of CORBA, DCOM and Java/RMI” and “DCOM and CORBA” by Gopalan Suresh Raj </li></ul></ul><ul><ul><li>“ What Does the Future Hold for Distributed Object Computing”, by Held, Susch and Golshan </li></ul></ul><ul><ul><li>“ SOAP for Platform-Neutral Interoperability”, by Kent Brown </li></ul></ul>
    35. 35. Where to Get More Information <ul><li>Specification: </li></ul><ul><ul><li>“ Simple Object Access Protocol (SOAP)1.1”, W3c Note 08 May 2000 </li></ul></ul><ul><li>Web Sites: </li></ul><ul><ul><li>Introduction to CORBA </li></ul></ul><ul><ul><ul><li>http://developer.java.sun.com/developer/ onlineTraining / corba / corba .html#anchor311757 </li></ul></ul></ul><ul><ul><li>Web Cornucopia © </li></ul></ul><ul><ul><li>http://www.execpc.com/~gopalan/index.html </li></ul></ul>