SlideShare a Scribd company logo
1 of 25
Distributed System
Sanjivani Rural Education Society’s
Sanjivani College of Engineering, Kopargaon-423603
(An Autonomous Institute Affiliated to Savitribai Phule Pune University, Pune)
NAAC ‘A’ Grade Accredited, ISO 9001:2015 Certified
Department of Information Technology
(NBA Accredited)
Dr. R. D. Chintamani
Asst. Prof.
Unit –II
MiddleWare
Web services: Concepts, Architectures and Applications - Chapter 2 3
Contents - Chapter 2
 Understanding middleware
 Middleware as a programming abstraction
 Middleware as infrastructure
 A quick overview of conventional middleware platforms
 RPC
 TP Monitors
 Object brokers
 Middleware convergence
Web services: Concepts, Architectures and Applications - Chapter 2 4
Programming abstractions
 Programming languages and almost any form of software system evolve always
towards higher levels of abstraction
 hiding hardware and platform details
 more powerful primitives and interfaces
 leaving difficult task to intermediaries (compilers, optimizers, automatic
load balancing, automatic data partitioning and allocation, etc.)
 reducing the number of programming errors
 reducing the development and maintenance cost of the applications
developed by facilitating their portability
 Middleware is primarily a set of programming abstractions developed to
facilitate the development of complex distributed systems
 to understand a middleware platform one needs to understand its
programming model
 from the programming model the limitations, general performance, and
applicability of a given type of middleware can be determined in a first
approximation
 the underlying programming model also determines how the platform will
evolve and fare when new technologies evolve
Web services: Concepts, Architectures and Applications - Chapter 2 5
The genealogy of middleware
Remote Procedure Call
sockets
TCP, UDP
Internet Protocol (IP)
Remote Procedure Call: hides communication details
behind a procedure call and helps bridge heterogeneous
platforms
sockets:
operating system level interface to the underlying
communication protocols
TCP, UDP:
User Datagram Protocol (UDP) transports data
packets without guarantees
Transmission Control Protocol (TCP) verifies correct
delivery of data streams
Internet Protocol (IP):
moves a packet of data from one node to another
Transactional
RPC
Object oriented
RPC (RMI)
Asynchronous
RPC
TP-Monitors
Object
brokers
Message
brokers
Application
servers
Specialized forms of RPC, typically with additional
functionality or properties but almost always
running on RPC platforms
Web services: Concepts, Architectures and Applications - Chapter 2 6
And the Internet? And Java?
 Programming abstractions are a key part of middleware but not the only one:
 a programming abstraction without good supporting infrastructure (i.e., a
good implementation and support system underneath) does not help
 Programming abstractions, in fact, appear in many cases in reaction to changes
in the underlying hardware or the nature of the systems being developed
 Java is a programming language that abstracts the underlying hardware:
programmers see only the Java Virtual Machine regardless of what computer
they use
 code portability (not the same as code mobility)
 the first step towards standardizing middleware abstractions (since now the
can be based on a virtual platform everybody agrees upon)
 The Internet is a different type of network that requires one more specialization
of existing abstractions:
 The Simple Object Access Protocol (SOAP) of Web services is RPC
wrapped in XML and mapped to HTML for easy transport through the
Internet
Web services: Concepts, Architectures and Applications - Chapter 2 7
Middleware as infrastructure
DCE runtime environment
RPC
protocols
security
service
cell
service
distributed
file service
thread
service
IDL
sources
interface
headers
IDL compiler
IDL
client
code
client stub
RPC run time
service library
language specific
call interface
RPC API
server
code
server stub
RPC run time
service library
language specific
call interface
RPC API
client process server process
DCE
development
environment
Web services: Concepts, Architectures and Applications - Chapter 2 8
Infrastructure
 As the programming abstractions reach higher and higher levels, the underlying
infrastructure implementing the abstractions must grow accordingly
 Additional functionality is almost always implemented through additional
software layers
 The additional software layers increase the size and complexity of the
infrastructure necessary to use the new abstractions
 The infrastructure is also intended to support additional functionality that makes
development, maintenance, and monitoring easier and less costly
 RPC => transactional RPC => logging, recovery, advanced transaction
models, language primitives for transactional demarcation, transactional file
system, etc.
 The infrastructure is also there to take care of all the non-functional
properties typically ignored by data models, programming models, and
programming languages: performance, availability, recovery,
instrumentation, maintenance, resource management, etc.
Web services: Concepts, Architectures and Applications - Chapter 2 9
Understanding middleware
PROGRAMMING ABSTRACTION
 Intended to hide low level details of
