-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Verwalten, Übertragen
und Teilen von Daten unter Programmen.
-
Hintergrund – Stand
der Technik
-
In
EP 1 227 386 A1 ist
eine Zugriffssteuerung für
Computer beschrieben, die einen allgemeinen und flexiblen Mechanismus
für die
sichere Zugriffssteuerung auf einem Computer bereitstellt. Kryptographische
Prüfsummen
werden für
die Identifizierung eines Programms einem anderen Programm bereitgestellt.
-
In
US 2002/0002703 A1 ist
ein Geräte-Verfahren
zum Aktualisieren eines Codes beschrieben, um es einer Software-erhaltenden Dateneinheit
zu ermöglichen,
von einem existenten, ersten, signierten Codestück an einem zweiten, signierten
Codestück
anzukommen.
-
In
WO 98/21683 ist ein System
und Verfahren zum Entwerfen eines Computers und eines Netzwerks
von feindlichen und Downloads, mit den Schritten eines Empfangens
eines Herunterzuladenden, Vergleichen des Heruntergeladenen mit
einer Sicherheitsrichtlinie, um zu bestimmen, ob die Sicherheitsrichtlinie
verletzt wurde und Verwerfen des Heruntergeladenen, wenn die Sicherheitsrichtlinie
verletzt wurde.
-
Wie
es wohl bekannt ist, führt
ein Computer, wie zum Beispiel ein PC, Anwendungsprogramme aus,
die in dem Computer installiert sind, um ein Wort-Verarbeiten, Internet-Browsen,
E-Mail-Kommunikation und Ähnliches
durchzuführen.
Es muss erwähnt
werden, dass einige Arten von Computerdaten, die von derartigen
Anwendungsprogrammen erzeugt werden, von anderen Programmen verwendet werden
können.
Mit anderen Worten können
Daten unter einer Vielzahl von Programmen geteilt werden, die auf
einem Computer laufen. Ein Beispiel einer Daten-teilenden Technik
ist in der
Japanischen Patentveröffentlichung
Nr. 2002-312215 offenbart.
-
Ein
PC oder ein Mobiltelefon, das in der Lage ist, eine Paketkommunikation
auszuführen,
kann ein Programm von einem WWW-(World Wide Web)-Server über das
Internet herunterladen. Das Internet steht der Öffentlichkeit offen und daher
kann jeder ein Programm ohne Einschränkung herauf laden. Daher entsteht
ein Problem, dass ein zerstörerisches
oder schädliches
Programm, wie zum Beispiel „ein
Trojanisches Pferd" oder „eine Hintertür", Daten oder persönliche Information
aus einem Benutzer-Endgerät erschleichen
kann oder eine Fehlfunktion verursachen kann, wenn es zufällig auf
einen Computer eines Benutzers heruntergeladen wird.
-
Falls
es daher ein Computer ohne jegliche Einschränkung erlaubt, dass ein Programm
Programm-orientierte Daten verwendet, die während einer Ausführung eines
anderen Programms erzeugt oder verwendet werden, entstehen einige
Probleme, die wie folgt beschrieben werden. Wenn zum Beispiel ein
Programm ausgeführt
wird, das von einem bösartigen
Hacker bereitgestellt wurde, wird von einem Benutzer eingegebene,
persönliche
Information unerlaubterweise von dem Computer des Benutzers genommen.
Es ist für
Daten, die zusammen mit einem autorisierten Programm verwendet werden,
ebenso möglich,
von anderen Programmen gestört
zu werden, die entweder zerstörerisch
oder defekt sind.
-
Um
die obigen Probleme, die eine Datensicherheit in Bezug auf andere
Programme betreffen, zu überwinden,
ist es eine Option, das Teilen von Daten unter unterschiedlichen
Programmen zu verbieten, die innerhalb eines Computers installiert
sind. In diesem Fall jedoch wird die Verwendbarkeit oder Funktionalität eines
Computers bedeutend verringert.
-
Offenbarung der Erfindung
-
Die
vorliegende Erfindung wurde durchgeführt, um die obigen Probleme
zu überwinden.
Ein Ziel der vorliegenden Erfindung ist es, ein Übertragen oder Teilen von Programm-bezogenen
Daten unter anderen Programmen zu verwalten, während die Sicherheit der Daten
aufrechterhalten wird.
-
Ein
Computer gemäß der vorliegenden
Erfindung umfasst die Merkmale des Anspruchs 1.
-
In
einem anderen Aspekt stellt die vorliegende Erfindung ein Computerprogrammprodukt
bereit, das die Merkmale des Anspruchs 4 aufweist.
-
In
der vorliegenden Erfindung wird es Zielprogramm erlaubt, die Daten,
die sich auf das ursprüngliche
Programm beziehen, nur dann zu verwenden, falls die Anbieter des
ursprünglichen
und des Ziel-Programms die gleichen sind.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt
eine Konfiguration eines Kommunikations-Endgerätes einer Ausführung der
vorliegenden Erfindung.
-
2 zeigt
eine Konfiguration einer JavaAP.
-
3 zeigt
eine Hardware-Konfiguration eines Mobiltelefons.
-
4 zeigt
eine Konfiguration eines JAR-Speichers.
-
5 zeigt
eine Konfiguration eines Notizblocks (Scratch-Pad).
-
6 zeigt
eine Ausführungsumgebung
eines Mobiltelefons.
-
7 zeigt
einen Verarbeitungsfluss von Operationen eines Herunterladens einer
JavaAP, die von dem Mobiltelefon und einem Inhalts-Server durchgeführt werden.
-
8 zeigt
einen Verarbeitungsfluss, der von einer Start-API (Launch-API) durchgeführt wird, die
von dem Mobiltelefon ausgeführt
wird.
-
9 zeigt
einen Verarbeitungsfluss einer Registrierung einer JavaAP, der von
einem Mobiltelefon in einer modifizierten Ausführung durchgeführt wird.
-
Detaillierte Beschreibung
-
Es
wird eine bevorzugte Ausführungsform der
vorliegenden Erfindung bezugnehmend auf die begleitenden Zeichnungen
beschrieben. Es muss angemerkt werden, dass gleiche Bezugszeichen
den gleichen Elementen in den Zeichnungen zugewiesen sind.
-
A. Konfiguration
-
1. Kommunikationssystem
-
1 zeigt
eine Gesamtkonfiguration eines Kommunikationssystems 1 der
Ausführungsform. Wie
gezeigt umfasst ein Kommunikationssystem 1 einen Inhalts-Server
(Content Server) 10, das Internet 20, ein Mobilpaketkommunikationsnetzwerk 30 und
ein Mobiltelefon 40.
-
Der
Inhalts-Server 10 ist in der Lage, eine Kommunikation mit
dem Mobiltelefon 40 über
das Mobilpaketkommunikationsnetzwerk 30 auszuführen. Eine
Java-Anwendungssoftware (hiernach einfach als „eine JavaAP" bezeichnet) wird
in dem Inhalts- Server 10 gespeichert,
durch die das Programm in dem Mobiltelefon 40 ausgeführt werden kann.
-
Ein
Mobilpaketkommunikationsnetzwerk 30 umfasst einen Schnittstellen-Server
(Gateway-Server) 31 und Basisstationen 32. Der
Schnittstellen-Server 31 führt einen Protokollaustausch
für Weiterleitungsdaten
zwischen einem mobilen Paket 30 und dem Internet 20 durch.
Jede der Basisstationen 32 ist in einem Kommunikationsdienstgebiet
bereitgestellt, das in dem Mobilpaketkommunikationsnetzwerk 30 aufgebaut
ist. Jede der Basisstationen 32 in einem Gebiet (Funkzelle)
führt eine
Kommunikation mit einem Mobiltelefon 40 durch, das in dem
Gebiet lokalisiert ist.
-
Ein
Mobiltelefon 40 ist ein Mobiltelefon, das für ein Mobilpaketkommunikationsnetzwerk 30 angepasst
ist. Ein Mobiltelefon 40 ist in der Lage eine Kommunikation
mit einem Inhalts-Server 10 über eine der Basisstationen 32 durchzuführen, um
eine JavaAP von einem Inhalts-Server 10 herunter zu laden.
-
2. JavaAP
-
2 ist
ein Konzeptdiagramm, das eine Konfiguration einer JavaAP darstellt,
die in den Inhalts-Server 10 gespeichert ist. Wie in der
Figur gezeigt, umfasst eine JavaAP eine JAR-Datei (JAR – Java Archive) und ADF (Anwendungs-Beschreibungsdatei – Application
Descriptor File). Eine JAR-Datei
ist ein Bündel
von Dateien einschließlich eines
Hauptprogramms (manchmal bezeichnet als ein „Java-Anwendungsprogramm" oder „JavaAPP") und einer Bilddatendatei, einer Audiodatendatei,
die zusammen mit dem Hauptprogramm verwendet werden. Die ADF speichert
Steuerinformation zum Steuern der Installation und zum Ausführen einer JAR-Datei
und zum Kommunizieren mit einem elektronischen Gerät über ein
Netzwerk und Ähnliches.
-
Insbesondere
ist eine ADF eine Datendatei, die zu dem Mobiltelefon 40 vor
einem Herunterladen einer JAR-Datei heruntergeladen wird. Da eine JAR-Datei
und die entsprechende ADF notwendigerweise in Paaren herunter geladen
und verwendet werden, wird ein URL (Uniform Resource Locator – gleichförmiger Ressourcen-Lokalisierer),
der einen Ort einer JAR-Datei im Internet 20 anzeigt, in
der ADF als ein Daten-Gegenstand „PackageURL" eingeschlossen,
um dadurch die ADF mit der JAR-Datei zu verknüpfen. „PackageURL"-Daten einer JavaAP werden
von einem Anbieter (Sender) einer JavaAP geschrieben.
-
Bezugnehmend
auf 2 ist http://www.xxx.com/yyy/JAR001 in der „PackageURL" enthalten. Daher
kann das Mobiltelefon 40 eine JAR-Datei „JAR001", die mit der ADF
verknüpft
ist, von einem WWW-Server (Inhalts-Server 10) erhalten,
der durch die URL http://www.xxx.com/yyy/JAR001 identifiziert wird.
-
In
der folgenden Beschreibung werden eine JAR-Datei und eine ADF einfach
als eine JavaAP bezeichnet, außer
wo die JAR-Datei
und die ADF unterschieden werden müssen. Ebenso sollte eine JAR-Datei
und die entsprechende ADF, die eine einzelne JavaAP umfassen, in
dem Inhalts-Magazin gespeichert sein. Jedoch ist es in einer anderen
Ausführungsform
möglich,
dass eine JAR-Datei und eine ADF in unterschiedlichen Servern gespeichert
werden können.
-
3. Mobiltelefon
-
3 ist
ein Blockdiagramm, dass eine Hardware-Konfiguration eines Mobiltelefons 40 zeigt. Wie
in 3 gezeigt, umfasst das Mobiltelefon 40 eine
CPU 401, ein ROM 402, ein RAM 403, eine
Einheit für
drahtlose Kommunikation 404, ein Eingabegerät 405,
eine Sprach-verarbeitende
Einheit 406, eine Flüssigkristallanzeige 407,
einen nicht-flüchtigen
Speicher 408 und einen Bus 409, der jede Einheit
eines Mobiltelefons 40 verbindet.
-
Eine
CPU 401 führt
ein Programm aus, der in einem ROM 402 oder einem nicht-flüchtigen
Speicher 408 gespeichert ist, um jede Einheit des Mobiltelefons
zu steuern. Ein ROM 402 speichert ein Programm zum Durchführen einer
Grundsteuerung der obigen Einheiten des Mobiltelefons. Ein RAM 403 wird
von der CPU 401 als ein Arbeitsbereich verwendet.
-
Eine
Einheit für
drahtlose Kommunikation 404 umfasst eine Antenne 404a zum
Durchführen von
drahtloser Kommunikation mit einer Basisstation 32. Insbesondere
erzeugt eine Einheit für
drahtlose Kommunikation 404 unter einer Steuerung einer CPU 401 ein
Signal auf der Grundlage von Paketkommunikationsdaten oder Sprachkommunikationsdaten
durch Modulieren einer Trägerwelle
und überträgt das Signal
zur Basisstation 32 unter Verwendung einer Trägerwelle.
Eine Einheit für
drahtlose Kommunikation 404 empfängt ein Signal von einer Basisstation 32 über eine
Antenne 404 und demoduliert das Signal, um Paketkommunikationsdaten
oder Sprachkommunikationsdaten zu erhalten.
-
Ein
Eingabegerät 405 umfasst
ein Tastenfeld, das es einem Benutzer ermöglicht, eine Nummer, einen
Buchstaben und einige Befehle einzugeben. Ein Eingabegerät 405 gibt
ein Signal zu einer CPU 401 gemäß einer Operation eines Benutzers aus.
Eine Sprach-verarbeitende Einheit 406 umfasst ein Mikrofon,
einen Lautsprecher, eine kodierende/dekodierende Einheit und Ähnliches,
die unter einer Steuerung einer CPU 401 ein Verarbeiten
durchführt,
das eine Kommunikation betrifft, wie zum Beispiel eine Anrufverbindung
oder Beendigungssteuerung. Eine Flüssigkristallanzeige 407 umfasst
eine Anzeigentafel und einen Antriebsschaltkreis für die Tafel.
-
Ein
nicht-flüchtiger
Speicher 408 ist ein SRAM (statisches RAM), EEPROM (elektrisch
löschbares,
programmierbares ROM) oder Ähnliches,
der eine Betriebssystem-Software (hiernach bezeichnet einfach als „ein OS"), ein WWW-Browserprogramm, Programm(e)
zum Einrichten einer Java-Ausführungsumgebung
speichert. Zusätzlich
speichert ein nicht-flüchtiger
Speicher 408 eine JavaAP und andere Programme, die von
einem Inhalts-Server 10 heruntergeladen werden.
-
Ein
nicht-flüchtiger
Speicher 408 umfasst einen JAR-Speicher 408a und einen Notizblock (Scratch-Pad) 408b.
Eine Vielzahl von JAR-Dateien werden in dem JAR-Speicher 408 in
einer Weise gespeichert, die in 4 gezeigt
ist. Unter Bezugnahme auf die Figur werden drei JAR-Dateien „JAR-Datei
A", „JAR-Datei
B" und „JAR-Datei
C" in einem JAR-Speicher 408a gespeichert.
-
Bezugnehmend
auf 5 werden Speicherbereiche, die JAR-Dateien zugewiesen
sind, bereitgestellt, wobei jeder Bereich Daten speichert, die von einem
Hauptprogramm der JAR-Datei erzeugt werden. In einem Fall zum Beispiel,
bei dem eine JavaAP eine Spieleanwendung ist, können die Daten Spieldaten zur
zukünftigen
Verwendung sein, die erzeugt werden, wenn ein Benutzer das Spiel
verlässt.
-
4. Ausführungsumgebung im Mobiltelefon
-
6 zeigt
eine Ausführungsumgebung,
die in einem Mobiltelefon 40 eingerichtet ist. In der Figur ist
KVM (K-Virtual Machine)
eine Art von JVM (Java Virtual Machine), die eine Software zum Umwandeln von
Java-Bytecodes in Befehlscodes ist, die es einer CPU 401 ermöglichen,
die das OS laufen lässt,
diese zu interpretieren und auszuführen. Eine API (Application
Program Interface – Anwendungsprogrammschnittstelle)
ist ein Softwaremodul zum Bereitstellen einer Funktion für eine JavaAP,
die durch eine CLDC (Connected Limited Device Configuration – Verbundene
begrenzte Gerätekonfiguration)
und andere Funktionen definiert ist, die spezifisch für das Mobiltelefon 40 sind.
-
Ein
JAM (Java Application Manager – Java Anwendungsmanager)
ist eine Software zum Durchführen
der Funktion eines Herunterladens, einer Installation, einer Ausführung und
einer Beendigung einer JavaAP unter Steuerung des OS. In einem Fall zum
Beispiel, bei dem das Hauptprogramm einer JAR-Datei A, die in 4 gezeigt
ist, ausgeführt
wird, wenn eine Anfrage zum Zugreifen auf Ressourcen, wie zum Beispiel
einem nicht-flüchtigen
Speicher 408 und einem ROM 402, erzeugt wird,
erlaubt JAM die Anfrage lediglich, falls eine angefragte Ressource
in irgendeinem der folgenden Speicherbereiche liegt: Einem Bereich
eines JAR-Speichers 408a, in dem eine JAR-Datei A gespeichert
ist; einem Bereich eines Notizblocks 408b, der einer JAR-Datei
A zugewiesen ist; einem Speicherbereich eines RAM 403, der
zum Ausführen
einer JAR-Datei A reserviert ist (hiernach bezeichnet als ein AP-Ausführungsbereich);
und einem Inhalts-Server 10, von dem das Mobiltelefon 40 eine
Java-Datei A heruntergeladen hat.
-
Einfach
gesagt, weist ein JAM eine Fähigkeit auf,
andere JavaAPs am Verwenden von Daten, die sich auf JavaAPs beziehen,
durch Einschränken
von Zugriff auf Ressourcen zu hindern, der von anderen JavaAPs durchgeführt wird,
wenn eine JavaAP ausgeführt
wird.
-
Es
muss erwähnt
werden, dass andere Software als eine JavaAP zum Aufrechterhalten
eines Telefonverzeichnisses, zum Internet-Browsen und zur Datenkommunikation
direkt unter Steuerung des OS ausgeführt wird, wie in 6 gezeigt.
-
B. Betrieb
-
1. Herunterladen einer JavaAP
-
7 ist
ein Verarbeitungsfluss eines Herunterladens einer JavaAP, der von
einem Mobiltelefon 40 und einem Inhalts-Server 10 durchgeführt wird.
Ein Verarbeiten eines Schritts 103 und später durchgeführt von
einem Mobiltelefon 40 wird von JAM durchgeführt.
-
Zunächst führt ein
Benutzer eines Mobiltelefons 40 den WWW-Browser über ein Eingabegerät 405 aus.
Als nächstes
gibt der Benutzer über
ein Eingabegerät 405 eine
Anweisung ein, um auf einen Inhalts-Server 10 zuzugreifen.
Demgemäß wird eine Anfragenachricht
zum Verbinden mit dem Inhalts-Server 10 von einem Mobiltelefon 40 zu
einem Inhalts-Server 10 übertragen (Schritt S101). Auf Empfang
der Anfragenachricht hin führt
ein Inhalts-Server 10 eine vorbestimmte Authentifizierung eines
Mobiltelefons 40 durch und überträgt dann Daten einer Menü-Seite einer
Webseite, die von einem Inhalts-Server 10 laufengelassen
wird (Schritt S102). Auf Empfang der Daten hin zeigt ein Mobiltelefon 40 ein
Bild auf einer Anzeige 407. Nachfolgend wird Information
einschließlich
eines ausgewählten
Gegenstandes, der auf der Menü-Seite
angezeigt ist, zwischen einem Mobiltelefon 40 und einem
Inhalts-Server 10 ausgetauscht.
-
Wenn
ein Benutzer, der die Menü-Seite
betrachtet, eine JavaAP auswählt,
die der Benutzer herunter zu laden wünscht, überträgt eine CPU 401 eine Anfragenachricht
zu einem Inhalts-Server 10, die eine ADF der ausgewählten JavaAP
anfragt (Schritt S103). Auf Empfang der Nachricht hin spezifiziert und
liest ein Inhalts-Server 10 die ADF aus einem Speicher
und überträgt dann
die ADF an ein Mobiltelefon 40 (Schritt S104).
-
Auf
Empfang der ADF hin überprüft eine CPU 401 Inhalte
der ADF (Dateien, die in der ADF eingeschlossen sind), um zu bestimmen,
ob eine Größe einer
JAR-Datei, die mit der ADF verknüpft
ist, klein im Vergleich zu der Menge eines verfügbaren Speicherplatzes eines
Mobiltelefons 40 ist (Schritt S105). Insbesondere liest
eine CPU „AppSize"-Daten und „SPsize"-Daten aus der ADF
und überprüft den Betrag
eines verfügbaren
Platzes eines JAR-Speichers 408a und eines Notizblocks 408b.
-
„AppSize" beschreibt eine
Größe einer JAR-Datei,
die heruntergeladen werden soll, wobei eine Größe ein Speicherplatz der JAR-Datei
ist, der zum Speichern der JAR-Datei
in einen JAR-Speicher 408a benötigt wird. „SPsize" beschreibt das Ausmaß eines
verfügbaren
Speicherplatzes eines Notizblocks 408b, der einer JAR-Datei
zugewiesen ist, die heruntergeladen werden soll. Falls ein verfügbarer Speicherplatz
in entweder einem JAR-Speicher 408a oder einem Notizblock 408b nicht
ausreichend für
die ausgewählten
JavaAP ist, bestimmt eine CPU 401, dass ein Mobiltelefon 40 die
JAR-Datei aufgrund von Knappheit eines Speicherplatzes nicht herunterladen kann,
zeigt eine Nachricht auf einer Anzeige 407, um einen Benutzer
von einem Fehler beim Herunterladen zu benachrichtigen und hält dann
ein Herunterladen an.
-
Falls
eine CPU 401 bestimmt, dass ein Mobiltelefon 40 in
der Lage ist, eine JAR-Datei herunterzuladen (Schritt S105, Ja),
identifiziert eine CPU 401 einen Inhalts-Server 10 unter
Verwendung von „PackageURL"-Daten, die in einer
ADF eingeschlossen sind, die einen Ort der JAR-Datei darstellen
und erzeugt eine Anfragenachricht, um diese an einen Inhalts-Server 10 zu
senden (Schritt S106). Auf Empfang der Nachricht hin identifiziert
ein Inhalts-Server 10 die ADF, liest die JAR-Datei aus
dem Speicher des Servers und sendet die JAR-Datei an das Mobiltelefon 40 (Schritt
S107).
-
Auf
Empfang der JAR-Datei hin liest ein Mobiltelefon 40 zunächst „AppSize"-Daten der ADF. Als nächstes reserviert
eine CPU 401 einen Speicherbereich in einem JAR-Speicher 408a,
dessen Platz durch die „AppSize"-Daten spezifiziert
ist und installiert die JAR-Datei in den reservierten Bereich. Als nächstes liest
eine CPU 401 „SPsize"-Daten aus der ADF
und reserviert einen Speicherbereich in einem Notizblock 408b, gemäß den „SPsize"-Daten, die in der
JAR-Datei verwendet werden. Als nächstes speichert eine CPU 401 die
ADF in einem nicht-flüchtigen Speicher 408 in
Verbindung mit der JAR-Datei (Schritt S108).
-
2. Ausführung einer JavaAP
-
Wenn
eine JavaAP mittels von zum Beispiel einer Anweisung eines Benutzers
ausgewählt
wird, der eine Liste von JavaAPs betrachtet, die auf einer Anzeige 407 angezeigt
wird, liest eine CPU 401 ein Hauptprogramm der ausgewählten JavaAP
aus einem JAR-Speicher 408a und führt dieses aus. Nach der Ausführung wird
ein Verarbeiten mit der JavaAP auf dem Mobiltelefon 40 durchgeführt. Es
ist möglich, dass
eine JavaAP automatisch ausgeführt
wird, wenn eine vorbestimmte Zeit kommt. Weiter ist es möglich, dass
eine Anweisung der Ausführung
von anderen, laufenden Programmen zugeführt wird. Noch weiter ist es
möglich,
dass eine derartige Anweisung über
E-Mail durch ein elektronisches Gerät zugeführt werden kann, das ein anderes
als ein Mobiltelefon 40 ist.
-
Wenn
eine Anweisung einer Ausführung
einer JavaAP eingegeben wird, wird der AP-Ausführungsbereich für die JavaAP
in einem RAM 403 reserviert. Insbesondere speichert der
AP-Ausführungsbereich
ein Hauptprogramm, das aus einem JAR-Speicher 408a gelesen wird,
Objekte die zur Ausführung
notwendig sind und andere Daten, die vor der Ausführung erzeugt
werden, werden in einem RAM 403 reserviert. Nach der Ausführung einer
JavaAP verhindert eine CPU 401 unter Steuerung von JAM,
dass die gegenwärtig
laufende JavaAP auf Daten zugreift, die für andere JavaAP verwendet werden,
wie oben beschrieben.
-
Wenn
eine CPU 401 eine Anfrage zum Ausführen einer anderen JavaAP empfängt, die
in einem nicht-flüchtigen
Speicher 408 gespeichert ist, in einem Fall bei dem ein
Verarbeiten mit der JavaAP auf einem Mobiltelefon 40 durchgeführt wird,
führt eine CPU 401 eine
API zum Ausführen
einer anderen API aus (hiernach bezeichnet als „eine Start-API"). Wenn die Start-API gestartet wird,
wird ein Speicherbereich für
die Start-API (hiernach
bezeichnet als ein Startbereich) in einem RAM 403 reserviert,
zu dem lediglich die Start-API unter anderen APIs zugreifen darf.
-
3. Verarbeiten mit einer Start-API
-
3 zeigt
ein Flussdiagramm, das ein Beispiel eines Verarbeitens beschreibt,
dass durch eine CPU 401 mit einer Start-API durchgeführt wird.
Wie in der Figur gezeigt, erhält
eine CPU 401 zunächst „PackageURL"-Daten von einer
ADF einer gegenwärtig
laufenden JavaAP (hiernach bezeichnet als „eine ursprüngliche
JavaAP"), die in
einem nicht-flüchtigen
Speicher 408 gespeichert ist (Schritt S201). Es muss erwähnt werden,
dass die „PackageURL"-Daten einen Ort
(URL) der ursprünglichen
JavaAP darstellen. Als nächstes
erhält
eine CPU 401 „PackageURL"-Daten von einer
ADF einer JavaAP, die zur Ausführung
ausgewählt
ist (hiernach bezeichnet als „eine
Ziel-JavaAP") (Schritt
S202).
-
Als
nächstes
vergleicht eine CPU zwei FQDNs (Voll-qualifizierte Domänennamen – Fully Qualified Domain Names)
der URLs, die in den Schritten S201 und S202 erhalten werden (Schritt S203),
ob die FQDNs identisch sind (Schritt S204). Und zwar werden die
Ursprünge
(Anbieter – Provider)
der ursprünglichen
JavaAP und der Ziel-JavaAP geprüft.
Falls die FQDNs nicht identisch sind, zeigt eine CPU 401 eine
Nachricht auf einer Anzeige 407 an, um einen Benutzer von
einem Fehler eines Ausführens
der Ziel-JavaAPs zu benachrichtigen (Schritt S205) und beendet dann
ein Ausführen
einer Ziel-JavaAP
(Schritt S206). In dieser Weise wird eine Start-API beendet.
-
Falls
die FQDNs identisch sind (Schritt S294, Ja), bestimmt eine CPU 401,
ob die Ziel-JavaAP zusammen mit anderen Java APs arbeiten darf (Schritt S207).
Insbesondere umfasst eine ADF eine JavaAP einschließlich „LaunchApp"-Daten, die darstellen,
ob oder ob nicht die JavaAP mit anderen JavaAPs zusammen arbeiten
darf. „LaunchApp"-Daten werden von
einem Anbieter der JavaAP gesetzt. Zum Beispiel werden „LaunchApp"-Daten auf „1" für
eine JavaAP gesetzt, die mit anderen JavaAPs zusammen arbeiten darf
(hiernach bezeichnet als „eine
kooperative JavaAP")
und auf „0" wird für eine JavaAP
gesetzt, die daran gehindert wird, mit anderen JavaAPs zusammen
zu arbeiten. Es ist möglich,
eine zusätzliche
Information in „LaunchApp" einzuschließen, wie zum
Beispiel eine Identifikation der kooperativen JavaAP(s).
-
Eine
CPU 401 erhält „LaunchApp-Daten" von der ADF, die
in einem nicht-flüchtigen
Speicher 408 gespeichert ist und bestimmt, ob die Ziel-JavaAP eine
kooperative JavaAP ist, unter Bezugnahme auf die „LaunchApp"-Daten („1" oder „0"). Falls die Ziel-JavaAP
keine kooperative JavaAP ist (Schritt 207, Nein), zeigt
eine CPU 401 eine Nachricht an, um den Benutzer von einem
Fehler eines Ausführens
der Ziel-JavaAP zu benachrichtigen (Schritt S205) und beendet ein
Ausführen
der Ziel-JavaAP (Schritt S206).
-
Falls
die Ziel-JavaAP eine kooperative JavaAP ist (Schritt 207,
Ja), bestimmt eine CPU 401, ob die von der Ziel-JavaAP
angefragten Daten Daten sind, die mit der ursprünglichen JavaAP verwendet werden
(Schritt S208). Die Daten sind zum Beispiel Parameter und andere
Verarbeitungsergebnisse, die während
einer Ausführung
der ursprünglichen
JavaAP erzeugt werden. Es ist möglich,
dass die Daten Bilddaten oder Audiodaten sein können, die in einer JAR-Datei
der ursprünglichen
Anwendung gespeichert sind.
-
Falls
die Ziel-JavaAP die Daten in Schritt S208 nicht anfragt, beendet
eine CPU 401 die ursprüngliche
JavaAP. Als nächstes
liest eine CPU 401 ein Hauptprogramm der Ziel-JavaAP aus
einem JAR-Speicher 408 und führt dieses aus (Schritt S209).
-
In
dieser Art und Weise wird die Start-API beendet. Falls die Ziel-JavaAP
Daten in Schritt S208 anfragt, zeigt eine CPU 401 eine
Anfragenachricht auf einer Anzeige 407 an, die den Benutzer
fragt, ob eine Übertragung
der Daten zu der ursprünglichen JavaAP
erlaubt ist.
-
Falls
der Benutzer eine Anweisung eingibt, um die Übertragung zu verhindern oder
keine Anweisung eingegeben wird, nach dem eine vorbestimmte Zeit
verstrichen ist, seit dem die Anfragenachricht angezeigt wurde (Schritt
S210, Nein), überträgt eine CPU 401 die
Daten nicht und zeigt eine Nachricht auf einer Anzeige 407 an,
die einen Benutzer benachrichtigt, dass die Ziel-JavaAP gestoppt
ist (Schritt S205) und bricht dann die Ziel-JavaAP ab (Schritt S206),
um die Start-API zu beenden. Es ist möglich, dass die Anfragenachricht
eine Sprache sein kann, die von einer CPU 401 erzeugt wird.
-
Falls
der Benutzer in dem vorbestimmten Zeitraum, nachdem eine Anfragenachricht
angezeigt wird, eine Anweisung eingibt, um die Datenübertragung
zu erlauben (Schritt S210, Ja), extrahiert eine CPU 401 Daten
von entweder dem AP-Ausführungsbereich
eines RAM 403 oder dem Bereich eines Notizblocks 408b,
der der Ziel-JavaAP zugewiesen ist und speichert die extrahierten
Daten in dem Startbereich eines RAM 403 (Schritt 211).
Als nächstes
beendet eine CPU 401 die ursprüngliche JavaAP und löscht die
in dem AP-Ausführungsbereich
eines RAM 403 gespeicherten Daten. Schließlich liest
eine CPU 401 ein Hauptprogramm der Ziel-JavaAP aus einem JAR-Speicher 408a und
führt dieses
aus (Schritt 213).
-
Nach
einer Ausführung
der Ziel-JavaAP liest eine CPU die Daten aus dem Startbereich eines
RAM 403. Als nächstes
liest eine CPU 401 die Daten in entweder einem AP-Ausführungsbereich
eines RAM 403, der für
die Ziel-JavaAP reserviert ist oder einem Speicherbereich eines
Notizblocks 408b, der der Ziel-JavaAP zugewiesen ist (Schritt
S213) und beendet dann die Start-API.
-
Aus
dem Vorangehenden werden, wenn die Ziel-JavaAP gestartet ist, die
Daten, die mit der ursprünglichen
JavaAP verwendet werden, in einen Speicherbereich übertragen
(den AP-Ausführungsbereich
oder einen Bereich eines Notizblocks 408, der der Ziel-JavaAP
zugewiesen ist), von dem auf die Daten durch eine Ziel-JavaAP zugegriffen
werden kann. Als ein Ergebnis können
die Daten bei einem Verarbeiten verwendet werden, das durch die Ziel-JavaAP
durchgeführt
wird.
-
Ein
Beispiel von JavaAPs wird unten beschrieben, in dem zwei JavaAPs
durch einen einzelnen Anbieter bereitgestellt werden, wobei die
eine eine Strategie-orientierte Baseball-Simulations-Spielesoftware ist (hiernach
bezeichnet als „eine
Spiele-JavaAP")
und die andere eine Baseball-Training-Spielesoftware zum Erzeugen eines Baseball-Spielers
und zum Trainieren von diesem ist, um seine Fertigkeiten zu entwickeln
(Schlagen, Aufschlagen, zur Basis rennen, usw.). Die Daten des Baseballspielers
sind für
das Spiel zugänglich.
Die Software wird hiernach bezeichnet als „eine Übungs-JavaAP". Ein Benutzer eines Mobiltelefons 40 lädt die JavaAP
herunter und führt
die Spiele-JavaAP und die Übungs-JavaAP
aus, um Baseball unter Verwendung seines Baseball-Spielers zu spielen. In
diesem Fall sind FQDNs der Spiele-JavaAP und der Übungs-JavaAP
die gleichen, wodurch Daten, die sich auf die Baseball-Spieler beziehen,
von der Spiele-JavaAP zu der Übungs-JavaAP übertragen werden
können
oder die Daten zwischen den obigen zwei JavaAPs geteilt werden können.
-
Zusammenfassend
ermöglicht
es gemäß der Ausführung ein
Mobiltelefon 40, dass eine Ziel-JavaAP auf Programm-bezogene
Daten zugreift, die mit einer ursprünglichen JavaAP verwendet oder
erzeugt werden, lediglich dann falls Anbieter ursprünglichen
und der Ziel-JavaAPs die gleichen sind.
-
Selbst
in einem Fall daher, bei dem eine unautorisierte JavaAP fälschlicherweise
von einem Mobiltelefon 40 heruntergeladen und ausgeführt wird, wird
eine Datenübertragung,
die sich auf ein unautorisiertes Programm bezieht, zu der unautorsierten
JavaAP verhindert, da die Anbieter der JavaAPs überprüft werden. Weiter wird in dieser
Ausführung,
nach einer Vollendung einer Authentifizierung der Ursprünge (Anbieter)
der JavaAPs (FQDN) ein Benutzer aufgefordert, eine Erlaubnis eines Übertragens
der Daten zu geben. Demgemäß wird eine
Datensicherheit und Flexibilität
einer Datenübertragungs-Verwaltung weiter
verbessert.
-
Wie
in der Ausführung
beschrieben, führt
ein Mobiltelefon 40 Programme und APIs aus, die in einem
ROM 402 und einem nicht-flüchtigen
Speicher 408 gespeichert sind, um ein in 7 und 8 gezeigtes
Verarbeiten durchzuführen.
Es ist möglich, die
obigen Programme und APIs einem Mobiltelefon 40 über ein
Kommunikationsnetzwerk bereitzustellen. Weiter ist es möglich, die
obigen Programme und APIs über
ein Computer-lesbares Speichermedium bereitzustellen, wie zum Beispiel
einer Floppy-Disk, einer CD-ROM und ein Flash-Speicher.
-
C. Modifikationen
-
1. Beispiel 1
-
Bei
dem Verarbeiten mit der in 8 gezeigten
Start-API ist es möglich,
einen zusätzlichen Schritt
bereitzustellen, um im Voraus zu bestimmen, ob ein Benutzer eine
Erlaubnis erteilt, Daten zwischen der ursprünglichen und der Ziel-JavaAP
auszutauschen. In diesem Fall wird, bevor JavaAPs ausgetauscht werden,
der Benutzer aufgefordert, zwei oder mehr JavaAPs zu registrieren,
wenn es der Benutzer wünscht,
dass Daten geteilt werden.
-
9 zeigt
ein Beispiel eines Verarbeitungsflusses der obigen Registrierung,
die von einer CPU 401 durchgeführt wird.
-
Das
Registrierungs-Verarbeiten wird gestartet, wenn ein Benutzer eine
Anweisung eingibt, zwei oder mehr JavaAPs zu registrieren, die Daten
untereinander teilen dürfen.
-
Bezugnehmend
auf die Figur, erhält,
wenn ein Benutzer eine JavaAP aus anderen JavaAPs auswählt, die
in einem nicht-flüchtigen
Speicher 408 installiert sind (Schritt S301), eine CPU 401 eine FQDN
der ausgewählten
JavaAP, die sich auf „PackageURL"-Daten bezieht, die
in einer ADF der JavaAP eingeschlossen sind (Schritt S302). Als
nächstes
sucht eine CPU 401 JavaAP(s) mit einer FQDN, die die gleiche
wie die FQDN ist, die in Schritt S302 erhalten wird, in einem nicht-flüchtigen
Speicher 408. Falls eine JavaAP(s) mit der gleichen FQDN
gefunden wird, zeigt eine CPU 401 eine Liste der gefundenen
JavaAP(s) auf einer Anzeige 407 an (Schritt S303).
-
Wenn
der Benutzer nach einem Bezugnehmen auf die Liste eine JavaAP(s)
spezifiziert, die Daten mit der JavaAP teilen darf, die in Schritt
S301 ausgewählt
ist (Schritt S304), speichert eine CPU 401 entsprechende
Identifikationen (zum Beispiel einen Dateinamen einer JAR-Datei)
der JavaAP in einem nicht-flüchtigen
Speicher 408, die in Schritt S304 spezifiziert ist und
die in Schritt S301 ausgewählte
JavaAP als Registrierungsinformation (Schritt S305). Daher ist es
möglich,
andere JavaAP(s) zu registrieren, die Daten der JavaAP teilen dürfen, die
in Schritt S301 ausgewählt
ist, ist verboten.
-
In
diesem Beispiel bestimmt nach einer Vollendung der Registrierung
bei dem Verarbeiten mit der in 8 gezeigten
Start-API eine CPU 401, ob ein Übertragen von Daten unter JavaAPs
bezüglich (i)
Anbietern der ursprünglichen
und der Ziel-JavaAPs und (ii) einer früheren Eingabe durch einen Benutzer
erlaubt ist. Und zwar ist es für
die obigen zwei Bedingungen erforderlich, erfüllt zu werden, um Daten zu übertragen,
wodurch eine Datensicherheit in einem Mobiltelefon 408 verbessert
wird.
-
2. Beispiel 2
-
In
der obigen Ausführung
werden Schritte S201 bis S213 aus 8 durch
eine API (die Start-API) durchgeführt. Jedoch ist es möglich, diese Schritte
durch JAM oder ein OS durchzuführen.