DE102020115253A1 - Verfahren und einrichtung zum ausführen eines applets - Google Patents

Verfahren und einrichtung zum ausführen eines applets Download PDF

Info

Publication number
DE102020115253A1
DE102020115253A1 DE102020115253.1A DE102020115253A DE102020115253A1 DE 102020115253 A1 DE102020115253 A1 DE 102020115253A1 DE 102020115253 A DE102020115253 A DE 102020115253A DE 102020115253 A1 DE102020115253 A1 DE 102020115253A1
Authority
DE
Germany
Prior art keywords
applet
dynamic library
referenced
platform
dynamic
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.)
Pending
Application number
DE102020115253.1A
Other languages
English (en)
Inventor
Shaopeng Xu
Shuang Su
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.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing Co 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 Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Publication of DE102020115253A1 publication Critical patent/DE102020115253A1/de
Pending legal-status Critical Current

Links

Images

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
    • G06F9/44526Plug-ins; Add-ons
    • 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
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • 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/44568Immediately runnable code
    • G06F9/44584Portable applications, i.e. making applications self-contained, e.g. U3 standard

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)

Abstract

Ausführungsformen der vorliegenden Offenbarung offenbaren ein Verfahren und eine Einrichtung zum Ausführen eines Applets. Eine spezifische Ausführungsform des Verfahrens beinhaltet: Lesen einer Konfigurationsdatei als Reaktion auf die Ausgabe eines Applets an eine Hostanwendung, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist; Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform; und Ausführen eines Skriptcodes des Applets als Reaktion auf eine Ausführungsanweisung des Applets, um die dynamische Bibliothek aufzurufen, auf die das Applet verweist. Gemäß der Ausführungsform wird beim Ausführen des Applets die dynamische Bibliothek, auf die das Applet verweist, aus dem Sandbox-Verzeichnis und/oder der Applet-Plattform geladen, und die dynamische Bibliothek wird nicht mehr in das Applet-Paket integriert. Selbst wenn der dynamischen Bibliothek, auf die das Applet verweist, neue Merkmale hinzugefügt werden, ist es nicht erforderlich, die dynamische Bibliothek der neuesten Version in das Applet-Paket zu integrieren. Da sich der Code des Applet-Pakets nicht ändert, muss das Applet-Paket nicht erneut geprüft werden, wodurch die Konvergenzrate erheblich verbessert wird.