hardware, networks, and distribution
 Trend is towards increasingly more
powerful primitives that, without
changing the basic concept of RPC, have
additional properties or allow more
flexibility in the use of the concept
 Evolution and appearance to the
programmer is dictated by the trends in
programming languages (RPC and C,
CORBA and C++, RMI and Java, Web
services and SOAP-XML)
INFRASTRUCTURE
 Intended to provide a comprehensive
platform for developing and running
complex distributed systems
 Trend is towards service oriented
architectures at a global scale and
standardization of interfaces
 Another important trend is towards
single vendor software stacks to
minimize complexity and streamline
interaction
 Evolution is towards integration of
platforms and flexibility in the
configuration (plus autonomic behavior)
To understand middleware, one needs to understand its dual role as programming abstraction
and as infrastructure
Web services: Concepts, Architectures and Applications - Chapter 2 10
Basic middleware: RPC
 One cannot expect the programmer
to implement a complete
infrastructure for every distributed
application. Instead, one can use an
RPC system (our first example of
low level middleware)
 What does an RPC system do?
 Hides distribution behind
procedure calls
 Provides an interface definition
language (IDL) to describe the
services
 Generates all the additional code
necessary to make a procedure
call remote and to deal with all
the communication aspects
 Provides a binder in case it has a
distributed name and directory
service system
CLIENT
call to remote procedure
CLIENT stub procedure
Bind
Marshalling
Send Communication
module
Client process
Communication
module
Dispatcher
(select
stub)
SERVER stub procedure
Unmarshalling
Return
SERVER
remote procedure Server process
Web services: Concepts, Architectures and Applications - Chapter 2 11
What can go wrong here? INVENTORY CONTROL
CLIENT
Lookup_product
Check_inventory
IF supplies_low
THEN
Place_order
Update_inventory
...
Products
database
Inventory
and order
database
New_product
Lookup_product
Delete_product
Update_product
Place_order
Cancel_order
Update_inventory
Check_inventory
Server 3 (inventory)
Server 2 (products)
 RPC is a point to point protocol in
the sense that it supports the
interaction between two entities (the
client and the server)
 When there are more entities
interacting with each other (a client
with two servers, a client with a
server and the server with a
database), RPC treats the calls as
independent of each other. However,
the calls are not independent
 Recovering from partial system
failures is very complex. For
instance, the order was placed but
the inventory was not updated, or
payment was made but the order
was not recorded …
 Avoiding these problems using plain
RPC systems is very cumbersome
Web services: Concepts, Architectures and Applications - Chapter 2 12
Transactional RPC
 The solution to this limitation is to make
RPC calls transactional, that is, instead
of providing plain RPC, the system
should provide TRPC
 What is TRPC?
 same concept as RPC plus …
 additional language constructs and
run time support (additional
services) to bundle several RPC
calls into an atomic unit
 usually, it also includes an interface
to databases for making end-to-end
transactions using the XA standard
(implementing 2 Phase Commit)
 and anything else the vendor may
find useful (transactional callbacks,
high level locking, etc.)
 Simplifying things quite a bit, one can
say that, historically, TP-Monitors are
RPC based systems with transactional
support. We have already seen an
example of this: Encina
OSF DCE
Encina Toolkit
Encina
Structured
File
Service
Peer to
Peer
Comm
Reliable
Queuing
Service
Encina Monitor
Distributed Applications
Web services: Concepts, Architectures and Applications - Chapter 2 13
TP-Monitors
 The design cycle with a TP-Monitor
is very similar to that of RPC:
 define the services to implement
and describe them in IDL
 specify which services are
transactional
 use an IDL compiler to generate
the client and server stubs
 Execution requires a bit more
control since now interaction is no
longer point to point:
 transactional services maintain
context information and call
records in order to guarantee
atomicity
 stubs also need to support more
information like transaction id
and call context
 Complex call hierarchies are
