1 / 37

MSc Course in Advanced Distributed Systems Session 1.1: Middleware Standards and Technologies

MSc Course in Advanced Distributed Systems Session 1.1: Middleware Standards and Technologies. http://info.comp.lancs.ac.uk/msc/AdvDistSys/. About the Course. For the following …. Course aims and objectives Detailed syllabus Expected learning outcomes Reading list Textbooks

pete
Download Presentation

MSc Course in Advanced Distributed Systems Session 1.1: Middleware Standards and Technologies

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MSc Course in Advanced Distributed SystemsSession 1.1: Middleware Standards and Technologies http://info.comp.lancs.ac.uk/msc/AdvDistSys/

  2. About the Course • For the following …. • Course aims and objectives • Detailed syllabus • Expected learning outcomes • Reading list • Textbooks • Other sources of information • Coursework • Reflective exercises • CORBA programming exercise • Mini-conference • Please refer to the course home-page: http://info.comp.lancs.ac.uk/msc/ads/index.htm

  3. Quiz 1 • What was the turnover of the middleware industry in 2007? • 14.1 billion US $ (Gartner Group) • Key players: IBM, BEA, Oracle, Microsoft, Sterling Commerce (AT&T) [1] Emmerich, W., Aoyama, M., and Sventek, J. 2007. The impact of research on middleware technologyhttp://doi.acm.org/10.1145/1228291.1228310

  4. Comparison

  5. Middleware Standards and Technologies • Overview of Lecture • What is middleware? • Different styles of middleware • Focus on distributed object technology • Case study: RM-ODP • From objects to components • Case study: Enterprise Java Beans • Additional reading • Blair and Stefani, chapters 1 and 2; Emmerich, chapters 3, 4 and 5; Szyperski, chapters 1 and 15

  6. What’s this?

  7. What defines computers? Enigma 1918-1945 (Germany) ENIAC 1946-1955 (USA) But what is the link with middleware? Collossus 1943-1946 (UK)

  8. The Role of Middleware => Portability, interoperability and re-use

  9. Quiz 2 • Orbacus: CORBA middleware • Implemented in C++ • On top of Linux (POSIX) • One “Hello world” request processed • How many C++ classes and C functions involved (server)? • How many local invocations (server)? • How big is the source code (LoC)?

  10. Example: ORBacus (4.1.2) ORBacus Request Processing one request, 2065 individual invocations, over 50 C-functions and 140 C++ classes.

  11. The Crucial Problem of Heterogeneity • Modern systems are inevitably heterogeneous • Hardware, operating systems, programming languages, etc. • Emergence of open distributed processing • Support for interoperability and portability • Importance of standards • De facto • De jure

  12. A History of Middleware • First generation middleware • Based exclusively on the client-server model, and approaches such as 2- or 3- tier architectures • Examples include the Open Group’s DCE • Second generation middleware • Based on distributed object technology • Examples include CORBA and Java RMI • Third generation middleware? • Based on emerging component technology, with more general n-tier architectures

  13. Other Styles of Middleware • Message-oriented middleware • Event service (cf. publish-subscribe paradigm) • Examples include IBM’s MQSeries and Sun’s Java Message Service (JMS) • Transactional middleware • Focus on reliability through atomic transactions • Examples include IBM CICS and Encina, BEA’s Tuxedo and Microsoft’s MTS • Also database-oriented middleware, resource discovery platforms, business process management platforms, etc….

  14. Focus on Distributed Object Technology • What is object-oriented computing? • Objects + class + inheritance [Wegner] • O-O and distribution • Language independence (cf. programming with interfaces) • Class vs type • Implementation inheritance vs interface inheritance

  15. Rationale for Objects • Encapsulation is a natural approach to developing distributed applications • Data abstraction provides a complete separation between specification and implementation of objects thus allowing programmers (at one level) to deal purely in terms of interfaces • The separation between specification and implementation also enables the system to evolve naturally by allowing an object to be replaced with another (compatible) object • Object-oriented systems are open in that new classes and objects can be added at any time (thus supporting extensibility)

  16. Distributed Objects: Key Players • ISO/ ITU-T Reference Model for Open Distributed Processing (RM-ODP) • OMG Common Object Request Nroker Architecture (CORBA) • Microsoft DCOM • Java RMI

  17. Case Study: RM-ODP • What is RM-ODP? • Joint initiative by ISO (ISO/IEC 10746) and ITU-T (ITU Recommendations X901 to X904) • Goal of producing a reference model in terms of an object-oriented modelling approach, and an associated framework and vocabulary • Central concept of viewpoints http://archive.dstc.edu.au/AU/research_news/odp/ref_model/

  18. RM-ODP: The Concept of Viewpoints

  19. RM-ODP: The Computational Viewpoint • Underlying object model • Definitions of object, class, type, template, factory... • Advanced concepts • Multiple interfaces of different styles: operational, stream and signal • QoS annotations on interfaces • Explicit bindings between interfaces Speaker Microphone Audio stream binding

  20. RM-ODP: The Engineering Viewpoint Focus on distribution management/ realisation of transparencies

  21. From Objects to Components • What is a component [Szyperski]? “ a unit of composition with contractually specifiedinterfaces and explicit context dependencies only” “in this context, a component can be deployed independently and is subject to third-party composition” Also typically coarse-grained and binary

  22. Rationale for Components • Time to market • Improved productivity/ reduced complexity • Emphasis on reuse • Programming by assembly (manufacturing) rather than development (engineering) • Reduced skills requirement • Key benefit on server side development? • (See CORBA Component Model later) “Components are inevitable?”

  23. Interfaces and Contracts • What is in a contract? • Provided and required interfaces • Pre and post conditions/ invariants • Others • Safety and progress (liveness) properties • Time and space requirements • Non-functional requirements generally • Checking contracts • Subtyping or behavioural subtyping • Other checks

  24. Composition • Components and composition • Composition is the principal means of construction, extension and reuse in component-based software development • C.F. (implementation) inheritance in object-oriented approaches “Components are for composition”

  25. Composition vs Inheritance • The fragile base class problem (Szyperski, p102) • With inheritance, it is often difficult to evolve a base class without affecting independently developed subclasses • Benefits of composition • Relies on message forwarding not inheritance • Message forwarding is simpler but less expressive than inheritance (cf possession of a common self) • Requires more explicit encoding of relationships between entities (designed in vs patched in)

  26. Packaging and Deployment • Packaging • To ship a component may require many separate files (component code and meta-data) • Solution is to package them into a standardised archive format • Potential use of XML • Deployment • Support typically provided for the installation, configuration, server-side management, etc

  27. Programming with Components • Connection-oriented programming • Use of indirection (enabling run-time configuration) • Reliance on event-based communication • Other (related) approaches • Scripting languages (e.g. see CCM) • Visual component assembly “There is no problem in computing that cannot be solved by an added level of indirection”, Maurice Wilkes “There is no performance problem that cannot be solved by eliminating a level of indirection”, Jim Gray

  28. Patterns, Frameworks and Software Architecture • Goal of design reuse • Patterns = sharing of interaction architectures • Frameworks = sharing subsystem architectures • Software architectures = sharing overall structure • Focus on software architecture • Architectures described using components and connectors • Development of associated architectural description languages (e.g. Wright)

  29. Components: Key Players • The OMG and components • Emerging CORBA v3 standard featuring the CORBA Component Model (CCM) • Microsoft and components • Development of COM/ DCOM, COM+ and, more recently, .NET • SUN and components • Development of Java Beans and EJB

  30. A Brief Look at Enterprise Java Beans • What is EJB? • A server-side component architecture for Java • Based on the concept of a container • Offers implicit distributed systems management • Formalises the interface between a managed bean (EJB) and its container • Event (callback) interface • Services expected in the container • Deployment using JAR files

  31. A Word from SUN... “The Enterprise JavaBeans architecture is a component architecture for the development and deployment of component-based distributed business applications. Applications written using EJB are scalable, transactional, and multi-user secure. These applications mat be written once, and then deployed on any server platform that supports the EJB specification.” C.F. Programming the middle tier of a 3-tier architecture

  32. The EJB Component Model • Two styles of component • Entity beans (c.f. objects) • Session beans (c.f. activities, relationships) • The EJB interfaces • Remote interface (the business methods) • Home interface (the lifecycle methods) • Bean class (implementation of business methods) • Primary key (entity beans only)

  33. A Closer Look at Containers • Distributed systems management • Declarative and implicit transaction service • Declarative and implicit security service (essentially access control) • Other services • Activation and passivation, persistence • Life cycle management • Container metadata (introspection) • Packaging and deployment

  34. The Java 2, Enterprise Edition (J2EE) • An integrated platform for the development of “web-enabled” applications, consisting of: • Enterprise JavaBeans • As discussed above • Servlets • A server side component model, supporting the deployment of servlet components in web servers • Java Server Pages (JSP) • An extension to servlets supporting the dynamic generation of web pages

  35. Expected Learning Outcomes • You should have a strong understanding of the role and motivation for middleware, and also how it solves problems of heterogeneity • You should be able to discuss the rationale for distributed object technology, and how this compares to other middleware technologies • You should be able to outline the basic concepts of RM-ODP and also discuss how this has influenced distributed object technologies

  36. Expected Learning Outcomes (continued) • You should be able to capture the essence of the component-based approach to distributed system development and also how this differs from previous distributed object technologies • You should be aware of the range of component-based technologies currently available, and also be able to describe the main features of the EJB architecture

  37. Sources • SNL Kagan Research quoted by http://dhdeans.blogspot.com for the 2005 global turnover of the Hollywood film industry • Guiness World Records 2006 quoted by http://www.femalebeauty.info for Madonna’s 2004 earnings (“Madonna, Highest Female Earnings Record”) • “Gartner Says Worldwide Application Infrastructure and Middleware Market Revenue Increased 13 Percent in 2007” http://www.gartner.com/it/page.jsp?id=689410 • Mr. Babbage, Meet Mr. Lego, IEEE Spectrum, April 2006, http://www.spectrum.ieee.org/apr06/3217

More Related