SlideShare a Scribd company logo
© 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.

More Related Content

What's hot

Transport layer services
Transport layer servicesTransport layer services
Transport layer services
Melvin Cabatuan
 
Transport layer
Transport layer Transport layer
Transport layer
Mukesh Chinta
 
switching techniques in data communication and networking
switching techniques in data communication and networkingswitching techniques in data communication and networking
switching techniques in data communication and networking
Harshita Yadav
 
Transport Protocols
Transport ProtocolsTransport Protocols
Transport Protocols
Peter R. Egli
 
Congetion Control.pptx
Congetion Control.pptxCongetion Control.pptx
Congetion Control.pptx
Naveen Dubey
 
IT6601 MOBILE COMPUTING
IT6601 MOBILE COMPUTINGIT6601 MOBILE COMPUTING
IT6601 MOBILE COMPUTING
Kathirvel Ayyaswamy
 
Routing algorithm
Routing algorithmRouting algorithm
Routing algorithm
Bushra M
 
Osi model 7 Layers
Osi model 7 LayersOsi model 7 Layers
Osi model 7 Layers
Siddique Ibrahim
 
TCP/IP Protocol Architeture
TCP/IP Protocol ArchitetureTCP/IP Protocol Architeture
TCP/IP Protocol Architeture
Manoj Kumar
 
client server protocol
client server protocolclient server protocol
client server protocol
bmuhire
 
IoT and m2m
IoT and m2mIoT and m2m
IoT and m2m
pavan penugonda
 
Communication primitives
Communication primitivesCommunication primitives
Communication primitives
Student
 
IOT15_Unit6.pptx
IOT15_Unit6.pptxIOT15_Unit6.pptx
IOT15_Unit6.pptx
suptel
 
Gateway Networking
Gateway NetworkingGateway Networking
Gateway Networking
Abhishek Kumar Ravi
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
Sunita Sahu
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed application
Rishikese MR
 
7 layers of osi models
7 layers of osi models7 layers of osi models
7 layers of osi models
Sathish Kumar
 
IEEE 802.11 Architecture and Services
IEEE 802.11 Architecture and ServicesIEEE 802.11 Architecture and Services
IEEE 802.11 Architecture and Services
Sayed Chhattan Shah
 
Dynamic routing protocols (CCNA)
Dynamic routing protocols (CCNA)Dynamic routing protocols (CCNA)
Dynamic routing protocols (CCNA)
Varinder Singh Walia
 
Network Layer
Network LayerNetwork Layer
Network Layer
reshmadayma
 

What's hot (20)

Transport layer services
Transport layer servicesTransport layer services
Transport layer services
 
Transport layer
Transport layer Transport layer
Transport layer
 
switching techniques in data communication and networking
switching techniques in data communication and networkingswitching techniques in data communication and networking
switching techniques in data communication and networking
 
Transport Protocols
Transport ProtocolsTransport Protocols
Transport Protocols
 
Congetion Control.pptx
Congetion Control.pptxCongetion Control.pptx
Congetion Control.pptx
 
IT6601 MOBILE COMPUTING
IT6601 MOBILE COMPUTINGIT6601 MOBILE COMPUTING
IT6601 MOBILE COMPUTING
 
Routing algorithm
Routing algorithmRouting algorithm
Routing algorithm
 
Osi model 7 Layers
Osi model 7 LayersOsi model 7 Layers
Osi model 7 Layers
 
TCP/IP Protocol Architeture
TCP/IP Protocol ArchitetureTCP/IP Protocol Architeture
TCP/IP Protocol Architeture
 
client server protocol
client server protocolclient server protocol
client server protocol
 
IoT and m2m
IoT and m2mIoT and m2m
IoT and m2m
 
Communication primitives
Communication primitivesCommunication primitives
Communication primitives
 
IOT15_Unit6.pptx
IOT15_Unit6.pptxIOT15_Unit6.pptx
IOT15_Unit6.pptx
 