typically implemented with a TP-
Monitor and not with plain RPC
INVENTORY CONTROL
IF supplies_low
THEN
BOT
Place_order
Update_inventory
EOT
Products
database
Inventory
and order
database
New_product
Lookup_product
Delete_product
Update_product
Place_order
Cancel_order
Update_inventory
Check_inventory
Server 3 (inventory)
Server 2 (products)
Web services: Concepts, Architectures and Applications - Chapter 2 14
TP-Monitor Example
Branch 1 Branch 2 Finance Dept.
Yearly balance ? Monthly average revenue ?
wrappers
app server 3
recoverable
queue
Front end
user
program
user
program
user
program
user
program
Control (load balancing,
cc and rec., replication,
distribution, scheduling,
priorities, monitoring …)
TP-Monitor
environment
Interfaces to user defined services
Programs implementing the services
Web services: Concepts, Architectures and Applications - Chapter 2 15
TP-Heavy vs. TP-Light = 2 tier vs. 3 tier
 A TP-heavy monitor provides:
 a full development environment
(programming tools, services,
libraries, etc.),
 additional services (persistent
queues, communication tools,
transactional services, priority
scheduling, buffering),
 support for authentication (of users
and access rights to different
services),
 its own solutions for
communication, replication, load
balancing, storage management ...
(similar to an operating system).
 Its main purpose is to provide an
execution environment for resource
managers (applications), with
guaranteed reasonable performance
 This is the traditional monitor: CICS,
Encina, Tuxedo.
 A TP-Light is a database extension:
 it is implemented as threads, instead
of processes,
 it is based on stored procedures
("methods" stored in the database
that perform an specific set of
operations) and triggers,
 it does not provide a development
environment.
 Light Monitors are appearing as
databases become more sophisticated
and provide more services, such as
integrating part of the functionality of a
TP-Monitor within the database.
 Instead of writing a complex query, the
query is implemented as a stored
procedure. A client, instead of running
the query, invokes the stored procedure.
 Stored procedure languages: Sybase's
Transact-SQL, Oracle's PL/SQL.
Web services: Concepts, Architectures and Applications - Chapter 2 16
Databases and the 2 tier approach
 Databases are traditionally used to
manage data.
 However, simply managing data is not
an end in itself. One manages data
because it has some concrete application
logic in mind. This is often forgotten
when considering databases.
 But if the application logic is what
matters, why not move the application
logic into the database? These is what
many vendors are advocating. By doing
this, they propose a 2 tier model with the
database providing the tools necessary to
implement complex application logic.
 These tools include triggers, replication,
stored procedures, queuing systems,
standard access interfaces (ODBC,
JDBC).
user defined
application logic
database
resource manager
external
application
Database
developing
environment
client
database management system
Web services: Concepts, Architectures and Applications - Chapter 2 17
CORBA
 The Common Object Request
Broker Architecture (CORBA) is
part of the Object Management
Architecture (OMA) standard, a
reference architecture for component
based systems
 The key parts of CORBA are:
 Object Request Broker (ORB):
in charge of the interaction
between components
 CORBA services: standard
definitions of system services
 A standardized IDL language for
the publication of interfaces
 Protocols for allowing ORBs to
talk to each other
 CORBA was an attempt to
modernize RPC by making it object
oriented and providing a standard
Client
(CORBA
object)
Server
(CORBA
object)
client
stub
(proxy)
server
stub
(skeleton)
CORBA
library
CORBA
Basic
Object
Adaptor
Object Request Broker (ORB)
Marshalling
serialization
CORBA
services
interface
to remote calls
Web services: Concepts, Architectures and Applications - Chapter 2 18
CORBA follows the RPC model
 CORBA follows the same model as
RPC :
 they are trying to solve the same
problem
 CORBA is often implemented
on top of RPC
 Unlike RPC, however, CORBA
proposes a complete architecture
and identifies parts of the system to
much more detail than RPC ever did
(RPC is an inter-process
communication mechanism,
CORBA is a reference architecture
that includes an inter-process
communication mechanism)
 CORBA standardized component
based architectures but many of the
concepts behind were already in
place long ago
 Development is similar to RPC:
 define the services provided by
the server using IDL (define the
server object)
 compile the definition using an
IDL compiler. This produces the
client stub (proxy, server proxy,
proxy object) and the server stub
(skeleton). The method
signatures (services that can be
invoked) are stored in an
interface repository
 Program the client and link it
with its stub
 Program the server and link it
with its stub
 Unlike in RPC, the stubs make
client and server independent of the
operating system and programming
language
Web services: Concepts, Architectures and Applications - Chapter 2 19
Objects everywhere: IIOP and GIOP
 In order for ORBs to be a truly
universal component architecture,
there has to be a way to allow ORBs
to communicate with each other
(one cannot have all components in
the world under a single ORB)
 For this purpose, CORBA provides a
General Inter-ORB Protocol (GIOP)
that specifies how to forward calls
from one ORB to another and get
the requests back
 The Internet Inter-ORB Protocol
