Page 2
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 3
Middleware• Defined by API it provides to
applications that use it & by protocols it supports
• Should reduce complexities– Of networks, OS, applications
• Should provide cross-platform infrastructure
• Should improve the system
Page 4
Overview of Middleware
1. Understanding of Middleware2. Desirable characteristics3. Different forms
– Advantages/disadvantages
4. Technologies5. Standards6. Benefits
* Provide a working knowledge base *
Page 5
Perceive-Reason-Act AI Approach
• Use to define characteristics of Middleware• Perceive: sensors
– Software to read, store, calibrate, etc.
• Reason: AI applications– Software to reason about the environment &
provide actions
• Act: controllers– To change environment
See Figure 5.1, pg. 104
What are the communications requirements?
Page 6
Needs of System (Figure 5.1)
• Interoperability: 2+ entities communicate
• Reliability: guarantee delivery• Efficiency: minimize consumption &
delivery time• Throughput: lots of data, no
bottlenecks• Distributed network: applications not
on single computer
Page 7
Wants of System• Provide for future extensions &
contingencies• Scalable• Hot - swappable - don't shut down to
change component or application• Secure• Highly available - running, accessible• Fault - tolerant
Page 8
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 9
Middleware Architecture
• Communication is the focus• Client - server model (Figure 5.3, pg.
107)– 3-tier for much Middleware– Middle tier addition
•Increase in number of clients•Better flexibility, maintainability,
reusability, scalability
Page 10
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 11
Transaction Processing• Middle tier of processing routines
between system that provides transaction-based services & clients– e.g.: ATM - deposit, withdraw, check balance– See Figure 5.4, pg. 109
• Advantages– Independence of layers, database– Easily customized on all components– Transparency– Mature & well-tested efficient, reliable
Page 12
Transaction Processing• Disadvantages
– Limited scalability - each client (ATM) adds overhead
– Older - uses low-level languages
• Examples: IBM's CISTP, BEA TUXEDO
Page 13
Message-Oriented (MOM)
• Provides communication between applications on one or more machines; different platforms (Figure 5.5, pg. 109)
• Generally asynchronous• Message queuing, persistence
(delays), delivery• Peer-to-peer connectivity;
agreed upon protocols
Page 14
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 15
Object-Orientedaka Object-Oriented Brokers
(ORB)
• Transparent extensions of object-oriented development environment, – Figure 5.6, pg. 110
• Support: interface definition language, O communication mechanisms, O activation/location mechanisms
• Facilitate: locating objects & establishing communication - similar to MOM
Page 16
Object-Orientedaka 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 17
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 18
Remote Procedure Call (RPC)
• Stubs embedded in client-server applications at compile, facilitate calls between client-server (Figure 5.7, pg. 111)
• 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 19
Web Services
• Popular - bridge interface gap between application hidden by network security (e.g. firewalls)
• Leverages WWW technologies & protocols (Figure 5.8, pg. 112)
– XML interface– HTTP communications
• New technologies– SOAP - Simple Object Access Protocol– WSDL - Web Services Definition Language
Page 20
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 21
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 22
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 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
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 32
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 33
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
Top Related