SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
1

Middleware Technologies

What is Middleware?
Infrastructure that supports (distributed) componentbased application development
a.k.a. distributed component platforms
mechanisms to enable component communication
mechanisms to hide distribution information
(large) set of predefined components

Standard for constructing and interconnecting
components
interchange
upgrade
adaptation
aggregation

CSCI 477

April 8, 2003
2

Middleware Technologies

Middleware Requirements
Network communication
marshalling/unmarshalling

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
CSCI 477

April 8, 2003
Middleware Technologies

3

Middleware Categories
Transactional
two-phase commit for distributed transactions
e.g., IBM’s CICS

Message-oriented (MOM)
communication via message exchange
e.g., Sun’s JMS

Procedural
remote procedure calls as the foundation
e.g., DCE RPC

Object-based
communication among and via distributed objects
e.g., CORBA, COM

Component-based
support for distributed components
e.g., EJB

CSCI 477

April 8, 2003
4

Middleware Technologies

Elements of Middleware
Software components
component interfaces
properties
methods
events

Containers
shared context of interaction with other components
provide access to system-level services

Metadata
self-descriptive information used by a component to flexibly
communicate with others

Integrated development environment
e.g., VisualCafe for Java

CSCI 477

April 8, 2003
Middleware Technologies

5

Distribution Support in Middleware
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

CSCI 477

April 8, 2003
6

Middleware Technologies

CORBA
A middleware platform that supports a standardized OO
architecture for software applications
Common Object Request Broker Architecture
Open standard - developed by the Object Management
Group
CORBA is a component of OMG’s Object Management
Architecture

CORBA supports distributed object computing
CORBA uses a broker
an intermediary handling requests in a system
facilitates communication between clients and server objects
separates a component’s interface from its implementation

CSCI 477

April 8, 2003
7

Middleware Technologies

CORBA’s Enhancements to Client/Server
Extends distributed computing paradigms, such as DCE
RPC, to distributed object computing
Mutable client-server relationships
clients and servers not hard-wired to one another
dynamic discovery of component interfaces

Interaction intermediary
ORB
object adapters
gateways for other object systems

Both synchronous and deferred synchronous
communication
deferred synchronous

CSCI 477

~
~

asynchronous

April 8, 2003
Middleware Technologies

8

Main CORBA Features
Object request broker (ORB)
OMG interface definition language (IDL)
Language mappings
Stubs and skeletons
Interface repository
Dynamic invocation and dispatch
Object adapters
Inter-ORB protocols

CSCI 477

April 8, 2003
9

Middleware Technologies

CORBA Architecture

Object
Implementation

Client

Static
Skeletons
Dynamic
Invocation

Interface
Repository

CSCI 477

Client IDL
Stubs

ORB
Interface

ORB Core

Dynamic
Skeleton
invocation

(Basic)
Object
Adapter

Implementation
Repository

April 8, 2003
10

Middleware Technologies

Object Request Broker
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
uses factory objects

invoke a lookup service (naming, trading)
use persistent references to objects

CSCI 477

April 8, 2003
11

Middleware Technologies

OMG IDL
Specifies (implementation-independent) object interface
Basic types
short, long, long long, float, double, long double, char, wchar,
boolean, octet, enum, string, wstring
Any

Constructed types
struct, union, array, sequence

IDL is language-independent
Standardized language mappings for C, C++, Ada95,
COBOL, Smalltalk, Java, ...
Marshalling
Unmarshalling

CSCI 477

April 8, 2003
12

Middleware Technologies

Stubs and Skeletons
Used in CORBA’s static invocation
Programming language-specific counterparts to IDL
definitions
Stubs and skeletons are generated using the IDL definitions

Stubs create and issue requests on the client side
a.k.a. surrogates or proxies
perform marshalling 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

CSCI 477

April 8, 2003
13

Middleware Technologies

Example of Stubs and Skeletons
Interface Definition
interface Employee {
void promote(in char new_job_class);
void dismiss(in DismissalCode reason,
in String description);
};

Client Application

Server Application

Object Reference