specifies how GIOP messages are
translated into TCP/IP
 There are additional protocols to
allow ORBs to communicate with
other systems
 The idea was sound but came too
late and was soon superseded by
Web services
Client
(CORBA
object)
Server
(CORBA
object)
ORB 1 ORB 2
GIOP
IIOP
GIOP
IIOP
Internet (TCP/IP)
Web services: Concepts, Architectures and Applications - Chapter 2 20
The best of two worlds: Object Monitors
Middleware technology should be interpreted as different stages of evolution of an
“ideal” system. Current systems do not compete with each other per se, they
complement each other. The competition arises as the underlying infrastructures
converge towards a single platform:
 OBJECT REQUEST BROKERS (ORBs): Reuse and distribution of components
via an standard, object oriented interface and number of services that add
semantics to the interaction between components.
 TRANSACTION PROCESSING MONITORS: An environment to develop
components capable of interacting transactionally and the tools necessary to
maintain transactional consistency
And Object Transaction Monitors?
Object Monitor = ORB + TP-Monitor
Web services: Concepts, Architectures and Applications - Chapter 2 21
Conventional middleware today
 RPC and the model behind RPC are at the core of any middleware platform,
even those using asynchronous interaction
 RPC, however, has become part of the low level infrastructure and it is rarely
used directly by application developers
 TP-Monitors are still as important as they have been in the past decades but they
have become components in larger systems and hidden behind additional layers
intended for enterprise application integration and Web services. Like RPC, the
functionality of TP-Monitors is starting to migrate to the low levels of the
infrastructure and becoming invisible to the developer
 CORBA is being replaced by other platforms although its ideas are still being
used and copied in new systems. CORBA suffered from three developments that
changed the technology landscape: the quick adoption of Java and the Java
Virtual Machine, the Internet and the emergence of the Web, the raise of J2EE
and related technologies to an almost de-facto standard for middleware
Web services: Concepts, Architectures and Applications - Chapter 2 22
 In practice, one always needs more than one type of middleware. The question is
what is offered by each product.
 Existing systems implement a great deal of overlapping functionality: what in
CORBA are called the services
 Because of this overlapping functionality, there are many possible combinations.
Some of them work, some don’t. In many cases the focus is on the overlapping
functionality, not on the key aspects of a system
Middleware convergence
RPC
Name
services repository
App. wrappers
platform
support
runtime
engine
Web services: Concepts, Architectures and Applications - Chapter 2 23
Interchangeable Functionality
 That all these combinations are possible does not make they all make sense
 In an integrated environment, this functionality should be incorporated not by
plugging heavy, stand-alone components but by designing a coherent system
from the beginning. This is not always feasible nowadays.
RPC
Name
services repository
App. wrappers
platform
support
runtime
engine
CORBA
WF
engine
RPC
Name
services repository
App. wrappers
platform
support
runtime
engine
WF
engine
RPC
Name
services repository
App. wrappers
platform
support
runtime
engine
CORBA
TP
monitor
RPC
Name
services repository
App. wrappers
platform
support
runtime
engine
TP-Monitor
CORBA
TP-Monitor
Web services: Concepts, Architectures and Applications - Chapter 2 24
System design nowadays
RPC
Name
services
repository
App.
wrappers
platform
support
runtime
engine
Web services: Concepts, Architectures and Applications - Chapter 2 25
“Ideal” System
COMMON INFRASTRUCTURE
process
management
data
management
message
management
object
management
transaction
management

More Related Content

Similar to Unit_2_Midddleware_2.ppt

apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays
 
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionEU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionICT PRISTINE
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architectureAmit rai Raaz
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2DBU
 
Chapter3
Chapter3Chapter3
Chapter3suks_87
 
Dos(rpc)avishek130650107020
Dos(rpc)avishek130650107020Dos(rpc)avishek130650107020
Dos(rpc)avishek130650107020Avishek Sarkar
 
Remote procedure calls
Remote procedure callsRemote procedure calls
Remote procedure callsimnomus
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdfMandanaHazeri
 
Nfv open stack-shuo-yang
Nfv open stack-shuo-yangNfv open stack-shuo-yang
Nfv open stack-shuo-yangOW2
 
Private Network Project for Colleges
Private Network Project for CollegesPrivate Network Project for Colleges
Private Network Project for CollegesAditya Jain
 
