Distributed Real-Time Java

Werbung
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
Herunterladen