0% found this document useful (0 votes)
14 views98 pages

Intersystem Communication and Integration Techniques

The document discusses intersystem communication and software integration, outlining techniques for connecting disparate software components to form cohesive systems. It details various integration methods such as system integration, functional integration, and messaging, emphasizing the importance of middleware in facilitating interactions among distributed applications. Additionally, it highlights the advantages and challenges of middleware, including its role in improving organizational efficiency and maintaining information integrity across systems.

Uploaded by

fikadu.meu.edu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views98 pages

Intersystem Communication and Integration Techniques

The document discusses intersystem communication and software integration, outlining techniques for connecting disparate software components to form cohesive systems. It details various integration methods such as system integration, functional integration, and messaging, emphasizing the importance of middleware in facilitating interactions among distributed applications. Additionally, it highlights the advantages and challenges of middleware, including its role in improving organizational efficiency and maintaining information integrity across systems.

Uploaded by

fikadu.meu.edu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

1 CHAPTER ONE

Intersystem
Communications
Introduction
2

 Integration of software refers to techniques for combining


existing software components to form a complete system.
 software integration includes at least one existing software
system.
 Integrative programming deals with an integration
approaches and techniques that connect different components
of IT infrastructure-
 people, applications, platforms and databases to enable a secure,
intra and inter application collaboration.
Introduction
3

 Integrative solutions enable an organization to integrate


business processes internally and externally with business
partners.
 to create dynamic environments that supports current and evolving
business requirements, thereby creating a global organization
what is Integration ?
 It is the process of connecting multiple, independently
developed applications using incompatible technologies into a
single organization wide system with information flowing
Inter-system communication
4

 What is intersystem communication?


 It is the communication between a set of heterogeneous systems that are
integrated together
 Software integration includes one or more of the following.
 System integration

 Functional integration or technology

 Incremental engineering

 Modification

System integration
 Process of connecting two or more system together
 The problem is to integrate them into one larger system satisfying the
combined requirements within the newly formed environment.
Inter-system communication
5

Functional integration or technology integration


 Given a software system, this may have been functioning properly in the
field for a significant period.
 The problem is to integrate a new function or a new technology within the
system.
 The integrated system should provide the new functionality or use the new
technology, while preserving the original system functionality.
Incremental engineering
 A software system can be developed and delivered using available
technologies and with less functionality than it is intended to finally provide.
 New technologies and or more functions then can be integrated within the
system.
 The problem is to design the system with such future integration in mind.
Cont..
6

Modification
 Sometimes an existing and properly functioning software system
must be decomposed and integrated to carry out modification.
The need for integration
 Most of organizations consist of more than one department, running
department specific applications and those applications interact with
each other to achieve the overall objective of the organizations.
 Information systems change overtime by growing in their size,
incorporating functionality of the existing standalone systems.
 So integration is used to exchange data
Cont..
7

 Applications originally intended to operate separately, later on are


required to interoperate with others.
 Some of the reasons for integration are the following;
 The architecture of the organization information system depends
on constraints related to the technology but also to the
organization.
 Within an enterprise, each department may have its own IT
infrastructure, systems and databases which are maintained
independently
 So Integrating them may bring additional value to the company.
Cont..
8

 Integration assists in formation of Zero Latency organization -


 when all functions within the organization work with the same up-to-
date information, latency between applications is eliminated/
reduced.
 Updating and integrating of applications is possible
whenever required.
 New applications can be created by integrating real time
data from different parts of the enterprise
Cont..
9

Integrative Technologies/methods for integration


 Application integration is an integration framework composed of
a collection of technologies and services which form a
middleware to enable integration of systems and applications
across organizations.
 There are four methods used in application integration, these are:
1) File Transfer
2) Shared Database
3) Remote Procedure Invocation
4) Messaging
Cont..
10

File transfer
 one application writes a file , another later reads.
 The applications need to agree on the filename and
location, the format of the file, the timing of when it
will be written and read, and who will delete the file.
 Produce the files at regular intervals according to the
nature of the business, which can be consumed or
read by another file.
 An important decision with files is what format to use.
Cont..
11

 Very rarely will the output of one application be exactly what's


needed for another, so you'll have to do a fair bit of processing
of files along the way.
 Not just do all the applications that use a file have too read it,
