• Tidak ada hasil yang ditemukan

Four categories of middleware

N/A
N/A
Protected

Academic year: 2018

Membagikan "Four categories of middleware"

Copied!
16
0
0

Teks penuh

(1)

1

Middleware

Lou Somers

April 24, 2003

Contents

Overview

Definition, goals, requirements

Four categories of middleware

Transactional, message oriented, procedural, object

Middleware examples

XML-RPC, SOAP, Corba, (D)COM, .NET

Some applications

Controller - engine communication Controller architecture

(2)

3

History

Mainframes

Centralized computing Expensive devices

Client-server paradigm

More functions performed by client PC’s

Applications split into light client part and sharable server part

Distributed objects

Distribution combined with objects

Components can have both server and client roles

Why distributed?

Increased resource sharing

Increased maintainability and reduced costs

Install once, run anywhere

Upgrade software on single machine only

Increased fault tolerance

Replication

Performance

(3)

5

What is middleware?

“The glue which connects objects which are

distributed across multiple heterogeneous

computer systems”

“An extension of the operating system which

provides a transparent communication layer to

the applications”

“A software layer that serves to shield the

application of the heterogeneity of the underlying

computer platforms and networks”

Middleware goals

Integrate existing components into a distributed

system

Components may be off-the-shelf

Components may have incompatible requirements for hardware and OS platforms

Scalability requires distribution (not centralized or client server).

Resolve heterogeneity

Facilitate communication and coordination of distributed components

(4)

7

Requirements for middleware / 1

Network communication

Need higher level primitives than network operating system primitives

Transport complex data structures over the network (marshalling / unmarshalling)

Coordination

Three models:

Synchronous: client waits for result

Deferred synchronous: client asks for result (e.g. by polling) Asynchronous: server initiates result

Group requests

Component activation / deactivation Concurrent requests

Requirements for middleware / 2

Reliability

Error detection and correction mechanisms on top of network protocols

Scalability

Access to a component independent of whether it is local or remote

Migration transparency Replication transparency

Heterogeneity

Primitive data encoding

(5)

9

Middleware categories

Transactional middleware

Offers atupleabstraction (SQL)

Distributed transaction processing (DTP protocol)

Message oriented (MOM)

Offers amailboxabstraction Asynchronous messages

Procedural (RPC)

Offers aprocedureabstraction Synchronous client / server interaction

Object and component

Offers anobjectabstraction

(A)synchronous client / server interaction

Transactional middleware / 1

Transactions on distributed relational database

Two-phase commit protocol to implement distributed transactions

Examples

IBM CICS BEA Tuxedo

(6)

11

Transactional middleware / 2

Network communication

Client and servers may reside on different hosts

Coordination

Synchronous and asynchronous

Reliability

DTP (Distributed Transaction Protocol): two phase commit ACID properties:

Atomic: transaction is either complete or not Consistent: system always in consistent state

Isolation: transaction is independent of other transactions Durable: committed transaction survives system failures

Scalability

Load balancing and replication of server components

Heterogeneity

Different hardware and operating systems platforms No data heterogeneity

Message oriented middleware / 1

Exchange messages between components

“Mailbox”

Examples

(7)

13

Message oriented middleware / 2

Network communication

Client sends message, server replies with result

Well suited for event notification and publish / subscribe

Coordination

Asynchronous

Synchronous has to be coded by client

Reliability

Message queues are stored on persistent memory At-least-once semantics possible

Scalability

Local / remote differs

Heterogeneity

Marshalling code has to be written by hand

Procedural middleware / 1

Remote procedure calls (RPC)

Procedures can be called across the network

Examples

Unix RPC’s

DCE RPC (Distributed Computing Environment) Windows RPC’s

(8)

15

Procedural middleware / 2

Network communication

Server exports parameterized procedures Clients call these across the network

Marshalling and unmarshalling by client and server stubs

(generated by the compiler)

Coordination

Synchronous interaction between one client and one server Startup on demand possible

(daemon needs a table that maps RPC names to program locations in the file system)

Reliability

At-most-once semantics (exception if RPC fails)

No scalability

Heterogeneity

Can be used between different programming languages Across different hardware and OS platforms

Object middleware / 1

Objects are available across the network

Examples

Corba COM, DCOM

(9)

17

Object middleware / 2

Network communication

Client objects call methods of exported server objects Marshalling and unmarshalling by client and server stubs

(generated by the compiler)

Coordination

Default: synchronous

Corba 3.0: also deferred synchronous and asynchronous

Reliability

Default: at-most-once semantics (exceptions on failure) Usually requests may be clustered into transactions

(Object Transaction Server, Microsoft Transaction Server, Java Transaction Service)

Scalability

Support for load-balancing, replication is rather limited

Heterogeneity

Corba, COM: multi-language binding

Corba / RMI and Corba / COM may interoperate

Middleware examples

XML-RPC, SOAP

RPC on top of HTTP

Corba

Distributed objects

COM / DCOM

Microsoft’s Component Object Model

.NET

(10)

19

XML-RPC protocol / 1

Uses XML to transmit and receive RPC’s

Defines the bare minimum to get RPC’s across the network

Based on HTTP with the POST method

Request is an XML document containing a method name and parameters

Response is an XML document with returned values

SOAP (Simple Object Access protocol)

Successor of XML-RPC

Client Server

XML

XML

