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

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

Implementing Real-time CORBA with Real-time Java

Recommendations for a CORBA Language Mapping for RTSJ

Performance Analysis of Java Communications with and without CORBA

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

Real-Time Garbage Collection Panel JTRES 2007

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

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

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

Weapon Systems Open Architecture Overview

CORBA (Common Object Request Broker Architecture)

Fiji VM Safety Critical Java

Distributed Environments. CORBA, JavaRMI and DCOM

Providing Real-Time and Fault Tolerance for CORBA Applications

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Benchmarking Real-Time and Embedded CORBA ORBs

Patterns and Performance of Real-time Middleware for Embedded Systems

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

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

Data Model Considerations for Radar Systems

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

The Software Communications Architecture (SCA) and FPGAs Meeting the challenges of integrating FPGA application components using the SCA

Real-time CORBA Trade Study Volume 2 Basic IDL Scenario 1a

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

Model-Driven QoS Provisioning Techniques for CCM DRE Systems

DS 2009: middleware. David Evans

DDS Interoperability Demo

ARTAMIS : Open Source and Extensibility in an Embedded Mission System

PRISMTECH. Benchmarking OMG DDS for Large-scale Distributed Systems. Powering Netcentricity

Techniques for Enhancing Real-time CORBA Quality of Service

AQUILA. Project Defense. Sandeep Misra. (IST ) Development of C++ Client for a Java QoS API based on CORBA

Reliable UDP (RDP) Transport for CORBA

Real-Time Java. Martin Schöberl

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

System types. Distributed systems

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

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

Understanding the Role of Real-Time Java in Aegis Warship Modernization. Dr. Kelvin Nilsen, Chief Technology Officer Java, Atego Systems

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

The Real-time Specification for Java

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

Application Servers in E-Commerce Applications

Today: Distributed Objects. Distributed Objects

The Design of the TAO Real-Time Object Request Broker

Estimating Fault-Detection and Fail-Over Times for Nested Real-Time CORBA Applications

Design and Performance of an Asynchronous Method handling Mechanism for CORBA

UC Irvine UC Irvine Previously Published Works

Java Internals. Frank Yellin Tim Lindholm JavaSoft

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

Examining the Use of Java Technologies for Real-Time in a Prototype U.S. Surface Navy Combat System Application

Spectra ORB C++ Edition User Guide. Version 2.1

JOP: A Java Optimized Processor for Embedded Real-Time Systems. Martin Schoeberl

Introduction to DDS. Brussels, Belgium, June Gerardo Pardo-Castellote, Ph.D. Co-chair OMG DDS SIG

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

OpenFusion CORBA Services Version 4.2. Product Guide

Advanced Lectures on knowledge Engineering

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

Techniques for Dynamic Swapping in the Lightweight CORBA Component Model

Object oriented distributed architectures

Distributed Computing

Agrowing class of real-time systems require

Verteilte Systeme (Distributed Systems)

Deterministic Ethernet & Unified Networking

Applying Componentbased. Engineering in On-board Software

Distributed Object-based Systems CORBA

Systems Integration. Gautam H. Thaker Patrick J. Lardieri Donald Krecker Keith O Hara Chuck Winters

Finding Concurrency Bugs in Java

Today: Distributed Middleware. Middleware

The Free implementation of CORBA standard

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment

RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

A High Integrity Distributed Deterministic Java Environment. WORDS 2002 January 7, San Diego CA

From MDD back to basic: Building DRE systems

Virtual Machine Design

Concurrent, Real-Time and Distributed Programming in Java

QuickSpecs. Compaq NonStop Transaction Server for Java Solution. Models. Introduction. Creating a state-of-the-art transactional Java environment

Implementation of GDMO to IDL Translator and CORBA/CMIP Gateway for TMN/CORBA Integration

Distributed Systems. The main method of distributed object communication is with remote method invocation

JavaOne Topics. Keynotes Talks overview Interoperability, jini Real-time and Embedded XML and Java Cool Recommendations

CORBA Request Portable Interceptors: Analysis and Applications

1.264 Lecture 16. Legacy Middleware

Optimising Multicore JVMs. Khaled Alnowaiser

A Predictable RTOS. Mantis Cheng Department of Computer Science University of Victoria

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Data Distribution Service A foundation of Real-Time Data Centricity

Presented by: B. Dasarathy OMG Real-Time and Embedded Systems Workshop, Reston, VA, July 2004

Real-Time Java David Holmes

Lecture 06: Distributed Object

Multi-Channel Clustered Web Application Servers

ANSAwise - CORBA Interoperability

Vortex Whitepaper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

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

Object Security. Model Driven Security. Ulrich Lang, Rudolf Schreiner. Protection of Resources in Complex Distributed Systems

OMG Real Time Workshop

Plug-and-Play Network Service Configuration Using CORBA

Eventrons: A Safe Programming Construct for High-Frequency Hard Real-Time Applications

Scoped Types A Statically Safe Memory Model for the Real-time Specification for Java

Hierarchical Real-time Garbage Collection

Transcription:

Java For Real-Time Enterprise Systems Delivering the Benefits of Java to the world of Real-Time distributed object computing Simon McQueen CORBA Technical Lead July 2006

The Case for Java in Enterprise Real-Time Systems 1 Changes in scale complexity and scope of Real-Time systems are forcing the Real-time community to re-think the way in which it develops software Elements of Real-Time programming are now finding their way into applications that had never previously required Real-Time programming expertise It is increasingly difficult to view Real-Time developers and business application developers as members of two separate communities Ways have to be found to build bridges between the two communities to facilitate the smooth flow of information from the smallest embedded device to the largest enterprise information systems and vice versa These trends make it necessary for the Real-Time community to adopt Real-Time platforms that provide higher level abstractions and advanced tools for functional and temporal programming

Benefits of Real-Time CORBA 2 CORBA is well established as a technology for integrating diverse systems Used extensively for mission and business critical applications in many industry sectors such as defense, telecommunications and manufacturing With the publication of the Real-Time CORBA Specification, the OMG extended the benefits of CORBA to the Real-Time domain The standard addresses the issues of end-to-end predictability across CORBA systems and provides a solution in terms of priority control, synchronization and resource control Until very recently developers have been forced to implement their applications in programming languages such as C, C++ and Ada that can support the temporal constraints of Real-Time systems

What is OpenFusion RTOrb Java Edition? 3 OpenFusion RTOrb Java Edition is PrismTech s Real-Time CORBA compliant ORB for the Java platform OpenFusion RTOrb Java Edition is the first COTS Java ORB that can be used in hard Real-Time systems Made possible through the recent emergence of RTJVM implementations based on the Real-Time Specification for Java (RTSJ) e.g Sun s Java Real-Time System v1.0 (formally known as the Mackinac JVM) & IBM s J9 JVM OpenFusion RTOrb Java Edition can provide a unified solution for different needs and uses, supporting both hard Real-Time systems and non Real-Time Enterprise applications in a single ORB

OpenFusion RTOrb Java Edition 4 Objectives Prove practicality of Real-Time CORBA in a Java environment Build a single Enterprise ORB implementation that can in both Real-Time and non Real-Time systems Support for SUN s Real-Time System for Java (formally Mackinac) JVM running on Solaris 10 and IBM s J9 on Linux Use in non RT environment with JSE JVMs Providing support for CORBA 3.0 and Real-Time CORBA v1.2 standards Including full enterprise features set, including: CORBA Messaging QoS, AMI, Portable Interceptors, ValueTypes, Pluggable transports Performance - high throughput, low latency as good as JacORB or better 100% interoperability with TAO & JacORB Real-time acceptance criterion Measured jitter <1mS in test environment

Target Market Characteristics 5 Systems requiring advanced software tools for both functional and temporal programming Customers who typically have large and complex software integration problems to solve Systems where Java is the obvious best long term language choice Mission or business critical applications where a hybrid architecture consisting of Real-Time and Enterprise level CORBA functionality is a requirement

Example Application Domains 6 Large Scale Defense Integration C4i wide range of Command Control Computers Communication and Intelligence Systems e.g. Combat Management Systems, Weapon Control Systems Telecommunications and Networking Business management applications Operations support systems Call control Intelligent networking STN/Internet convergence Integrated network management Call and multimedia processing Voice Over IP (VOIP) telephony Aerospace Air traffic management Saving or displaying management data Command interpretation of inputs from a user interface Manufacturing Industrial controllers Automotive controllers Industrial robotics

So Why Can t Java Be used in Real-Time Systems? 7 Use of Java in Real-Time systems is limited by its inability to predictably control the temporal execution of applications due to: Unpredictable latencies introduced by automatic memory management (garbage collectors) Inadequate scheduling control Unpredictable synchronization delays Very coarse timer support No asynchronous event processing No "safe" asynchronous transfer of control

The Real-Time Specification for Java 8 The Real-Time Specification for Java (RTSJ), developed through the Java Community Process by the Real-Time Expert Group Objective to enable the real-time embedded software developer to use the Java programming language where predictable/hard real-time behaviour is a must Specified as a set of extensions to the Java Technology Model For example, the RTSJ shall not prevent existing properly written non real-time Java programs from executing on implementations of the RTSJ

Key Extensions to the Java Technology Model 9 The RTSJ supports the following important new features which make Java suitable for use in Hard Real-Time systems: New Real-Time Threads, Scheduling, and Synchronization New Memory Management Schemes Asynchronous Events Handling & Asynchronous Transfer of Control Time & Timers Direct Access to Physical Memory

ORB Design Challenges 10 Architecture must support dual mode of operation, full RTSJ/Real-Time CORBA mode and conventional ORB mode Full Enterprise ORB functionality must also be available in RTSJ mode In RTSJ mode ORB designed to use No Heap Real-time Threads, Scoped & Immortal Memory throughout the call chain Using RTSJ memory models is non trivial and complex Careful decisions have to be made about which parts of the ORB are long lived and run in Immortal memory and which parts of the ORB are more dynamic and can run in Scoped memory NHRT threads typically allocated in immortal memory, with critical sections of code executing in scoped memory Memory assignment rules must be strictly followed so as to avoid potential dangling references Exceptions cannot be thrown in scoped memory and caught in a different memory areas Use of specific design patterns required to propagate exception information from ORB to the application Note: ORB design issues also highlight the same issues faced by the application programmer!

Development Approach 11 An experimental approach with three phases: 1. Obtain benchmark figures from a C socket to socket example 2. Repeat socket example in Java Isolate contributors to jitter 3. Repeat tests with PrismTech s OpenFusion RTOrb Java Edition Develop tests using RT threads, NHRT Threads, Scoped and Immortal memory

Test Application 12 High Priority Thread Period (30mS nominal) Duration Low Priority Thread Sleep (2mS)

Test Configuration 13 Networked client and server Physical Machine 1 Physical Machine 2 Ultra 60 Workstation Solaris 9 Sun RTJS JVM Sunfire V440 Solaris 9 Sun RTJS JVM Client Server 100base T Network Connection Switch 100base T Network Connection

C Client Server, 1 High Priority Thread 14 0.7 0.6 0.5 Time (ms) 0.4 0.3 Frequency 12000 10000 0.2 0.1 No of Occurences 8000 6000 4000 2000 0 0.3 0.4 0.5 0.6 0.7 More Tim e (m S) 0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Sample

Co-located Java Sockets 15 1 0.9 Last 10K results of a 20K run GC logged over run only minor events recorded All results within 0.6mS 12000 10000 Time (ms) 0.8 0.7 0.6 0.5 0.4 0.3 Frequency 8000 6000 4000 2000 0.2 0.3 0.4 0.5 0 0.6 0.7 0.8 More Time (ms) 0.2 0.1 0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Sample

Networked Java Sockets 16 Socket Only, Duration Last 10000 samples from a 50000 sample run. Heap size 256MB No Garbage Collection recorded during entire run 95% of results within 0.1mS Only 0.03% of results outside 0.5mS Indicates what can be achieved Time (ms) 4.5 4 3.5 3 2.5 2 1.5 1 0.5 Series1 0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Samples

Sockets and Heavy GC 17 Last 30K samples of 40K run Heap size 4MB Dramatic increase in GC effects Time (ms) 350 300 250 200 150 Socket Only - Heavy GC Duration GC events 100 50 0 0 5000 10000 15000 20000 25000 30000 Sample

Socket only, Heavy GC 18 1.5 Socket Only - Heavy GC Duration GC events 1.4 1.3 1.2 1.1 Time (ms) 1 0.9 0.8 0.7 0.6 0.5 0 5000 10000 15000 20000 25000 30000 Sample

Real-Time Predictability Low Jitter < 1mS 19 3 2 Time (ms) 1 0 0 5000 10000 15000 20000 25000 30000 Sample Results showing the roundtrip CORBA call invocation times for a high priority thread with one or more low priority threads running concurrently

Distribution of Duration 20 One Hi Priority task only 90 80 70 60 50 40 30 20 10 0 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 More One Hi Priority task One Low Priority task 100 90 80 70 60 50 40 30 20 10 0 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 More

RT ORB, High and Low Priority Tasks 21 Absolute Period 30.008 30.006 30.004 Time (ms) 30.002 30 29.998 29.996 29.994 0 5000 10000 15000 20000 25000 30000 Sample

Garbage Collection Log - Server 22 Server Side GC Log 4 3.5 3 2.5 Duration (ms) 2 1.5 1 0.5 0 0 200 400 600 800 1000 Elapsed Time (Secs)

Garbage Collection Logs - Client 23 Client Side GC Log 45 40 35 30 Duration (ms) 25 20 15 10 5 0 0 100 200 300 400 500 600 700 800 900 1000 Elapsed Time (Secs)

Non-Real-Time ORB and JVM 24 450 400 Time (ms) 350 300 250 200 Frequency 250 200 150 100 50 0 1 2 3 4 5 6 7 8 9 10 20 30 40 50 More 150 Duration (ms) 100 50 0 0 100 200 300 400 500 600 700 800 900 1000 Sample

Excellent Performance Low Latency, High Throughput 25 Client to server roundtrip invocation times for a series of calls with increasing payload. All measurements carried out on Solaris 10, single host inter-process communication, using JDK 1.4.

OpenFusion RTOrb Java Edition Architecture & Features 26 IDL IDL Compiler Compiler Interface Interface Repository Repository Implementation Implementation Repository Repository OpenFusion CORBA Services Naming, Trading, Notification & Log Log IDL IDL Threading Threading Models Models Client Client OBV OBV ORB ORB Interface Interface Portable Portable Interceptors Interceptors RT RT CORBA CORBA ORB Core IDL IDL RT RT JVM JVM RT RT Threads, Threads, NHRT NHRT Threads, Threads, Scoped Scoped & Immortal Immortal Memory Memory CORBA CORBA Messaging Messaging Server Server GIOP GIOP Pluggable Pluggable Transports Transports SSLIOP SSLIOP Pluggable Pluggable POA POA M-POA M-POA RT-POA RT-POA IIOP IIOP SHMIOP SHMIOP MIOP MIOP CORBA 3.0 ORB. Including features such as: IDL to Java compiler, GIOP 1.3, Full POA, Dynamic ANY, Portable Interceptors, CORBA Messaging (AMI, QoS), Value Types Support for OMG s Real-Time CORBA v1.2 specification. Including features such as: RT ORB, RT POA, RT Priority and Mappings, RT Current, RT Priority Model Client propagated and Server declared, Priority Transforms, Mutex, Thread Pools, PrivateConnection Policy, Invocation Timeout Pluggable transports support for OMG s Extensible Transport Framework (ETF) Common Object Services - OpenFusion Naming, Trading & Notification Services JVM - Sun Real-Time Java System v1.0, JDK 1.4, IBM J9 Operating System Support - Solaris 10, Linux, LynxOS

