SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
© Peter R. Egli 2015
1/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Peter R. Egli
INDIGOO.COM
INTRODUCTION TO COMMUNICATION MIDDLEWARE
AND WEB SERVICE CONCEPTS
MIDDLEWARE
COMMUNICATION
© Peter R. Egli 2015
2/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Contents
1. What is Middleware?
2. Basic (common) concepts of (distributed) middleware
3. Classification of middleware
4. Comparison of middleware technologies
5. Fallacies of distributed computing
© Peter R. Egli 2015
3/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
What is middleware?
Wikipedia: „Middleware is computer software that connects software components or
applications.”
Middleware (MW) is the software between platform / network and the application.
The term „middleware“ is very fuzzy, so almost everything is middleware.
In this presentation, the focus is on distributed communication.
Platform / OS
Application
Middleware
Platform / OS
Application
Middleware
Network
(TCP/IP)
API
API
API
API
© Peter R. Egli 2015
4/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Basic (common) concepts of (distributed) middleware (1/6)
Middleware can be characterized according to the following criteria:
1. Serialization / marshalling
2. Data presentation
3. Distributed garbage collection
4. Location and discovery
5. Interaction model
6. Wire protocol / encapsulation (transport protocol)
7. Service description
8. Target domain
9. Platform independence
© Peter R. Egli 2015
5/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Basic (common) concepts of (distributed) middleware (2/6)
1. Serialization / marshalling:
Serialization / marshalling converts data (objects, procedures, parameters) into a byte stream
for transmission over the network.
Often serialization and marshalling are used synonymously, but there is a (subtle) difference:
a. Serialization:
Convert objects into a byte stream for transport over network or persistent storage.
b. Marshalling:
Bundle up parameters for a remote method call (serialization of parameters).
x x x x x x xx xobject : Class
+ open (...) : int
- close (...)
+ attr1 : String
# attr0 : boolean
Send over network
or persist in persistent
storage
Local
object
UnmarshalMarshal
loc_obj.func(arg0, arg1)
arg0 arg1
Remote
object
x x x x xx xx x
Object ID +
class ID
Object ID +
class ID
attr0 attr1
rem_obj.func(arg0, arg1)
© Peter R. Egli 2015
6/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Basic (common) concepts of (distributed) middleware (3/6)
2. Data presentation:
Different middleware technologies present data in different ways to the application:
Sockets  Plain byte stream (TCP) or byte packet (UDP, SCTP)
RPC  Parameters of a procedure / method
DAM  SQL statements, tables, keys
Dist. tuples  Objects
DOT  Objects
MOM  Messages with „opaque“ body (message = data container)
Web service  XML fragment, JSON
3. Distributed garbage collection (GC):
Local objects are garbage collected by the local GC (or the appl. if there is no GC as in C++).
Remote objects may have multiple client objects that access them. Thus remote objects may
only be garbage collected if there are no more references to these objects.
Usually remote garbage collectors use some kind of a reference counter for the remote objects.
Local
object A
Local
object B
Remote
object C GC
Object ID = x Ref. count = 2
Object ID = C Ref. count = 1
Object ID = y Ref. count = 1
© Peter R. Egli 2015
7/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Basic (common) concepts of (distributed) middleware (4/6)
4. Localization & discovery:
Localization & discovery is the process of finding a suitable (concrete) instance of a remote
service , server or object.
Usually this is done through some kind of registry or directory service.
5. Interaction model (request/reply, publish/subscribe):
The interaction model defines the way how the local and remote parties interact.
There are 2 main models:
a. Synchronous request / reply b. Asynchronous messaging
Local
client
Registry
Remote
object
2. Query for object / service x
1. Register
3. Access remote object / service
Object A Object B
Remote call
Return
Object A
blocked Sender
Message queue
Receiver
The receiver receives messages independently
from the sender.
© Peter R. Egli 2015
8/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Basic (common) concepts of (distributed) middleware (5/6)
6. Wire protocol / encapsulation (transport protocol):
The wire protocol defines the encapsulation of the data for the transport over the network.
Serialization / marshalling converts the data into a format conforming to the wire protocol.
Example wire protocols:
CORBA  IIOP
Web services  SOAP / XML over HTTP
RPC  XDR
7. Service description:
Remote services can be described formally with a description language.
Often such a service or interface description is used to create code (local and remote objects).
Example service descriptions:
CORBA  IDL (Interface Description Language)
Web service  WSDL (Web Service Description Language)
RPC  XDR (External Data Representation)
IDL Compiler Code
© Peter R. Egli 2015
9/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Basic (common) concepts of (distributed) middleware (6/6)
8. Target domain:
Even though middlewares typically use TCP/IP as network protocol(s), not all are suited for use
over the Internet due to different reasons:
 Some middlewares are very „chatty“ (a lot of messages going back and forth).
 Middlewares use different port ranges, thus there are potential problems with firewalls.
