DE602004011974T2 - Abbildung von dynamischen link-bibliotheken in einer datenverarbeitungseinrichtung - Google Patents

Abbildung von dynamischen link-bibliotheken in einer datenverarbeitungseinrichtung Download PDF

Info

Publication number
DE602004011974T2
DE602004011974T2 DE602004011974T DE602004011974T DE602004011974T2 DE 602004011974 T2 DE602004011974 T2 DE 602004011974T2 DE 602004011974 T DE602004011974 T DE 602004011974T DE 602004011974 T DE602004011974 T DE 602004011974T DE 602004011974 T2 DE602004011974 T2 DE 602004011974T2
Authority
DE
Germany
Prior art keywords
dll
platform
functions
extension
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602004011974T
Other languages
English (en)
Other versions
DE602004011974D1 (de
Inventor
Andrew Thoelke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Symbian Software Ltd
Original Assignee
Symbian Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of DE602004011974D1 publication Critical patent/DE602004011974D1/de
Application granted granted Critical
Publication of DE602004011974T2 publication Critical patent/DE602004011974T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Vehicle Body Suspensions (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Zugreifen auf Daten in einer Rechenvorrichtung und insbesondere ein Verfahren zum Zugreifen auf Daten, die in einer dynamischen Verknüpfungsbibliothek (dynamik links library) in der Rechenvorrichtung aufbewahrt werden. Die vorliegende Erfindung betrifft auch eine durch das Verfahren gesteuerte Rechenvorrichtung.
  • Der Ausdruck Rechenvorrichtung, wie er hier verwendet wird, ist ausgedehnt auszulegen um irgendeine Form von elektrischer Vorrichtung abzudecken und schließt Datenaufzeichnungsvorrichtungen wie eine digitale Standbild- oder Videokamera irgendeines Formfaktors, Computer irgendwelcher Arten oder Formen einschließlich handhaltbaren und Personalcomputern, und Kommunikationsvorrichtungen irgendeines Formfaktors einschließlich Mobiltelefonen, Smart-Telefonen, Kommunikatoren, die Kommunikationen, Bildaufzeichnungen und/oder Wiedergabe und Rechenfunktionalität innerhalb einer einzelnen Vorrichtung verbinden, und irgendwelche Arten von drahtlosen und verdrahteten Informationsvorrichtungen ein.
  • Die meisten Rechenvorrichtungen arbeiten gesteuert durch ein Betriebssystem. Das Betriebssystem kann als die Software betrachtet werden, die allen Programmen ermöglicht, auf der Rechenvorrichtung abzulaufen, und kann ein Schlüssel für eine größere Betriebseffizienz und leichtere Anwendungsentwicklung sein.
  • Ein Betriebssystem organisiert bzw. managt die Hardware- und Software-Ressourcen der Rechenvorrichtung. Jene Ressourcen schließen solche Dinge wie die zentrale Verarbeitungseinheit (CPU), den Speicher, den Plattenspeicherraum falls eine Platte einen Teil der Rechenvorrichtung bildet oder im Zusammenhang mit ihr verwendet wird, ein. Als solches stellt das Betriebssystem eine stabile konsistente Art für auf der Rechenvorrichtung ablaufende Anwendungen bereit, um die Hardware-Ressourcen der Rechenvorrichtung zu handhaben ohne dass die Anwendung alle Details der physikalisch für die Hardware verfügbaren Ressourcen kennen muss.
  • Diese Aufgabe des Managens der Hardware- und Software-Ressourcen ist sehr wichtig, weil verschiedene Programme und Eingabeverfahren sich um die Aufmerksamkeit der CPU bemühen, und Speicher, dauerhafte Speicher und Eingabe/Ausgabe-Ressourcen (I/O-Ressourcen) für ihre eigenen Zwecke wünschen. In dieser Eigenschaft stellt das Betriebssystem sicher, dass jedes Anwendungsprogramm mit den nötigen Ressourcen versehen wird aber schenkt immer den der Vorrichtung verfügbaren endlichen physikalischen Ressourcen angemessene Beachtung. Ein Anwendungsprogramm kann als ein vollständiges, eigenständiges Programm betrachtet werden, das unmittelbar für den Benutzer der Vorrichtung eine spezifische Funktion ausführt.
  • Eine andere Aufgabe, die durch das Betriebssystem ausgeführt werden kann, ist die des Bereitstellens einer konsistenten Anwendungsprogramm-Schnittstelle oder ausführbaren Schnittstelle (API). Dies ist insbesondere wichtig, wenn es nicht mehr als einen speziellen Typ von Computer gibt, der das Betriebssystem verwendet, oder wenn die den Computer bildende Hardware dauernd offen für Veränderungen ist. Dies ist insbesondere der Fall, wenn das Kernbetriebssystem einige unterschiedliche Benutzer hat wie es typischerweise bei Computervorrichtungen in der Form von Drahtloskommunikationsvorrichtungen wie Smart-Telefonen auftreten kann.
  • Bei jenen Vorrichtungen ist es für verschiedene Vorrichtungshersteller und Vorrichtungslieferanten nicht unüblich, gewisse Komponenten eines Kernbetriebssystems als gemeinsame Komponenten zu verwenden, aber andere Komponenten des Kernbetriebssystems auf ihre jeweiligen Vorrichtungserfordernisse zuzuschneiden. Es wird betont, dass eine Unterscheidung zwischen einem Anwendungsprogramm und einem Betriebssystem ist, dass Anwendungen im "Benutzermodus" (nicht-privilegierten Modus) laufen während ein Betriebssysteme und zugehörige Hilfsprogramme gewöhnlich im "Überwachermodus" (Privilegiertenmodus) ablaufen. Demnach gibt es selbst in dem obigen Smart-Telefonbeispiel gewisse wichtige Komponenten des Betriebssystems, die häufig als Kernel-Komponenten bezeichnet werden, die ausschließlich im "Überwachermodus" bewahrt werden.
  • Eine konsistente Anwendungsprogramm-Schnittstelle (API bzw. Application Program Interface) ermöglicht es einem Anwendungsprogramm für eine Rechenvorrichtung, auf einer anderen Rechenvorrichtung desselben Typs abzulaufen, obwohl der Speicherumfang oder die Speicherqualität auf beiden Vorrichtungen unterschiedlich sind. Selbst wenn eine spezielle Rechenvorrichtung einzigartig ist, kann das Betriebssystem sicherstellen, dass Anwendungsprogramme weiterhin ablaufen können, wenn Hardware-Erweiterungen und Aktualisierungen vorgenommen werden, weil das Betriebssystem und nicht das Anwendungsprogramm für das Handhaben bzw. Managen der Hardware und der Verteilung ihrer Ressourcen zuständig ist.
  • Um die effiziente Nutzung der Vorrichtungsressourcen fortzuführen, können gewisse Funktionen und Module, die für eine Anzahl von Anwendungsprogrammen gemeinsam sind, in der Form einer Bibliothek gespeichert werden, so dass jene Funktionen und Module nur einmal gespeichert werden und nicht in jedem der Anwendungsprogramme, mit dem sie benutzt werden, repliziert werden. Die Inhalte der Bibliothek werden demnach selektiv mit den Anwendungsprogrammen verknüpft, wenn jene geladen werden und ablaufen statt dass sie innerhalb der individuellen Anwendungsprogramme selbst kompiliert werden. Es folgt, dass derselbe Block von Bibliothekscode, der eine Funktion oder ein Modul repräsentiert, zwischen verschiedenen Aufgaben geteilt werden kann bzw. gemeinsam benutzt werden kann, um auf der Vorrichtung abzulaufen statt dass jede Aufgabe Kopien der Routinen, die sie verwendet, enthält.
  • Jene Bibliotheken werden dynamisch mit den Anwendungsprogrammen verknüpft wenn die Programme ablaufen und demnach sind Bibliotheken allgemein als dynamische Verknüpfungs-Bibliotheken (DLLs, vom englischsprachigen Ausdruck: dynamic link libraries) bekannt. Demnach sehen die meisten modernen Computerbetriebssysteme eine dynamische Verknüpfungs-Bibliothekseinrichtung vor, die das Bereitstellen gewisser ausführbarer Prozeduren und Funktionen in Form einer Bibliothek ermöglichen, die getrennt ist von den Anwendungsprogrammen, die auf der Rechenvorrichtung ausgeführt werden. Typischerweise ist ein Anwendungsprogramm dynamisch mit der Bibliothek in Echtzeit verknüpft, so dass das Anwendungsprogramm ein oder mehrere der Prozeduren und Funktionen, die durch die Bibliothek exportiert sind, aufrufen kann. Exportierte Prozeduren werden allgemein als Eintrittspunkte in eine Bibliothek bezeichnet.
  • Anders als ein reguläres Anwendungsprogramm, das allgemein von Beginn an ausgeführt wird, kann in eine DLL an irgendeinem Eintrittspunkt eingetreten werden. Es gibt zwei Hauptarten, diese Eintrittspunkte in eine DLL zu identifizieren. Die erste Option ist, auf die Eintrittspunkte durch Namen Bezug zu nehmen. Die zweite Option ist, auf die Eintrittspunkte durch Ordinalzahlen Bezug zu nehmen. Diese letztere Option wird häufig als Funktionsordinalabbildung oder Funktionsordinalverknüpfung bezeichnet. Namen sind potentiell lang verglichen mit Ordinalzahlen und erfordern zusätzlichen Code für ihre Definition. Daher wird die Verwendung von Namen allgemein als Verschwendung von Nurlesespeicher-Ressourcen (ROM) und Ressourcen von Speicher mit wahlfreiem Zugriff (RAM-Ressourcen) der Rechenvorrichtung wenn verglichen mit Ordinalzahlen betrachtet. Ordinalverknüpfung der Zugangspunkte wird demnach in gewissen Betriebssystemen vorgezogen und speziell in jenen zur Verwendung in Smart-Telefonen, weil jene Arten von Rechenvorrichtung sehr eingeschränkte physikalische Ressourcen haben, verglichen mit jenen, die in Desktop- oder tragbaren PC-Vorrichtungen verfügbar sind, und demnach die effiziente Nutzung von Code von äußerster Wichtigkeit ist.
  • DLLs stellen daher eine Weise bereit, durch die Anwendungsprogramme in modularem Format bereitgestellt werden können, so dass die Funktionalität leichter aktualisiert und wiederverwendet werden kann. Sie kann auch beim Reduzieren von Speicherüberhang helfen, wenn einige Anwendungen gleichzeitig dieselbe Funktionalität verwenden, weil sie obwohl jede Anwendung mit einer Kopie der Daten versehen ist, den Code teilen können. Zudem ermöglicht es das dynamische Verknüpfen einem Modul, nur die Information, die zum Lokalisieren einer exportierten DLL-Funktion zum Zeitpunkt des Ladens oder des Ablaufenlassens erforderlich ist, einzuschließen.
  • Es gibt ein zunehmendes Erfordernis für Betriebssysteme, eine Kombination an Kompatibilität mit Kundenspezifigkeit bereitzustellen. Dies ist insbesondere der Fall beim Smart-Telefon-Betriebssystemen wie dem Betriebssystem Symbian OS (Marke), das von Symbian Limited, London, England, bereitgestellt wird. Typischerweise wird ein solches Betriebssystem Handapparateherstellern zugeführt, die darauf folgend zusätzliche Vorrichtungsfunktionalität für den durch das Betriebssystem gesteuerten Betrieb vorsehen. Dies bedeutet, dass ein Betriebssystem dieses Typs binäre Kompatibilität in ihren APIs aufrecht erhalten muss während es gleichzeitig zulässt, dass abgeleitete Plattformen und Produkte innovative und unterscheidende Funktionalität zu jenen APIs hinzufügen, um das Betriebssystem kundenspezifisch zu gestalten für die Erfordernisse der jeweiligen Handapparatehersteller.
  • Mit dem Koordinieren der DLL-Eintrittspunkte gehen jedoch Schwierigkeiten einher, wenn ein Betriebssystem dieses Typs sich von einer Ausgabe zu der nächsten weiterentwickeln.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren des Betreibens einer Rechenvorrichtung mit einem Betriebssystem und einer dynamischen Verknüpfungsbibliothek bereitgestellt, die eine Vielzahl von Funktionen enthält, auf die ein ausführbares Programm zugreifen kann, dadurch gekennzeichnet, dass jede Funktion in der dynamischen Verknüpfungsbibliothek einer Ordinalzahl zugeordnet ist und das Verfahren umfasst:
    Bereitstellen einer dynamischen Verknüpfungsbibliothek als einen ersten Teil und einen Erweiterungsteil, wobei der erste Teil und der Erweiterungsteil jeweils eine oder mehrere der Vielzahl von Funktionen enthalten; Veranlassen des ausführbaren Programms, mit Hilfe der zugeordneten Ordinalzahlen direkt zu Funktionen in dem ersten Teil Verknüpfungen vorzunehmen; und Veranlassen des ausführbaren Programms, indirekt über eine weitere, zusätzliche Funktionen enthaltende Bibliothek zu Funktionen des Erweiterungsteils Verknüpfungen vorzunehmen.
  • Gemäß einem zweiten Aspekt der Erfindung wird eine Rechenvorrichtung bereitgestellt, die eingerichtet ist um in Übereinstimmung mit dem oben definierten Verfahren betrieben zu werden.
  • Gemäß einem dritten Aspekt der Erfindung wird eine Computersoftware bereitgestellt, die eingerichtet ist, um eine Rechenvorrichtung zu veranlassen, in Übereinstimmung mit dem oben definierten Verfahren zu arbeiten.
  • Bevorzugte Merkmale der Erfindung werden in den abhängigen Ansprüchen dargelegt.
  • Eine Ausführungsform der vorliegenden Erfindung wird nun in lediglich beispielhafter Weise unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen zeigt:
  • 1 schematisch ein Diagramm einer Smart-Telefonplattform-Weiterentwicklung;
  • 2 ein Diagramm zum schematischen Zeigen, wie ein Konflikt zwischen Ordinalzahlen einer DLL mit paralleler Plattformweiterentwicklung aufkommen kann;
  • 3 ein Diagramm zum schematischen Zeigen, wie eine Anwendung in einem Smart-Telefon auf Originalfunktionen von einer DLL zugreifen kann;
  • 4 ein Diagramm zum Zeigen, wie eine DLL in Übereinstimmung mit dem Verfahren der vorliegenden Erfindung bereitgestellt werden kann; und
  • 5 ein Diagramm zum Zeigen, wie eine Anwendung auf eine Funktion von einer modifizierten DLL unter Verwendung einer DLL-Erweiterung zugreifen kann, die in Übereinstimmung mit dem Verfahren der vorliegenden Erfindung bereitgestellt wird.
  • Bezug nehmend auf 1 wird ein Beispiel einer typischen Entwicklung eines Smart-Telefons gezeigt. Aus Gründen der Klarheit wird diese Entwicklung in der Form eines Familienbaums dargestellt. Die Figur zeigt einen kleinen Teil des Entwicklungs-"Familienbaums", aber der Schlüsselpunkt in Bezug auf dieses Beispiel ist, dass es nicht einen einzigen linearen Entwicklungspfad von einer Ausführung einer Einheit zu der nächsten gibt. Aus dem Beispiel der 1 kann gesehen werden, dass das Betriebssystem sich von der OS-Version X zu der OS-Version X + 1 entwickelt. Aber parallel hierzu entwickelt sich die Vorrichtungsplattform, die typischerweise die Vorrichtungsbenutzer-Schnittstelle sein kann, von der Plattform Y zu der Plattform Y + 1, wobei die Plattform Y auf der Betriebssystemsversion bzw. OS-Version X beruht und die Plattform Y + 1 auf der OS-Version X + 1 beruht. Das Produkt A entwickelt sich zu dem Produkt B und jene basieren beide auf Plattform Y. Das Produkt B entwickelt sich dann zu der Version 2 des Produkts B, aber diese basiert auf der Plattform Y + 1. Dies kommt daher, dass bei demselben Entwicklungslevel das Erfordernis zum Hinzufügen von Funktionalität zu der Basisplattform vorgelegen hat.
  • Es gibt ein zusätzliches Erfordernis des Aufrechterhaltens dieser Funktionalität in zukünftigen Versionen dieses Levels der Familie. Dies bedeutet, dass es mehrere Wege gibt, durch die das funktionale Wachstum auftreten kann. Beispielsweise muss ein spezielles Produkt zusätzliche Funktionalität von dem OS-Übergang, von dem Plattformübergang und von seinem Produktvorgänger übernehmen.
  • Mehrere Funktionsvererbungswege verursachen eine unmittelbare Plattformfragmentierung wenn das Betriebssystem zum Exportieren von Funktionen von der DLL ein Ordinalzahlen-Verknüpfungsschema verwendet. Bei diesem Schematyp wird jede von dem DLL exportierte Funktion sequentiell nummeriert. Eine Client-Anwendung der DLL ruft die Funktionen zum Exportieren durch diese Ordinalzahl auf. Das Nachschauen zwischen Funktionen und Ordinalzahlen kann durch eine Definitionsdatei (.DEF) der betreffenden Anwendung definiert sein. Dieses sequentielle Nummerierungsschema bedeutet jedoch, dass wenn zwei Parteien ohne voneinander zu wissen jeweilige Funktionshinzufügungen zu demselben API vornehmen, die Funktion, die durch jede Partei hinzugefügt wird, mit derselben Ordinalzahl versehen wird (am Ende des benutzten Ordinalzahlenbereichs). Dies bedeutet, dass Programmcode, der gegenüber dem DLL gebildet wird und durch eine erste der zwei Parteien (Partei Eins) modifiziert wird, diese Ordinalzahl verwenden wird, um auf die Funktionalität zuzugreifen, von der gedacht wird, dass sie bei der betreffenden Ordinalzahl in der Version der Plattform existiert, die durch die Partei Eins entwickelt worden ist.
  • Das Problem beginnt jedoch, wenn dieser Programmcode irgendeinmal gegen die Version der Plattform abläuft, die von der anderen der beiden Parteien (Partei Zwei) entwickelt worden ist, da die Funktion bei dieser Ordinalzahl, die durch die Partei Eins entwickelt worden ist, nicht dieselbe ist wie die Funktion bei derselben Ordinalzahl, wie sie von der Partei Zwei entwickelt worden ist. Sobald dieses Problem in einem herausgegebenen Produkt aufgetreten ist, gibt es keinen Weg, es zu korrigieren ohne die binäre Kompatibilität in der einen oder anderen Plattform zu zerstören. 2 zeigt, was vorkommt, wenn eine API unabhängig von zwei Parteien parallel erweitert wird, und wie der resultierende Ordinalzahlenraum nicht aufgelöst werden kann.
  • Die Benutzung von Mehrfachwegen der funktionalen Vererbung zeigt kein Problem, solange jede API einen einzelnen Vererbungsweg hat. In der Praxis bedeutet dies einen einzelnen Inhaber für jede API. Einem Inhaber ist es erlaubt, zu einer jeweiligen API hinzuzufügen; Niemandem sonst. Dies bedeutet, dass die API sich in einer linearen Weise weiterentwickelt. Wenn beispielsweise das Symbian OS (Marke) Betriebssystem als ein Beispiel genommen wird, würden DLLs, deren Inhaber Symbian ist, nur durch Symbian erweiterbar sein und würde nicht durch Entwickler von Derivat-Plattformen oder Produkten erweiterbar sein. In der Praxis ist dieses Ideal, niemandem außer dem Inhaber der Schnittstelle zu erlauben, Erweiterungen zu der Schnittstelle hinzuzufügen, nicht vereinbar mit dem zunehmenden Bedarf des Bereitstellens von einer Kundenanpassung von Plattformen und Produkten eines gemeinsamen Kernbetriebssystems.
  • Wegen des fortgesetzten Bedarfs, neue Produkte zu entwickeln und jene in dem kürzestmöglichen Zeitrahmen in den Markt zu bringen, ist es relativ üblich, dass verschiedene Produkte von einer ersten Partei entwickelt werden, jedoch Funktionalität zu Schnittstellen hinzugefügt werden, deren Inhaber eine oder mehrere Parteien sind. Beispielsweise könnte dies auftreten, wenn eine durch eine Partei entwickelte Plattform eine API zu einer oder mehreren Bibliotheken hinzufügt, die einer anderen Partei gehören, oder wenn ein Produkt eine API zu einer oder mehreren Plattform-Bibliotheken hinzufügt, das Problem ist in allen Fällen dasselbe.
  • Es wird betont, dass das Problem das ist, dass die Kompatibilität mit der zugrunde liegenden Plattform zerstört ist. In jedem Fall würde das Produkt dem derzeitigen Betriebssystem/der Benutzerschnittstellenplattform (OS/UI) kompatibel sein. Das Problem ist, dass wenn basierend auf einer späteren Version dieser OS/UI-Plattform, wenn die zukünftige Version des Produkts gemacht wird, diese nur entweder mit der neuen Version der Plattform oder der vorangehenden Version des Produkts kompatibel sein kann aber nicht mit beiden. Das Erfordernis ist jedoch, dass die Kompatibilität mit beiden wesentlich ist, um die Plattform nicht zu fragmentieren. Eine solche Fragmentierung würde das Betriebssystem stark schädigen und seine Wiederherstellung würde sehr schwierig werden.
  • Demnach kann ein Bereitsteller eines Betriebssystems (OS-Bereitsteller) sich einem Szenario gegenübersehen, in dem:
    • – der OS-Bereitsteller wesentliche Funktionalität zu seinen APIs in neuen Versionen des OS hinzufügt (in legitimierter Weise)
    • – Benutzerschnittstellen- bzw. UI-Plattformbereitsteller spürbare Funktionalität zu ihren APIs in neuen Versionen hinzufügen (in legitimierter Weise)
    • – Produkthersteller Funktionalitäten zu den OS- und UI-Plattform-APIs in ihren Produkten hinzufügen und dies ist nicht in unbegründeter Weise zu erwarten, weil jene Produkte eine Differenzierung und Flexibilität von der Plattform erfordern.
  • Weil jedoch die funktionalen Hinzufügungen durch jede der obigen Parteien am Ende des Ordinalzahlenbereichs zugeführt werden, werden die funktionalen Hinzufügungen des Produktherstellers in demselben Ordinal-Raum sein wie die UI-Plattformhinzufügungen, die von dem UI-Plattformbereitsteller vorgesehen werden, welche wiederum in demselben Ordinal-Raum sein werden wie die zusätzlichen Funktionalitäten, die von dem OS-Bereitsteller vorgesehen werden. Demnach gibt es ein Konfliktpotential innerhalb des Ordinal-Raums eines unbekannten Umfangs und von einer unbekannten Quelle. Der Grund, weshalb der Umfang unbekannt ist, ist dass ein Großteil der Arbeit, der an einer Plattform durch den Produkthersteller vorgenommen wird, um neue Produkte zu realisieren, nicht notwendigerweise für jeden der OS- oder UI-Plattformbereitsteller sichtbar ist.
  • In der Realität wird diese Situation nicht zerstörerisch bis zwei Produkte oder Software-Entwicklungswerkzeuge (SDKs bzw. Software Development Kits), durch die die Produkte entwickelt werden, im Markt mit Konflikt-Ordinalzahlen verfügbar werden. Bis zu dieser Zeit ist es möglich, Produkte und SDKs zu korrigieren, die noch nicht im Markt freigegeben werden.
  • Demnach versucht die vorliegende Erfindung, ein System bereitzustellen, das den Benutzer des Systems in die Lage versetzt, Funktionalitäten zu APIs in einer sicheren ausdehnbaren Weise hinzuzufügen ohne die zukünftige Kompatibilität zu gefährden. Auf diese Weise könnte eine dritte Partei Funktionalität zu einer existierenden API und insbesondere zu einer API, die durch eine Ordinalzahl verknüpft ist, in einer Weise hinzufügen, die die zukünftige Weiterentwicklung dieser API nicht gefährdet. Ein zweites Ziel ist, dass irgendwelche zukünftige Weiterentwicklung der Ursprungs-API, die nicht auftreten wird, die von der dritten Partei hinzugefügte Funktionalität nicht gefährden wird.
  • Die vorliegende Erfindung ist auf irgendeine Situation anwendbar, bei der eine dritte Partei Funktionalität zu einem existierenden API hinzufügen muss, welches nicht dieser Partei gehört. Es wird anwendbar, wenn der Inhaber einer API diese API ausdehnt weil durch Definition der Inhaber derjenige ist, der die API wartet. Die vorliegende Erfindung kann auch zum Entfernen weiteren Konfliktpotentials benutzt werden, wenn bereits Hinzufügungen zu einer API durch eine dritte Partei vorgenommen worden sind.
  • 3 zeigt eine Anwendungsverknüpfung zu Originalfunktionen (Original Functions), die gegenüber einer Bibliothekserweiterung (LIB) einer Plattform-DLL gespeichert werden. Die Anwendung verwendet die Funktionen, die in der DLL gespeichert werden, über die LIB-Datei-Ordinalzahlen. Wenn die Anwendung eine Originalfunktion 1 aufruft, wird eine Verknüpfung zu der Ordinalzahl 1 der Bibliothekserweiterung bereitgestellt, welche wiederum die durch die Originalfunktion1 bereitgestellte Funktionalität zur Benutzung durch eine Anwendung exportiert; und so weiter für die verbleibenden bei anderen Ordinalzahlen in der DLL gespeicherten Originalfunktionen. Dies ist ein bekanntes Muster von DLL-Verknüpfung und wird beispielsweise in dem Symbian OS (Marke) Betriebssystem verwendet.
  • 4 zeigt, wie ein Erweiterungs-DLL-Muster (Extension DLL) durch eine Anwendung für irgendwelche Produkthinzufügefunktionen verwendet werden kann, die zu den Originalfunktionen hinzugefügt worden sind, welche von der Plattform-DLL bereitgestellt werden. Diese Produkthinzufügungen werden von der Plattform-DLL über zusätzliche Ordinalzahlen 6 und 7 exportiert. Diese zusätzlichen Ordinalzahlen 6 und 7 sind jedoch nicht direkt mit der Anwendung verknüpft sondern über die Erweiterungs-DLL. Auf die Erweiterungs-DLL wird über eine Erweiterungs-Bibliothek zugegriffen, die die Ordinal-Adressen für die Erweiterungs-DLL bereit hält in ähnlicher Weise wie der Zugriffsweg für die Plattform-DLL. Mit der vorliegenden Erfindung ist es der Anwendung nicht erlaubt, die zusätzlichen Ordinalzahlen von der Plattform-DLL direkt zu benutzen. Aber, wie aus 4 gesehen werden kann, ist es der Anwendung erlaubt, die Originalfunktionen 1 bis 5 durch ihr direktes Exportieren von der Plattform-DLL zu benutzen. Dies gilt, weil die Originalfunktionen sowohl dem Betriebssystem als auch der Anwendung als von der DLL über jeweilige Ordinalzahlen 1 bis 5 zur Benutzung durch die Anwendung exportierbar bekannt sind.
  • Viele Betriebssysteme werden nun unter Verwendung eines Objekt-orientierten Programmiercodes wie z. B. C++ beschrieben. Im Zusammenhang mit einem solchen System ist eine bevorzugte Art, das Verfahren der vorliegenden Erfindung zu erlangen, die Produktzusatzfunktionen als private Mitglieder von Klassen zu implementieren. Dies bedeutet, dass der C++-Compiler den Client-Code zum Benutzen der Erweiterungs-DLL wirksam machen wird. Zudem ist es im Stand der Technik wohlbekannt, dass Änderungen zum ursprünglich durch eine andere Partei geschriebenen Code auf ein Minimum beschränkt sein sollten. Demnach braucht die Erweiterungs-DLL unter Einhaltung der üblichen Vorgehensweise dieser Technik folgend nicht nur als ein Adapter zum Verknüpfen der Plattform-DLL bereitgestellt zu werden sondern kann auch eingerichtet sein, um die Mehrzahl des Zusatzcodes zu enthalten, der zum Bereitstellen der Zusatzfunktionalität für die Anwendungsprogramme erforderlich ist. Zudem kann die Erweiterungs-DLL in einer Weise vorgesehen sein, dass sie nicht spezifisch ist für eine einzelne Plattform-DLL. Demnach ist zu sehen, dass eine einzelne "Product Extension"-DLL (Produkterweiterungs-DLL) in dem ROM der Rechenvorrichtung vorgesehen sein kann, aber diese einzelne Erweiterungs-DLL eingerichtet ist, um die Schnittstelle zu der zusätzlichen Funktionalität von mehr als einer und vielleicht selbst zu allen Plattform-DLLs vorzusehen. Daher wird betont, dass das Verfahren der vorliegenden Erfindung nicht auf das Bereitstellen einer jeweiligen Erweiterungs-DLL für jede Plattform-DLL beschränkt ist. Es folgt, dass ein Produkthersteller wählen kann, eine einzelne Erweiterungs-DLL zum Bereitstellen einer Verknüpfung zu einigen Plattform-DLLs hinzuzufügen, oder die zusätzliche Funktionalität (Erweiterungsfunktionen) durch Anordnen der Erweiterungs-DLL als eine tatsächliche Erweiterung zu einer existierenden Produkt-DLL vorgesehen sein kann.
  • Alternativ können die Erweiterungsfunktionen in einer Weise gruppiert sein, die keinen Zusammenhang mit der Anordnung der Ursprungsplattform-DLLs beinhaltet.
  • In der in 4 gezeigten Anordnung ist daher die Anwendung der dritten Partei mit den Ordinalzahlen 1 bis 5 Performance.lib, der Bibliothekserweiterung der Plattform-DLL, und die Ordinalzahlen 1 & 2 von der extension.lib, d. h. der Bibliothekserweiterung der Erweiterungs-DLL, verknüpft. Sofern es die Anwendung betrifft, sind die Ordinalzahlen 6 & 7 von Platform.lib nicht sichtbar. Als ein Ergebnis braucht das SDK (d. h., software development kit) einer dritten Partei für das Produkt nicht einmal die erweiterte Version von Platform.lib zu enthalten. Daher ist es mit der vorliegenden Erfindung möglich, die Ursprungsversion (Ordinalzahlen 1 bis 5) der Bibliothekserweiterung Platform.lib in dem SDK zu ersetzen und nur die erweiterte Version (Ordinalzahlen 1 bis 7) der Bibliothek für die Plattformentwicklung zu verwenden. Dies bedeutet, dass es für durch die dritte Partei erzeugten Code keine Möglichkeit gibt, die zusätzlichen Ordinalzahlen 6 und 7 zu verwenden.
  • 5 zeigt eine spätere Version der Plattform, wenn der Inhaber der Plattform-DLL irgendwelche weitere Kernfunktionalität zu der API der Plattform-DLL hinzugefügt hat. In diesem Fall sind Ordinalzahlen 6 & 7 nun durch den Inhaber beim Hinzufügen der neuen Funktionen verwendet worden. Es würde zu Problemen führen, wenn die Anwendung, die zu dieser Platform-DLL verknüpft ist, Produkthinzufügungen (Product Addition) 1 und 2 bei jenen Ordinalzahlen erwarten würde, wie in der in 4 gezeigten Plattformversion, weil Ordinalzahlen 6 und 7 nun jeweils zum Exportieren von Inhaberhinzufügungen (Owner Additions) 1 und 2 verwendet werden. In diesem Fall werden die Probleme jedoch vermieden, da die Produkthinzufügefunktionen Produkthinzufügung 1 und 2 immer über die Erweiterungs-DLL aufgerufen werden. Demnach ist es für jene Funktionen akzeptabel, sich jeweils zu einer abweichenden Ordinalposition zu bewegen. In 5 werden Produkthinzufügungen jeweils von Ordinalzahlen 6 & 7 zu Ordinalzahlen 8 & 9 bewegt. Die einzige Komponente des Systems, die zu den Ordinalzahlen für die Produkthinzufügungen 1 und 2 verknüpft ist, ist die Erweiterungs-DLL und demnach muss diese neu aufgebaut werden. Es sind keine Code-Änderungen erforderlich, sondern lediglich eine Neuverknüpfung, um die Erweiterungs-DLL auf die neuen Ordinal-Positionen 8 und 9 zu verweisen, die für das Exportieren der Produkthinzufügungen 1 und 2 zu der Anwendung verwendet werden. Weil der Anwendungscode der dritten Partei zu der Bibliothekserweiterung extension.lib verknüpft und jene Ordinalzahlen dieselben bleiben, braucht der Code der dritten Partei nicht neu aufgebaut zu werden.
  • Ein Beispiel von Programmcode zum Implementieren der Ausführungsform der vorliegenden Erfindung, wie in 5 gezeigt, kann der Folgende sein. Es wird darauf hingewiesen, dass das folgende Beispiel eine relativ einfache Angabe davon ist, wie der Quellencode zum Implementieren der vorliegenden Erfindung erzielt werden kann.
  • Der folgende Code-Auszug zeigt, wie eine Funktion zu einer Header-Datei einer Plattform DLL hinzugefügt werden könnte. In diesem Beispiel werden zwei Funktionen zu dem Header hinzugefügt. Die öffentliche Erweiterungsfunktion ExtensionFunction wird in der Erweiterungs-DLL bzw. Extension.DLL implementiert. Sie wird demnach nicht von Platform.dll exportiert, sondern von Extension.dll. Die private DoExtensionFunction wird in der Platform-DLL implementiert und demnach wird sie von der Plattform-DLL exportiert. Diese Funktion ist privat gemacht, so dass der Compiler den Code einer dritten Partei davon abhält, diese Funktion durch ihren Ordinalzahlenexport aufzurufen.
    Figure 00160001
  • Die Implementierung in der Plattform DLL dient dem Hinzufügen des Codes für DoExtensionFunction. Dies sollte das Minimum an Code enthalten, der für diese Erweiterungsfunktion, die in der DLL einzuschließen ist, erforderlich ist, so dass der Umfang der erforderlichen Änderung minimiert wird. Diese Funktion wird in Platform.lib exportiert.
    Figure 00170001
  • Die Implementierung in der extension.dll dient hauptsächlich dem Zulässigmachen eines Rufs durch die private DoExtensionFunction in der Plattform-DLL. DoExtensionFunction ist privat, so dass sie nur innerhalb derselben Klasse aufgerufen werden kann. Beachte, dass das Aufrufen von DoExtensionFunction umgeben wird von anderem Code, der nicht in der Plattform-dll sein muss und demnach hier implementiert ist zum Minimieren des Einflusses auf die Plattform-DLL.
    Figure 00170002
  • Vorzugsweise sollte der Code auch sicherstellen, dass nur essentielle Änderungen zu der Plattform-DLL vorgenommen werden. Daher sollte die gesamte übrige Funktionalität vorzugsweise in der Erweiterungs-DLL implementiert werden. Dies liefert den zusätzlichen Vorteil, dass die Gefahr des Zusammenprallens von Funktionalität, welche von aufeinander folgenden Änderungen an der Plattform herrühren, verringert wird und demnach eine zukünftige Integration näherer Plattformen weniger schwierig ist.
  • Auch wenn irgendwelche Erweiterungsfunktionen in der Plattform-DLL vorgesehen sind, sollten diese vorzugsweise als private Funktionen ausgestaltet werden. Dies macht es schwieriger für eine dritte Partei, versehentlich eine Erweiterungsfunktion in der Original-API zu verwenden statt in der Erweiterungs-DLL. Der Compiler wird dann dabei helfen, die Regel, die eingerichtet worden ist, durchzusetzen.
  • Zudem wird auch vorgezogen, dass ein öffentlich freigegebenes SDK nur Ursprungs-LIB-Dateien wie zugeführt einschließen sollte. Dies würde bedeuten, dass der Code einer dritten Partei nicht möglicherweise irgendwelche Plattformzusatzordinalzahlen aufrufen könnte, da sie nicht in den LIB-Dateien vorliegen. Eine dritte Partei würde daher keine Wahl haben, als auf die Erweiterungsfunktionalität über die Erweiterungs-DLL zuzugreifen und demnach würden keine Kompatibilitätsprobleme mit zukünftigen Plattformen auftreten.
  • Durch Privatmachen von Erweiterungsfunktionen und durch das Ausschließen der modifizierten Bibliotheken von dem SDK wird verhindert, dass Code einer dritten Partei die von dem Bereitsteller der Plattform-DLL erstellten Produktzusatzfunktionen aufruft. Es ist jedoch auch vorzuziehen, sicherzustellen, dass der ROM-Code innerhalb einer Vorrichtung ebenfalls die Erweiterungs-DLLs verwendet. Demnach müssen beim Einschränken des SDK auf die Ursprungs- LIB-Dateien nicht nur dritte Parteien die Erweiterungs-DLL verwenden, um auf die Zusatzfunktionen zuzugreifen, sondern der gesamte Code, d. h., der ROM-Code, der nachfolgend in die Vorrichtung eingearbeitet wird. Obwohl ROM-Code zu einigen Zukunftszeitpunkten gegenüber neuen LIB-Dateien neu aufgebaut werden kann, ist es vorzuziehen und höchst wünschenswert, die binäre Kompatibilität dort, wo es möglich ist und jederzeit während der Lebensdauer irgendeiner speziellen Vorrichtung zu maximieren. Dem folgt, dass diese Kompatibilität ermöglicht wird, wenn die Erweiterungs-DLL der vorliegenden Erfindung in der obigen Weise verwendet wird.
  • Obwohl die vorliegende Erfindung unter Bezugnahme auf spezielle Ausführungsformen beschrieben worden ist, wird ersichtlich, dass Modifikationen vorgenommen werden können während der Schutzbereich der vorliegenden Erfindung, wie er durch die beiliegenden Ansprüche definiert wird, nicht verlassen wird. Obwohl beispielsweise das Verfahren der vorliegenden Erfindung unter Bezugnahme auf DLLs mit Ordinalzahlenverknüpfung beschrieben worden ist, kann es auch mit DLLs verwendet werden, die durch Namen verknüpft sind. Zudem können die Zusatzfunktionen zur Benutzung durch ein Anwendungsprogramm teilweise innerhalb der Plattform-DLL vorgesehen sein und teilweise innerhalb der Erweiterungs-DLL, und die Erweiterungs-DLL kann in diesem Fall eingerichtet sein, um ein Verknüpfen zu einer zusätzlichen Funktion in irgendeiner der Plattform-DLL oder der Erweiterungs-DLL selbst zu veranlassen. Zudem kann die vorliegende Erfindung, obwohl die vorliegende Erfindung unter Bezugnahme auf eine Rechenvorrichtung in Form eines Smart-Telefons beschrieben worden ist, auch in anderen Formen von Rechenvorrichtungen verwendet werden wie tragbaren oder Tisch-PCs, persönliche Digital-Assistenten (PDAs) oder allgemeinen Computersystemen.

Claims (7)

  1. Verfahren des Betreibens einer Rechenvorrichtung mit einem Betriebssystem und einer dynamischen Verknüpfungsbibliothek, die eine Vielzahl von Funktionen enthält, auf die ein ausführbares Programm zugreifen kann, dadurch gekennzeichnet, dass jede Funktion in der dynamischen Verknüpfungsbibliothek einer Ordinalzahl zugeordnet ist und das Verfahren umfasst: Bereitstellen einer dynamischen Verknüpfungsbibliothek als einen ersten Teil und einen Erweiterungsteil, wobei der erste Teil und der Erweiterungsteil jeweils eine oder mehrere der Vielzahl von Funktionen enthalten; Veranlassen des ausführbaren Programms, mit Hilfe der zugeordneten Ordinalzahlen direkt zu Funktionen in dem ersten Teil Verknüpfungen vorzunehmen; und Veranlassen des ausführbaren Programms, indirekt über eine weitere, zusätzliche Funktionen enthaltende Bibliothek zu Funktionen des Erweiterungsteils Verknüpfungen vorzunehmen.
  2. Verfahren nach Anspruch 1, wobei die weitere Bibliothek eingerichtet ist, um zu einer Vielzahl von dynamischen Verknüpfungsbibliotheken in der Rechenvorrichtung Verknüpfungen vorzunehmen.
  3. Verfahren nach Anspruch 1 oder 2, wobei auf einen Nur-Lesespeicher-(ROM-)Code zur Benutzung innerhalb der Rechenvorrichtung nur über die weitere Bibliothek zugreifbar ist.
  4. Verfahren nach irgendeinem der vorhergehenden Ansprüche, wobei Funktionen innerhalb des Erweiterungsteils als Privatfunktionen vorgesehen sind.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Funktionen in dem ersten Teil einen Teil des Betriebssystems bilden.
  6. Rechenvorrichtung, eingerichtet zum Arbeiten in Übereinstimmung mit einem Verfahren nach einem der Ansprüche 1 bis 5.
  7. Computerprogrammprodukt, eingerichtet, um eine Rechenvorrichtung zu veranlassen, in Übereinstimmung mit einem Verfahren nach einem der Ansprüche 1 bis 5 zu arbeiten.
DE602004011974T 2003-10-28 2004-10-28 Abbildung von dynamischen link-bibliotheken in einer datenverarbeitungseinrichtung Active DE602004011974T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0325145A GB2407655B (en) 2003-10-28 2003-10-28 Mapping of dynamic link libraries in a computing device
GB0325145 2003-10-28
PCT/GB2004/004551 WO2005052790A1 (en) 2003-10-28 2004-10-28 Mapping of dynamic link libraries in a computing device

Publications (2)

Publication Number Publication Date
DE602004011974D1 DE602004011974D1 (de) 2008-04-03
DE602004011974T2 true DE602004011974T2 (de) 2009-02-12

Family

ID=29725515

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004011974T Active DE602004011974T2 (de) 2003-10-28 2004-10-28 Abbildung von dynamischen link-bibliotheken in einer datenverarbeitungseinrichtung

Country Status (8)

Country Link
US (1) US7690007B2 (de)
EP (1) EP1678607B1 (de)
JP (1) JP2007510210A (de)
AT (1) ATE386976T1 (de)
DE (1) DE602004011974T2 (de)
ES (1) ES2302031T3 (de)
GB (1) GB2407655B (de)
WO (1) WO2005052790A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0607068D0 (en) * 2006-04-07 2006-05-17 Symbian Software Ltd Improvement relating to method of embedding software in computing devices
US9098316B2 (en) * 2008-09-22 2015-08-04 International Business Machines Corporation Routing function calls to specific-function dynamic link libraries in a general-function environment
JP6078515B2 (ja) * 2014-11-13 2017-02-08 京セラドキュメントソリューションズ株式会社 電子機器およびプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2143488C (en) * 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
US6052778A (en) * 1997-01-13 2000-04-18 International Business Machines Corporation Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs
JPH11110194A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 外部ライブラリ関数との結合方法ならびに同方法がプログラムされ記録される記録媒体
US6865735B1 (en) * 1997-10-07 2005-03-08 University Of Washington Process for rewriting executable content on a network server or desktop machine in order to enforce site specific properties
US6292843B1 (en) * 1998-01-16 2001-09-18 International Business Machines Corporation Quick loading of run time dynamic link library for OS/2
US6324687B1 (en) * 1998-12-03 2001-11-27 International Business Machines Corporation Method and apparatus to selectively control processing of a method in a java virtual machine
US6351779B1 (en) * 1999-03-12 2002-02-26 Agilent Technologies, Inc. Extension library to standard visa library for support of complex I/O functions
US6442752B1 (en) * 1999-08-26 2002-08-27 Unisys Corporation Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner
US6567093B1 (en) * 1999-09-09 2003-05-20 Novatek Microelectronics Corp. Single semiconductor chip for adapting video signals to display apparatus
GB2354851B (en) * 1999-10-01 2004-07-21 Ibm Web browser extension and method for processing data content of web pages
US6658658B1 (en) * 2000-02-17 2003-12-02 International Business Machines Corporation Implicit forwarding and resolving of a reference made by an importing module to an exporting module for a specified export
US6874148B1 (en) * 2000-06-14 2005-03-29 National Instruments Corporation System and method for exporting a graphical program to a shared library
FR2820221B1 (fr) * 2001-02-01 2004-08-20 Cimai Technology Procede et systeme pour gerer des executables a bibliotheques partagees
US6804709B2 (en) * 2001-02-20 2004-10-12 Microsoft Corporation System uses test controller to match different combination configuration capabilities of servers and clients and assign test cases for implementing distributed testing
US7191184B2 (en) * 2001-05-02 2007-03-13 National Instruments Corporation Optimized storage for measurement data
US7769823B2 (en) * 2001-09-28 2010-08-03 F5 Networks, Inc. Method and system for distributing requests for content
US7013423B2 (en) * 2002-06-27 2006-03-14 International Business Machines Corporation Omitting forwarder pages in a history list in a browser
US20040077309A1 (en) * 2002-10-18 2004-04-22 Richard Brass Wireless signal forwarder
US20040123308A1 (en) * 2002-12-20 2004-06-24 Siemens Information And Communication Networks, Inc. Hybird of implicit and explicit linkage of windows dynamic link labraries
US7210124B2 (en) * 2003-06-16 2007-04-24 Microsoft Corporation Reformulating resources with nodes reachable from defined entry points
US7308684B2 (en) * 2003-06-16 2007-12-11 Microsoft Corporation Classifying software and reformulating resources according to classifications
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing

Also Published As

Publication number Publication date
DE602004011974D1 (de) 2008-04-03
EP1678607B1 (de) 2008-02-20
WO2005052790A1 (en) 2005-06-09
ES2302031T3 (es) 2008-07-01
GB0325145D0 (en) 2003-12-03
US20070220508A1 (en) 2007-09-20
JP2007510210A (ja) 2007-04-19
GB2407655A (en) 2005-05-04
GB2407655B (en) 2009-08-05
US7690007B2 (en) 2010-03-30
ATE386976T1 (de) 2008-03-15
EP1678607A1 (de) 2006-07-12

Similar Documents

Publication Publication Date Title
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
DE60006410T2 (de) Verfahren und system zum verteilen von objektorientierten rechnerprogrammen
DE69400406T2 (de) System und methode zur lokalisierung von geteilten bibliotheken
DE69938218T2 (de) Vorrichtung und Verfahren zum Laden eines Java Anwendungsprogramms
DE69636887T2 (de) System und Verfahren,um verschiedenen Anbietern von Namen zu ermöglichen,sich dynamisch einer Namensföderation anzuschliessen
DE60317654T2 (de) Verfahren und vorrichtung zur veränderung eines kernmodules, um es auf mehreren kernversionen lauffähig zu machen
DE69819188T2 (de) Programmschnittstellenumsetzer für rechner mit mehreren umgebungen
DE60226019T2 (de) Verfahren und system zum steuern von ausführbaren dateien mit geteilten bibliotheken
DE69533530T2 (de) Verfahren und System zur dynamischen Aggregation von Objekten
DE69721634T2 (de) Computersystem und Verfahren für die Ausführung von mehreren Threads mit reduziertem Runtime-Speicherbedarf
DE69635337T2 (de) Erweiterbares und austauschbares system von netzwerkkomponenten
DE60103521T2 (de) Vorladen von klassen in einer datenverarbeitungseinrichtung ohne virtueller speicherverwalter
DE112013001711T5 (de) Optimieren von Unterroutine-Aufrufen auf der Grundlage der Architekturebene einer aufgerufenen Unterroutine
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE60102694T2 (de) Modulares computersystem und -verfahren
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE102004061597A1 (de) Betriebssystem, das den Lauf von Echtzeitprogrammen ermöglicht, Steuerungsverfahren hierfür sowie Verfahren zum Laden von DLLs
DE102004063573B4 (de) Bereitstellen eines flexiblen Schutzmodells in einem Computersystem durch Trennen eines Schutzes aus einer Computerprivilegebene
DE102009059939A1 (de) Verfahren zum Komprimieren von Bezeichnern
DE202016007893U1 (de) Systeme zum Entfernen von PLT-Stubs aus dynamisch verknüpften Binärdateien
DE102012217315A1 (de) Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung
DE102004057490B4 (de) Vorrichtung und Verfahren zum Verarbeiten eines Programmcodes
DE112017005015T5 (de) Verarbeiten von gleichgeordneten Aufrufen (SIBLING CALLS)
DE602004011974T2 (de) Abbildung von dynamischen link-bibliotheken in einer datenverarbeitungseinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition