Future of CORBA for Distributed Real-time & Embedded Systems Tuesday, December 04, 2018, ICALEPCS Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt/

Slides:



Advertisements
Similar presentations
Distributed Systems Architectures
Advertisements

COM vs. CORBA.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Introduction CSCI 444/544 Operating Systems Fall 2008.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Technical Architectures
Distributed Systems Architectures
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
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.
Tutorial on the Lightweight CORBA Component Model (CCM) Industrializing the Development of Distributed Real- time & Embedded Applications Other contributors.
Investigating Lightweight Fault Tolerance Strategies for Enterprise Distributed Real-time Embedded Systems Tech-X Corporation Boulder, Colorado Vanderbilt.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Distributed Systems Architectures
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.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
The CORBA C++ Mapping: Beyond Repair? MARS Douglas C. Schmidt Vanderbilt University Institute for Software Integrated Systems CORBA IN THE.
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.
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.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Today: Distributed Objects and Components 1. Me Greg Paperin MSci Computer Science href= 2.
Topic 2: The Role of Open Standards, Open-Source Development, & Different Development Models & Processes (on Industrializing Software) ARO Workshop Outbrief,
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
A service Oriented Architecture & Web Service Technology.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Tango - Icalepcs 2009 ESRF. E Taurel - Icalepcs TANGO kernel status and evolution Brief introduction What's new since Icalepcs 2007 New projects.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Java Distributed Object System
CORBA Overview Arvind S. Krishna Info & Comp Science Dept
Common Object Request Broker Architecture (CORBA)
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
CORBA Alegria Baquero.
Software Design and Architecture
Distribution and components
Implementing RT-CORBA Spec in TAO
An Approach to Middleware Specialization for Cyber Physical Systems
QoS-Enabled Middleware
Transparent Adaptive Resource Management for Middleware Systems
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Software Defined Networking (SDN)
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Interpreter Style Examples
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Tools for Composing and Deploying Grid Middleware Web Services
Component--based development
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Service Oriented Architecture (SOA)
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Quality Assurance for Component-Based Software Development
Transparent Adaptive Resource Management for Middleware Systems
Architectures of distributed systems
Chapter 5 Architectural Design.
Design Yaodong Bi.
Architectures of distributed systems Fundamental Models
Quality-aware Middleware
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

Future of CORBA for Distributed Real-time & Embedded Systems Tuesday, December 04, 2018, ICALEPCS Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt/ If I told you that the catch phrase for our company was “Where the object is your success” that might be the last clue you would need to figure out what our passion is. Sun recognized it and endorsed our St Louis office in the first group of AJCs. We also sponsor the St Louis and Phoenix Java SIGs, which have grown from being small groups discussing new technology, to becoming the places to go to stay current in the hottest technology around today. We also joined the OMG as a voting member as a way to ensure we endorsed open standards for objects. We happen to think that objects won’t work if they are non-standard. This is intended as introduction to our company. There are lots of areas where we can digress into depth, but an overview usually helps you grasp the essence of our business. Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems

Distributed Real-time & Embedded (DRE) Systems The Past Enterprise distributed real-time & embedded (DRE) systems Network-centric “systems of systems” Stringent simultaneous QoS demands e.g., dependability, security, scalability, etc. Dynamic context Present & Future Stand-alone real-time & embedded systems Stringent quality of service (QoS) demands e.g., latency, jitter, footprint Resource constrained This talk focuses on technologies for enhancing DRE system QoS, productivity, & quality

Diverse Mission-Critical DRE System Characteristics SCADA & C2 Transport Management Air Traffic Control Op Control These systems have characteristics of enterprise & real-time embedded systems Typically heterogeneous & complex, requiring support for: Different hardware platforms Software written in different programming languages Highly distributed net-centric environment(s) Need to assure efficient, predictable, & scalable end-to-end QoS Need dynamic reconfiguration to support varying workloads over operational lifecycle of system Need to be affordable to reduce initial system acquisition costs & recurring upgrade & evolution costs

Challenge: Selecting Middleware for DRE Systems Develop software entirely in-house using proprietary solutions Develop software using domain-specific, community-based technologies Develop software using latest commercial-off-the-shelf (COTS) technologies Develop software using mature standards-based technologies

Overview of CORBA Common Object Request Broker Architecture (CORBA) A family of specifications OMG is the standards body CORBA defines interfaces, not implementations It simplifies development of distributed applications by automating/encapsulating Object location Connection & memory mgmt. Parameter (de)marshaling Event & request demultiplexing Error handling & fault tolerance Object/server activation Concurrency Security CORBA – Common Object Request Broker Resides between OS, network and application Simplifies development of distributed applications by making it not much different from stand-alone applications: invocations on remote objects look just like a method call on a local object CORBA shields applications from hetero-geneous platform dependencies e.g., languages, operating systems, networking protocols, hardware

Overview of Real-time CORBA Real-time CORBA adds QoS control to regular CORBA to improve application predictability, e.g., Bounding priority inversions & Managing resources end-to-end Policies & mechanisms for resource configuration/control in Real-time CORBA include: Processor Resources Thread pools Priority models Portable priorities Synchronization Communication Resources Protocol policies Explicit binding Memory Resources Request buffering As promised, more specific about QoS predictability control over memory network – protocol properties Allocation of resources ahead of time Whole system can behave predictably only if there is vertical and horizontal integration and RTCORBA facilitates such integration Real-time CORBA address some (but by no means all) important DRE system development challenges

Why Use CORBA? After all people think CORBA is dead Why? Associated with legacy systems Mid 90’s technology therefore must be obsolete Perceived as “big & slow” Not exciting to write about They think it died of complexity Why not? Inclusive technology Committed, seasoned user base Maturity has led to highly time/space optimized ORBs What works is boring It is solving increasingly complex issues