you also have to be able to use processing tools on it.
Cont..
12

Shared Database
 A common data base can be used for integrating applications.
 A single physical database can be shared by different
applications running on different platforms.
 This method integrates applications by having them store their
data in a single shared database.
 If a family of integrated applications all rely on the same
database, then we can be pretty sure that they are always
consistent all of the time.
 If we do get simultaneous updates to a single piece of data from
different sources, then we have transaction management systems
that handle that about as gracefully as it ever can be managed.
Cont..
13
Cont..
14

Remote procedure calls


 One application exposes some of its functionality so that it can be
accessed remotely by other applications as a remote procedure.
 The communication occurs real-time and synchronously.
 This method develops each application which is required to be
integrated as a large- scale object or component with
encapsulated data(hiding of the data for protection ).
 It provides an interface to allow other applications to interact
with the running application.
 Remote Procedure Invocation applies the principle of
encapsulation to integrating applications.
 If an application needs some information that is owned by
another application, it asks that application directly.
Cont..
15

 If one application needs to modify the data of another, then it


does so by making a call to the other application.
 Each application can maintain the integrity of the data it owns.
 Furthermore, each application can alter its internal data without
having every other application be affected.
Cont..
16

Messaging
 Messaging allows interaction between applications possible.
 one application publishes a message to a common message channel.
 Other applications can read the message from the channel at a later time.
 Message passing can be used to transfer packets of data frequently,
immediately, reliably, and asynchronously, or synchronously using
customizable formats.
 Asynchronous messaging is fundamentally a practical reaction to the
problems of distributed systems.
 Sending a message does not require both systems to be up and ready at
the same time.
Cont..
17

 The reason a messaging system is needed to move messages from


one computer to another is that computers and the networks that
connect them are inherently unreliable.
 Just because one application is ready to send a communication
does not mean that the other application is ready to receive it.
 Even if both applications are ready, the network may not be
working, or may fail to transmit the data properly.
 A messaging system overcomes these limitations by repeatedly
trying to transmit the message until it succeeds.
 Under ideal circumstances, the message is transmitted successfully
on the first try, but circumstances are often not ideal.
Cont..
18

 A message is transmitted in five steps:


1) Create — the sender creates the message and populates it with
data.

2) Send — the sender adds the message to a channel.

3) Deliver — the messaging system moves the message from the sender’s
computer to the receiver’s computer, making it available to the receiver.

4) Receive — the receiver reads the message from the channel.

5) Process — the receiver extracts the data from the message.


Cont..
19
Cont..
20

 This diagram also illustrates two important messaging concepts:


 1) Send and forget — in step 2, the sending application sends
the message to the message channel.
 Once that send is complete, the sender can go on to other work
 while the messaging system transmits the message in the
background.
 The sender can be confident that the receiver will eventually
receive the message and does not have to wait until that
happens.
 2) Store and forward— in step 2, when the sending application
sends the message to the message channel, the messaging system
stores the message on the sender’s computer, either in memory or
on disk.
Cont..
21

 In step 3, the messaging system delivers the message by


forwarding it from the sender’s computer to the receiver’s
computer, and then stores the message once again on the
receiver’s computer.
 This store-and- forward process may be repeated many times, as
the message is moved from one computer to another, until it
reaches the receiver’s computer.)
22 Middleware
Introduction
23

 What is Middleware?
 Layer between OS and distributed applications

 Provides common programming abstraction and


infrastructure for distributed applications.
 Hides complexity and heterogeneity of distributed system

 Bridges gap between low-level OS communications and


programming language abstractions.
 (large) set of predefined components

 Standard for constructing and interconnecting components

 Interchange, Upgrade, Adaptation and aggregation


What does Middleware?
24

 Enabling Interactions
 Facilitate components interactions (e.g., supporting naming
and dynamic discovery of services)
 Dealing with heterogeneous components (e.g., components
and services developed using different technologies)
What does Middleware?
25

 Supporting Interactions
 Provide solutions for common problems of interactions
(e.g. inconsistencies and synchronization in accessing shared
resources, persistance)
 Provide support for openness (new components getting in
the system)
 Provide support for problems (fault recovery, replication)

 Provide support for system manager (monitoring, and


logging)
What does Middleware?
26

 Promoting Context-Awareness
 Have components be aware of “what’s happening” (e.g., a
new component has connected, a component changed its
state, the room temperature has changed)
 Virtualization of environmental resources into digital
