JP2014186473A - Program and device - Google Patents
Program and device Download PDFInfo
- Publication number
- JP2014186473A JP2014186473A JP2013060135A JP2013060135A JP2014186473A JP 2014186473 A JP2014186473 A JP 2014186473A JP 2013060135 A JP2013060135 A JP 2013060135A JP 2013060135 A JP2013060135 A JP 2013060135A JP 2014186473 A JP2014186473 A JP 2014186473A
- Authority
- JP
- Japan
- Prior art keywords
- component
- software
- framework
- computer
- software component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、プログラム及び装置に関する。 The present invention relates to a program and an apparatus.
これまでに、ソフトウェアで分散処理を実現する種々の技術が知られている。特許文献1には、トランスポート層及びネットワーク層を持つ物理的ネットワークに接続されたホストコンピューター中に常駐し、分散計算環境内にあるクライアント・プロセス及びサーバ・プロセス間の通信路を管理する方法として、クライアント・プロセスが遠隔プロシージャ呼び出し(RPC:Remote Procedure Call)を行い、RPCで指定されたサーバ・プロセスがサーバ上に存在するかを検査し、通信路を設定しリモート手続きを呼び出すことが記載されている。特許文献2には、モジュール同士が連携し管理機能を実現するネットワーク管理システムで、モジュール起動時にプログラムインターフェース情報をリポジトリに登録し、モジュールの呼び出しをオペレーションの名称を基にモジュールを探索し、分散配置されたモジュール同士は基盤を介して透過的に通信することが記載されている。特許文献3には、クライアントがRPCを用いてサーバ装置からのサービスを要求するシステムにおいて、サーバ処理がホストコンピューター内にあれば内部処理通信パスを設定することが記載されている。このように、従来は、ローカルなネットワーク内の装置間での分散処理する方法が検討されてきた。
一方、近年、インターネット上のサーバ装置、特にサーバ装置群で稼働する仮想マシン上でシステムを可能することが行われるようになった。いわゆるクラウドサービスを利用した方法で、事業所等のサイト内で稼働していた処理をクラウドで稼働することが行われるようになった。
Until now, various techniques for realizing distributed processing by software are known.
On the other hand, in recent years, it has become possible to enable a system on a server device on the Internet, in particular, a virtual machine operating in a group of server devices. By using a so-called cloud service, it has become possible to operate processes that were running in sites such as offices in the cloud.
本発明は、ソフトウェアシステムの一部を、ネットワークを介した装置、特にインターネット上のサーバ装置またはクラウドサービスに移行することを容易にする仕組みを提供することを目的とする。 An object of the present invention is to provide a mechanism for facilitating migration of a part of a software system to a device via a network, particularly a server device or cloud service on the Internet.
請求項1に係る発明は、記憶手段にフレームワークプログラムと複数のコンポーネントプログラムとを記憶し、通信手段を備えるコンピュータに、前記フレームワークプログラムに従い、前記複数のコンポーネントプログラムの各々に従う処理において利用されるプログラムを提供する第1のソフトウェアフレームワークを構築する処理と、前記通信手段により通信する他のコンピュータにおいて構築されている第2のソフトウェアフレームワークを認識する処理と、前記第1のソフトウェアフレームワークに、前記第2のソフトウェアフレームワークとの間のコネクションを開設させる処理と、前記複数のコンポーネントプログラムの各々に従い、前記第1のソフトウェアフレームワークの上で動作するソフトウェアコンポーネントを構築する処理と、前記第1のソフトウェアフレームワークの上で動作している一のソフトウェアコンポーネントに対し、前記一のソフトウェアコンポーネントが他のソフトウェアコンポーネントとの間で予め定められた規則に従う通信を行うためのインターフェースを提供する処理と、前記他のソフトウェアコンポーネントが前記第2のソフトウェアフレームワークの上で動作している場合、前記第1のソフトウェアフレームワークに、前記一のソフトウェアコンポーネントが前記インターフェースを介して前記他のソフトウェアコンポーネントとの間で行う通信を、前記コネクションを介して中継させる処理とを実行させるためのプログラムを提供する。
The invention according to
請求項2に係る発明は、請求項1に記載のプログラムにおいて、前記コンピュータと前記他のコンピュータとの双方に、同じ共通ソフトウェアコンポーネントが存在する場合、前記第1のソフトウェアフレームワークは、前記共通ソフトウェアコンポーネントを前記他のコンピュータで動作させると選択する処理を更に実行させる。
請求項3に係る発明は、請求項1に記載のプログラムにおいて、前記コンピュータと前記他のコンピュータとの双方に、同じ共通ソフトウェアコンポーネントが存在し、かつ、該共通ソフトウェアコンポーネントが前記コンピュータのリソースに依存するものである場合、前記第1のソフトウェアフレームワークは、前記共通ソフトウェアコンポーネントを前記コンピュータで動作させると選択する処理を更に実行させる。
According to a second aspect of the present invention, in the program according to the first aspect, when the same common software component exists in both the computer and the other computer, the first software framework is the common software component. When the component is operated on the other computer, a selection process is further executed.
The invention according to claim 3 is the program according to
請求項4に係る発明は、請求項1に記載のプログラムにおいて、ソフトウェアコンポーネントに関する情報を取得する処理と、前記取得された情報に基づいて、当該情報に対応するソフトウェアコンポーネントを前記コンピュータで動作させるか前記他のコンピュータで動作させるかを選択する処理と、前記取得された情報に対応するソフトウェアコンポーネントを前記他のコンピュータで動作させると選択された場合であって、前記他のコンピュータに当該ソフトウェアコンポーネントがインストールされていない場合に、当該ソフトウェアコンポーネントを動作させるために必要な情報を前記他のコンピュータへ送信する処理とを更に実行させる。
請求項5に係る発明は、請求項1に記載のプログラムにおいて、前記取得された情報に対応するソフトウェアコンポーネントを前記コンピュータで動作させると選択された場合であって、前記コンピュータに当該ソフトウェアコンポーネントがインストールされてない場合に、当該ソフトウェアコンポーネントの送信を要求する要求データを前記他のコンピュータ又は予め定められたコンピュータへ送信する処理と、前記要求データに対する応答として送信されてくる、ソフトウェアコンポーネントを動作させるために必要な情報を受信し、当該ソフトウェアコンポーネントのインストール処理を実行する処理とを更に実行させる。
According to a fourth aspect of the present invention, in the program according to the first aspect, based on the process of acquiring information about a software component and whether the software component corresponding to the information is operated on the computer based on the acquired information The process of selecting whether to operate on the other computer and the case where the software component corresponding to the acquired information is selected to operate on the other computer, and the software component is included in the other computer. When the software component is not installed, a process of transmitting information necessary for operating the software component to the other computer is further executed.
The invention according to claim 5 is a case in which, in the program according to
請求項6に係る発明は、フレームワークプログラムと複数のコンポーネントプログラムとを記憶する記憶手段と、通信手段と、前記フレームワークプログラムに従い、前記複数のコンポーネントプログラムの各々に従う処理において利用されるプログラムを提供する第1のソフトウェアフレームワークを構築する処理と、前記通信手段により通信する他のコンピュータにおいて構築されている第2のソフトウェアフレームワークを認識する処理と、前記第1のソフトウェアフレームワークに、前記第2のソフトウェアフレームワークとの間のコネクションを開設させる処理と、前記複数のコンポーネントプログラムの各々に従い、前記第1のソフトウェアフレームワークの上で動作するソフトウェアコンポーネントを構築する処理と、前記第1のソフトウェアフレームワークの上で動作している一のソフトウェアコンポーネントに対し、前記一のソフトウェアコンポーネントが他のソフトウェアコンポーネントとの間で予め定められた規則に従う通信を行うためのインターフェースを提供する処理と、前記他のソフトウェアコンポーネントが前記第2のソフトウェアフレームワークの上で動作している場合、前記第1のソフトウェアフレームワークに、前記一のソフトウェアコンポーネントが前記インターフェースを介して前記他のソフトウェアコンポーネントとの間で行う通信を、前記コネクションを介して中継させる処理とを実行するデータ処理手段とを備える装置を提供する。 The invention according to claim 6 provides a program used in processing according to each of the plurality of component programs in accordance with the framework program, storage means for storing the framework program and the plurality of component programs, and communication means. A process for constructing the first software framework, a process for recognizing a second software framework constructed in another computer that communicates with the communication means, and a process for recognizing the first software framework. A process for establishing a connection with two software frameworks, a process for constructing software components operating on the first software framework according to each of the plurality of component programs, and the first Providing an interface for one software component operating on the software framework of the first software component to communicate with another software component in accordance with a predetermined rule; When the other software component is operating on the second software framework, the one software component communicates with the other software component via the interface in the first software framework. And a data processing means for executing a process of relaying the communication performed through the connection via the connection.
請求項1に記載の発明によれば、ソフトウェアシステムの一部を、ネットワークを介した装置、特にインターネット上のサーバ装置またはクラウドサービスに移行することが容易になる。
請求項2に記載の発明によれば、ソフトウェアシステムの一部を自コンピュータと異なる他のコンピュータで動作させることができる。
請求項3に記載の発明によれば、コンピュータのリソースに依存するソフトウェアコンポーネントをコンピュータで動作させることができる。
請求項4に記載の発明によれば、ソフトウェアシステムの一部を、ネットワークを介した装置、特にインターネット上のサーバ装置またはクラウドサービスに移行することができる。
請求項5に記載の発明によれば、ソフトウェアシステムの一部を、他のコンピュータから自コンピュータへ移行することができる。
請求項6に記載の発明によれば、ソフトウェアシステムの一部を、ネットワークを介した装置、特にインターネット上のサーバ装置またはクラウドサービスに移行することが容易になる。
According to the first aspect of the present invention, it becomes easy to transfer a part of the software system to a device via a network, particularly a server device or cloud service on the Internet.
According to the invention described in
According to the third aspect of the present invention, software components that depend on computer resources can be operated on the computer.
According to the fourth aspect of the present invention, a part of the software system can be transferred to a device via a network, particularly a server device or a cloud service on the Internet.
According to the invention described in claim 5, a part of the software system can be migrated from another computer to the own computer.
According to the invention described in claim 6, it becomes easy to transfer a part of the software system to a device via a network, particularly a server device or cloud service on the Internet.
1.第1実施形態
1−1.構成
図1は、本発明の実施形態に係る通信システム1の全体構成を示すブロック図である。通信システム1は、クラウドサービス提供装置10と、画像処理装置20とを備える。クラウドサービス提供装置10は、いわゆるクラウドサービスを提供する装置である。ネットワーク30は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークであり、クラウドサービス提供装置10と画像処理装置20とを接続する通信回線である。画像処理装置20は、例えば電子写真方式の画像形成装置である。画像処理装置20は、クラウドサービス提供装置10から画像データを受信し、受信した画像データが示す画像を用紙などの媒体上に形成することによって、画像データを出力する。
1. First embodiment 1-1. Configuration FIG. 1 is a block diagram showing an overall configuration of a
1−2.クラウドサービス提供装置の構成
図2は、クラウドサービス提供装置10のハードウェア構成の一例を示す図である。図において、制御部11(データ処理手段の一例)は、CPU(Central Processing Unit)等の演算装置と、ROM(Read Only Memory)及びRAM(Random Access Memory)などの主記憶装置とを備えている。演算装置は、RAMをワークエリアとして用いてROMや記憶部13に記憶されたプログラムを実行することによって、クラウドサービス提供装置10の各部の動作を制御する。通信部12は、ネットワーク30を介して他の機器との間で通信をするためのインターフェースである。記憶部13は、例えばハードディスク等の記憶デバイスであり、制御部11が用いるデータやプログラムを記憶している。記憶部13には、定義ファイル14と、フレームワークプログラム15と、コンポーネントプログラム16とが記憶されている。定義ファイル14は、クラウドサービス提供装置10にインストールされているソフトウェアコンポーネント(以下、単に「コンポーネント」という)を示す情報や、インストールされているコンポーネントが使用する情報等、インストールされているコンポーネントに関連する情報を含む。フレームワークプログラム15は、コンポーネントを稼働させるソフトウェアフレームワークのプログラムであり、コンポーネントプログラム16はコンポーネントのプログラムである。
1-2. Configuration of Cloud Service Providing Device FIG. 2 is a diagram illustrating an example of a hardware configuration of the cloud
図3は、画像処理装置20のハードウェア構成の一例を示す図である。図において、制御部21(データ処理手段の一例)は、CPUなどの演算装置と、ROM及びRAMなどの主記憶装置とを備えている。ROMには、演算装置によって実行されるプログラムが記憶されている。演算装置は、RAMをワークエリアとして用いてROMや記憶部27に記憶されたプログラムを実行することによって、画像処理装置20の各部の動作を制御する。通信部22は、ネットワーク30を介して他の機器との間で通信をするためのインターフェースである。操作部23は、各種のキーやタッチセンサなどの操作子を備え、利用者の操作に応じた操作信号を制御部21に供給する。制御部21は、この操作信号に応じた処理を行う。表示部24は、液晶パネルや液晶駆動回路を備え、制御部21による制御の下で画像を表示する。画像形成部25は、電子写真方式で画像を形成する。画像読取部26は、原稿の画像を光学的に読み取る。記憶部27は、例えばハードディスク等の記憶デバイスであり、制御部21が用いるデータやプログラムを記憶している。記憶部27には、定義ファイル271と、フレームワークプログラム272と、コンポーネントプログラム273とが記憶されている。定義ファイル271は、画像処理装置20にインストールされているコンポーネントを示す情報や、インストールされているコンポーネントが使用する情報等、インストールされているコンポーネントに関連する情報を含む。フレームワークプログラム272は、コンポーネントを稼働させるソフトウェアフレームワークのプログラムであり、コンポーネントプログラム273はコンポーネントのプログラムである。
FIG. 3 is a diagram illustrating an example of a hardware configuration of the
図4は、クラウドサービス提供装置10と画像処理装置20の機能構成の一例を示す図である。クラウドサービス提供装置10の制御部11は、記憶部13に記憶されているフレームワークプログラム15に従ってコンポーネントフレームワーク111を構築し、各種コンポーネントプログラムを必要に応じて読み込み、読み込んだコンポーネントプログラムに従って、コンポーネントフレームワーク111により提供される各種機能を利用しつつ、各種コンポーネント(画像処理部112、等)を構築する。また、画像処理装置20の制御部21は、記憶部27に記憶されているフレームワークプログラム272に従ってコンポーネントフレームワーク121を構築し、各種コンポーネントプログラムを必要に応じて読み込み、読み込んだコンポーネントプログラムに従って、コンポーネントフレームワーク121により提供される各種機能を利用しつつ、各種コンポーネント(読取制御部122、プリント制御部123、等)を構築する。以下、コンポーネントフレームワーク111、121や各コンポーネント(画像処理部112、読取制御部122、プリント制御部123、等)を動作の主体として説明するが、実際には制御部11、21がフレームワークプログラム15、272やコンポーネントプログラム15、273を読み出して実行することによって以下の動作が行われる。
FIG. 4 is a diagram illustrating an example of functional configurations of the cloud
コンポーネントフレームワーク111、121は、コンポーネントを稼働させるソフトウェアフレームワークであり、コンポーネントが利用するプログラムを提供する。この実施形態では、コンポーネントは、コンポーネントフレームワーク111、121に認識され実行されるソフトウェアのモジュールの単位である。コンポーネントフレームワーク111、121は、データの遣り取りを行うコンポーネントが自装置内に格納されているコンポーネント同士であるか否かによって通信の手法を切り替える。
The
コンポーネントフレームワーク111、121は、通信部12、22により通信する他のコンピュータにおいて構築されているソフトウェアフレームワークを認識する。また、コンポーネントフレームワーク111、121は、両者の間でコネクションを開設し、自コンポーネントフレームワーク上で動作している一のソフトウェアコンポーネントに対し、この一のソフトウェアコンポーネントが他のソフトウェアコンポーネントとの間で予め定められた規則に従う通信を行うためのインターフェースを提供する。また、コンポーネントフレームワーク111、121は、他のソフトウェアコンポーネントが他のコンポーネントフレームワークの上で動作している場合、自コンポーネントフレームワーク上で動作しているコンポーネントが上記インターフェースを介して他のコンポーネントとの間で行う通信を、開設したコネクションを介して中継させる。
The
以下の説明では、説明の便宜上、一のコンポーネントフレームワーク上で動作するコンポーネント同士で行う通信を「フレームワーク内通信」と呼び、一のコンポーネントフレームワーク上で動作するコンポーネントが他のコンポーネントフレームワーク上で動作するコンポーネントとデータの授受を行う場合の通信を「フレームワーク間通信」と呼ぶ。 In the following description, for convenience of explanation, communication between components operating on one component framework is referred to as “intra-framework communication”, and a component operating on one component framework is displayed on another component framework. Communication in the case of exchanging data with a component operating in is called “interframework communication”.
フレームワーク間通信とフレームワーク内通信は、異なる通信プロトコルが適用される。フレームワーク間通信には、コネクションを維持する通信方式が適用される。また、この通信にはファイアウォールを透過可能な通信が適用される。具体的には例えば、TCP/IPのポート80(HTTP)や443(SSL)を用いてもよい。一方、フレームワーク内通信には、ネットワーク透過でない通信が適用される。例えば、Unix(登録商標)ドメインのソケット通信、名前付きパイプ、メッセージキューなどのプロセス間通信が適用される。なお、双方の通信共に、上位プロトコルは同一のプロトコルが適用される。この実施形態ではCORBAを用いてデータの授受が行われる。 Different communication protocols are applied to inter-framework communication and intra-framework communication. A communication method for maintaining a connection is applied to inter-framework communication. In addition, communication that can pass through a firewall is applied to this communication. Specifically, for example, TCP / IP port 80 (HTTP) or 443 (SSL) may be used. On the other hand, communication that is not network transparent is applied to intra-framework communication. For example, Unix (registered trademark) domain socket communications, named pipes, message queues, and other interprocess communications are applied. In both communications, the same protocol is applied as the upper protocol. In this embodiment, data is exchanged using CORBA.
コンポーネントフレームワーク111、121としては、例えば、OSGi、Struts、Seasar、JBossなどが用いられてもよい。また、この実施形態では、コンポーネントフレームワーク111とコンポーネントフレームワーク121との通信はWebSocketプロトコルが用いられる。WebSocketプロトコルは、コネクションを維持し、ファイアウォール透過なプロトコルである。この実施形態では、画像処理装置20側のコンポーネントフレームワーク121がクライアント、クラウドサービス提供装置10側のコンポーネントフレームワーク111がサーバとなるように機能する。
For example, OSGi, Struts, Seasar, JBoss, or the like may be used as the
ここで、WebSocktプロトコルによるデータ通信について、図5乃至図7を参照しつつ説明する。図5は、WebSocketプロトコルによる通信を説明するための図であり、図6は、コンポーネントフレームワーク111、121間で遣り取りされるパケットのデータ構造の一例を示す図である。図7は、HTTPヘッダの内容の一例を示す図である。コンポーネントフレームワーク111、121は、起動のタイミングでコネクションを開設し、開設したコネクションを維持する。図5において、まず、コンポーネントフレームワーク111、121は、TCPコネクションを開設する(ステップS1、S2)。TCPコネクションで用いられる制御パケットは図6の(a)に例示するデータ構造である。次いで、コンポーネントフレームワーク121がHTTPのUPGRADEリクエストを送信し(ステップS3)、コンポーネントフレームワーク111がHTTPレスポンスを送信することによって(ステップS4)、WebSocketのコネクションが開設される。HTTPリクエスト及びHTTPレスポンスは図6の(b)に例示するデータ構造であり、WebSocketにアップグレードされることにより、図6の(c)に例示されるデータ構造となる。UPGRADEリクエストのヘッダの一例を図7の(a)に示し、UPGRADEレスポンスのヘッダの一例を図7の(b)に示す。
Here, data communication using the WebSocket protocol will be described with reference to FIGS. FIG. 5 is a diagram for explaining communication using the WebSocket protocol, and FIG. 6 is a diagram illustrating an example of a data structure of a packet exchanged between the
このようにHTTPのUPGRADEリクエストによりHTTPからWebSocketに変更され、変更後はWebSocketヘッダを用いて通信が行われる。WebSocketプロトコルはコネクションを維持するプロトコルであるため、コネクション開設のオーバーヘッドが低減される。また、この実施形態では、HTTPヘッダより軽量なWebSocketを用いるためヘッダのオーバーヘッドがHTTPよりも少ない。 In this way, the HTTP UPGRADE request is changed from HTTP to WebSocket, and communication is performed using the WebSocket header after the change. Since the WebSocket protocol is a protocol for maintaining a connection, the overhead for establishing a connection is reduced. In this embodiment, since the WebSocket that is lighter than the HTTP header is used, the overhead of the header is less than that of the HTTP.
コネクションが開設されると、コンポーネントフレームワーク121とコンポーネントフレームワーク111とは、開設されたコネクションを用いてデータの授受を行う(図5のステップS5、S6)。WebSocketのデータ部には、種々のアプリケーションプロトコルに従ったデータを格納可能である。この実施形態では、コンポーネントフレームワーク111、121内で使用するCORBAプロトコルに従ったデータ形式のデータを遣り取りする。なお、図5のステップS5とS6に示したWebSocketデータのリクエストとレスポンスの送信方向は逆方向であってもよい。すなわち、コンポーネントフレームワーク111がリクエストを送信し、コンポーネントフレームワーク121がレスポンスを送信してもよい。また、コンポーネントフレームワーク111とコンポーネントフレームワーク121とは独自に定めた認証方式で認証するようにしてもよい。
When the connection is established, the
図4の説明に戻る。画像処理部112、読取制御部122、プリント制御部123は、コンポーネントフレームワーク111、121上で動作するコンポーネントの一例である。読取制御部122は、画像読取部26を制御し、画像読取部26に画像を読み取らせる機能を有する。読取制御部122は、インターフェース部1221を有する。インターフェース部1221は、プリント制御部123との間でデータを遣り取りするためのインターフェースを提供する。プリント制御部123は、画像形成部27に画像データを供給し、画像形成部27に画像を形成させる機能を有する。プリント制御部123は、インターフェース部1231、1232を有する。インターフェース部1231は、読取制御部122との間でデータを遣り取りするためのインターフェースを提供する。インターフェース部1232は、画像処理部112との間でデータを遣り取りするためのインターフェースを提供する。画像処理部112は、例えば文字認識処理やデータ形式の変換処理といった、画像データに対する各種の画像処理を行う。画像処理部112は、インターフェース部1121を有している。インターフェース部1121は、プリント制御部123との間でデータを遣り取りするためのインターフェースを提供する。
Returning to the description of FIG. The
コンポーネントのインターフェースはIDL等のインターフェース定義言語で定義されている。なお、インターフェース定義言語は必ずしも必要ではない。各コンポーネントが予め定められた規約に従って実装されるようにしても良い。また、Java(登録商標)のインターフェースのように、インターフェースがプログラムとして提供されてもよい。コンポーネントは、コンポーネントフレームワーク111、121が提供するCORBA等の通信プロトコルを用いて通信する。各コンポーネントは、通信相手のコンポーネントが、同じコンポーネントフレームワーク上で動作しているコンポーネントであるか、他の装置のコンポーネントフレームワーク上で動作しているコンポーネントであるかを意識せずに通信する。
The component interface is defined in an interface definition language such as IDL. Note that an interface definition language is not always necessary. Each component may be implemented according to a predetermined rule. Also, an interface may be provided as a program, such as a Java (registered trademark) interface. The components communicate using a communication protocol such as CORBA provided by the
1−3.動作
次に、この実施形態の動作について説明する。まず、画像処理装置20のコンポーネントフレームワーク121が行う動作について説明する。図8は、コンポーネントフレームワーク121の起動処理を示すフローチャートである。以下の説明では、説明の便宜上、画像処理装置20を「ローカル」と呼び、クラウドサービス提供装置10を「リモート」と呼ぶ。まず、コンポーネントフレームワーク121は、装置で実行する機能に関連する(必要な)コンポーネントの情報を得るとともに、リモートのアドレスを参照する。
1-3. Operation Next, the operation of this embodiment will be described. First, operations performed by the
図8において、コンポーネントフレームワーク121は、画像処理装置20とクラウドサービス提供装置10のコンポーネントフレームワークで稼働しているコンポーネントを識別する。具体的には、まず、ステップS101において、コンポーネントフレームワーク121は定義ファイル271を参照し、コンポーネントフレームワーク121で稼働するコンポーネントを識別する。また、ステップS102において、コンポーネントフレームワーク121は、定義ファイルに定義されているコンポーネントのうち、クラウドサービス提供装置10で稼働しているコンポーネントをクラウドサービス提供装置10のコンポーネントフレームワーク111に問い合わせる。コンポーネントフレームワーク121は、リモート側で実行する可能性のある処理、またはその処理に用いるコンポーネントの一覧を送信し、その中で実際にコンポーネントフレームワーク111で稼働しているコンポーネントを問い合わせるようにしてもよい。また、コンポーネントフレームワーク121は、ローカルの装置の種別、コンポーネントフレームワークのバージョン、ローカル側のコンポーネントの一覧およびそのバージョン、ローカルで提供する機能等を送信し、リモート側からそれに適合するコンポーネントの一覧の応答を得るようにしても良い。
In FIG. 8, the
このとき、コンポーネントフレームワーク121は、画像処理装置20とクラウドサービス提供装置10の両方に同一のコンポーネントが存在する場合に、クラウドサービス提供装置10側のコンポーネントを利用すると選択してもよい。また、ローカルとリモートの両方に同一のコンポーネントが存在する場合にどちらのコンポーネントを利用するかの選択の手法はこれに限らず、例えば、コンポーネントフレームワーク121が、ローカルのリソースに依存するコンポーネントについてはローカルのコンポーネントを使用すると選択してもよい。
At this time, the
ステップS103において、コンポーネントフレームワーク121は、定義ファイル271に定義されたコンポーネントのうち、リモートに存在しないコンポーネントをローカルで起動する。なお、コンポーネントフレームワーク121は、定義ファイル271を参照するのに代えて、リポジトリ(ファイル、ディレクトリ)に格納されたコンポーネントを検索し起動してもよい。
In step S <b> 103, the
ステップS104において、コンポーネントフレームワーク121は、リモートで稼働しているコンポーネントフレームワーク111とコネクションを確立し、WebSocketに移行する。このとき、コンポーネントフレームワーク121は、コンポーネントに対してWebSocket用のURIを割り当てる。ステップS105において、リモートで稼働しているコンポーネントを示す情報を定義ファイル271に記憶しておく。コンポーネントを示す情報としては、URLやUUID等が用いられる。また、コネクションの識別キー等の情報であってもよい。
In step S <b> 104, the
次いで、クラウドサービス提供装置10のコンポーネントフレームワーク111が行う処理について、図9を参照しつつ説明する。図9は、コンポーネントフレームワーク111の処理の流れを示すフローチャートである。ステップS201において、コンポーネントフレームワーク111は、定義ファイル14を参照し起動するコンポーネントを決定する。なお、コンポーネントフレームワーク111は、定義ファイル14を参照せず、リポジトリ(ディレクトリ、フォルダ等)に格納されているプログラムを起動するようにしても良く、また、起動用のプログラム、スクリプトファイルに従って起動するようにしても良い。次いで、ステップS202において、コンポーネントフレームワーク111は、決定したコンポーネントを起動する。ここまでが、リモート側の初期処理である。
Next, processing performed by the
ステップS203において、コンポーネントフレームワーク111は、ローカルからの要求(TCP/IPコネクションの確立と、後続するHTTP要求)を受け付ける。ステップS204において、コンポーネントフレームワーク111は、ステップS203で受け付けた要求がコンポーネントの問い合わせであるかを判定する。コンポーネントの問い合わせである場合は、コンポーネントフレームワーク111は、ステップS205において、ローカルからの問い合わせに対し、起動しているコンポーネントを示す情報を応答する。ここで、コンポーネントフレームワーク111は、ローカルからの問い合わせパラメータ(S102)に応じて、適切なコンポーネントを選択して応答するようにしても良い。
In step S203, the
一方、ステップS203で受け付けた要求がコネクション確立要求であった場合、即ち、HTTP要求の内容がコネクション開設要求である(UPGRADE情報が含まれる。さらに、特定のURLであることを判断しても良い)場合(ステップS204;NO、ステップS206;YES)、コンポーネントフレームワーク111は、ステップS207において、コネクション開設を受け付け、UPGRADEに応じる。ステップS208において、コンポーネントフレームワーク111は、要求元、即ちローカル側で稼働しているコンポーネントを示す情報を取得し、を定義ファイル14に記憶する。コンポーネントを示す情報としては、URLやUUID等が用いられる。また、コネクションの識別キー等の情報であってもよい。なお、コンポーネントフレームワーク111がステップS208を実行しない構成であってもよい。
On the other hand, if the request accepted in step S203 is a connection establishment request, that is, the content of the HTTP request is a connection establishment request (UPGRADE information is included. Further, it may be determined that the URL is a specific URL. ) (Step S204; NO, step S206; YES), the
次いで、コネクション確立後にコンポーネントフレームワーク111、121が行う処理の流れについて説明する。コンポーネントフレームワーク121は、コンポーネントからのデータをWebSocketのフレームに変換して転送する。また、コンポーネントフレームワーク121は、リモートから受信したWebSocketフレームをデコードし、コンポーネント間通信メッセージとしてコンポーネントに配送する。
Next, the flow of processing performed by the
図10は、コンポーネントフレームワーク111、121がコネクション確立後にコンポーネントから要求を受け付けた場合の処理の流れを示すフローチャートである。なお、以下の説明では、コンポーネントフレームワーク121の動作について説明するが、コンポーネントフレームワーク111とコンポーネントフレームワーク121はいずれも図10に示す同様の処理を実行する。コンポーネントフレームワーク121は、図10のステップS301において、コンポーネントからの要求を受け付ける。ステップS302、S304において、コンポーネントフレームワーク121は、要求先がローカル宛(自コンポーネントフレームワーク121上で動作しているコンポーネント宛)であるかリモート宛(コネクションを確立した相手側コンポーネント宛)であるかを判断する。この判断は、図8のステップS105(コンポーネントフレームワーク111の場合は図9のステップS208)で定義ファイル271(又は定義ファイル14)に記憶した情報を参照することにより行われる。なお、定義ファイル271、14に記憶された情報を参照するのに代えて、自コンポーネントフレームワーク上で動作しているコンポーネントか否かを判断し、自コンポーネントフレームワーク上で動作していないコンポーネントである場合は、リモートと判断するようにしても良い。
FIG. 10 is a flowchart showing the flow of processing when the
ステップS303において、コンポーネントフレームワーク121は、ローカル(自コンポーネントフレームワーク内のコンポーネント)宛と判断された場合、フレームワーク内通信を適用する。これは、通常のコンポーネントフレームワーク内通信である。例えば、UNIXドメインのソケット通信、パイプやメッセージキューなどのプロセス間通信を用いて通信する。
In step S303, the
一方、リモート(他のコンポーネントフレームワークのコンポーネント)宛と判断された場合、コンポーネントフレームワーク121は、ステップS305において、フレームワーク間通信を適用する。この通信は、図8のステップS104及び図9のステップS207で確立したコネクションを用いて行われる。なお、ステップS303とステップS305のいずれの場合も、通信で使用する上位プロトコルは同一のものを使用する。例えば、自コンポーネントフレームワーク内ではUNIXドメインソケット通信を用い、コンポーネントフレームワーク間ではWebSocket通信を用いる場合、UNIXドメインソケット通信に流されるプロトコルも、WebSocketのデータ内に流されるプロトコルもCORBAを用いる。コンポーネントから受け付けた要求がローカルのコンポーネント宛でもリモートのコンポーネント宛でもない場合には、コンポーネントフレームワーク121は、ステップS306においてエラー処理を行う。なお、コネクションが切断されていた場合、コンポーネントフレームワーク121は、その状態を検知した時点で、ステップS104の処理を再度実行しコネクションを再開設してからコンポーネントフレームワーク間通信を行うようにしても良い。
On the other hand, when it is determined that the address is remote (a component of another component framework), the
図15は従来のシステムの構成の一例を示す図である。このシステムでは、あるコンポーネント(画像処理サービス125)の機能を、クラウド上のサーバ装置10Bにマイグレーションする場合、WebサービスのWSDLを用いて生成したスタブ1242を使用し、コンポーネントフレームワーク121Bのスケルトン1241で受け付けた要求を、生成したスタブ1242を用いて要求する、といった、変換およびリダイレクトを行うコンポーネント(リダイレクタ124)を作成している。この変換はコンポーネントが提供するサービス毎に異なるので、利用する機能毎、コンポーネント毎にリダイレクタを作成している。
FIG. 15 is a diagram showing an example of the configuration of a conventional system. In this system, when the function of a certain component (image processing service 125) is migrated to the
この実施形態では、コンポーネントはコンポーネントフレームワークを経由してデータの授受を行うため、コンポーネントをクラウド上にマイグレーションする場合であってもリダイレクタを作成する必要がない。
また、この実施形態では、クラウドサービス提供装置10を利用することで、図15のシステムの構成と比べてCPU時間やメモリを要する処理に要する時間が短縮される。
また、本実施形態では、コンポーネントフレームワーク間のリモート通信にWebSocketプロトコルを適用する。WebSocketプロトコルはコネクションを維持し、コネクション維持中はHTTPヘッダを省略するため、WebSocketプロトコルを適用しない場合と比べてデータ量が削減される。
In this embodiment, since the component exchanges data via the component framework, it is not necessary to create a redirector even when the component is migrated to the cloud.
In this embodiment, by using the cloud
In the present embodiment, the WebSocket protocol is applied to remote communication between component frameworks. Since the WebSocket protocol maintains the connection and omits the HTTP header while the connection is maintained, the data amount is reduced compared to the case where the WebSocket protocol is not applied.
2.第2実施形態
2−1.構成
次いで、本発明の第2の実施形態について説明する。この実施形態では、コンポーネントを配置する配置機構を利用し、コンポーネントをコンポーネントフレームワーク111とコンポーネントフレームワーク121との一方又は両方で稼働させる。図11は、この実施形態に係る通信システム1Aの全体構成を示すブロック図である。通信システム1Aが上述した第1の実施形態に係る通信システム1と異なる点は、通信システム1Aがコンポーネント配置装置60を有している点である。なお、この実施形態において、上述した第1の実施形態と同様の構成要素については同じ符号を付してその説明を省略する。
2. Second embodiment 2-1. Configuration Next, a second embodiment of the present invention will be described. In this embodiment, the component is operated by one or both of the
コンポーネント配置装置60は、制御部61と、通信部62と、記憶部63とを備える。制御部61はCPU等の演算装置とROM及びRAMなどの主記憶装置とを備えている。演算装置は、RAMをワークエリアとして用いてROMや記憶部63に記憶されているプログラムを実行することによって、コンポーネント配置装置60の各部の動作を制御する。通信部62は、ネットワーク30を介して他の機器との間で通信をするためのインターフェースである。記憶部63は、例えばハードディスク等の記憶デバイスであり、制御部61が用いるデータやプログラムを記憶している。記憶部63は、コンポーネントリポジトリ64を有する。コンポーネントリポジトリ64には、コンポーネントをインストールするために必要なデータが格納されている。また、記憶部63には、後述する配置機構161(図12参照)の機能を実現するためのプログラム(図示略)が記憶されている。
The
図12は通信システム1Aに係る機能構成の一例を示す図である。コンポーネント配置装置60の制御部61は、記憶部63に記憶されたプログラムを読み出して実行することにより、配置機構161の機能を実現する。配置機構161は、取得手段162と、選択手段163と、送信手段164とを備える。取得手段162は、コンポーネントに関する情報を取得する。この情報は、例えば、画像処理装置20の利用者が操作部23を用いて自身が利用したい機能を選択し、制御部21が操作部23から出力される情報に応じて選択された機能に対応する情報として送信するものであってもよい。また、例えば、コンポーネントレポジトリ64に格納されたコンポーネントのリストが記憶部63に予め記憶されており、記憶されたリストを取得手段162が取得するものであってもよい。
FIG. 12 is a diagram illustrating an example of a functional configuration according to the communication system 1A. The control unit 61 of the
選択手段163は、取得手段162によって取得された情報に基づいて、取得された情報に対応するコンポーネントを、画像処理装置20及びクラウドサービス提供装置10の少なくともいずれか一方の装置で動作させるかを選択する。この選択の手法は、例えば、ローカルのリソースに依存するコンポーネントはローカルで動作させると選択してもよい。具体的には、例えば、入出力装置と関連するコンポーネントや、ユーザー操作を扱うコンポーネント、ローカルのデータと関連するコンポーネント、オンプレミスのシステム、ディレクトリサーバ、認証サーバ等と連携するコンポーネントについては、ローカルで動作させると選択してもよい。また、コンポーネントが提供するサービスや機能に関し、そのサービスや機能の利用範囲(事業者/イントラ内/グローバル、等)を示す属性に基づいて選択を行ってもよい。
The selection unit 163 selects whether to operate a component corresponding to the acquired information on at least one of the
送信手段164は、選択手段164によって画像処理装置20上で動作させると選択されたコンポーネントのインストールに必要なデータを画像処理装置20へ送信する。また、送信手段164は、選択手段164によってクラウドサービス提供装置10上で動作させると選択されたコンポーネントのインストールに必要なデータをクラウドサービス提供装置10へ送信する。このとき、送信手段164は、送信先の装置に既にそのコンポーネントがインストールされている場合には、インストールに必要なデータを送信しない。配置機構161は、例えば、Maven等のソフトウェアである。配置機構161は、画像処理装置20やクラウドサービス提供装置10にインストールされたコンポーネントを更新する更新機能を備えていてもよい。
When the
2−2.動作
次いで、この実施形態の動作の一例について説明する。配置機構161は、予め定められた条件が満たされたタイミングにおいて、以下に示すコンポーネントの配置処理を実行する。配置のタイミングとしては、例えば、画像処理装置20の起動のタイミングで行ってもよく、また、画像処理装置20の停止時、画像処理装置20がスリープモードに移行する前、画像処理装置20が予め定められた時間利用されていない場合、等、予め定められたタイミングでもよい。画像処理装置20が予め定められた条件が満たされたタイミングでコンポーネント配置装置60に対してデータを送信し、コンポーネント配置装置60がそのデータを受信することによって配置機構161が配置処理を開始する。画像処理20が予め定められた時間利用されていない場合に配置変更を行う場合は、配置機構161は、変更処理中に利用を検知した場合は、切り替えを中止するようにしてもよい。
2-2. Operation Next, an example of the operation of this embodiment will be described. The
配置機構161は、予め定められた条件が満たされたタイミングにおいて、コンポーネントに関する情報を取得し、取得した情報に対応するコンポーネントを画像処理装置20で動作させるかクラウドサービス提供装置10で動作させるかを選択する。配置機構161は、画像処理装置20上で動作させると選択したコンポーネントについては、そのコンポーネントのインストールに必要なデータを画像処理装置20へ送信する。また、配置機構161は、クラウドサービス提供装置10上で動作させると選択したコンポーネントについては、そのコンポーネントのインストールに必要なデータをクラウドサービス提供装置10へ送信する。
The
また、配置機構161は、コンポーネントの配置の変更に合わせてデータを移動してもよい。例えば、クラウドサービス提供装置10で動作させると選択したコンポーネントが画像処理装置20にインストールされている場合には、配置機構161は、ローカル側のコンポーネントが扱うデータ(コンポーネントの外部から参照できないデータ、等)をリモート側に移動し、移動が完了した時点でリモートのコンポーネントを利用するようにしてもよい。この場合、配置機構161は、移動が完了した時点でリモートのコンポーネントに接続を切り替え、ローカルのコンポーネントとデータは使用しないようにしてもよい。切り替えのタイミングとしては、例えば、シャットダウン、ブート、アイドル時などであってもよく、また、例えば、夜間の時間帯等、予め定められた時間帯に切り替えるようにしてもよい。なお、ローカルのコンポーネントとデータは削除せずに維持し、リモートのコンポーネントと接続できない場合に利用してもよい。その場合、ローカル側に保持しているデータは、予め定められたタイミングでリモート側のデータと同期しておく。
Further, the
このようにして、画像処理装置20は、配置機構に登録されているコンポーネントを予め定められた条件が満たされたタイミングで検索し、利用可能なものや定義ファイルに記載されているものを自装置に配置(ダウンロード)する。
In this way, the
また、配置機構161は、画像処理装置20にインストールされたコンポーネントのバージョンとクラウドサービス提供装置10にインストールされたコンポーネントのバージョンとが整合しない場合、画像処理装置20及びクラウドサービス提供装置10の少なくともいずれか一方にバージョンの不整合を是正するためのアダプタコンポーネントを配置し、アダプタコンポーネント経由で通信を行わせるようにしてもよい。
In addition, when the version of the component installed in the
3.変形例
上述した実施形態は、本発明の一例であり、以下のように変形してもよい。また、以下の変形例は、互いに組み合わせてもよい。
3. The above-described embodiment is an example of the present invention, and may be modified as follows. The following modifications may be combined with each other.
(1)上述の各実施形態では、画像処理装置20とクラウドサービス提供装置10とで処理を分担する通信システムについて説明したが、本発明に係る通信システムは上述した実施形態で示したものに限定されない。例えば、図13に示すように複数の画像処理装置20A、20Bと、クラウドサービス提供装置10Aとがインターネット40を介して通信する分散処理システムであってもよい。また、ファイアウォール50を越える場合にフレームワーク間通信を適用するようにしても良い。例えば、イントラネット内通信では、コンポーネントフレームワーク121A、121B、111Aで予め決められたポート番号(80以外)を、宛先ポートとして用いて通信する一方、インターネットを介する場合は、宛先ポートとして「80」を使用するようにしてもよい。
また、イントラネット、インターネットの判断は、相手のIPアドレスなどで判断してもよい。また、通常のフレームワーク間通信がエラーになるかをプローブ処理で確認したのち適用するようにしてもよい。
(1) In each of the above-described embodiments, the communication system that shares processing between the
Further, the intranet and the Internet may be determined based on the other party's IP address or the like. Further, it may be applied after confirming by probe processing whether or not normal interframework communication results in an error.
(2)上述の第2の実施形態では、クラウドサービス提供装置10とコンポーネント配置装置60とを別体の装置として設ける場合について説明したが、クラウドサービス提供装置10とコンポーネント配置装置60とが一体として構成されていてもよい。すなわち、クラウドサービス提供装置10が配置機構を備える構成であってもよい。この場合、クラウドサービス提供装置10の制御部11(取得手段、選択手段、送信手段、要求データ送信手段、インストール実行手段の一例)は、ソフトウェアコンポーネントに関する情報を取得し、取得した情報に基づいて、その情報に対応するソフトウェアコンポーネントをクラウドサービス提供装置10で動作させるか画像処理装置20で動作させるかを選択する。制御部11は、コンポーネントを画像処理装置20で動作させると選択した場合であって、画像処理装置20にそのコンポーネントがインストールされていない場合には、インストールに必要な情報を画像処理装置20へ送信する。また、制御部11は、コンポーネントを自装置で動作させると選択した場合であって、自装置にそのコンポーネントがインストールされていない場合に、インストールに必要なデータを要求する旨を示すデータを画像処理装置20へ送信し、その応答として送信されてくる、コンポーネントのインストールに必要なデータを受信し、インストール処理を実行する。
(2) In the above-described second embodiment, the case where the cloud
また、画像処理装置20とコンポーネント配置装置60とが一体として構成されていてもよい。すなわち、画像処理装置20が配置機構を備える構成であってもよい。この場合、画像処理装置20の制御部21(取得手段、選択手段、送信手段、要求データ送信手段、インストール実行手段の一例)は、上述の制御部11と同様の処理を行ってコンポーネントの配置処理を行う。
Further, the
(3)上述の各実施形態では、コンポーネントフレームワーク間の通信にWebSocketプロトコルを適用したが、フレームワーク間の通信で用いられる通信プロトコルはこれに限らず、他の通信プロトコルであってもよい。例えば、HTTPのKeep−Aliveヘッダを用いることによってコネクションを維持するようにしてもよい。なお、コンポーネントフレームワーク間の通信には、ファイアウォールを透過可能な通信を適用することが好ましい。具体的には、例えば、TCP/IPのポート80(HTTP)や443(SSL)を用いてもよい。 (3) In each of the above-described embodiments, the WebSocket protocol is applied to communication between component frameworks. However, the communication protocol used for communication between the frameworks is not limited to this, and other communication protocols may be used. For example, the connection may be maintained by using an HTTP Keep-Alive header. In addition, it is preferable to apply the communication which can permeate | transmit a firewall for the communication between component frameworks. Specifically, for example, TCP / IP port 80 (HTTP) or 443 (SSL) may be used.
(4)上述の各実施形態では、コンポーネントフレームワークとして、OSGi等を例示したが、コンポーネントフレームワークはこれに限定されない。例えばソフトウェアプラットフォームであっても良い。その場合、アプリケーションがコンポーネントに相当する。 (4) In each embodiment described above, OSGi or the like is exemplified as the component framework, but the component framework is not limited to this. For example, it may be a software platform. In that case, the application corresponds to a component.
(5)上述の第1の実施形態において、画像処理装置20とクラウドサービス提供装置10の両方に同一のコンポーネントが存在する場合に、コンポーネントフレームワーク121が、どちらのコンポーネントを使用するかを動的に変更してもよい。この場合は、ローカルとリモートの両方に同一のコンポーネントを配置しておき、コンポーネントフレームワーク121は、どちらのコンポーネントを利用する方が有利かをその都度判断する。この判断は、例えば、時間帯や通信のトラフィック状況、クラウドサービス提供装置10の処理負荷の状況等に従って判断してもよい。
(5) In the first embodiment described above, when the same component exists in both the
また、コンポーネントフレームワーク111、121が判断を行うのに代えて、判断を行う独立したコンポーネントを設け、コンポーネントフレームワークはそのコンポーネントに判断を要求し、その応答に応じて、送信先を切り替えるようにしてもよい。この場合、コンポーネントフレームワーク111、121は、相手側のコンポーネントフレームワークとのコネクションを動的に開設しても良い。
In addition, instead of the
また、ローカルとリモートとのいずれを用いるかを選択する他の手法として、コンポーネントフレームワーク121が機能やサービスの利用範囲に応じて分担を変更するようにしてもよい。具体的には、例えば、コンポーネントが提供する機能やサービスが共用である場合、コンポーネントフレームワーク121がリモートのコンポーネントを利用すると選択してもよい。また、例えば、契約等により、サイト内のサーバ上/クラウド上の機能を共用することなどの設定がなされている場合に、その設定内容に従ってコンポーネントフレームワーク121が選択を行ってもよい。
また、電子文書格納機能において、電子文書を共有するか否か、共有範囲がサイト内であるか否か、サイト間で共用するか否か、といった条件に従ってコンポーネントフレームワーク121が選択を行ってもよい。
Further, as another method for selecting whether to use local or remote, the
Further, in the electronic document storage function, even if the
(6)上述の第2の実施形態では、コンポーネントフレームワーク111、121のバージョンが整合していない場合にアダプタソフトウェアを利用する構成としたが、これに限らず、バージョンが整合していない場合にリモート側のコンポーネントは使用しないように制御してもよい。また、リモート側のコンポーネントフレームワーク111のバージョンに応じて、異なるフレームワーク間通信(例えば異なるバージョンのWebSocketプロトコル)を適用してもよい。
(6) In the second embodiment described above, the adapter software is used when the versions of the
(7)通信システム1の構成は、上述した実施形態で説明した構成に限定されない。例えば、通信システム1を構成する各装置の数は、実施形態とは異なる数であってもよい。例えば、上述の実施形態では、通信システム1が1台の画像処理装置20を備える例を示したが、画像処理装置20の数は1に限らず、複数であってもよい。また、上述の実施形態では、ひとつのクラウドサービスを1台のクラウドサービス提供装置が提供したが、これに限らず、ひとつのクラウドサービスが複数のサーバ装置によって提供されてもよい。
(7) The configuration of the
また、図14に示すように、画像処理装置20aがローカル装置20bを介してクラウドサービス提供装置10と接続される構成であってもよい。
Further, as shown in FIG. 14, the
(8)上述した実施形態で説明した画像処理装置20は、クラウドサービス提供装置10からサービスの提供を受けるクライアント装置の一例である。このクライアント装置は、例えばパーソナルコンピュータ、タブレットPC(Personal Computer)、携帯電話機等の他の装置であってもよい。
(8) The
(9)クラウドサービス提供装置10又は画像処理装置20において実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、このプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。
(9) The program executed in the cloud
1…通信システム、10…クラウドサービス提供装置、11,21…制御部、12,22…通信部、13,23…記憶部、14,271…定義ファイル、15…フレームワークプログラム、16…コンポーネントプログラム、20…画像処理装置、24…表示部、25…画像形成部、26…画像読取部、27…記憶部、30…ネットワーク、111,121…コンポーネントフレームワーク、112…画像処理部、122…読取制御部、123…プリント制御部、272…フレームワークプログラム、273…コンポーネントプログラム。
DESCRIPTION OF
Claims (6)
前記フレームワークプログラムに従い、前記複数のコンポーネントプログラムの各々に従う処理において利用されるプログラムを提供する第1のソフトウェアフレームワークを構築する処理と、
前記通信手段により通信する他のコンピュータにおいて構築されている第2のソフトウェアフレームワークを認識する処理と、
前記第1のソフトウェアフレームワークに、前記第2のソフトウェアフレームワークとの間のコネクションを開設させる処理と、
前記複数のコンポーネントプログラムの各々に従い、前記第1のソフトウェアフレームワークの上で動作するソフトウェアコンポーネントを構築する処理と、
前記第1のソフトウェアフレームワークの上で動作している一のソフトウェアコンポーネントに対し、前記一のソフトウェアコンポーネントが他のソフトウェアコンポーネントとの間で予め定められた規則に従う通信を行うためのインターフェースを提供する処理と、
前記他のソフトウェアコンポーネントが前記第2のソフトウェアフレームワークの上で動作している場合、前記第1のソフトウェアフレームワークに、前記一のソフトウェアコンポーネントが前記インターフェースを介して前記他のソフトウェアコンポーネントとの間で行う通信を、前記コネクションを介して中継させる処理と
を実行させるためのプログラム。 A storage unit stores a framework program and a plurality of component programs.
A process of constructing a first software framework that provides a program used in a process according to each of the plurality of component programs according to the framework program;
Processing for recognizing a second software framework constructed in another computer that communicates with the communication means;
A process of causing the first software framework to establish a connection with the second software framework;
A process of building a software component that operates on the first software framework according to each of the plurality of component programs;
An interface is provided for one software component operating on the first software framework to communicate with the one software component according to a predetermined rule with another software component. Processing,
When the other software component is operating on the second software framework, the one software component communicates with the other software component via the interface in the first software framework. A program for executing the process of relaying the communication performed by using the connection.
を更に実行させるための請求項1に記載のプログラム。 When the same common software component exists in both the computer and the other computer, the first software framework further executes a process of selecting the common software component to operate on the other computer. A program according to claim 1 for.
を更に実行させるための請求項1に記載のプログラム。 When the same common software component exists in both the computer and the other computer, and the common software component depends on the resources of the computer, the first software framework is the common software component. The program according to claim 1, further causing a process to be selected when a software component is operated on the computer.
前記取得された情報に基づいて、当該情報に対応するソフトウェアコンポーネントを前記コンピュータで動作させるか前記他のコンピュータで動作させるかを選択する処理と、
前記取得された情報に対応するソフトウェアコンポーネントを前記他のコンピュータで動作させると選択された場合であって、前記他のコンピュータに当該ソフトウェアコンポーネントがインストールされていない場合に、当該ソフトウェアコンポーネントを動作させるために必要な情報を前記他のコンピュータへ送信する処理と
を更に実行させるための請求項1に記載のプログラム。 Processing to obtain information about software components;
Based on the acquired information, a process of selecting whether to operate a software component corresponding to the information on the computer or the other computer;
When the software component corresponding to the acquired information is selected to be operated on the other computer and the software component is not installed on the other computer, the software component is operated The program of Claim 1 for performing further the process which transmits the information required for this to said another computer.
前記取得された情報に基づいて、当該情報に対応するソフトウェアコンポーネントを前記コンピュータで動作させるか前記他のコンピュータで動作させるかを選択する処理と、
前記取得された情報に対応するソフトウェアコンポーネントを前記コンピュータで動作させると選択された場合であって、前記コンピュータに当該ソフトウェアコンポーネントがインストールされてない場合に、当該ソフトウェアコンポーネントの送信を要求する要求データを前記他のコンピュータ又は予め定められたコンピュータへ送信する処理と、
前記要求データに対する応答として送信されてくる、ソフトウェアコンポーネントを動作させるために必要な情報を受信し、当該ソフトウェアコンポーネントのインストール処理を実行する処理と
を更に実行させるための請求項1に記載のプログラム。 Processing to obtain information about software components;
Based on the acquired information, a process of selecting whether to operate a software component corresponding to the information on the computer or the other computer;
When it is selected that the software component corresponding to the acquired information is operated on the computer, and the software component is not installed in the computer, request data for requesting transmission of the software component is received. A process of transmitting to the other computer or a predetermined computer;
The program according to claim 1, further comprising: receiving information necessary for operating a software component transmitted as a response to the request data, and executing a process of installing the software component.
通信手段と、
前記フレームワークプログラムに従い、前記複数のコンポーネントプログラムの各々に従う処理において利用されるプログラムを提供する第1のソフトウェアフレームワークを構築する処理と、
前記通信手段により通信する他のコンピュータにおいて構築されている第2のソフトウェアフレームワークを認識する処理と、
前記第1のソフトウェアフレームワークに、前記第2のソフトウェアフレームワークとの間のコネクションを開設させる処理と、
前記複数のコンポーネントプログラムの各々に従い、前記第1のソフトウェアフレームワークの上で動作するソフトウェアコンポーネントを構築する処理と、
前記第1のソフトウェアフレームワークの上で動作している一のソフトウェアコンポーネントに対し、前記一のソフトウェアコンポーネントが他のソフトウェアコンポーネントとの間で予め定められた規則に従う通信を行うためのインターフェースを提供する処理と、
前記他のソフトウェアコンポーネントが前記第2のソフトウェアフレームワークの上で動作している場合、前記第1のソフトウェアフレームワークに、前記一のソフトウェアコンポーネントが前記インターフェースを介して前記他のソフトウェアコンポーネントとの間で行う通信を、前記コネクションを介して中継させる処理と
を実行するデータ処理手段と
を備える装置。 Storage means for storing a framework program and a plurality of component programs;
Communication means;
A process of constructing a first software framework that provides a program used in a process according to each of the plurality of component programs according to the framework program;
Processing for recognizing a second software framework constructed in another computer that communicates with the communication means;
A process of causing the first software framework to establish a connection with the second software framework;
A process of building a software component that operates on the first software framework according to each of the plurality of component programs;
An interface is provided for one software component operating on the first software framework to communicate with the one software component according to a predetermined rule with another software component. Processing,
When the other software component is operating on the second software framework, the one software component communicates with the other software component via the interface in the first software framework. And a data processing means for executing a process of relaying the communication performed in step 1 through the connection.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013060135A JP2014186473A (en) | 2013-03-22 | 2013-03-22 | Program and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013060135A JP2014186473A (en) | 2013-03-22 | 2013-03-22 | Program and device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016200929A Division JP6288206B2 (en) | 2016-10-12 | 2016-10-12 | Program and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014186473A true JP2014186473A (en) | 2014-10-02 |
Family
ID=51834005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013060135A Pending JP2014186473A (en) | 2013-03-22 | 2013-03-22 | Program and device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014186473A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017058791A (en) * | 2015-09-14 | 2017-03-23 | 株式会社リコー | Information processing system, information processing apparatus, information processing method, and program |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08115288A (en) * | 1994-10-03 | 1996-05-07 | Internatl Business Mach Corp <Ibm> | Communication management method |
JPH09160856A (en) * | 1995-09-12 | 1997-06-20 | Internatl Business Mach Corp <Ibm> | Communication management method and computer system |
JPH10308736A (en) * | 1997-05-09 | 1998-11-17 | Hitachi Ltd | Distributed network managing system |
JP2000029707A (en) * | 1997-12-18 | 2000-01-28 | Sun Microsyst Inc | Method and apparatus for high-speed local corba object reference |
JP2000242609A (en) * | 1999-02-23 | 2000-09-08 | Nippon Telegr & Teleph Corp <Ntt> | Distributed object dynamic arrangement control method and device |
JP2004038872A (en) * | 2002-07-08 | 2004-02-05 | Toshiba Corp | Method and program for changing policy of client equipment and client system in distributed processing system |
JP2008306714A (en) * | 2001-04-09 | 2008-12-18 | Objective Interface Systems Inc | Communicating method and apparatus in network application, and program for them |
-
2013
- 2013-03-22 JP JP2013060135A patent/JP2014186473A/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08115288A (en) * | 1994-10-03 | 1996-05-07 | Internatl Business Mach Corp <Ibm> | Communication management method |
JPH09160856A (en) * | 1995-09-12 | 1997-06-20 | Internatl Business Mach Corp <Ibm> | Communication management method and computer system |
JPH10308736A (en) * | 1997-05-09 | 1998-11-17 | Hitachi Ltd | Distributed network managing system |
JP2000029707A (en) * | 1997-12-18 | 2000-01-28 | Sun Microsyst Inc | Method and apparatus for high-speed local corba object reference |
JP2000242609A (en) * | 1999-02-23 | 2000-09-08 | Nippon Telegr & Teleph Corp <Ntt> | Distributed object dynamic arrangement control method and device |
JP2008306714A (en) * | 2001-04-09 | 2008-12-18 | Objective Interface Systems Inc | Communicating method and apparatus in network application, and program for them |
JP2004038872A (en) * | 2002-07-08 | 2004-02-05 | Toshiba Corp | Method and program for changing policy of client equipment and client system in distributed processing system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017058791A (en) * | 2015-09-14 | 2017-03-23 | 株式会社リコー | Information processing system, information processing apparatus, information processing method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183031B2 (en) | Provisioning of a virtual machine by using a secured zone of a cloud environment | |
TWI253262B (en) | Remote dynamic configuration of a web server to facilitate capacity on demand | |
US9398084B2 (en) | Information processing system | |
US10999405B2 (en) | Method for processing access requests and web browser | |
JP2011221991A (en) | Terminal equipment, server device, communication system, control method for terminal equipment, program and recording medium thereof | |
US9866407B2 (en) | Information processing system, cloud server, device control method, and non-transitory computer-readable recording medium encoded with device control program | |
JP2013235518A (en) | Server device, system, and control method thereof | |
JP2014115895A (en) | Information processor and control method therefor, and program | |
US11411812B2 (en) | Dynamic service creation for microservice-based integration service | |
JP4791850B2 (en) | Information processing system and virtual office system | |
JP2015106292A (en) | Information processor, system, and control method for information processor | |
CN108306943A (en) | Information processing unit, its control method, storage medium and information processing system | |
JP6405831B2 (en) | Information processing apparatus, communication system, and program | |
JP2007140975A (en) | Service providing system, linkage information providing server, authentication server, service providing server, service providing method and program | |
KR20170034219A (en) | Method for providing service trough solution server under secure environment, apparatus and system for performing the same | |
JP6288206B2 (en) | Program and apparatus | |
JP2014186473A (en) | Program and device | |
JP2005055983A (en) | Service management method and apparatus, and control program | |
JP2017188076A (en) | Information processing unit, control method of information processing unit and program | |
JP2009048386A (en) | Communication system, communication method, communication control program, and recording medium with the program stored therein | |
JP2007164679A (en) | Remote installation system and method, and server cloning system and method | |
JP2015201758A (en) | Repeater, communication system, information processing method, and program | |
JP2015069547A (en) | Server device, terminal device, communication method, and computer program | |
US11677724B1 (en) | Data access and firewall tunneling using a custom socket factory | |
JP2015114843A (en) | Service providing system and method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160209 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160411 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160712 |