Tutorial on the Lightweight CORBA Component Model (CCM) Industrializing the Development of Distributed Real- time & Embedded Applications Other contributors.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
II. Middleware for Distributed Systems
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
Component Models and Technology Component-based Software Engineering
Distributed Systems Architectures
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Investigating Lightweight Fault Tolerance Strategies for Enterprise Distributed Real-time Embedded Systems Tech-X Corporation Boulder, Colorado Vanderbilt.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
BBN Technologies Craig Rodrigues Gary Duzan QoS Enabled Middleware: Adding QoS Management Capabilities to the CORBA Component Model Real-time CCM Meeting.
August 20, 2002 RTCCM Meeting Agenda & Overview of RTCCM Nanbor Wang Department of Computer Science Washington University in St. Louis
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
Tutorial on the Lightweight CORBA Component Model (CCM) Industrializing the Development Distributed Real-time & Embedded Systems Other contributors include.
October 6, 2015 Tutorial on CORBA Component Model (CCM) Nanbor Wang Craig Rodrigues Washington University BBN Technologies St. Louis.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
OpenCCM MdC Philippe Merle LIFL - INRIA (soon)
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Investigating Survivability Strategies for Ultra-Large Scale (ULS) Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Santa & CCM Jeff Parsons 1 Santa Claus and the CORBA Component Model Jeff Parsons November 2, 2005.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #23.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
ProActive components and legacy code Matthieu MOREL.
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.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
OpenCCM: Status and Work plan Dr. Philippe Merle LIFL - INRIA ObjectWeb Architecture Meeting, Grenoble, 21 – 22.
August 20, 2002 Applying RT-Policies in CORBA Component Model Nanbor Wang Department of Computer Science Washington University in St. Louis
Enterprise Computing Distribution and components.
Model-Driven Optimizations of Component Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems OMG Real-time Workshop.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
09 October 2007Kaiser: COMS W4156 Fall COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Common Object Request Broker Architecture (CORBA)
Towards a Real-time CORBA Component Model
CORBA Alegria Baquero.
QoS-Enabled Middleware
Inventory of Distributed Computing Concepts and Web services
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Tools for Composing and Deploying Grid Middleware Web Services
Distribuerte Systemer Viktigere enn vi tror, vanskeligere enn det høres Komponenttorget ‘99 Trondheim Trygve Reenskaug Numerica Taskon Distaribuerte.
Component--based development
Model-driven Deployment & Configuration of Component-based Systems
Quality Assurance for Component-Based Software Development
Inventory of Distributed Computing Concepts
Presentation transcript:

Tutorial on the Lightweight CORBA Component Model (CCM) Industrializing the Development of Distributed Real- time & Embedded Applications Other contributors include Kitty Balasubramanian, Tao Lu, Bala Natarajan, Jeff Parsons, Frank Pilhofer, Craig Rodrigues,Nanbor Wang Other contributors include Kitty Balasubramanian, Tao Lu, Bala Natarajan, Jeff Parsons, Frank Pilhofer, Craig Rodrigues, & Nanbor Wang Dr. Douglas C. Schmidt Professor of EECS Vanderbilt University Nashville, Tennessee

Tutorial Overview The purpose of this tutorial is to –Motivate the need for the CORBA Component Model (CCM) & contrast it with the CORBA 2.x distributed object computing (DOC) model –Introduce CCM features most relevant to distributed real-time & embedded (DRE) applications e.g., Lightweight CCM & the new OMG Deployment & Configuration spec –Show how to implement DRE applications using CCM & C++ –Illustrate status of CCM & Lightweight CCM support in existing platforms but not to –Enumerate all the CCM C++ or Java mapping rules & features –Provide detailed references of all CORBA & CCM interfaces –Make you capable of implementing CORBA & CCM middleware

Motivation & Overview of Component Middleware

Where We Started: Object-Oriented Programming Object-oriented (OO) programming simplified software development through higher level abstractions & patterns, e.g., Well-written OO programs exhibit recurring structures that promote abstraction, flexibility, modularity, & elegance –Decoupling interfaces & implementations –Associating related data & operations operation1() operation2() operation3() operationn() data class X

Next Step: Distributed Object Computing (DOC) Apply the Broker pattern to abstract away lower-level OS & protocol-specific details for network programming Create distributed systems which are easier to model & build using OO techniques Result: robust distributed systems built with distributed object computing (DOC) middleware –e.g., CORBA, Java RMI, DCOM, etc. 11 Proxy service Service service AbstractService service Client We now have more robust software & more powerful distributed systems operation() Object : Interface X : Client Middleware

