Вы находитесь на странице: 1из 48

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

A First Course

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

UNIX TCP UDP

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

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

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

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

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

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

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
Application logic Join

Transaction manager

Resource managers
Understanding Networked Applications

Prepare, commit, abort 12


A First Course

Commit or abort
One or more nos Phase 1 Transaction manager
prepare() yes_or_no

Phase 2 Transaction manager


abort()

Rollback Transaction manager

All yes

commit()

Understanding Networked Applications

13

A First Course

Atomic series of resource actions


Client_1 Client_2 Server
Starting state

Group of RMIs

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 RMIs

Refused
Final state

Unlock
Understanding Networked Applications

15

A First Course

Abort
Client_1 Client_2 Server
Starting state

Group of RMIs

Something goes awry

Inconsistent state Final state

Understanding Networked Applications

16

A First Course

Rollback
Client_1 Client_2 Server
Starting state

Group of RMIs

Rollback
Something goes awry

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 21

Execute the program represented by that code

Understanding Networked Applications

A First Course

Portability can aid interoperability


MC

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

Execute the program

Understanding Networked Applications

24

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 executes in each host, modifying its state Agent launched MA

Agent returns

Understanding Networked Applications

26

A First Course

Java virtual machine


Java program Compilation Mobile code

JIT compiler

VM interpreter

Bytecode: low level but machine independent Native machine instructions

Understanding Networked Applications

27

A First Course

VM as spanning layer
Applications JavaBeans component framework Java virtual machine Operating system

Java VM spanning layer

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 Interoperability also requires: Common structure of data Common interpretation of data Agreement on protocols
Understanding Networked Applications

Server

33

A First Course

Before and after


Distributed application

OS 1

OS 2 IP
Distributed application

OS 3 Potential spanning layer


Spanning layer

Distributed object management middleware

OS 1

OS 2 IP

OS 3

Understanding Networked Applications

34

A First Course

What is the acronym?


Common Object Request Broker Architecture or Concerned Off-Road Bicyclist Association?

Understanding Networked Applications

35

A First Course

CORBA architecture
Client objects Server objects

Object adapter Object request broker core Interface repository


Understanding Networked Applications

CORBA services 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


Location-dependent application
Application 1 ORB 1
Internet Inter-ORB Protocol (IIOP)

Interoperability

Application 2 ORB 2

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 (cont)


Run-time flexibility
Everything self-describing Interface discovery Dynamic data structures and binding

Useful services
Naming Security Many others 45

Understanding Networked Applications

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

Вам также может понравиться