Patterns, Frameworks, & Middleware: Their Synergistic Relationships Douglas C. Schmidt Professor of EECS Vanderbilt University.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

CS 282 Principles of Operating Systems II Middleware for Distributed Real-time & Embedded Systems Dr. Douglas C. Schmidt
COM vs. CORBA.
Database Architectures and the Web
©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.
CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
Patterns, Frameworks, & Middleware: Their Synergistic Relationships
CORBA - Common Object Request Broker Architecture.
Component-based Software Engineering Marcello Bonsangue LIACS – Leiden University Fall 2005 Component Model Comparison.
Distributed components
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Technical Architectures
Distributed Systems Architectures
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Tutorial on the Lightweight CORBA Component Model (CCM) Industrializing the Development of Distributed Real- time & Embedded Applications Other contributors.
DARPA Dr. Douglas C. Schmidt DARPA/ITO Towards Adaptive & Reflective Middleware for Combat Systems Wednesday, June 24, 2015 Authorized.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Reuse Activities Selecting Design Patterns and Components
Challenges Ahead 1 Middleware: State of the Art and Challenges Ahead  Changing environment  Enterprise application integration: formerly independent.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
CS QoS-enabled Middleware Design & Application Dr. Douglas C. Schmidt Professor.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
An Introduction to Software Architecture
1 G52IWS: Distributed Computing Chris Greenhalgh.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Towards Pattern Languages for Distributed Real-time & Embedded Systems Associate Professor Electrical & Computing Engineering Dept. The.
1 06/00 Questions 10/6/2015 QoS in DOS ECOOP 2000John Zinky BBN Technologies ECOOP 2000 Workshop on Quality of Service in Distributed Object Systems
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
CS291 Software Design Studio Dr. Douglas C. Schmidt Professor of EECS Vanderbilt University.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
R R R 1 Frameworks III Practical Issues. R R R 2 How to use Application Frameworks Application developed with Framework has 3 parts: –framework –concrete.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
Investigating Survivability Strategies for Ultra-Large Scale (ULS) Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms Joe.
Towards a Holistic Approach for Integrating Middleware with Software Product Lines Research Institute for Software Integrated Systems Dept of EECS, Vanderbilt.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Topic 2: The Role of Open Standards, Open-Source Development, & Different Development Models & Processes (on Industrializing Software) ARO Workshop Outbrief,
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Lecture 21: Component-Based Software Engineering
Model-Driven Optimizations of Component Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems OMG Real-time Workshop.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Benefits & Limitations of Patterns & Frameworks: Part 1 Douglas C. Schmidt Professor of Computer.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Design Patterns-1 7 Hours.
Ch > 28.4.
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Tools for Composing and Deploying Grid Middleware Web Services
Presentation transcript:

Patterns, Frameworks, & Middleware: Their Synergistic Relationships Douglas C. Schmidt Professor of EECS Vanderbilt University Nashville, Tennessee

2 Technology Trends (1/3) Information technology is being commoditized i.e., hardware & software are getting cheaper, faster, & (generally) better at a fairly predictable rate These advances stem largely from standard hardware & software APIs & protocols, e.g.: TCP/IP, GSM, Link16 POSIX, Windows, & VMs Middleware & component models Intel x86 & Power PC chipsets Quality of service (QoS) aspects

3 Technology Trends (2/3) Process Automation Quality Control Avionics Mission Computing Modalities e.g., MRI, CT, CR, Ultrasound, etc. Electronic Medical Imaging Software Defined Radio Hot Rolling Mills Growing acceptance of a network-centric component paradigm i.e., distributed applications with a range of QoS needs are constructed by integrating components & frameworks via various communication mechanisms

4 Technology Trends (3/3) Components encapsulate application “business” logic Components interact via ports Provided interfaces, e.g.,facets Required connection points, e.g., receptacles Event sinks & sources Attributes Containers provide execution environment for components with common operating requirements Components/containers can also Communicate via a middleware bus and Reuse common middleware services Component middleware is maturing & becoming pervasive SecurityReplicationNotificationPersistence SchedulingA/V StreamingLoad Balancing … Container … … Middleware Bus Container …

5 The Evolution of Middleware There are multiple COTS middleware layers & research/business opportunities Historically, mission-critical apps were built directly atop hardware Tedious, error-prone, & costly over lifecycles Standards-based COTS middleware helps: Control end-to-end resources & QoS Leverage hardware & software technology advances Evolve to new environments & requirements Provide a wide array of reuseable, off- the-shelf developer-oriented services There are layers of middleware, just like there are layers of networking protocols Hardware Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware & OS Operating Systems & Protocols Applications

