Beschreibung
Vorrichtung und Verfahren zur Software-Verwaltung in einem heterogenen Hardware-System
Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zur Software-Verwaltung in einem heterogenen Hardware-System und insbesondere auf eine in einem mobilen Telekommunikationsendgerät oder einem Entwicklungstool realisierte Kon igurationseinheit zum Kon igurieren eines heterogenen Hardware-Systems, wobei auf eine Vielzahl von unterschiedlichen Datenverarbeitungseinheiten miteinander kommunizierende Software-Module optimal verteilt werden.
Bei der Implementierung von komplexen Software-Systemen wird meist ein komplexes, mit mehreren Datenverarbeitungseinheiten (CPUs, DSPs usw.) ausgestattetes Hardware-System zu Grunde gelegt, wobei einzelne Softwareteile bzw. Software-Module auf diese unterschiedlichen Datenverarbeitungseinheiten verteilt werden und miteinander kommunizieren.
Insbesondere in zukünftigen mobilen Telekommunikationsendgeräten werden heterogene Hardware-Systeme verwendet, die eine Vielzahl von unterschiedlichen Datenverarbeitungseinheiten wie beispielsweise einer Applikations-CPU, einer Modem-CPU und einem Modem-DSP (Digital Signal Processor) aufweisen. Zukünftige Anwendungsprogramme für derartige mobile Telekommunikationsendgeräte weisen hierbei eine Vielzahl von teilweise alternativen Software-Modulen auf, die zur Realisierung einer vorbestimmten Funktionalität auf den unterschiedlichen Datenverarbeitungseinheiten optimal verteilt werden müssen.
Üblicherweise erfolgt die Verteilung derartiger Software- Module als manueller Schritt innerhalb der Entwicklungsphase bzw. Implementierungsphase, sofern das System komplett, d.h. Software und Hardware vom Hersteller unveränderlich, ausgeliefert wird, insbesondere ein Softwareentwickler ist demzu-
folge gehalten, die Abbildung bzw. das Verteilen der Software-Module auf die Hardware-Ressourcen des Hardware-Systems vorzunehmen, um eine optimale Ausführbarkeit des Programms auf dem Hardware-System zu ermöglichen. Dieser Vorgang ist jedoch zeitaufwändig und demzufolge kostenintensiv.
Darüber hinaus hat insbesondere bei mobilen Telekommunikationsendgeräten eine Aktualisierung des Gesamtsystems mit neuer Software aus einem Netzwerk eine zunehmende Bedeutung, wobei insbesondere für Telekommunikationsendgeräte mit einem heterogenen Hardware-System in den seltensten Fällen eine optimale Software-Konfiguration bzw. -Verteilung stattfindet.
Der Erfindung liegt daher die Aufgabe zu Grunde eine Vorrich- tung und ein Verfahren zur Software-Verwaltung in einem heterogenen Hardware-System zu schaffen, wobei die vorhandenen Hardware-Ressourcen des Hardware-Systems optimal genutzt werden können .
Erfindungsgemäß wird diese Aufgabe hinsichtlich der Vorrichtung durch die Merkmale des Patentanspruchs 1 und hinsichtlich des Verfahrens durch die Maßnahmen des Patentanspruchs 14 gelöst.
insbesondere durch die Verwendung einer Auswerteeinheit zum Erzeugen von Konfigurationsparameterή in Abhängigkeit von Hardware-Kenndaten, die vorhandene Hardware-Ressourcen des heterogenen Hardware-Systems beschreiben, und von Software- Anforderungsdaten, die benötigte Hardware-Ressourcen für ein abzuarbeitendes Software-Modul beschreiben, und einer Zuordnungseinheit, welche das Software-Modul in Abhängigkeit von den Konfigurationsparametern der Auswerteeinheit auf die unterschiedlichen Datenverarbeitungseinheiten verteilt und ausführbar macht, können komplexe Software-Systeme bzw. komplexe Anwendungsprogramme mit einer Vielzahl von Software-Modulen optimal auf ein jeweils vorhandenes heterogenes Hardware-
Syste verteilt werden, wodurch sich die Leistungsfähigkeit wesentlich verbessern lässt.
Falls die Hardware-Kenndaten des Hardware-Systems nicht vor- bekannt sind, kann ferner eine Hardware-Analyseeinheit zum Analysieren des Hardware-Systems und zum Erzeugen von Hardware-Kenndaten vorgesehen werden. Insbesondere in Verbindung mit einer Test-Zuordnung der zu verteilenden Software-Module auf das Hardware-System, wobei die Hardware-Analyseeinheit Hardware—Optimierungsdaten in Abhängigkeit von der durchgeführten Test-Zuordnung erzeugt, und einer weiteren Berücksichtigung dieser Hardware-Optimierungsdaten bei der Erzeugung der Konfigurationsparameter durch die Auswerteeinheit, kann ferner eine automatische Optimierung bei der Verteilung von Software-Modulen realisiert werden. Als Hardware-Optimierungsdaten werden hierbei vorzugsweise ein Energieverbrauch, eine effektive Verarbeitungsrate und/oder eine effektive Speicherverfügbarkeit des Hardware-Systems betrachtet.
Ferner kann eine Software-Auswahleinheit zum Auswählen eines Software—Moduls aus einer Vielzahl von alternativen Software- Modulen eines Software-Systems bzw. Anwendungsprogramms in Abhängigkeit von den Konfigurationsparametern der Auswerteeinheit vorgesehen sein, wobei der Zuordnungseinheit nur die ausgewählten Software-Module zur Verfügung gestellt werden. Auf diese Weise kann nicht nur eine optimale Zuordnung, sondern auch eine optimale Auswahl von zur Verfügung stehenden Software-Modulen auf die unterschiedlichen Datenverarbeitungseinheiten durchgeführt werden, wodurch sich eine Gesamt- Performance des Systems weiter verbessern lässt.
Zur Realisierung einer zusätzlichen Benutzersteuerung der Auswerteeinheit kann ferner eine Benutzer-Eingabeeinheit vorgesehen sein, wodurch eine manuelle Beein lussung des automa- tischen Auswahl- oder Zuordnungsvorgangs gewährleistet ist. Die Flexibilität des Gesamtsystems wird dadurch wesentlich gesteigert .
Ferner kann eine Software-Analyseeinheit zum Analysieren eines Software-Systems und zum Erzeugen der Software—Anforderungsdaten vorgesehen werden, sofern beispielsweise das Soft- ware-System bzw. die zu verteilenden Software-Module nicht bereits über entsprechende Software-Anforderungsdaten verfügen. Demzufolge können auch „alte" Anwendungsprogramme optimal auf ein Hardware-System verteilt werden.
Obwohl vorzugsweise die Software-Module datenverarbeitungs- einheiten-unabhängige Programmcodes wie beispielsweise JAVA™ aufweisen, können auch datenverarbeitungseinheiten-spezifi- sche Programmcodes verwendet werden, wobei jedoch eine Anpassungseinheit zum Anpassen eines Programmcodes des Software- Moduls an die unterschiedlichen Datenverarbeitungseinheiten und/oder der unterschiedlichen Datenverarbeitungseinheiten an den jeweiligen Programmcode des Software-Moduls benötigt wird.
Vorzugsweise ist die erfindungsgemäße Konfigurationseinheit in einem mobilen Telekommunikationsendgerät implementiert, wobei unter Verwendung eines Download-Managers zum Herunterladen von Software-Modulen und zugehörigen Software-Anforderungsdaten über einen Download-Server in einem Telekommunika- tionsnetzwerk jederzeit das Handy optimal konfiguriert werden kann. In gleicher Weise ist die Konfigurationseinheit jedoch auch als Entwicklungstool zur effizienteren Software-Verwaltung in heterogenen Hardware-Systemen einsetzbar.
Hinsichtlich des Verfahrens wird zunächst ein Auswerten von Hardware-Kenndaten, die vorhandene Hardware-Ressourcen des heterogenen Hardware-Systems beschreiben, und von Software- Anforderungsdaten, die benötigte Hardware-Ressourcen für das zu verteilende und abzuarbeitende Software-Modul beschreiben, zum Erzeugen von Konfigurationsparametern durchgeführt, wobei anschließend das Software-Modul in Abhängigkeit von den erzeugten Konfigurationsparametern auf die unterschiedlichen
Datenverarbeitungseinheiten verteilt und abschließend ausführbar gemacht wird.
In den weiteren Unteransprüchen sind weitere vorteilhafte Ausgestaltungen der Erfindung gekennzeichnet.
Die Erfindung wird nachstehend anhand von Ausführungsbeispie- len unter Bezugnahme auf die Zeichnung näher beschrieben.
Es zeigen:
Figur 1 eine vereinfachte Blockdarstellung eines Gesamtsystems mit einer erfindungsgemäßen Vorrichtung zur Software- Verwaltung;
Figur 2 eine vereinfachte Blockdarstellung der er indungsgemäßen Vorrichtung zur Software-Verwaltung, wie sie in Figur 1 dargestellt ist;
Figur 3 eine vereinfachte graphische Darstellung eines Software-Systems sowie zugehörigen Software-Modulen mit ihren jeweiligen Software-Anforderungsdaten;
Figur 4 eine vereinfachte graphische Darstellung eines Hard- ware-Syste s mit zugehörigen Hardware-Ressourcen und zugehörigen Hardware-Kenndaten;
Figuren 5A und 5B eine vereinfachte Blockdarstellung zur Veranschaulichung einer Hardware-Optimierung;
Figur 6 eine vereinfachte Blockdarstellung zur Veranschaulichung eines Verteilungsvorgangs in Abhängigkeit von zur Verfügung stehenden Hardware-Ressourcen;
Figur 7 eine vereinfachte graphische Darstellung zur Veranschaulichung eines Download-Vorgangs von Software-Modulen in einem Telekommunikationsnetzwerk; und
Figur 8 ein vereinfachtes Flussdiagramm zur Veranschaulichung wesentlicher Schritte bei der Durchführung des Verfahrens zur Software-Verwaltung in einem heterogenen Hardware-System.
Figur 1 zeigt eine vereinfachte Blockdarstellung zur Veranschaulichung einer erfindungsgemäßen Vorrichtung sowie eines Verfahrens zur Software-Verwaltung in einem heterogenen Hardware-System.
Gemäß Figur 1 bezeichnet SS ein Software-System wie beispielsweise ein komplexes Anwendungsprogramm bzw. eine Datenbank mit einer Vielzahl von Anwendungsprogrammen, die jeweils zumindest ein Software-Modul im beschriebenen Fall zumindest Software-Module A, B und C aufweisen können. Die Software- Module A, B und C können hierbei Teil-Funktionalitäten eines Anwendungsprogramms oder eines komplexen Software-Systems darstellen und darüber hinaus hinsichtlich ihrer Funktionalität alternative Lösungen anbieten.
Zur Realisierung eines derartigen Software—Systems auf einer tatsächlichen Hardware-Plattform bzw. einem Hardware-System HS wird nunmehr eine Konfigurationseinheit KE vorgeschlagen, die eine Abbildung der Software bzw. der unterschiedlichen Software-Objekte bzw. Software-Module in die unterschiedlichen Datenverarbeitungseinheiten DVl, DV2 und DV3 des Hardware-Systems HS übernimmt.
Genauer gesagt weist das heterogene Hardware-System HS bei- spielsweise eine Applikations-CPU (Application Central Processing Unit) DVl, eine Modem-CPU (Modem Central Processing Unit) DV2 und einen Modem-DSP (Modem Digital Signal Proces- sor) DV3 auf, die untereinander kommunizieren und weitere Hardware-Ressourcen aufweisen wie beispielsweise nicht darge- stellte Speicher und Kommunikationskanäle. Zur Beschreibung des Hardware-Systems HS kann dieses beispielsweise Hardware-
Kenndaten HW-MD (Hard Ware Meta Data) aufweisen, die die vorhandenen Hardware-Ressourcen im Einzelnen beschreiben.
Figur 4 zeigt eine vereinfachte graphische Objekt-Darstellung des Hardware-Systems HS mit zugehörigen Hardware-Ressourcen DVl, DV2, DV3 und CC sowie zugehörigen Hardware-Kenndaten bzw. Hardware-Metadaten HW-MD. Gemäß der objektbezogenen Darstellung weist das Hardware-System HS eine Kategorie von Datenverarbeitungseinheiten DVl bis DV3 auf, die beispielsweise eine Applikations-CPU, eine Modem-CPU und einen Modem-DSP darstellen. Jede dieser Datenverarbeitungseinheiten besitzt bestimmte charakteristische Merkmale, welche in den charakterisierenden Hardware-Kenndaten DV-MD der Datenverarbeitungs- einheiten abgelegt sind. Hierzu gehören beispielsweise ein Prozessortyp, eine Anzahl von Prozessorkernen sowie eine Datenverarbeitungsrate MIPS (Million Instructions per Second) . Ferner weist das Hardware-System HS eine Kategorie Kommunikations-Kanal CC auf, die wiederum zugehörige Kommunikations- Kanal-Kenndaten CC-MD mit entsprechenden Werten für bei- spielsweise eine Bandbreite, eine Verzögerung, einen Jitter usw. aufweisen. Die Gesamtheit dieser Kenndaten bzw. Metadaten werden in den Hardware-Kenndaten bzw. Hardware-Metadaten HW-MD zusammengefasst und beschreiben bzw. charakterisieren demzufolge sehr genau jeweils vorhandene Hardware-Ressourcen eines Hardware-Systems.
In gleicher Weise zeigt Figur 3 eine o jektbezogene Darstellung des Software-Systems SS gemäß Figur 1, wobei ein komplexes Anwendungsprogramm beispielsweise aus einer Vielzahl von Software-Modulen A, B, C und D besteht, welche jeweils über Software-Anforderungsdaten SW-MD die für das zumindest eine abzuarbeitende Software-Modul oder das gesamte Anwendungsprogramm benötigten Hardware-Ressourcen beschreiben. Im Wesentlichen entsprechen diese Software-Anforderungsdaten bzw. Software-Metadaten SW-MD den gleichen Kenndaten wie die Hardware-Kenndaten und beziehen sich demzufolge insbesondere auf eine von der Software geforderte Rechenleistung bzw. CPU-
Leistung, eine geforderte Kommunikationsbandbreite, einen geforderten Speicherplatz usw.
Gemäß Figur 1 liegen im günstigsten Fall sowohl diese Hard- ware-Kenndaten HW-MD als auch die Software-Anforderungsdaten SW-MD des Hardware-Systems sowie von zumindest einem Software-Modul A, B und C vor, weshalb die Konfigurationseinheit KE in Abhängigkeit von diesen Hardware-Kenndaten und Software-Anforderungsdaten eine geeignete Zuordnung der Software- Module auf die zur Verfügung stehende Datenverarbeitungseinheiten DVl bis DV3 durchführt und die Programme ausführbar macht. Unter einem Ausführbarmachen wird hierbei im weitesten Sinne der Begriff eines Ladens oder Installierens eines Software—Moduls in einer Datenverarbeitungseinheit verstanden, wobei beispielsweise bei Verwendung von sogenannten FPGAs (Field Programmable Gate Array) auch eine Synthetisierung der Software in einer neuartigen Hardware verstanden wird. Im Gegensatz zu herkömmlichen Prozessor-basierten Datenverarbeitungseinheiten, in denen eine Software im Wesentlichen in ei- nem Arbeitsspeicher abgelegt und dann abgearbeitet wird, verändern derartige synthetisierende Datenverarbeitungseinheiten ihr tatsächliches Aussehen, wobei im Wesentlichen eine neue Hardware entsteht.
Figur 2 zeigt eine vereinfachte Blockdarstellung der Konfigurationseinheit KE gemäß Figur 1, wie sie zur Software—Verwaltung von einem komplexen Software-System SS in einem heterogenen Hardware-System HS verwendet werden kann. Gleiche Bezugszeichen bezeichnen hierbei gleiche oder entsprechende Elemente, weshalb auf eine wiederholte Beschreibung nachfolgend verzichtet wird.
Gemäß Figur 2 weist die Konfigurationseinheit KE eine Auswerteeinheit 1 zum Erzeugen von Konfigurationsparametern in Ab— hängigkeit von den vorstehend beschriebenen Hardware-Kenndaten HW-MD und von Software-Anforderungsdaten SW-MD auf. Die Hardware-Kenndaten HW-MD beschreiben hierbei die im Hardware-
System HS vorhandenen Hardware-Ressourcen wie beispielsweise eine tatsächlich vorhandene Bandbreite, eine Datenverarbeitungsrate usw. In ähnlicher Weise beschreiben die Software- Anforderungsdaten SW-MD die für ein abzuarbeitendes Software- Modul A, B oder C benötigten Hardware-Ressourcen wie beispielsweise wiederum eine geforderte Bandbreite für einen Kommunikationskanal oder eine geforderte Datenverarbeitungsrate bzw. Rechenleistung.
Ferner weist die Kon igurationseinheit KE eine Zuordnungseinheit 2 auf, welche das zu verteilende bzw. abzubildende Software-Modul in Abhängigkeit von den von der Auswerteeinheit 1 ermittelten Konfigurationsparametern KP auf die unterschiedlichen Datenverarbeitungseinheiten DVl bis DV3 verteilt und ausführbar macht.
Genauer gesagt wird durch die Konfigurationseinheit KE ein Soll-/Ist-Vergleich über die unterschiedlichen zur Verfügung stehenden Hardware-Ressourcen sowie von der Software angefor- derten Hardware-Ressourcen durchgeführt, wobei in Abhängigkeit von diesem Ergebnis die jeweiligen Software-Module optimal in den jeweiligen unterschiedlichen Datenverarbeitungseinheiten DVl bis DV3 verteilt und ausführbar gemacht werden. Dieser Soll-/Ist-Vergleich wird vorzugsweise iterativ durch- geführt, wodurch man weiter verbesserte Software-Abbildungen erhält .
Auf diese Weise kann unter Verwendung eines einzigen Software-Systems SS bzw. unter Nutzung eines einzigen Anwendungs- programms auch bei unterschiedlichsten Hardware-Systemen HS jeweils eine optimale Platzierung der Software bzw. der Software-Module auf den verfügbaren Hardware-Ressourcen und insbesondere auf den zur Verfügung stehenden Datenverarbeitungseinheiten realisiert werden. Wird diese Konfigurationseinheit in einem Entwicklungstool zur Software-Implementierung in heterogenen Hardware-Systemen verwendet, so kann dadurch ebenfalls der Aufwand für eine Software-Implementierung wesent-
lieh verkleinert werden. Darüber hinaus erhält man bei der Verwendung der Konfigurationseinheit KE in Benutzer-Endgeräten einen erhöhten Benutzerkomfort, da der mühselige Abgleich zwischen den Software-Anforderungen und den zur Verfügung stehenden Hardware-Ressourcen im Endgerät entfällt.
Gemäß Figur 2 kann die Konfigurationseinheit KE ferner eine Hardware-Analyseeinheit 3 zum Analysieren des Hardware-Systems HS und zum Erzeugen von Hardware-Kenndaten HW-MD aufwei- sen, wodurch insbesondere sich auf Grund von Software—Implementierungen ändernde Hardware-Systeme automatisch erfasst und beschrieben werden können. Diese Hardware-Kenndaten HW-MD werden wiederum der Auswerteeinheit 1 zum Vergleich mit den Software-Anforderungsdaten SW-MD zur Verfügung gestellt.
Insbesondere zur Realisierung einer Hardware-Optimierung kann diese Hardware-Analyseeinheit 3 ferner zum Erzeugen von Hardware-Optimierungsdaten HW-OD in Abhängigkeit von einer durchgeführten Test-Zuordnung von Software-Modulen im Hardware- System ausgenutzt werden.
Figuren 5A und 5B zeigen eine vereinfachte Blockdarstellung zur Veranschaulichung einer derartigen Hardware-Optimierung, wobei gleiche Bezugszeichen wiederum gleiche Elemente be- zeichnen und auf eine wiederholte Beschreibung nachfolgend verzichtet wird.
Zur Realisierung einer Hardware-Optimierung wird gemäß Figur 5A zunächst eine Test-Zuordnung von der Konfigurationseinheit KE unter Verwendung der üblicherweise vorhandenen Hardware- Kenndaten HW-MD und der Software-Anforderungsdaten SW-MD durchgeführt, wobei ein Software-Modul A beispielsweise in der Applikations-CPU DVl die Software-Module B und D in der Modem-CPU DV2 und das Software-Modul C im Modem-DSP DV3 abge- legt und ausführbar gemacht werden. Unter Verwendung dieser Test-Zuordnung und unter Zuhilfenahme der Hardware-Analyseeinheit 3 wird nunmehr beispielsweise ein kurzer Testlauf der
Software unter der dargestellten Verteilung durchgeführt, wobei sich die Hardware-Optimierungsdaten HW-OD ergeben.
Derartige Hardware-Optimierungsdaten HW-OD können beispiels- weise einen Energieverbrauch des Hardware-Systems, eine effektive Verarbeitungsrate, das heißt eine tatsächliche Datenverarbeitungsrate unter Berücksichtigung der verteilten Software-Module und der in Anspruch genommenen Kommunikationska- näle zwischen den Datenverarbeitungseinheiten und/oder einer effektiven Speicherverfügbarkeit, die sich für das Programm in dieser Verteilung ergibt, ausgegeben werden.
Unter Berücksichtigung dieser zusätzlichen Hardware-Optimierungsdaten HW-OD kann die Auswerteeinheit 1 nunmehr bei- spielsweise eine endgültige Zuordnung der Software—Module gemäß Figur 5B ermitteln, wobei das Software-Modul D aus bestimmten Optimierungsgründen wie beispielsweise einem Energieverbrauch, einer effektiven Verarbeitungsrate und/oder einer effektiven Speicherverfügbarkeit von der Datenverarbei- tungseinheit DV2 in die Datenverarbeitungseinheit DVl verschoben wird. Unter Verwendung eines derartigen Optimierungs— bzw. Regel-Vorgangs kann demzufolge die Software-Verwaltung bzw. -Zuordnung weiter optimiert werden, wobei auch ein tatsächliches Verhalten des Hardware-Systems berücksichtigt wer- den kann.
Gemäß Figur 2 kann die Konfigurationseinheit KE ferner eine Software-Auswahleinheit 4 zum Auswählen von Software-Modulen aus einer Vielzahl von alternativen Software-Modulen eines Software-Systems bzw. eines komplexen Anwendungsprogramms in Abhängigkeit von den Konfigurationsparametern KP der Auswerteeinheit 1 aufweisen, wobei der Zuordnungseinheit 2 schließlich nur die ausgewählten Software-Module zur weiteren Verteilung auf die Datenverarbeitungseinheiten zur Verfügung ge- stellt werden. Demzufolge lässt sich nicht nur eine Verteilung von Software-Modulen innerhalb eines heterogenen Hardware-Systems optimal realisieren, sondern darüber hinaus auch
eine Auswahl bzw. Selektion von in einem Software-System SS beispielsweise alternativ zur Verfügung stehender Software- Module .
Figur 6 zeigt eine vereinfachte Blockdarstellung zur Veranschaulichung einer derartigen Auswahl-Funktionalität, wobei gleiche Bezugszeichen gleiche Elemente bezeichnen und auf eine wiederholte Beschreibung nachfolgend verzichtet wird.
Gemäß Figur 6 soll als komplexes Anwendungsprogramm eine MP3- Applikation auf unterschiedliche Hardware-Systeme verteilt bzw. implementiert werden, wobei die MP3-Applikation als Software-Modul AI beispielsweise einen LowEndMP3-Player, als Software-Modul A2 einen HighEndMP3-Player, als Software-Modul B2 einen SoftwareMP3Dekoder und als Software-Modul Bl einen HardwareMP3Dekoder aufweist.
Als zur Verfügung stehende Hardware-Systeme weist ein Hardwaresystem 1 beispielsweise eine Applikations-CPU DVl mit kleiner Leistung, einen Modem-DSP DV2 mit kleiner Leistung sowie eine Modem—Hardware DV3 mit MP3-Unterstützung auf. Demgegenüber weist ein leistungsfähiges Hardwaresystem 2 eine Applikations-CPU DV10 mit hoher Leistung, einen Modem-DSP DV20 mit durchschnittlicher Leistung und eine Standard-Modem- Hardware DV30 auf.
Die Netzwerkfunktionalität wird normalerweise in einer komplexen Software-Komponente realisiert. Als vereinfachte Betrachtung wird diese Software-Komponente nun zweigeteilt: In einen Teil, der die höheren Protokollschichten implementiert (oberer Protokoll-Stack, hier Software-Modul C) und einen Teil, der die niedrigeren Protokollschichten implementiert (unterer Protokoll-Stack, hier Software-Modul D) . In diesem Beispiel wird Software-Modul C auf den CPUs DVl und DV10 ein- gebettet. In gleicher Weise sind in den Modem-DSPs DV2 und DV20 die Software-Module D zur Realisierung eines unteren
Protokoll-Stacks eingebettet und stehen mit dem oberen Protokoll-Stack des Software-Moduls C in Verbindung.
Zur Realisierung des eigentlichen MP3-Anwendungsprogramms existieren demzufolge alternative Software-Module AI und A2 sowie Bl und B2 im Software-System. Da das HardwareSystem 1 eine Modem-Hardware mit MP3-Unterstützung aufweist, ist die Zuteilung des Softwaremoduls Bl zur Realisierung eines Hard- ware-MP3-Dekoders bzw. Treibers vollkommen ausreichend, wäh- rend das Hardwaresystem 2 mit ihrer Standard—Modem—Hardware keine derartige Implementierung ermöglicht. Da das Hardware- System 2 jedoch eine sehr leistungsfähige Applikations-CPU aufweist, wird von der vorstehend beschriebenen Auswahleinheit 4 zur Realisierung des MP3—Players in einem Endgerät mit höherwertiger Leistung bzw. Ausstattung das Software-Modul A2 und zur Realisierung eines zugehörigen SoftwareMP3—Dekoders das Software-Modul B2 in die Datenverarbeitungseinheit DV10 gelegt .
Andererseits wird die Auswahleinheit 4 bei Zugrundeliegen eines Hardwaresystems 1 das alternative Software-Modul AI zur Realisierung eines MP3—Players auf einem Engeräte mit niedrigerer Leistung bzw. Ausstattung, in die Datenverarbeitungseinheit DVl legen und ausführbar machen. Auf diese Weise kön- nen die von komplexen Anwendungsprogrammen zur Verfügung gestellten größtenteils alternativen Software-Module optimal in einer jeweiligen Hardware-Umgebung bzw. einem jeweiligen Hardware-System HS verteilt werden, wodurch jeweils eine optimale Performance ermöglicht wird.
Obwohl demzufolge beide Endgeräte mit einer Wiedergabe-Software für MP3-Audiodateien ausgestattet sind, wird insbesondere der MP3-Dekoder im leistungsfähigen Gerät als reiner Soft- ware-MP3-Dekoder in der Applikations-CPU abgelegt, während in dem leistungsschwachen Endgerät, welches jedoch eine hard- ware-unterstützte MP3-Komponente aufweist, lediglich ein ru¬ dimentärer Hardware-MP3-Dekoder abgelegt ist.
Darüber hinaus kann gemäß Figur 2 die Konfigurationseinheit KE auch über eine Benutzer-Eingabeeinheit 5 zur Realisierung einer zusätzlichen Benutzer-Steuerung der Auswerteeinheit 1 verfügen. Auf diese Weise erhält man einen erhöhten Benutzerkomfort und insbesondere eine erhöhte Flexibilität, wobei ein Benutzer entsprechend seinen jeweiligen Bedürfnissen eine automatische Auswahl und/oder Zuordnung von Software-Modulen beeinflussen kann.
Ferner kann die Konfigurationseinheit KE eine Software-Analyseeinheit 6 zum Analysieren eines Software-Systems SS bzw. der darin vorhandenen Software-Module A, B oder C aufweisen, die Software-Anforderungsdaten SW-MD erzeugt. Obwohl übli- cherweise moderne Anwendungsprogramme bzw. Software-Systeme
SS bereits derartige Software-Anforderungsdaten aufweisen und sozusagen mitliefern, können mit einer derartigen Software- Analyseeinheit auch herkömmliche bzw. „alte" Anwendungsprogramme, welche keine Software-Anforderungsdaten beinhalten, ausgewählt und zugeordnet werden.
Vorzugsweise werden für das Software-System bzw. die Software-Module des komplexen Anwendungsprogramms datenverarbei— tungseinheiten-unabhängige Programmiersprachen wie beispiels- weise JAVA™ verwendet, wodurch ein Auswählen und Zuordnen der Software-Module auf die unterschiedlichen Datenverarbeitungseinheiten besonders einfach realisiert werden kann. Grundsätzlich kann der Programmcode der Software-Module bzw. des Software-Systems auch datenverarbeitungseinheiten-spezifisch sein, wobei jedoch eine nicht dargestellte Anpassungseinheit zum Anpassen eines Programmcodes des Software-Moduls an die unterschiedlichen Datenverarbeitungseinheiten und/oder der unterschiedlichen Datenverarbeitungseinheiten an den Programmcode des Softwaremoduls vorgesehen sein muss. In diesem Zusammenhang wird insbesondere auf Übersetzungseinheiten zum Kompilieren (sogenannte Compiler) einer jeweiligen Software
für spezielle Hardware-Plattformen oder an die Realisierung von virtuellen Maschinen sowie Emulatoren hingewiesen.
Figur 7 zeigt eine vereinfachte Blockdarstellung eines mobilen Telekommunikationsendgeräts MT mit erfindungsgemäßer Konfigurationseinheit KE, wie sie typischerweise in einem Kommunikationsnetzwerk N eingebettet ist, wobei gleiche Bezugszeichen gleiche oder entsprechende Elemente bezeichnen und auf eine wiederholte Beschreibung nachfolgend verzichtet wird.
Gemäß Figur 7 weist das mobile Telekommunikationsendgerät MT wie beispielsweise ein Handy wiederum ein heterogenes Hardware-System HS mit unterschiedlichen Datenverarbeitungseinheiten DVl sowie weitern Hardware—Ressourcen wie beispiels— weise einer Speichereinheit Ml und einem Kommunikationskanal CCl auf. Wie vorstehend bereits beschrieben wurde, weist jede dieser Hardware-Ressourcen wiederum zugehörige Hardware-Kenndaten M-MD, CC-MD und DV-MD zur Beschreibung der jeweiligen vorhandenen Hardware-Ressource auf. Das mobile Telekommunika- tionsendgerät MT ist über ein Telekommunikationsnetzwerk N (z.B. GSM oder UMTS) mit beispielsweise einem Download-Server DS im Netzwerk N verbunden, der eine Vielzahl von komplexen Anwendungsprogrammen bzw. zugehörige Software-Module A mit zugehörigen Software-Anforderungsdaten SW-MD zur Verfügung stellt, ill nunmehr ein Benutzer ein neues Programm über das Netzwerk N auf seinem mobilen Telekommunikationsendgerät MT installieren, so werden zunächst unter Berücksichtigung der über das Netzwerk zur Verfügung gestellten Software-Anforderungsdaten und der im Endgerät vorliegenden Hardware- Kenndaten entsprechende Konfigurationsparameter KP ermittelt und diese an einen Download-Manager DM weitergegeben. Unter Verwendung des Download-Managers DM, der im Wesentlichen einer erweiterten Software-Auswahleinheit 4 entspricht, können nunmehr auch über ein Netzwerk N zur Verfügung gestellte Software-Module heruntergeladen und im Hardware-System optimal verteilt werden. Auf diese Weise kann ein Download-Server DS mit einem einzigen komplexen Anwendungsprogramm SS eine
Vielzahl von unterschiedlichen mobilen Telekommunikationsendgeräten MT hinsichtlich gewünschter Software-Module versorgen. Ein Software-Entwicklungsaufwand kann dadurch wesentlich verringert werden.
Obwohl Figur 7 ein in ein Telekommunikationsnetzwerk N eingebettetes mobiles Telekommunikationsendgerät MT mit erfindungsgemäßer Konfigurationseinheit beschreibt, kann sich die erfindungsgemäße Kon igurationseinheit auch in einem Entwick- lungstool für heterogene Hardware-Systeme befinden, wodurch ein Entwicklungsaufwand wesentlich verringert werden kann.
Figur 8 zeigt ein vereinfachtes Flussdiagramm zur Veranschaulichung wesentlicher Schritte bei der- Durchführung des Ver— fahrens zur Software-Verwaltung in einem heterogenen Hardware-System.
Nach einem Start in Schritt SO kann in einem Schritt Sl zunächst eine Analyse des Software-Systems SS zum Erzeugen von Software-Anforderungsdaten durchgeführt werden, wodurch auch' Software-Module bzw. Anwendungsprogramme, welche keinen derartigen Anforderungsdaten aufweisen, weiter verarbeitet werden können .
In einem weiteren optionalen Schritt S2 kann in ähnlicher
Weise eine Analyse des Hardware-Systems HS zum Erzeugen von Hardware-Kenndaten durchgeführt werden.
In einem Schritt S3 erfolgt nunmehr ein Auswerten der vorste- hend beschriebenen Hardware-Kenndaten, die die vorhandenen Hardware-Ressourcen des heterogenen Hardware-Systems beschreiben, sowie der Software-Anforderungsdaten, die die von den Software-Modulen benötigten Hardware-Ressourcen beschreiben. Als Auswerteergebnis werden hierbei Konfigurationspara- meter KP, wie vorstehend beschrieben wurde, erzeugt.
In einem Schritt S4 kann anschließend ein Auswählen von Software-Modulen aus einer Vielzahl von alternativen Software- Modulen AI, A2, Bl, B2 des Anwendungsprogramms in Abhängigkeit von den Konfigurationsparametern KP der Auswerteeinheit 1 durchgeführt werden, wobei in einem Schritt S5 ein Verteilen der zur Verfügung stehenden Software-Module in Abhängigkeit von den Konfigurationsparametern KP auf die unterschiedlichen Datenverarbeitungseinheiten im Hardware-System erfolgt.
Abschließend wird in einem Schritt S6 die im Hardware-System verteilte Software ausführbar gemacht und letztendlich die Hardware-Konfiguration bzw. Software-Implementierung abgeschlossen. Das Verfahren endet in Schritt S7.
Wie vorstehend bereits beschrieben wurde, kann vor dem Auswerten in Schritt S3 wiederum in Abhängigkeit von einer Test- Zuordnung der Software-Module im Hardware-System ein Hardware-Optimierungsdatensatz erzeugt werden, wobei im Schritt S3 die Konfigurationsparameter ferner in Abhängigkeit von den erzeugten Hardware—Optimierungsdaten erzeugt werden.
Auf diese Weise erhält man ein Verfahren zur Verwaltung von Software-Modulen, welches auch bei unterschiedlichen Hard- are-Systemen jeweils eine optimale Platzierung der Software auf den zur Verfügung stehenden Hardware—Ressourcen ermöglicht. Ferner kann dadurch ein Aufwand für eine Software- Implementierung während einer Entwicklungsphase für ein Gerät bzw. Gesamtsystem verringert werden, wodurch sich die Kosten reduzieren. Schließlich ergibt sich auch ein erhöhter Benutzerkomfort, da ein üblicherweise mühseliger Abgleich von jeweils vorgegebenen Software-Anforderungen mit jeweils zur Verfügung stehenden Endgeräte- bzw. Hardware-Ressourcen entfällt.
Die Erfindung wurde vorstehend anhand eines mobilen Telekommunikationsendgeräts sowie eines Entwicklungstools für hete-
rogene Hardware-Systeme beschrieben. Sie ist jedoch nicht darauf beschränkt und umfasst in gleicher Weise auch weitere Geräte, in denen komplexe Software-Systeme in heterogene Hardware-Systeme abgebildet werden müssen.