CHP-4.pptx
CHP-4.pptxCHP-4.pptx
CHP-4.pptxFamiDan
 
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docxChapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docxbartholomeocoombs
 
apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...
apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...
apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...apidays
 
Remote access service
Remote access serviceRemote access service
Remote access serviceApoorw Pandey
 
NETWORK MANAGEMENT - 2015
NETWORK MANAGEMENT - 2015NETWORK MANAGEMENT - 2015
NETWORK MANAGEMENT - 2015Ammad khan
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_AppajiAppaji K
 

Similar to Unit_2_Midddleware_2.ppt (20)

apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...
 
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introductionEU-Taiwan Workshop on 5G Research, PRISTINE introduction
EU-Taiwan Workshop on 5G Research, PRISTINE introduction
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
 
Middleware
MiddlewareMiddleware
Middleware
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2
 
Chapter3
Chapter3Chapter3
Chapter3
 
Dos(rpc)avishek130650107020
Dos(rpc)avishek130650107020Dos(rpc)avishek130650107020
Dos(rpc)avishek130650107020
 
Remote procedure calls
Remote procedure callsRemote procedure calls
Remote procedure calls
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdf
 
Nfv open stack-shuo-yang
Nfv open stack-shuo-yangNfv open stack-shuo-yang
Nfv open stack-shuo-yang
 
Private Network Project for Colleges
Private Network Project for CollegesPrivate Network Project for Colleges
Private Network Project for Colleges
 
CHP-4.pptx
CHP-4.pptxCHP-4.pptx
CHP-4.pptx
 
Ead pertemuan-7
Ead pertemuan-7Ead pertemuan-7
Ead pertemuan-7
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docxChapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
Chapter 11 Selecting Technologies and Devices for Enterprise Netwo.docx
 
Internet
InternetInternet
Internet
 
apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...
apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...
apidays LIVE Singapore 2021 - REST the Events - REST APIs for Event-Driven Ar...
 
Remote access service
Remote access serviceRemote access service
Remote access service
 
NETWORK MANAGEMENT - 2015
NETWORK MANAGEMENT - 2015NETWORK MANAGEMENT - 2015
NETWORK MANAGEMENT - 2015
 
Resume_Appaji
Resume_AppajiResume_Appaji
Resume_Appaji
 

Recently uploaded

Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 

Recently uploaded (20)

Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 

