CS 282 Principles of Operating Systems II Middleware for Distributed Real-time & Embedded Systems Dr. Douglas C. Schmidt

Slides:



Advertisements
Similar presentations
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
Advertisements

Distributed Systems Architectures
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
1 G54PRG Programming Lecture 1 Amadeo Ascó Adam Moore G54PRG Programming Lecture 1 Amadeo Ascó 3 Java Programming Language.
Overview Environment for Internet database connectivity
Configuration management
Software change management
Suite Suite 2 TPF Software – Overview Binary Editor Remote Scripts zTREX Add-Ins & Project Integration with Source Control Manager.
Threads, SMP, and Microkernels
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
IONA Technologies Position Paper Constraints and Capabilities for Web Services
Chapter 9: The Client/Server Database Environment
Executional Architecture
Implementation Architecture
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Operating System Architecture and Distributed Systems
COM vs. CORBA.
Database Architectures and the Web
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
The road to reliable, autonomous distributed systems
CORBA - Common Object Request Broker Architecture.
Technical Architectures
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
Enterprise Applications & Java/J2EE Technologies Dr. Douglas C. Schmidt Professor of EECS.
Tutorial on the Lightweight CORBA Component Model (CCM) Industrializing the Development of Distributed Real- time & Embedded Applications Other contributors.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
CS QoS-enabled Middleware Design & Application Dr. Douglas C. Schmidt Professor.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Patterns, Frameworks, & Middleware: Their Synergistic Relationships Douglas C. Schmidt Professor of EECS Vanderbilt University.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
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.
Towards Pattern Languages for Distributed Real-time & Embedded Systems Associate Professor Electrical & Computing Engineering Dept. The.
第十四章 J2EE 入门 Introduction What is J2EE ?
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
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
CS291 Software Design Studio Dr. Douglas C. Schmidt Professor of EECS Vanderbilt University.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
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.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Introduction Why are virtual machines interesting?
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,
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
1 CS590L Distributed Component Architecture Yugi Lee STB #555 (816) * This presentation is prepared based.
Arvind S. Krishna, Aniruddha Gokhale and Douglas C. Schmidt
Ch > 28.4.
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Tools for Composing and Deploying Grid Middleware Web Services
Component--based development
An Introduction to Software Architecture
Quality Assurance for Component-Based Software Development
Presentation transcript:

CS 282 Principles of Operating Systems II Middleware for Distributed Real-time & Embedded Systems Dr. Douglas C. Schmidt Professor of EECS Vanderbilt University Nashville, Tennessee

2 CS 282 Course Philosophy Good design and programming is not learned by generalities, but by seeing how significant programs can be made clean, easy to read, easy to maintain and modify, human-engineered, efficient, and reliable, by the application of good design and programming practices. Careful study and imitation of good designs and programs significantly improves development skills. - Kernighan and Plauger

3 Required textbook Recommended reading CS 282 Course Information CS 282 class web page ~schmidt/cs282/ My office hours in Featheringill Hall 226 Monday and Wednesday, noon to 2pm Our TA is Friedhelm Wolf His office hours are … Please send all questions to Ill send the answers to the class mailing list

4 CS 282 Ground Rules Assignments must be submitted on time (including Assignment 0) Work must be your own No laptops in class You will be called upon periodically to answer questions Youll get out of this course what you put into it, so be prepared to work hard Weekly quizzes

5 Technology Trends (1/4) 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

6 Technology Trends (2/4) 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

7 Technology Trends (3/4) 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 QoS-enabled middleware bus and Reuse common middleware services QoS-enabled Component middleware is maturing & becoming pervasive SecurityReplicationNotificationPersistence SchedulingA/V StreamingLoad Balancing … Container … … QoS-enabled Middleware Bus Container …

8 e.g., standard technologies are emerging that can: 1. Model 2. Analyze 3. Synthesize & optimize 4. Provision & deploy multiple layers of QoS-enabled middleware & applications These technologies are guided by patterns & implemented by component frameworks Partial specialization is essential for inter-/intra-layer optimization Middleware Services DRE Applications Operating Sys & Protocols Hardware & Networks Distributed system Goal is not to replace programmers per se – it is to provide higher- level domain-specific languages for middleware developers & users Model driven middleware that integrates model-based software technologies with QoS-enabled component middleware Technology Trends (4/4)

9 CS 282 Software Technology Focus Distribute Real- time & Embedded (DRE) Middleware Patterns & Pattern Languages GPSIFFFLIR Object Request Broker Air Frame APNavWTS Event Channel Replication Service Synchronization Persistence Fault Tolerance Memory Management Cross-cutting Concerns Multi-faceted Software Development Applications to DRE Systems Collaborative Software Development Environments Customizable Frameworks

10 Getting Started with ACE+TAO This class will use ACE & TAO, which are object-oriented middleware that run on most operating systems e.g., Windows, Linux, & other UNIX platforms You can download ACE & TAO from There are instructions on how to build & use it in the release To use ACE & TAO youll need to learn a few new things e.g., Makefile Project Creator (MPC) Please let me know if you need help getting a C++ compiler installed on your machine