6 Operating System & Protocols Operating systems & protocols provide mechanisms to manage endsystem resources, e.g., CPU scheduling & dispatching Virtual memory management Secondary storage, persistence, & file systems Local & remove interprocess communication (IPC) OS examples UNIX/Linux, Windows, VxWorks, QNX, etc. Protocol examples TCP, UDP, IP, SCTP, RTP, etc. RTP DNS HTTP UDPTCP IP TELNET EthernetATMFDDI Fibre Channel FTP INTERNETWORKING ARCH TFTP 20 th Century Win2KLinuxLynxOS Solaris VxWorks Middleware Services Middleware Applications MIDDLEWARE ARCH 21 st Century

7 Host Infrastructure Middleware Host infrastructure middleware encapsulates & enhances native OS mechanisms to create reusable network programming components These components abstract away many tedious & error-prone aspects of low-level OS APIs Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware Synchronization Memory Management Physical Memory Access Asynchronous Event Handling Scheduling Asynchronous Transfer of Control Examples Java Virtual Machine (JVM), Common Language Runtime (CLR), ADAPTIVE Communication Environment (ACE)

8 Distribution Middleware Distribution middleware defines higher-level distributed programming models whose reusable APIs & components automate & extend native OS capabilities Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware Distribution middleware avoids hard-coding client & server application dependencies on object location, language, OS, protocols, & hardware Examples OMG CORBA, Sun’s Remote Method Invocation (RMI), Microsoft’s Distributed Component Object Model (DCOM)

9 Common Middleware Services Common middleware services augment distribution middleware by defining higher-level domain-independent services that focus on programming “business logic” Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware Common middleware services support many recurring distributed system capabilities, e.g., Transactional behavior Authentication & authorization, Database connection pooling & concurrency control Active replication Dynamic resource management Examples CORBA Component Model & Object Services, Sun’s J2EE, Microsoft’s.NET

10 Domain-Specific Middleware Modalities e.g., MRI, CT, CR, Ultrasound, etc. Siemens MED Syngo Common software platform for distributed electronic medical systems Used by all ~13 Siemens MED business units worldwide Domain-specific middleware services are tailored to the requirements of particular domains, such as telecom, e- commerce, health care, process automation, or aerospace Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware Boeing Bold Stroke Common software platform for Boeing avionics mission computing systems Examples

11 Why We are Succeeding The past decade has yielded significant progress in QoS-enabled middleware, stemming in large part from the following trends: NET, J2EE, CCM Real-time CORBA Real-time Java SOAP & Web Services The maturation of middleware standards Hardware Domain-Specific Services Common Services Distribution Middleware Host Infrastructure Middleware Operating Systems & Protocols Applications Years of iteration, refinement, & successful use Year ARPAnet RPC Micro-kernels CORBA & DCOM Real-time CORBA Component Models (EJB) CORBA Component Model (CCM) Real-time CCM DCE Web Services The maturation of component middleware frameworks & patterns

12 Present solutions to common software problems arising within a certain context Overview of Patterns Capture recurring structures & dynamics among software participants to facilitate reuse of successful designs The Proxy Pattern 11 Proxy service Service service AbstractService service Client Help resolve key software design forces Flexibility Extensibility Dependability Predictability Scalability Efficiency Generally codify expert knowledge of design strategies, constraints & “best practices”

13 Overview of Pattern Languages Benefits of Pattern Languages Define a vocabulary for talking about software development problems Provide a process for the orderly resolution of these problems Help to generate & reuse software architectures Motivation Individual patterns & pattern catalogs are insufficient Software modeling methods & tools largely just illustrate how – not why – systems are designed

14 Taxonomy of Patterns & Idioms TypeDescriptionExamples IdiomsRestricted to a particular language, system, or tool Scoped locking Design patternsCapture the static & dynamic roles & relationships in solutions that occur repeatedly Active Object, Bridge, Proxy, Wrapper Façade, & Visitor Architectural patterns Express a fundamental structural organization for software systems that provide a set of predefined subsystems, specify their relationships, & include the rules and guidelines for organizing the relationships between them Half-Sync/Half- Async, Layers, Proactor, Publisher- Subscriber, & Reactor Optimization principle patterns Document rules for avoiding common design & implementation mistakes that degrade performance Optimize for common case, pass information between layers

15 Ensuring Platform-neutral & Network- transparent Communication operation (params) connect send_request marshal unmarshal dispatch operation (params) result marshal receive_reply unmarshal result start_up register_service assigned port Dynamics : Broker: Client Proxy : Server Proxy : Client: Server ContextProblemsSolution Mission computing requires remote IPC Stringent DRE requirements Applications need capabilities to: Support remote communication Provide location transparency Handle faults Manage end-to-end QoS Encapsulate low-level system details Apply the Broker architectural pattern to provide platform-neutral communication between mission computing boards