Gateway Networking
Gateway NetworkingGateway Networking
Gateway Networking
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: Remote procedure call
 
Middleware and Middleware in distributed application
Middleware and Middleware in distributed applicationMiddleware and Middleware in distributed application
Middleware and Middleware in distributed application
 
7 layers of osi models
7 layers of osi models7 layers of osi models
7 layers of osi models
 
IEEE 802.11 Architecture and Services
IEEE 802.11 Architecture and ServicesIEEE 802.11 Architecture and Services
IEEE 802.11 Architecture and Services
 
Dynamic routing protocols (CCNA)
Dynamic routing protocols (CCNA)Dynamic routing protocols (CCNA)
Dynamic routing protocols (CCNA)
 
Network Layer
Network LayerNetwork Layer
Network Layer
 

Viewers also liked

Middleware
MiddlewareMiddleware
Middleware
Dr. Uday Saikia
 
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 releases
earningsreport
 
Advanced Metering Infrastructure Standards and protocol
Advanced Metering Infrastructure Standards and protocolAdvanced Metering Infrastructure Standards and protocol
Advanced Metering Infrastructure Standards and protocol
Eklavya 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 Audi
Real-Time Innovations (RTI)
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
elliando dias
 
Middleware
MiddlewareMiddleware
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
Elton 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 RPC
limabezerra
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
Arthur Emanuel
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
UFPB
 
D2D - Device to Device Communication
D2D - Device to Device CommunicationD2D - Device to Device Communication
D2D - Device to Device Communication
Francisco Bento da Silva Neto
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
Thiago Marinho
 
Mobile wireless-networks
Mobile wireless-networksMobile wireless-networks
Mobile wireless-networks
Peter R. Egli
 

Viewers also liked (20)

Middleware
MiddlewareMiddleware
Middleware
 
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
 

Similar to 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. VijiPriya
VijiPriya 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 applications
jajinekkanti
 
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
mohanravi1986
 
Introduction to Computer Networking
Introduction to Computer NetworkingIntroduction to Computer Networking
Introduction to Computer Networking
shankars73
 
Collaboration and Grid Technologies
Collaboration and Grid TechnologiesCollaboration and Grid Technologies
Collaboration and Grid TechnologiesVideoguy
 
OSI model.pptx
OSI model.pptxOSI model.pptx
OSI model.pptx
SmtArunaAsafAliGovtP
 
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
Jian-Hong Pan
 
Presentation (1)
Presentation (1)Presentation (1)
Presentation (1)
Janani Ramasamy
 
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
Shakas 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 eavesdropper
Shakas 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
 
Socket programming
Socket programmingSocket programming
Socket programming
Padmavathione
 
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.pdf
IOT.pdfIOT.pdf
IOT.pdf
HarshNagda5
 
Iot lecture notes_hyd
Iot lecture notes_hydIot lecture notes_hyd
Iot lecture notes_hyd
Kishore5511
 
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
 
Module1 Mobile Computing Architecture
Module1 Mobile Computing ArchitectureModule1 Mobile Computing Architecture
Module1 Mobile Computing Architecture
raksharao
 
Cisco Certified Network Associate
Cisco Certified Network AssociateCisco Certified Network Associate
Cisco Certified Network Associate
Sumit K Das
 

Similar to 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)
 
Module1 Mobile Computing Architecture
Module1 Mobile Computing ArchitectureModule1 Mobile Computing Architecture
Module1 Mobile Computing Architecture
 
Cisco Certified Network Associate
Cisco Certified Network AssociateCisco Certified Network Associate
Cisco Certified Network Associate
 

More from 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 Scenarios
Peter R. Egli
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking Concepts
Peter 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 Platform
Peter R. Egli
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud Computing
Peter 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 Queueing
Peter R. Egli
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
Peter R. Egli
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
Peter R. Egli
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
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 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
 
Web services
Web servicesWeb services
Web services
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 Queueing
Peter R. Egli
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
Peter 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 Service
Peter 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 Transfer
Peter R. Egli
 

More from 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
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 

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.