The Future of Middleware R&D Geoff Coulson Distributed Multimedia Research Group Computing Dept, Lancaster University

Slides:



Advertisements
Similar presentations
Overview of Web Services
Advertisements

Understanding Code Mobility
1 Secure Dynamic Reconfiguration of Scalable Systems with Mobile Agents Fabio Kon, Binny Gill, Manish Anand, Roy Campbell, and M. Dennis Mickunas
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
An Extensible Binding Framework for Component- Based Middleware By Nikos Parlavantzas, Geoff Coulson, and Gordon S. Blair Presented by Erol Koç Concurrency.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Distributed Systems Architectures
Technical Architectures
JAVA Technology. Java Technology Java technology is a portfolio of products that are based on the power of networks and the idea that the same software.
Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Grid Programming Environment (GPE) Grid Summer School, July 28, 2004 Ralf Ratering Intel - Parallel and Distributed Solutions Division (PDSD)
Legion Worldwide virtual computer. About Legion Made in University of Virginia Object-based metasystems software project middleware that connects computer.
Ch 12 Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Understanding and Managing WebSphere V5
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Distributed Software Engineering To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11Slide 1 Chapter 11 Distributed Systems Architectures.
Interoperating with Services in a Mobile Environment Andreas Dahl, Pål Rolfsen Grønsund, Per Thomas Kraabøl,
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
International Conference on Software Engineering 2007
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Architecting Web Services Unit – II – PART - III.
Final presentation Simon Zambrovski Tutor: Muhammad Farhat Kaleem Design choices and strategies for implementing WS-BusinessActivity.
Architectures of distributed systems Fundamental Models
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
Supporting Runtime Reconfiguration on Network Processors Kevin Lee Lancaster University
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Investigating Survivability Strategies for Ultra-Large Scale (ULS) Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated.
ICT Strategy Intelligent Highways: Endpoint Adapters.
Yuhui Chen; Romanovsky, A.; IT Professional Volume 10, Issue 3, May-June 2008 Page(s): Digital Object Identifier /MITP Improving.
Understanding Code Mobility A Fuggetta, G P Picco and G Vigna Presenter Samip Bararia.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
ProActive components and legacy code Matthieu MOREL.
Notes from Coulouris 5Ed Distributed Systems Notes on Components.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Problem On a regular basis we use: –Java applets –JavaScript –ActiveX –Shockwave Notion of ubiquitous computing.
PhD VIVA Kevin lee 28 th July 2006 “OpenNP: A Generic Programming Model for Network Processors” Brief Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
A service Oriented Architecture & Web Service Technology.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
The Role of Reflection in Next Generation Middleware
CSC 480 Software Engineering
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Service Oriented Architecture (SOA)
Distributed Systems Architectures
Presentation transcript:

The Future of Middleware R&D Geoff Coulson Distributed Multimedia Research Group Computing Dept, Lancaster University

The original goals of middleware  masking heterogeneity networks, end-systems, OSs, programming languages networks, end-systems, OSs, programming languages  providing a useful distributed programming model simplicity with generality simplicity with generality CORBA, Java RMI, etc. have been very successful in this... business applications; wrapping of legacy systems...

“So, let’s apply the middleware concept more widely...”  applications eCommerce, 7x24 back-end servers eCommerce, 7x24 back-end servers eScience eScience real-time, embedded real-time, embedded mobile agent systems mobile agent systems peer to peer platforms peer to peer platforms mobile computing applications mobile computing applications ubicomp ubicomp telecomms/ programmable networking telecomms/ programmable networking  underlying systems PCs/ workstations PCs/ workstations supercomputers supercomputers wireless PDAs wireless PDAs embedded devices embedded devices network processors network processors wireless, sensor, infrared etc. networks wireless, sensor, infrared etc. networks

A victim of its own success?  CORBA tries to cope... add asynch., transactions, fault-tolerance, persistence, components, load balancing, logging, real-time/ embedded/ lightweight CORBA,... add asynch., transactions, fault-tolerance, persistence, components, load balancing, logging, real-time/ embedded/ lightweight CORBA,...  complexity and unmanageability  prototypes arise to fill the gaps asynchronous middleware (pub-sub, eventing, message queueing) (MSMQ, JMS, JavaSpaces,...) asynchronous middleware (pub-sub, eventing, message queueing) (MSMQ, JMS, JavaSpaces,...) Grid middleware (Legion, Globus, OGSA,...) Grid middleware (Legion, Globus, OGSA,...) web services (SOAP, WSDL, WSFL,...) web services (SOAP, WSDL, WSFL,...) mobility middleware (Rover, MOST,...) mobility middleware (Rover, MOST,...) mobile agent systems (Tacoma, Aglets,...) mobile agent systems (Tacoma, Aglets,...) peer-to-peer (JXTA, Jtella,...) peer-to-peer (JXTA, Jtella,...) real-time/ multimedia middleware (ReTINA, DIMMA,...) real-time/ multimedia middleware (ReTINA, DIMMA,...) etc. etc.  different assumptions, models, implementation environments,...  muddleware!

Some major problems  middleware heterogeneity the “let’s do our own platform” syndrome the “let’s do our own platform” syndrome application programmers can’t make appropriate choices and cope with the diversity and complexity of all the programming models and APIs application programmers can’t make appropriate choices and cope with the diversity and complexity of all the programming models and APIs solution: trumping? wait for a standards-war winner? NO! solution: trumping? wait for a standards-war winner? NO!  middleware bloat (esp. CORBA) the “kitchen sink” syndrome the “kitchen sink” syndrome wasted computational resources wasted computational resources solution: simplify; but how? solution: simplify; but how?  other problems the focus on wide applicability and building new platforms has resulted in insufficient attention to pressing issues like the focus on wide applicability and building new platforms has resulted in insufficient attention to pressing issues like  management: deployment, configuration, adaptation, resilience, recovery,...  quality: dependability, integrity, scalability,...