resources (e.g., a thermostat as a software object)
27
Operating System Vs Middleware
28

 Operating Systems
 Provide high-level
abstractions for the
resources of computer
 Facilitate and organize
access to resources
 Middleware
 Provide high-level
abstractions for the
resources of a network
 Facilitate and organize
access to distributed
resources
29
Middleware Requirements
30

 Network communication
 marshalling/unmarshalling(converting data values from their
local representation to a network format
 Coordination
 activation/termination, threading, group requests,
synchronicity
 Reliability
 delivery guarantees, total/partial ordering, atomicity,
replication
 Scalability
 transparency of access/location/migration/replication, load
balancing
 Heterogeneity
 platform, operating system, network OS, programming
language
Middleware Services
31

 Data Management Services


 Database and file system middleware
 Communication Services
 RPC (Remote Procedure Call) and messaging middleware.
 Distribution Services
 location, time and security services.
 Object Management Services
 by using Object Request Brokers (ORBs).
 Application Co-operation Services
 Transaction-Processing (TP) monitors, e-mail, etc.
 Presentation Services
 User Interfaces, printing and multi-media middleware.
 System Management Services
 Configuration-, change-, operations-, problem-, and
performance-management services
Distribution Support in Middleware
32

 Hidden from application programmers


Five distributed services required
 Remote communication protocols
 e.g., RPC, message passing
 Directory services
 for accessing shared, globally-available services
 Security services
 protection of shared resources via authentication
 Transaction services
 for concurrent data access/update
 System management services
 service monitoring, management, and administration
Advantages of Middleware
33

 Real time information access among systems

 Streamlines business processes and helps raise


organizational efficiency.

 Maintains information integrity across multiple systems


Disadvantages of Middleware
34

 high development costs.


 implementations are very time consuming, and need a lot of
resources.
 There are few people with experience in the market place.
 There exists relatively few satisfying standards.
 The tools are not good enough.
 Middleware often threatens the real-time performance of a
system.
 Middleware products are not very mature.
Cont’d
35
Part I: Remote Procedure Call (RPC)
36

 When a process on machine A calls a procedure on


machine B, the calling process on A is suspended, and
execution of the called procedure takes place on B.
 Information can be transported from the caller to the
called in the parameters and can come back in the
procedure result.
 No message passing at all is visible to the
programmer . This method is known as Remote
procedure call (RPC) .
Part I: Remote Procedure Call (RPC)
37

 Remote procedure call (RPC) is an Inter-


process communication technology that
allows a computer program to cause a
subroutine or procedure to execute in
another address space (commonly on
another computer on a shared network)
without the programmer explicitly coding
the details for this remote interaction.
Part I: Remote Procedure Call (RPC)
38

 Masks remote function calls as being local


 Client/server model
 Request/reply paradigm usually implemented with message
passing in RPC service
 Marshalling of function parameters and return value
 The most famous RPC toolset is DCE (Distributed Computing
Environment)
Part I: Remote Procedure Call (RPC)
39

 The RPC system hides the details that allow


communication to takes place by providing a stub on
client side.
 Typically a separate stub exits for each separate
procedure
 When the client invokes a remote procedure , the RPC
system calls the appropriate stub , passing it the
parameter provided to the remote procedure .
 This stub locate the port on the server and marshals the
parameter
 Parameter marshalling involves packing the parameters
into a form that can be transmitted over network
Part I: Remote Procedure Call (RPC)
40

 The stub then transmits a message to the server


using message passing
 Similar stub on the server side receives this message
and invokes the producer on the server
 If necessary return values are passed to the client
using the same techniques
41
Part I: Remote Procedure Call (RPC)
42

Remote
Caller RPC Service RPC Service
1) Marshal args Function
2) Generate ID message
3) Start timer 4) Unmarshal
call(…) 5) Record ID fun(…)

8) Unmarshal 6) Marshal
9) Acknowledge 7) Set timer
Part I: Remote Procedure Call (RPC)
43
Properties of RPC
44

 Language-level pattern of function call


 easy to understand for programmer
 Synchronous request/reply interaction
 sender and receiver need to connect to the network at the