Target domains for middleware:
a. Internet (WAN)
b. Intranet (local network, LAN)
c. Host
d. Inter-process communication (IPC) between applications
e. Embedded devices (small footprint required, usually in C++)
9. Platform dependence:
Some middleware(s) are only available on a specific platform like Java, other middleware(s)
were designed to be platform independent.
Example platform dependent MW: JMS, RMI (both use the Java platform)
Example platform independent MW: CORBA, web services (.Net and Java web service client
and server interoperate)
© Peter R. Egli 2015
10/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Classification of middleware (1/5)
The following is a simple classification scheme for middleware technologies.
1. Plain old sockets:
Sockets are the basis of all other middleware technologies.
2. RPC – Remote Procedure Call:
RPC technologies provide a simple means of distributing application logic on different hosts.
IP
Socket
TCP
App
IP
Socket
TCP
App
Network
Client
Client
stub
Network
Server
Server
stub
© Peter R. Egli 2015
11/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Classification of middleware (2/5)
3. TPM - Transaction Processing Monitors:
TPMs are a specialty MW targeted at distributed transactions.
4. DAM - Database Access Middleware:
Databases can be used to share and communicate data between distributed applications.
Client
Client
Client
Client
DBService
DBService
DBService
NetworkNetwork
Transaction
Processing
Monitor
Application
Driver manager
JDBC driverNetwork
Data
source
DB
Application
Driver manager
ODBC driver
Data
source
DB
© Peter R. Egli 2015
12/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Classification of middleware (3/5)
5. Distributed Tuple:
Distributed tuple spaces are implementations of a distributed shared memory space.
6. DOT (Distributed Object Technology) / OOM (Object Oriented Middleware):
DOT extends the object-oriented paradigm to distributed applications.
Client
Client
Javaspaces
service
Javaspaces
service
write(object)
read(object)
Transaction
take(object)
write(object)
notify(object)
Client
object
Object
broker
Server
object
Object bus
Object services
© Peter R. Egli 2015
13/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Classification of middleware (4/5)
7. MOM (Message Oriented Middleware):
In message oriented middleware, messages are exchanged asynchronously between
distributed applications (senders and receivers).
8. Web services:
Web services expose services (functionality) on a defined interface, typically accessible
through the web protocol HTTP.
Sender Receiver
Message queue
receive()
send()
Web
service
Web
service
Middleware
Internal
service
Internal
service
Service
client
Middleware
Internal
service
Internal
service
© Peter R. Egli 2015
14/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Classification of middleware (5/5)
9. Peer-to-peer middleware:
In peer-to-peer middleware, there is no notion of clients and servers. Communication partners
are peers with equal roles in the communication pattern.
10. Grid middleware:
Grid middleware provide computation power services (registration, allocation, de-allocation) to
consumers.
Relay
peer
Peer
Peer
Rendez-
vous
peer
Peer
Peer
The network
Computation
provider
Computation
consumer
Computation
consumer
Computation
provider
Computation
consumer
© Peter R. Egli 2015
15/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Comparison of middleware technologies (1/2)
Comparison of some concepts of middleware technologies
Criteria Sockets Sun-RPC XML-RPC RMI DCOM .Net
remoting
CORBA EJB JMS MSMQ Web
serv.
REST
Serialization /
marshalling
N/a Yes N/a Yes Yes Yes Yes Yes N/a N/a Yes Yes
Data presentation N/a XDR XML Java
interface
Remote
object
.Net
interface
Remote
object
Remote
object
Byte
chunk
Byte chunk SOAP /
XML
XML
Distributed garbage
collection
N/a N/a N/a Yes Yes Yes Yes Yes N/a N/a N/a N/a
Location and discovery N/a RPCBIND N/a JNDI Windows
registry
N/A ORB JNDI JNDI Active
Directory
UDDI N/a
Interaction model Sync. N/a Sync. Sync. Sync. Sync. Sync. Sync. Async. Async. Sync. Sync.
Wire protocol
(encapsulation)
TCP, UDP
or SCTP
XDR XML + HTTP IIOP MSRPC
(=DCE/RPC)
TCP
SOAP+HT
TP
XML
(channel)
IIOP IIOP JMS
specific
Proprietary SOAP +
HTTP
XML +
HTTP
Service description N/a XDR N/a Java
interface
MS IDL .Net
interface
(C#, VB)
IDL Java
interface
N/a N/a WSDL WSDL
WADL
Target domain Host, IPC,
LAN, WAN
Host, LAN Host, IPC,
LAN, WAN
Host,
LAN, IPC
Host, LAN,
IPC
Host, IPC Host, LAN,
IPC
Host, LAN,
IPC
Host,
IPC,
LAN,
WAN
Host, IPC,
LAN, WAN
Host, IPC,
LAN, WAN
Host, IPC,
LAN, WAN
Platform dependence All
platforms
Unix, Linux All
platforms
Java Windows .Net All
platforms
Java (JEE) Java Windows All
platforms
All
platforms
Middleware class Socket RPC RPC DOT DOT DOT DOT DOT MOM MOM WS WS
© Peter R. Egli 2015
16/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Comparison of middleware technologies (2/2)
Description of common middleware services (features):
Service Description
Persistence service (ORM) Support for persistent storage of data
Transaction service Support for atomic (ACID – Atomicity, Consistency, Isolation, Durability) sequences of actions (method calls) that can be rolled back in case of a
failure
Concurrency control /
synchronization
Services allowing to lock resources (transaction locks)
Naming and directory services Registration / location / discovery of objects in the network based on a name (location based on an explicit name or ID)
Trading service Similar to naming and directory service, but location based on operation names, parameters and result types (location based on properties)
Deployment infrastructure Services for the deployment of objects into a run-time environment (e.g. bean container for EJB beans)
RPC support Support for remote method call (call of methods on remote objects)
Life-cycle service Creation / activation, copying, moving, deleting of objects (client- and / or server-activated objects)
Relationship definitions Support for defining explicit relationships between objects
Query service Mapping of objects to relational DBs (see ORM)
Licensing service Controlled access to objects, definition of access control lists for different groups of clients
„Web service“ service Access to objects via some kind of web service (e.g. access through HTTP)
Support for async callbacks /
server push
Possibility to let server send callbacks to client (asynchronous, duplex interfaces)
Event / message service Send / receive events (= messages) asynchronously
Externalization support Possibility to store (=externalize) objects e.g. into the file system and load (=internalize) the object in the same or a different process
Security services Support for identification, authentication, authorization, confidentiality (encryption), data integrity, propagation of credentials
Object pooling Set of initialized (remote) objects kept ready for clients (improve performance, „recycle“ existing objects for new client requests)
Reflection / introspection Possibility to query the available methods on an existing object
Load balancing Distribution of client accesses over a defined number of server components or objects to evenly share the load
© Peter R. Egli 2015
17/17
Rev. 1.80
Introduction to Middleware and Web Services indigoo.com
Fallacies of distributed computing
Common misconceptions or fallacies that architects / system designers should take into
account when designing distributed applications:
1. The network is reliable.
2. Latency is zero.
3. Bandwidth is infinite.
4. The network is secure.
5. Topology doesn't change.
6. There is one administrator.
7. Transport cost is zero.
8. The network is homogeneous.
9. System clocks are identical.
(This list came about at Sun Microsystems by Peter Deutsch et.al.)
Distributing application logic over multiple hosts and servers incurs a non-negligible
performance penalty that has to be taken into account.

Contenu connexe

Tendances

Mobile Computing I-Unit Notes
Mobile Computing I-Unit NotesMobile Computing I-Unit Notes
Mobile Computing I-Unit Notesgouse_1210
 
IOT PROTOCOLS.pptx
IOT PROTOCOLS.pptxIOT PROTOCOLS.pptx
IOT PROTOCOLS.pptxDRREC
 
M2M and IoT Design Methodologies
M2M and IoT Design MethodologiesM2M and IoT Design Methodologies
M2M and IoT Design MethodologiesSelvaraj Seerangan
 
Mac protocols
Mac protocolsMac protocols
Mac protocolsjuno susi
 
Gsm system and radio frequency
Gsm system and radio frequency Gsm system and radio frequency
Gsm system and radio frequency Maulik Patel
 
Importance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningImportance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningABHISHEK KUMAR
 
Unit 1 - mobile computing introduction
Unit 1 - mobile computing introductionUnit 1 - mobile computing introduction
Unit 1 - mobile computing introductionVintesh Patel
 
IT6601 Mobile Computing Unit I
IT6601 Mobile Computing Unit IIT6601 Mobile Computing Unit I
IT6601 Mobile Computing Unit Ipkaviya
 
M2M - Machine to Machine Technology
M2M - Machine to Machine TechnologyM2M - Machine to Machine Technology
M2M - Machine to Machine TechnologySamip jain
 
Mobile transportlayer
Mobile transportlayerMobile transportlayer
Mobile transportlayerRahul Hada
 
NGN Next Generation Networks
NGN Next Generation NetworksNGN Next Generation Networks
NGN Next Generation Networksabdulquyyum
 
Mobile cloud Computing
Mobile cloud ComputingMobile cloud Computing
Mobile cloud ComputingPooja Sharma
 
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...ArunChokkalingam
 
Module1 Mobile Computing Architecture
Module1 Mobile Computing ArchitectureModule1 Mobile Computing Architecture
Module1 Mobile Computing Architectureraksharao
 
Sensor networks
Sensor networksSensor networks
Sensor networksMarc Pous
 
Geographic Routing in WSN
Geographic Routing in WSNGeographic Routing in WSN
Geographic Routing in WSNMahbubur Rahman
 
Implementation levels of virtualization
Implementation levels of virtualizationImplementation levels of virtualization
Implementation levels of virtualizationGokulnath S
 

Tendances (20)

Mobile Computing I-Unit Notes
Mobile Computing I-Unit NotesMobile Computing I-Unit Notes
Mobile Computing I-Unit Notes
 
IOT PROTOCOLS.pptx
IOT PROTOCOLS.pptxIOT PROTOCOLS.pptx
IOT PROTOCOLS.pptx
 
M2M and IoT Design Methodologies
M2M and IoT Design MethodologiesM2M and IoT Design Methodologies
M2M and IoT Design Methodologies
 
Mac protocols
Mac protocolsMac protocols
Mac protocols
 
Gsm system and radio frequency
Gsm system and radio frequency Gsm system and radio frequency
Gsm system and radio frequency
 
Importance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningImportance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML Designing
 
Unit 1 - mobile computing introduction
Unit 1 - mobile computing introductionUnit 1 - mobile computing introduction
Unit 1 - mobile computing introduction
 
IT6601 Mobile Computing Unit I
IT6601 Mobile Computing Unit IIT6601 Mobile Computing Unit I
IT6601 Mobile Computing Unit I
 
M2M - Machine to Machine Technology
M2M - Machine to Machine TechnologyM2M - Machine to Machine Technology
M2M - Machine to Machine Technology
 
Mobile transportlayer
Mobile transportlayerMobile transportlayer
Mobile transportlayer
 
NGN Next Generation Networks
NGN Next Generation NetworksNGN Next Generation Networks
NGN Next Generation Networks
 
Application Layer
Application Layer Application Layer
Application Layer
 
Mobile cloud Computing
Mobile cloud ComputingMobile cloud Computing
Mobile cloud Computing
 
Distributed Coordination-Based Systems
Distributed Coordination-Based SystemsDistributed Coordination-Based Systems
Distributed Coordination-Based Systems
 
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
WSN network architecture -Sensor Network Scenarios & Transceiver Design Consi...
 
Module1 Mobile Computing Architecture
Module1 Mobile Computing ArchitectureModule1 Mobile Computing Architecture
Module1 Mobile Computing Architecture
 
Network Layer by-adeel
Network Layer by-adeelNetwork Layer by-adeel
Network Layer by-adeel
 
Sensor networks
Sensor networksSensor networks
Sensor networks
 
Geographic Routing in WSN
Geographic Routing in WSNGeographic Routing in WSN
Geographic Routing in WSN
 
Implementation levels of virtualization
Implementation levels of virtualizationImplementation levels of virtualization
Implementation levels of virtualization
 

En vedette

Distributed computing 2
Distributed computing 2Distributed computing 2
Distributed computing 2Vlad Demensky
 
Sun microsystems Q2 2009 earnings releases
Sun microsystems Q2 2009 earnings releasesSun microsystems Q2 2009 earnings releases
Sun microsystems Q2 2009 earnings releasesearningsreport
 
Advanced Metering Infrastructure Standards and protocol
Advanced Metering Infrastructure Standards and protocolAdvanced Metering Infrastructure Standards and protocol
Advanced Metering Infrastructure Standards and protocolEklavya Sharma
 
Application of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at AudiApplication of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at AudiReal-Time Innovations (RTI)
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
PSR-7, middlewares e o futuro dos frameworks
PSR-7, middlewares e o futuro dos frameworksPSR-7, middlewares e o futuro dos frameworks
PSR-7, middlewares e o futuro dos frameworksElton Minetto
 
O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?paxtecnologia
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Mobile wireless-networks
Mobile wireless-networksMobile wireless-networks
Mobile wireless-networksPeter R. Egli
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 

En vedette (20)

Distributed computing 2
Distributed computing 2Distributed computing 2
Distributed computing 2
 
Q1 2009 Earning Report of Sun Microsystems Inc.
Q1 2009 Earning Report of Sun Microsystems Inc.Q1 2009 Earning Report of Sun Microsystems Inc.
Q1 2009 Earning Report of Sun Microsystems Inc.
 
Sun microsystems Q2 2009 earnings releases
Sun microsystems Q2 2009 earnings releasesSun microsystems Q2 2009 earnings releases
Sun microsystems Q2 2009 earnings releases
 
Sun One In Photos
Sun One In PhotosSun One In Photos
Sun One In Photos
 
Peer to peer
Peer to peerPeer to peer
Peer to peer
 
Advanced Metering Infrastructure Standards and protocol
Advanced Metering Infrastructure Standards and protocolAdvanced Metering Infrastructure Standards and protocol
Advanced Metering Infrastructure Standards and protocol
 
Application of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at AudiApplication of DDS on modular Hardware-in-the-loop test benches at Audi
Application of DDS on modular Hardware-in-the-loop test benches at Audi
 
Artigo sd
Artigo sdArtigo sd
Artigo sd
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Middleware
MiddlewareMiddleware
Middleware
 
PSR-7, middlewares e o futuro dos frameworks
PSR-7, middlewares e o futuro dos frameworksPSR-7, middlewares e o futuro dos frameworks
PSR-7, middlewares e o futuro dos frameworks
 
O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
Middleware
MiddlewareMiddleware
Middleware
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
D2D - Device to Device Communication
D2D - Device to Device CommunicationD2D - Device to Device Communication
D2D - Device to Device Communication
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Mobile wireless-networks
Mobile wireless-networksMobile wireless-networks
Mobile wireless-networks
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 

Similaire à Communication middleware

IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaIPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaVijiPriya Jeyamani
 
Slides for protocol layering and network applications
Slides for protocol layering and network applicationsSlides for protocol layering and network applications
Slides for protocol layering and network applicationsjajinekkanti
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptmohanravi1986
 
Introduction to Computer Networking
Introduction to Computer NetworkingIntroduction to Computer Networking
Introduction to Computer Networkingshankars73
 
Collaboration and Grid Technologies
Collaboration and Grid TechnologiesCollaboration and Grid Technologies
Collaboration and Grid TechnologiesVideoguy
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017Jian-Hong Pan
 
Protecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropperProtecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropperShakas Technologies
 
Protecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropperProtecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropperShakas Technologies
 
934 Ch1 Networks
934 Ch1  Networks934 Ch1  Networks
934 Ch1 Networkstechbed
 
computer network NCC l4dc assingment
computer network NCC l4dc assingment computer network NCC l4dc assingment
computer network NCC l4dc assingment David Parker
 
The Internet and World Wide Web
The Internet and World Wide WebThe Internet and World Wide Web
The Internet and World Wide Webwebhostingguy
 
Business Data Communications and Networking 12th Edition FitzGerald Solutions...
Business Data Communications and Networking 12th Edition FitzGerald Solutions...Business Data Communications and Networking 12th Edition FitzGerald Solutions...
Business Data Communications and Networking 12th Edition FitzGerald Solutions...TylerYuli
 
Iot lecture notes_hyd
Iot lecture notes_hydIot lecture notes_hyd
Iot lecture notes_hydKishore5511
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)Tuan Yang
 