XML-RPC protocol / 2

HTTP Header

Content-Type: text/xml

Content-Length must be specified and correct User agent must be specified

Host must be specified

Document content

Root <methodCall>

Contains name of method: <methodName> Contains list of parameters: <params> Each parameters is a pair <param>, <value>

Data types supported

(11)

21

Corba

“Common Object Request Broker Architecture”

Defined by Object Management Group (OMG)

> 800 companies: www.omg.org

Goal: enable interoperability

Languages, implementations, platforms

Conceptual view:

Client Server

Object Request Broker (ORB)

Corba: overall architecture

Static interfaces

Specific for each object type

Dynamic interfaces

Client Server

Object Request Broker (ORB) Dynamic IDL Stubs:

Static Invocation

Static IDL Skeleton

Dynamic Skeleton

(12)

23

Corba: general interaction scheme

Stubs and skeletons

Generated from the Interface Definition (in IDL) Using appropriate language mappings

Interface Definition Language

Purely descriptive, not an implementation language Strongly typed

Client

Object Request Broker (ORB) Stub

(proxy)

Skeleton (server-side

stub) Method call

Server

Method implementation

Corba: object model

Object

Identifiable entity

Provides services to a client May be created and destroyed

The interface repository contains type information

Service requests

Consist typically of: operation, target object, arguments May be specified statically or formed dynamically

Values

Non-object values and object references

Inheritance

(13)

25

Corba: object request broker

More realistic view:

Protocol between ORB’s

General InterORB Protocol (GIOP)

GIOP on top of TCP/IP

Internet InterORB Protocol (IIOP)

Future: on top of SOAP

Device Y Device X

Client Server

ORB ORB

COM / DCOM

(Distributed) Component Object Model

Functionality like Corba

Internally, (D)COM uses RPC’s

Difference between interface and implementation

Objects may implement more than one interface Interface is immutable

Objects may be implemented in “any” language

Objects register themselves in the Windows registry

Using a 128-bit Global “Unique” Identifier (GUID)

(14)

27

.NET

Common Language Runtime

Virtual machine like Java

MSIL

Intermediate language, like Java byte code

JIT compiler

Cross-language interoperability

VB, C#, Jscript, C++, third party (Perl, Python, Cobol)

Framework class library

Written in C#

Any CLR language can access it

Web services

Accessed via SOAP and defined by XML

.NET: remote objects

COM and .NET components are interchangeable

Remote objects

Single call object (serves only one request) Singleton object (serves multiple clients) Client activated object

Managed / unmanaged code

Using / not using Common Language Runtime

Inter process communication via

(15)

29

Some middleware applications

Controller - engine communication

Via message oriented middleware

Controller architecture

Components interact via COM

Web based printer monitoring and control

ASP’s use COM

Controller - engine communication

Control via “CSL” middleware (Client Server Layer)

Message oriented

Controller (PC)

Device (embedded

software) Bitmaps to print

Bitmap scans Control Print jobs

(pcl, postscript, pdf, ...)

Scans (tiff, pdf)

User Interface Remote control

SNMP, HTTP

Client (PC)

LPR, AppleTalk, IPP, …

CSL

(16)

31

Controller architecture

Components interact via COM with blackboard

Controller PC

… clients

Print jobs

Scans

Blackboard Remote client

Print client

Export client

… workers

RIP worker

Splitter

Printer control

Scanner control

Bitmaps

Bitmaps

COM

Control Control

Web based printer monitoring / control

Intra Logic PC

HTTP

ADP component

EFI plug-in

SNMP plug-in Web

clients

Web server ASP’s

31x5 plug-in

EFI … plug-in

COM

RPC

SNMP

Referensi

Dokumen terkait

Elemen utama untuk penghapusan pemborosan meliputi: memiliki persediaan sesuai dengan keperluaan pada saat diperlukan, memperbaiki kualitas untuk mencapai kecacatan

Semuanya ini dijelaskan secara ilmiah (menurut ilmu kedokteran) dan berdasarkan keterangan-keterangan Al-Qur’an tentang ilmu embriologi. Diantara ayat-ayat yang ada dalam diri

Penghayatan amalan moral dan akhlak yang baik dalam kalangan pelajar diharap dapat merealisasikan matlamat pendidikan negara serta mencapai salah satu hasrat

Obat-obat Rasional Anti Asma, Penanganan Rasional Asma Bronkial, Fakultas Kedokteran Universitas Indonesia, Jakarta, hal 9-24.. Van den Berge M, ten Hacken NHT,

Peningkatan Hasil Belajar IPS Dengan Menggunakan Model Pembelajaran Problem Based Learning (PBL) Pada Siswa Kelas 4 SD Negeri 4 Genengadal Kecamatan Toroh

(7) Ada interaksi antara metode pembelajaran dengan kemampuan menggunakan alat ukur dan sikap ilmiah terhadap prestasi kognitif (p-value = 0,029). Hal ini berarti bahwa

Fahrun Nur Rosyid, S.kep,Ns, M.kes, selaku Kaprodi SI Keperawatan Fakultas Ilmu Kesehatan Universitas Muhammadiyah Surabaya dan selaku pembimbing I yang dengan

Pemasaran merupakan faktor penting dalam siklus yang berhubungan dengan pemenuhan kebutuhan konsumen.Dalam salah satu perusahaan, pemasaran merupakan salah satu