Middleware

advertisement

Understanding Networked Applications: A First Course Chapter 16 by David G. Messerschmitt

Layering a computing infrastructure Applications Application components Middleware Operating system Network Understanding Networked Applications 2 A First Course

Spanning layer Application Distributed object management Windows NT TCP UDP Mac OS TCP UDP UNIX TCP UDP Internet protocol Network 1 Network 2 Spanning layers Understanding Networked Applications 3 A First Course

The new infrastructure: middleware • Layer of software between OS and application – Hides heterogeneity – Provides generic common services – Increases level of abstraction • By its nature, not single platform, nor bundled with equipment – Microsoft attempts to be an exception Understanding Networked Applications 4 A First Course

The new infrastructure • Middleware is – where new capabilities are added by layering – where much of the experimentation and innovation happens in the infrastructure – where the successful approaches have a chance to become a spanning layer and/or integrated into a distributed OS • Boundary to a distributed OS is fuzzy Understanding Networked Applications 5 A First Course

Middleware objectives • Hide heterogeneity • Location independence • Common functionality needed by many applications • Software portability and mobile code • Help integrate legacy facilities • Aid application interoperability • Aid scalability Understanding Networked Applications 6 A First Course

Some middleware categories • Transaction processing – Simplify the coordination of complementary resource managers • Message-oriented middleware – Support message and queuing capabilities where resource mangers are not available simultaneously (like workflow) Understanding Networked Applications 7 A First Course

Some middleware categories • Distributed object management – Support applications that are distributed across heterogeneous platforms and organizations • Mobile code – Allow application code to be moved and executed on heterogeneous platforms – Without prior software installation Understanding Networked Applications 8 A First Course

Infrastructure software today • With networks, new emphasis on: – Portability : applications run across multiple platforms (avoid lock-in) – Interoperability : pieces of application must work together (benefit from network effects) What are some examples of each?

Understanding Networked Applications 9 A First Course

Understanding Networked Applications: A First Course Transaction processing by David G. Messerschmitt

The transaction Durable starting state Collection of resource actions Abort Successful completion Durable, consistent, ending state Rollback Understanding Networked Applications 11 A First Course

Transaction architecture Join Application logic Transaction manager Resource managers Understanding Networked Applications 12 Prepare, commit, abort A First Course

Commit or abort One or more “no’s” Phase 2 Transaction manager abort() Phase 1 Transaction manager prepare()  yes_or_no Rollback Transaction manager commit() All “yes” Understanding Networked Applications 13 A First Course

Atomic series of resource actions Client_1 Client_2 Group of RMI’s Server Starting state Inconsistent state Final state Understanding Networked Applications 14 A First Course

Locking to prevent conflicts Client_1 Client_2 Lock Server Starting state Group of RMI’s Unlock Understanding Networked Applications 15 Refused Final state A First Course

Abort Client_1 Client_2 Group of RMI’s Something goes awry Server Starting state Inconsistent state Final state Understanding Networked Applications 16 A First Course

Rollback Client_1 Client_2 Group of RMI’s Something goes awry Server Starting state Rollback Understanding Networked Applications 17 A First Course

Transaction protocol Application server Resource manager Transaction manager request(tp_ID,….) join(tp_ID) More requests….

Lock commit?(tp_ID) commit_or_abort(tp_ID) Commit or rollback Understanding Networked Applications 18 A First Course

Understanding Networked Applications: A First Course Mobile code and Java by David G. Messerschmitt

Reminder: two key requirements • With networks, new emphasis on: – Portability : applications run across multiple platforms (avoid lock-in) – Interoperability : pieces of application must work together (benefit from network effects) Understanding Networked Applications 20 A First Course

Dynamic portability: mobile code  Send code (as a message) to a host

MC Mobile code:

Code representing a software program that can be moved to heterogeneous platforms and executed there  Execute the program represented by that code Understanding Networked Applications 21 A First Course

MC

Portability can aid interoperability Mobile code originating from a common source can enhance interoperability Understanding Networked Applications 22 A First Course

Java • Portability – “Write once, run anywhere” • Programming productivity – Garbage collection (no memory leaks) – Multi-threaded • Scalability – Move execution cycles • Interoperability – Software components come from common repository Understanding Networked Applications 23 A First Course

Mobile code:

Code representing a software program

MC

Idea of mobile code  Send as a message to a host

MA Mobile agent:

Code and data representing an object or component Understanding Networked Applications 24  Execute the program A First Course

Some mobile code advantages Executing program closer to user can enhance interactivity Mobile code originating from a common source can enhance interoperability and bypass network effects