Unit_2_Midddleware_2.ppt

  • 1. Distributed System Sanjivani Rural Education Society’s Sanjivani College of Engineering, Kopargaon-423603 (An Autonomous Institute Affiliated to Savitribai Phule Pune University, Pune) NAAC ‘A’ Grade Accredited, ISO 9001:2015 Certified Department of Information Technology (NBA Accredited) Dr. R. D. Chintamani Asst. Prof.
  • 3. Web services: Concepts, Architectures and Applications - Chapter 2 3 Contents - Chapter 2  Understanding middleware  Middleware as a programming abstraction  Middleware as infrastructure  A quick overview of conventional middleware platforms  RPC  TP Monitors  Object brokers  Middleware convergence
  • 4. Web services: Concepts, Architectures and Applications - Chapter 2 4 Programming abstractions  Programming languages and almost any form of software system evolve always towards higher levels of abstraction  hiding hardware and platform details  more powerful primitives and interfaces  leaving difficult task to intermediaries (compilers, optimizers, automatic load balancing, automatic data partitioning and allocation, etc.)  reducing the number of programming errors  reducing the development and maintenance cost of the applications developed by facilitating their portability  Middleware is primarily a set of programming abstractions developed to facilitate the development of complex distributed systems  to understand a middleware platform one needs to understand its programming model  from the programming model the limitations, general performance, and applicability of a given type of middleware can be determined in a first approximation  the underlying programming model also determines how the platform will evolve and fare when new technologies evolve
  • 5. Web services: Concepts, Architectures and Applications - Chapter 2 5 The genealogy of middleware Remote Procedure Call sockets TCP, UDP Internet Protocol (IP) Remote Procedure Call: hides communication details behind a procedure call and helps bridge heterogeneous platforms sockets: operating system level interface to the underlying communication protocols TCP, UDP: User Datagram Protocol (UDP) transports data packets without guarantees Transmission Control Protocol (TCP) verifies correct delivery of data streams Internet Protocol (IP): moves a packet of data from one node to another Transactional RPC Object oriented RPC (RMI) Asynchronous RPC TP-Monitors Object brokers Message brokers Application servers Specialized forms of RPC, typically with additional functionality or properties but almost always running on RPC platforms
  • 6. Web services: Concepts, Architectures and Applications - Chapter 2 6 And the Internet? And Java?  Programming abstractions are a key part of middleware but not the only one:  a programming abstraction without good supporting infrastructure (i.e., a good implementation and support system underneath) does not help  Programming abstractions, in fact, appear in many cases in reaction to changes in the underlying hardware or the nature of the systems being developed  Java is a programming language that abstracts the underlying hardware: programmers see only the Java Virtual Machine regardless of what computer they use  code portability (not the same as code mobility)  the first step towards standardizing middleware abstractions (since now the can be based on a virtual platform everybody agrees upon)  The Internet is a different type of network that requires one more specialization of existing abstractions:  The Simple Object Access Protocol (SOAP) of Web services is RPC wrapped in XML and mapped to HTML for easy transport through the Internet
  • 7. Web services: Concepts, Architectures and Applications - Chapter 2 7 Middleware as infrastructure DCE runtime environment RPC protocols security service cell service distributed file service thread service IDL sources interface headers IDL compiler IDL client code client stub RPC run time service library language specific call interface RPC API server code server stub RPC run time service library language specific call interface RPC API client process server process DCE development environment
  • 8. Web services: Concepts, Architectures and Applications - Chapter 2 8 Infrastructure  As the programming abstractions reach higher and higher levels, the underlying infrastructure implementing the abstractions must grow accordingly  Additional functionality is almost always implemented through additional software layers  The additional software layers increase the size and complexity of the infrastructure necessary to use the new abstractions  The infrastructure is also intended to support additional functionality that makes development, maintenance, and monitoring easier and less costly  RPC => transactional RPC => logging, recovery, advanced transaction models, language primitives for transactional demarcation, transactional file system, etc.  The infrastructure is also there to take care of all the non-functional properties typically ignored by data models, programming models, and programming languages: performance, availability, recovery, instrumentation, maintenance, resource management, etc.
  • 9. Web services: Concepts, Architectures and Applications - Chapter 2 9 Understanding middleware PROGRAMMING ABSTRACTION  Intended to hide low level details of hardware, networks, and distribution  Trend is towards increasingly more powerful primitives that, without changing the basic concept of RPC, have additional properties or allow more flexibility in the use of the concept  Evolution and appearance to the programmer is dictated by the trends in programming languages (RPC and C, CORBA and C++, RMI and Java, Web services and SOAP-XML) INFRASTRUCTURE  Intended to provide a comprehensive platform for developing and running complex distributed systems  Trend is towards service oriented architectures at a global scale and standardization of interfaces  Another important trend is towards single vendor software stacks to minimize complexity and streamline interaction  Evolution is towards integration of platforms and flexibility in the configuration (plus autonomic behavior) To understand middleware, one needs to understand its dual role as programming abstraction and as infrastructure
  • 10. Web services: Concepts, Architectures and Applications - Chapter 2 10 Basic middleware: RPC  One cannot expect the programmer to implement a complete infrastructure for every distributed application. Instead, one can use an RPC system (our first example of low level middleware)  What does an RPC system do?  Hides distribution behind procedure calls  Provides an interface definition language (IDL) to describe the services  Generates all the additional code necessary to make a procedure call remote and to deal with all the communication aspects  Provides a binder in case it has a distributed name and directory service system CLIENT call to remote procedure CLIENT stub procedure Bind Marshalling Send Communication module Client process Communication module Dispatcher (select stub) SERVER stub procedure Unmarshalling Return SERVER remote procedure Server process
  • 11. Web services: Concepts, Architectures and Applications - Chapter 2 11 What can go wrong here? INVENTORY CONTROL CLIENT Lookup_product Check_inventory IF supplies_low THEN Place_order Update_inventory ... Products database Inventory and order database New_product Lookup_product Delete_product Update_product Place_order Cancel_order Update_inventory Check_inventory Server 3 (inventory) Server 2 (products)  RPC is a point to point protocol in the sense that it supports the interaction between two entities (the client and the server)  When there are more entities interacting with each other (a client with two servers, a client with a server and the server with a database), RPC treats the calls as independent of each other. However, the calls are not independent  Recovering from partial system failures is very complex. For instance, the order was placed but the inventory was not updated, or payment was made but the order was not recorded …  Avoiding these problems using plain RPC systems is very cumbersome
  • 12. Web services: Concepts, Architectures and Applications - Chapter 2 12 Transactional RPC  The solution to this limitation is to make RPC calls transactional, that is, instead of providing plain RPC, the system should provide TRPC  What is TRPC?  same concept as RPC plus …  additional language constructs and run time support (additional services) to bundle several RPC calls into an atomic unit  usually, it also includes an interface to databases for making end-to-end transactions using the XA standard (implementing 2 Phase Commit)  and anything else the vendor may find useful (transactional callbacks, high level locking, etc.)  Simplifying things quite a bit, one can say that, historically, TP-Monitors are RPC based systems with transactional support. We have already seen an example of this: Encina OSF DCE Encina Toolkit Encina Structured File Service Peer to Peer Comm Reliable Queuing Service Encina Monitor Distributed Applications
  • 13. Web services: Concepts, Architectures and Applications - Chapter 2 13 TP-Monitors  The design cycle with a TP-Monitor is very similar to that of RPC:  define the services to implement and describe them in IDL  specify which services are transactional  use an IDL compiler to generate the client and server stubs  Execution requires a bit more control since now interaction is no longer point to point:  transactional services maintain context information and call records in order to guarantee atomicity  stubs also need to support more information like transaction id and call context  Complex call hierarchies are typically implemented with a TP- Monitor and not with plain RPC INVENTORY CONTROL IF supplies_low THEN BOT Place_order Update_inventory EOT Products database Inventory and order database New_product Lookup_product Delete_product Update_product Place_order Cancel_order Update_inventory Check_inventory Server 3 (inventory) Server 2 (products)
  • 14. Web services: Concepts, Architectures and Applications - Chapter 2 14 TP-Monitor Example Branch 1 Branch 2 Finance Dept. Yearly balance ? Monthly average revenue ? wrappers app server 3 recoverable queue Front end user program user program user program user program Control (load balancing, cc and rec., replication, distribution, scheduling, priorities, monitoring …) TP-Monitor environment Interfaces to user defined services Programs implementing the services
  • 15. Web services: Concepts, Architectures and Applications - Chapter 2 15 TP-Heavy vs. TP-Light = 2 tier vs. 3 tier  A TP-heavy monitor provides:  a full development environment (programming tools, services, libraries, etc.),  additional services (persistent queues, communication tools, transactional services, priority scheduling, buffering),  support for authentication (of users and access rights to different services),  its own solutions for communication, replication, load balancing, storage management ... (similar to an operating system).  Its main purpose is to provide an execution environment for resource managers (applications), with guaranteed reasonable performance  This is the traditional monitor: CICS, Encina, Tuxedo.  A TP-Light is a database extension:  it is implemented as threads, instead of processes,  it is based on stored procedures ("methods" stored in the database that perform an specific set of operations) and triggers,  it does not provide a development environment.  Light Monitors are appearing as databases become more sophisticated and provide more services, such as integrating part of the functionality of a TP-Monitor within the database.  Instead of writing a complex query, the query is implemented as a stored procedure. A client, instead of running the query, invokes the stored procedure.  Stored procedure languages: Sybase's Transact-SQL, Oracle's PL/SQL.
  • 16. Web services: Concepts, Architectures and Applications - Chapter 2 16 Databases and the 2 tier approach  Databases are traditionally used to manage data.  However, simply managing data is not an end in itself. One manages data because it has some concrete application logic in mind. This is often forgotten when considering databases.  But if the application logic is what matters, why not move the application logic into the database? These is what many vendors are advocating. By doing this, they propose a 2 tier model with the database providing the tools necessary to implement complex application logic.  These tools include triggers, replication, stored procedures, queuing systems, standard access interfaces (ODBC, JDBC). user defined application logic database resource manager external application Database developing environment client database management system
  • 17. Web services: Concepts, Architectures and Applications - Chapter 2 17 CORBA  The Common Object Request Broker Architecture (CORBA) is part of the Object Management Architecture (OMA) standard, a reference architecture for component based systems  The key parts of CORBA are:  Object Request Broker (ORB): in charge of the interaction between components  CORBA services: standard definitions of system services  A standardized IDL language for the publication of interfaces  Protocols for allowing ORBs to talk to each other  CORBA was an attempt to modernize RPC by making it object oriented and providing a standard Client (CORBA object) Server (CORBA object) client stub (proxy) server stub (skeleton) CORBA library CORBA Basic Object Adaptor Object Request Broker (ORB) Marshalling serialization CORBA services interface to remote calls
  • 18. Web services: Concepts, Architectures and Applications - Chapter 2 18 CORBA follows the RPC model  CORBA follows the same model as RPC :  they are trying to solve the same problem  CORBA is often implemented on top of RPC  Unlike RPC, however, CORBA proposes a complete architecture and identifies parts of the system to much more detail than RPC ever did (RPC is an inter-process communication mechanism, CORBA is a reference architecture that includes an inter-process communication mechanism)  CORBA standardized component based architectures but many of the concepts behind were already in place long ago  Development is similar to RPC:  define the services provided by the server using IDL (define the server object)  compile the definition using an IDL compiler. This produces the client stub (proxy, server proxy, proxy object) and the server stub (skeleton). The method signatures (services that can be invoked) are stored in an interface repository  Program the client and link it with its stub  Program the server and link it with its stub  Unlike in RPC, the stubs make client and server independent of the operating system and programming language
  • 19. Web services: Concepts, Architectures and Applications - Chapter 2 19 Objects everywhere: IIOP and GIOP  In order for ORBs to be a truly universal component architecture, there has to be a way to allow ORBs to communicate with each other (one cannot have all components in the world under a single ORB)  For this purpose, CORBA provides a General Inter-ORB Protocol (GIOP) that specifies how to forward calls from one ORB to another and get the requests back  The Internet Inter-ORB Protocol specifies how GIOP messages are translated into TCP/IP  There are additional protocols to allow ORBs to communicate with other systems  The idea was sound but came too late and was soon superseded by Web services Client (CORBA object) Server (CORBA object) ORB 1 ORB 2 GIOP IIOP GIOP IIOP Internet (TCP/IP)
  • 20. Web services: Concepts, Architectures and Applications - Chapter 2 20 The best of two worlds: Object Monitors Middleware technology should be interpreted as different stages of evolution of an “ideal” system. Current systems do not compete with each other per se, they complement each other. The competition arises as the underlying infrastructures converge towards a single platform:  OBJECT REQUEST BROKERS (ORBs): Reuse and distribution of components via an standard, object oriented interface and number of services that add semantics to the interaction between components.  TRANSACTION PROCESSING MONITORS: An environment to develop components capable of interacting transactionally and the tools necessary to maintain transactional consistency And Object Transaction Monitors? Object Monitor = ORB + TP-Monitor
  • 21. Web services: Concepts, Architectures and Applications - Chapter 2 21 Conventional middleware today  RPC and the model behind RPC are at the core of any middleware platform, even those using asynchronous interaction  RPC, however, has become part of the low level infrastructure and it is rarely used directly by application developers  TP-Monitors are still as important as they have been in the past decades but they have become components in larger systems and hidden behind additional layers intended for enterprise application integration and Web services. Like RPC, the functionality of TP-Monitors is starting to migrate to the low levels of the infrastructure and becoming invisible to the developer  CORBA is being replaced by other platforms although its ideas are still being used and copied in new systems. CORBA suffered from three developments that changed the technology landscape: the quick adoption of Java and the Java Virtual Machine, the Internet and the emergence of the Web, the raise of J2EE and related technologies to an almost de-facto standard for middleware
  • 22. Web services: Concepts, Architectures and Applications - Chapter 2 22  In practice, one always needs more than one type of middleware. The question is what is offered by each product.  Existing systems implement a great deal of overlapping functionality: what in CORBA are called the services  Because of this overlapping functionality, there are many possible combinations. Some of them work, some don’t. In many cases the focus is on the overlapping functionality, not on the key aspects of a system Middleware convergence RPC Name services repository App. wrappers platform support runtime engine
  • 23. Web services: Concepts, Architectures and Applications - Chapter 2 23 Interchangeable Functionality  That all these combinations are possible does not make they all make sense  In an integrated environment, this functionality should be incorporated not by plugging heavy, stand-alone components but by designing a coherent system from the beginning. This is not always feasible nowadays. RPC Name services repository App. wrappers platform support runtime engine CORBA WF engine RPC Name services repository App. wrappers platform support runtime engine WF engine RPC Name services repository App. wrappers platform support runtime engine CORBA TP monitor RPC Name services repository App. wrappers platform support runtime engine TP-Monitor CORBA TP-Monitor
  • 24. Web services: Concepts, Architectures and Applications - Chapter 2 24 System design nowadays RPC Name services repository App. wrappers platform support runtime engine
  • 25. Web services: Concepts, Architectures and Applications - Chapter 2 25 “Ideal” System COMMON INFRASTRUCTURE process management data management message management object management transaction management