Overview of CORBA 2.x Standard CORBA 2.x is DOC middleware that shields applications from dependencies on heterogeneous platforms e.g., languages, operating systems, networking protocols, hardware CORBA 2.x automates – Object location – Connection & memory mgmt. – Parameter (de)marshaling – Event & request demultiplexing – Error handling & fault tolerance – Object/server activation – Concurrency & synchronization – Security CORBA 2.x defines interfaces & policies, but not implementations

Example: Applying OO to Network Programming CORBA 2.x IDL specifies interfaces with operations – Interfaces map to objects in OO programming languages e.g., C++, Java, Ada95, etc. –Operations defined in interfaces can be invoked on local or remote objects interface Foo { void bar (in long arg); }; IDL class Foo : public virtual CORBA::Object { virtual void bar (CORBA::Long arg); }; C++

Application Development & Deployment Object Implementations Language Tools Libraries “Other” Implementations Applications Drawbacks of DOC-based CORBA 2.x Middleware CORBA 2.x doesn’t specify how configuration & deployment of objects should be done to create complete applications –Proprietary infrastructure & scripts are written by developers to enable this CORBA 2.x IDL doesn’t provide a way to group together related interfaces to offer a service family –Such “bundling” must be done by developers via CORBA idioms & patterns CORBA 2.x application development is unnecessarily tedious & error-prone Interface Design IDL Definitions IDL Compiler Stubs & Skeletons

CORBA BUS Boiler Plate X Boiler Plate YBoiler Plate X Example: Limitations of CORBA 2.x Specification Requirements of non-trivial DRE systems: –Collaboration of multiple objects & services –Deployment on diverse platforms CORBA 2.x limitations – lack of standards for –Server/node configuration –Object/service configuration –Application assembly –Object/service deployment Consequences: –Brittle, non-scalable implementation –Hard to adapt & maintain –Increased time-to-market Server ORB/POA Obj Impl Server ORB/POA Obj Impl COS Svc Server ORB/POA Obj Impl COS Svc Client invoke Config CConfig C Config BConfig B Config AConfig A

Solution: Component Middleware Component middleware capabilities: Creates a standard “virtual boundary” around application component implementations that interact only via well-defined interfaces Define standard container mechanisms needed to execute components in generic component servers Specify a reusable/ standard infrastructure needed to configure & deploy components throughout a distributed system

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 SecurityReplicationNotificationPersistence SchedulingA/V StreamingLoad Balancing … Container … … Middleware Bus Container … Birdseye View of Component Middleware Component middleware defines interfaces, policies, & some implementations

Overview of the CORBA Component Model (CCM)

Capabilities of the CORBA Component Model (CCM) Component Server –A generic server process for hosting containers & component/home executors Component Implementation Framework (CIF) –Automates the implementation of many component features Component packaging tools –Compose implementation & configuration information into deployable assemblies Component deployment tools –Automate the deployment of component assemblies to component servers Containers define operations that enable component executors to access common middleware services & runtime policies

Capabilities of the CORBA Component Model (CCM) Component Server –A generic server process for hosting containers & component/home executors Component Implementation Framework (CIF) –Automates the implementation of many component features Component packaging tools –Compose implementation & configuration information into deployable assemblies Component deployment tools –Automate the deployment of component assemblies to component servers

Capabilities of CORBA Component Model (CCM) Component Server –A generic server process for hosting containers & component/home executors Component Implementation Framework (CIF) –Automates the implementation of many component features Component packaging tools –Compose implementation & configuration information into deployable assemblies Component deployment tools –Automate the deployment of component assemblies to component servers

Capabilities of CORBA Component Model (CCM) Component Server –A generic server process for hosting containers & component/home executors Component Implementation Framework (CIF) –Automates the implementation of many component features Component packaging tools –Compose implementation & configuration information into deployable assemblies Component deployment tools –Automate the deployment of component assemblies to component servers

Available CCM Implementations NameProviderOpen Source LanguageURL Component Integrated ACE ORB (CIAO) Vanderbilt University & Washington University YesC++ Enterprise Java CORBA Component Model (EJCCM) Computational Physics, Inc. YesJava K2 iCMG NoC++ products.asp MicoCCM FPX YesC++ OpenCCM ObjectWeb YesJava QoS Enabled Distributed Object (Qedo) Fokus YesC++ news.php4?lang=eng StarCCM Source Forge YesC++ projects/starccm/

CCM Compared to EJB, COM, &.NET Like Sun Microsystems’ Enterprise Java Beans (EJB) CORBA components created & managed by homes Run in containers that manage system services transparently Hosted by generic application component servers But can be written in more languages than Java Like Microsoft’s Component Object Model (COM) Have several input & output interfaces per component Both point-to-point sync/async operations & publish/subscribe events Component navigation & introspection capabilities But has more effective support for distribution & QoS properties Like Microsoft’s.NET Framework Could be written in different programming languages Could be packaged to be distributed But runs on more platforms than just Microsoft Windows