same time
 natural from a programming language point-of-view
 matches replies to requests
 built in synchronisation of requests and replies
 Distribution transparency (in the no-failure case)
 hides the complexity of a distributed system
 Various reliability guarantees
 deals with some distributed systems aspects of failure
Disadvantages of RPC
45

 Synchronous request/reply interaction


 tight coupling between client and server
 client may block for a long time if server loaded
 leads to multi-threaded programming at client
 slow/failed clients may delay servers when replying
 multi-threading essential at servers
 Distribution Transparency
 Not possible to mask all problems
 RPC paradigm is not object-oriented
 invoke functions on servers as opposed to methods on objects
Part II: Object-Oriented Middleware (OOM)
46

 Objects can be local or remote


 Object references can be local or remote
 Remote objects have visible remote interfaces
 Masks remote objects as being local using proxy objects
 Remote method invocation

local OOM OOM remote

object object
object A request request skeleton
broker broker
object B
/ /
object
object
manager
proxy manager
object B object B
Properties of OOM
47

 Support for object-oriented programming model


 objects, methods, interfaces, encapsulation, …

 Synchronous request/reply interaction


 same as RPC

 Location Transparency
 system (ORB) maps object references to locations

 Services compromising multiple servers are easier to build with


OOM
 RPC programming is in terms of server-interface (operation)

 RPC system looks up server address in a location service


48

Reading Assignment
what are disadvantages
of OOM?
Distributed Object Paradigms
49

 Distributed object computing extends an object-oriented


programming system by allowing objects to be distributed
across a heterogeneous network.
Distributed Object Paradigms
50
Cont’d
51

 The architectures of CORBA, DCOM and Java/RMI provide


mechanisms for transparent invocation and accessing of remote
distributed objects.
 Though the mechanisms that they employ to achieve remoting
may be different, the approach each of them take is more or
less similar.
 All three distributed object technologies are based on a
client/server approach
 They are Implemented as network calls operating at the level
of bits and bytes transported on network protocols like TCP/IP.
Why Distributed Technology Standards?
52

 In order to avoid the hard and error prone implementation of


network calls directly in the client and server (objects).
 To address complex networking interactions

 by abstract and hide the networking issues

 and instead let the programmer concentrate on


programming the business logic.
 The basic idea behind network abstractions like RPC (Remote
Procedure Call) is to replace the local (server) and remote
(client) end by stubs.
 This makes it possible for both client and server to strictly use
local calling conventions and thereby be unaware of calling a
remote implementation or being called remotely.
Cont’d
53

 The marshalling and un marshalling actions :


 are responsible for converting data values from their local
representation to a network format and on to the remote
representation .
 Format differences like byte ordering and number
representations are bridged this way.
54

 The object services offered by all three approaches are


defined through interfaces.
Interface :
 The interface is for all defined as a collection of named
operations, each with a defined signature and optionally a
return type.
 The interface serves as a contract between the server and

client.
How Remoting Works?
55

 To invoke a remote method, the client makes a call to the


client proxy.

 The client side proxy packs the call parameters into a request
message and invokes a wire protocol like (Internet Inter-ORB
Protocol)IIOP(in CORBA) or (Object Remote Procedure Call) ORPC(in
DCOM) or (Java Remote Method Protocol) JRMP(in Java/RMI) to
ship the message to the server.
Cont’d
56

 At the server side, the wire protocol delivers the message to


the server side stub.
 The server side stub then unpacks the message and calls the
actual method on the object.
 In both CORBA and Java/RMI, the client stub is called the
stub or proxy and the server stub is called skeleton.
 In DCOM, the client stub is referred to as proxy and the
server stub is referred to as stub.
CORBA
57

 It is a standard architecture for distributed object systems.


 It allows a distributed, heterogeneous collection of objects to
interoperate.
 Relies on a protocol called the Internet Inter-ORB Protocol
(IIOP) for remoting objects
 Everything in the CORBA architecture depends on an Object
Request Broker (ORB).
Cont’d
58

 ORB: acts as a central Object Bus over which each CORBA


object interacts transparently with other CORBA objects
located either locally or remotely.

 CORBA is the most used middleware standard in the


