Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Distributed Real-Time Java Seminar: Trends in der Softwaretechnik für Echtzeitsysteme (SS03) Katharina Hojenski 25. Juli 2003 Überblick 1. Distributed Real-Time Systeme 2. Java Community Process (JCP) und Java Specification Request (JSR) 3. Real-Time Specification Java (RTJS) und Remote Method Invocation (RMI) 4. Distributed Real-Time Specification Java (DRTSJ) 5. Communicating Sequential Processes (CSP) - basierte verteilte echtzeit Systeme in Java Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 2 1 ? Distributed Real-Time Systeme ? Java Community Process (JCP) und Java Specification Request (JSR) ? Real-Time Specification Java (RTJS) und Remote Method Invocation (RMI) ? Distributed Real-Time Specification Java (DRTSJ) ? Communicating Sequential Processes (CSP) - basierte verteilte echtzeit Systeme in Java Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 3 Motivation ? Echtzeit-Anwendungen auf Ein-Rechner-Systemen stoßen an die Grenzen der Prozessorauslastung ? Viele verteilte Anwendungen müssen Echtzeit unterstützen ? Anwendung im Bereich : industrielle Automatisierungstechnik, Telekommunikationssektor, Verteidigungssektor Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 4 2 Begrifflichkeiten time constraint deadline timeliness predictability synchronization Real-Time System optimality execution time Distributed Real-Time System global clock multi-node properties end-to-end predictability end-to-end timeliness Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik optimality of predictability Katharina Hojenski – Distributed Real-Time Java 5 Programmiermodelle ? Control flow : Bewegung der aktuellen Position bei der Ausführung (execution point) durch die Instanzen der Anwendung (RPC, RMI) ? Data flow : Bewegung von Daten innerhalb der Instanzen einer Anwendung ohne Betrachtung der aktuellen Position des Kontrollflusses ? Networked : asynchrones oder synchrones Bewegen von Nachrichten durch die Einheiten der Anwendung Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 6 3 Distributed Thread Model ? Thread mit systemweiter eindeutiger ID ‘Control Flow‘ – Abstraktion bewegt sich durch die verteilten Objekte Dthread 1 ObjektA ? Dthread 2 ObjektB Dthread 3 ObjektC ObjektD entfernte Methoden werden wie lokale aufgerufen Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 7 ? Distributed Real-Time Systeme ? Java Community Process (JCP) und Java Specification Request (JSR) ? Real-Time Specification Java (RTJS) und Remote Method Invocation (RMI) ? Distributed Real-Time Specification Java (DRTSJ) ? Communicating Sequential Processes (CSP) - basierte verteilte echtzeit Systeme in Java Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 8 4 JCP und Java Specification Request Java Community Process ? ? ? Java Community Process ist eine offene Organisation von Java Entwicklern Verantwortlich für Spezifikationen, Referenz Implementierung Unterstützung von SUN Microsystems Java Specification Request ? Enthält Beschreibung von laufenden und abgeschlossenen Spezifikationen ? JSR 1 – Real-Time Specification for Java RTSJ (begonnen: Ende 1998, abgeschlossen: Anfang 2002) ? JSR 50 – Distributed Real-Time Specification for Java DRTSJ (begonnen: Anfang 2000, abgeschlossen: voraussichtlich Ende 2003) ⇒ Distributed Real-Time Specification for Java ist noch in Entwicklung Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 9 JSR-50 DRTSJ Expert Group ? Leader: Doug Jensen (MITRE) ? RTSJ Experten: Greg Bollella (Sun), Doug Locke (TimeSys), David Hardin (aJile: RT Java products on chip), Ben Brosgol (AdaCore) ? RMI Experten: Ann Wollrath (Sun), Esmond Pitt ? Industrie- und Verteidigungssektor: Jason Lawson (AFRL), Kirk Rheinholtz (NASA JPL), Dave Sharp (Boeing),Gautham Thaker (Lockheed Martin), Doug Wells (The Open Group), Ray Clark (MITRE), Franco Travostino (Nortel Networks), Hiroaki Hashimukai (Yamatake), Gary Silvers (IBM) Paul LaCrosse (LaCrosse Consulting) ? Akademiker/Wissenschaftler: Andy Wellings (U of York), Raj Rajkumar (CMU) ? Real-Time CORBA Experten: Bill Beckwith (OIS: ORBExpress), Chris Gill (WUStL: TAO ORB) Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 10 5 E. Douglas Jensen ? Leiter der Experten Gruppe JRS-50 für DRTSJ ? Entwicklung des ersten kommerziellen Distributed Real-Time Computer Control System (1976) ? Mitwirkender an RTSJ (JSR-01) ? OMG Real-Time CORBA 2 (Dynamic Scheduling) Spezifikation ? OMG Real-Time CORBA 1 (Fixed Priority Scheduling) Spezifikation ? Leiter der Gesellschaft MITRE (seit 1998 bei MITRE) ⇒ seit 1959 international führend in der Forschung und Entwicklung für komplexe Informationssysteme, im Militärbereich (Befehls- und Kontrollsysteme), LuftfahrtKontrollsysteme, Sicherheit und Intelligenz in Verteidigungssystemen Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 11 ? Distributed Real-Time Systeme ? Java Community Process (JCP) und Java Specification Request (JSR) ? Real-Time Specification Java (RTJS) und Remote Method Invocation (RMI) ? Distributed Real-Time Specification Java (DRTSJ) ? Communicating Sequential Processes (CSP) - basierte verteilte echtzeit Systeme in Java Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 12 6 RMI - Grundphilosophie ? Remote Procedure Calls (RPC) als alternative zur Socketprogrammierung ? RPC bietet die Möglichkeit entfernte Prozeduren aufzurufen wie lokale ? RPC unterstützt nicht das Modell der Distributed Objects Systems ⇒ Remote Method Invocation (RMI) ? Client und Server-Kommunikation ? ‘Dynamic Class Loading‘ ? Jedoch: Verteilung der Objekte ist nicht völlig transparent ? Keine Informationen über die Beziehung (und Synchronisation) Klassenarchtitektur von RMI der Systemuhren ? Nur Serializable-Objekte können über RMI übertragen werden Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 13 RTSJ – Real-Time Specification for Java ? Nur für Einrechner-System konzipiert ? Erfasst sowohl ‘hard real-time‘ als auch ‘soft real-time‘ ? Behandelt: ? ? ? ? ? ? ? Scheduling- und ReleaseParameters Memory management Synchronization Asynchronous event handling Asynchronous transfer of control Asynchronous thread termination Physical memory access ⇒ Ergebnis: Real-Time JVM ? ? Intention: Soll erste erfolgreiche kommerziell genutzte Echtzeit-Platform zur Verfügung stellen Lizenz der Referenz Implementierung erlaubt keine kommerzielle Nutzung Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 14 7 ? Distributed Real-Time Systeme ? Java Community Process (JCP) und Java Specification Request (JSR) ? Real-Time Specification Java (RTJS) und Remote Method Invocation (RMI) ? Distributed Real-Time Specification Java (DRTSJ) ? Communicating Sequential Processes (CSP) - basierte verteilte echtzeit Systeme in Java Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 15 Ziele und Grenzen ü Entstehung eines Dynamic Distributed Real-Time Systems (soll auch in statischen Systemen funktionieren) ü Basiert auf dem ‘Alpha distributed real-time OS kernels‘ Modell für Distributed Thread ü Konzept übernommen von Real-Time CORBA2 (Dynamic Scheduling) ü Erweiterung des Real-Time Java in Verbindung mit RMI ü Erweiterung von RMI, um anwendungsspezifische Vorhersagbarkeit (predictability) zu gewährleisten ü Einschränkung auf die Unterstützung des ‘control flow‘ Modells ü Keine Integration von ‘Java‘s mobile objects‘ u.Ä. Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 16 8 Anforderungen an DRTSJ ⇒ Synchronisation der globalen physikalischen Zeit ⇒ Fest definierte Schnittstellen zwischen Objekten ⇒ Einhaltung der Deadlines für Prozesse ⇒ Voraussagbarkeit über die Einhaltung der Zeitbindungen ⇒ Minimierung der Verspätungen beim Ausführen von Prozessen ⇒ Übernahme des Resource Managements ⇒ Resource Management beeinflusst durch die (Zeit)-Eigenschaften der Anwendung ⇒ Optimierung des Scheduling und Dispatching ⇒ Integrität des Systems end-to-end timeliness Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik multi-node properties optimality predictability Katharina Hojenski – Distributed Real-Time Java 17 Time-Constraint ? time-constaint (lokale Eigenschaft) vs. Prioritäten (globale Eigenschaft) Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 18 9 End-To-End Timeliness Ø Zentrale Charakteristik für verteilte Echtzeit-Systeme Globale Optimierung der Zeiteigenschaften: 1. Jeder Knoten nutzt die gleiche Strategie zur Ablaufsteuerung 2. Globale Ablaufsteuerung , als Hilfsmittel wird die Kopie auf jeden Knoten instanziiert (Verbesserung der Rechtzeitigkeit , Erhöhung des Aufwand) 3. „Meta“-Ablaufsteuerung operiert oberhalb der einzelnen Steuerungen der Knoten Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 19 Integration von RTSJ und RMI – Level 0 - Remote Interface Minimale Integration von RTSJ und RMI ? Definition des Interfaces enthält keine Eigenschaften für Echtzeit ? Remote Object wird ohne Echtzeit-Anforderungen der JVM ausgeführt ? Server Proxy ist ein Standard-Java-Thread, hat also kein Informationen über Zeitkonstanten ? Von RMI darf keine Zeitbindung bei Returns erwartet werden ? Keine Synchronisation (und gegenseitige Kenntnis) der Systemuhren von Client und Server ? Vorteil: keine Erweiterung von RTSJ und auch keine von RMI Real-time / Non-Real-Time Client Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik RMI Non-Real-Time Server Katharina Hojenski – Distributed Real-Time Java 20 10 Integration von RTSJ und RMI – Level 1 - Real-Time RMI ? auf RTSJ Objekte kann durch eine real-time remote interface zugegriffen werden, werden in der RT-JVM ausgeführt RTSJ Objekte können nicht direkt auf entfernte Dienste zugreifen, sie implementieren nicht das Serializable-Interface Verwendet RTSJ‘s SchedulingParameters und ReleaseParameters ? ? ? Keine Änderungen an RTSJ und der RT-JVM Kein physikalisch globale Zeit, Synchronisation erforderlich Ausfallsicherung: Der Server wird über den Ausfall des Clients informiert ? ? Standard Thread/ RTSJ Client Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Real-Time RMI RTSJ Server Katharina Hojenski – Distributed Real-Time Java 21 Integration von RTSJ und RMI – Level 2 - Distributed Real-Time RMI ? ? ? ? Verwendung des Konzeptes ‘Distributed Threads‘ Übermittelt die Zeit-Eigenschaften in Verbindung mit den Java Objekten, behält die Eigenschaften bei Aufrufen der Methoden bei Synchronisation der Threads und Scheduling integriert Scheduling-Einheiten auf jedem Knoten, kommunizieren miteinander DRTSJ Client Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Distributed Real-Time RMI DRTSJ Server Katharina Hojenski – Distributed Real-Time Java 22 11 Implementierung public interface RemoteThread extends DistributedRealTimeRemote { public RemoteReleaseParameters getReleaseParameters() throws RemoteException; public void setReleaseParameters(RemoteReleaseParameters parameters) throws RemoteException; /* Similarly for SchedulingParameters */ public RemoteScheduler getScheduler() throws RemoteException; public synchronized void interrupt() throws RemoteException; public void start() throws RemoteException, IllegalThreadStateException; } public DistributedRealTimeThread extends RealtimeThread implements RemoteThread { // Implementation of RemoteThread interface plus public static RemoteThread currentRemoteThread() throws NotARemoteThreadException } Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 23 ? Distributed Real-Time Systeme ? Java Community Process (JCP) und Java Specification Request (JSR) ? Real-Time Specification Java (RTJS) und Remote Method Invocation (RMI) ? Distributed Real-Time Specification Java (DRTSJ) ? Communicating Sequential Processes (CSP) - basierte verteilte echtzeit Systeme in Java Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 24 12 Communicating Sequential Processes - CSP ? Fundamentales Konzept zur Programmierung von verteilten echtzeit Systemen ? Sprache zur Beschreibung von Muster zur Interaktion zwischen parallelen und nebenläufigen Prozessen ? Modelliert die parallele Ausführung und Kommunikation zwischen Prozessen über Kanäle - Kapselung von Prozessen, Netzwerk und Kommunikation ? Mathematische Theorie zur Spezifikation und Verifikation ? Lösung unter Java: JCSP – entwickelt an der University of Kent ? Unterstützt Objekt-Orientierung ? Thread-Programmierung entfällt Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 25 Channel Konzept ? Keine Multi-Thread Programmierung ? Priority- und Scheduling-Mechanismen in die Kommunikationskanäle integriert ? Prinzip: Scheduling ist nicht mehr Aufgabe des OS, sondern gehört nun zur Anwendung ? Synchronisation des Input/Output von Prozessen ? Channel enthält Informationen über: Time Constraints, Synchronisation, Scheduling Dispatching Prozess A Meldet: zum Senden bereit Prozess B Meldet: zum Empfangen bereit Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 26 13 Sequence of Execution - Konstrukte Ø SEQ für sequentielle Ausführung Ø PAR für parallele Ausführung Ø PRIPAR Ø ALT für alternierende Ausführung Ø PRIALT PRIPAR Process1 Process2 PRIPAR Process3 … Processn PRIALT Guard1:Process1 Guard2:Process2 … Guardn:Processn SEQ p1 p2 … pn PAR p1 p2 … pn ALT guard1:p1 guard2:p2 … guardn:pn CHANNEL chan PAR ProcessA (chan) { chan ! X; … } ProcessB (chan) { chan ? Y; … } Beispiel für 2 über einen Channel kommunizierende Prozesse Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 27 Link Driver Konzept ? Channel enthält speziellen Treiber, um hardware-abhängigen Programmiercode einzugrenzen write ProzessA read channel ProzessB Hardware-unabhängiger Code Hardware-abhängiger Code USB Memory PCI ? Link Driver übernimmt den Daten Transfer ? Kleinerer Umfang der JVM ? Link Driver erweitert das Scheduling des Channels Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik TCP A ch ch Link TCP/IP Driver System A B Link Driver System B Katharina Hojenski – Distributed Real-Time Java 28 14 Beispiel unter Java /** * MainSenderrSide.java */ import csp.*; import linkdrivers.*; import java.io.*; /** * MainReceiverSide.java */ import csp.*; import linkdrivers.*; import java.io.*; public class MainReceiverSide { public static void main(String[] args) throws IOException, Exception { public class MainReceiverSide { public static void main(String[] args) throws IOException, Exception { Channel channel; System.out.println(“Running...“); if (args.length == 0) channel = new Channel (new TCPIP(““, 1701); else channel = new Channel (new TCPIP(args[0], 1701); Sender receiver = new Sender(channel); System.out.println(“Connected!“); System.out.println(“Running...“); } } Channel channel = new Channel(new TCPIP(1701)); Receiver receiver = new Receiver(channel); System.out.println(“Connected!“); } } Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 29 Zusammenfassung ⇒ Entwicklung von Distributed Real-Time Java in jedem Fall erforderlich ⇒ Prinzip des CSP-basierten Distributed Real-Time Java hat keine Popularität gewonnen ⇒ Noch keine endgültige Spezifikation und keine Referenz Implementierung verfügbar, wird erst zum Herbst 2003 erwartet ⇒ Etablierung abhängig von der Akzeptanz von RTSJ ⇒ Zeitintensive und langdauernde Testphase notwendig Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Katharina Hojenski – Distributed Real-Time Java 30 15