chapter 5 middleware. page 2 middleware software: in context of smart environment software to...

34
Chapter 5 Middleware

Upload: allison-rice

Post on 30-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Chapter 5

Middleware

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

Page 34

Middleware Conclusion

• See 5.6, pg. 119+ for examples• Middleware provides variety of

services• Applicable to Mobile Computing and

Smart Environments