0% found this document useful (0 votes)
76 views44 pages

CHP 2 Middleware Technologies

Uploaded by

GeehthanJI
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views44 pages

CHP 2 Middleware Technologies

Uploaded by

GeehthanJI
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

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)

You might also like