Description

  • TECHNISCHES GEBIET
  • Ausführungsformen der vorliegenden Offenbarung betreffen das Gebiet der Computertechnologie und insbesondere ein Verfahren und eine Einrichtung zum Ausführen eines Applets.
  • ALLGEMEINER STAND DER TECHNIK
  • Mit der kontinuierlichen Entwicklung der Computertechnologie entsteht sukzessive eine Vielzahl von Anwendungen. Ein Applet, eine Anwendung, die ohne Download und Installation verwendet werden kann, erhält in allen Lebensbereichen große Aufmerksamkeit.
  • Bei einem herkömmlichen Applet müssen Entwickler alle Servicemodule und -Logiken vollständig selbst entwickeln, und der Entwicklungsaufwand für das Applet ist hoch. Um den Aufwand für die Applet-Entwickler zu verringern und die Entwicklung des Applets zu erleichtern, können einige häufig verwendete APIs (Application Programming Interfaces - Anwendungsprogrammier-Schnittstellen), Komponenten, Seiten und dergleichen in Plug-Ins verkapselt werden, damit andere Applets direkt darauf verweisen können. Wenn ein bestimmtes Applet auf ein Plug-In verweisen soll, muss in einer Konfigurationsdatei nicht nur eine Kennung des Plug-Ins, sondern auch eine Version des Plug-Ins konfiguriert werden. Darüber hinaus muss das Plug-In auch in ein Applet-Paket integriert werden. Wenn das Applet ausgeführt wird, wird das im Applet-Paket integrierte Plug-In direkt verwendet. Wenn dem Plug-In einige neue Merkmale hinzugefügt werden und eine neue Version ausgegeben wird, muss zur Nutzung der neuen Merkmale im Applet die Version des Plug-ins in der Konfigurationsdatei manuell auf eine neueste Version geändert werden, und gleichzeitig wird das Plug-In der neuesten Version in das Applet-Paket integriert, und anschließend das neue Applet-Paket zur Prüfung eingereicht. Nachdem das neue Applet-Paket die Prüfung bestanden hat, wird ferner eine Zeitspanne für die Konvergenz benötigt; erst nach der Konvergenz, wenn das Applet ausgeführt wird, sieht der Benutzer die neuen Merkmale.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Offenbarung schlagen ein Verfahren und eine Einrichtung zum Ausführen eines Applets vor.
  • In einem ersten Aspekt schlagen die Ausführungsformen der vorliegenden Offenbarung ein Verfahren zum Ausführen eines Applets vor. Das Verfahren beinhaltet: Lesen, als Reaktion auf die Ausgabe eines Applets an eine Hostanwendung, einer Konfigurationsdatei, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist; Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform; und Ausführen eines Skriptcodes des Applets als Reaktion auf eine Ausführungsanweisung des Applets, um die dynamische Bibliothek aufzurufen, auf die das Applet verweist.
  • In einigen Ausführungsformen beinhaltet das Verfahren vor dem Lesen der Konfigurationsdatei zum Bestimmen der dynamischen Bibliothek, auf die das Applet verweist, ferner das Durchführen einer Signierung und einer Sicherheitsüberprüfung an dem Applet.
  • In einigen Ausführungsformen beinhaltet das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform: Bestimmen, für jede dynamische Bibliothek, auf die das Applet verweist, ob das Sandbox-Verzeichnis die dynamische Bibliothek speichert; und synchrones Herunterladen einer dynamischen Bibliothek einer neuesten Version von der Applet-Plattform und Laden der dynamischen Bibliothek der neuesten Version, wenn die dynamische Bibliothek nicht gespeichert ist.
  • In einigen Ausführungsformen beinhaltet das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform ferner: Bestimmen, ob eine Download-Dauer der dynamischen Bibliothek einen Ablaufzeitraum überschreitet, wenn das Sandbox-Verzeichnis die dynamische Bibliothek speichert; und synchrones Herunterladen der dynamischen Bibliothek der neuesten Version von der Applet-Plattform und Laden der dynamischen Bibliothek der neuesten Version, wenn die Download-Dauer den Ablaufzeitraum überschreitet.
  • In einigen Ausführungsformen beinhaltet das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform ferner: Laden der im Sandbox-Verzeichnis gespeicherten dynamischen Bibliothek, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet, oder wenn die Download-Dauer den Ablaufzeitraum überschreitet, die dynamische Bibliothek der neuesten Version jedoch nicht heruntergeladen werden kann.
  • In einigen Ausführungsformen beinhaltet das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform ferner: asynchrones Herunterladen der dynamischen Bibliothek der neuesten Version, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet und die dynamische Bibliothek der neuesten Version in der Applet-Plattform enthalten ist.
  • In einigen Ausführungsformen wird die heruntergeladene dynamische Bibliothek der neuesten Version im Sandbox-Verzeichnis gespeichert, eine Zeitüberschreitungszeit und Versionsinformationen der dynamischen Bibliothek werden in einer Datenbank gespeichert, und verschiedene Applets nutzen gemeinsam die dynamische Bibliothek im Sandbox-Verzeichnis.
  • In einigen Ausführungsformen beinhaltet das Verfahren ferner das Bestimmen, wenn ein Skriptcode einer Masterseite des Applets ausgeführt wird, einer dynamischen Bibliothek, auf die eine Slave-Seite des Applets verweist, und den Vorab-Download der dynamischen Bibliothek, auf die die Slave-Seite verweist, von der Applet-Plattform.
  • In einigen Ausführungsformen beinhaltet das Verfahren ferner das Übertragen eines Pfads des Sandbox-Verzeichnisses zu einem Front-end beim Springen zur Slave-Seite des Applets, um zu bewirken, dass das Front-end die dynamische Bibliothek, auf die die Seite verweist, vom Pfad vorab lädt.
  • In einigen Ausführungsformen wird die dynamische Bibliothek ausgegeben durch: Erfassen einer Kennung der dynamischen Bibliothek, die von einem Benutzer auf der Applet-Plattform registriert wurde; Erfassen eines Skripts, einer Komponente und einer Seite, die vom Benutzer unter Verwendung eines von der Applet-Plattform bereitgestellten Entwicklungstools entwickelt wurden; Verkapseln, wenn das Skript, die Komponente und die Seite erfolgreich kompiliert und debuggt wurden, des Skripts, der Komponente und der Seite, um die dynamische Bibliothek zu erhalten; und gleichzeitig Ausgeben der dynamischen Bibliothek, eines Muster-Applets zum Debuggen der dynamischen Bibliothek und eines Dokuments der dynamischen Bibliothek.
  • In einigen Ausführungsformen verweist das Applet auf die dynamische Bibliothek durch: Konfigurieren der Kennung der dynamischen Bibliothek, auf die das Applet verweist, in der Konfigurationsdatei; Deklarieren einer Nutzungskomponente der dynamischen Bibliothek, auf die das Applet verweist, in einer Auslagerungsdatei; Angeben einer Position und eines zugehörigen Attributs der dynamischen Bibliothek, auf die das Applet verweist, in einer Layoutdatei; und Aufrufen der dynamischen Bibliothek, auf die das Applet verweist, im Skriptcode des Applets.
  • In einem zweiten Aspekt schlagen die Ausführungsformen der vorliegenden Offenbarung eine Einrichtung zum Ausführen eines Applets vor. Die Einrichtung beinhaltet eine Leseeinheit, die konfiguriert ist für das Lesen, als Reaktion auf das Ausgeben eines Applets an eine Hostanwendung, einer Konfigurationsdatei, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist; eine Ladeeinheit, die konfiguriert ist für das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform; und eine Ausführungseinheit, die dafür konfiguriert ist, als Reaktion auf eine Ausführungsanweisung des Applets einen Skriptcode des Applets auszuführen, um die dynamische Bibliothek, auf die das Applet verweist, aufzurufen.
  • In einigen Ausführungsformen beinhaltet die Einrichtung ferner eine Verifizierungseinheit, die dafür konfiguriert ist, eine Signierung und eine Sicherheitsüberprüfung an dem Applet durchzuführen.
  • In einigen Ausführungsformen beinhaltet die Ladeeinheit: eine erste Bestimmungs-Untereinheit, die konfiguriert ist für das Bestimmen, für jede dynamische Bibliothek, auf die das Applet verweist, ob die dynamische Bibliothek im Sandbox-Verzeichnis gespeichert ist; und eine erste Lade-Untereinheit, die konfiguriert ist für das synchrone Herunterladen einer dynamischen Bibliothek einer neuesten Version von der Applet-Plattform und Laden der dynamischen Bibliothek der neuesten Version, wenn die dynamische Bibliothek nicht gespeichert ist.
  • In einigen Ausführungsformen beinhaltet die Ladeeinheit ferner: eine zweite Bestimmungs-Untereinheit, die konfiguriert ist für das Bestimmen, ob eine Download-Dauer der dynamischen Bibliothek einen Ablaufzeitraum überschreitet, wenn das Sandbox-Verzeichnis die dynamische Bibliothek speichert; und eine zweite Lade-Untereinheit, die konfiguriert ist für das synchrone Herunterladen der dynamischen Bibliothek der neuesten Version von der Applet-Plattform und Laden der dynamischen Bibliothek der neuesten Version, wenn die Download-Dauer den Ablaufzeitraum überschreitet.
  • In einigen Ausführungsformen beinhaltet die Ladeeinheit ferner: eine dritte Lade-Untereinheit, die konfiguriert ist für das Laden der im Sandbox-Verzeichnis gespeicherten dynamischen Bibliothek, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet, oder wenn die Download-Dauer den Ablaufzeitraum überschreitet, aber die dynamische Bibliothek der neuesten Version nicht heruntergeladen werden kann.
  • In einigen Ausführungsformen beinhaltet die Ladeeinheit ferner: eine asynchrone Download-Untereinheit, die konfiguriert ist für das asynchrone Herunterladen der dynamischen Bibliothek der neuesten Version, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet und die dynamische Bibliothek der neuesten Version in der Applet-Plattform enthalten ist.
  • In einigen Ausführungsformen wird die heruntergeladene dynamische Bibliothek der neuesten Version im Sandbox-Verzeichnis gespeichert, eine Zeitüberschreitungszeit und Versionsinformationen der dynamischen Bibliothek werden in einer Datenbank gespeichert, und verschiedene Applets nutzen gemeinsam die dynamische Bibliothek im Sandbox-Verzeichnis.
  • In einigen Ausführungsformen beinhaltet die Einrichtung ferner eine Vorab-Download-Einheit, die konfiguriert ist für das Bestimmen, wenn ein Skriptcode einer Masterseite des Applets ausgeführt wird, eine dynamische Bibliothek, auf die eine Slave-Seite des Applets verweist, und den Vorab-Download der dynamischen Bibliothek, auf die die Slave-Seite verweist, von der Applet-Plattform.
  • In einigen Ausführungsformen beinhaltet die Einrichtung ferner eine Vorab-Ladeeinheit, die dafür konfiguriert ist, beim Springen zur Slave-Seite des Applets einen Pfad des Sandbox-Verzeichnisses zu einem Front-end zu übertragen, um das Front-end zu veranlassen, die dynamische Bibliothek, auf die die Detailseite verweist, aus dem Pfad vorab zu laden.
  • In einigen Ausführungsformen wird die dynamische Bibliothek ausgegeben durch: Erfassen einer Kennung der dynamischen Bibliothek, die von einem Benutzer auf der Applet-Plattform registriert wurde; Erfassen eines Skripts, einer Komponente und einer Seite, die vom Benutzer unter Verwendung eines von der Applet-Plattform bereitgestellten Entwicklungstools entwickelt wurden; Verkapseln, wenn das Skript, die Komponente und die Seite erfolgreich kompiliert und debuggt wurden, des Skripts, der Komponente und der Seite, um die dynamische Bibliothek zu erhalten; und gleichzeitig Ausgeben der dynamischen Bibliothek, eines Muster-Applets zum Debuggen der dynamischen Bibliothek und eines Dokuments der dynamischen Bibliothek.
  • In einigen Ausführungsformen verweist das Applet auf die dynamische Bibliothek durch: Konfigurieren der Kennung der dynamischen Bibliothek, auf die das Applet verweist, in der Konfigurationsdatei; Deklarieren einer Nutzungskomponente der dynamischen Bibliothek, auf die das Applet verweist, in einer Auslagerungsdatei; Angeben einer Position und eines zugehörigen Attributs der dynamischen Bibliothek, auf die das Applet verweist, in einer Layoutdatei; und Aufrufen der dynamischen Bibliothek, auf die das Applet verweist, im Skriptcode des Applets.
  • In einem dritten Aspekt stellen die Ausführungsformen der vorliegenden Offenbarung eine elektronische Vorrichtung bereit. Die elektronische Vorrichtung beinhaltet einen oder mehrere Prozessoren; und eine Speichereinrichtung, die dafür konfiguriert ist, ein oder mehrere Programme zu speichern, wobei das eine oder die mehreren Programme, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, das Verfahren gemäß einer beliebigen Ausführungsform des ersten Aspekts zu implementieren.
  • In einem vierten Aspekt stellen die Ausführungsformen der vorliegenden Offenbarung ein computerlesbares Medium bereit, in dem ein Computerprogramm gespeichert ist, wobei das Programm, wenn es von einem Prozessor ausgeführt wird, das Verfahren gemäß einer beliebigen Ausführungsform des ersten Aspekts implementiert.
  • Gemäß dem in den Ausführungsformen der vorliegenden Offenbarung bereitgestellten Verfahren und der Einrichtung zum Ausführen eines Applets wird zuerst die Konfigurationsdatei gelesen, um als Reaktion auf das Ausgeben des Applets an die Hostanwendung die dynamische Bibliothek zu bestimmen, auf die das Applet verweist. Anschließend wird die dynamische Bibliothek, auf die das Applet verweist, aus dem Sandbox-Verzeichnis und/oder von der Applet-Plattform geladen.
  • Schließlich wird der Skriptcode des Applets ausgeführt, um die dynamische Bibliothek, auf die das Applet verweist, als Reaktion auf die Ausführungsanweisung des Applets aufzurufen. Wenn das Applet ausgeführt wird, wird die dynamische Bibliothek, auf die das Applet verweist, aus dem Sandbox-Verzeichnis und/oder von der Applet-Plattform geladen, und die dynamische Bibliothek ist nicht mehr in das Applet-Paket integriert. Selbst wenn der dynamischen Bibliothek, auf die das Applet verweist, neue Merkmale hinzugefügt werden, ist es nicht erforderlich, die dynamische Bibliothek der neuesten Version in das Applet-Paket zu integrieren. Da sich der Code des Applet-Pakets nicht ändert, muss das Applet-Paket nicht erneut geprüft werden, wodurch die Konvergenzrate erheblich verbessert wird. Darüber hinaus ist die dynamische Bibliothek nicht mehr in das Applet-Paket integriert und auch in Bezug auf Codes vom Applet-Paket getrennt, wodurch verhindert wird, dass der Entwickler den Code der dynamischen Bibliothek ändert oder die Kernimplementierung der dynamischen Bibliothek publik macht.
  • Figurenliste
  • Nach dem Lesen detaillierter Beschreibungen für nicht einschränkende Ausführungsformen, die in Bezug auf die folgenden beigefügten Zeichnungen angegeben sind, werden andere Merkmale, Ziele und Vorteile der vorliegenden Offenbarung offensichtlicher:
    • 1 ist eine beispielhafte Systemarchitektur, in der die vorliegende Offenbarung angewendet werden kann;
    • 2 ist ein Flussdiagramm eines Verfahrens zum Ausführen eines Applets gemäß einer Ausführungsform der vorliegenden Offenbarung;
    • 3 ist ein Flussdiagramm eines Verfahrens zum Ausführen eines Applets gemäß einer anderen Ausführungsform der vorliegenden Offenbarung;
    • 4 ist ein Diagramm einer Architektur, in der ein Applet ausgeführt wird;
    • 5 ist ein schematisches Strukturdiagramm einer Einrichtung zum Ausführen eines Applets gemäß einer Ausführungsform der vorliegenden Offenbarung; und
    • 6 ist ein schematisches Strukturdiagramm eines Computersystems, das zum Implementieren einer elektronischen Vorrichtung gemäß Ausführungsformen der vorliegenden Offenbarung angepasst ist.
  • DETAILBESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die vorliegende Offenbarung wird nachstehend weiter im Detail beschrieben, indem die begleitenden Zeichnungen und die Ausführungsformen kombiniert werden. Es versteht sich, dass die hierin beschriebenen spezifischen Ausführungsformen nur zur Erläuterung der relevanten Erfindung verwendet werden, und nicht, um die Erfindung einzuschränken. Zusätzlich sollte angemerkt werden, dass zur Vereinfachung der Beschreibung nur Teile, die sich auf die relevante Erfindung beziehen, in den beigefügten Zeichnungen gezeigt sind.
  • Es sollte auch beachtet werden, dass die Ausführungsformen in der vorliegenden Offenbarung und die Merkmale in den Ausführungsformen auf einer konfliktfreien Basis miteinander kombiniert werden können. Die vorliegende Offenbarung wird nachstehend unter Bezugnahme auf die beigefügten Zeichnungen und in Kombination mit den Ausführungsformen detailliert beschrieben.
  • 1 zeigt eine beispielhafte Systemarchitektur 100, in der ein Verfahren zum Ausführen eines Applets oder eine Einrichtung zum Ausführen eines Applets gemäß einer Ausführungsform der vorliegenden Offenbarung angewendet werden kann.
  • Wie in 1 gezeigt, kann die Systemarchitektur 100 Vorrichtungen 101, 102 und 103 und ein Netzwerk 104 enthalten. Das Netzwerk 104 dient als Medium, das eine Kommunikationsverbindung zwischen den Endgerätevorrichtungen 101, 102 und 103 bereitstellt. Das Netzwerk 104 kann verschiedene Arten von Verbindungen enthalten, beispielsweise drahtgebundene oder drahtlose Kommunikationsverbindungen oder optische Faserkabel.
  • Die Vorrichtungen 101, 102 und 103 können Hardwarevorrichtungen oder Software sein, die eine Netzwerkverbindung unterstützen, um verschiedene Netzwerkdienste bereitzustellen. Wenn es sich um Hardware handelt, können die Vorrichtungen verschiedene elektronische Vorrichtungen sein, einschließlich, aber nicht beschränkt auf ein Smartphone, einen Tablet-Computer, einen tragbaren Laptop-Computer, einen Desktop-Computer, einen Server und dergleichen. In diesem Fall können die Vorrichtungen, als Hardwarevorrichtungen, als dezentraler Cluster von Vorrichtungen implementiert sein, der aus einer Vielzahl von Vorrichtungen besteht, oder sie können als eine einzelne Vorrichtung implementiert sein. Als Software können die Vorrichtungen in den vorstehend aufgeführten elektronischen Vorrichtungen installiert sein. In diesem Fall können die Vorrichtungen als eine Vielzahl von Softwareteilen oder eine Vielzahl von Softwaremodulen (z. B. Softwareteilen oder Softwaremodulen zum Bereitstellen eines dezentralen Dienstes) implementiert sein oder können als ein einzelnes Softwareteil oder ein einzelnes Softwaremodul, das hier nicht speziell definiert wird, implementiert sein.
  • In der Praxis kann eine Vorrichtung einen entsprechenden Netzwerkdienst bereitstellen, indem eine entsprechende Client-Anwendung oder eine entsprechende serverseitige Anwendung installiert wird. Nach der Installation der Client-Anwendung kann die Vorrichtung als Client in einer Netzwerkkommunikation ausgeführt werden. Entsprechend kann die Vorrichtung nach der Installation der serverseitigen Anwendung als Serverseite in der Netzwerkkommunikation ausgeführt werden.
  • Beispielsweise sind in 1 die Vorrichtung 101 als Client und die Vorrichtungen 102 und 103 als Serverseiten ausgeführt. Beispielsweise kann die Vorrichtung 101 ein Client sein, auf dem eine Hostanwendung installiert ist, die Vorrichtung 102 kann eine Serverseite der Hostanwendung sein und die Vorrichtung 103 kann eine Serverseite eines Applets sein.
  • Es ist anzumerken, dass das in den Ausführungsformen der vorliegenden Offenbarung bereitgestellte Verfahren zum Ausführen eines Applets im Allgemeinen von der Vorrichtung 101 durchgeführt wird. Entsprechend ist die Einrichtung zum Ausführen eines Applets im Allgemeinen in der Vorrichtung 101 bereitgestellt.
  • Es versteht sich, dass die Nummern der Netzwerke und der Vorrichtungen in 1 nur zur Veranschaulichung dienen. Basierend auf den tatsächlichen Anforderungen kann eine beliebige Anzahl von Netzwerken und Vorrichtungen bereitgestellt sein.
  • Unter weiterer Bezugnahme auf 2 veranschaulicht 2 einen Ablauf 200 eines Verfahrens zum Ausführen eines Applets gemäß einer Ausführungsform der vorliegenden Offenbarung. Das Verfahren zum Ausführen eines Applets beinhaltet die folgenden Schritte:
    • Schritt 201 beinhaltet das Lesen einer Konfigurationsdatei als Reaktion auf das Ausgeben eines Applets an eine Hostanwendung, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist.
  • In dieser Ausführungsform kann, wenn das Applet an die Hostanwendung ausgegeben wird, ein Ausführungsorgan (z. B. die in 1 gezeigte Vorrichtung 101) des Verfahrens zum Ausführen eines Applets die Konfigurationsdatei lesen, um die dynamische Bibliothek zu bestimmen, auf die das Applet verweist.
  • Hier kann die Hostanwendung beispielsweise eine Clientanwendung sein, wie beispielsweise eine Sofortkommunikationsanwendung und eine Suchanwendung. Das Applet kann ein Anwendungsprogramm sein, das in der Hostanwendung ausgeführt wird. Die Ausführung des Applets ist abhängig von der Hostanwendung. Die Hostanwendung kann eine Vielzahl von Applets ausführen. Wenn ein Benutzer das Applet ausführen möchte, muss im Allgemeinen die Hostanwendung nach dem Applet durchsucht werden. Wenn die Suchergebnisseite das Applet enthält, wird das Applet an die Hostanwendung ausgegeben.
  • Hier kann die Konfigurationsdatei app.json sein. Jedes Applet entspricht einer Konfigurationsdatei, und die Konfigurationsdatei zeichnet die Kennung der dynamischen Bibliothek auf, auf die das entsprechende Applet verweist. Ein Applet kann auf eine Vielzahl von verschiedenen dynamischen Bibliotheken verweisen. Eine dynamische Bibliothek kann erhalten werden, indem ein Skript, eine Komponente, eine Seite und dergleichen, die üblicherweise und häufig bei der Entwicklung des Applets verwendet werden, verkapselt werden. Die Kennung der dynamischen Bibliothek kann beispielsweise der Name und/oder der Alias der dynamischen Bibliothek sein. Der Name der dynamischen Bibliothek ist auf einer Applet-Plattform eindeutig. Der Alias der dynamischen Bibliothek ist in einem gegebenen Applet eindeutig. Außerdem zeichnet die Konfigurationsdatei nicht mehr die Version der dynamischen Bibliothek auf, auf die das Applet verweist. Selbst wenn die Version aufgrund eines neu hinzugefügten Merkmals der dynamischen Bibliothek, auf die das Applet verweist, aktualisiert wird, muss die neueste Version der dynamischen Bibliothek, auf die das Applet verweist, nicht in der Konfigurationsdatei aktualisiert werden und es muss kein neues Applet-Paket geprüft werden, wodurch die Konvergenzrate erheblich verbessert wird.
  • In einigen alternativen Implementierungen dieser Ausführungsform kann die dynamische Bibliothek durch die folgenden Schritte ausgegeben werden:
    • Zunächst wird die Kennung der vom Benutzer auf der Applet-Plattform registrierten dynamischen Bibliothek erfasst.
  • Im Allgemeinen muss ein Entwickler beim Entwickeln einer dynamischen Bibliothek die Kennung der dynamischen Bibliothek auf der Applet-Plattform registrieren.
  • Anschließend werden ein Skript, eine Komponente und eine Seite erfasst, die vom Benutzer unter Verwendung eines von der Applet-Plattform bereitgestellten Entwicklungstools entwickelt wurden.
  • Im Allgemeinen stellt die Applet-Plattform das Entwicklungstool bereit, und der Entwickler kann das von der Applet-Plattform bereitgestellte Entwicklungstool verwenden, um das Skript (JS), die Komponente, die Seite und dergleichen zu entwickeln, die üblicherweise und häufig verwendet werden.
  • Wenn das Skript, die Komponente und die Seite erfolgreich kompiliert und debuggt wurden, werden zum Erhalten der dynamischen Bibliothek das Skript, die Komponente und die Seite verkapselt.
  • Im Allgemeinen müssen das Skript, die Komponente, die Seite und dergleichen kompiliert und debuggt werden. Nach dem Kompilieren und Debuggen werden das Skript, die Komponente, die Seite und dergleichen in die dynamische Bibliothek verkapselt. Darüber hinaus stellt die dynamische Bibliothek extern die API bereit, und das Applet implementiert den Verweis auf die dynamische Bibliothek durch Aufrufen der API der dynamischen Bibliothek.
  • Schließlich werden die dynamische Bibliothek, ein Muster-Applet, das die dynamische Bibliothek debuggt, und ein Dokument der dynamischen Bibliothek gleichzeitig ausgegeben.
  • Im Allgemeinen ist es zum Ausgeben der dynamischen Bibliothek erforderlich, die dynamische Bibliothek, das Muster-Applet, das die dynamische Bibliothek debuggt, und das Dokument der dynamischen Bibliothek bereitzustellen und die drei Dateien gleichzeitig auszugeben. Hier ist die dynamische Bibliothek der Inhalt, der vom Entwickler entwickelt wird und auf den andere Applets verweisen. Das Muster-Applet zum Debuggen der dynamischen Bibliothek kann von einem Prüfer geprüft und vom Applet-Entwickler unter Verwendung der dynamischen Bibliothek zum Debuggen und zur Vorschau verwendet werden. Das Dokument der dynamischen Bibliothek kann eine API der von der dynamischen Bibliothek bereitgestellten Merkmale bereitstellen, um den Zugriff des Entwicklers zu erleichtern.
  • Es versteht sich, dass das Skript, die Komponente, die Seite und dergleichen, die üblicherweise und häufig bei der Entwicklung des Applets verwendet werden, in die dynamische Bibliothek verkapselt und auf die Applet-Plattform hochgeladen werden, damit andere Applets darauf verweisen können. Für eine dynamische Bibliothek, auf die von der Applet-Plattform aus verwiesen werden kann, muss der Applet-Entwickler keine Neuentwicklung durchführen, wodurch sich der Arbeitsaufwand für die Entwicklung des Applets verringert.
  • In einigen alternativen Implementierungen dieser Ausführungsform kann das Applet auf die dynamische Bibliothek durch die folgenden Schritte verweisen:
    • Zunächst wird die Kennung der dynamischen Bibliothek, auf die das Applet verweist, in der Konfigurationsdatei konfiguriert.
  • Hier kann beispielsweise der Code zum Konfigurieren der Kennung der dynamischen Bibliothek, auf die das Applet verweist, in der Konfigurationsdatei Folgendes sein:

 app.json
 {
 “dynamicLib”:{
 “myAliasA”:{
 “provid er”:“Dyna micLibAAA”
 “myAliasB”:{
 “provid er”:“Dyna micLibBBB”
 }
 }
 }
  • Hier ist app.json eine Konfigurationsdatei, dynamicLib ist ein Ort für die Deklaration einer dynamischen Bibliothek, auf die das Applet verweist, myAliasA und myAliasB sind Aliase von dynamischen Bibliotheken, auf die das Applet verweist, und DynamicLibAAA und DynamicLibBBB sind Namen der dynamischen Bibliotheken, auf die das Applet verweist.
  • Anschließend wird in der Auslagerungsdatei eine Nutzungskomponente der dynamischen Bibliothek deklariert, auf die das Applet verweist.
  • Hier kann beispielsweise der Code zum Deklarieren der Nutzungskomponente der dynamischen Bibliothek, auf die das Applet verweist, in der Auslagerungsdatei sein:
  • 
     xxxPage.json
     {
     “usingComponents”:{
     “my-component”:“dynamicLib://myAliasA/hello-component”
     }
     }
  • Hier ist xxxPage.json eine Auslagerungsdatei, usingComponents ist die Deklaration der Nutzungskomponente in der Auslagerungsdatei, und my-component:dynamicLib://myAliasA/hellocomponent ist eine Deklaration der Verwendung einer Hello-Komponentenseite einer dynamischen Bibliothek mit dem Alias myAliasA.
  • Als nächstes werden eine Position und ein zugehöriges Attribut der dynamischen Bibliothek, auf die das Applet verweist, in einer Layoutdatei angegeben.
  • Hier kann beispielsweise der Code zum Angeben der Position und des zugehörigen Attributs der dynamischen Bibliothek, auf die das Applet verweist, in der Layoutdatei sein:
  • 
     xxxPage.swan
     <view>
     < my-component></my-component>
     </view>
  • Hier ist xxxPage.swan eine Layoutdatei und <my-component></ my-component> ist eine Position, die auf diese dynamische Bibliothek in xxxPage.swan verweist.
  • Schließlich wird die dynamische Bibliothek, auf die das Applet verweist, in einem Skriptcode des Applets aufgerufen.
  • Hier kann der Code zum Aufrufen der dynamischen Bibliothek, auf die das Applet verweist, im Skriptcode des Applets beispielsweise sein:
  • 
     xxxPage.js
     var lib=requireDynamicLib('myAliasA');
  • Hier ist xxxPage.js ein Skriptcode eines Applets, und var lib=requireDynamicLib(‚myAliasA‘) lädt die dynamische Bibliothek, die den Alias myAliasA im Code xxxPage.js aufweist.
  • In einigen alternativen Implementierungen der Ausführungsform kann das vorstehend genannte ausführende Organ eine Signierung und eine Sicherheitsüberprüfung für das Applet durchführen. Das vorstehend genannte ausführende Organ liest die Konfigurationsdatei erst nach dem Signieren und Bestehen der Sicherheitsüberprüfung.
  • Schritt 202 beinhaltet das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform.
  • In der Ausführungsform kann das vorstehend genannte ausführende Organ für jede dynamische Bibliothek, auf die das Applet verweist, die dynamische Bibliothek aus dem Sandbox-Verzeichnis oder von der Applet-Plattform laden. Wenn beispielsweise die neueste Version der auf der Applet-Plattform ausgegebenen dynamischen Bibliothek mit der im Sandbox-Verzeichnis gespeicherten Version der dynamischen Bibliothek übereinstimmt, kann das vorstehend genannte ausführende Organ die dynamische Bibliothek direkt aus dem Sandbox-Verzeichnis laden. Wenn die neueste Version der auf der Applet-Plattform ausgegebenen dynamischen Bibliothek nicht mit der im Sandbox-Verzeichnis gespeicherten Version der dynamischen Bibliothek übereinstimmt, kann das vorstehend genannte ausführende Organ die neueste Version der dynamischen Bibliothek in Echtzeit von der Applet-Plattform herunterladen, und die neueste Version der dynamischen Bibliothek laden. Darüber hinaus wird die dynamische Bibliothek der heruntergeladenen neuesten Version im Sandbox-Verzeichnis gespeichert, damit das Applet beim nächsten Ausführen des Applets darauf verweisen kann.
  • Im Allgemeinen muss das Applet, das auf die dynamische Bibliothek verweist, nach dem Aktualisieren des Merkmals der dynamischen Bibliothek den Verweis auf die dynamische Bibliothek in der Konfigurationsdatei nicht ändern und das Applet-Paket nicht erneut ausgeben. Wenn der Benutzer das Applet öffnet, wird die Applet-Plattform abgefragt, um zu bestimmen, ob das Merkmal der dynamischen Bibliothek aktualisiert ist. Wenn das Merkmal nicht aktualisiert ist, wird die dynamische Bibliothek im Sandbox-Verzeichnis verwendet. Wenn das Merkmal aktualisiert ist, wird die dynamische Bibliothek der neuesten Version von der Applet-Plattform in das Sandbox-Verzeichnis heruntergeladen, und das neue Merkmal der dynamischen Bibliothek kann beim Ausführen des Applets angezeigt werden.
  • Es versteht sich, dass der Code der dynamischen Bibliothek, auf die das Applet verweist, beim Packen des Applets nicht in das Applet-Paket integriert, sondern bei Verwendung in das Sandbox-Verzeichnis heruntergeladen wird, und der Code und das Speicherverzeichnis des Applets parallel, aber in Bezug auf Codes voneinander getrennt, gespeichert werden. Auf diese Weise umfassen die Vorteile mindestens: 1) Trennung: Die Speicher des Codes des Applets und des Codes der dynamischen Bibliothek sind getrennt, wodurch verhindert wird, dass der Entwickler den Code der dynamischen Bibliothek ändert oder die Kernimplementierung der dynamischen Bibliothek publik macht, und es gibt nur die Beziehung des Aufrufs der API zwischen dem Applet und der dynamischen Bibliothek, und daher ist eine Schnittstellen-Implementierungsschicht für den Benutzer nicht sichtbar; 2) Wiederverwendung: Verschiedene Applets können die dynamische Bibliothek im Sandbox-Verzeichnis gemeinsam nutzen, und wenn zwei Applets auf eine gegebene dynamische Bibliothek verweisen und ein Applet die dynamische Bibliothek der neuesten Version beim Ausführen heruntergeladen hat, lädt das andere Applet beim Ausführen direkt die dynamische Bibliothek der neuesten Version aus dem Sandbox-Verzeichnis, ohne die dynamische Bibliothek wiederholt herunterzuladen, wodurch der Zweck der Wiederverwendung erreicht wird; und 3) Sicherheit: Die dynamische Bibliothek wird im Sandbox-Verzeichnis gespeichert, wodurch das Risiko, vom Benutzer und anderen Wettbewerbern geknackt zu werden, erheblich verringert wird; und sie ist sicherer als die Speicherung auf einer Speicherkarte oder die direkte Integration des Codes in das Applet-Paket.
  • Schritt 203 beinhaltet das Ausführen eines Skriptcodes des Applets als Reaktion auf eine Ausführungsanweisung des Applets zum Aufrufen der dynamischen Bibliothek, auf die das Applet verweist.
  • In der Ausführungsform kann das vorstehend genannte ausführende Organ beim Empfangen der Ausführungsanweisung des Applets den Skriptcode des Applets ausführen, um die dynamische Bibliothek, auf die das Applet verweist, aufzurufen und das von der dynamischen Bibliothek bereitgestellte Merkmal zu verwenden. Wenn hier eine Seite des Applets durch einen Klick eingegeben wird, kann davon ausgegangen werden, dass die Ausführungsanweisung des Applets empfangen wird. Die Seiten des Applets können eine Masterseite und eine Slave-Seite enthalten.
  • In einigen alternativen Implementierungen der Ausführungsform kann das vorstehend genannte ausführende Organ die dynamische Bibliothek vorab herunterladen und vorab laden. Insbesondere wenn ein Skriptcode einer Masterseite des Applets ausgeführt wird, kann das vorstehend genannte ausführende Organ die dynamische Bibliothek bestimmen, auf die eine Slave-Seite des Applets verweist, und die dynamische Bibliothek, auf die die Slave-Seite verweist, von der Applet-Plattform vorab herunterladen. Beim Springen zur Slave-Seite des Applets überträgt das vorstehend genannte ausführende Organ möglicherweise den Pfad des Sandbox-Verzeichnisses an ein Front-end, damit das Front-end die dynamische Bibliothek, auf die die Slave-Seite verweist, vorab vom Pfad lädt. Hier bietet das Applet-Framework Runtime (im Zustand der Ausführung) die Möglichkeit, die dynamische Bibliothek vorab herunterzuladen. Im Allgemeinen wird auf der Slave-Seite des Applets auf einige dynamische Bibliotheken verwiesen. Nachdem die Masterseite des Applets geöffnet ist, kann das vorstehend genannte ausführende Organ eine Vorab-Download-Funktion: PreDownloadSwanPlugin dynamisch aufrufen, um einen Batch-Download der dynamischen Bibliotheken durchzuführen, auf die die Slave-Seite verweist, sodass die Seiten der dynamischen Bibliotheken, auf die verwiesen wird, vorab vorbereitet werden können, wenn zur Slave-Seite gesprungen wird. Beim Springen zur Slave-Seite kann das vorstehend genannte ausführende Organ den Pfad des Sandbox-Verzeichnisses an das Front-end übertragen, wenn das Seitenvorbereitungsereignis der Slave-Seite generiert wird, und der Front-end-Frame kann den Code der dynamischen Bibliothek unter dem Pfad vorab laden und kann somit die entsprechende Skriptlogik ausführen, wenn die Slave-Seite gerendert wird.
  • Gemäß dem in der Ausführungsform der vorliegenden Offenbarung bereitgestellten Verfahren zum Ausführen eines Applets wird zuerst die Konfigurationsdatei gelesen, um als Reaktion auf das Ausgeben des Applets an die Hostanwendung die dynamische Bibliothek zu bestimmen, auf die das Applet verweist. Anschließend wird die dynamische Bibliothek, auf die das Applet verweist, aus dem Sandbox-Verzeichnis und/oder von der Applet-Plattform geladen. Schließlich wird der Skriptcode des Applets ausgeführt, um die dynamische Bibliothek, auf die das Applet verweist, als Reaktion auf die Ausführungsanweisung des Applets aufzurufen. Wenn das Applet ausgeführt wird, wird die dynamische Bibliothek, auf die das Applet verweist, aus dem Sandbox-Verzeichnis und/oder von der Applet-Plattform geladen, und die dynamische Bibliothek ist nicht mehr in das Applet-Paket integriert. Selbst wenn der dynamischen Bibliothek, auf die das Applet verweist, Merkmale hinzugefügt werden, ist es nicht erforderlich, die dynamische Bibliothek der neuesten Version in das Applet-Paket zu integrieren. Da sich der Code des Applet-Pakets nicht ändert, muss das Applet-Paket nicht nochmals geprüft werden, wodurch die Konvergenzrate erheblich verbessert wird. Darüber hinaus ist die dynamische Bibliothek nicht mehr in das Applet-Paket integriert und auch in Bezug auf Codes vom Applet-Paket getrennt, wodurch verhindert wird, dass der Entwickler den Code der dynamischen Bibliothek ändert oder die Kernimplementierung der dynamischen Bibliothek publik macht.
  • Unter weiterer Bezugnahme auf 3 veranschaulicht 3 einen Ablauf 300 eines Verfahrens zum Ausführen eines Applets gemäß einer weiteren Ausführungsform der vorliegenden Offenbarung. Das Verfahren zum Ausführen eines Applets beinhaltet die folgenden Schritte:
    • Schritt 301 beinhaltet das Lesen einer Konfigurationsdatei als Reaktion auf das Ausgeben eines Applets an eine Hostanwendung, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist.
  • In der Ausführungsform wird die spezifische Operation von Schritt 301 in Schritt 201 in der in 2 gezeigten Ausführungsform detailliert beschrieben, die hier nicht wiederholt beschrieben wird.
  • Schritt 302 beinhaltet das Bestimmen für jede dynamische Bibliothek, auf die das Applet verweist, ob die dynamische Bibliothek in einem Sandbox-Verzeichnis gespeichert ist.
  • In der Ausführungsform kann für jede dynamische Bibliothek, auf die das Applet verweist, ein ausführendes Organ (z. B. die in 1 gezeigte Vorrichtung 101) des Verfahrens zum Ausführen eines Applets das Sandbox-Verzeichnis abfragen, um zu bestimmen, ob die dynamische Bibliothek im Sandbox-Verzeichnis gespeichert ist. Wenn die dynamische Bibliothek im Sandbox-Verzeichnis gespeichert ist, wird Schritt 303 ausgeführt. Wenn die dynamische Bibliothek nicht im Sandbox-Verzeichnis gespeichert ist, wird Schritt 304 ausgeführt.
  • Schritt 303 beinhaltet das Bestimmen, ob eine Download-Dauer der dynamischen Bibliothek einen Ablaufzeitraum überschreitet.
  • Wenn das Sandbox-Verzeichnis in der Ausführungsform die dynamische Bibliothek speichert, kann das vorstehend genannte ausführende Organ bestimmen, ob die Download-Dauer der dynamischen Bibliothek die Ablaufzeit überschreitet. Wenn die Download-Dauer die Ablaufzeit überschreitet, wird Schritt 304 ausgeführt. Wenn die Download-Dauer die Ablaufzeit nicht überschreitet, wird Schritt 305 ausgeführt. Hier kann der Ablaufzeitraum maxAge, typischerweise 1 Stunde, betragen.
  • Schritt 304 beinhaltet das synchrone Herunterladen einer dynamischen Bibliothek einer neuesten Version von einer Applet-Plattform und das Laden der dynamischen Bibliothek der neuesten Version.
  • Wenn in der Ausführungsform die dynamische Bibliothek nicht gespeichert ist oder die Download-Dauer der gespeicherten dynamischen Bibliothek den Ablaufzeitraum überschreitet, kann das vorstehend genannte ausführende Organ die dynamische Bibliothek der neuesten Version synchron von der Applet-Plattform herunterladen und die dynamische Bibliothek der neuesten Version laden. Hier kann der synchrone Download ein Echtzeit-Download sein. Solange beispielsweise bestimmt wird, dass die dynamische Bibliothek nicht gespeichert ist oder die Download-Dauer der gespeicherten dynamischen Bibliothek den Ablaufzeitraum überschreitet, wird eine Kommunikation zwischen dem vorstehend genannten ausführenden Organ und der Applet-Plattform sofort hergestellt, und die dynamische Bibliothek der neuesten Version wird in Echtzeit von der Applet-Plattform heruntergeladen.
  • Nachdem ein Applet auf eine dynamische Bibliothek verweist, wenn ein Benutzer das Applet zum ersten Mal öffnet, und falls das Framework Runtime erkennt, dass das Sandbox-Verzeichnis keinerlei Version einer dynamischen Bibliothek enthält, wird im Allgemeinen eine dynamische Bibliothek einer neuesten Version synchron in das Sandbox-Verzeichnis heruntergeladen, und die Informationen (z. B. der Ablaufzeitraum und die Version) der dynamischen Bibliothek werden in einer Datenbank gespeichert. Wenn darüber hinaus ein Kaltstart des Applets erneut durchgeführt wird und ein Zeitraum seit dem letzten Herunterladen der dynamischen Bibliothek den Ablaufzeitraum überschreitet, gibt dies an, dass die dynamische Bibliothek im Sandbox-Verzeichnis ungültig ist. Die dynamische Bibliothek der neuesten Version wird erneut synchron in das Sandbox-Verzeichnis heruntergeladen, und die Informationen (z. B. Ablaufzeitraum und Version) der dynamischen Bibliothek werden in der Datenbank gespeichert.
  • In einigen alternativen Implementierungen der Ausführungsform kann die heruntergeladene neueste Version der dynamischen Bibliothek im Sandbox-Verzeichnis gespeichert werden, und eine Zeitüberschreitungszeit und Versionsinformationen der dynamischen Bibliothek können in einer Datenbank gespeichert werden. Verschiedene Applets können die dynamische Bibliothek im Sandbox-Verzeichnis gemeinsam nutzen. Das heißt, die dynamische Bibliothek kann wiederverwendet werden. Wenn beispielsweise zwei Applets auf eine bestimmte dynamische Bibliothek verweisen und ein Applet beim Ausführen die dynamische Bibliothek der neuesten Version heruntergeladen hat, lädt das andere Applet beim Ausführen die dynamische Bibliothek der neuesten Version direkt aus dem Sandbox-Verzeichnis, ohne die dynamische Bibliothek wiederholt herunterzuladen, wodurch der Zweck der Wiederverwendung erreicht wird.
  • Schritt 305 beinhaltet das Laden der im Sandbox-Verzeichnis gespeicherten dynamischen Bibliothek.
  • In der Ausführungsform kann das vorstehend genannte ausführende Organ die im Sandbox-Verzeichnis gespeicherte dynamische Bibliothek laden, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet. Wenn darüber hinaus die Download-Dauer den Ablaufzeitraum überschreitet, aber die dynamische Bibliothek der neuesten Version nicht heruntergeladen werden kann, kann das vorstehend genannte ausführende Organ auch die im Sandbox-Verzeichnis gespeicherte dynamische Bibliothek laden. Wenn die Applet-Plattform beispielsweise keine andere Version als die der im Sandbox-Verzeichnis gespeicherten dynamischen Bibliothek ausgibt, gibt dies an, dass die im Sandbox-Verzeichnis gespeicherte dynamische Bibliothek die dynamische Bibliothek der neuesten Version ist. In diesem Fall wird die dynamische Bibliothek nicht von der Applet-Plattform heruntergeladen, selbst wenn die Download-Dauer den Ablaufzeitraum überschreitet.
  • Wenn im Allgemeinen ein Kaltstart des Applets erneut durchgeführt wird und der Zeitraum seit dem letzten Herunterladen der dynamischen Bibliothek den Ablaufzeitraum nicht überschreitet, gibt dies an, dass die dynamische Bibliothek im Sandbox-Verzeichnis gültig ist. Daher wird die dynamische Bibliothek der neuesten Version nicht heruntergeladen, und die dynamische Bibliothek der neuesten Version im Sandbox-Verzeichnis wird direkt verwendet. Wenn der Kaltstart des Applets erneut ausgeführt wird und der Zeitraum seit dem letzten Herunterladen der dynamischen Bibliothek den Ablaufzeitraum überschreitet, die Applet-Plattform jedoch nicht über eine aktualisierte Version einer dynamischen Bibliothek verfügt, gibt dies an, dass die im Sandbox-Verzeichnis gespeicherte dynamische Bibliothek die dynamische Bibliothek der neuesten Version ist. Somit wird die dynamische Bibliothek der neuesten Version im Sandbox-Verzeichnis direkt verwendet.
  • In einigen alternativen Implementierungen der Ausführungsform kann das vorstehend genannte ausführende Organ die dynamische Bibliothek der neuesten Version asynchron herunterladen, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet und die dynamische Bibliothek der neuesten Version auf der Applet-Plattform vorhanden ist. Die heruntergeladene neueste Version der dynamischen Bibliothek kann im Sandbox-Verzeichnis gespeichert werden, damit sie beim nächsten Ausführen des Applets verwendet werden kann. Hier kann der asynchrone Download ein Nicht-Echtzeit-Download sein. Wenn beispielsweise festgestellt wird, dass die gespeicherte Download-Dauer der dynamischen Bibliothek den Ablaufzeitraum nicht überschreitet, kann, nachdem die Ausführung des Applets dieses Mal beendet wurde, eine Kommunikation zwischen dem vorstehend genannten ausführenden Organ und der Applet-Plattform hergestellt werden und die dynamische Bibliothek der neuesten Version wird von der Applet-Plattform heruntergeladen.
  • Schritt 306 beinhaltet das Ausführen eines Skriptcodes des Applets als Reaktion auf eine Ausführungsanweisung des Applets zum Aufrufen der dynamischen Bibliothek, auf die das Applet verweist.
  • In der Ausführungsform wird die spezifische Operation von Schritt 306 in Schritt 203 in der in 2 gezeigten Ausführungsform detailliert beschrieben, die hier nicht wiederholt beschrieben wird.
  • Ferner unter Bezugnahme auf 4 ist 4 ein Diagramm einer Architektur, in der ein Applet ausgeführt wird. Wie in 4 gezeigt, müssen die Namen und Aliase der dynamischen Bibliothek A und der dynamischen Bibliothek B auf einer Applet-Plattform registriert werden, wenn ein Entwickler eine dynamische Bibliothek A und eine dynamische Bibliothek B ausgeben möchte. Hier lautet der Name der dynamischen Bibliothek A DynamicLibAAA und der Alias myAliasA. Der Name der dynamischen Bibliothek B lautet DynamicLibBBB, und der Alias lautet myAliasB. Der Entwickler kann eine von der Applet-Plattform bereitgestellte Entwicklungstool-IDE verwenden, um Skripte, Komponenten und Seiten zu entwickeln, diese zu kompilieren und in die dynamische Bibliothek A und eine dynamische Bibliothek B zu packen und die dynamische Bibliothek A und die dynamische Bibliothek B auf dem B-Ende der Applet-Plattform auszugeben. Wenn ein Applet A und ein Minispiel A auf die dynamische Bibliothek A und die dynamische Bibliothek B verweisen möchten, müssen die Namen und Aliase der dynamischen Bibliothek A und der dynamischen Bibliothek B in einer Konfigurationsdatei app.json konfiguriert werden. In einer Auslagerungsdatei Page.json werden Komponenten der dynamischen Bibliothek A und der dynamischen Bibliothek B deklariert. Die Positionen und zugehörigen Attribute der dynamischen Bibliothek A und der dynamischen Bibliothek B sind in der Layoutdatei Page.swan angegeben. Die dynamische Bibliothek A und die dynamische Bibliothek B werden in den Skriptcodes des Applets A und des Minispiels A aufgerufen, um kompiliert und in ein Applet-Paket A und ein Minispiel-Paket A gepackt und am B-Ende der Applet-Plattform ausgegeben zu werden. Das Applet A, ein Applet B, das Minispiel A und ein Minispiel B können an eine Hostanwendung ausgegeben werden. Wenn das Applet A und das Minispiel A ausgeführt werden müssen, muss die Konfigurationsdatei analysiert werden, um zu bestimmen, ob das Applet A und das Minispiel A von der dynamischen Bibliothek A und der dynamischen Bibliothek B abhängig sind. Es wird bestimmt, ob die neuesten Versionen der dynamischen Bibliothek A und die dynamische Bibliothek B im Sandbox-Verzeichnis gespeichert sind. Wenn die neuesten Versionen nicht gespeichert sind, werden die dynamische Bibliothek der neuesten Version A und die dynamische Bibliothek der neuesten Version B vom C-Ende der Applet-Plattform heruntergeladen. Wenn ein Benutzer das Applet A oder das Minispiel B ausführen möchte, wird das Applet-Paket A oder das Minispiel-Paket A von der Applet-Plattform heruntergeladen und es werden Skriptcodes ausgeführt, um die dynamische Bibliothek A und die dynamische Bibliothek B aufzurufen.
  • Aus 3 ist ersichtlich, dass im Vergleich zu der Ausführungsform, die 2 entspricht, der Ablauf 300 des Verfahrens zum Ausführen eines Applets in der Ausführungsform den Schritt des Ladens der dynamischen Bibliothek hervorhebt. Daher wird gemäß dem in der Ausführungsform beschriebenen Schema beim Ausführen des Applets bestimmt, ob die dynamische Bibliothek der neuesten Version synchron heruntergeladen werden soll, indem bestimmt wird, ob die Download-Dauer der dynamischen Bibliothek den Ablaufzeitraum überschreitet. Somit ist die Konvergenzrate der dynamischen Bibliothek sichergestellt, und es wird kein übermäßiger Druck auf die Applet-Plattform verursacht, da die dynamische Bibliothek nicht häufig heruntergeladen wird.
  • Unter weiterer Bezugnahme auf 5 stellt die vorliegende Offenbarung als Implementierung des in den vorstehenden Zeichnungen gezeigten Verfahrens eine Ausführungsform einer Einrichtung zum Ausführen eines Applets bereit. Die Ausführungsform der Einrichtung entspricht der Ausführungsform des in 2 gezeigten Verfahrens, und die Einrichtung kann in verschiedenen elektronischen Vorrichtungen angewendet werden.
  • Wie in 5 gezeigt, kann die Einrichtung 500 zum Ausführen eines Applets in dieser Ausführungsform eine Leseeinheit 501, eine Ladeeinheit 502 und eine Ausführungseinheit 503 umfassen. Hier ist die Leseeinheit 501 dafür konfiguriert, als Reaktion auf die Ausgabe eines Applets an eine Hostanwendung eine Konfigurationsdatei zu lesen, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist. Die Ladeeinheit 502 ist dafür konfiguriert, die dynamische Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform zu laden. Die Ausführungseinheit 503 ist dafür konfiguriert, als Reaktion auf eine Ausführungsanweisung des Applets einen Skriptcode des Applets auszuführen, um die dynamische Bibliothek aufzurufen, auf die das Applet verweist.
  • In der Ausführungsform kann für spezifische Prozesse der Leseeinheit 501, der Ladeeinheit 502 und der Ausführungseinheit 503 in der Einrichtung 500 zum Ausführen eines Applets und ihrer technischen Wirkungen jeweils auf die relativen Beschreibungen der Schritte 201-203 in der entsprechenden Ausführungsform von 2, die hier nicht wiederholt beschrieben wird, Bezug genommen werden.
  • In einigen alternativen Implementierungen dieser Ausführungsform beinhaltet die Einrichtung 500 zum Ausführen eines Applets ferner eine Verifizierungseinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, eine Signierung und eine Sicherheitsüberprüfung an dem Applet durchzuführen.
  • In einigen alternativen Implementierungen dieser Ausführungsform beinhaltet die Ladeeinheit 502: eine erste Bestimmungs-Untereinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, für jede dynamische Bibliothek, auf die das Applet verweist, zu bestimmen, ob die dynamische Bibliothek im Sandbox-Verzeichnis gespeichert ist; und eine erste Ladeuntereinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, synchron eine dynamische Bibliothek einer neuesten Version von der Applet-Plattform herunterzuladen und die dynamische Bibliothek der neuesten Version zu laden, wenn die dynamische Bibliothek nicht gespeichert ist.
  • In einigen alternativen Implementierungen dieser Ausführungsform beinhaltet die Ladeeinheit 502: eine zweite Bestimmungs-Untereinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, zu bestimmen, ob eine Download-Dauer der dynamischen Bibliothek einen Ablaufzeitraum überschreitet, wenn das Sandbox-Verzeichnis die dynamische Bibliothek speichert; und eine zweite Ladeuntereinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, die dynamische Bibliothek der neuesten Version synchron von der Applet-Plattform herunterzuladen und die dynamische Bibliothek der neuesten Version zu laden, wenn die Download-Dauer den Ablaufzeitraum überschreitet.
  • In einigen alternativen Implementierungen dieser Ausführungsform beinhaltet die Ladeeinheit 502: eine dritte Ladeuntereinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, die im Sandbox-Verzeichnis gespeicherte dynamische Bibliothek zu laden, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet, oder wenn die Download-Dauer den Ablaufzeitraum überschreitet, die dynamische Bibliothek der neuesten Version aber nicht heruntergeladen werden kann.
  • In einigen alternativen Implementierungen dieser Ausführungsform beinhaltet die Ladeeinheit 502 ferner: eine asynchrone Download-Untereinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, die dynamische Bibliothek der neuesten Version asynchron herunterzuladen, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet und die dynamische Bibliothek der neuesten Version in der Applet-Plattform enthalten ist.
  • In einigen alternativen Implementierungen der Ausführungsform wird die heruntergeladene dynamische Bibliothek der neuesten Version im Sandbox-Verzeichnis gespeichert, eine Zeitüberschreitungszeit und Versionsinformationen der dynamischen Bibliothek werden in einer Datenbank gespeichert, und verschiedene Applets nutzen gemeinsam die dynamische Bibliothek im Sandbox-Verzeichnis.
  • In einigen alternativen Implementierungen dieser Ausführungsform beinhaltet die Einrichtung 500 zum Ausführen eines Applets ferner: eine Vorab-Download-Einheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, zu bestimmen, wann ein Skriptcode einer Masterseite des Applets ausgeführt wird, eine dynamische Bibliothek, auf die eine Slave-Seite des Applets verweist, und Vorab-Download der dynamischen Bibliothek, auf die die Slave-Seite von der Applet-Plattform verweist.
  • In einigen alternativen Implementierungen der Ausführungsform beinhaltet die Einrichtung 500 zum Ausführen eines Applets ferner: eine Vorladeeinheit (in der Zeichnung nicht gezeigt), die dafür konfiguriert ist, beim Springen zur Slave-Seite des Applets einen Pfad des Sandbox-Verzeichnisses zu einem Front-end zu übertragen, um das Front-end zu veranlassen, die dynamische Bibliothek, auf die die Slave-Seite verweist, aus dem Pfad vorab zu laden.
  • In einigen alternativen Implementierungen der Ausführungsform wird die dynamische Bibliothek ausgegeben durch: Erfassen einer Kennung der dynamischen Bibliothek, die von einem Benutzer auf der Applet-Plattform registriert wurde; Erfassen eines Skripts, einer Komponente und einer Seite, die vom Benutzer unter Verwendung eines von der Applet-Plattform bereitgestellten Entwicklungstools entwickelt wurden; Verkapseln, wenn das Skript, die Komponente und die Seite erfolgreich kompiliert und debuggt wurden, des Skripts, der Komponente und der Seite, um die dynamische Bibliothek zu erhalten; und gleichzeitig Ausgeben der dynamischen Bibliothek, eines Muster-Applets zum Debuggen der dynamischen Bibliothek und eines Dokuments der dynamischen Bibliothek.
  • In einigen alternativen Implementierungen der Ausführungsform verweist das Applet auf die dynamische Bibliothek durch: Konfigurieren der Kennung der dynamischen Bibliothek, auf die das Applet verweist, in der Konfigurationsdatei; Deklarieren einer Nutzungskomponente der dynamischen Bibliothek, auf die das Applet verweist, in einer Auslagerungsdatei; Angeben einer Position und eines zugehörigen Attributs der dynamischen Bibliothek, auf die das Applet verweist, in einer Layoutdatei; und Aufrufen der dynamischen Bibliothek, auf die das Applet verweist, im Skriptcode des Applets.
  • Unter Bezugnahme auf 6 ist 6 ein schematisches Strukturdiagramm eines Computersystems 600, das zur Implementierung einer elektronischen Vorrichtung (z. B. der in 1 gezeigten Vorrichtung 101) der Ausführungsformen der vorliegenden Offenbarung angepasst ist. Die in 6 gezeigte elektronische Vorrichtung ist lediglich ein Beispiel und sollte die Funktionen und den Verwendungsbereich der Ausführungsformen der vorliegenden Offenbarung nicht einschränken.
  • Wie in 6 gezeigt, beinhaltet das Computersystem 600 eine Zentraleinheit (CPU) 601, die verschiedene geeignete Aktionen und Prozesse gemäß einem Programm ausführen kann, das in einem Direktzugriffsspeicher (ROM) 602 gespeichert ist, oder einem Programm, das in diesen Direktzugriffsspeicher (RAM) 603 von einem Speicherabschnitt 608 geladen ist. Das RAM 603 speichert auch verschiedene Programme und Daten, die für den Betrieb des Systems 600 erforderlich sind. Die CPU 601, das ROM 602 und das RAM 603 sind über einen Bus 604 miteinander verbunden. Eine Eingangs-/Ausgangsschnittstelle (I/O) 605 ist ebenfalls mit dem Bus 604 verbunden.
  • Die folgenden Komponenten sind mit der I/O-Schnittstelle 605 verbunden: ein Eingabeabschnitt 606, der eine Tastatur, eine Maus usw. einschließt; ein Ausgangsabschnitt 607, der eine Kathodenstrahlröhre (CRT), eine Flüssigkristallanzeige (LCD), ein Lautsprecher usw. einschließt; der Speicherabschnitt 608, der eine Festplatte usw. einschließt; und ein Kommunikationsabschnitt 609, der eine Netzwerkschnittstellenkarte wie eine LAN-Karte und ein Modem einschließt. Der Kommunikationsabschnitt 609 führt Kommunikationsprozesse über ein Netzwerk wie das Internet aus. Ein Treiber 610 ist nach Bedarf auch mit der I/O-Schnittstelle 605 verbunden. Ein abnehmbares Medium 611 wie eine Magnetplatte, eine optische Platte, eine magnetooptische Platte und ein Halbleiterspeicher können auf dem Treiber 610 installiert sein, um das Abrufen eines Computerprogramms von dem abnehmbaren Medium 611 und dessen Installation auf dem Speicherabschnitt 608 nach Bedarf zu erleichtern.
  • Insbesondere kann gemäß Ausführungsformen der vorliegenden Offenbarung der vorstehend unter Bezugnahme auf das Flussdiagramm beschriebene Prozess als ein Computersoftwareprogramm implementiert sein. Beispielsweise beinhaltet eine Ausführungsform der vorliegenden Offenbarung ein Computerprogrammprodukt, einschließlich eines Computerprogramms, das auf einem computerlesbaren Medium gehostet ist, wobei das Computerprogramm Programmcodes zum Durchführen des Verfahrens, wie im Flussdiagramm dargestellt, enthält. In einer solchen Ausführungsform kann das Computerprogramm von einem Netzwerk über den Kommunikationsabschnitt 609 heruntergeladen und installiert und/oder kann von dem abnehmbaren Medium 611 installiert werden. Wenn das Computerprogramm von der Zentraleinheit (CPU) 601 ausgeführt wird, implementiert es die vorstehend erwähnten Funktionalitäten, die im Verfahren der vorliegenden Offenbarung definiert sind.
  • Es ist anzumerken, dass das computerlesbare Medium in der vorliegenden Offenbarung ein computerlesbares Signalmedium, ein computerlesbares Speichermedium oder eine beliebige Kombination der beiden sein kann. Beispielsweise kann das computerlesbare Speichermedium Folgendes sein, ohne darauf beschränkt zu sein: ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine -Einrichtung oder -Vorrichtung oder eine beliebige Kombination der vorstehend Genannten. Ein spezifischeres Beispiel des computerlesbaren Speichermediums kann beinhalten, ist aber nicht beschränkt auf: eine elektrische Verbindung mit einem oder mehreren Drähten, eine Platte eines tragbaren Computers, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), eine Faser, einen tragbaren Nur-Lese-Speicher für CDs (CD-ROM), eine optische Speichervorrichtung, eine Magnetspeichervorrichtung oder eine geeignete Kombination der vorstehend Genannten. In der vorliegenden Offenbarung kann das computerlesbare Speichermedium jedes physische Medium sein, das Programme enthält oder speichert, die von einem Befehlsausführungssystem, einer - Einrichtung oder -Vorrichtung verwendet oder in diese(s) eingebaut werden können. In der vorliegenden Offenbarung kann das computerlesbare Signalmedium ein Datensignal enthalten, das in einem Basisband oder als Teil einer Trägerwelle propagiert wird, die computerlesbare Programmcodes trägt. Ein solches propagiertes Datensignal kann in verschiedenen Formen vorliegen, einschließlich, aber nicht beschränkt auf ein elektromagnetisches Signal, ein optisches Signal oder eine geeignete Kombination der Vorstehenden. Das computerlesbare Signalmedium kann auch jedes andere computerlesbare Medium als das computerlesbare Speichermedium sein. Das computerlesbare Medium ist in der Lage, Programme zur Verwendung durch oder in Kombination mit einem Befehlsausführungssystem, einer -Einrichtung oder -Vorrichtung zu übertragen, zu propagieren oder zu übermitteln. Die auf dem computerlesbaren Medium enthaltenen Programmcodes können mit jedem geeigneten Medium übertragen werden, einschließlich, aber nicht beschränkt auf drahtloses, verdrahtetes, optisches Kabel-, HF-Medium oder eine geeignete Kombination der Vorstehenden.
  • Ein Computerprogrammcode zum Ausführen von Operationen in der Offenbarung kann unter Verwendung einer oder mehrerer Programmiersprachen oder Kombinationen davon kompiliert werden. Die Programmiersprachen umfassen objektorientierte Programmiersprachen wie Java, Smalltalk oder C++ sowie herkömmliche prozedurale Programmiersprachen wie die Sprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer eines Benutzers ausgeführt, teilweise auf dem Computer eines Benutzers ausgeführt, als separates Softwarepaket ausgeführt, teilweise auf dem Computer eines Benutzers und teilweise auf einem Remote-Computer ausgeführt oder vollständig auf einem Remote-Computer oder Server ausgeführt werden. In Situationen, in denen ein Remote-Computer beteiligt ist, kann der Remote-Computer über ein beliebiges Netzwerk, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitbereichsnetzwerks (WAN), mit dem Computer eines Benutzers verbunden sein, oder kann mit einem Remote-Computer (z. B. über das Internet mit einem Internetdienstanbieter verbunden) verbunden sein.
  • Die Flussdiagramme und Blockdiagramme in den beigefügten Zeichnungen veranschaulichen Architekturen, Funktionen und Operationen, die gemäß den Systemen, Verfahren und Computerprogrammprodukten der verschiedenen Ausführungsformen der vorliegenden Offenbarung implementiert werden können. In dieser Hinsicht kann jeder der Blöcke in den Flussdiagrammen oder Blockdiagrammen ein Modul, ein Programmsegment oder einen Codeabschnitt darstellen, wobei das Modul, das Programmsegment oder der Codeabschnitt eine oder mehrere ausführbare Anweisungen zum Implementieren spezifizierter Logikfunktionen enthalten. Es sollte auch beachtet werden, dass in einigen alternativen Implementierungen die in den Blöcken angegebenen Funktionen in einer anderen als der in den Figuren angegebenen Reihenfolge vorliegen können. Beispielsweise können zwei beliebige Blöcke, die nacheinander präsentiert werden, im Wesentlichen parallel ausgeführt werden, oder sie können manchmal in Abhängigkeit von der beteiligten Funktion in einer umgekehrten Reihenfolge vorliegen. Es sollte auch beachtet werden, dass jeder Block in den Blockdiagrammen und/oder Flussdiagrammen sowie eine Kombination von Blöcken unter Verwendung eines dedizierten hardwarebasierten Systems implementiert werden kann, das bestimmte Funktionen oder Operationen ausführt, oder durch eine Kombination von dedizierter Hardware und Computeranweisungen.
  • Die an den Ausführungsformen der vorliegenden Offenbarung beteiligten Einheiten können mittels Software oder Hardware implementiert werden. Die beschriebenen Einheiten können auch in einem Prozessor bereitgestellt werden. Beispielsweise kann der Prozessor beschrieben werden als: ein Prozessor, der eine Leseeinheit, eine Ladeeinheit und eine Ausführungseinheit enthält. Hier stellen die Namen dieser Einheiten in einigen Fällen keine Beschränkung auf diese Einheiten als solche dar. Beispielsweise kann die Leseeinheit alternativ als „eine Einheit zum Lesen einer Konfigurationsdatei zum Bestimmen einer dynamischen Bibliothek, auf die das Applet verweist, als Reaktion auf die Ausgabe eines Applets an eine Hostanwendung“ beschrieben werden.
  • In einem anderen Aspekt stellt die vorliegende Offenbarung ferner ein computerlesbares Medium bereit. Das computerlesbare Medium kann das computerlesbare Medium sein, das in der in den vorstehenden Ausführungsformen beschriebenen elektronischen Vorrichtung enthalten ist, oder ein eigenständiges computerlesbares Medium, das nicht in die elektronische Vorrichtung eingebaut ist. Das computerlesbare Medium trägt ein oder mehrere Programme. Das eine oder die mehreren Programme bewirken, wenn sie von der elektronischen Vorrichtung ausgeführt werden, dass die elektronische Vorrichtung veranlasst wird zum: Lesen einer Konfigurationsdatei als Reaktion auf das Ausgeben eines Applets an eine Hostanwendung, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist; Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform; und Ausführen eines Skriptcodes des Applets als Reaktion auf eine Ausführungsanweisung des Applets, um die dynamische Bibliothek aufzurufen, auf die das Applet verweist.
  • Die vorstehende Beschreibung stellt nur eine Erklärung der bevorzugten Ausführungsformen der vorliegenden Offenbarung und der verwendeten technischen Prinzipien bereit. Fachleute sollten erkennen, dass der erfindungsgemäße Umfang der vorliegenden Offenbarung nicht auf die technischen Lösungen beschränkt ist, die durch die spezifischen Kombinationen der vorstehend beschriebenen technischen Merkmale gebildet werden. Der erfinderische Anwendungsbereich sollte auch andere technische Lösungen abdecken, die durch Kombinationen der vorstehend beschriebenen technischen Merkmale oder gleichwertiger Merkmale davon gebildet werden, ohne vom Konzept der Offenbarung abzuweichen. Beispiele sind technische Schemata, die dadurch ausgebildet werden, dass die vorstehend beschriebenen Merkmale mit technischen Merkmalen mit ähnlichen Funktionen, die in der vorliegenden Offenbarung offenbart sind, ausgetauscht werden, sind aber nicht darauf beschränkt.
  • Claims (14)

    1. Verfahren zum Ausführen eines Applets, umfassend: Lesen (201) einer Konfigurationsdatei als Reaktion auf das Ausgeben eines Applets an eine Hostanwendung, um eine dynamische Bibliothek zu bestimmen, auf die das Applet verweist; Laden (202) der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform; und Ausführen (203), als Reaktion auf eine Ausführungsanweisung des Applets, eines Skriptcodes des Applets zum Aufrufen der dynamischen Bibliothek, auf die das Applet verweist.
    2. Verfahren nach Anspruch 1, wobei vor dem Lesen der Konfigurationsdatei, um die dynamische Bibliothek zu bestimmen, auf die das Applet verweist, das Verfahren ferner umfasst: Durchführen einer Signierung und einer Sicherheitsüberprüfung an dem Applet.
    3. Verfahren nach Anspruch 1, wobei das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform umfasst: Bestimmen (302) für jede dynamische Bibliothek, auf die das Applet verweist, ob die dynamische Bibliothek im Sandbox-Verzeichnis gespeichert ist; und synchrones Herunterladen (304) einer dynamischen Bibliothek einer neuesten Version von der Applet-Plattform und Laden der dynamischen Bibliothek der neuesten Version, wenn die dynamische Bibliothek nicht gespeichert ist.
    4. Verfahren nach Anspruch 3, wobei das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform ferner umfasst: Bestimmen (303), ob eine Download-Dauer der dynamischen Bibliothek einen Ablaufzeitraum überschreitet, wenn das Sandbox-Verzeichnis die dynamische Bibliothek speichert; und Synchrones Herunterladen (304) der dynamischen Bibliothek der neuesten Version von der Applet-Plattform und Laden der dynamischen Bibliothek der neuesten Version, wenn die Download-Dauer den Ablaufzeitraum überschreitet.
    5. Verfahren nach Anspruch 4, wobei das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform ferner umfasst: Laden (305) der im Sandbox-Verzeichnis gespeicherten dynamischen Bibliothek, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet, oder wenn die Download-Dauer den Ablaufzeitraum überschreitet, aber die dynamische Bibliothek der neuesten Version nicht heruntergeladen werden kann.
    6. Verfahren nach Anspruch 5, wobei das Laden der dynamischen Bibliothek, auf die das Applet verweist, aus einem Sandbox-Verzeichnis und/oder von einer Applet-Plattform ferner umfasst: asynchrones Herunterladen der dynamischen Bibliothek der neuesten Version, wenn die Download-Dauer den Ablaufzeitraum nicht überschreitet und die dynamische Bibliothek der neuesten Version in der Applet-Plattform enthalten ist.
    7. Verfahren nach einem der Ansprüche 3 bis 6, wobei die heruntergeladene neueste Version der dynamischen Bibliothek im Sandbox-Verzeichnis gespeichert ist, eine Zeitüberschreitungszeit und Versionsinformationen der dynamischen Bibliothek in einer Datenbank gespeichert sind und verschiedene Applets die dynamische Bibliothek im Sandbox-Verzeichnis gemeinsam nutzen.
    8. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, wenn ein Skriptcode einer Masterseite des Applets ausgeführt wird, einer dynamischen Bibliothek, auf die eine Slave-Seite des Applets verweist, und Vorab-Download der dynamischen Bibliothek, auf die die Slave-Seite verweist, von der Applet-Plattform.
    9. Verfahren nach Anspruch 8, ferner umfassend: Übertragen eines Pfads des Sandbox-Verzeichnisses zu einem Front-end beim Springen zur Slave-Seite des Applets, um zu bewirken, dass das Front-end die dynamische Bibliothek, auf die die Seite verweist, vom Pfad vorab lädt.
    10. Verfahren nach Anspruch 1, wobei die dynamische Bibliothek ausgegeben wird durch: Erfassen einer von einem Benutzer auf der Applet-Plattform registrierten Kennung der dynamischen Bibliothek; Erfassen eines Skripts, einer Komponente und einer Seite, die vom Benutzer unter Verwendung eines von der Applet-Plattform bereitgestellten Entwicklungstools entwickelt wurde; Verkapseln, wenn das Skript, die Komponente und die Seite erfolgreich kompiliert und debuggt wurden, des Skripts, der Komponente und der Seite, um die dynamische Bibliothek zu erhalten; und gleichzeitiges Ausgeben der dynamischen Bibliothek, wobei ein Muster-Applet die dynamische Bibliothek debuggt, und eines Dokuments der dynamischen Bibliothek.
    11. Verfahren nach Anspruch 10, wobei das Applet auf die dynamische Bibliothek verweist durch: Konfigurieren der Kennung der dynamischen Bibliothek, auf die das Applet verweist, in der Konfigurationsdatei; Deklarieren einer Nutzungskomponente der dynamischen Bibliothek, auf die das Applet verweist, in einer Auslagerungsdatei; Angeben einer Position und eines zugehörigen Attributs der dynamischen Bibliothek, auf die das Applet verweist, in einer Layoutdatei; und Aufrufen der dynamischen Bibliothek, auf die das Applet verweist, im Skriptcode des Applets.
    12. Einrichtung zum Ausführen eines Applets, umfassend: eine Vielzahl von Einheiten, die dafür konfiguriert sind, das Verfahren nach einem der Ansprüche 1 bis 11 zu implementieren.
    13. Elektronische Vorrichtung, umfassend: einen oder mehrere Prozessoren; und eine Speichereinrichtung, die für das Speichern eines oder mehrerer Programme konfiguriert ist, wobei das eine oder die mehreren Programme, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, das Verfahren nach einem der Ansprüche 1 bis 11 zu implementieren.
    14. Computerlesbares Medium, in dem ein Computerprogramm gespeichert ist, wobei das Programm, wenn es von einem Prozessor ausgeführt wird, das Verfahren nach einem der Ansprüche 1 bis 11 implementiert.
    DE102020115253.1A 2019-11-29 2020-06-09 Verfahren und einrichtung zum ausführen eines applets Pending DE102020115253A1 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    CN201911199931.8 2019-11-29
    CN201911199931.8A CN110908738B (zh) 2019-11-29 2019-11-29 用于运行小程序的方法和装置

    Publications (1)

    Publication Number Publication Date
    DE102020115253A1 true DE102020115253A1 (de) 2021-06-02

    Family

    ID=69820664

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102020115253.1A Pending DE102020115253A1 (de) 2019-11-29 2020-06-09 Verfahren und einrichtung zum ausführen eines applets

    Country Status (5)

    Country Link
    US (1) US11550599B2 (de)
    CN (1) CN110908738B (de)
    DE (1) DE102020115253A1 (de)
    FR (1) FR3103927B1 (de)
    GB (1) GB2589658B (de)

    Families Citing this family (10)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    CN110908738B (zh) 2019-11-29 2021-03-23 百度在线网络技术(北京)有限公司 用于运行小程序的方法和装置
    CN111459512B (zh) * 2020-03-31 2023-06-16 南方电网科学研究院有限责任公司 电网轻应用部署方法、系统、设备及存储介质
    CN113703857A (zh) 2020-05-08 2021-11-26 腾讯科技(深圳)有限公司 一种启动应用的方法、装置及计算机可读存储介质
    CN111787088B (zh) 2020-06-28 2023-04-28 百度在线网络技术(北京)有限公司 小程序数据处理的方法和装置
    CN111782296A (zh) * 2020-06-29 2020-10-16 北京百度网讯科技有限公司 基于小程序的挂载信息回流系统、方法以及挂载服务设备
    CN112527252B (zh) * 2020-11-30 2024-01-09 北京百度网讯科技有限公司 小程序管理方法及装置、小程序平台、电子设备、介质
    CN112948018B (zh) * 2021-03-01 2023-08-01 北京百度网讯科技有限公司 用于小程序的动态库加载方法、装置、设备及介质
    CN113391834A (zh) * 2021-06-21 2021-09-14 网易(杭州)网络有限公司 数据更新方法、装置、电子设备和存储介质
    CN113642295B (zh) * 2021-08-24 2023-10-20 北京百度网讯科技有限公司 页面排版方法、装置及计算机程序产品
    CN114816559A (zh) * 2022-03-07 2022-07-29 支付宝(杭州)信息技术有限公司 模块加载方法、装置、存储介质及电子设备

    Family Cites Families (17)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6125402A (en) * 1997-06-16 2000-09-26 Sun Microsystems, Inc. Method and system for executing one of several forms of a multi-purpose program
    US6574661B1 (en) * 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
    US20040123270A1 (en) 2002-12-23 2004-06-24 Motorola, Inc. Method and apparatus for shared libraries on mobile devices
    CN100365568C (zh) * 2004-01-06 2008-01-30 英业达股份有限公司 Java小应用程序下插件功能的实现方法
    KR101255685B1 (ko) * 2008-12-22 2013-04-24 한국전자통신연구원 로봇 응용 프로그램 실행 장치 및 방법
    CN101819525B (zh) * 2009-02-27 2013-11-27 国际商业机器公司 用于查找系统中应用的配置文件的方法和设备
    US8646100B2 (en) * 2011-06-03 2014-02-04 Apple Inc. Method for executing an application in a restricted operating environment
    US9483249B2 (en) 2014-01-06 2016-11-01 Apple Inc. On-board applet migration
    US9934014B2 (en) 2014-08-22 2018-04-03 Apple Inc. Automatic purposed-application creation
    CN106325847B (zh) 2015-07-02 2020-01-10 杭州海康机器人技术有限公司 基于iOS平台获取应用程序功能的方法和装置
    CN105407130A (zh) * 2015-09-25 2016-03-16 成都趣点科技有限公司 一种移动端插件系统及移动端插件处理方法
    CN105260196B (zh) * 2015-11-27 2018-08-07 山东超越数控电子有限公司 一种Android系统支持QT APP的实现方法
    US10802810B2 (en) * 2016-12-27 2020-10-13 Sap Se Consuming persistent library bundles
    CN109032691B (zh) * 2018-06-25 2020-12-15 腾讯科技(深圳)有限公司 一种小程序运行方法、装置及存储介质
    CN110389936B (zh) * 2019-07-25 2021-05-14 上海连尚网络科技有限公司 一种启动小程序的方法、设备和计算机存储介质
    CN110389935B (zh) * 2019-07-25 2021-04-16 上海连尚网络科技有限公司 一种启动小程序的方法、设备和计算机存储介质
    CN110908738B (zh) 2019-11-29 2021-03-23 百度在线网络技术(北京)有限公司 用于运行小程序的方法和装置

    Also Published As

    Publication number Publication date
    FR3103927A1 (fr) 2021-06-04
    US20210165666A1 (en) 2021-06-03
    FR3103927B1 (fr) 2022-03-11
    GB2589658B (en) 2021-12-15
    GB202007821D0 (en) 2020-07-08
    US11550599B2 (en) 2023-01-10
    GB2589658A (en) 2021-06-09
    CN110908738A (zh) 2020-03-24
    CN110908738B (zh) 2021-03-23

    Similar Documents

    Publication Publication Date Title
    DE102020115253A1 (de) Verfahren und einrichtung zum ausführen eines applets
    DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
    CN109062780B (zh) 自动化测试用例的开发方法及终端设备
    DE202020105389U1 (de) Front-End-Framework, Speichermedium und elektronische Vorrichtung
    DE112013004344T5 (de) Verfahren und System zum Migrieren von Prozessen in heterogenen Datenverarbeitungsumgebungen
    DE102012210420A1 (de) Verfahren für ein systemeigenes Programm für das Übernehmen desselben Transaktionskontextes, wenn durch das in einer separaten Umgebung laufende primäre Programm aufgerufen
    DE202012013466U1 (de) Vorgeparste Header für die Kompilierung
    DE60102694T2 (de) Modulares computersystem und -verfahren
    DE112011103428T5 (de) Automatisierte Analyse zusammengesetzter Anwendungen
    DE112018006540T5 (de) Dynamisches ersetzen eines aufrufs einer software-bibliothek durch einen aufruf eines beschleunigers
    DE602006000728T2 (de) Unterstützung dynamisch typisierter Sprachen in typisierten Assemblersprachen
    CN116089126A (zh) 一种数据实时采集方法、装置、设备及可读存储介质
    DE102021130630A1 (de) Testen von software-anwendungskomponenten
    DE112020000434T5 (de) Disaggregierte verteilte messanalyse system unter verwendung von dynamic application builder
    DE102019135079A1 (de) Installation von firmware-bundles abbrechen
    DE112018006175T5 (de) Fehlerbehandlung
    WO2005109196A1 (de) Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen
    DE202012013449U1 (de) System für In-Line-Einfügung von Scriptabhängigkeiten
    DE69911660T2 (de) Laden von objektorientierten rechnerprogrammen
    DE102021110515A1 (de) Laufzeitanwendungsüberwachung ohne änderung des anwendungsprogrammcodes
    DE102009019442A1 (de) Testdatengenerator
    DE102017220181A1 (de) Parallelisierungsverfahren, Parallelisierungstool und fahrzeuginterne Steuervorrichtung
    DE102020118832B3 (de) Verfahren zum Bereitstellen sicherheitsrelevanter Daten mittels eines Serversystems, Serversystem und Computerprogrammprodukt
    EP0825525B1 (de) Verfahren zur Unterstützung des Erzeugens eines Objektes
    DE112017002466T5 (de) Benutzerdefinierte prozess-engine mit minimalem speicher- und disk-resourcen-verbrauch

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed