* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Middleware
Distributed firewall wikipedia , lookup
Deep packet inspection wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Internet protocol suite wikipedia , lookup
Remote Desktop Services wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Service-oriented architecture implementation framework wikipedia , lookup
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 UNIX TCP UDP 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 Prepare, commit, abort Resource managers Understanding Networked Applications 12 A First Course Commit or abort One or more “no’s” Phase 2 Transaction manager abort() Phase 1 Transaction manager Rollback Transaction manager prepare() yes_or_no commit() All “yes” Understanding Networked Applications 13 A First Course Atomic series of resource actions Client_1 Client_2 Server Starting state Inconsistent state Group of RMI’s Final state Understanding Networked Applications 14 A First Course Locking to prevent conflicts Client_1 Client_2 Server Lock Starting state Group of RMI’s Refused Final state Unlock Understanding Networked Applications 15 A First Course Abort Client_1 Client_2 Server Starting state Group of RMI’s Something goes awry Inconsistent state Final state Understanding Networked Applications 16 A First Course Rollback Client_1 Client_2 Server Starting state Rollback Group of RMI’s Something goes awry Understanding Networked Applications 17 A First Course Transaction protocol Application server Resource manager request(tp_ID,….) Transaction manager 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 Understanding Networked Applications Execute the program represented by that code 21 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 Understanding Networked Applications Execute the program 24 A First Course Some mobile code advantages Executing program closer to user can enhance interactivity MC Mobile code originating from a common source can enhance interoperability and bypass network effects 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 Mobile code Compilation 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 VM spanning layer Java virtual machine 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 Distributed application OS 1 OS 2 OS 3 IP Distributed application Distributed object management middleware OS 1 OS 2 OS 3 Potential spanning layer Spanning layer IP 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 Application Object Management Group CORBA standard Object request broker Internet Inter-ORB Protocol (IIOP) User datagram protocol (UDP) Transmission control protocol (TCP) Internet protocol (IP) Subnetworks Understanding Networked Applications 37 A First Course Portability not promised Location-dependent application Application 1 Interoperability ORB 1 Application 2 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 Understanding Networked Applications DCOM • Fast, no consensus required • No vendor interoperability issues 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 XML • Natural OOP extension • Flexible data-sharing • No document interpretation • Good for document-like objects • Good for back-andforth protocols • Natural cross-platform capability Both have need for standardization of data or document interpretation • No protocol standardization Understanding Networked Applications 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: Microsoft Intel • Interoperability? SUN • Portability? Novell Iona Understanding Networked Applications 48 A First Course