MC MC

Shifting location of computation can enhance scalability Understanding Networked Applications 25 A First Course

Idea of mobile agents  Agent launched  Agent executes in each host, modifying its state

MA

 Agent returns Understanding Networked Applications 26 A First Course

Java virtual machine Java program Mobile code Compilation JIT compiler VM interpreter Understanding Networked Applications 27 Bytecode: low level but machine independent Native machine instructions A First Course

VM as spanning layer Applications JavaBeans component framework Java virtual machine Java VM spanning layer Operating system Understanding Networked Applications 28 A First Course

SUN/Java strategy • License Java freely, even to rival Microsoft – Why?

• License terms give Sun a modicum of control over the “standard” – Why?

• How does Sun expect to make money?

Understanding Networked Applications 29 A First Course

Understanding Networked Applications: A First Course Distributed object management by David G. Messerschmitt

Distributed object management • Emphasis is on interoperability – Allows objects on one host to invoke methods of objects on another host – Platform, language independent • CORBA vs DCOM • Portability is not the emphasis Understanding Networked Applications 31 A First Course

Interoperability Client Server Client object can invoke methods of server object, even if they are running on different platforms, written in different languages What else is needed?

Understanding Networked Applications 32 A First Course

Interoperability Client Server Interoperability also requires: • Common structure of data • Common interpretation of data • Agreement on protocols Understanding Networked Applications 33 A First Course

Before and after OS 1 Distributed application OS 2 IP OS 3 Distributed application Distributed object management middleware OS 1 OS 2 IP OS 3 Understanding Networked Applications 34 Potential spanning layer Spanning layer A First Course

What is the acronym?

• C ommon O bject R equest B roker A rchitecture or • C oncerned O ff R oad B icyclist A ssociation?

Understanding Networked Applications 35 A First Course

Client objects CORBA architecture Server objects Object adapter Object request broker core Interface repository CORBA services Understanding Networked Applications 36 A First Course

Protocol layer Location-independent application Object Management Group CORBA standard User datagram protocol (UDP) Application Object request broker Internet Inter-ORB Protocol (IIOP) Transmission control protocol (TCP) Internet protocol (IP) Subnetworks Understanding Networked Applications 37 A First Course

Portability not promised Application 1 Location-dependent application Interoperability Application 2 ORB 1 ORB 2 Internet Inter-ORB Protocol (IIOP) CORBA standard does not insure ORB-to-ORB portability Understanding Networked Applications 38 A First Course

OMG process • Identify need • Request for proposals • Process to – choose best – or ask proposal advocates to work together Understanding Networked Applications 39 A First Course

Which is most effective?

• Industry de facto standard effort (CORBA) or • Single vendor integrated solution (DCOM)?

Understanding Networked Applications 40 A First Course

CORBA vs DCOM CORBA • Integrate best ideas • Multi-vendor support • Cross-platform and language DCOM • Fast, no consensus required • No vendor interoperability issues Understanding Networked Applications 41 A First Course

Two methods for application interaction • CORBA and DCOM • Exchange documents (XML) What are their relative merits?

Understanding Networked Applications 42 A First Course

CORBA vs XML CORBA • Natural OOP extension • No document interpretation • Good for back-and forth protocols Both have need for standardization of data or document interpretation Understanding Networked Applications XML • Flexible data-sharing • Good for document-like objects • Natural cross-platform capability • No protocol standardization 43 A First Course

What CORBA provides • Java – Language bindings – Transportable objects • “Inter-galactic” software bus – Cross-platform and language – Interoperability (but not portability) • High levels of abstraction – Remote method invocation on objects Understanding Networked Applications 44 A First Course

What CORBA provides (con’t) • Run-time flexibility – Everything self-describing – Interface discovery – Dynamic data structures and binding • Useful services – Naming – Security – Many others Understanding Networked Applications 45 A First Course

Importance of CORBA • Inter-enterprise computing – Platform and language independence – Electronic commerce, network management, etc • Reduction of network effects – Another spanning layer – Significance of platform reduced Understanding Networked Applications 46 A First Course

Are Java and CORBA competitive or complementary?

• Both offer interoperability across different platforms • Java offers portability and transportability • CORBA offers heterogeneous language bindings • CORBA offers many services, metadata, etc.

• Bottom line: they are complementary!

– (but some Java proponents may not agree) Understanding Networked Applications 47 A First Course

Who favors what?

Would these vendors be in favor of: • Interoperability?

• Portability?

Microsoft Intel SUN Novell Iona Understanding Networked Applications 48 A First Course

Download