Resulting Benefits 27 First commercial CORBA implementation that makes Real-Time Java programming in a distributed environment possible Enables Real-Time system developers to leverage the benefits of the Java platform write once run anywhere portability, ease of use and security Compliant with key standards from the OMG and the JCP: CORBA 3 and Real-Time CORBA v1.2 Specifications RTSJ (Real-time Specification for Java v1.0) Full enterprise level CORBA functionality Can be used as a Real-time ORB or general purpose Enterprise solution or both For systems with a mix of uses (both RT and non-rt) provides a single ORB solution Single ORB solution minimises ORB interoperability issues Developers only have to learn how to use one ORB Low jitter (< 1ms) High performance (excellent latency and throughput characteristics, as good or better than other Java ORBs) Guaranteed interoperability with TAO and JacORB

Future Direction 28 ORB implementation that can utilize JVMs that provide support for Real-Time garbage collectors e.g. IBM J9 May facilitate Real-Time CORBA in a Java environment but without the need for application developers to use complex RTSJ memory models Will enable the application developers to once again leverage one of the key benefits of the Java Programming Model namely ease of use Extensive benchmarking required in order to determine what class of Real-Time system can be supported, soft or hard or both Additional standardization works required at OMG in order to provide a Java language binding more suitable for Real-Time systems Support for object caching in order to reduce amount of garbage generated in standard stubs and skeletons Support for specific RTSJ features such as scoped memory in the generated binding

Networked Sockets with Real-Time Garbage Collection 29

OpenFusion RTOrb Java Edition Release Schedule 30 GA Jan Feb March April May June July Aug!CORBA 3.0 ORB! IDL to Java binding!full POA Interface!Full ORB Interface!CORBA Messaging! Qos!Interface Repository!GIOP 1.2 (without BI DIR)!ValueTypes!Portable Interceptors including Object Reference Templates!Support for RT CORBA v1.2!rt ORB!RT POA!RT Priority and Mappings!RT Current!RT Priority Model Client propagated and Server declared!priority Transforms!Mutex!Thread Pools!PrivateConnection Policy!Invocation Timeout!COS OpenFusion Naming Service!RTJVM- Sun Real-time Java System v1.0, JDK v1.4!os Solaris 10, Linux (part of ongoing strategy to provide a single Java ORB solution for both RT and non RT apps)!docs RT for Java User Documentation!ORB Interoperability tested and proven with TAO and JacORB!DDS Interoperability tested and proven with SPLICE DDS!In addition to the functionality provided in OpenFusion RT for Java v1.0!dynamicany!corba Messaging AMI!Extensible Transport Framework Priority Banded Connections!COS OpenFusion Trader Service OpenFusion RT for Java v1.1!in addition to the functionality provided in OpenFusion RT for Java v1.1!rtjvm IBM J9 (dependent onjvm availability) OpenFusion RT for Java v1.2 GA GA OpenFusion RT for Java v1.0

Summary and Conclusions 31 Real-Time CORBA in a Java environment is now a reality OpenFusion Real-Time Java ORB can provide a single unified ORB solution for use in both Real-Time (hard & soft) and Non Real-time systems Obvious application of this technology for complex applications comprising significant non-real-time logic and both soft and/or hard realtime logic where Java is the preferred long term implementation language The impact of GC can be eliminated by using NHRT threads, scoped and immortal memory Writing Real-Time CORBA applications in Java can be complex and certainly requires careful use of RTSJ features such as scoped and immortal memory as well as Real-Time/NHRT threads Real-Time garbage collectors may offer a good potential compromise for support of certain classes of RT system helping make developing Real- Time applications in Java less complex

Further Information 32 For further information about OpenFusion RTOrb Java Edition Visit PrismTech s Website at: http://www.prismtech.com E-mail PrismTech: info@prismtech.com