Span of Middleware Technologies for DRE Systems MicroSoft .NET Market Share Java / RMI CORBA (GPP) RT CORBA (DSP) RT CORBA (FPGA) OMG Data Distribution Service (DDS) MPI Non-real-time Business Systems Soft Real-time (Display and decision support Hard Real-time (sensor and actuator Control) Extreme Real-time (signal processing) Source: OACE Tech. & Stds. Sept. 2003

Alternate Technology Message Speeds Transport characteristics eventually dominate large messages Source:Gautam H. Thaker Lockheed Martin Advanced Technology Labs Camden, NJ www.atl.external.lmco.com/projects/QoS/compare/dist_oo_compare_ipc.html

The Future of CORBA Improvements in CORBA features & performance Extensions to the CORBA object model Complementary technologies

The Future of CORBA Improvements in CORBA features & performance Extensions to the CORBA object model Complementary technologies

Fixing Problems with the CORBA C++ Mapping Memory management is too complicated & easy to get wrong due to lots of rules to memorize, e.g., Storing strings within sequences & structs Not handling the return reference from an operation, but passing it to another operation Not setting length() of sequence properly Not duplicating object references properly Not using ServantBase_var properly Lack of standard C++ classes makes CORBA look “old & lame” & causes extra work for programmers e.g., it’s a lot of work to move the data back & forth between the standard C++ types you want to manipulate & the types you need to pass as parameters A tremendous amount of code gets generated for the C++ mapping, leading to bloat & slow compilation The size difference between the same essential set of functionality can be roughly on the order of 5:1 e.g., for e*ORB C & C++ on Red Hat 9 Linux compiled with gcc 3.2 the C libec_poa.so is 29 kbytes C++ vs libe_mpoa.so is 105 kbytes

Top 10 Things to Fix in C++ Mapping All memory should be self-managed This includes CORBA::Object, sequences, strings, structures of all types, etc Structs & unions should have useful constructors Arrays should be implemented using std::vector<> Fix valuetypes so they use consistent reference counting scheme All types should offer exception-safe swap() operations Use bool, wchar_t, wstring, std::string, std::vector, etc. Do not introduce new types unless you must Repeat number (1) until you reach (10) Many more suggestions in CUJ columns by Vinoski & Schmidt http://www.ddj.com/dept/cpp/184403757 http://www.ddj.com/dept/cpp/184403765 http://www.ddj.com/dept/cpp/184403778

Improvements in CORBA Performance One benefit of CORBA being a mature standard is that it runs in multiple processor types, including GPP, DSP, & FPGA environments DSP GPP e*ORB C & C++ FPGA ICO GIOP Everywhere Extensible Transport Framework Key Advantages: CORBA message processing can be executed directly in H/W, which is 100x faster than in S/W Eliminates the need for S/W proxies/adapters on GPPs, which Reduces overhead/latency & increases throughput Supports direct access to application components running on H/W Supports vision of architectural consistency across all aspects of the application

The Future of CORBA Improvements in CORBA features & performance Extensions to the CORBA object model Complementary technologies

Drawbacks of CORBA Middleware Distributed Object Computing (DOC) CORBA 2.x application development can be tedious Application Development & Deployment Object Implementations Language Tools Libraries “Other” Applications Interface Design IDL Definitions Compiler Stubs & Skeletons DOC CORBA IDL doesn’t specify how to group related interfaces to offer a service family Such “bundling” must be done by developers via idioms & patterns DOC CORBA doesn’t specify how configuration & deployment of objects should be done to create complete applications Proprietary infrastructure & scripts are written by developers to facilitate this DOC CORBA 2.x defines interfaces & policies, but not implementations

Solution: Component Middleware Creates a standard “virtual boundary” around application component implementations that interact only via well-defined interfaces Specify the infrastructure needed to configure & deploy components throughout a distributed system … <ComponentAssemblyDescription id="a_HUDDisplay"> ... <connection> <name>GPS-RateGen</name> <internalEndPoint><portName>Refresh</portName><instance>a_GPS</instance> </internalEndPoint> <internalEndPoint> <portName>Pulse</portName><instance>a_RateGen</instance> </connection> <name>NavDisplay-GPS</name> <internalEndPoint><portName>Refresh</portName><instance>a_NavDisplay</instance> <internalEndPoint><portName>Ready</portName><instance>a_GPS</instance> </connection> ... </ComponentAssemblyDescription> Define standard container mechanisms needed to execute components in generic component servers Container …

Overview of Lightweight CORBA Component Model 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 … Container … Middleware Bus Container … Security Replication Notification Persistence Scheduling A/V Streaming Load Balancing Lightweight CCM defines interfaces & policies, & some implementations www.dre.vanderbilt.edu/~schmidt/OMG-CCM-Tutorial.ppt

Applying Model-Driven Engineering to Lightweight CCM … 1 Container … Container … 2 3 www.dre.vanderbilt.edu/~schmidt/OMG-CCM-Tutorial.ppt

The Future of CORBA Improvements in CORBA features & performance Extensions to the CORBA object model Complementary technologies

RT Info to Cockpit & Track Processing Overview of the Data Distribution Service (DDS) DDS is an highly efficient OMG pub/sub standard e.g., fewer layers, less overhead Topic R Data Writer R Data Reader R Publisher Subscriber RT Info to Cockpit & Track Processing DDS Pub/Sub Infrastructure Tactical Network & RTOS

Overview of the Data Distribution Service (DDS) DDS is an highly efficient OMG pub/sub standard e.g., fewer layers, less overhead DDS provides meta-events for detecting dynamic changes Topic R NEW TOPIC Data Writer R Data Reader R NEW SUBSCRIBER Publisher Subscriber NEW PUBLISHER

Overview of the Data Distribution Service (DDS) DDS is an highly efficient OMG pub/sub standard e.g., fewer layers, less overhead DDS provides meta-events for detecting dynamic changes DDS provides policies for specifying many QoS requirements of tactical information management systems, e.g., Establish contracts that precisely specify a wide variety of QoS policies at multiple system layers HISTORY Topic R RESOURCE LIMITS Data Writer R S1 Data Reader R S2 S3 S4 S5 Publisher S6 Subscriber S7 LATENCY X S7 S7 S6 S5 S4 S3 S2 S1 COHERENCY RELIABILITY

Overview of the Data Distribution Service (DDS) DDS is an highly efficient OMG pub/sub standard e.g., fewer layers, less overhead DDS provides meta-events for detecting dynamic changes DDS provides policies for specifying many QoS requirements of tactical information management systems, e.g., Establish contracts that precisely specify a wide variety of QoS policies at multiple system layers Move processing closer to data DESTINATION FILTER Topic R Data Writer R S1 Data Reader R SOURCE FILTER S2 S3 S4 S5 Publisher S6 Subscriber S7 TIME-BASED FILTER

SCA Concluding Remarks Software industry is heavily driven by “fads” i.e., “Teen-age boy band” syndrome CORBA is no longer the new kid on the block In fact, it has a lot of facial hair, much of it gray ;-) With maturity comes certain virtues High performance & integration with many platforms, languages, & technologies SCA www.dre.vanderbilt.edu/~schmidt/ICALEPCS.ppt