CHP 2 Middleware Technologies
CHP 2 Middleware Technologies
Operating Programming
Systems Languages
Middleware
Systems
Distributed
Networking
Systems
MIDDLEWARE SYSTEMS I
In a nutshell:
Middleware is about supporting the
development of distributed applications in
networked environments
This also includes the integration of systems
About making this task easier, more efficient, less
error prone
About enabling the infrastructure software for this
task
MIDDLEWARE SYSTEMS II
Software technologies to help manage complexity
and heterogeneity inherent to the development of
distributed systems, distributed applications, and IS.
Layer of software above the operating system and
the network substrate, but below the application
Higher-level programming abstraction for developing
the distributed application
Higher than “lower” level abstractions, such as sockets
provided by the operating system
a socket is a communication end-point from which data can be
read or onto which data can be written
MIDDLEWARE SYSTEMS III
Aims: Reduce the burden of developing distributed application
for developer
Informally called “plumbing”, i.e., like pipes that connect
entities for communication
Often called “glue code”, i.e., it glues independent systems
together and makes them work together
It masks the heterogeneity programmers of distributed
applications have to deal with
network & hardware
operating system & programming language
different middleware platforms
location, access, failure, concurrency, mobility, ...
Often also referred to as transparencies, i.e., network
transparency, location transparency
MIDDLEWARE IN PRACTICE
Middleware Middleware
Network
CATEGORIES OF MIDDLEWARE
Remote Invocation Mechanisms
e.g., DCOM, CORBA, DCE, Sun RPC, Java RMI, Web Services
...
Naming and Directory Services
e.g., JNDI, LDAP, COSS Naming, DNS, COSS trader, ...
Message Oriented Middleware (MOM)
e.g., JMS, MQSI, MQSeries, ...
Publish/Subscribe Systems
e.g., JMS, various proprietary systems, COSS
Notification
CATEGORIES II
(Distributed) Tuple Spaces
(databases) - I do not consider a DBMS a middleware system
LNDA, initially an abstraction for developing parallel programs
inspired InfoSpaces, later JavaSpaces, later JINI
Page 17
MIDDLEWARE ARCHITECTURE
Page 18
FORMS OF MIDDLEWARE
Page 19
TRANSACTION PROCESSING
Advantages:
Independence of layers, database
Easily customized on all components
Transparency
Mature & well-tested efficient, reliable
Page 20
TRANSACTION PROCESSING
Disadvantages:
Limited scalability - each client (ATM) adds overhead
Older - uses low-level languages
Examples: IBM's CISTP, BEA TUXEDO
Page 21
MESSAGE-ORIENTED (MOM)
Generally asynchronous,
Message queuing,
Persistence (delays), delivery,
Peer-to-peer connectivity,
Agreed upon protocols
Page 22
MESSAGE-ORIENTED (MOM)
Advantages:
Simplifies cross-platform issues; portability
Increased operability, flexibility
Good for event-driven systems
Mature (1980's)
Disadvantages:
Asynchronous allows for network overload
Not implemented for some platforms
Example: Oracle, Advanced Queuing, Arjuna Messaging, IBM MQ
Series, MS MSMQ
Page 23
OBJECT-ORIENTED
AKA OBJECT-ORIENTED BROKERS (ORB)
Transparent extensions of object-oriented development
environment
Support:
interface definition language (IDL), O communication mechanisms,
O activation/location mechanisms
Facilitate:
locating objects & establishing communication - similar to MOM
Page 24
OBJECT-ORIENTED
AKA OBJECT-ORIENTED BROKERS (ORB)
Page 25
DATABASE
Can be complex
Need API access to standard database interfaces
Development connectivity tools & language extensions to facilitate
applications to database
Advantages
Standardization, simple
Disadvantages
Not always cross platform
May not support advanced database features
May provide blocking, synchronous connections
Page 26
REMOTE PROCEDURE CALL (RPC)
Page 28
WEB SERVICES
Advantages
Ubiquitous nature of web servers/API's
Available software to facilitate development
ASCII-based messages improve troubleshooting
Most corporate systems allow such traffic
Easy transition
Page 29
WEB SERVICES
Disadvantages
Potential security holes (HTTP)
Conversion of data structures to SML is computationally
expensive; data structure is larger
Slower
Needs more bandwidth
Examples: Apple's Web Objects, IBM Websphere,
MS.NET, Sun's Open Net Environment
Page 30
AGENT-ORIENTED
Applications: financial management, military
logistics, personal information management
Newest: Intelligent software agents
Autonomous, intelligent software entities with
ability to perceive environment, reason, act (to
accomplish goals)
Tend to be implemented as frameworks
Page 31
AGENT-ORIENTED
Provide for
Interagent communication
Load balancing
Mobility (move agents between machines)
May include MOM or Object-Oriented Middleware
Examples: HIVE, CMU's RETSINA
Page 32
FRAMEWORKS
Similar to but different from Middleware
Targeted at specific domain
Provide API, user interface, tools for development
& management
May provide own middleware services or utilize
common ones
Examples: Lotus Notes, MS Office, Transarc's Encina, Cognos, HP's OpenView
Page 33
FRAMEWORKS - COMMENTS
Page 34
MIDDLEWARE STANDARDS
Page 35
STANDARDS - EXAMPLES
COM/DCOM - MS - de facto
Distributed Component Object Model
Communication protocol between objects
IDL - Interface Description Language
CORBA - Object Management Group - consortium
Common Object Request Broker Architecture
Powerful, Widely-used
Uses IDL-to-program language mapping for many object-
oriented language; generate skeleton & stub code
Page 36
STANDARDS - EXAMPLES
Page 37
JAVA MIDDLEWARE TECHNOLOGIES - SUN
Numerous middleware initiatives & support
Supports CORBA
J. Remote Method Invocation (RMI) - CORBA like
J. Message Service (JMS) - provides MOM
J. Web Services Developer Pack (WSDP) - to integrate
webservices into J. applications
J. Servlet & J. Server Pages (JSP) - extend server functionality,
dynamic content support
J. Jini - adaptive network-centric applications
Disadvantage: One source, one language
Page 38
WEB SERVICE STANDARDS
World Wide Web Consortium (WSC) - a leader
HTML, HTTP, SML, SOAP/SMLP, WSDL, others
Page 40
MIDDLEWARE DESIGN CONSIDERATIONS
Page 41
MIDDLEWARE ISSUES
May add unwanted infrastructure to project
Risky when using proprietary middleware (if sole source)
Extensions: Open Source vs. Proprietary
Middleware defined by API & protocols
Be wary of proprietary extensions
Shift from OS/Platform dependence to middleware
dependence
Projects look to middleware for services
Page 42
The Enterprise Services Bus
An Event-driven Architecture for a Real-time Enterprise
Network and
Computers Computers System Events
Laptops Server Database
4 Server
Computers CA*net
Switch Switch
Event Management
Server Farm Switch
Database Server Framework
Laptops
Computing, Storage, Instruments and Networking Resources
MICROTOPSS
code available under BSD
http://microToPSS.msrg.utoronto.ca/
A middleware for sensor networks enabling
Sense-and-response applications
Data management in RFID-based environments
Factory floor automation
E-Health care, such as patient care, patient monitoring
Web
service
Web
service Application
MicroToPSS Middleware Abstraction
• query() • subscribe() • notify()
sensor
Environment (e.g., factory production floor)