16 Overview of Frameworks Framework Characteristics Application-specific functionality Frameworks exhibit “inversion of control” at runtime via callbacks Networking Database GUI Frameworks provide integrated domain-specific structures & functionality Mission Computing E-commerce Scientific Visualization Frameworks are “semi-complete” applications

17 Comparing Class Libraries, Frameworks, & Components Class Libraries Frameworks Macro-levelMeso-levelMicro-level Borrow caller’s thread Inversion of control Borrow caller’s thread Domain-specific or Domain-independent Domain- specific Domain- independent Stand-alone composition entities “Semi- complete” applications Stand-alone language entities Components Class Library Architecture ADTs Strings Locks IPC Math LOCAL INVOCATIONS APPLICATION- SPECIFIC FUNCTIONALITY EVENT LOOP GLUE CODE Files GUI A class is a unit of abstraction & implementation in an OO programming language Framework Architecture ADTs Locks Strings Files INVOKES A framework is an integrated set of classes that collaborate to produce a reusable architecture for a family of applications Reactor GUI DATABASE NETWORKING APPLICATION- SPECIFIC FUNCTIONALITY CALLBACKS Middleware Bus Component Architecture A component is an encapsulation unit with one or more interfaces that provide clients with access to its services Naming Locking Logging Events

18 Using Frameworks Effectively Observations Frameworks are powerful, but hard to develop & use effectively by application developers It’s often better to use & customize COTS frameworks than to develop in- house frameworks Components are easier for application developers to use, but aren’t as powerful or flexible as frameworks Successful projects are therefore often organized using the “funnel” model

19 Enhancing ORB Flexibility w/the Strategy Pattern ContextProblemSolution Multi-domain resuable middleware framework Flexible ORBs must support multiple event & request demuxing, scheduling, (de)marshaling, connection mgmt, request transfer, & concurrency policies Apply the Strategy pattern to factory out similarity amongst alternative ORB algorithms & policies Hook for the concurrency strategy Hook for the request demuxing strategy Hook for marshaling strategy Hook for the connection management strategy Hook for the underlying transport strategy Hook for the event demuxing strategy

20 Consolidating Strategies with the Abstract Factory Pattern ContextProblemSolution A heavily strategized framework or application Aggressive use of Strategy pattern creates a configuration nightmare Managing many individual strategies is hard It’s hard to ensure that groups of semantically compatible strategies are configured Apply the Abstract Factory pattern to consolidate multiple ORB strategies into semantically compatible configurations Concrete factories create groups of strategies

21 Dynamically Configuring Factories w/the Component Configurator Pattern ContextProblemSolution Resource constrained & highly dynamic environments Prematurely commiting to a particular ORB configuration is inflexible & inefficient Certain decisions can’t be made until runtime Forcing users to pay for components that don’t use is undesirable Apply the Component Configurator pattern to assemble the desired ORB factories (& thus strategies) dynamically ORB strategies are decoupled from when the strategy implementations are configured into an ORB This pattern can reduce the memory footprint of an ORB

22 Summary of Pattern, Framework, & Middleware Synergies The technologies codify expertise of experienced researchers & developers Patterns codify expertise in the form of reusable architecture design themes & styles, which can be reused event when algorithms, components implementations, or frameworks cannot Frameworks codify expertise in the form of reusable algorithms, component implementations, & extensible architectures Application-specific functionality Acceptor Connecto r Component Configurator Stream Reactor Proactor Task Middleware codifies expertise in the form of standard interfaces & components that provide applications with a simpler façade to access the powerful (& complex) capabilities of frameworks There are now powerful feedback loops advancing these technologies

23 Distributed system The Road Ahead (2/2) Solution approach: Integrate model-based software technologies with QoS-enabled component middleware e.g., standard technologies are emerging that can: 1. Model 2. Analyze 3. Synthesize & 4. Provision multiple layers of QoS-enabled middleware These technologies are guided by patterns & implemented by component frameworks QoS-enabled Middleware Bus … … Container … …

24 Prior R&D efforts have address some, but by no means all, of the challenging DOC middleware research topics Concluding Remarks Researchers & developers of distributed systems face common challenges, e.g.: R&D Synergies Pattern languages, frameworks, & component middleware work together to help resolve these challenges connection management service initialization error handling flow & congestion control event demultiplexing distribution concurrency & synchronization fault tolerance scheduling & persistence Layered QoS specification & enforcement Separating policies & mechanisms across layers Time/space optimizations for middleware & apps Multi-level global resource mgmt. & optimization High confidence Stable & robust adaptive systems Key open R&D challenges include: