Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Understanding Networked Applications: A First Course Chapter 16 by David G. Messerschmitt."— Presentation transcript:

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

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

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

4 Understanding Networked Applications A First Course 4 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

5 Understanding Networked Applications A First Course 5 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

6 Understanding Networked Applications A First Course 6 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

7 Understanding Networked Applications A First Course 7 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)

8 Understanding Networked Applications A First Course 8 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

9 Understanding Networked Applications A First Course 9 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?

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

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

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

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

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

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

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

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

18 Understanding Networked Applications A First Course 18 Application serverResource managerTransaction manager request(tp_ID,….) join(tp_ID) More requests…. commit?(tp_ID) commit_or_abort(tp_ID) Lock Commit or rollback Transaction protocol

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

20 Understanding Networked Applications A First Course 20 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)

21 Understanding Networked Applications A First Course 21  Send code (as a message) to a host  Execute the program represented by that code MC Mobile code: Code representing a software program that can be moved to heterogeneous platforms and executed there Dynamic portability: mobile code

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

23 Understanding Networked Applications A First Course 23 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

24 Understanding Networked Applications A First Course 24  Send as a message to a host  Execute the program MC Mobile code: Code representing a software program MA Mobile agent: Code and data representing an object or component Idea of mobile code

25 Understanding Networked Applications A First Course 25 Shifting location of computation can enhance scalability Executing program closer to user can enhance interactivity Mobile code originating from a common source can enhance interoperability and bypass network effects MC Some mobile code advantages

26 Understanding Networked Applications A First Course 26  Agent launched  Agent executes in each host, modifying its state  Agent returns MA Idea of mobile agents

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

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

29 Understanding Networked Applications A First Course 29 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?

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

31 Understanding Networked Applications A First Course 31 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

32 Understanding Networked Applications A First Course 32 Interoperability ClientServer Client object can invoke methods of server object, even if they are running on different platforms, written in different languages What else is needed?

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

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

35 Understanding Networked Applications A First Course 35 What is the acronym? Common Object Request Broker Architecture or Concerned Off-Road Bicyclist Association?

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

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

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

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

40 Understanding Networked Applications A First Course 40 Which is most effective? Industry de facto standard effort (CORBA) or Single vendor integrated solution (DCOM)?

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

42 Understanding Networked Applications A First Course 42 Two methods for application interaction CORBA and DCOM Exchange documents (XML) What are their relative merits?

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

44 Understanding Networked Applications A First Course 44 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

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

46 Understanding Networked Applications A First Course 46 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

47 Understanding Networked Applications A First Course 47 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)

48 Understanding Networked Applications A First Course 48 Who favors what? Would these vendors be in favor of: Interoperability? Portability? Microsoft Intel SUN Novell Iona


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

Similar presentations


Ads by Google