David Talk

35
06/26/22 1 Distributed Object Distributed Object Computing Computing David Naney

Transcript of David Talk

Page 1: David Talk

04/12/231

Distributed Object ComputingDistributed Object ComputingDavid Naney

Page 2: David Talk

04/12/232

Introduction Introduction

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.

Page 3: David Talk

04/12/233

TopicsTopics

Reasons for distributed object computingSurvey of competing technologies

Page 4: David Talk

04/12/234

VocabularyVocabulary

Glossary of terms– CORBA– DCOM– SOAP

– XML– HTTP

Page 5: David Talk

04/12/235

Why Are We Interested in Why Are We Interested in Distributed Object Computing?Distributed Object Computing?There are many reasons, but here we will

concentrate on only three:– Flexibility– Cost– New user platforms

Page 6: David Talk

04/12/236

FlexibilityFlexibility

A network-centric architecture that supports open standards allows the user much greater flexibility in the selection of products.

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.

Page 7: David Talk

04/12/237

CostCost

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]

Page 8: David Talk

04/12/238

New User PlatformsNew User Platforms

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.

Page 9: David Talk

04/12/239

New User PlatformsNew User Platforms

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.

Page 10: David Talk

04/12/2310

Survey of Competing Survey of Competing TechnologyTechnology 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.

1. CORBA (Common Object Request Broker Architecture).

2. SOAP (Simple Object Access Protocol).

3. DCOM (Distributed Component Object Model).

Page 11: David Talk

04/12/2311

CORBA(Common Object CORBA(Common Object Request Broker Architecture)Request Broker Architecture)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.

Page 12: David Talk

04/12/2312

How Does CORBA Work?How Does CORBA Work?

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.

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.

Page 13: David Talk

04/12/2313

How Does CORBA Work?How Does CORBA Work?

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.

These ORBs do all of the dirty work of establishing connections between the client object and the server object.

Page 14: David Talk

04/12/2314

How Does CORBA Work?How Does CORBA Work?

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.

Page 15: David Talk

04/12/2315

Benefits of CORBABenefits of CORBA

CORBA allows methods on a remote object to be accessed as if they were on the local machine, making the programming of clients simple.

CORBA is a more mature technology, with better support and tools.

Page 16: David Talk

04/12/2316

Problems With CORBAProblems With CORBA

Firewall problemCross platform problemComplexity of use

Page 17: David Talk

04/12/2317

Firewall ProblemFirewall Problem

When a stranger comes to your door and knocks, what do you do?

1. Let him in?

2. Find out what he wants, then let him in?

3. Look at him through the peephole, and ask what he wants?

4. Ignore him?

Page 18: David Talk

04/12/2318

Firewall ProblemFirewall Problem

A computer network doesn’t have all of these options!

If a strange protocol comes knocking, what IS the poor network to do!!

1. Let it in (no firewall)?

2. Ignore it, it’ll go away (firewall)

Page 19: David Talk

04/12/2319

Firewall ProblemFirewall Problem

This is one of the major problems CORBA faces in the Internet world. – 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.

Page 20: David Talk

04/12/2320

Cross Platform ProblemCross Platform Problem

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.

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!

Page 21: David Talk

04/12/2321

Complexity of UseComplexity of Use

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.

The different implementations work in different ways and are each fairly complicated to set up and configure.

Page 22: David Talk

04/12/2322

DCOM (Distributed Component DCOM (Distributed Component Object Model)Object Model)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.

Page 23: David Talk

04/12/2323

SOAP(Simple Object Access SOAP(Simple Object Access Protocol)Protocol)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.

Page 24: David Talk

04/12/2324

SOAP(Simple Object Access SOAP(Simple Object Access Protocol)Protocol)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.

Page 25: David Talk

04/12/2325

What’s So Special About What’s So Special About SOAP?SOAP?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).

SOAP uses a text based payload, (XML) reducing to a minimum the cross platform problem.

Page 26: David Talk

04/12/2326

The eXtensible Markup The eXtensible Markup Language (XML) Language (XML) 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.

Page 27: David Talk

04/12/2327

The eXtensible Markup The eXtensible Markup Language (XML)Language (XML)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.

Page 28: David Talk

04/12/2328

How Does SOAP Work?How Does SOAP Work?

An object has need of a service provided by a server on a different system, across the Internet.– for instance, a web browser user wants to make a

purchase from an eCommerce site. 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.

Page 29: David Talk

04/12/2329

How Does SOAP Work?How Does SOAP Work?

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.

Page 30: David Talk

04/12/2330

How Does SOAP Work?How Does SOAP Work?

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.

Page 31: David Talk

04/12/2331

Problems With SOAPProblems With SOAP

SOAP is a cutting edge technology, and as such, has LOTS of problems.– 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.

– Lack of tools and documentation.– Doing things exactly as specified does not necessarily

mean that your SOAP experiment will work.– Must-have and nice-to-have technologies like schema

support and XML namespaces are not yet fully supported.

Page 32: David Talk

04/12/2332

SummarySummary

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.

Page 33: David Talk

04/12/2333

Where to Get More InformationWhere to Get More Information

Books:1. Client/Server Programming with Java and

Corba, by: Rober Orfali and Dan Harkey

2. Professional XML, by Didier Martin, Mark Birbeck, Michael Kay, etal

3. Applied XML, by: Alex Ceponkus and Faraz Hoodbhoy

Page 34: David Talk

04/12/2334

Where to Get More InformationWhere to Get More Information

Articles:4. “A detailed Comparison of CORBA, DCOM

and Java/RMI” and “DCOM and CORBA” by Gopalan Suresh Raj

5. “What Does the Future Hold for Distributed Object Computing”, by Held, Susch and Golshan

6. “SOAP for Platform-Neutral Interoperability”, by Kent Brown

Page 35: David Talk

04/12/2335

Where to Get More InformationWhere to Get More Information

Specification:7. “Simple Object Access Protocol (SOAP)1.1”, W3c

Note 08 May 2000 Web Sites:

8. Introduction to CORBA http://developer.java.sun.com/developer/onlineTraining/

corba/corba.html#anchor311757

9. Web Cornucopia©

– http://www.execpc.com/~gopalan/index.html