non-Windows market.
 The OMG was founded in 1989 to promote the adoption of
object-oriented technology and reusable software components.
ORB
59

 Delivers client requests and server responses


 provides a layer of indirection between clients and servers
 The ORB hides object
 location
 Implementation
 execution state
 communication mechanisms
 Requests on an object are made using its reference
 Clients can obtain references in three ways
 create an object to get its reference
 invoke a lookup service (naming, trading)
 use persistent references to objects
60

 When a CORBA client requests a service from a CORBA server


object, the ORB is responsible for:
 Find the implementation of the server object.

 Prepare the object for requests.

 Give the object reference back to the client object.

 Communicate the requests to the server object.

 Returning the server result back to the client.


61

 A CORBA object interacts with the ORB either through the ORB
interface or through an Object Adapter(either a Basic Object
Adapter (BOA) or a Portable Object Adapter (POA))

 The ORB simplifies distributed programming by decoupling the


client from the details of the method invocations. This makes
client requests appear to be local procedure calls.
The IDL Interface
62

 Whenever a client needs some service from a remote


distributed object, it invokes a method implemented by the
remote object.
 The service that the remote distributed object (Server)
provides is encapsulated as an object
 The remote object's interface is described in an Interface
Definition Language (IDL).
 The interfaces specified in the IDL file serve as a contract
between a remote object server and its clients.
Stubs and Skeletons
63

 Used in CORBA’s static invocation


 Programming language-specific counterparts to IDL définitions
 Stubs and skeletons are generated using the IDL definitions
 Stubs: create and issue requests on the client side
 surrogates or proxies

 perform marshaling of requests

 Skeletons :receive and forward requests to objects on the


server side
 perform unmarshalling of requests

 return results via the server and client ORBs to the stub
Static Method Invocation
64

 Define object classes using IDL


 Run IDL file through language precompiler
 Add implementation code to skeletons
 Compile code
 Bind class definitions to Interface Repository
 Register the run-time objects with Implementation Repository
Dynamic Method Invocation
65

 Obtain interface name from Interface Repository


 Obtain method description from Interface Repository
 Create argument list
 Create request
 Invoke request
Internet Inter-ORB Protocol (IIOP)
66

 The Internet Inter-ORB Protocol (IIOP) was developed in the


CORBA 2.0 specification as a protocol for communication
between ORBs from different vendors.

 IIOP is a specialisation of the General Inter-ORB Protocol


(GIOP) and runs on top of TCP/IP. CORBA relies on IIOP or
other specialisations of GIOP for remoting objects.
67

 The interactions are done either by the ORB interface or


through an Object Adapter.

 The ORB interface is an abstract interface for an ORB to


decouple applications from implementation details.
 This interface provides various helper functions such as

 converting object references to strings and vice versa,


 creating argument lists for requests made through the
dynamic invocation interface.
68

 The Object Adapter assists the ORB with delivering requests


to the object and with activating the object.
 The object adapter associates object implementations with the
ORB.
 Object adapters can be specialised to provide support for
certain object implementation styles (such as OODB object
adapters for persistence and library object adapters for non-
remote objects)
CORBA Supports:
69
CORBA Services
70

 Collections of system-level services packaged with IDL-


specified interfaces are called CORBA services.
 They are used to augment and complement the functionality of
the ORB.
 OMG has published standards for sixteen object services:
CORBA object services
71
Benefits of CORBA
72

 Programming-language independent interface.


 Legacy integration

 Rich distributed object infrastructure.

 Location transparency.

 Network transparency

 Direct object communication.

 Dynamic Invocation Interface.


DCOM
73

 which is often called 'COM on the wire‘.(Distributed


Component Object Model )
 supports remoting objects by running on a protocol called the
Object Remote Procedure Call (ORPC).
 A DCOM server is a body of code that is capable of serving
up objects of a particular type at runtime.
Cont’d
74

 Each DCOM server object can support multiple interfaces each


representing a different behavior of the object.
 A DCOM client calls into the exposed methods of a DCOM
server by acquiring a pointer to one of the server object's
interfaces.
 The client object then starts calling the server object's exposed
methods through the acquired interface pointer as if the
server object resided in the client's address space.
Cont’d
75

 DCOM is now heavily used on the Windows platform.


 COM is the world most widely used component software model and
dominates the desktop market.
 The Microsoft Interface Definition Language, MIDL, is used to
define interfaces for the DCOM (and RPC) objects.
 MIDL is an extension of DCE(Distributed Computing Environment)
(RPC) IDL and is based on C syntax and data types.
 The COM specification is at the binary level. This allows
components to be written in a diversity of programming
languages.
 The hardware platform must support COM services in order to
provide DCOM.
DCOM Supports:
76
Java/RMI
77

 Java/Remote Method Invocation, is a standard developed by


JavaSoft.
 Java has grown from a programming language to three basic
and completely compatible platforms;
 J2SE (Java 2 Standard Edition): is the foundational programming
language and tool-set for coding and component development.
 J2EE (Java 2 Enterprise Edition) : supplements J2SE and is a set
of technologies and components for enterprise and Internet
development.
 J2ME (Java 2 Micro Edition): is used for creating software for
embedded, mobile, consumer and other small devices like
Personal Digital Assistants (PDA) and mobile phones.
Cont’d
78

 RMI supports remote objects by running on a protocol


called the Java Remote Method Protocol (JRMP).
 Object serialisation is heavily used to marshal and un marshal
objects as streams.
 Both client and server have to be written in Java to be able to
use the object serialisation.
 The Java server object defines interfaces that can be used to
access the object outside the current Java virtual machine
(JVM) from another JVM on for instance a different machine.
Cont’d
79

 RMI registry on the server machine holds information of the


available server objects and provides a naming service for
RMI.
 A client acquires a server object reference through the RMI
registry on the server and invokes methods on the server
object as if the object resided in the client address space.
 The server objects are named using URLs and the client
acquires the server object reference by specifying the URL.
Cont’d
80

 When a Java/RMI client requests a service from the Java/RMI


server, it does the following [Java/RMI]:
 Initiates a connection with the remote JVM containing the
remote object
 marshals the parameters to the remote JVM

 waits for the result of the method invocation

 Un marshals the return value or exception returned

 Returns the value to the caller.


Cont’d
81

 By using serialisation of the objects, both data and code


can be passed between a server and a client – this allows
different instances of an object to run on both client and
server machines.
 To insure that code is downloaded or uploaded safely, RMI
provides extra security.
 Java/RMI can be used on a diversity of platforms and
operating systems as long as there is a JVM implementation
on the platform.
Comparison of Distributed Object Technologies
82

Programming languages
 CORBA is a specification and can therefore be used on
heterogeneous platforms, operating systems and programming
languages as long as there is an ORB implementation for the
platform and a language mapping for the programming
language.
 DCOM also supports multiple programming languages since it

is a binary standard.
 Java/RMI is only applicable as middleware between clients

and servers implemented in the Java language since it relies


heavily on Java object serialisation.
83

 Java offers an ORB (Java/IIOP) implementation as part of the


Java 2 Enterprise Edition (J2EE) that is quite similar in syntax
as RMI and that possibly will replace RMI as the preferred
Java middleware.
 Exposing Java objects directly through an ORB or through the
Java-IDL mapping makes it possible to invoke Java objects
from non-Java environments.
84

Development support
 Development support in the form of Integrated Development
Environments (IDE)
 In both CORBA and Java (including Java/RMI), have been

quite poor compared to the Microsoft development tools.


 This situation is however improving with support of design and
development patterns (for instance CORBA design patterns,
JavaBeans and EJB patterns) for the different technologies
(see [Link] and debugging of
remote objects.
85

Development support
 The system development support of COM in popular
languages like Visual Basic and Java (with Microsoft
extension) is very good when using Microsoft Visual Studio as
the development environment.
 Objects can easily be registered as COM server objects

without any specific coding.


 COM clients can import the interfaces to the COM server

objects through wrappers (of the client proxies) and then used
them as ordinary objects in the language.
86

Development support
 Especially the Java tools have became mature and supportive
in almost all kind of application development.
 The introduction of the CCM(Configuration Control and
Management) will probably make the development of CORBA
objects much easier.
87

Interface definition Language


 Both DCOM and CORBA offer an interface definition
language (IDL) to describe the interfaces for their respective
objects.
 For both cases, the IDL is language neutral and is used to
define mappings between different programming languages.
 The Microsoft Interface Definition Language (MIDL) is not like

the CORBA IDL specified by a formal notation (BNF).


 It is however some differences in both syntax and semantics
between the interface notions.
88

 Java/RMI does not have an own language for interface


description but have defined interface declarations as a
separate concept in the language and the interfaces are
stored as .java files.
 Java objects that implement the [Link] interface are
accessible by remote Java clients.
89

Object-oriented support
 Java/RMI and CORBA support multiple inheritance at the
interface level where DCOM only supports single inheritance.
 The implication of the missing support for inheritance is that
COM components can not be modified to create new
components. It does however allow some flexible forms of
programming.
 DCOM and Java/RMI support multiple interfaces for an
object (or component), each representing a different view or
behaviour of the object.
 Such a concept did not exist in the CORBA 2.0 specification
[Chung], but is included as part of the CORBA 3.0
specification.
90

Interface identification
 CORBA identifies interfaces by the interface name and the
implementations by mappings in the Implementation.
 Interfaces and classes (implementations) are uniquely defined in
COM by use of UUID. And the UUIDs are registered in the Windows
System registry.
 UUIDs allow for versioning where a server can extend the
functionality by implementing a new interface with a new UUID, while
also implementing the old interface .
 Older clients request the old interface without knowing about the
new, new clients can use both the old and the new interface.
 Java/RMI identifies classes by name and implementations by
mappings to an URL in the RMI registry.
91

Object identification
 Object reference in CORBA

 An interface pointer in COM and

 ObjIDs (faulting reference) in Java/RMI, provides unique


identification of server objects.
92

Invocation of objects
 CORBA and DCOM support both static and dynamic
invocations of objects.
 the MIDL compiler creates the proxy and stub code, which

are registered in the Windows system registry.


 Any Java object inherits the [Link], which holds the
type information.
93

Parameter passing
 The three technologies support parameters passing by either
value or by reference.
 COM and CORBA interfaces are passed as references, Java

Interfaces must implement the [Link] interface to be


passed by reference, all other objects and parameters are
passed by value.
 Parameters that are Java objects must implement the

Serializable interface to be passed by value.


94

Garbage collection
 CORBA does not attempt to perform general-purpose garbage
collection, but some CORBA products do include proprietary services
for garbage collection.
 Both DCOM and Java attempts to perform garbage collection of
remote server objects.
 A COM server object keeps track of the clients by using reference
counting. When no clients reference the COM object instance, it
deletes itself.
 The DCOM method for garbage collection (a pinging mechanism) has
been criticised due to increased network traffic.
 Java objects have a built-in reference counting where a separate
process within the JVM, the garbage collector releases instances when
no other object has references to the object.
95

Hardware support
 CORBA and Java/RMI are supported on nearly all
hardware platforms.
 The main advantage with Java middleware is that the same

version of an application can with few changes run on any


platform with a compatible JVM.
 DCOM is mainly supported on the Windows platform, but it

has been attempts to provide COM on other hardware


platforms without being very successful;
96

Network protocols
 The DCOM network protocol is strongly tied to RPC, the
CORBA and Java/RMI network protocols are not .
 The CORBA GIOP (General Inter-ORB Protocol) specification

was submitted to provide interoperability between ORBs


operating on different network protocols.
 The IIOP is the Internet specialisation of GIOP providing

transport over secure socket layers over TCP/IP.


 All CORBA 2-compliant ORBs are free to use alternative
protocols, as long as they provide IIOP as well .
97

Security
 CORBA provides security in two levels
 Level1:comprises user authentication, authorisation, data
encryption and integrity.
 Level 1 allows applications that are not security savvy(know-
how), to relegate themselves to a secure domain.
 Level2:provides a stronger security model where applications
are security aware.
 DCOM expects the user to be authenticated and authorised as
a user in the Windows NT domain to control access to the
components.
 Java/RMI uses the built-in Java security
98

Component Models
 All three standards(CORBA,COM and Java RMI) have their
component model extensions,
 CORBA with the CORBA Component Model (CCM),

 COM with the Microsoft Transaction Server (COM+/MTS),

 Java/RMI with the Java Bean and Enterprise JavaBeans (EJB)


component models.
 Microsoft is deliver a new application development framework

called .NET.

You might also like