A possible solution approach  build middleware from fine-grain components configure-in functionality and services as required configure-in functionality and services as required use reflection to facilitate (re)configuration use reflection to facilitate (re)configuration can ‘wrap’ successful existing functionality (e.g., IIOP, RTP, JMS, JavaSpaces,...) can ‘wrap’ successful existing functionality (e.g., IIOP, RTP, JMS, JavaSpaces,...)  reify successful design patterns as component frameworks composite components that take plug-ins composite components that take plug-ins build in rules, constraints build in rules, constraints e.g. CFs for pluggable protocols or binding-types e.g. CFs for pluggable protocols or binding-types  MDA tools generate appropriate component/ CF machinery generic, high level programming; reduced bloat generic, high level programming; reduced bloat

Some implied research topics need experience in building systems from components need experience in building systems from components need to minimise and optimise run-times for resource-scarce areas like real-time embedded and programmable networking need to minimise and optimise run-times for resource-scarce areas like real-time embedded and programmable networking MDA is still immature and it’s even harder to map to a library of components than to a fixed API MDA is still immature and it’s even harder to map to a library of components than to a fixed API components and CFs can’t directly address the management and quality issues (although they can help) components and CFs can’t directly address the management and quality issues (although they can help)  autonomic computing?

Conclusions  CORBA v2 (etc.) has been a victim of its own success  attempts to apply the middleware concept more widely has lead to “muddleware” and “bloat”  management and quality issues have not received sufficient attention  is MDA + reflective component-based middleware a promising approach?  many problems still to address...

Design time  2-3 most important design-time tools and techniques needed to support next- gen middleware

Run time  2-3 most important run-time platforms and techniques needed to support next- gen middleware

Applications  2-3 most important types of applications that will benefit from advances in R&D on the design-time and run-time tools, platforms, and techniques

Conclusions  Hmmm

Component model  components encapsulated functionality encapsulated functionality language neutral language neutral third-party deployable third-party deployable can also encapsulate other components to arbitrary degrees of nesting can also encapsulate other components to arbitrary degrees of nesting

Component model  interfaces components can support any number of interfaces to help in separating concerns components can support any number of interfaces to help in separating concerns expressed in a language-independent IDL expressed in a language-independent IDL interaction points for ‘signals’ as well as operations interaction points for ‘signals’ as well as operations

Component model load() unload() container runtime  containers run-time environment for components run-time environment for components containers may be implemented as OS processes, but not necessarily containers may be implemented as OS processes, but not necessarily load() unload() services available from both inside and outside the container load() unload() services available from both inside and outside the container

Component model load() unload() container runtime  receptacles ‘anti-interfaces’ – express a service requirement rather than a service provision ‘anti-interfaces’ – express a service requirement rather than a service provision components may support any number of receptacles to express a variety of requirements on its environment components may support any number of receptacles to express a variety of requirements on its environment key to third party deployability key to third party deployability

Component model load() unload() bind() unbind() container runtime  local binding only possible between interfaces and receptacles in same container only possible between interfaces and receptacles in same container assumed lightweight implementation (e.g. vtables) – more needed in case of mixed languages assumed lightweight implementation (e.g. vtables) – more needed in case of mixed languages container offers bind() and unbind() service container offers bind() and unbind() service

Further issues (1)  coping with distribution to bind non-local components, we simply load the containers with components that implement suitable protocols/ middleware to bind non-local components, we simply load the containers with components that implement suitable protocols/ middleware we then delegate – locally bind the application components to this ‘middleware’ we then delegate – locally bind the application components to this ‘middleware’ no inherent difference between ‘middleware’ and ‘applications’ – both are just compositions of appropriate components no inherent difference between ‘middleware’ and ‘applications’ – both are just compositions of appropriate components middleware middleware

Further issues (2)  the first-class binding pattern a common pattern is to wrap (part of) the required middleware functionality as a ‘distributed component’ called a binding component a common pattern is to wrap (part of) the required middleware functionality as a ‘distributed component’ called a binding component these are instantiated by a central factory which delegates to multiple local factory instances these are instantiated by a central factory which delegates to multiple local factory instances a wide variety of binding types can be implemented a wide variety of binding types can be implemented  RMI, messaging, eventing, media streaming, group comms, shared data spaces (tuple spaces, blackboard systems, mailboxes), voting and auction protocols, workflow processes,...  we have a framework for defining and deploying such binding types

Further issues (3)  component frameworks provide structure to component compositions and constrain adaptation provide structure to component compositions and constrain adaptation define roles and constraints for plug-ins define roles and constraints for plug-ins act as run-time life support environments in a particular doamin of functionality act as run-time life support environments in a particular doamin of functionality  e.g. a pluggable protocols framework  or first-class binding types  or the OpenORB middleware...

Further issues (4)  reflection support for configuring and reconfiguring sets of components support for configuring and reconfiguring sets of components inspection, adaptation, extension via causally connected meta-models of aspects of underlying components and compositions inspection, adaptation, extension via causally connected meta-models of aspects of underlying components and compositions we provide a set of orthogonal meta-models that expose different aspects we provide a set of orthogonal meta-models that expose different aspects  architecture  interface  interception  resources