Cisco Certified Network Associate
Cisco Certified Network AssociateCisco Certified Network Associate
Cisco Certified Network AssociateSumit K Das
 

Similaire à Communication middleware (20)

IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaIPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
 
Slides for protocol layering and network applications
Slides for protocol layering and network applicationsSlides for protocol layering and network applications
Slides for protocol layering and network applications
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.ppt
 
Introduction to Computer Networking
Introduction to Computer NetworkingIntroduction to Computer Networking
Introduction to Computer Networking
 
Collaboration and Grid Technologies
Collaboration and Grid TechnologiesCollaboration and Grid Technologies
Collaboration and Grid Technologies
 
OSI model.pptx
OSI model.pptxOSI model.pptx
OSI model.pptx
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017
 
Presentation (1)
Presentation (1)Presentation (1)
Presentation (1)
 
Protecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropperProtecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropper
 
Protecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropperProtecting location privacy in sensor networks against a global eavesdropper
Protecting location privacy in sensor networks against a global eavesdropper
 
934 Ch1 Networks
934 Ch1  Networks934 Ch1  Networks
934 Ch1 Networks
 
computer network NCC l4dc assingment
computer network NCC l4dc assingment computer network NCC l4dc assingment
computer network NCC l4dc assingment
 
The Internet and World Wide Web
The Internet and World Wide WebThe Internet and World Wide Web
The Internet and World Wide Web
 
