Implementing Real-time CORBA with Real-time Java

Similar documents
Recommendations for a CORBA Language Mapping for RTSJ

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

Java For Real-Time Enterprise Systems Delivering the Benefits of Java to the world of Real-Time distributed object computing

The Design and Performance of a Pluggable Protocols Framework for Real-time Distributed Object Computing Middleware

Design and Performance of an Asynchronous Method handling Mechanism for CORBA

Designing an Efficient & Scalable Server-side Asynchrony Model for CORBA

Patterns and Performance of Real-time Middleware for Embedded Systems

Today: Distributed Middleware. Middleware

OBJECT ADAPTER ORB CORE I/O SUBSYSTEM. struct RT_Info { wc_exec_time_; period_; importance_; dependencies_; }; 1: CONSTRUCT CALL 6: SUPPLY RUN-TIME

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Today: Distributed Objects. Distributed Objects

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

UC Irvine UC Irvine Previously Published Works

RTZen: Highly Predictable, Real-Time Java Middleware for Distributed and Embedded Systems,

Distributed Object-based Systems CORBA

The Design of the TAO Real-Time Object Request Broker

MicroQoSCORBA A QoS-Enabled, Reflective, and Configurable Middleware Framework for Embedded Systems

Optimizing the ORB Core to Enhance Real-time CORBA Predictability and Performance

Middleware Support for Aperiodic Tasks in Distributed Real-Time Systems

The Real-time Specification for Java

Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 29-31, Middleware in Context: 2016 David E. Bakken

Patterns and Performance of Real-time Object Request Brokers

Applying Optimization Principle Patterns to Design Real-Time ORBs

Weapon Systems Open Architecture Overview

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Applying Patterns to Develop a Pluggable Protocols Framework for ORB Middleware

A Real-Time RMI Framework for the RTSJ

Real Time: Understanding the Trade-offs Between Determinism and Throughput

Real-Time Java. Martin Schöberl

Verteilte Systeme (Distributed Systems)

Operating System Support

Using the Executor Framework to Implement AEH in the RTSJ

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

Empirical Analysis of Real-Time Java Performance and Predictability

Motivation: the Distributed Software Crisis Symptoms Hardware gets smaller, cheaper faster, Software gets larger, slower, more expensive Culprits Acci

Verteilte Systeme (Distributed Systems)

Using a Real-time, QoS-based ORB to Intelligently Manage Communications Bandwidth in a Multi-Protocol Environment

Reliable UDP (RDP) Transport for CORBA

Middleware in Context: 2016 David E. Bakken. Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 30, 2019

Distributed Object-Based. Systems. Chapter 9

The Impact of a Real-Time JVM on Middleware Performance: Lessons Learned from Implementing DDS on IBM s J9

dit RMI-HRT: Remote Method Invocation for Hard Real Time Systems UPM D. Tejera, A. Alonso, M.A de Miguel Universidad Politécnica de Madrid

Techniques for Enhancing Real-time CORBA Quality of Service

CORBA (Common Object Request Broker Architecture)

DS 2009: middleware. David Evans

Design and Performance of a Dynamically Configurable, Messaging Protocols Framework for Real-time CORBA

A QoS-aware CORBA Component Model for Distributed Real-time and Embedded System Development

Using Prioritized Network Traffic to Achieve End-to-End Predictability

Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

Flexible Fault Tolerance In Configurable Middleware For Embedded Systems

Vertically and horizontally High-performance, Real-time ORBs Motivation Many applications require æ guarantees QoS e.g., telecom, avionics, WWW Existi

Design and Performance of a Dynamically Configurable, Messaging Protocols Framework for Real-time CORBA

Distributed Systems Principles and Paradigms

Fiji VM Safety Critical Java

Middleware services RT- CORBA. Making an application to CORBA. Distributed objects. Distribution issues, global state, clusters, CORBA, etc

Evaluating Policies and Mechanisms to Support Distributed Real-Time Applications with CORBA

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

The Design and Performance of a Real-Time CORBA Scheduling Service

On the Use of CORBA in High Level Software Applications at the SLS

Distributed Information Processing

Applying CORBA Fault Tolerant Mechanisms to Network Management. B. Natarajan, F. Kuhns, and C. O Ryan

Intelligent Event Processing in Quality of Service (QoS) Enabled Publish/Subscribe (Pub/Sub) Middleware

Applying Patterns to Design a High-performance, Real-time Pluggable Protocols Framework for OO Communication Middleware

Chapter 4 Communication

Adaptive Middleware. Self-Healing Systems. Guest Lecture. Prof. Priya Narasimhan. Assistant Professor of ECE and ISRI Carnegie Mellon University

Chapter 4 Communication

Priya Narasimhan. Assistant Professor of ECE and CS Carnegie Mellon University Pittsburgh, PA

Distributed Object-based Systems CORBA

From MDD back to basic: Building DRE systems

The Center for Distributed Object Computing Research Synopsis

The Design and Performance of a Real-Time CORBA Scheduling Service

ZiLOG Real-Time Kernel Version 1.2.0

Safety Critical Java. Language Standards and Analysis Techniques for Java in Safety Critical applications. aicas GmbH

System types. Distributed systems

Challenges in component based programming. Lena Buffoni

The Design and Performance of a Real-time CORBA ORB Endsystem

Distributed Environments. CORBA, JavaRMI and DCOM

Applying Componentbased. Engineering in On-board Software

Real-time CORBA Tutorial

Green Hills Software, Inc.

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

OS atop Today, more and more apps atop middleware built Middleware has several layers Quality of Service (QoS) Software architecture & System call-lev

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Providing Real-Time and Fault Tolerance for CORBA Applications

Lecture 2 Process Management

The Common Object Request Broker Architecture (CORBA)

TDDD07 Real-time Systems Lecture 10: Wrapping up & Real-time operating systems

Zilog Real-Time Kernel

Static Component Configuration Support for Real-Time Platforms

CORBA COMMON OBJECT REQUEST BROKER ARCHITECTURE OVERVIEW OF CORBA, OMG'S OBJECT TECHNOLOGY FOR DISTRIBUTED APPLICATIONS CORBA

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Performance Analysis of Java Communications with and without CORBA

Embedded Systems. 6. Real-Time Operating Systems

Object oriented distributed architectures

DISTRIBUTED SYSTEMS [COMP9243] Lecture 7: Middleware MIDDLEWARE. Distributed Object based: Slide 1. Slide 3. Message-oriented: Slide 4

Transcription:

Implementing Real-time CORBA with Real-time Java Ray Klefstad, Mayur Deshpande, Carlos O Ryan, & Doug Schmidt {coryan,schmidt}@uci.edu {klefstad,mayur}@ics.uci.edu Elec. & Comp. Eng. Dept Info. & Comp. Sci. Dept. Wednesday, 18 July 2001 Research Sponsored by AFOSR

Historical Challenges Motivation for QoS-enabled Middleware Trends Hardware keeps getting smaller, faster, & cheaper Software keeps getting larger, slower, & more expensive Building distributed systems is hard Building them on-time & under budget is even harder Client service Proxy AbstractService service 1 1 service Service New Challenges Many mission-critical distributed applications require real-time QoS guarantees e.g., combat systems, online trading, telecom Building QoS-enabled applications manually is tedious, error-prone, & expensive Conventional middleware does not support realtime QoS requirements effectively

DII Deshpande et. al Interface Repository Client ORB CORE IDL STUBS OBJ REF IDL Compiler Overview of CORBA in args operation() out args + return ORB INTERFACE Implementation Repository IDL SKEL Object (Servant) DSI Object Adapter GIOP/IIOP/ESIOPS CORBA shields applications from heterogeneous platform dependencies e.g., languages, operating systems, networking protocols, hardware Common Object Request Broker Architecture (CORBA) A family of specifications OMG is the standards body Over 800 companies 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

IDL STUBS Deshpande et. al Client ORB CORE Explicit Binding OBJ REF Real-Time CORBA Overview End-to-End Priority Propagation in args operation() out args + return Scheduling Service Standard Synchronizers Portable Priorities Protocol Properties Object (Servant) IDL SKEL Thread Pools Object Adapter Real-time CORBA leverages the CORBA Messaging QoS Policy framework GIOP RT CORBA adds QoS control to regular CORBA improve the application predictability, e.g., Bounding priority inversions & Managing resources end-to-end Policies & mechanisms for resource configuration/control in RT-CORBA include: 1.Processor Resources Thread pools Priority models Portable priorities 2.Communication Resources Protocol policies Explicit binding 3.Memory Resources Request buffering These capabilities address some important real-time application development challenges

Motivations for Using Java & RT-Java Easier, faster development Memory management is simpler Language support for concurrency and synchronization Large and powerful library Advanced language features (Class loading, Reflection) Large programmer base (and growing!) Over 1,000,000 Taught at many universities Easily picked up by C++, Ada Programmers Real Real-time Specification for Java Improved semantics & features for programming Real-time systems

Overview of Real-time Spec for JAVA (RTSJ) Mitigates features of Java that inhibit real-time behavior: Garbage collection is optional, via: NoHeapRealTimeThreads, Scoped Memory, Immortal Memory Access to Physical Memory Finer time granularity (High Resolution Timer where Available) Stronger guarantees on threads Highest priority runnable thread is always run Minimized thread context switching ~1-2 Microseconds down from 100s run() { ------- ------- ------- } SM Deallocated as whole Physical Memory Access Scoped Memory Immortal Memory Terminates with JVM

Overview of RTSJ (cont d) Features that improve RT behavior: Explicit Asynchrony support AsyncEventHandlers (AEH): Semantics similar to threads but: No resources used while sleeping Run in context of current thread Can t pass data to them Asynchronous transfer of control Asynchronous thread termination AsynchEventHandlers Fire Fire Asynch Event Asynchronous Transfer of Control Extensive Scheduling support Schedulable Objects (threads, AEHs), Admission control, feasibility analysis Extend base fixed-priority preemptive scheduler to fit needs RT Threads & Scheduling

Motivation for ZEN Integrate best aspects of several key technologies: Java: Easy, fast programming RT-Java: Development of real-time systems with Java However, no standard facilities for developing distributed real-time applications (yet) CORBA: Standards-based distributed Applications RT-CORBA: CORBA with QoS capabilities ZEN project goals: Make development of distributed real-time embedded (DRE) systems easier, faster & more portable Provide open-source RT-CORBA ORB written in RT- Java to enhance international R&D efforts

Technical Goals for ZEN Real Real-time & embedded performance Small initial footprint : grow only as needed Low startup latency Bounded jitter for ORB/POA operations Eliminate sources of priority inversion Allow control of RT-Java features by Apps Highly configurable Statically Select components once at compile time Self-contained executable that can be burned to EEPROM Highly optimized Dynamically Add components as needed at run-time Dynamic class loading Latency, deadline issues Easily extensible e.g., new protocols, Object Adapters, IOR formats, etc. ZEN Internals FT CORBA Personality IOR Parsers CORBA Messaging RT Java Application RT POA Pluggable Object Adapters ZEN CORE Pluggable Protocols Framework MIN POA IIOP VME ATM JVM / OS / Network Interconnect Legend Core Component Optional Feature RT CORBA Personality CORBA Security Portable Interceptors

ZEN Design Methodology Start with a flexible, extensible design based on TAO Design Patterns Build upon TAO implementation experience Write the simplest concrete implementation of each abstract class and factories which create instances of them Extend family of factories and concrete classes to support alternative features, protocols, etc. Develop our own IDL compiler using parser generators and visitors Build real-time CORBA and real-time Java into ZEN ground-up No penalty for not using RT-features Work on optimizing the common cases

ZEN Architectural Design Layered Pluggability Pluggable Messaging: GIOP, IIOP IIOP Pluggable POAs: RT-POA, Min- POA Pluggable IOR formats: file:, IOR:, IOR:, http:, etc Pluggable Resolvers: RootPOA, Naming_Service RT-POA RequestHandler Thread-Pool Thread/Request GIOP Min-POA UIOP POA

ZEN Architectural Design (cont d) Strategize Strategized POA creation with dynamically loadable POA Policies Strategized Request Handling Same thread Thread-Pool SERVANT RETENTION LIFESPAN POA CORE ID UNIQUENESS POLICY FACTORY REQUEST PROCESSING

ZEN Architectural Design (Cont d) Aspectize Modularization of cross-cutting concerns into different Aspects of the software Error/Debug/Logging Real Time? Reflection? R E A L T I M E Debug / Logging On/Off POA ORB R E F L E C T I O N

Applying RT-Java Features in ZEN Scoped Memory Not Garbage Collected Disposed as a whole after the scope is exited. Almost stack-like in behavior Limitations on access to/from Heap Possible Applications CDR Streams buffer allocation Demarshalled arguments could be allocated from Scoped Memory But this affects the language mapping May require extensions to the IDL compiler Or the RT-CORBA Thread Pools Marshall (params) CDRStream Scoped Memory Send out to network SM is reclaimed

Applying RT-Java Features (cont d) Real Real-time Threads RT-CORBA introduces policies to control POA thread pools Application cannot control type of thread Research question: Can NoHeap threads be used in the POA? Scheduling Dynamic Scheduling RFP is a nice fit with RTSJ scheduling support ORB CORE RT-CORBA Thread Pool Object Adapter

Applying RT-Java Features in ZEN (cont d) Asynchrony Use AsyncEventHandlers for Thread-Pool Data passing to AEHs is not allowed. This makes things complicated -New patterns? Use in HalfSync/HalfAsnch pattern for the Asynch part Sync Service Layer Sync Service 1 Sync Service 2 Sync Service 3 Queuing Layer <<read/write>> Queue <<read/write>> <<read/write>> Async Service Layer <<dequeue/enqueue>> Async Service <<interrupt>> External Event Source

Current Status And Future Plans Working ORB with RootPOA implementation (GIOP1.0) IDL compiler generates valid output Interoperable with TAO C++ ORB Initial Performance metrics On dual-cpu 933Mhz P-III (512Mb RAM) Debian Linux 2.4.1 Java v1.3 (Blackdown) with JIT. Round-trip time: ~700 usecs (loopback) (after 10,000 iters) Memory footprint (Server): ~120 KB (stable state) Future Plans RT-ORB, RT-POA, Strategized Threading models Dynamic Scheduling Reflection: Dynamic fine-tuning/reconfigurability, power management(?) Wireless systems applicability

Concluding Remarks Many features yet to be implemented in ZEN Scope for very interesting research RT-CORBA: Dynamic scheduling is still to be standardized RT-Java: No implementation available yet for testing Distributed-RT Java JSR

URLs for Further Reference ZEN web page: http://www.zen.uci.edu JacORB web page: http://www.jacorb.org RT-Java JSR: http://java.sun.com/aboutjava/communityprocess/jsr/ jsr_001_real_time.html Dynamic scheduling RFP: http://www.omg.org/techprocess/meetings/schedule/ Dynamic_Scheduling_RFP.html Distributed RT-Java JSR: http://java.sun.com/aboutjava/communityprocess/jsr/ jsr_050_drt.html AspectJ web page: http://www.aspectj.org