11 Setting Up Your Environment Setting up your environment on Windows ACE_ROOT= the path to the DOC_ROOT directory TAO_ROOT=%ACE_ROOT%\TAO PATH=%ACE_ROOT%\lib;%PATH% Setting up your environment on Linux (or other UNIX platforms) ACE_ROOT=the path to the DOC_ROOT directory TAO_ROOT=$ACE_ROOT/TAO LD_LIBRARY_PATH=$ACE_ROOT/lib:$LD_LIBRARY_PATH Mac: Use DYLD_LIBRARY_PATH in lieu of LD_LIBRARY_PATH

12 Configuring ACE ACE_ROOT/ace/config.h There are a number of config-*.h files in this directory Copy one that matches your platform to config.h e.g., config-linux.h or config-windows.h ACE_ROOT/include/makeinclude/ platform_macros.GNU Similarly here, e.g., platform

13 Generating a Workspace for ACE & TAO Linux et al (in $TAO_ROOT$) $ACE_ROOT/bin/mwc.pl –type gnuace TAOACE.mwc Windows $ACE_ROOT/bin/mwc.pl –type vc8 TAOACE.mwc

14 Generic MPC Template Generic MPC template project (*Server) : taoserver { IDL_Files { IDL_File_1.idl } Source_Files { Server_Code.cpp Servant_Code.cpp Other_Code.cpp } project (*Client) : taoclient { Source_Files { Client_Code.cpp }

15 Generating Project Files & Servant Code $ACE_ROOT/bin/mwc.pl [-type vc71 | -type gnuace] $ACE_ROOT/bin/tao_idl -GI idl_file.idl

16 There are multiple COTS layers & research/ business opportunities Historically, mission-critical apps were built directly atop hardware & OS 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 Component Middleware Layers

17 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

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

19 Distribution Middleware Distribution middleware defines higher-level distributed programming models whose reusable APIs & components automate & extend the native OS network programming capabilities Examples OMG CORBA, Suns Remote Method Invocation (RMI), Microsofts Distributed Component Object Model (DCOM) Distribution middleware enables clients to program distributed applications much like stand-alone applications i.e., by invoking operations on target objects without hard- coding dependencies on their location, language, OS, protocols, & hardware

20 Common Middleware Services Common middleware services augment distribution middleware by defining higher-level domain-independent services that allow application developers to concentrate on programming business logic Examples CORBA Component Model & Object Services, Suns J2EE, Microsofts.NET Common middleware services alleviate need to write the plumbing code required to develop distributed applications by using lower- level middleware directly e.g., application developers no longer need to write code that handles transactional behavior, security, database connection pooling or threading

21 Domain-Specific Middleware Modalities e.g., MRI, CT, CR, Ultrasound, etc. Siemens MED Common software platform for distributed electronic medical information & imaging systems Used by all ~13 Siemens MED business units worldwide Boeing Bold Stroke Common software platform for Boeing avionics mission computing systems Domain-specific middleware services are tailored to the requirements of particular domains, such as telecom, e-commerce, health care, process automation, or aerospace Examples The domain- specific services layer is where system integrators can provide the most value & derive the most benefits

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

23 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 that just illustrate how, not why, systems are designed

24 Software Design Abstractions for Concurrent & Networked Applications Problem Distributed app & middleware functionality is subject to change since its often reused in unforeseen contexts, e.g., Accessed from different clients Run on different platforms Configured into different run- time contexts MIDDLEWARE Solution Dont structure distributed applications & middleware as a monoliths Instead, decompose them into modular classes, frameworks, & components Solution Dont structure distributed applications & middleware as a monoliths Instead, decompose them into modular classes, frameworks, & components

25 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

26 Comparing Class Libraries, Frameworks, & Components Class Libraries Frameworks Macro-levelMeso-levelMicro-level Borrow callers thread Inversion of control Borrow callers 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

27 Using Frameworks Effectively Observations Frameworks are powerful, but hard to develop & use effectively by application developers Its often better to use & customize COTS frameworks than to develop in- house frameworks Components are easier for application developers to use, but arent as powerful or flexible as frameworks Successful projects are therefore often organized using the funnel model

28 Overview of the ACE Frameworks Features Open-source 6+ integrated frameworks 250,000+ lines of C person-years of effort Ported to Windows, UNIX, & real-time operating systems e.g., VxWorks, pSoS, LynxOS, Chorus, QNX Large user community Acceptor Connector Component Configurator Stream Reactor Proactor Task Application- specific functionality

29 The Pattern Language for ACE Pattern Benefits Preserve crucial design information used by applications & middleware frameworks & components Facilitate reuse of proven software designs & architectures Guide design choices for application developers

30 CORBA is a distribution middleware standard Real-time CORBA adds QoS to classic CORBA to control: 3. Memory Resources These capabilities address some (but by no means all) important DRE application development & QoS- enforcement challenges 2. Communication Resources Protocol Properties Explicit Binding Client Propagation & Server Declared Priority Models Portable Priorities Thread Pools Static Scheduling Service Standard Synchonizers 1. Processor Resources Request Buffering Example of Applying Patterns & Frameworks: Real-time CORBA & The ACE ORB (TAO)

31 Key Patterns Used in TAO Wrapper facades enhance portability Proxies & adapters simplify client & server applications, respectively Component Configurator dynamically configures Factories Factories produce Strategies Strategies implement interchangeable policies Concurrency strategies use Reactor & Leader/Followers Acceptor-Connector decouples connection management from request processing Managers optimize request demultiplexing