Socket programming
Socket programmingSocket programming
Socket programming
 
Business Data Communications and Networking 12th Edition FitzGerald Solutions...
Business Data Communications and Networking 12th Edition FitzGerald Solutions...Business Data Communications and Networking 12th Edition FitzGerald Solutions...
Business Data Communications and Networking 12th Edition FitzGerald Solutions...
 
IOT.pdf
IOT.pdfIOT.pdf
IOT.pdf
 
Iot lecture notes_hyd
Iot lecture notes_hydIot lecture notes_hyd
Iot lecture notes_hyd
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)
 
Cisco Certified Network Associate
Cisco Certified Network AssociateCisco Certified Network Associate
Cisco Certified Network Associate
 
Week2 lec2-bscs1
Week2 lec2-bscs1Week2 lec2-bscs1
Week2 lec2-bscs1
 

Plus de Peter R. Egli

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosPeter R. Egli
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking ConceptsPeter R. Egli
 
Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Peter R. Egli
 
Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Peter R. Egli
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET PlatformPeter R. Egli
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud ComputingPeter R. Egli
 
MQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingPeter R. Egli
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration TechnologiesPeter R. Egli
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyPeter R. Egli
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development KitPeter R. Egli
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Peter R. Egli
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingPeter R. Egli
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBAPeter R. Egli
 
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
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging ServicePeter R. Egli
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State TransferPeter R. Egli
 

