Title: Managing Complexity: Middleware Explained By Andrew Campbell, Geoff Coulson, Michael Kounavis
1Managing Complexity Middleware
ExplainedByAndrew Campbell, Geoff Coulson,
Michael Kounavis
- Presented
- By
- Manav Purohit
- Nick Morgowicz
2Distributed Computing
- Computing is said to be Distributed when the
programs and data that computers work on are
spread over more than one computers in a network.
3Features of Distributed Computing Platform
- Addressing
- In order for components of a distributed system
to find each other, each must have an address.
Servers must be able to publish their address,
and clients must be able to acquire a server's
address, either by administrative intervention or
looking it up in a naming service. - Synchronization
- All participating parties must agree on a
certain protocol when data may be sent or
received. - Encoding
- Defines the format used for transferring data.
- Interoperability
- The distributed platform should not be limited
to a certain hardware, operating system or
programming language.
4Middleware
- Middleware is a general term for any programming
that serves to "glue together" or mediate between
two separate and often already existing programs.
5Benefits of using middleware
- Simplifies the task of sharing data between
applications and provide a common interface to
different applications - Provides persistence
- Provide general purpose services which aid
application development and deployment.
6Types of Middleware
Technology Metaphor Example What it does
ORB Translator CORBA, EJB Allows components written in different languages to transparently inter-operate across a network
TP Monitors Illusionist CICS - IBM Using sophisticated resource management techniques hundreds of clients appear to have 1-1 connections with data server and offers scalability and reliability
Database Access Gateway JDBC Facilitates access to databases
Messaging Postal Services MQSeries IBM Relays data from one application to another in message format
Security and Directory Card Key Reader LDAP Intercedes between incoming requests and requested resources to enforce access policies
7Remote Procedure Call (RPC)
- Remote Procedure Call (RPC) is a protocol that
one program can use to request a service from a
program located in another computer in a network
without having to understand network details.
8Remote Procedure Call (RPC)
9Common Object Request Broker Architecture
- The basic idea of CORBA is much the same as it is
for RPC. However, whereas RPC is based on a
procedural language and allows remote procedure
calls, CORBA is based on object-oriented
programming and allows remote method invocations
on objects. - Interface Definition
- Interface Definition Language (IDL) is used to
describe object interfaces. - Interface declarations are independent of the
programming language. - Addressing
- Interoperable Object References (IOR) are used as
addresses of remote objects. - IORs are strings stored in files which can be
converted to an object references by ORB.
10Common Object Request Broker Architecture
- Invocation
- Using the interface and the address, methods can
be invoked and executed remotely - Interoperability
- General Inter-ORB Protocol (GIOP) to describe the
format for requests and replies when transported
from one ORB to another as part of a method
invocation.
11Remote Method Invocation
- RMI allows programmers to develop distributed
Java programs with the same syntax and semantics
used for non-distributed systems. - RMI supports two classes that implement the same
interface. The first class is the implementation
of the behavior, and it runs on the server. The
second class acts as a proxy for the remote
service and it runs on the client.
12Remote Method Invocation
- Stubs and Skeletons are proxies which know how to
forward method calls between participating
objects - Remote reference layer defines and supports
invocation - The transport layer makes connection between JVMs
13Microsofts DCOM Technology
- History
- Based on Microsofts COM (Component Object Model)
technology which provides a framework for
application interoperation within Windows. - Operation
- Similar to CORBA since operating system calls are
intercepted, processed, and redirected. - Provides persistence, security, and transactions.
- Specifications
- Closed technology owned and developed soley by
Microsoft. - Quick evolution due to no external politics.
- Experience?
- How does DCOM actually fit within Windows and
developing?
14Microsofts DCOM Technology
- Operation
- DCOM intercepts Client calls to deliver to the
end component
15Open Implementations
- Popularity of Middleware causes technology to
spread - Multimedia, real-time and embedded systems,
handheld devices, and mobile networking - Active projects?
- Intellisync (Palm/CE to Groupware)
16Network Programming
- Networking technology and connectivity is
standard and is governed by RFCs and whitepapers - Programming routers, switches, DSUs, etc, are
manufacture specific - Would this be in essence a glorified SNMP?
17Middleware Glossary
- Common Object Request Broker Architecture
(CORBA) - Specification from the Object Management Group
that describes how object-oriented networked
applications communicate with one another. - Distributed Component Object Model (DCOM)
- Microsofts specification/model that allows
developers to create objects and have other
programs and objects operate on them in a
distributed environment.
- Message-oriented middleware (MOM)
- Comprised of message-passing and message-queuing
middleware in which information is passed in the
form of a message from one program to one or more
other programs. - Stub
- A client-side proxy for the remote object that
implements all the interfaces supported by the
remote object.
18Current Middleware Developments
- Components
- Piece applications together with multiple
components. - Popular in MS DCOM and Suns JavaBeans.
- CORBA cannot support until upcoming version 3.0.
- Plans
- Improve reliability, availability, and
scalability to support millions of objects that
must adhere to strict performance requirements.
19Problems with Middleware
- Speed and Performance
- Current products have a reputation of being slow.
- Development is going into understanding why.
- Quality of Service
- Lack of interfaces for QoS specification and
enforcement
20Questions/Discussion ?
- Personal experience
- Web based middleware and development
- Automation