Object Implementation

Operation
promote
Operation
dismiss

CSCI 477

Method
Emp_promote
Method
Emp_dismiss

April 8, 2003
Middleware Technologies

14

Static Method Invocation
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
Instantiate the objects on the server

CSCI 477

April 8, 2003
15

Middleware Technologies

Interface Repository
Used for performing operations on objects whose
interface is not known at compile time
Knowing interfaces of all objects a priori may be
impractical
independently developed components
fast changing parts of the system
dynamic manipulation

IR allows access to the IDL type system at runtime
IR is a CORBA object whose functionality is invoked like any
other object
allows CORBA’s dynamic invocation

Not to confuse with Implementation Repository that
contains information for locating and activating objects

CSCI 477

April 8, 2003
16

Middleware Technologies

Dynamic Method Invocation
Obtain interface name from Interface Repository
Obtain method description from Interface Repository
Create argument list
Create request
Invoke request
Dynamic vs. static invocation
harder to program
less robust type checking
slower (factor of 40)
harder to understand/document

CSCI 477

April 8, 2003
17

Middleware Technologies

CORBA Services
Naming
Life Cycle
create, copy, move, delete objects

Events
register for interest in specific events (e.g., push, pull)

Object Trader
yellow pages for objects based on services they provide

Transactions
flat, nested
involving heterogeneous ORBs and non-ORBs

Concurrency Control
coordinate access to shared resources using locks

CSCI 477

April 8, 2003
Middleware Technologies

18

CORBA Services (cont.)
Object Security
authentication, audits, encryption

Persistence
Query
find objects of matching attributes

Collections
manipulate objects in a group

Relationships
dynamically create and keep track of relationships

Time
Licensing
license manager

Properties
CSCI 477

April 8, 2003
19

Middleware Technologies

Inter-ORB Protocols
CORBA standard does not cover all of CORBA
e.g., different protocols and object references are possible

General ORB interoperability architecture
based on the General Inter-ORB Protocol (GIOP)
one instance of GIOP is the IIOP (built on top of TCP/IP)
Environment-Specific Inter-ORB Protocols (ESIOP)
allow CORBA and non-CORBA components to interact

one instance is the Distributed Computing Environment
Common Inter-ORB Protocol (DCE-CIOP)

Standard object reference format
Interoperable Object Reference (IOR)

Portable Object Adapters (POA)

CSCI 477

April 8, 2003
Middleware Technologies

20

COM/DCOM
Microsoft’s middleware infrastructure in many ways
similar to CORBA
Defines a binary standard for component interoperability
programming language independence

Platform independent
Windows (95, 98, NT)
Mac
Unix

Distribution transparency
does exploit operational characteristics

Dynamic component loading and unloading

CSCI 477

April 8, 2003
Middleware Technologies

21

Basic COM Features
Binary standard for component interactions
Support for interfaces
defined in an IDL different from CORBA’s

Base interface with introspection support
dynamic discovery of other components’ interfaces
garbage collection via reference counting

Unique component ID mechanism
Communication is synchronous by default
asynchronous communication supportable by callbacks and
connection points

CSCI 477

April 8, 2003
22

Middleware Technologies

Binary Standard
Component operation invocation via virtual tables —
vtables
works for languages that support function pointers
e.g., C, C++, Smalltalk

the client contains a pointer to the vtable
the vtable contains a pointer to the server function
one layer of indirection over standard function calls
VTable

Server-i

Client

Server-j

CSCI 477

April 8, 2003
23

Middleware Technologies

COM Components
Compiled code that provides some service to a system
A component may support a number of interfaces
an interface is a collection of semantically related functions
COM interfaces begin with “I” by convention

All access to component services is via interface pointers
allows service reimplementation

Each component supports base interface IUnknown
Transparent remote access via proxy-stub pairs
similar to CORBA

Every component has a globally unique identifier (GUID)
128 bit integer
used to refer to component’s TypeLibrary
(metadata repository)
CSCI 477

April 8, 2003
24

Middleware Technologies