Plus de Peter R. Egli (20)

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking Concepts
 
Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)
 
Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET Platform
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud Computing
 
MQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message Queueing
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Web services
Web servicesWeb services
Web services
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message Queueing
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
 

Dernier

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Dernier (20)

What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Communication middleware

  • 1. © Peter R. Egli 2015 1/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Peter R. Egli INDIGOO.COM INTRODUCTION TO COMMUNICATION MIDDLEWARE AND WEB SERVICE CONCEPTS MIDDLEWARE COMMUNICATION
  • 2. © Peter R. Egli 2015 2/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Contents 1. What is Middleware? 2. Basic (common) concepts of (distributed) middleware 3. Classification of middleware 4. Comparison of middleware technologies 5. Fallacies of distributed computing
  • 3. © Peter R. Egli 2015 3/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com What is middleware? Wikipedia: „Middleware is computer software that connects software components or applications.” Middleware (MW) is the software between platform / network and the application. The term „middleware“ is very fuzzy, so almost everything is middleware. In this presentation, the focus is on distributed communication. Platform / OS Application Middleware Platform / OS Application Middleware Network (TCP/IP) API API API API
  • 4. © Peter R. Egli 2015 4/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Basic (common) concepts of (distributed) middleware (1/6) Middleware can be characterized according to the following criteria: 1. Serialization / marshalling 2. Data presentation 3. Distributed garbage collection 4. Location and discovery 5. Interaction model 6. Wire protocol / encapsulation (transport protocol) 7. Service description 8. Target domain 9. Platform independence
  • 5. © Peter R. Egli 2015 5/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Basic (common) concepts of (distributed) middleware (2/6) 1. Serialization / marshalling: Serialization / marshalling converts data (objects, procedures, parameters) into a byte stream for transmission over the network. Often serialization and marshalling are used synonymously, but there is a (subtle) difference: a. Serialization: Convert objects into a byte stream for transport over network or persistent storage. b. Marshalling: Bundle up parameters for a remote method call (serialization of parameters). x x x x x x xx xobject : Class + open (...) : int - close (...) + attr1 : String # attr0 : boolean Send over network or persist in persistent storage Local object UnmarshalMarshal loc_obj.func(arg0, arg1) arg0 arg1 Remote object x x x x xx xx x Object ID + class ID Object ID + class ID attr0 attr1 rem_obj.func(arg0, arg1)
  • 6. © Peter R. Egli 2015 6/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Basic (common) concepts of (distributed) middleware (3/6) 2. Data presentation: Different middleware technologies present data in different ways to the application: Sockets  Plain byte stream (TCP) or byte packet (UDP, SCTP) RPC  Parameters of a procedure / method DAM  SQL statements, tables, keys Dist. tuples  Objects DOT  Objects MOM  Messages with „opaque“ body (message = data container) Web service  XML fragment, JSON 3. Distributed garbage collection (GC): Local objects are garbage collected by the local GC (or the appl. if there is no GC as in C++). Remote objects may have multiple client objects that access them. Thus remote objects may only be garbage collected if there are no more references to these objects. Usually remote garbage collectors use some kind of a reference counter for the remote objects. Local object A Local object B Remote object C GC Object ID = x Ref. count = 2 Object ID = C Ref. count = 1 Object ID = y Ref. count = 1
  • 7. © Peter R. Egli 2015 7/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Basic (common) concepts of (distributed) middleware (4/6) 4. Localization & discovery: Localization & discovery is the process of finding a suitable (concrete) instance of a remote service , server or object. Usually this is done through some kind of registry or directory service. 5. Interaction model (request/reply, publish/subscribe): The interaction model defines the way how the local and remote parties interact. There are 2 main models: a. Synchronous request / reply b. Asynchronous messaging Local client Registry Remote object 2. Query for object / service x 1. Register 3. Access remote object / service Object A Object B Remote call Return Object A blocked Sender Message queue Receiver The receiver receives messages independently from the sender.
  • 8. © Peter R. Egli 2015 8/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Basic (common) concepts of (distributed) middleware (5/6) 6. Wire protocol / encapsulation (transport protocol): The wire protocol defines the encapsulation of the data for the transport over the network. Serialization / marshalling converts the data into a format conforming to the wire protocol. Example wire protocols: CORBA  IIOP Web services  SOAP / XML over HTTP RPC  XDR 7. Service description: Remote services can be described formally with a description language. Often such a service or interface description is used to create code (local and remote objects). Example service descriptions: CORBA  IDL (Interface Description Language) Web service  WSDL (Web Service Description Language) RPC  XDR (External Data Representation) IDL Compiler Code
  • 9. © Peter R. Egli 2015 9/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Basic (common) concepts of (distributed) middleware (6/6) 8. Target domain: Even though middlewares typically use TCP/IP as network protocol(s), not all are suited for use over the Internet due to different reasons:  Some middlewares are very „chatty“ (a lot of messages going back and forth).  Middlewares use different port ranges, thus there are potential problems with firewalls. Target domains for middleware: a. Internet (WAN) b. Intranet (local network, LAN) c. Host d. Inter-process communication (IPC) between applications e. Embedded devices (small footprint required, usually in C++) 9. Platform dependence: Some middleware(s) are only available on a specific platform like Java, other middleware(s) were designed to be platform independent. Example platform dependent MW: JMS, RMI (both use the Java platform) Example platform independent MW: CORBA, web services (.Net and Java web service client and server interoperate)
  • 10. © Peter R. Egli 2015 10/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Classification of middleware (1/5) The following is a simple classification scheme for middleware technologies. 1. Plain old sockets: Sockets are the basis of all other middleware technologies. 2. RPC – Remote Procedure Call: RPC technologies provide a simple means of distributing application logic on different hosts. IP Socket TCP App IP Socket TCP App Network Client Client stub Network Server Server stub
  • 11. © Peter R. Egli 2015 11/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Classification of middleware (2/5) 3. TPM - Transaction Processing Monitors: TPMs are a specialty MW targeted at distributed transactions. 4. DAM - Database Access Middleware: Databases can be used to share and communicate data between distributed applications. Client Client Client Client DBService DBService DBService NetworkNetwork Transaction Processing Monitor Application Driver manager JDBC driverNetwork Data source DB Application Driver manager ODBC driver Data source DB
  • 12. © Peter R. Egli 2015 12/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Classification of middleware (3/5) 5. Distributed Tuple: Distributed tuple spaces are implementations of a distributed shared memory space. 6. DOT (Distributed Object Technology) / OOM (Object Oriented Middleware): DOT extends the object-oriented paradigm to distributed applications. Client Client Javaspaces service Javaspaces service write(object) read(object) Transaction take(object) write(object) notify(object) Client object Object broker Server object Object bus Object services
  • 13. © Peter R. Egli 2015 13/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Classification of middleware (4/5) 7. MOM (Message Oriented Middleware): In message oriented middleware, messages are exchanged asynchronously between distributed applications (senders and receivers). 8. Web services: Web services expose services (functionality) on a defined interface, typically accessible through the web protocol HTTP. Sender Receiver Message queue receive() send() Web service Web service Middleware Internal service Internal service Service client Middleware Internal service Internal service
  • 14. © Peter R. Egli 2015 14/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Classification of middleware (5/5) 9. Peer-to-peer middleware: In peer-to-peer middleware, there is no notion of clients and servers. Communication partners are peers with equal roles in the communication pattern. 10. Grid middleware: Grid middleware provide computation power services (registration, allocation, de-allocation) to consumers. Relay peer Peer Peer Rendez- vous peer Peer Peer The network Computation provider Computation consumer Computation consumer Computation provider Computation consumer
  • 15. © Peter R. Egli 2015 15/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Comparison of middleware technologies (1/2) Comparison of some concepts of middleware technologies Criteria Sockets Sun-RPC XML-RPC RMI DCOM .Net remoting CORBA EJB JMS MSMQ Web serv. REST Serialization / marshalling N/a Yes N/a Yes Yes Yes Yes Yes N/a N/a Yes Yes Data presentation N/a XDR XML Java interface Remote object .Net interface Remote object Remote object Byte chunk Byte chunk SOAP / XML XML Distributed garbage collection N/a N/a N/a Yes Yes Yes Yes Yes N/a N/a N/a N/a Location and discovery N/a RPCBIND N/a JNDI Windows registry N/A ORB JNDI JNDI Active Directory UDDI N/a Interaction model Sync. N/a Sync. Sync. Sync. Sync. Sync. Sync. Async. Async. Sync. Sync. Wire protocol (encapsulation) TCP, UDP or SCTP XDR XML + HTTP IIOP MSRPC (=DCE/RPC) TCP SOAP+HT TP XML (channel) IIOP IIOP JMS specific Proprietary SOAP + HTTP XML + HTTP Service description N/a XDR N/a Java interface MS IDL .Net interface (C#, VB) IDL Java interface N/a N/a WSDL WSDL WADL Target domain Host, IPC, LAN, WAN Host, LAN Host, IPC, LAN, WAN Host, LAN, IPC Host, LAN, IPC Host, IPC Host, LAN, IPC Host, LAN, IPC Host, IPC, LAN, WAN Host, IPC, LAN, WAN Host, IPC, LAN, WAN Host, IPC, LAN, WAN Platform dependence All platforms Unix, Linux All platforms Java Windows .Net All platforms Java (JEE) Java Windows All platforms All platforms Middleware class Socket RPC RPC DOT DOT DOT DOT DOT MOM MOM WS WS
  • 16. © Peter R. Egli 2015 16/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Comparison of middleware technologies (2/2) Description of common middleware services (features): Service Description Persistence service (ORM) Support for persistent storage of data Transaction service Support for atomic (ACID – Atomicity, Consistency, Isolation, Durability) sequences of actions (method calls) that can be rolled back in case of a failure Concurrency control / synchronization Services allowing to lock resources (transaction locks) Naming and directory services Registration / location / discovery of objects in the network based on a name (location based on an explicit name or ID) Trading service Similar to naming and directory service, but location based on operation names, parameters and result types (location based on properties) Deployment infrastructure Services for the deployment of objects into a run-time environment (e.g. bean container for EJB beans) RPC support Support for remote method call (call of methods on remote objects) Life-cycle service Creation / activation, copying, moving, deleting of objects (client- and / or server-activated objects) Relationship definitions Support for defining explicit relationships between objects Query service Mapping of objects to relational DBs (see ORM) Licensing service Controlled access to objects, definition of access control lists for different groups of clients „Web service“ service Access to objects via some kind of web service (e.g. access through HTTP) Support for async callbacks / server push Possibility to let server send callbacks to client (asynchronous, duplex interfaces) Event / message service Send / receive events (= messages) asynchronously Externalization support Possibility to store (=externalize) objects e.g. into the file system and load (=internalize) the object in the same or a different process Security services Support for identification, authentication, authorization, confidentiality (encryption), data integrity, propagation of credentials Object pooling Set of initialized (remote) objects kept ready for clients (improve performance, „recycle“ existing objects for new client requests) Reflection / introspection Possibility to query the available methods on an existing object Load balancing Distribution of client accesses over a defined number of server components or objects to evenly share the load
  • 17. © Peter R. Egli 2015 17/17 Rev. 1.80 Introduction to Middleware and Web Services indigoo.com Fallacies of distributed computing Common misconceptions or fallacies that architects / system designers should take into account when designing distributed applications: 1. The network is reliable. 2. Latency is zero. 3. Bandwidth is infinite. 4. The network is secure. 5. Topology doesn't change. 6. There is one administrator. 7. Transport cost is zero. 8. The network is homogeneous. 9. System clocks are identical. (This list came about at Sun Microsystems by Peter Deutsch et.al.) Distributing application logic over multiple hosts and servers incurs a non-negligible performance penalty that has to be taken into account.