Dienste und Middleware
Fraunhofer-Institut für Integrierte Schaltungen IIS
OSGi
- OSGi
- Warum OSGi?
- Anwendungen
- Lösung
- Hardware
- Software
- Vorteile
- Leistung
OSGi
Das OSGi-Prinzip: "Offen für alles!
OSGi steht als Abkürzung für Open Service Gateway Initiative. Diese Organisation wurde im März 1999 von weltweit renommierten Unternehmen gegründet. Ergebnis der OSGi Alliance ist die Festlegung eines auf Java basierenden Standards, der die nächste Generation von Internet-Services ermöglichen soll. Typischerweise wird diese Technologie in Fahrzeugen, mobilen Endgeräten und im Bereich der Heimvernetzung eingesetzt. Basierend auf den unterschiedlich vernetzten Hardware-Plattformen wie Settop-Boxen, Gateways, Kabelmodems aber auch Telekommunikationssystemen erlaubt OSGi das Management von hardwareunabhängigen Services.
Das OSGi-Framework stellt eine Umgebung zur Verfügung, auf der online ladbare Services ausgeführt werden können. Dabei repräsentiert ein Service die kleinste ausführbare Programmeinheit und wird mit eventuell weiteren Services zu einem Bundle zusammengefasst. OSGi definiert alle Mechanismen, die es ermöglichen, Abhängigkeiten zwischen einzelnen Services aufzulösen und notwendige Programmteile bei Bedarf über das Internet, ein beliebiges anderes Netzwerk oder von einem Speichermedium nachzuladen. Das Resultat ist eine funktionsfähige Softwarestruktur, die über das Internet/Intranet auf einer als Embedded System ausgelegten Hardware installiert oder auch wieder entfernt werden kann.
Interessant ist diese Technologie vor allem für Systeme, deren Programmierung und Funktionalität von Zeit zu Zeit an neue Gegebenheiten angepasst werden muss. Dabei erfolgt der Update ohne Beeinflussung der aktuell laufenden Software. Zusätzlich verhindern verschiedene Sicherheitsmechanismen den Zugriff nicht autorisierter Personen.
Warum OSGi?
OSGi – eine Integrationsplattform der besonderen Art
Das OSGi-Framework ist eine offene, modulare und skalierbare Integrationsplattform auf Java-Basis, mittels derer die Vernetzung von Endgeräten, die Auslieferung und Installation von Diensten, Informationen und Inhalten sowie die Fernsteuerung, -diagnose und -wartung von Geräten ermöglicht wird.
Insbesondere durch die Wiederverwendbarkeit von Modulen und der damit einhergehenden Verkürzung der Entwicklungszeiten ermöglichen OSGi-basierende Lösungen enorme Kosteneinsparungspotenziale. Aber damit nicht genug, denn als universelle Integrationsplattform hat OSGi viel zu bieten:
- Unterstützung der Verteilung von Applikationen und Diensten (Services) über verschiedene Netzwerke
- Bereitstellung grundlegender Funktionen in Form von Systemservices
- Management und Wartung von allen auf der Plattform installierten Applikationen/Services
- Definition aller Mechanismen, die Abhängigkeiten zwischen einzelnen Services auflösen und bei Bedarf notwendige Programmteile als Software- und Datencontainer über Netzwerk (z.B. Internet) nachladen
- Lauffähigkeit der OSGi-Technologie auch auf ressourcenlimitierten Embedded Geräten
- Unabhängigkeit von Herstellern und Plattformen, was den Einsatz auf jedem System und unter jedem Betriebssystem ermöglicht
- Unterstützung des Dauerbetrieb eines Gerätes ohne jegliche Unterbrechung, selbst bei der Installation neuer Softwarekomponenten
- Dynamischer Update von Software zu jedem beliebigen Zeitpunkt ohne Neustart des Systems
- Systemadministration vor Ort oder „remote“ über Netzwerk, inkl. der Visualisierung von Informationen
- Leichte und schnelle Wiederverwendbarkeit von bestehenden Softwarelösungen, da Softwaremodule – ohne Änderungen – auf unterschiedlichen Hardwareplattformen ausgeführt werden können
- Einfache Erweiterbarkeit bei späteren Änderungen durch den objektorientierten Programmieransatz der Sprache
- Sicheres und stabiles Laufzeitverhalten der erstellten Software
- Hohes Maß an Systemstabilität und Zuverlässigkeit, da aktive Tests zur Laufzeit ein frühzeitiges Erkennen von Ausnahmesituationen gewährleisten
- Verlängerung der Nutzungsdauer eines Systems durch nachträgliches Erweitern der Systemfunktionalität
- Life Cycle Mangagement durch Erweiterbarkeit
- Möglichkeit der Verbindung von Automation und Web-Technologien
OSGi - Stark in vielen Anwendungsfeldern
Die Stärken von OSGi – als Service und Integrationsplattform – werden bisher in folgenden Anwendungsbereichen genutzt:
- Heimbereich und Gebäude
- Telekommunikation
- Automobil
- Industrielle Automation
- Medizintechnik
Die typische Gebäude-Anwendung ist das „Residential Gateway“, das als Verbindungszentrale zwischen hausinternen Gebäudebussen (z.B. EIB, LonWorks®) und dem Internet, aber auch als Service-Plattform für internet-basierte Dienste im Gebäude fungiert. Hierzu zählen sowohl die Steuerung der Gebäudesystemtechnik und die Gebäudeüberwachung als auch telemedizinische Services.
Telekommunikationsanwendungen sind sehr stark mit dem Gebäude und Heimbereich verknüpft. Ziel ist es, den Netzzugang zum Gebäude optimal und mit großer Bandbreite auszunutzen. Der Schwerpunkt liegt hier vor allem auf der Steuerung und der Verteilung von Musik- und Videoinformationen.
Im Automobilbereich gilt es zwei Hauptnutzergruppen zu vereinen. Dies sind einerseits die Automobilhersteller, die in erster Linie an der Minimierung der Kosten während der Gewährleistungsfrist interessiert sind und andererseits die Fahrzeugnutzer, die vorrangig standortbezogene Dienste nutzen möchten. Durch den Einsatz von OSGi wird sowohl eine schnelle und kostensparende Reaktion auf Fahrzeugdefekte als auch eine situationsangepasste Navigation und die Nutzung spezieller Informations- und Multimediaservices ermöglicht. Insbesondere der Aspekt der Sicherheit ist hier extrem wichtig, da der Zugriff auf fahrzeugspezifische Daten entsprechend geschützt sein muss.
Unsere OSGi-Lösung
Die vom Fraunhofer IIS entwickelte OSGi-Implementierung besteht aus einer bislang einzigartig kombinierten Hard- und Softwarelösung. Während etablierte Produkte meist komplexe Funktionen des eingesetzten Betriebssystems benötigen, zeichnet sich diese Komplettlösung durch optimal aufeinander abgestimmte Softwareschichten und Schnittstellen aus.
Die modulare Architektur erlaubt ein einfaches Hinzufügen von Service-Bundles. Dadurch lässt sich die Einsatzdauer von Geräten mittels dynamischer Softwareupdates erheblich verlängern (Life Cycle Management).
Als innovative OSGi-Lösung eignet sie sich vor allem für hochintegrierte, kosten- und leistungsoptimierte Prozessor- und Mikrocontrollersysteme bzw. System-on-Chip-Lösungen, mit den Anwendungsmöglichkeiten in vielen Bereichen:
- Industrieautomation
- Automotive
- Gebäude- und Heimatautomatisierung
- Telekommunikation
- Telemedizin und Healthcare
Die Hardware
Unserer Referenzplattform „OSGi Multi-Bus-Controller (OMBC)“ ist ein Modul, das die Kopplung und Kommunikation zwischen unterschiedlichen Feldbussystemen ermöglicht.
Der OMBC ist ein hochintegriertes Steuerungssystem im Hutschienengehäuse mit Schnittstellen für Ethernet, CAN-Netzwerk mit CANopen und LonWorks®. Zusätzlich bietet das System mehrere digitale und analoge Ein- bzw. Ausgänge, mit denen sich entsprechende Automatisierungskomponenten direkt ansteuern lassen. Darüber hinaus sind die Kommunikationsverbindungen zu den angeschalteten Feldbussen und übergeordneten Systemen herstellerunabhängig projektier- und parametrierbar. Bei Bedarf kann das Modul auch kundenspezifisch angepasst und erweitert werden.
Durch den Einsatz von Java und OSGi erhält das Modul die nötige Flexibilität und Stabilität, um die Kommunikation zwischen verschiedenen Bussystemen schnell, interoperabel und zuverlässig zu programmieren. Der OSGi Multi-Bus-Controller (OMBC) zeigt, dass es möglich ist, Java und OSGi in ein gängiges Gehäuse der Steuerungstechnik zu integrieren und auch den Ressourcenaufwand sowie die Kosten äußerst gering zu halten.
Die Software
Die Software unserer Referenzplattform besteht aus mehreren Schichten. Dabei arbeitet die unterste Schicht, ein Embedded-Echtzeit-Betriebssystem, direkt auf der Hardware. Dieses preemptive Betriebssystem benötigt extrem wenig Hardware-Ressourcen und ermöglicht ein schnelles Umschalten zwischen den einzelnen Softwareprozessen.
Für die Kommunikation zwischen den einzelnen Prozessen werden Mailboxen unterstützt. Das Ressourcen-Management der Hardware erfolgt hingegen über Semaphoren. Ergänzt wird dieses Betriebssystem durch ein FLASH-File-System und einem TCP/IP-Stack, der als Schnittstelle das Format der Berkley-Sockets unterstützt.
Eine kleine leistungsfähige Echtzeit-Java Virtual Machine (JVM) ist gänzlich an die Eigenschaften des Echtzeit-Betriebssystems angepasst. Dabei können die einzelnen Java-Tasks priorisiert werden. Der Garbage Collector arbeitet als eigene Task und kann – bei entsprechender Priorisierung – keine Prozesse mit höherer Priorität unterbrechen. Dieses Verhalten wird durch die einzelnen Java-Threads ermöglicht, die direkt auf Tasks des Echtzeit Betriebssystems aufbauen. Indem das Lightweight OSGi-Framework die Eigenschaften der Echtzeit-Java Virtual Machine nutzt, können die einzelnen OSGi-Services als eigene, unabhängige Tasks laufen.
Zwischen der Java Virtual Machine (JVM) und dem Echtzeit-Betriebssystem befindet sich die Schicht der Device-Treiber. Hier können einzelne native Treiber installiert werden, die den Zugriff auf die speziellen Hardwareressourcen des jeweiligen Referenzsystems managen. Direkt auf der JVM bauen die typischen Standard-APIs auf, die den Java-Zugriff auf die TCP/IP-Sockets, das Filesystem und über das AWT-API den Zugriff auf einen LCD-Controller ermöglichen. Voraussetzung ist allerdings, dass ein eigenes Graphik-Subsystem auf der Treiber-Ebene installiert ist.
Eigene Programme können auf unterschiedliche Art und Weise in das System eingeklinkt werden. Native Programmteile, die direkt auf dem Echtzeit-Betriebssystem laufen, werden als C-Programme mit einem kommerziell erhältlichen C-Compiler oder dem Open Source GNU-Compiler übersetzt. Java-Programme, die auf der Virtual Machine aufsetzen, werden entweder mit einem Standard-Java-Compiler zu einem Byte-Code übersetzt oder mit den Entwicklungswerkzeugen der Jamaica JVM auf nativen Code übersetzt. Während der Byte-Code ohne Änderung auf jeder Virtual Machine läuft, arbeitet der native Code nur auf der Plattform, für die er übersetzt worden ist. Vergleicht man die Leistungsfähigkeit der verschiedenen Möglichkeiten, ist der in C geschriebene Code am leistungsfähigsten, gefolgt vom übersetzten Java-Code und dem interpretierten Byte-Code.
Die Vorteile unserer OSGi-Lösung auf einen Blick
Unsere OSGi-Implementierung liefert eine stabile und zuverlässige Service- und Integrationsplattform und beinhaltet Funktionen, die das Management von hardwareunabhängigen Services (Diensten) ermöglicht.
Neben den generellen Vorteilen, die durch den Einsatz der OSGi-Technologie entstehen, zeichnet sich unsere OSGi-Lösung durch die zusätzlichen Eigenschaften aus:
- Einfaches Betriebssystem
- Leichte Portierbarkeit auf neue Prozessoren und Mikrocontroller
- Extrem kleiner Footprint
- Integrierte Implementierung der einzelnen Software-Komponenten
- Optimierung aller Systemteile; sowohl in Bezug auf Ressourcenbedarf (Fläche oder Speicherbedarf) als auch hinsichtlich Performance
- Weiterverwendung von bewährten, auch weniger leistungsfähigen Prozessoren für neue Applikationen
- Niedrige Taktrate für das Gesamtsystem
- Geringe Verlustleistung und damit keine Zwangsbelüftung sowie erhöhte Zuverlässigkeit und Lebensdauer
Unsere Leistungen im Überblick
Bei uns haben Systemdesign, Soft- und Hardwareentwicklung den gleichen Stellenwert. Damit bieten wir unseren Kunden den Vorteil, Systemkonzeptionen und komplette Systeme aus einem Guss zu beziehen.
Alle Komponenten können exakt auf die Anforderungen unserer Kunden angepasst und optimal untereinander abgestimmt werden. Insofern gehören nicht kompatible Hard- und Softwarekomponenten der Vergangenheit an. Wir sind herstellerunabhängig und wählen die Bausteine ausschließlich nach Eignungskriterien, Verfügbarkeit und Kundenwünschen aus.
Unser Leistungsspektrum umfasst:
- Beratung und Unterstützung bei der Systemkonzipierung von:
- Java und OSGi basierten Embedded Systemen
- System-on-Chip-Lösungen (SOC)
- Konzeption und Erstellung von OSGi-Bundles
- Individuelles Design nach Kundenwunsch
- leistungsfähige Systeme
- kostenoptimierte Systeme
- Verwendung modernster Designmethoden
- Platinenlayout
- Einsatz komplexer programmierbarer Logik (FPGA, CPLD)
- ASIC-Design und Lieferung (auch in kleinen Stückzahlen)
- Produktentwicklung bis zum Prototypen oder Nullserie
- Durchführung von CE-Zertifizierungstests



Lesezeichen setzen bei