CSE 3510 CHAPTER 2
ADVANCED SOFTWARE MIDDLEWARE
TECHNOLOGIES
ENGINEERING
© Hans-Arno Jacobsen et al. (msrg.utoronto.ca)
MIDDLEWARE
Software: in context of smart environment
Software to provide services to facilitate
Rapid development
Ease of integration
Improved reliability
Increased scalability
Lies between applications software & platform
Connectivity software that joins applications thru
communication mechanisms creating transparency,
scalability, & interoperability Page 2
MIDDLEWARE SYSTEMS
Middleware systems are comprised of abstractions
and services to facilitate the design, development,
integration and deployment of distributed
applications in heterogeneous networking
environments.
remote communication mechanisms (Web services, CORBA, Java RMI, DCOM - i.e.
request brokers)
event notification and messaging services (COSS Notifications, Java Messaging
Service etc.)
transaction services
naming services (COSS Naming, LDAP)
…
DEFINITION BY EXAMPLE
The following constitute middleware systems or
middleware platforms
CORBA, DCE, RMI, J2EE (?), Web Services, DCOM,
COM+, .Net Remoting, application servers, …
some of these are collections and aggregations of
many different services
some are marketing terms
WHAT & WHERE IS MIDDLEWARE ?
Databases
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
Very relevant and wide industry exposure
Subject to market forces and market trends
Subject to marketing jargon
Dominated by standards and de facto standards
MIDDLEWARE METAPHORICALLY
Host 1 Host 2
Distributed application Distributed application
Middleware Middleware
Operating system Operating system
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
Transaction Processing System (TP-monitors)
implement transactional applications, e.g.e, ATM
example
Adapters, Wrappers, Mediators
CATEGORIES III
Choreography and Orchestration
Workflow and business process tools (BPEL et al.)
a.k.a. Web service composition
Fault Tolerance, Load Balancing, etc.
real-time, embedded, high-performance,
safety critical
DESIRABLE CHARACTERISTICS OF
SYSTEM
Simplicity and power: for developers & for API
Natural & seamless extension of development environment: for
implementer - so focus stays on application
Flexibility for easy modifications of software - separation of
interface from applications
Maintainability
Reusability
Portability
Page 17
MIDDLEWARE ARCHITECTURE
Communication is the focus
Client - server model
3-tier for much Middleware
Middle tier addition
Increase in number of clients
Better flexibility, maintainability, reusability,
scalability
Page 18
FORMS OF MIDDLEWARE
Middleware sits between OS & application
Huge number of products
Vary in "form"
Role, terminology, composition
Overview of key forms
Transaction -- Object
RPC -- Agent
Message -- Database
Web
Page 19
TRANSACTION PROCESSING
Middle tier of processing routines between system that
provides transaction-based services & clients
e.g.: ATM - deposit, withdraw, check balance
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)
Provides communication between applications on one or more
machines; different platforms
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)
Advantages - Same as MOM
Familiarity with object-oriented environment
Provide for rapid integration
Preserves separation between implementation & interface
Disadvantages
Different ORB's support different levels of service, platforms,
certain object-oriented languages
May be difficult to find one that supports all needs
Examples: OMG's CORBA, MS COM/DCOM, Sun's JAVA RMI
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)
Stubs embedded in client-server applications at compile,
facilitate calls between client-server
Advantages
Provide consistency of procedure calls locally & remotely
Network transparency of client-server location
Disadvantages
Most are synchronous - forces call-wait scenario, possible
blockages
Asynchronous mechanisms add complexity to development
Synchronous - not good for object-oriented or peer-to-peer
Example: Open Group's Dist. Computing Environment
Page 27
WEB SERVICES
Popular - bridge interface gap between application
hidden by network security (e.g. firewalls)
Leverages WWW technologies & protocols
XML interface
HTTP communications
New technologies
SOAP - Simple Object Access Protocol
WSDL - Web Services Definition Language
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
Framework vs. Middleware: not standard, debated
Author distinguishes:
Middleware - invisible, no interface
Framework - provides interfaces
Ubicomp - ubiquitous computing
Numerous initiatives
e.g., Universal plug-and-play
Page 34
MIDDLEWARE STANDARDS
Help with functionality, interoperability among
implementers
Consortiums (IEEE) - compromise, voluntary
Corporations - de facto standards; market share,
influence
e.g., IBM PC; MS Windows
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
DCE - Open Group
Distributed Computing Environment
Popular, forms basis of many middleware layers
Set of integrated system service specs.; OS, platform,
network independent
Provide: RPC, distributed file system, diskless workstation
support
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
Organization for Advancement of Structured Information
Standards (OASIS)
DocBook (documentation), DSML (directory services),
ebXML (eBusiness), SAML (security assertion), UDDI
(universal description, discover, & integration of web
services)
Page 39
DATABASE STANDARDS
SQL (Structured Query Language) - Oracle
Based on IBM's SEQUEL of 1970's
de facto standard
Are non-standard extensions
ODBC - Open Database Connectivity - MS
middleware database driver: database - applications
communication
Vendors: ODBC-compliant database
Sun's JDBC for Javas is ODBC - comp.
Page 40
MIDDLEWARE DESIGN CONSIDERATIONS
Complement project, easier to design, develop, &
maintain
Interoperability, reliability, efficiency throughput
Secure, dynamic, adaptable, scalable, available,
fault-tolerant
Flexible, portable, maintainable, reusable
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
Workflow Management and Business Activity Monitoring
Business
7
ActivityEvents
Modeler start halt add 6
4
3
resume remove
Deploy Visualize
Control Redirect Update Monitor ...
Workflow and Business Process Execution
Business Process
Events
WID
WPS (BPEL) WCS (ESB)
Communication Abstractions Communication
Events
Publish/Subscribe Point-to-Point Request/Reply Orchestration
Content-based Routing Business Process
Clients (publisher/subscriber) Execution Events
Content-based Router
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)