Notes on COM Interfaces
Interface ≠ class
they contain no implementation
multiple implementations of an interface possible

Interface ≠ component
interfaces are the (binary) component interaction standard

Heterogeneous COM clients and servers interact via
interface pointers
A single COM component can implement multiple
interfaces
Interfaces are strongly typed
every interface has a GUID

Interfaces are immutable
e.g., no subtyping, subclassing, inheritance
CSCI 477

April 8, 2003
25

Middleware Technologies

Interface IUnknown
Must be implemented by all COM components
Has three methods
QueryInterface
provides introspection capabilities
allows runtime discovery of component interface
delivers interface pointer to a client

AddRef
called when another component is using the interface
increments reference count

Release
called when another component stops using the interface
decrements reference count

Supports garbage collection
a component can be unloaded when its reference count is 0
CSCI 477

April 8, 2003
Middleware Technologies

26

Distributed COM
DCOM = COM binary standard
+
runtime infrastructure for communicating across
distributed address spaces
initially only on Windows
recently adding Mac and Unix

Uses OSF’s DCE RPC as a basis for remote interaction
proxy/stub mechanism

Attempts to address challenges of distributed computing
interacting components should be “close” to one another
some components’ locations are fixed
inverse relationship between component size and flexibility
direct relationship between component size and network
traffic
CSCI 477

April 8, 2003
27

Middleware Technologies

Distribution in COM/DCOM — In-Process
Client

Server

Distribution in COM/DCOM — Inter-Process
Client

Proxy
Security
LPC

CSCI 477

RPC

Stub
Security

Server

RPC

LPC

April 8, 2003
28

Middleware Technologies

Distribution in COM/DCOM — Cross-Network
Client

Proxy
Security

Stub

RPC

Security

Network Protocol
Stack

Server

RPC

Network Protocol
Stack

DCOM
Network
Protocol

CSCI 477

April 8, 2003
29

Middleware Technologies

Distribution in DCOM
Full distribution transparency
component location is hidden from clients (and client
developers)
method invocation is identical
underlying communication mechanisms change

Comp1

Comp2

CSCI 477

Comp2

Comp3

Comp4

April 8, 2003
30

Middleware Technologies

Garbage Collection in COM/DCOM
Networks are fragile
connections may break for many reasons
if a connection to a client is broken, a server component
should not needlessly consume resources

COM/DCOM uses a pinging protocol to detect (in)active
clients
a ping message is sent every two minutes from client to
server
distributed garbage collection
transparent to the application (developer)
reference count is decremented if multiple (>3) ping periods
pass without receiving a message

The protocol is efficient
ping messages are piggybacked onto existing COM calls

CSCI 477

April 8, 2003

Contenu connexe

Tendances

Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecturenupurmakhija1211
 
Lecture4 corba
Lecture4   corbaLecture4   corba
Lecture4 corbapoovi117
 
CORBA Component Model
CORBA Component Model CORBA Component Model
CORBA Component Model Elham Hormozi
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example Alexia Wang
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
CORBA - Introduction and Details
CORBA - Introduction and DetailsCORBA - Introduction and Details
CORBA - Introduction and Detailsdgsdg2websd
 
Component object model and
Component object model andComponent object model and
Component object model andSaransh Garg
 
82159587 case-study-on-corba
82159587 case-study-on-corba82159587 case-study-on-corba
82159587 case-study-on-corbahomeworkping3
 
Hibernate Interview Questions
Hibernate Interview QuestionsHibernate Interview Questions
Hibernate Interview QuestionsSyed Shahul
 
Java RMI Detailed Tutorial
Java RMI Detailed TutorialJava RMI Detailed Tutorial
Java RMI Detailed TutorialMasud Rahman
 
Adcom2006 Full 6
Adcom2006 Full 6Adcom2006 Full 6
Adcom2006 Full 6umavanth
 
Ejb - september 2006
Ejb  - september 2006Ejb  - september 2006
Ejb - september 2006achraf_ing
 
ToxOtis: A Java Interface to the OpenTox Predictive Toxicology Network
ToxOtis: A Java Interface to the OpenTox Predictive Toxicology NetworkToxOtis: A Java Interface to the OpenTox Predictive Toxicology Network
ToxOtis: A Java Interface to the OpenTox Predictive Toxicology NetworkPantelis Sopasakis
 
Distributed Programming using RMI
Distributed Programming using RMIDistributed Programming using RMI
Distributed Programming using RMIbackdoor
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkBill Lyons
 

Tendances (20)

Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
Chapter 17 corba
Chapter 17 corbaChapter 17 corba
Chapter 17 corba
 
Lecture4 corba
Lecture4   corbaLecture4   corba
Lecture4 corba
 
CORBA Component Model
CORBA Component Model CORBA Component Model
CORBA Component Model
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
Corba by Example
Corba by ExampleCorba by Example
Corba by Example
 
CORBA - Introduction and Details
CORBA - Introduction and DetailsCORBA - Introduction and Details
CORBA - Introduction and Details
 
Component object model and
Component object model andComponent object model and
Component object model and
 
CORBA
CORBACORBA
CORBA
 
Corba
CorbaCorba
Corba
 
82159587 case-study-on-corba
82159587 case-study-on-corba82159587 case-study-on-corba
82159587 case-study-on-corba
 
Learning activity 3
Learning activity 3Learning activity 3
Learning activity 3
 
Hibernate Interview Questions
Hibernate Interview QuestionsHibernate Interview Questions
Hibernate Interview Questions
 
Java RMI Detailed Tutorial
Java RMI Detailed TutorialJava RMI Detailed Tutorial
Java RMI Detailed Tutorial
 
Adcom2006 Full 6
Adcom2006 Full 6Adcom2006 Full 6
Adcom2006 Full 6
 
Ejb - september 2006
Ejb  - september 2006Ejb  - september 2006
Ejb - september 2006
 
ToxOtis: A Java Interface to the OpenTox Predictive Toxicology Network
ToxOtis: A Java Interface to the OpenTox Predictive Toxicology NetworkToxOtis: A Java Interface to the OpenTox Predictive Toxicology Network
ToxOtis: A Java Interface to the OpenTox Predictive Toxicology Network
 
Distributed Programming using RMI
Distributed Programming using RMIDistributed Programming using RMI
Distributed Programming using RMI
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
 

En vedette (10)

Distributed systems and middleware
Distributed systems and middlewareDistributed systems and middleware
Distributed systems and middleware
 
MIDELWARE TECH
MIDELWARE TECHMIDELWARE TECH
MIDELWARE TECH
 
middleware
middlewaremiddleware
middleware
 
Middleware
MiddlewareMiddleware
Middleware
 
Middleware
MiddlewareMiddleware
Middleware
 
Middleware
MiddlewareMiddleware
Middleware
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed application
 
Distributed Systems Real Life Applications
Distributed Systems Real Life ApplicationsDistributed Systems Real Life Applications
Distributed Systems Real Life Applications
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
 

Similaire à Middleware1

05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studieshushu
 
Corba in power system
Corba in power systemCorba in power system
Corba in power systemPROTIM PAUL
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Sri Prasanna
 
corba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxcorba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxAasimAbdul
 
Inter ORB Protocol and Object Persistence & Object Serialization
Inter ORB Protocol and Object Persistence & Object SerializationInter ORB Protocol and Object Persistence & Object Serialization
Inter ORB Protocol and Object Persistence & Object SerializationAnkit Mulani
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1phanleson
 
Object and component based middleware for distributed system development
Object and component based middleware for distributed system developmentObject and component based middleware for distributed system development
Object and component based middleware for distributed system developmentektabhalwara
 
J2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net WorkshopJ2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net Workshopdanglvh
 
85305524 i-t-case-study
85305524 i-t-case-study85305524 i-t-case-study
85305524 i-t-case-studyhomeworkping3
 
ADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.pptADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.pptrani marri
 
20CS2021-Distributed Computing module 2
20CS2021-Distributed Computing module 220CS2021-Distributed Computing module 2
20CS2021-Distributed Computing module 2Kathirvel Ayyaswamy
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETWaqas Tariq
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptxKaviya452563
 
