System and Method of Creating and Communicating with Component Based Wireless Applications
44 claims: 10 independent, 34 dependent
- 1モバイル通信装置(100)上の無線コンポーネントアプリケーションプログラム(302)の実行可能なバージョンを供給する方法であって、前記方法は、 サーバ(110)からネットワーク(102、104)を介して前記無線コンポーネントアプリケーションプログラム(302)を受信するステップであって、前記無線コンポーネントアプリケーションプログラムは、1組のデータ、メッセージ、プレゼンテーションおよびワークフローコンポーネント(400、402、404、406)を含み、前記データコンポーネント(400)は、前記無線コンポーネントアプリケーションプログラムによって使用されるデータエンティティを定義するためのものであり、前記メッセージコンポーネント(404)は、外部のシステムと通信するためのメッセージを定義するためのものであり、前記プレゼンテーションコンポーネント(402)は、 複数のスクリーンを定義するためのものであり、前記ワークフローコンポーネント(406)は、 前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)の動作を調整するためのものであり、前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)は、構造化定義言語で表現されたメタデータ記述子を含み、前記ワークフローコンポーネント(406)は、ネイティブ言語 で 表現されており、前記ワークフローコンポーネント(406)は、前記サーバ(110)においてコンパイルされている、ステップと、 前記1組のデータ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)を定義するメタデータ記述子と前記ワークフローコンポーネント(406)を定義するコンパイルされた命令とを前記装置(100)のアプリケーションコンテナ(300)の中にロードするステップであって、前記アプリケーションコンテナ(300)は、前記無線コンポーネントアプリケーションプログラム(302)のためのクライアントランタイム環境をホスティングするためのものである、ステップと、 前記メタデータ記述子および前記コンパイルされた命令から、前記装置(100)の前記アプリケーションコンテナ(300)における後続の実行のための前記実行可能なバージョンを供給されたコンポーネントアプリケーションプログラム(302)として生成するステップと を含む、方法。
- 2前記アプリケーションコンテナ(300)は、コンポーネントフレームワーク(206)によって提供され、前記コンポーネントフレームワークは、前記実行可能なバージョンのためのインターフェースを前記装置(100)のインフラストラクチャ(204)に提供し、前記装置(100)のインフラストラクチャ(204)は、プロセッサ(208)とメモリ(210)とを含む、請求項1に記載の方法。
- 3前記アプリケーションコンテナ(300)は、前記装置(100)のインフラストラクチャ(204)のオペレーティングシステムの一部である、請求項1または請求項2に記載の方法。
- 4それぞれの第2のクライアントランタイム環境において第2のコンポーネントアプリケーションプログラムをホスティングする前記コンポーネントフレームワーク(206)によって第2のアプリケーションコンテナを作成するステップをさらに含む、請求項2 に 記載の方法。
- 5前記アプリケーションコンテナ(300)のクライアントランタイム環境は、前記実行可能なバージョンを前記サーバ(110)のクライアントとして表す、請求項1または請求項2に記載の方法。
- 6テンプレートベースの実行モデルによって前記実行可能なバージョンをネイティブコードで実行するステップをさらに含み、前記モデルは、前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)のメタデータ記述子が配置されるように構成された複数の予め定義されているテンプレートを用いる、請求項5に記載の方法。
- 7前記メタデータ記述子に関連付けられたメタデータで定義されたパラメータを前記予め定義されているテンプレートに配置し、前記実行可能なバージョンを前記ネイティブコードで構築するために前記配置済みのテンプレートを用いるステップをさらに含む、請求項6に記載の方法。
- 8前記予め定義されているテンプレートは、前記データコンポーネント(400)、前記メッセージコンポーネント(404)および/または前記プレゼンテーションコンポーネント(402)を含む、前記無線コンポーネントアプリケーションプログラム(302)のコンポーネントに対して提供される、請求項6または請求項7に記載の方法。
- 9メタデータベースの実行モデルによって前記実行可能なバージョンを実行するステップをさらに含み、前記モデルは、実行中の構文解析のためにメタデータ定義を前記構造化定義言語で保持するように構成されている、請求項5に記載の方法。
- 10メタデータベースの実行モデルによって前記実行可能なバージョンを実行するステップをさらに含み、前記モデルは、実行中に構造化定義言語のノードのネイティブ表現を用いるように構成されている、請求項5に記載の方法。
- 11前記アプリケーションコンテナ(300)によって前記サーバ(110)から受信されたメッセージデータを解析し、前記装置(100)の前記メモリ(212)内の前記メタデータの表現を更新するステップをさらに含む、請求項2から10のいずれか一項に記載の方法。
- 12前記実行可能なバージョンと前記コンポーネントフレームワーク(206)との間での前記アプリケーションコンテナ(300)による通信をモニタするステップをさらに含む、請求項11に記載の方法。
- 13前記アプリケーションコンテナ(300)は、前記メッセージデータのメモリアロケーション、I/O中の前記メッセージデータの管理、および/または、前記装置のユーザインターフェース上でのメッセージデータ表現を含む動作を含む前記メッセージデータの処理をモニタする、請求項12に記載の方法。
- 14ネットワーク(102、104)を介して前記無線コンポーネントアプリケーションプログラム(302)の前記ワークフローコンポーネント(406)を受信するステップをさらに含み、前記ワークフローコンポーネント(406)は、構造化定義言語で表現されたメタデータ記述子を有する前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)の動作を調整するための1組の命令を含む、請求項8に記載の方法。
- 15前記アプリケーションコンテナ(300)が、前記1組の命令のための前記クライアントランタイム環境を提供するステップをさらに含む、請求項14に記載の方法。
- 16前記実行可能なバージョンは、実行可能な1組の命令を含み、前記1組の命令は、ネイティブコードに変換された命令 を 含む、請求項15に記載の方法。
- 17前記構造化定義言語は、XMLで表現されている、請求項15または請求項16に記載の方法。
- 18前記実行可能なバージョンを前記装置(100)上の1組のジェネリックサービスに結合するステップをさらに含む、請求項1から17のいずれか一項に記載の方法。
- 19前記1組のジェネリックサービスは、前記コンポーネントフレームワーク(206)によって提供されるフレームワークサービスの標準セットとして予め定義されている、請求項18に記載の方法。
- 20前記予め定義されているフレームワークサービスは、通信、プレゼンテーション、持続性、アクセス、プロビジョニング、および/または、ユーティリティを含む、請求項19に記載の方法。
- 21前記フレームワークサービスは、複数のコンポーネントアプリケーションプログラム(302)からのコンポーネントを共有するように構成されている、請求項20に記載の方法。
- 22ネットワーク(102、104)を介してサーバ(110)から受信されたコンポーネントアプリケーションプログラム(302)の実行可能なバージョンを供給するように構成されたモバイル通信装置(100)であって、前記受信されたコンポーネントアプリケーションプログラム(302)は、1組のデータ、メッセージ、プレゼンテーションおよびワークフローコンポーネント(400、402、404、406)を含み、前記データコンポーネント(400)は、前記コンポーネントアプリケーションプログラムによって使用されるデータエンティティを定義するためのものであり、前記メッセージコンポーネント(404)は、外部のシステムと通信するためのメッセージを定義するためのものであり、前記プレゼンテーションコンポーネント(402)は、複数のスクリーンを定義するためのものであり、前記ワークフローコンポーネント(406)は、前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)の動作を調整するためのものであり、前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)は、構造化定義言語で表現されたメタデータ記述子を含み、前記ワークフローコンポーネント(406)は、ネイティブ言語 で 表現されており、前記ワークフローコンポーネント(406)は、前記サーバ(110)においてコンパイルされており、 前記モバイル通信装置(100)は、 前記実行可能なバージョンを実行するためにプロセッサ(208)と関連するメモリ(212)とを含む前記モバイル装置を動作させる装置インフラストラクチャ(204)と、 前記装置インフラストラクチャ(204)に結合されたユーザインターフェース(202)であって、前記実行可能なバージョンと通信するように構成された入力装置および出力装置を有するユーザインターフェース(202)と、 前記装置インフラストラクチャ(204)に結合された通信装置であって、前記ネットワーク(102、104)と通信するために無線 ト ランシーバ(200)に接続するように構成された通信装置と、 前記メタデータ記述子および前記コンパイルされた命令から、前記実行可能なバージョンを供給されたコンポーネントアプリケーションプログラム(302)として生成し、前記装置インフラストラクチャ(204)に対して前記実行可能なバージョンをインターフェースするように構成されたコンポーネントフレームワーク(206)と を含む、モバイル通信装置(100)。
- 23前記コンポーネントフレームワーク(206)によって提供されるアプリケーションコンテナ(300)をさらに含み、前記アプリケーションコンテナ(300)は、前記実行可能なバージョンのためのクライアントランタイム環境を提供するためのものである、請求項22に記載のモバイル通信装置(100)。
- 24前記アプリケーションコンテナ(300)は、前記装置インフラストラクチャ(204)のオペレーティングシステムの一部を含む、請求項22または請求項23に記載のモバイル通信装置(100)。
- 25前記コンポーネントフレームワーク(206)は、それぞれのクライアントランタイム環境においてコンポーネントアプリケーションプログラムのそれぞれをホスティングするように複数のアプリケーションコンテナに対して構成されている、請求項23 に 記載のモバイル通信装置(100)。
- 26前記アプリケーションコンテナ(300)のクライアントランタイム環境は、前記実行可能なバージョンを前記サーバ(110)のクライアントとして表すように構成されている、請求項22または請求項23に記載のモバイル通信装置(100)。
- 27テンプレートベースの実行モデルによって前記実行可能なバージョンをネイティブコードで実行するように構成されたアプリケーションコンテナ(300)をさらに含み、前記モデルは、前記コンポーネントのメタデータ記述子が配置されるように構成された複数の予め定義されているテンプレートを用いる、請求項26に記載のモバイル通信装置(100)。
- 28前記予め定義されているテンプレートは、前記メタデータ記述子に関連付けられたメタデータで定義されたパラメータを配置するように構成されており、前記配置済みのテンプレートは、前記実行可能なバージョンを前記ネイティブコードで構築するように構成されている、請求項27に記載のモバイル通信装置(100)。
- 29前記予め定義されているテンプレートは、前記データコンポーネント(400)、前記メッセージコンポーネント(404)および/または前記プレゼンテーションコンポーネント(402)を含む、前記コンポーネントアプリケーションプログラム(302)のコンポーネントに対して提供される、請求項27または請求項28に記載のモバイル通信装置(100)。
- 30メタデータベースの実行モデルによって前記実行可能なバージョンを実行するように構成されたアプリケーションコンテナ(300)をさらに含み、前記モデルは、実行中の構文解析のためにメタデータ定義を前記構造化定義言語で保持するように構成されている、請求項23に記載のモバイル通信装置(100)。
- 31メタデータベースの実行モデルによって前記実行可能なバージョンを実行するように構成されたアプリケーションコンテナ(300)をさらに含み、前記モデルは、実行中に構造化定義言語のノードのネイティブ表現を用いるように構成されている、請求項23に記載のモバイル通信装置(100)。
- 32前記アプリケーションコンテナ(300)は、前記サーバ(110)から受信されたメッセージデータを解析し、前記装置の前記メモリ(212)内の前記メタデータの表現を更新するように構成されている、請求項23から31のいずれか一項に記載のモバイル通信装置(100)。
- 33前記アプリケーションコンテナ(300)は、前記実行可能なバージョンと前記コンポーネントフレームワーク(206)との間での通信をモニタするように構成されている、請求項32に記載のモバイル通信装置(100)。
- 34前記アプリケーションコンテナ(300)は、前記メッセージデータのメモリアロケーション、I/O中の前記メッセージデータの管理、および/または、前記装置のユーザインターフェース上でのメッセージデータ表現を含む動作を含む前記メッセージデータの処理をモニタするように構成されている、請求項33に記載のモバイル通信装置(100)。
- 35前記ワークフローコンポーネント(406)をさらに含み、前記ワークフローコンポーネント(406)は、構造化定義言語で表現されたメタデータ記述子を有する前記データ、メッセージおよびプレゼンテーションコンポーネント(400、402、404)の動作を調整するための1組の命令を含む、請求項29に記載のモバイル通信装置(100)。
- 36前記アプリケーションコンテナ(300)が、前記1組の命令のための前記クライアントランタイム環境を提供するように構成されている、請求項35に記載のモバイル通信装置(100)。
- 37前記実行可能なバージョンは、実行可能な1組の命令を含み、前記1組の命令は、ネイティブコードに変換された命令 を 含む、請求項36に記載のモバイル通信装置(100)。
- 38前記構造化定義言語は、XMLを含む、請求項36または請求項37に記載のモバイル通信装置(100)。
- 39前記装置上の1組のジェネリックサービスに結合された前記実行可能なバージョンをさらに含む、請求項22から38のいずれか一項に記載のモバイル通信装置(100)。
- 40前記1組のジェネリックサービスは、前記コンポーネントフレームワーク(206)によって提供されるフレームワークサービスの標準セットを含む、請求項39に記載のモバイル通信装置(100)。
- 41前記予め定義されているフレームワークサービスは、通信、プレゼンテーション、持続性、アクセス、プロビジョニング、および/または、ユーティリティを含む、請求項40に記載のモバイル通信装置(100)。
- 42前記フレームワークサービスは、複数のコンポーネントアプリケーションプログラムからのコンポーネントを共有するように構成されている、請求項40または請求項41に記載のモバイル通信装置(100)。
- 43モバイル通信装置(100)上のコンポーネントアプリケーションプログラム(302)の実行可能なバージョンを供給するコンピュータプログラム製品であって、前記コンピュータプログラム製品は、請求項1~21のいずれか一項に記載の方法を実装する前記モバイル通信装置(100)のプロセッサ(208)によって実行可能なプログラムコード手段を具体化するコンピュータ読み取り可能な媒体(212)を含む、コンピュータプログラム製品。
- 44請求項22から42のいずれか一項に記載の少なくとも1つの通信装置(100)を含む無線通信システム。
Independent claims44
74 paragraphs, as filed
The present application generally relates to wireless communication, and particularly to software for mobile communication devices.
Today, the use of mobile communication devices such as mobile phones, PDAs with wireless communication capabilities and 2-way pagers is constantly increasing. The utility of software applications running on these mobile communication devices is also increasing. For example, a mobile phone may include an application that searches for weather in a range of cities, and a PDA may include an application that allows a user to buy groceries. These software applications make good use of the mobility and connectivity of these devices to provide users with timely and useful services, regardless of where they are. However, due to the resource constraints of mobile communication devices (eg memory) and the complexity of delivering data wirelessly to mobile communication devices, developing applications for mobile communication devices remains a difficult and time-consuming task. Is.
Currently, mobile communication devices are configured to communicate with web services via Internet-based browsers and / or native applications. Browsers have the advantage that they can be configured to work cross-platform for a variety of different devices, but they also have the disadvantage of requiring pages from web services (screen definitions in HTML). Interfere with the persistence of the data contained on the screen. A further disadvantage of browsers is that the screen is rendered at runtime (runtime), which can be resource intensive. Native applications have the advantage that by developing by specifying the type of mobile device, application programs that are relatively optimized for each runtime environment are provided. However, since native applications are not platform-independent, they require the development of multiple versions of the same application, and because of their relatively large size, they have the disadvantage of imposing a burden on the memory resources of mobile devices. There is a need for an application program that can be run on a web service client with a wide range of runtime environments and that consumes less resources on mobile devices.
<p> The systems and methods disclosed herein provide a component-based application environment that at least partially eliminates or mitigates the shortcomings mentioned above.</p><p> Current application programs cannot be configured to run on clients with a wide range of runtime environments and can consume undesirably high resources on mobile devices. A browser is an application program that has the disadvantage of requesting a page (screen definition in HTML) from a web service, which hinders the persistence of the data contained on the screen. A further disadvantage of browsers is that the screen is rendered at run time, which can be resource intensive. Native applications are a further example of current application programs, but because they are not platform-independent, they require the development of multiple versions of the same application, and because they are relatively large, they burden the memory resources of mobile devices. Has the disadvantage of imposing.</p>
<p> A system is provided that creates wireless component applications and communicates with them, in contrast to current application programs. The system includes mobile communication devices that communicate with web services via wireless networks, the Internet and / or message map services as needed. Each wireless component application has a set of components and a set of instructions expressed in a structured definition language, which are executed by the component framework on one of the mobile communication devices. This component can include one or more data components, presentation components, message components and / or workflow components. The component framework runs component applications within an application container. Application containers provide access to common framework services, including one or more of communication services, screen services, persistence services, access services, provisioning services and utility services. The message can be sent from the component application to the message map service, which uses the application message map to convert this message into the format required by the web service and send this message to the web service. The response to this message can be sent to the message map service, converted to the format required by the component application, and sent to the component application.</p><p> In addition, a system that creates this wireless component application and communicates with it also provides a way to deploy the wireless component application and communicate with it. This method includes deploying a wireless component application on a mobile communication device and deploying a message map on a message map service. This method may further include, in one example, the step of sending a message to the message map service, which uses the message map to convert the message into the format required by the web service and then this method. Send a message to a web service. This method can further include sending the response from the web service to the message map service, which converts the message to the format required by the wireless component application and converts this message to the wireless component application. Send.</p><p> The present application provides a mobile communication device configured to supply an executable version of a component application program received from a server over a network. This program has multiple components, including metadata descriptors expressed in a structured definition language. This mobile device is connected to an infrastructure means to run an executable version, an interface means connected to the infrastructure means and configured for communication with the executable version by a user of the device, and a network connected to the infrastructure means. Includes communication means configured to communicate with and framework means configured to interface the executable version to the infrastructure means and provide the executable version with a client runtime environment.</p><p> The present application further provides a computer program product for supplying an executable version of a component application program on a mobile communication device. This program has multiple components, including metadata descriptors expressed in a structured definition language. This computer program product is derived from a computer-readable medium, a component framework module stored on the computer-readable medium to interface an executable version to the equipment infrastructure, including the processor and associated memory, and a metadata descriptor. Includes an application container module connected to a component framework module for generating an executable version and hosting a client runtime environment for the resulting executable version.</p><p> The present application further provides a method of supplying an executable version of a component application program on a mobile communication device. This method involves receiving multiple components representing a component application program, including a metadata descriptor expressed in a structured definition language, from the server over the network, and the device's application container for the program. It includes loading a metadata descriptor within the application container for hosting the client runtime environment, and generating an executable version of the device that runs in the client runtime environment from the metadata descriptor.</p><p> The present application further provides a mobile communication device configured to supply an executable version of a component application program received from a server over a network. This program has multiple components, including metadata descriptors expressed in a structured definition language. This mobile device is the device infrastructure for operating the mobile device, the device infrastructure including the processor and associated memory for running the executable version, and the inputs and outputs configured to communicate with the executable version. An interface to a user interface that has a device and is connected to the device infrastructure, a communication device that is connected to the device infrastructure and is configured to connect to a wireless transceiver to communicate with the network, and an executable version for the device infrastructure. Includes a component framework that is configured to provide a client runtime environment for the executable version.</p><p> The above and other features will become even more apparent in the following detailed description with reference to the accompanying drawings.</p>
Referring to FIG. 1, communication system 10 includes a mobile communication device 100 for interacting with one or more web services provided by a web server 106 via a connected wireless network 102 and internet 104. Each of the mobile devices 100 sends and receives a request / response message 105 while communicating with the web service of the web server 106. The mobile device 100 acts as a web client for web services by using request / response messages 105 in the form of message header information and related data content (eg, product price and availability requests and receipts from online distributors). Operate. The web server 106 presents the appropriate business logic (method) to the client application program 302 (see FIG. 2) of the mobile device 100 in order to satisfy the appropriate request / response message 105 (see FIG. 2). Communicate with the application server 110 via, for example, HTTP and component APIs (but not limited to these). The application program 302 of the mobile device 100 can use the business logic of the application server 110 in the same way as calling a method for an object (or function). The mobile device 100 can communicate with one or more web servers 106 and related application servers 110 via the wireless network 102. Further, if necessary, the mobile device 100 may bypass the web server 106 by being directly connected to the application server 110.
Referring to FIG. 2, the mobile communication device 100 is a device such as, but not limited to, a mobile phone, a PDA, a 2-way pager or a dual-mode communication device (see FIG. 9). The mobile device 100 includes a wireless transceiver 200 connected to the device infrastructure 204 via a connection 218. While the mobile device 100 is in operation, the wireless transceiver 200 can be connected to the wireless network 102 by an appropriate wireless channel (eg RF or IR link), which allows the mobile devices 100 to and through the wireless network 102. It becomes possible to communicate with an external system (eg, web server 106) and coordinate request / response messages 105 between the client application program 302 and servers 106, 110 (see Figure 1). The wireless network 102 supports the transmission of the data in the request / response message 105 between the device and an external system connected to the wireless network 102. The wireless network 102 may support telephone voice communication between the mobile communication device 100 and a device outside the wireless network 102. The wireless network 102 can use wireless data transmission protocols such as, but not limited to, DataTAC, GPRS, CDMA, and the like.
Seeing FIG. 2 again, the mobile device 100 also has a user interface 202 connected to the device infrastructure 204 by a connection 222 to interact with the user (not shown). The user interface 202 includes one or more user input devices such as, but not limited to, a QWERTY keyboard, keypad, track wheel, stylus, etc., and a user output device, such as an LCD screen display. If the screen is touch sensitive, the display can also be used as a user input device controlled by the device infrastructure 204. The user of the mobile device 100 uses the user interface 202 to coordinate the request / response message message 105 via the system 10 (see FIG. 1) used by the client application program 302 of the component framework 206 described below.
With reference to FIG. 2 again, the operation of the mobile communication device 100 is enabled by the device infrastructure 204. The device infrastructure 204 includes a computer processor 208 and associated memory modules 210. The computer processor 208 manipulates the operation of the component framework 206 of the wireless transceiver 200, the user interface 202 and the mobile communication device 100 by executing the relevant instructions. The relevant instructions are provided by the operating system and client application program 302 located within the memory module 210. Note that the device infrastructure 204 may include a computer-readable storage medium 212 connected to the processor 208 to provide instructions to the processor and / or to load / update the client application program 302 into the memory module 210. it can. The computer-readable medium 212 may include hardware and / or software such as, for example, magnetic disks, magnetic tapes, optically readable media (eg, CD-ROMs and DVD-ROMs) and memory cards. In either case, the computer-readable medium 212 may take the form of RAM disposed within a small disk, floppy (registered trademark) diskette, cassette, hard disk drive, solid-state memory card or memory module 210. The computer-readable medium 212 of the above example can be used alone or in combination.
Referring again to FIG. 2, the component framework 206 of the mobile device 100 is connected to the device infrastructure 204 by the connection 220. The component framework 206 provides a native runtime environment for the client application program 302, as well as an interface to the functionality of the mobile device 100 of the processor 208 and the associated operating system of the device infrastructure 204. The component framework 206 provides a run-time environment that preferably supplies a controlled, safe and stable environment on the mobile device 100, in which the component application program 302 in the application container 300 is executed. The application container 300 can be called a smart host container for the client application program 302, the role of parsing the message metadata (eg in message 105 (see Figure 1)) and the representation of the metadata in the memory module 210. Can play a role in updating.
The component framework 206 also provides the client application program 302 with a framework service 304 (a standard set of general services such as, but not limited to, communication, screen, data persistence, security, etc.). The application program 302 has communication 214 with the application container 300, which coordinates communication 216 with the framework service 304. Framework service 304 of component framework 206 coordinates communication with equipment infrastructure 204 over connection 220. Therefore, access to the device infrastructure 204, the user interface 202 and the wireless transceiver 200 is provided by the component framework 206 to the client application program 302. In addition, the application container 300 can control and verify all access to and from the client application program 302, communication 214, 216 of the component framework 206, so that the client application program 302 is a suitable virus. It is possible to have resistance. A part of the operating system of the device infrastructure 204 (see FIG. 2) can represent the application container 300.
Referring again to FIG. 2, the client runtime environment of the component framework 206 preferably can generate, host and execute the client application program 302 (in the form of a component application (see below)) from the metadata definition. In addition, specific features of component framework 206 include language support, memory allocation coordination, networking, data management during I / O operation, and graphics on the output device of user interface 202 via device infrastructure 204. It may include tuning, providing access to core object-oriented classes and their supporting files / libraries. Examples of run-time environments enabled by Component Framework 206 are the Common Language Runtime (CLR) by Microsoft and the Java (Registered Trademark) Runtime Environment (Java (Registered Trademark)) by Sun Microsystems. Trademark) Runtime Environment: JRE) etc. may be included, but not limited to these. The runtime environment of component framework 206 supports the basic functionality of client application program 302 on mobile device 100. Examples of basic functions are the provision of a communication function for sending a message 105 to the web service of the web server 106 (see FIG. 1), and the output message 105 (message to the service) of the web service of the web server 106 (see FIG. 1). ) On the output device for providing data input functionality on the input device by the user to supply the data parts, for uncorrelated notification of the web service response (received message) or web server 106 (see Figure 1). To provide data presentation or output capabilities in, provide data storage services to maintain local client data in memory module 210, and to coordinate the behavior of application component 408 (see Figure 3) in client application program 302. Includes, but is not limited to, providing an execution environment for the scripting language of.
Therefore, referring to FIG. 2, the component framework 206 executes the client application program 302 (web service client application) in the runtime environment, and the web service operation and association of the web server 106 via the request / response message 105. Used to support access to the application server 110 (see Figure 1). The component application program 302 includes a software application executed by the component framework 206. The component framework 206 creates an application container 300 for each component of the application program 302 (eg, 400, 402, 404, 406 (see Figure 3)) each time the component application program 302 is executed. Application container 300 can load components of application program 302 (eg 400, 402, 404, 406) to create native code executed by processor 208 in device infrastructure 204. Therefore, the component framework 206 is a host application for supplying definitions of components such as 400, 402, 404, 406, etc. to create the actual web client specified in each device infrastructure 204 of the communication device 100. Provide container 300.
Referring to FIG. 3, the block diagram of component application program 302 can include data component 400, presentation component 402 and / or message component 404, which are workflow component 406 via communication 214 with application container 300. Adjusted by.
The data component 400 defines the data entity used by the component application program 302. Examples of data entities that the data component 400 can describe are orders, users and financial transactions. The data component 400 defines what information is needed to describe the data entity and in what format the information is represented. For example, data component 400 includes an order consisting of a unique identifier for an order formatted as a number, a list of items formatted as a string, an order creation time with a date-time format, an order status formatted as a string, You may define ordering users that are formatted according to the definition of another data component 400, but are not limited to these.
The message component 404 defines the format of the message used by the component application program 302 to communicate with an external system (eg, web service 106). For example, one of the message components 404 may, but is not limited to, describe an ordering message that includes, but is not limited to, the unique identifier of the order, the status of the order, and notes associated with the order.
Presentation component 402 defines the appearance and behavior of component application program 302 displayed by user interface 202. The presentation component 402 can specify GUI screens and controls, as well as actions to be taken when the user interacts with the component application 302 using the user interface 202. For example, the presentation component 402 may define screens, labels, edit boxes, buttons and menus, as well as actions that occur when the user types or presses a character in the edit box.
Workflow component 406 of component application program 302 executes an action (for example, the action specified by presentation component 402 above, or the action taken when message 105 (see Figure 1) from system 10 arrives). Define the processing that occurs when the process occurs. Screen workflow and message processing are defined by workflow component 406. Workflow component 406 can be written in a programming or scripting language such as, but not limited to, ECMAScript, compiled into native code as described above, and executed by the application container 300. Examples of workflow component 406 include assigning values to data, manipulating screens, or sending messages.
In the hosting model defined in the client component application program 302 described above, the presentation component 402 (see FIG. 3) may vary depending on the client platform and environment of the mobile device 100 (see FIG. 1). For example, a web service consumer may not require a visual presentation. The application definitions for components 400, 402, 404, and 406 of the component application program 302 include the registry for platform-neutral data component 400, message component 404, workflow component 406, and various predefined client runtimes (ie). Can be hosted within the Web Services Registry as a bundle with a set of platform-specific presentation component 402 descriptors for a particular component framework 206). When a discovery or deployment request message 105 (see Figure 1) is issued, the client type should be identified as part of this request message 105. When packaging the component application program 302 for multiple different client platforms of the communication device 100, the application definition is linked with multiple different sets of presentation components 402 to avoid duplicating data, messages and workflow metadata. It can be hosted on the application server 110 (for example) as a platform-neutral bundle of component definitions. When the user issues a discovery or download request message 105, the type of client runtime for communication device 100 is verified and the web server 106 configures the appropriate bundle for delivery to device 100 over wireless network 102. In some cases, workflow component 406 is a platform
Therefore, referring to FIG. 3, the client application program 302 contains a set of platform-neutral component definitions (ie, data component 400 and message component 404 using XML (or any other suitable structured definition language), as well as It can be defined as (definition for presentation component 402). Workflow component 406 can be defined using ECMAScript (or any other suitable platform-neutral scripting language). When the components 400, 402, 404, and 406 of the component application program 302 are supplied to the communication device 100, the client runtime environment of the component framework 206 (see FIG. 2) can generate a component template based on the meta definition (described later). ). In a wide range of runtime environments, instead of pre-building the component application program 302, the application component metadata is defined using cross-platform standards such as XML and ECMAScript. This delayed binding allows the general purpose application definition of component application program 302 to be executed in a wide range of system environments represented by a variety of different communication devices 100.
By using XML or its derivatives to represent the data component 400, message component 404, and presentation component 402, and using the ECMAScript language or a subset thereof to represent the workflow component 406, application developers can use the web. It is possible to separate the service client from any specific platform or environment and, in principle, realize an application that "once developed and can be executed everywhere". The following example is a web service client application using components defined by a structured definition language such as XML but not limited to it, and a platform-neutral script / programming language such as ECMAScript but not limited to this. It shows how program 302 can be represented.
XML Data Component 400 Example<img file="JP4909591B2_D0001.tif" />
XML message component 404 example<img file="JP4909591B2_D0002.tif" />
Example presentation component 402 in XML<img file="JP4909591B2_D0003.tif" />
ECMAScript Workflow Component 406 Example<img file="JP4909591B2_D0004.tif" />
Referring to FIG. 4, the components 400, 402, 404, 406 of the application program 302 described above, once supplied to the communication device 100, are provided by the application container 300 of the component framework 206 to a predetermined set of framework services 304. Is given access to. Framework service 304 includes, but is not limited to, communication service 306, screen service 308, sustainability service 310, access service 312, provisioning service 314, utility service 316, and the like.
With reference to FIGS. 1 and 4, communication service 306 manages connectivity between component application program 302 and external system 10 (eg, web service 106). For example, communication service 306 sends message 105 to web service 106 on behalf of component application 302. Further, the communication service 306 receives the data of the message 105 from the web service 106 and distributes the data to the component application 302. The data received by the communication service 306 may include a synchronous response to a request made by the component application program 302 and asynchronous data pushed by the web service 106 to the mobile communication device 100. The communication service 306 also manages connectivity when the mobile communication device 100 is disconnected from the wireless network 102. The mobile communication device 100 is disconnected from the wireless network when the mobile communication device 100 is in an area not covered by the wireless network 102 or when the wireless transceiver is unavailable. When the mobile communication device 100 is in disconnect mode, the message sent by the component application 302 is queued by the communication service 306, and when the mobile communication device 100 reconnects to the wireless network 102, the message is sent. Can be done.
Referring again to FIGS. 1 and 4, screen service 308 manages the visual representation of the component application program 302 displayed on the output device of user interface 202 (see FIG. 2). Visual representations can include images, graphical user interface (GUI) controls and windows, and text. The screen service 308 manages a screen stack that controls what the user sees on the output device of the device infrastructure 204.
Referring again to FIGS. 1 and 4, the persistence service 310 allows the component application program 302 to store data in the memory module 210 (see FIG. 2) of the equipment infrastructure 204. Persistence service 310 transparently provides database operations to component application program 302. In addition, the component framework 206 runtime environment facilitates the actions taken on the metadata (ie XML data) content of message 105, thereby providing data persistence.
Referring again to FIGS. 1 and 4, access service 312 provides component application program 302 with access to other software applications residing on mobile communication device 100. For example, the access service 312 accesses the component application program 302 with a software application for sending an email, a software application for making a phone call, or contact information stored in the memory module 210 (see Figure 2). It may allow access to software applications (but not limited to these) for use. Access to other software applications on the communication device 100 can be provided in a secure manner. The access service 312 also allows other software applications residing on the mobile communication device 100 to access the component application program 302. The other software program may be part of the operating system of the device infrastructure 204 (see FIG. 2).
Referring again to FIGS. 1 and 4, provisioning service 314 manages the provisioning (supply) of software applications on mobile communication device 100. Application provisioning involves requesting and receiving new and updated component application programs 302, configuring component application programs 302 to access services accessible over the wireless network 102, and component application programs. Includes modifying the configuration of 302 and services and removing the component application program 302 and services. Provisioning service 314 performs the steps required to provision a software application on behalf of component application program 302.
Referring again to FIGS. 1 and 4, component application program 302 uses utility service 316 to accomplish a variety of common tasks. For example, the utility service 316 can perform data operations such as converting a character string to a different format on behalf of the component application program 302.
The framework service 304 of the communication device 100 provides the component application program 302 with functionality including the above-mentioned services. As a result, the component application program 302 has access to the functionality of the communication device 100 without having to implement the functionality of the communication device 100. Since the functionality provided by Framework Service 304 is the core functionality found in most typical wireless applications, each hard-coded wireless application currently available is undesirable, as described above. Contains code to implement some or all of the services of. For example, if you have 10 hard-coded wireless applications on a typical mobile device, the current known technology is the same for implementing services such as GUI display, wireless network access, etc. There could be 10 copies of the code.
On the other hand, component framework 206 of mobile communication device 100 (see Figure 2) has one copy of the code that implements these services that resides within framework service 304, regardless of the number of component application programs 302 that exist. It is preferable because it has only. Since the code replication of framework service 304 is minimized, the size of the component application program 302 can be reduced compared to the currently available hard-coded applications. In this way, the memory consumed by the component application program 302 can be reduced, and the time required for transmission via the wireless network 102 can be reduced. This allows the component application program 302 to be optimized for use on mobile communication devices 100, which are generally constrained by memory and processing power. Moreover, software application developers do not have to spend time and effort implementing any functionality provided by Framework Service 304 of Component Framework 206.
The client runtime of component framework 206 can execute application program 302, which loads the metadata contained in the definitions of components 400, 402, 404, 406 and can be executed on communication device 100 via application container 300. Build a version. For example, there are two behavioral models for the client runtime: template-based native execution and metadatabase execution. In a template-based native execution model, the runtime hosts pre-built data, message, and screen templates on the communication device 100 using native code. When the application program 302 definition is loaded, the client environment provided by the component framework 206 fills the template with the parameters defined in the metadata and builds the executable client application program 302 in native format. The workflow script for workflow component 406 (eg ECMAScript) may be translated into native code or executed using an interpreter for the native code redirector (eg ECMAScript for native code). In this case, the redirector translates the call to the scripting language into an operation on the native component. In metadatabase execution, the runtime environment of component framework 206 keeps component 400, 402, 404, 406 definitions in a representation format such as XML and parses it at run time, or (for example) in an XML node. Use native representation. During execution, the native runtime engine is not a native component entity, but components 400, 402, Manipulate 404 and 406 definitions. Note that template-based methods can be more performance efficient than metadatabase execution, but can require more complex execution environments and more memory resources.
Workflow component 406 can be compiled into native code or intermediate format (eg Java® bytecode) before each component application 302 is loaded into mobile communication device 100. This intermediate format is then converted to native code on the mobile communication device 100. Compiling workflow component 406 before workflow component 406 is loaded onto mobile communication device 100 means that the code that makes up workflow component 406 only needs to be translated at one level on mobile communication device 100. Helps ensure. Alternatively, workflow component 406 may be loaded into mobile communication device 100 as code written in a translated language, which is processed by an interpreter on mobile communication device 100 prior to conversion to native code. Will be done. Alternatively, workflow component 406 may consist of code written in any compiled or translated language.
To create a component application 302 that has access to the framework service 304 described above and takes advantage of running in a mobile environment to provide utilities to users, application developers can use components such as those described above. Can be created. XML (eXtensible Markup) for Data Component 400, Presentation Component 402 and Message Component 404 Standard techniques can be used, including Language) and ECMAScript for workflow component 406. These components are then executed by the component framework 206 within the application container 300. The component framework 206 uses the framework service 304 described above to execute the workflow component 406 and translate the presentation component 402, the data component 400 and the message component 404. This application development model is useful in minimizing the expertise required of application programmers and the time required to create software applications for the Mobile Communication Device 100. Moreover, once the components are created, they can be reused in a number of component applications 302, further facilitating development.
With reference to FIGS. 1 and 5, the operation 800 of the component application program 302 model is shown. The user of the mobile device 100 requests the application program 302 selected from the web service by communicating with the web service and then sending a request message 105 over the network 102 on the 802. The appropriate web server 106 sends the request message 105 to the appropriate application server 110, and then at 804, sends a set of component definitions in the response message 105 to the mobile device 100 over the network 102. Response message 105 is a component in the form of a series of data components 400, message component 404, and presentation component 402 (see Figure 3) that include a metadata descriptor expressed in a structured definition language, such as XML, but not limited to this. Includes application program 302. Response message 105 also includes workflow component 406, which includes descriptors expressed in programming / scripting languages such as, but not limited to, ECMAScript. At the 806, the mobile device 100 provides a runtime environment for the application program 302 via the component framework 206 (see Figure 2), thereby responding to the web services communicated at the 808 using the execution model. A web client is created on the mobile device 100 to supply the definitions of components 400, 402, 404, 406 of the application program 302. The supplied application program 302 uses framework service 304 (see FIG. 2) to coordinate access to mobile device 100 by message 105 over network 102. The user of the mobile device 100 interacts with the supplied application program 302 through the user interface 202.
The component application model described above further facilitates the development of wireless applications, as component applications 302 can be visually created using an integrated development environment (IDE) (not shown). An IDE is a software application that allows an application developer to quickly create the above components using a GUI that presents the developer with a visual representation of the component. Presentation component 402, data component 400, and message component 404 are shown in a tree view. The developer drags and drops the components and adds them to the component application 302. Clicking on the icon representing Presentation Component 402 opens an editor for designing Presentation Component 402. The links between presentation components 402 are visually represented and you can click on those links to edit workflow component 406, which defines the screen workflow. The presentation component 402 is designed with an interface that includes a representation of the mobile communication device 100 on which the component application 302 is executed. Menu items are represented, and clicking on them defines the workflow component 406 to be executed when those menu items are selected. Message component 404 can be visually mapped to data component 400. The message component 404, can also associate web service 106 message visually, the message component 404, based on the web service 106 message defined in WSDL, etc. can be created are.
With reference to FIGS. 6 and 7, further examples of system 10 include a message communication system using message map service 108. Also shown are web services, communication services 306, component framework 206 and mobile communication device 100 on web server 106. Other elements are not shown for simplicity.
The wireless network 102 is connected to the Internet 104, and the mobile communication device 100 can transfer the data of the message 107 from / to the system connected to the Internet 104. The connection between the wireless network 102 and the Internet 104 allows data to flow from a device connected to the wireless network 102 (eg mobile communication device 100) to a system connected to the Internet 104 (eg a web service). Includes Internet gateway (not shown).
The web service on the web server 106 provides the information used by the software application 302 (see FIG. 2) on the mobile communication device 100. Alternatively, or in addition, the web service may receive and use the information provided by the software application on the mobile communication device 100, or perform a task on behalf of the software application on the mobile communication device 100. You may. The web service implements an interface with the software application 302 on the mobile communication device 100, which can be expressed using WSDL (Web Services Description Language), and uses an appropriate communication protocol such as SOAP (Simple Object Access Protocol). Communicate with the client system. Alternatively, the web service may use other known protocols.
A web service is an example of a system in which a software application on a mobile communication device 100 interacts via a wireless network 102 and the Internet 104 to provide utilities to users of the mobile communication device 100. The message 107 transmitted between the mobile communication device 100 and the web service passes through the message map service 108. The message map service 108 creates the message 105 by converting the message 107 from the format available to the software application on the mobile communication device 100 to the format required by the web service. Once the 107 messages from one of the mobile communication devices 100 have been converted to the appropriate format, the message map service 108 sends the message 105 to the web service. Similarly, once the message or response 105 from the web service has been converted to the required format, the message map service 108 sends the message 107 to one of the mobile communication devices 100. The message map service 108 will be described in more detail with reference to FIG.
Referring to FIG. 7, the component application 302 (see FIG. 2) sends a wireless message 502 over the wireless network 102 and the Internet 104 using the communication service 306 to interact with the web service to exchange information. Send. For example, wireless message 502 is formatted according to one of the message components 404 (see Figure 3) defined within component application 302. For example, SOAP message 504 is used to access the web service. To resolve message type differences, message map service 108 receives wireless message 502, configures the corresponding SOAP message 504, and uses the appropriate SOAP protocol to connect the Internet 104 to the web service on the web server 106. Send SOAP message 504 via. Similarly, the response message 504 generated by the web service is sent to the message map service 108 over the Internet 104 using SOAP, where the response message 504 is a correspondence formatted according to one of the message components 404. It is converted into a wireless message 502 to be transmitted to the mobile communication device 100, where the wireless message 502 is received by the communication service 306 on behalf of the component application 302.
Referring again to FIG. 7, the message map service 108 includes an application message map 500 for each component application 302 (see FIG. 2). The application message map 500 defines how each wireless message 502 received from the component application 302 is translated into a corresponding web service message such as SOAP message 504, and is received from the web service and will be a component application. It defines how each web service message sent to 302 (eg SOAP message 504) is translated into the corresponding radio message 502. As mentioned above, each radio message 502 can be formatted according to one of the message components 404 of component application 302, while each web service message (eg SOAP message 504) can be formatted according to the definition of the web service. The message map 500 specifies which information defined in the definition corresponds to the information defined in the message component 404 of the application program 302. These definitions can be encoded in a suitable format such as WSDL. This mapping is then used to convert messages 502, 504 between these two formats.
Note that not all the information in SOAP message 504 needs to be mapped to the information in the corresponding wireless message 502. For example, in the conversion from wireless message 502 to SOAP message 504, the application message map 500 may specify a default value provided in SOAP message 504 when there is no corresponding information in wireless message 502. Similarly, when converting from SOAP message 504 to wireless message 502, the information in SOAP message 504 that has no corresponding definition in wireless message 502 is discarded. Therefore, the information contained in the response from the web service not used by the component application 302 need not be transmitted via the wireless network 102. Similarly, to prevent redundant information from being sent over the wireless network 102, the information required by SOAP message 504, which is sent to the same web service each time message 504 is sent by component application 302, has a default value. Is adopted. As a result, the amount of data transmitted over the wireless network 102 can be reduced, the congestion of the wireless network 102 is reduced, and the amount of resources required to process the message 502 on the mobile communication device 100 is reduced. it can.
Therefore, the message map service 108 enables the component application 302 to be harmonized with the web service without implementing a web message communication service protocol such as SOAP on the mobile communication device 100. The component application 302 also does not need to format message 502 for the web service, nor does it need to perform any other additional processing to harmonize with the existing web service 106.
Instead of using the message map service 108, the messages 502, 504 may be mapped by the communication service 306 on the mobile communication device 100. In this example, the mobile communication device 100 is installed with software having a web message communication service protocol, such as kSOAP, which has a SOAP protocol definition so that the communication service 306 can communicate directly with the web service 106. In effect, the translation of message 502 is done on mobile device 100, rather than using an intermediate third party to implement message map service 108.
FIG. 8 is a flowchart showing a method of deploying the wireless component application 600 and communicating with the application. As mentioned above, the wireless component application 600 is the component application 302 and includes the data component 400, the presentation component 402, the message component 404 and the workflow component 406 (see Figure 3).
With reference to FIGS. 6 and 8, the method begins at step 602, where the wireless component application 600 is deployed on the mobile communication device 100. The wireless component application 600 is transmitted by radio waves to the mobile communication device 100 via the wireless network 102. Alternatively, the wireless component application 600 may be loaded onto the mobile communication device 100 via a serial connection, a USB link, or a short-range communication system (not shown) such as Bluetooth® or 802.11 networks.
With reference to FIGS. 6 and 8 again, this method proceeds to step 604 for deploying the application message map 108. As described above, the application message map 108 is used to convert the message from the format used by the wireless component application 600 to the format required by the web service with which the wireless component application 600 is communicating. The application message map 500 (see Figure 7) is deployed on a dedicated message map service 108 accessible via the Internet 104. Alternatively, the application message map 108 may be deployed directly on the mobile communication device 100. Step 606 executes the wireless component application 600 on the mobile communication device 100. As mentioned above, application framework 206 (see Figure 2) on mobile communication device 100 creates application container 300 and runs the wireless component application 600 in container 300, thereby going to framework service 304. Provides access to the wireless component application 600 of.
Referring again to FIGS. 6 and 8, once the wireless component application 600 has been run on the mobile communication device 100, the method proceeds to step 608, where the wireless component application 600 sends a wireless message 502 to an external web service. It is determined whether or not you want it. The wireless component application 600 requests the data from the web service, transfers the data to the web service, or requires the web service to take action on behalf of the wireless component application 600. Send message 502 to the service. If it is determined that there are no more messages 502 transmitted by the wireless component application 600, the method ends in step 610. If there is a message 502 to send, the method proceeds to step 612 to configure the message 502 to be sent. Message 502 is configured by the communication service according to the format defined in one of message components 404 (see Figure 3). The communication service then sends message 502 over wireless network 102.
With reference to FIGS. 6 and 8 again, in step 614, the message 502 is received by the message map service 108 via the wireless network 102 and the Internet 104. The message map service 108 then converts message 502 to SOAP format using the application message map 500 deployed in step 604. The application message map 500 identifies which part of the SOAP format required by the web service corresponds to each part of the message 502 from the wireless component application 600. In step 616, the translated message 504 is sent to a web service over the Internet 104 using the SOAP protocol. Alternatively, in step 614, the message 502 is converted to SOAP format using the application message map 500 located on the mobile communication device 100, and then in step 616, the wireless network 102 and the Internet 104 are used using the kSOAP protocol. It may be sent directly to the web service via.
Referring again to FIGS. 6 and 8, if the message 504 is received by the web service, the method proceeds to step 618, where the web service configures the response to the message 504. The SOAP format response is sent over the Internet 104 to the message map service 108, where the response is converted to the wireless format 502 required by the wireless component application 600 in step 620. The required radio format is defined by one of the message components 404 (see Figure 3) included in the Radio Components application 600. The message map service 108 then sends a response to the wireless component application 600 over the internet 104 and the wireless network 102 in step 622. Alternatively, the web service may send the SOAP response message 504 directly to the mobile communication device 100, where the SOAP response message 504 uses the application message map 500 present on the mobile communication device 100 in step 620. , Converted to the required format. The translated message 502 is then given to the wireless component application 600 in step 622. The method then proceeds to step 608, where it is determined if there are more messages 502 to send. If there is no message 502, the method ends in step 610. It should be noted that the method of deploying and communicating with the wireless component application 600 may include fewer or more steps than shown in FIG.
FIG. 9 is a block diagram of the dual-mode mobile communication device 710, which is a further example of the device 100 of FIGS. 1 and 6. Dual-mode mobile communication device 710 includes transceiver 711, microprocessor 738, display 722, flash memory 724, RAM memory 726, auxiliary input / output (I / O) device 728, serial port 730, keyboard 732, speaker 734, microphone 736, It includes the short-range wireless communication subsystem 740 and may further include other device subsystems 742. The transceiver 711 preferably includes transmit / receive antennas 716, 718, receiver 712, transmitter 714, one or more local oscillators 713, and a digital signal processor 720. The dual-mode mobile communication device 710 preferably contains a plurality of software modules 724A to 724N that can be executed by the microprocessor 738 (and / or DSP720) in the flash memory 724, and the software modules 724A to 724N are used for voice communication. Includes module 724A, data communication module 724B, and several other operational modules 724N for performing multiple other functions.
The dual-mode mobile communication device 710 is preferably a two-way communication device having voice and data communication functions. Thus, for example, the dual-mode mobile communication device 710 may communicate via a voice network such as any analog or digital mobile phone network, or may communicate via a data network. In FIG. 9, the voice and data networks are represented by the communication tower 719. These voice and data networks may be separate communication networks that use different infrastructures (eg, base stations, network controllers, etc.) or may be integrated into a single wireless network.
The communication subsystem 711 is used to communicate with the voice and data network 719 and includes a receiver 712, a transmitter 714, one or more local oscillators 713, and may further include a DSP 720. The DSP720 is used to send and receive signals from / to the transmitter 714 and the receiver 712, and is also used to receive control information from the transmitter 714 and provide control information to the receiver 712. .. A single local oscillator 713 may be used in conjunction with the transmitter 714 and receiver 712 if voice and data communication takes place on a single frequency or on a closely spaced set of frequencies. Alternatively, when different frequencies are used for voice communication and data communication, it is possible to use a plurality of local oscillators 713 to generate a plurality of frequencies corresponding to the voice and data network 719. Although two antennas 716 and 718 are shown in FIG. 9, the dual-mode mobile communication device 710 may be used with a single antenna structure. Information, including voice and data information, is transmitted to / from the communication module 711 via a link between the DSP 720 and the microprocessor 738. The detailed design of the communication subsystem 711 (frequency band, component selection, output level, etc.) depends on the communication network 719 in which the dual-mode mobile communication device 710 is intended to operate. For example, the dual-mode mobile communication device 710, which is intended to operate in the North American market, is designed to operate on Mobitex and DataTAC mobile data communication networks, as well as AMPS, TDMA, CDMA, PCS, etc. It may include a communication subsystem 711 designed to operate on any of the various voice communication networks. On the other hand, device 710 intended for use in Europe may be configured to operate on General Line Radio Service (GPRS) data communication networks and GSM voice communication networks. Other types of data and voice networks (separate)
Depending on the type of network 719 of one or more, the access requirements of the dual-mode mobile communication device 710 may also change. For example, in Mobitex and DataTAC data networks, mobile devices are registered with the network using a unique identification number associated with each device. However, in GPRS data networks, network access is associated with mobile device subscribers or users. GPRS devices generally require a subscriber identification module (SIM). This is required to operate dual-mode mobile communication devices on the GPRS network. Local or non-network functions (if any) can operate without a SIM, but dual-mode mobile communication devices are data networks other than any legally required operation, such as an emergency call to 911. Cannot perform any function, including communication via 719.
After completing any requested network registration or activation procedure, the dual-mode mobile communication device 710 may send and receive communication signals, including voice and data signals, over one or more networks 719. The signal received by the antenna 716 from the communication network 719 is sent to the receiver 712, which provides signal amplification, frequency down conversion, filtering, channel selection, etc., even if it provides analog-to-digital conversion. Good. The analog-to-digital conversion of the received signal enables more complex communication functions such as digital demodulation and decoding performed using the DSP720. Similarly, the signal transmitted to network 719 is processed by DSP720 (including, for example, modulation and coding) and then digital-to-analog conversion, frequency-up conversion, filtering, amplification, and 1 or through antenna 718. Supplied to transmitter 714 for transmission to multiple communication networks 719. Although FIG. 9 shows a single transceiver 711 for voice and data communication, the dual-mode mobile communication device 710 has two separate transceivers (the first transceiver for sending and receiving voice signals and the data signal). A second transceiver for transmission and reception) may be included.
In addition to processing communication signals, the DSP720 also provides receiver and transmitter control. For example, the gain level applied to the communication signals of the receiver 712 and the transmitter 714 may be adaptively controlled by an automatic gain control algorithm implemented in the DSP 720. Other transceiver control algorithms may be implemented in the DSP720 to provide more complex control of transceiver 711.
The microprocessor 738 preferably manages and controls the entire operation of the dual-mode mobile communication device 710. Many types of microprocessors or microcontrollers may be used here, or a single DSP720 may be used to perform the functions of microprocessor 738. Low-level communication functions, including at least data and voice communication, are performed by DSP720 on transceiver 711. Other high-level communication applications (eg, voice communication application 724A and data communication application 724B) may be stored in flash memory 724 for execution by microprocessor 738. For example, the voice communication module 724A may provide a high level user interface capable of operating to send and receive voice calls between the dual mode mobile communication device 710 and a plurality of other voice devices over network 719. .. Similarly, the data communication module 724B sends and receives data (eg, email messages, files, organizer information, short text messages, etc.) between the dual-mode mobile communication device 710 and several other data devices over network 719. It may provide a high level user interface that can operate to do so. In the dual-mode mobile communication device 710, the component framework 206 described above may be implemented as a software module or application, or may be incorporated into one of the software modules 724A to 724N.
The microprocessor 738 includes, for example, a display 722, a flash memory 724, a random access memory (RAM) 726, an auxiliary input / output (I / O) subsystem 728, a serial port 730, a keyboard 732, a speaker 734, a microphone 736, and a short-range communication sub. It also interacts with other dual-mode mobile communication device subsystems, such as system 740 and any other dual-mode mobile communication device subsystem represented by 742 in its entirety.
Some of the subsystems shown in FIG. 9 may perform communication-related functions and other subsystems may provide built-in or on-device functions. Some subsystems such as the keyboard 732 and the display 722 have communication-related functions such as inputting text messages transmitted via a data communication network, and devices such as calculators, task lists, or other PDA-type functions. It may be used for both built-in functions.
The operating system software used by microprocessor 738 is preferably stored in persistent storage such as flash memory 724. In addition to the operating system that controls all of the low-level features of the dual-mode mobile communication device 710, the flash memory 724 is a set of multiple high-level software application programs or modules (eg, voice communication module 724A, data communication module 724B, organizer module). (Not shown), or any other type of software module 724N) may be included. Flash memory 724 may include a file system for storing data. These modules are run by microprocessor 738 and provide a high level interface between users of dual-mode mobile communication devices and mobile devices. This interface typically includes graphic components provided via the display 722 and input / output components provided via the auxiliary I / O 728, keyboard 732, speaker 734 and microphone 736. To speed up operation, the operating system, certain dual-mode mobile communication device software applications or modules, or parts thereof, may be temporarily loaded into a volatile storage device such as RAM726. In addition, the received communication signals may also be temporarily stored in RAM 726 before they are permanently written to the file system in persistent storage 724.
An exemplary application module 724N that can be loaded into the dual-mode mobile communication device 710 is a personal information manager (PIM) application that provides PDA functionality (eg, calendar events, appointments and task items, etc.). The module 724N may interact with the voice communication module 724A to manage telephones, voice mail, etc., or may interact with the data communication module to manage e-mail communication and other data transmissions. Alternatively, all the functionality of the voice communication module 724A and the data communication module 724B may be integrated into the PIM module.
The flash memory 724 preferably provides a file system to facilitate the storage of PIM data items on the dual-mode mobile communication device 710. The PIM application preferably includes the ability to send and receive data items over the wireless network 719, alone or in collaboration with the voice communication module 724A and the data communication module 724B. PIM data items are preferably seamlessly integrated, synchronized and updated over wireless network 719, and the corresponding data item set is stored or associated with the host computer system, thereby allowing a particular user. Create a mirror system for the data items associated with.
The dual-mode mobile communication device 710 is manually synchronized with the host system by placing the dual-mode mobile communication device 710 in the interface cradle that connects the serial port 730 of the dual-mode mobile communication device 710 to the serial port of the host system. May be good. The serial port 730 may be used to allow the user to make selections via an external device or software application or download to install another application module 724N. This wired download path may be used to load the encryption key into the dual-mode mobile communication device 710. This is a more secure method than exchanging encrypted information over wireless network 719.
Additional application module 724N over network 719, through auxiliary I / O subsystem 728, through serial port 730, through short-range communication subsystem 740, or any other suitable subsystem 742. It may be loaded onto the dual-mode mobile communication device 710 and installed in flash memory 724 or RAM 726 by the user. The flexibility of installing such applications may increase the functionality of the dual-mode mobile communication device 710 and provide extended on-device functionality, communication-related functionality, or both. For example, a secret communication application may enable an electronic commerce function and other similar financial transactions performed using the dual-mode mobile communication device 710.
When the dual-mode device 710 is operating in data communication mode, the received signal (eg, text message or web page download) is processed by transceiver 711 and fed to microprocessor 738. The microprocessor 738 preferably further processes the received signal for output to display 722 or output to auxiliary I / O device 728. The user of the dual-mode mobile communication device 710 may use the keyboard 732 to configure data items such as e-mail messages. The keyboard 732 is preferably a full alphanumeric keyboard laid out in QWERTY style, but other styles of full alphanumeric keyboards such as those known as DVORAK style may be used. User input to the dual-mode mobile communication device 710 is further enhanced by multiple auxiliary I / O devices 728, which may include thumbwheel input devices, touchpads, various switches, rocker input switches, and the like. The configured data items entered by the user may then be transmitted by the transceiver 711 over the communication network 719.
When the dual-mode mobile communication device 710 is operating in the voice communication mode, the overall operation of the dual-mode mobile communication device 710 is substantially the same as in the data mode, except that the received signal is output to the speaker 734 and transmitted. The audio signal produced is preferably generated by the microphone 736. Further, another voice input / output subsystem (for example, a voice message recording subsystem) may be implemented on the dual mode mobile communication device 710. The voice signal output is preferably achieved primarily through the speaker 734, but the display 722 is used to provide the caller identification information, the duration of the voice call or other indication of voice call related information. You may. For example, the microprocessor 738 may work with the voice communication module and operating system software to detect the identification information of the caller of the incoming voice call and display it on the display 722.
The dual-mode mobile communication device 710 also includes the short-range communication subsystem 740. For example, the short-range communication subsystem 740 may include an infrared device and associated circuits and components to provide communication with systems and devices having similar functionality, or a Bluetooth module or It may include a short range wireless communication module such as an 802.11 module. It will be understandable to those skilled in the art that "Bluetooth" and 802.11 refer to a set of specifications for wireless personal area networks and wireless LANs, respectively, available from the Institute of Electrical and Electronics Engineers (IEEE). ..
The above description relates to one or more exemplary systems and methods. Many modifications are self-evident to those with knowledge of the art, and such modifications are within the scope of the present application. For example, in the above example, the web service that implements the SOAP protocol has been described, but the web service may be any information source that can access the mobile communication device, and may implement a different communication protocol.
The disclosure herein relates to one or more exemplary systems and methods, but to those skilled in the art without departing from the spirit and scope of the invention outlined in the claims attached herein. Is self-evident in various variants.
<figref num="1">It is a block diagram of a communication system.</figref><figref num="2">It is a block diagram of the mobile communication device of FIG.</figref><figref num="3">It is a block diagram of the component application program of FIG.</figref><figref num="4">It is a block diagram of the component framework of FIG.</figref><figref num="5">It is a flowchart of the exemplary operation of the mobile device of FIG.</figref><figref num="6">This is a further example of the communication system of FIG.</figref><figref num="7">It is a block diagram of the message communication system using the message map service of FIG.</figref><figref num="8">It is a flowchart which shows the method of operating the wireless component application of the communication device of FIG.</figref><figref num="9">It is a block diagram of a further example of the mobile communication device of FIG.</figref>
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2001306308A | Cites | Japan |
| CHERRY M.,DEMICHILLIE G.,.NET開発プラットフォームのすべて、アーキテクチャと将来性を徹底分析(後編),Directions on Microsoft,株式会社メディアセレクト,2002年5月15日,第6号,p.10-28 | Non-patent | – |
| VUORIMAA P. et al,,A Java Based XML Browser for Consumer Devices,Proceedings of the 2002 ACM Symposium on Applied Computing,2002年3月11日,p.1094-1099.<htp://portal.acm.org/citation.cfm?id=509007> | Non-patent | – |
24 members in 9 offices
Priority claims14
| Document | Office | Kind | Date |
|---|---|---|---|
| 43601202 | United States of America | P | |
| 43601202 | United States of America | P | |
| 60436012 | United States of America | – | |
| 50395503 | United States of America | P | |
| 50395503 | United States of America | P | |
| 60503955 | United States of America | – | |
| 0301981 | Canada | W | |
| 0301981 | Canada | W | |
| 2002436012 | – | – | – |
| 2003503955 | – | – | – |
| 2003001981 | – | – | – |
| US20020436012P | – | – | – |
| US20030503955P | – | – | – |
| WO2003CA01981 | – | – | – |
Members24
| Document | Office | Kind | |
|---|---|---|---|
| CA2511926A1 | Canada | A1 | |
| WO2004059939A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2003291909A1 | Australia | A1 | |
| US2004199614A1 | United States of America | A1 | |
| WO2004059939A3 | World Intellectual Property Organization (WIPO) | A3 | |
| KR20050091027A | Republic of Korea | A | |
| KR20050091027A | Republic of Korea | A | |
| EP1576780A2 | European Patent Office (EPO) | A2 | |
| CN1757216A | China | A | |
| MXPA05006932A | Mexico | A | |
| MXPA05006932A | Mexico | A | |
| JP2006520938A | Japan | A | |
| KR100807651B1 | Republic of Korea | B1 | |
| KR100807651B1 | Republic of Korea | B1 | |
| US7409674B2 | United States of America | B2 | |
| AU2003291909B2 | Australia | B2 | |
| US2009031284A1 | United States of America | A1 | |
| JP2009087361A | Japan | A | |
| EP2131548A1 | European Patent Office (EPO) | A1 | |
| CN1757216B | China | B | |
| JP4909591B2This record | Japan | B2 | |
| CA2511926C | Canada | C | |
| US8402432B2 | United States of America | B2 | |
| JP5241440B2 | Japan | B2 |
30 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Written request for registration of change of domicileJAPANESE INTERMEDIATE CODE: R313531S531 | S531 | |
| Written request for registration of change of nameJAPANESE INTERMEDIATE CODE: R313533S533 | S533 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Re-examination (zenchi) completed and case transferred to appeal boardAppealJAPANESE INTERMEDIATE CODE: A912A912 | A912 | |
| Transfer to examiner for re-examination before appeal (zenchi)AppealJAPANESE INTERMEDIATE CODE: A911A911 | A911 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of resignation of power of attorneyJAPANESE INTERMEDIATE CODE: A7424RD04 | RD04 | |
| Decision of refusalJAPANESE INTERMEDIATE CODE: A02A02 | A02 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of acceptance of power of attorneyJAPANESE INTERMEDIATE CODE: A7422RD02 | RD02 | |
| Written permission of extension of timeJAPANESE INTERMEDIATE CODE: A602A602 | A602 | |
| Written request for extension of timeJAPANESE INTERMEDIATE CODE: A601A601 | A601 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 |
Numbers
- Publication
- 4909591
- Publication, DOCDB
- 4909591
- Publication, EPODOC
- JP4909591B
- Application
- 2005509678
- Application, DOCDB
- 2005509678
- Application, EPODOC
- JP20050509678
Titles2
- Japanese
- コンポーネントベースの無線アプリケーションを作成して同アプリケーションと通信するためのシステム及び方法
- English
- Systems and methods for creating component-based wireless applications and communicating with them
Classification
- CPC, 7
- H04L67/02
- H04L9/40
- H04L67/34
- H04L67/04
- H04L69/329
- H04W80/12
- H04L67/567
- IPC, 4
- G06F13 00
- G06F15 177
- H04L29 06
- H04L29 08