Component of .net
Component of .netComponent of .net
Component of .netSireesh K
 

Similaire à Middleware1 (20)

05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
 
Corba in power system
Corba in power systemCorba in power system
Corba in power system
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
 
corba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxcorba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptx
 
Inter ORB Protocol and Object Persistence & Object Serialization
Inter ORB Protocol and Object Persistence & Object SerializationInter ORB Protocol and Object Persistence & Object Serialization
Inter ORB Protocol and Object Persistence & Object Serialization
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1
 
CORBA.ppt
CORBA.pptCORBA.ppt
CORBA.ppt
 
.Net Session Overview
.Net Session Overview.Net Session Overview
.Net Session Overview
 
Object and component based middleware for distributed system development
Object and component based middleware for distributed system developmentObject and component based middleware for distributed system development
Object and component based middleware for distributed system development
 
J2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net WorkshopJ2 Ee Vs. .Net Workshop
J2 Ee Vs. .Net Workshop
 
Corba
CorbaCorba
Corba
 
85305524 i-t-case-study
85305524 i-t-case-study85305524 i-t-case-study
85305524 i-t-case-study
 
ADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.pptADVANCED JAVA MODULE III & IV.ppt
ADVANCED JAVA MODULE III & IV.ppt
 
20CS2021 Distributed Computing
20CS2021 Distributed Computing 20CS2021 Distributed Computing
20CS2021 Distributed Computing
 
20CS2021-Distributed Computing module 2
20CS2021-Distributed Computing module 220CS2021-Distributed Computing module 2
20CS2021-Distributed Computing module 2
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NET
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptx
 
Component of .net
Component of .netComponent of .net
Component of .net
 
18CS3040 Distributed System
18CS3040 Distributed System	18CS3040 Distributed System
18CS3040 Distributed System
 
18CS3040_Distributed Systems
18CS3040_Distributed Systems18CS3040_Distributed Systems
18CS3040_Distributed Systems
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Middleware1

  • 1. 1 Middleware Technologies What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication mechanisms to hide distribution information (large) set of predefined components Standard for constructing and interconnecting components interchange upgrade adaptation aggregation CSCI 477 April 8, 2003
  • 2. 2 Middleware Technologies Middleware Requirements Network communication marshalling/unmarshalling 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 CSCI 477 April 8, 2003
  • 3. Middleware Technologies 3 Middleware Categories Transactional two-phase commit for distributed transactions e.g., IBM’s CICS Message-oriented (MOM) communication via message exchange e.g., Sun’s JMS Procedural remote procedure calls as the foundation e.g., DCE RPC Object-based communication among and via distributed objects e.g., CORBA, COM Component-based support for distributed components e.g., EJB CSCI 477 April 8, 2003
  • 4. 4 Middleware Technologies Elements of Middleware Software components component interfaces properties methods events Containers shared context of interaction with other components provide access to system-level services Metadata self-descriptive information used by a component to flexibly communicate with others Integrated development environment e.g., VisualCafe for Java CSCI 477 April 8, 2003
  • 5. Middleware Technologies 5 Distribution Support in Middleware 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 CSCI 477 April 8, 2003
  • 6. 6 Middleware Technologies CORBA A middleware platform that supports a standardized OO architecture for software applications Common Object Request Broker Architecture Open standard - developed by the Object Management Group CORBA is a component of OMG’s Object Management Architecture CORBA supports distributed object computing CORBA uses a broker an intermediary handling requests in a system facilitates communication between clients and server objects separates a component’s interface from its implementation CSCI 477 April 8, 2003
  • 7. 7 Middleware Technologies CORBA’s Enhancements to Client/Server Extends distributed computing paradigms, such as DCE RPC, to distributed object computing Mutable client-server relationships clients and servers not hard-wired to one another dynamic discovery of component interfaces Interaction intermediary ORB object adapters gateways for other object systems Both synchronous and deferred synchronous communication deferred synchronous CSCI 477 ~ ~ asynchronous April 8, 2003
  • 8. Middleware Technologies 8 Main CORBA Features Object request broker (ORB) OMG interface definition language (IDL) Language mappings Stubs and skeletons Interface repository Dynamic invocation and dispatch Object adapters Inter-ORB protocols CSCI 477 April 8, 2003
  • 9. 9 Middleware Technologies CORBA Architecture Object Implementation Client Static Skeletons Dynamic Invocation Interface Repository CSCI 477 Client IDL Stubs ORB Interface ORB Core Dynamic Skeleton invocation (Basic) Object Adapter Implementation Repository April 8, 2003
  • 10. 10 Middleware Technologies Object Request Broker 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 uses factory objects invoke a lookup service (naming, trading) use persistent references to objects CSCI 477 April 8, 2003
  • 11. 11 Middleware Technologies OMG IDL Specifies (implementation-independent) object interface Basic types short, long, long long, float, double, long double, char, wchar, boolean, octet, enum, string, wstring Any Constructed types struct, union, array, sequence IDL is language-independent Standardized language mappings for C, C++, Ada95, COBOL, Smalltalk, Java, ... Marshalling Unmarshalling CSCI 477 April 8, 2003
  • 12. 12 Middleware Technologies Stubs and Skeletons Used in CORBA’s static invocation Programming language-specific counterparts to IDL definitions Stubs and skeletons are generated using the IDL definitions Stubs create and issue requests on the client side a.k.a. surrogates or proxies perform marshalling 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 CSCI 477 April 8, 2003
  • 13. 13 Middleware Technologies Example of Stubs and Skeletons Interface Definition interface Employee { void promote(in char new_job_class); void dismiss(in DismissalCode reason, in String description); }; Client Application Server Application Object Reference Object Implementation Operation promote Operation dismiss CSCI 477 Method Emp_promote Method Emp_dismiss April 8, 2003
  • 14. Middleware Technologies 14 Static Method Invocation 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 Instantiate the objects on the server CSCI 477 April 8, 2003
  • 15. 15 Middleware Technologies Interface Repository Used for performing operations on objects whose interface is not known at compile time Knowing interfaces of all objects a priori may be impractical independently developed components fast changing parts of the system dynamic manipulation IR allows access to the IDL type system at runtime IR is a CORBA object whose functionality is invoked like any other object allows CORBA’s dynamic invocation Not to confuse with Implementation Repository that contains information for locating and activating objects CSCI 477 April 8, 2003
  • 16. 16 Middleware Technologies Dynamic Method Invocation Obtain interface name from Interface Repository Obtain method description from Interface Repository Create argument list Create request Invoke request Dynamic vs. static invocation harder to program less robust type checking slower (factor of 40) harder to understand/document CSCI 477 April 8, 2003
  • 17. 17 Middleware Technologies CORBA Services Naming Life Cycle create, copy, move, delete objects Events register for interest in specific events (e.g., push, pull) Object Trader yellow pages for objects based on services they provide Transactions flat, nested involving heterogeneous ORBs and non-ORBs Concurrency Control coordinate access to shared resources using locks CSCI 477 April 8, 2003
  • 18. Middleware Technologies 18 CORBA Services (cont.) Object Security authentication, audits, encryption Persistence Query find objects of matching attributes Collections manipulate objects in a group Relationships dynamically create and keep track of relationships Time Licensing license manager Properties CSCI 477 April 8, 2003
  • 19. 19 Middleware Technologies Inter-ORB Protocols CORBA standard does not cover all of CORBA e.g., different protocols and object references are possible General ORB interoperability architecture based on the General Inter-ORB Protocol (GIOP) one instance of GIOP is the IIOP (built on top of TCP/IP) Environment-Specific Inter-ORB Protocols (ESIOP) allow CORBA and non-CORBA components to interact one instance is the Distributed Computing Environment Common Inter-ORB Protocol (DCE-CIOP) Standard object reference format Interoperable Object Reference (IOR) Portable Object Adapters (POA) CSCI 477 April 8, 2003
  • 20. Middleware Technologies 20 COM/DCOM Microsoft’s middleware infrastructure in many ways similar to CORBA Defines a binary standard for component interoperability programming language independence Platform independent Windows (95, 98, NT) Mac Unix Distribution transparency does exploit operational characteristics Dynamic component loading and unloading CSCI 477 April 8, 2003
  • 21. Middleware Technologies 21 Basic COM Features Binary standard for component interactions Support for interfaces defined in an IDL different from CORBA’s Base interface with introspection support dynamic discovery of other components’ interfaces garbage collection via reference counting Unique component ID mechanism Communication is synchronous by default asynchronous communication supportable by callbacks and connection points CSCI 477 April 8, 2003
  • 22. 22 Middleware Technologies Binary Standard Component operation invocation via virtual tables — vtables works for languages that support function pointers e.g., C, C++, Smalltalk the client contains a pointer to the vtable the vtable contains a pointer to the server function one layer of indirection over standard function calls VTable Server-i Client Server-j CSCI 477 April 8, 2003
  • 23. 23 Middleware Technologies COM Components Compiled code that provides some service to a system A component may support a number of interfaces an interface is a collection of semantically related functions COM interfaces begin with “I” by convention All access to component services is via interface pointers allows service reimplementation Each component supports base interface IUnknown Transparent remote access via proxy-stub pairs similar to CORBA Every component has a globally unique identifier (GUID) 128 bit integer used to refer to component’s TypeLibrary (metadata repository) CSCI 477 April 8, 2003
  • 24. 24 Middleware Technologies Notes on COM Interfaces Interface ≠ class they contain no implementation multiple implementations of an interface possible Interface ≠ component interfaces are the (binary) component interaction standard Heterogeneous COM clients and servers interact via interface pointers A single COM component can implement multiple interfaces Interfaces are strongly typed every interface has a GUID Interfaces are immutable e.g., no subtyping, subclassing, inheritance CSCI 477 April 8, 2003
  • 25. 25 Middleware Technologies Interface IUnknown Must be implemented by all COM components Has three methods QueryInterface provides introspection capabilities allows runtime discovery of component interface delivers interface pointer to a client AddRef called when another component is using the interface increments reference count Release called when another component stops using the interface decrements reference count Supports garbage collection a component can be unloaded when its reference count is 0 CSCI 477 April 8, 2003
  • 26. Middleware Technologies 26 Distributed COM DCOM = COM binary standard + runtime infrastructure for communicating across distributed address spaces initially only on Windows recently adding Mac and Unix Uses OSF’s DCE RPC as a basis for remote interaction proxy/stub mechanism Attempts to address challenges of distributed computing interacting components should be “close” to one another some components’ locations are fixed inverse relationship between component size and flexibility direct relationship between component size and network traffic CSCI 477 April 8, 2003
  • 27. 27 Middleware Technologies Distribution in COM/DCOM — In-Process Client Server Distribution in COM/DCOM — Inter-Process Client Proxy Security LPC CSCI 477 RPC Stub Security Server RPC LPC April 8, 2003
  • 28. 28 Middleware Technologies Distribution in COM/DCOM — Cross-Network Client Proxy Security Stub RPC Security Network Protocol Stack Server RPC Network Protocol Stack DCOM Network Protocol CSCI 477 April 8, 2003
  • 29. 29 Middleware Technologies Distribution in DCOM Full distribution transparency component location is hidden from clients (and client developers) method invocation is identical underlying communication mechanisms change Comp1 Comp2 CSCI 477 Comp2 Comp3 Comp4 April 8, 2003
  • 30. 30 Middleware Technologies Garbage Collection in COM/DCOM Networks are fragile connections may break for many reasons if a connection to a client is broken, a server component should not needlessly consume resources COM/DCOM uses a pinging protocol to detect (in)active clients a ping message is sent every two minutes from client to server distributed garbage collection transparent to the application (developer) reference count is decremented if multiple (>3) ping periods pass without receiving a message The protocol is efficient ping messages are piggybacked onto existing COM calls CSCI 477 April 8, 2003