JP2014186473A - Program and device - Google Patents

Program and device Download PDF

Info

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
Application number
JP2013060135A
Other languages
Japanese (ja)
Inventor
Nobuo Iwata
伸夫 岩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2013060135A priority Critical patent/JP2014186473A/en
Publication of JP2014186473A publication Critical patent/JP2014186473A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To facilitate migration of a part of a software system to a device through a network, especially to a server device or a cloud service on the Internet.SOLUTION: A component framework 121 of an image processing device 20 applies in-component communication when components running on the component framework 121 communicate with each other, and applies inter-component communication when a component running on the component framework 121 communicates with a component running on a component framework 111. For the inter-component communication, the component framework 121 relays the communication through a WebSocket connection, which the component running on the own component framework performs with the component running on the other component framework.

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. Patent Document 1 discloses a method for managing a communication path between a client process and a server process that resides in a host computer connected to a physical network having a transport layer and a network layer, and is in a distributed computing environment. It is described that the client process makes a remote procedure call (RPC), checks whether the server process specified by RPC exists on the server, sets the communication path, and calls the remote procedure. ing. Patent Document 2 describes a network management system in which modules cooperate with each other to realize a management function. When a module is started, program interface information is registered in a repository, a module is searched based on an operation name, and distributed arrangement is performed. It is described that the communicated modules communicate with each other transparently via the base. Patent Document 3 describes that in a system in which a client requests a service from a server device using RPC, an internal processing communication path is set if the server processing is in a host computer. As described above, conventionally, a method of performing distributed processing among devices in a local network has been studied.
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.

特開平09−160856号公報JP 09-160856 A 特開平10−308736号公報Japanese Patent Laid-Open No. 10-308736 特開平08−115288号公報Japanese Patent Laid-Open No. 08-115288

本発明は、ソフトウェアシステムの一部を、ネットワークを介した装置、特にインターネット上のサーバ装置またはクラウドサービスに移行することを容易にする仕組みを提供することを目的とする。   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 claim 1 is used in a process in which a framework program and a plurality of component programs are stored in a storage unit, and a computer having a communication unit is in accordance with each of the plurality of component programs in accordance with the framework program. A process for constructing a first software framework for providing a program, a process for recognizing a second software framework constructed in another computer communicating by the communication means, and a process for recognizing the first software framework. In accordance with each of the plurality of component programs, a software component that operates on the first software framework is constructed in accordance with a process for establishing a connection with the second software framework. And the one software component that communicates with another software component in accordance with a predetermined rule with respect to the one software component operating on the first software framework When the process of providing an interface and the other software component is operating on the second software framework, the one software component is connected to the first software framework via the interface. Provided is a program for executing processing for relaying communication performed with other software components via the connection.

請求項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 claim 1, wherein the same common software component exists in both the computer and the other computer, and the common software component depends on resources of the computer. If so, the first software framework further executes a process of selecting the common software component to operate on the computer.

請求項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 claim 1, the software component corresponding to the acquired information is selected to operate on the computer, and the software component is installed in the computer If not, in order to operate the software component transmitted as a response to the request data and the process of transmitting request data requesting the transmission of the software component to the other computer or a predetermined computer And receiving the information necessary for the software component, and further executing a process of executing the installation process of the software component.

請求項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 claim 2, a part of the software system can be operated on another computer different from the own computer.
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.

通信システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of a communication system. クラウドサービス提供装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of a cloud service provision apparatus. 画像処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of an image processing apparatus. クラウドサービス提供装置と画像処理装置の機能構成を示すブロック図である。It is a block diagram which shows the function structure of a cloud service provision apparatus and an image processing apparatus. WebSocketプロトコルによる通信を説明するための図である。It is a figure for demonstrating the communication by a WebSocket protocol. パケットのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of a packet. HTTPヘッダの内容の一例を示す図である。It is a figure which shows an example of the content of the HTTP header. コンポーネントフレームワークが実行する起動処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the starting process which a component framework performs. コンポーネントフレームワークが実行する起動処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the starting process which a component framework performs. コンポーネントフレームワークが実行する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which a component framework performs. 通信システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of a communication system. 通信システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of a communication system. 通信システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of a communication system. 通信システムの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of a communication system. 従来の通信システムの機能構成の一例を示すブロック図である。It is a block diagram which shows an example of a function structure of the conventional communication system.

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 communication system 1 according to an embodiment of the present invention. The communication system 1 includes a cloud service providing device 10 and an image processing device 20. The cloud service providing apparatus 10 is an apparatus that provides a so-called cloud service. The network 30 is a network such as a local area network (LAN) or a wide area network (WAN), and is a communication line that connects the cloud service providing apparatus 10 and the image processing apparatus 20. The image processing apparatus 20 is, for example, an electrophotographic image forming apparatus. The image processing apparatus 20 receives the image data from the cloud service providing apparatus 10, and outputs the image data by forming an image indicated by the received image data on a medium such as paper.

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 service providing device 10. In the figure, the control unit 11 (an example of data processing means) includes an arithmetic device such as a CPU (Central Processing Unit) and a main storage device such as a ROM (Read Only Memory) and a RAM (Random Access Memory). . The arithmetic device controls the operation of each unit of the cloud service providing apparatus 10 by executing a program stored in the ROM or the storage unit 13 using the RAM as a work area. The communication unit 12 is an interface for communicating with other devices via the network 30. The storage unit 13 is a storage device such as a hard disk, and stores data and programs used by the control unit 11. The storage unit 13 stores a definition file 14, a framework program 15, and a component program 16. The definition file 14 relates to installed components such as information indicating software components (hereinafter simply referred to as “components”) installed in the cloud service providing apparatus 10 and information used by the installed components. Contains information. The framework program 15 is a software framework program for operating components, and the component program 16 is a component program.

図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 image processing apparatus 20. In the figure, the control unit 21 (an example of data processing means) includes an arithmetic device such as a CPU and a main storage device such as a ROM and a RAM. The ROM stores a program executed by the arithmetic device. The arithmetic device controls the operation of each unit of the image processing device 20 by executing a program stored in the ROM or the storage unit 27 using the RAM as a work area. The communication unit 22 is an interface for communicating with other devices via the network 30. The operation unit 23 includes operators such as various keys and touch sensors, and supplies an operation signal corresponding to a user operation to the control unit 21. The control unit 21 performs processing according to the operation signal. The display unit 24 includes a liquid crystal panel and a liquid crystal driving circuit, and displays an image under the control of the control unit 21. The image forming unit 25 forms an image by electrophotography. The image reading unit 26 optically reads an image of a document. The storage unit 27 is a storage device such as a hard disk, and stores data and programs used by the control unit 21. The storage unit 27 stores a definition file 271, a framework program 272, and a component program 273. The definition file 271 includes information related to the installed component such as information indicating the component installed in the image processing apparatus 20 and information used by the installed component. The framework program 272 is a software framework program for operating components, and the component program 273 is a component program.

図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 service providing apparatus 10 and the image processing apparatus 20. The control unit 11 of the cloud service providing apparatus 10 constructs a component framework 111 according to the framework program 15 stored in the storage unit 13, reads various component programs as necessary, and reads component frames according to the read component programs. Various components (image processing unit 112, etc.) are constructed using various functions provided by the work 111. In addition, the control unit 21 of the image processing apparatus 20 constructs the component framework 121 according to the framework program 272 stored in the storage unit 27, reads various component programs as needed, and reads component components according to the read component programs. Various components (reading control unit 122, print control unit 123, etc.) are constructed using various functions provided by the framework 121. Hereinafter, the component frameworks 111 and 121 and each component (the image processing unit 112, the reading control unit 122, the print control unit 123, and the like) will be described as the main subject of the operation. The following operations are performed by reading out and executing 15, 272 and component programs 15, 273.

コンポーネントフレームワーク111、121は、コンポーネントを稼働させるソフトウェアフレームワークであり、コンポーネントが利用するプログラムを提供する。この実施形態では、コンポーネントは、コンポーネントフレームワーク111、121に認識され実行されるソフトウェアのモジュールの単位である。コンポーネントフレームワーク111、121は、データの遣り取りを行うコンポーネントが自装置内に格納されているコンポーネント同士であるか否かによって通信の手法を切り替える。   The component frameworks 111 and 121 are software frameworks that operate components, and provide programs used by the components. In this embodiment, a component is a unit of a software module that is recognized and executed by the component frameworks 111 and 121. The component frameworks 111 and 121 switch communication methods depending on whether or not the components that exchange data are components stored in the own device.

コンポーネントフレームワーク111、121は、通信部12、22により通信する他のコンピュータにおいて構築されているソフトウェアフレームワークを認識する。また、コンポーネントフレームワーク111、121は、両者の間でコネクションを開設し、自コンポーネントフレームワーク上で動作している一のソフトウェアコンポーネントに対し、この一のソフトウェアコンポーネントが他のソフトウェアコンポーネントとの間で予め定められた規則に従う通信を行うためのインターフェースを提供する。また、コンポーネントフレームワーク111、121は、他のソフトウェアコンポーネントが他のコンポーネントフレームワークの上で動作している場合、自コンポーネントフレームワーク上で動作しているコンポーネントが上記インターフェースを介して他のコンポーネントとの間で行う通信を、開設したコネクションを介して中継させる。   The component frameworks 111 and 121 recognize a software framework constructed in another computer that communicates with the communication units 12 and 22. In addition, the component frameworks 111 and 121 establish a connection between them, and this one software component is connected to another software component with respect to one software component operating on its own component framework. An interface for performing communication in accordance with a predetermined rule is provided. In addition, when other software components are operating on other component frameworks, the component frameworks 111 and 121 are configured so that components operating on the component framework can communicate with other components via the interface. The communication performed between the two is relayed through the established connection.

以下の説明では、説明の便宜上、一のコンポーネントフレームワーク上で動作するコンポーネント同士で行う通信を「フレームワーク内通信」と呼び、一のコンポーネントフレームワーク上で動作するコンポーネントが他のコンポーネントフレームワーク上で動作するコンポーネントとデータの授受を行う場合の通信を「フレームワーク間通信」と呼ぶ。   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 component frameworks 111 and 121. In this embodiment, the WebSocket protocol is used for communication between the component framework 111 and the component framework 121. The WebSocket protocol is a protocol that maintains a connection and is transparent to a firewall. In this embodiment, the component framework 121 on the image processing apparatus 20 side functions as a client, and the component framework 111 on the cloud service providing apparatus 10 side functions as a server.

ここで、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 component frameworks 111 and 121. FIG. 7 is a diagram illustrating an example of the contents of the HTTP header. The component frameworks 111 and 121 open a connection at the start timing and maintain the opened connection. In FIG. 5, first, the component frameworks 111 and 121 establish a TCP connection (steps S1 and S2). The control packet used in the TCP connection has a data structure illustrated in FIG. Next, the component framework 121 transmits an HTTP UPGRADE request (step S3), and the component framework 111 transmits an HTTP response (step S4), thereby establishing a WebSocket connection. The HTTP request and the HTTP response have the data structure illustrated in FIG. 6B, and the data structure illustrated in FIG. 6C is obtained by upgrading to the WebSocket. An example of the UPGRADE request header is shown in FIG. 7A, and an example of the UPGRADE response header is shown in FIG.

このように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 component framework 121 and the component framework 111 exchange data using the established connection (steps S5 and S6 in FIG. 5). Data according to various application protocols can be stored in the data portion of the WebSocket. In this embodiment, data in a data format according to the CORBA protocol used in the component frameworks 111 and 121 is exchanged. Note that the transmission direction of the WebSocket data request and response shown in steps S5 and S6 of FIG. 5 may be reversed. That is, the component framework 111 may send a request, and the component framework 121 may send a response. Further, the component framework 111 and the component framework 121 may be authenticated by an authentication method that is uniquely determined.

図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 image processing unit 112, the reading control unit 122, and the print control unit 123 are examples of components that operate on the component frameworks 111 and 121. The reading control unit 122 has a function of controlling the image reading unit 26 and causing the image reading unit 26 to read an image. The reading control unit 122 includes an interface unit 1221. The interface unit 1221 provides an interface for exchanging data with the print control unit 123. The print control unit 123 has a function of supplying image data to the image forming unit 27 and causing the image forming unit 27 to form an image. The print control unit 123 includes interface units 1231 and 1232. The interface unit 1231 provides an interface for exchanging data with the reading control unit 122. The interface unit 1232 provides an interface for exchanging data with the image processing unit 112. The image processing unit 112 performs various types of image processing on the image data such as character recognition processing and data format conversion processing. The image processing unit 112 has an interface unit 1121. The interface unit 1121 provides an interface for exchanging data with the print control unit 123.

コンポーネントのインターフェースは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 component frameworks 111 and 121. Each component communicates without being aware of whether the communication partner component is a component operating on the same component framework or a component operating on a component framework of another device.

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 component framework 121 of the image processing apparatus 20 will be described. FIG. 8 is a flowchart showing the activation process of the component framework 121. In the following description, for convenience of explanation, the image processing apparatus 20 is referred to as “local”, and the cloud service providing apparatus 10 is referred to as “remote”. First, the component framework 121 obtains (necessary) component information related to a function to be executed by the apparatus and refers to a remote address.

図8において、コンポーネントフレームワーク121は、画像処理装置20とクラウドサービス提供装置10のコンポーネントフレームワークで稼働しているコンポーネントを識別する。具体的には、まず、ステップS101において、コンポーネントフレームワーク121は定義ファイル271を参照し、コンポーネントフレームワーク121で稼働するコンポーネントを識別する。また、ステップS102において、コンポーネントフレームワーク121は、定義ファイルに定義されているコンポーネントのうち、クラウドサービス提供装置10で稼働しているコンポーネントをクラウドサービス提供装置10のコンポーネントフレームワーク111に問い合わせる。コンポーネントフレームワーク121は、リモート側で実行する可能性のある処理、またはその処理に用いるコンポーネントの一覧を送信し、その中で実際にコンポーネントフレームワーク111で稼働しているコンポーネントを問い合わせるようにしてもよい。また、コンポーネントフレームワーク121は、ローカルの装置の種別、コンポーネントフレームワークのバージョン、ローカル側のコンポーネントの一覧およびそのバージョン、ローカルで提供する機能等を送信し、リモート側からそれに適合するコンポーネントの一覧の応答を得るようにしても良い。   In FIG. 8, the component framework 121 identifies components operating in the component framework of the image processing device 20 and the cloud service providing device 10. Specifically, first, in step S <b> 101, the component framework 121 refers to the definition file 271 to identify a component that operates on the component framework 121. In step S <b> 102, the component framework 121 inquires of the component framework 111 of the cloud service providing apparatus 10 about the components operating in the cloud service providing apparatus 10 among the components defined in the definition file. The component framework 121 transmits processing that may be executed remotely or a list of components used for the processing, and inquires about components that are actually operating in the component framework 111 among them. Good. Also, the component framework 121 transmits the type of the local device, the version of the component framework, the list of components on the local side and their versions, the functions provided locally, etc. A response may be obtained.

このとき、コンポーネントフレームワーク121は、画像処理装置20とクラウドサービス提供装置10の両方に同一のコンポーネントが存在する場合に、クラウドサービス提供装置10側のコンポーネントを利用すると選択してもよい。また、ローカルとリモートの両方に同一のコンポーネントが存在する場合にどちらのコンポーネントを利用するかの選択の手法はこれに限らず、例えば、コンポーネントフレームワーク121が、ローカルのリソースに依存するコンポーネントについてはローカルのコンポーネントを使用すると選択してもよい。   At this time, the component framework 121 may select to use the component on the cloud service providing apparatus 10 side when the same component exists in both the image processing apparatus 20 and the cloud service providing apparatus 10. In addition, when the same component exists both locally and remotely, the method of selecting which component to use is not limited to this. For example, the component framework 121 for components that depend on local resources You may choose to use local components.

ステップS103において、コンポーネントフレームワーク121は、定義ファイル271に定義されたコンポーネントのうち、リモートに存在しないコンポーネントをローカルで起動する。なお、コンポーネントフレームワーク121は、定義ファイル271を参照するのに代えて、リポジトリ(ファイル、ディレクトリ)に格納されたコンポーネントを検索し起動してもよい。   In step S <b> 103, the component framework 121 locally activates a component that does not exist remotely among the components defined in the definition file 271. Note that the component framework 121 may search for and start up components stored in the repository (file, directory) instead of referring to the definition file 271.

ステップS104において、コンポーネントフレームワーク121は、リモートで稼働しているコンポーネントフレームワーク111とコネクションを確立し、WebSocketに移行する。このとき、コンポーネントフレームワーク121は、コンポーネントに対してWebSocket用のURIを割り当てる。ステップS105において、リモートで稼働しているコンポーネントを示す情報を定義ファイル271に記憶しておく。コンポーネントを示す情報としては、URLやUUID等が用いられる。また、コネクションの識別キー等の情報であってもよい。   In step S <b> 104, the component framework 121 establishes a connection with the component framework 111 that is operating remotely, and shifts to WebSocket. At this time, the component framework 121 assigns a URI for WebSocket to the component. In step S105, information indicating a component that is operating remotely is stored in the definition file 271. As information indicating the component, a URL, UUID, or the like is used. Information such as a connection identification key may also be used.

次いで、クラウドサービス提供装置10のコンポーネントフレームワーク111が行う処理について、図9を参照しつつ説明する。図9は、コンポーネントフレームワーク111の処理の流れを示すフローチャートである。ステップS201において、コンポーネントフレームワーク111は、定義ファイル14を参照し起動するコンポーネントを決定する。なお、コンポーネントフレームワーク111は、定義ファイル14を参照せず、リポジトリ(ディレクトリ、フォルダ等)に格納されているプログラムを起動するようにしても良く、また、起動用のプログラム、スクリプトファイルに従って起動するようにしても良い。次いで、ステップS202において、コンポーネントフレームワーク111は、決定したコンポーネントを起動する。ここまでが、リモート側の初期処理である。   Next, processing performed by the component framework 111 of the cloud service providing apparatus 10 will be described with reference to FIG. FIG. 9 is a flowchart showing a process flow of the component framework 111. In step S201, the component framework 111 refers to the definition file 14 and determines a component to be activated. Note that the component framework 111 may start a program stored in a repository (directory, folder, etc.) without referring to the definition file 14, or start according to a startup program or script file. You may do it. Next, in step S202, the component framework 111 activates the determined component. This is the initial processing on the remote side.

ステップS203において、コンポーネントフレームワーク111は、ローカルからの要求(TCP/IPコネクションの確立と、後続するHTTP要求)を受け付ける。ステップS204において、コンポーネントフレームワーク111は、ステップS203で受け付けた要求がコンポーネントの問い合わせであるかを判定する。コンポーネントの問い合わせである場合は、コンポーネントフレームワーク111は、ステップS205において、ローカルからの問い合わせに対し、起動しているコンポーネントを示す情報を応答する。ここで、コンポーネントフレームワーク111は、ローカルからの問い合わせパラメータ(S102)に応じて、適切なコンポーネントを選択して応答するようにしても良い。   In step S203, the component framework 111 accepts a local request (establishment of a TCP / IP connection and a subsequent HTTP request). In step S204, the component framework 111 determines whether the request received in step S203 is a component inquiry. If it is a component inquiry, in step S205, the component framework 111 responds to the inquiry from the local with information indicating the active component. Here, the component framework 111 may select and respond to an appropriate component according to the inquiry parameter (S102) from the local.

一方、ステップ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 component framework 111 accepts connection establishment in step S207 and responds to UPGRADE. In step S <b> 208, the component framework 111 acquires information indicating a request source, that is, a component operating on the local side, and stores the information in the definition file 14. As information indicating the component, a URL, UUID, or the like is used. Information such as a connection identification key may also be used. The component framework 111 may not execute step S208.

次いで、コネクション確立後にコンポーネントフレームワーク111、121が行う処理の流れについて説明する。コンポーネントフレームワーク121は、コンポーネントからのデータをWebSocketのフレームに変換して転送する。また、コンポーネントフレームワーク121は、リモートから受信したWebSocketフレームをデコードし、コンポーネント間通信メッセージとしてコンポーネントに配送する。   Next, the flow of processing performed by the component frameworks 111 and 121 after the connection is established will be described. The component framework 121 converts the data from the component into a WebSocket frame and transfers it. Further, the component framework 121 decodes the WebSocket frame received from the remote and delivers it to the component as an inter-component communication message.

図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 component frameworks 111 and 121 receive a request from the component after establishing a connection. In the following description, the operation of the component framework 121 will be described. However, both the component framework 111 and the component framework 121 execute the same processing shown in FIG. The component framework 121 receives a request from the component in step S301 in FIG. In steps S302 and S304, the component framework 121 determines whether the request destination is local (addressed to a component operating on the self-component framework 121) or remote (addressed to a partner component that has established a connection). Judging. This determination is made by referring to the information stored in the definition file 271 (or definition file 14) in step S105 of FIG. 8 (or step S208 of FIG. 9 in the case of the component framework 111). Instead of referring to the information stored in the definition files 271, 14, it is determined whether or not the component is operating on its own component framework. In some cases, it may be determined as remote.

ステップS303において、コンポーネントフレームワーク121は、ローカル(自コンポーネントフレームワーク内のコンポーネント)宛と判断された場合、フレームワーク内通信を適用する。これは、通常のコンポーネントフレームワーク内通信である。例えば、UNIXドメインのソケット通信、パイプやメッセージキューなどのプロセス間通信を用いて通信する。   In step S303, the component framework 121 applies intra-framework communication when it is determined that the component framework 121 is addressed to a local component (a component in its own component framework). This is normal component framework communication. For example, communication is performed using UNIX domain socket communication, or interprocess communication such as a pipe or a message queue.

一方、リモート(他のコンポーネントフレームワークのコンポーネント)宛と判断された場合、コンポーネントフレームワーク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 component framework 121 applies inter-framework communication in step S305. This communication is performed using the connection established in step S104 in FIG. 8 and step S207 in FIG. In both cases of step S303 and step S305, the same upper protocol is used for communication. For example, when UNIX domain socket communication is used in its own component framework and WebSocket communication is used between component frameworks, CORBA is used for both the protocol that flows in the UNIX domain socket communication and the protocol that flows in the WebSocket data. If the request received from the component is not addressed to the local component or the remote component, the component framework 121 performs error processing in step S306. If the connection has been disconnected, the component framework 121 may perform communication between the component frameworks after re-opening the connection by executing the process of step S104 again when the state is detected. good.

図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 server apparatus 10B on the cloud, the stub 1242 generated using the WSDL of the Web service is used, and the skeleton 1241 of the component framework 121B is used. A component (redirector 124) that performs conversion and redirection, such as requesting an accepted request using the generated stub 1242, is created. Since this conversion differs for each service provided by the component, a redirector is created for each function to be used and for each component.

この実施形態では、コンポーネントはコンポーネントフレームワークを経由してデータの授受を行うため、コンポーネントをクラウド上にマイグレーションする場合であってもリダイレクタを作成する必要がない。
また、この実施形態では、クラウドサービス提供装置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 service providing apparatus 10, CPU time and time required for processing requiring memory are shortened as compared with the system configuration of FIG. 15.
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 component framework 111 and the component framework 121 using an arrangement mechanism for arranging components. FIG. 11 is a block diagram showing the overall configuration of the communication system 1A according to this embodiment. The communication system 1A is different from the communication system 1 according to the first embodiment described above in that the communication system 1A includes a component arrangement device 60. In this embodiment, the same components as those in the first embodiment described above are denoted by the same reference numerals and description thereof is omitted.

コンポーネント配置装置60は、制御部61と、通信部62と、記憶部63とを備える。制御部61はCPU等の演算装置とROM及びRAMなどの主記憶装置とを備えている。演算装置は、RAMをワークエリアとして用いてROMや記憶部63に記憶されているプログラムを実行することによって、コンポーネント配置装置60の各部の動作を制御する。通信部62は、ネットワーク30を介して他の機器との間で通信をするためのインターフェースである。記憶部63は、例えばハードディスク等の記憶デバイスであり、制御部61が用いるデータやプログラムを記憶している。記憶部63は、コンポーネントリポジトリ64を有する。コンポーネントリポジトリ64には、コンポーネントをインストールするために必要なデータが格納されている。また、記憶部63には、後述する配置機構161(図12参照)の機能を実現するためのプログラム(図示略)が記憶されている。   The component arrangement device 60 includes a control unit 61, a communication unit 62, and a storage unit 63. The control unit 61 includes an arithmetic device such as a CPU and a main storage device such as a ROM and a RAM. The arithmetic device controls the operation of each unit of the component arrangement device 60 by executing a program stored in the ROM or the storage unit 63 using the RAM as a work area. The communication unit 62 is an interface for communicating with other devices via the network 30. The storage unit 63 is a storage device such as a hard disk, and stores data and programs used by the control unit 61. The storage unit 63 has a component repository 64. The component repository 64 stores data necessary for installing components. The storage unit 63 stores a program (not shown) for realizing the function of an arrangement mechanism 161 (see FIG. 12) described later.

図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 component arrangement device 60 realizes the function of the arrangement mechanism 161 by reading and executing the program stored in the storage unit 63. The arrangement mechanism 161 includes an acquisition unit 162, a selection unit 163, and a transmission unit 164. The acquisition unit 162 acquires information related to the component. For example, this information corresponds to the function selected by the user of the image processing apparatus 20 using the operation unit 23 and the control unit 21 according to the information output from the operation unit 23. It may be transmitted as information. Further, for example, a list of components stored in the component repository 64 may be stored in the storage unit 63 in advance, and the acquisition unit 162 may acquire the stored list.

選択手段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 image processing device 20 and the cloud service providing device 10 based on the information acquired by the acquisition unit 162. To do. For example, the component that depends on the local resource may be selected to operate locally. Specifically, for example, components related to input / output devices, components handling user operations, components related to local data, on-premises systems, directory servers, authentication servers, etc. operate locally. You may choose. Further, regarding the services and functions provided by the component, the selection may be performed based on an attribute indicating the range of use of the services and functions (operator / intra / global, etc.).

送信手段164は、選択手段164によって画像処理装置20上で動作させると選択されたコンポーネントのインストールに必要なデータを画像処理装置20へ送信する。また、送信手段164は、選択手段164によってクラウドサービス提供装置10上で動作させると選択されたコンポーネントのインストールに必要なデータをクラウドサービス提供装置10へ送信する。このとき、送信手段164は、送信先の装置に既にそのコンポーネントがインストールされている場合には、インストールに必要なデータを送信しない。配置機構161は、例えば、Maven等のソフトウェアである。配置機構161は、画像処理装置20やクラウドサービス提供装置10にインストールされたコンポーネントを更新する更新機能を備えていてもよい。   When the transmission unit 164 is operated on the image processing apparatus 20 by the selection unit 164, the transmission unit 164 transmits data necessary for installing the selected component to the image processing apparatus 20. In addition, when the transmission unit 164 is operated on the cloud service providing apparatus 10 by the selection unit 164, the transmission unit 164 transmits data necessary for installing the selected component to the cloud service providing apparatus 10. At this time, if the component is already installed in the transmission destination device, the transmission unit 164 does not transmit data necessary for installation. The arrangement mechanism 161 is software such as Maven, for example. The arrangement mechanism 161 may include an update function for updating components installed in the image processing apparatus 20 or the cloud service providing apparatus 10.

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 arrangement mechanism 161 executes component arrangement processing described below at a timing when a predetermined condition is satisfied. The arrangement timing may be, for example, the timing at which the image processing device 20 is activated, or when the image processing device 20 is stopped, before the image processing device 20 enters the sleep mode, It may be a predetermined timing such as when the predetermined time has not been used. The image processing device 20 transmits data to the component placement device 60 at a timing when a predetermined condition is satisfied, and the placement mechanism 161 starts the placement processing when the component placement device 60 receives the data. In the case where the arrangement change is performed when the image processing 20 is not used for a predetermined time, the arrangement mechanism 161 may cancel the switching when the use is detected during the change process.

配置機構161は、予め定められた条件が満たされたタイミングにおいて、コンポーネントに関する情報を取得し、取得した情報に対応するコンポーネントを画像処理装置20で動作させるかクラウドサービス提供装置10で動作させるかを選択する。配置機構161は、画像処理装置20上で動作させると選択したコンポーネントについては、そのコンポーネントのインストールに必要なデータを画像処理装置20へ送信する。また、配置機構161は、クラウドサービス提供装置10上で動作させると選択したコンポーネントについては、そのコンポーネントのインストールに必要なデータをクラウドサービス提供装置10へ送信する。   The arrangement mechanism 161 acquires information about the component at a timing when a predetermined condition is satisfied, and determines whether the component corresponding to the acquired information is operated by the image processing apparatus 20 or the cloud service providing apparatus 10. select. For the component that is selected to operate on the image processing apparatus 20, the arrangement mechanism 161 transmits data necessary for installation of the component to the image processing apparatus 20. In addition, for the component selected when operating on the cloud service providing apparatus 10, the arrangement mechanism 161 transmits data necessary for installing the component to the cloud service providing apparatus 10.

また、配置機構161は、コンポーネントの配置の変更に合わせてデータを移動してもよい。例えば、クラウドサービス提供装置10で動作させると選択したコンポーネントが画像処理装置20にインストールされている場合には、配置機構161は、ローカル側のコンポーネントが扱うデータ(コンポーネントの外部から参照できないデータ、等)をリモート側に移動し、移動が完了した時点でリモートのコンポーネントを利用するようにしてもよい。この場合、配置機構161は、移動が完了した時点でリモートのコンポーネントに接続を切り替え、ローカルのコンポーネントとデータは使用しないようにしてもよい。切り替えのタイミングとしては、例えば、シャットダウン、ブート、アイドル時などであってもよく、また、例えば、夜間の時間帯等、予め定められた時間帯に切り替えるようにしてもよい。なお、ローカルのコンポーネントとデータは削除せずに維持し、リモートのコンポーネントと接続できない場合に利用してもよい。その場合、ローカル側に保持しているデータは、予め定められたタイミングでリモート側のデータと同期しておく。   Further, the arrangement mechanism 161 may move data in accordance with a change in the arrangement of components. For example, when the component selected when operated by the cloud service providing apparatus 10 is installed in the image processing apparatus 20, the arrangement mechanism 161 displays data handled by the local component (data that cannot be referred to from outside the component, etc.). ) To the remote side, and the remote component may be used when the movement is completed. In this case, the arrangement mechanism 161 may switch the connection to the remote component when the movement is completed, and may not use the local component and data. The switching timing may be, for example, shutdown, booting, idle time, or the like, or may be switched to a predetermined time zone such as a night time zone. The local component and data may be maintained without being deleted, and may be used when the remote component cannot be connected. In this case, the data held on the local side is synchronized with the data on the remote side at a predetermined timing.

このようにして、画像処理装置20は、配置機構に登録されているコンポーネントを予め定められた条件が満たされたタイミングで検索し、利用可能なものや定義ファイルに記載されているものを自装置に配置(ダウンロード)する。   In this way, the image processing apparatus 20 searches for a component registered in the arrangement mechanism at a timing when a predetermined condition is satisfied, and finds what can be used or what is described in the definition file. Place (download).

また、配置機構161は、画像処理装置20にインストールされたコンポーネントのバージョンとクラウドサービス提供装置10にインストールされたコンポーネントのバージョンとが整合しない場合、画像処理装置20及びクラウドサービス提供装置10の少なくともいずれか一方にバージョンの不整合を是正するためのアダプタコンポーネントを配置し、アダプタコンポーネント経由で通信を行わせるようにしてもよい。   In addition, when the version of the component installed in the image processing apparatus 20 and the version of the component installed in the cloud service providing apparatus 10 do not match, the arrangement mechanism 161 has at least one of the image processing apparatus 20 and the cloud service providing apparatus 10. On the other hand, an adapter component for correcting the inconsistency of the versions may be arranged to perform communication via the adapter component.

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 image processing device 20 and the cloud service providing device 10 has been described. However, the communication system according to the present invention is limited to that shown in the above-described embodiment. Not. For example, as shown in FIG. 13, a distributed processing system in which a plurality of image processing apparatuses 20A and 20B and a cloud service providing apparatus 10A communicate via the Internet 40 may be used. Further, inter-framework communication may be applied when the firewall 50 is exceeded. For example, in intranet communication, communication is performed using a port number (other than 80) determined in advance by the component frameworks 121A, 121B, and 111A as a destination port, while “80” is set as the destination port when using the Internet. It may be used.
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 service providing apparatus 10 and the component arrangement apparatus 60 are provided as separate apparatuses has been described. However, the cloud service providing apparatus 10 and the component arrangement apparatus 60 are integrated. It may be configured. In other words, the cloud service providing apparatus 10 may have a configuration mechanism. In this case, the control unit 11 (an example of an acquisition unit, a selection unit, a transmission unit, a request data transmission unit, and an installation execution unit) of the cloud service providing apparatus 10 acquires information about the software component, and based on the acquired information, The software component corresponding to the information is selected to operate on the cloud service providing apparatus 10 or the image processing apparatus 20. When the control unit 11 selects that the component is to be operated by the image processing apparatus 20 and the component is not installed in the image processing apparatus 20, information necessary for installation is transmitted to the image processing apparatus 20. To do. Further, the control unit 11 performs image processing on data indicating that data required for installation is requested when the component is selected to operate on the own device and the component is not installed on the own device. It transmits to the apparatus 20 and receives data necessary for component installation, which is transmitted as a response, and executes the installation process.

また、画像処理装置20とコンポーネント配置装置60とが一体として構成されていてもよい。すなわち、画像処理装置20が配置機構を備える構成であってもよい。この場合、画像処理装置20の制御部21(取得手段、選択手段、送信手段、要求データ送信手段、インストール実行手段の一例)は、上述の制御部11と同様の処理を行ってコンポーネントの配置処理を行う。   Further, the image processing device 20 and the component arrangement device 60 may be configured as a single unit. That is, the image processing apparatus 20 may be configured to include an arrangement mechanism. In this case, the control unit 21 (an example of an acquisition unit, a selection unit, a transmission unit, a request data transmission unit, and an installation execution unit) of the image processing apparatus 20 performs the same processing as the above-described control unit 11 and performs component placement processing. I do.

(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 image processing apparatus 20 and the cloud service providing apparatus 10, it is dynamically determined which component the component framework 121 uses. You may change to In this case, the same component is arranged both locally and remotely, and the component framework 121 determines which component is more advantageous to use each time. This determination may be made according to, for example, the time zone, communication traffic status, processing load status of the cloud service providing apparatus 10, and the like.

また、コンポーネントフレームワーク111、121が判断を行うのに代えて、判断を行う独立したコンポーネントを設け、コンポーネントフレームワークはそのコンポーネントに判断を要求し、その応答に応じて、送信先を切り替えるようにしてもよい。この場合、コンポーネントフレームワーク111、121は、相手側のコンポーネントフレームワークとのコネクションを動的に開設しても良い。   In addition, instead of the component frameworks 111 and 121 making the determination, an independent component for making the determination is provided, and the component framework requests the component to make a determination and switches the transmission destination according to the response. May be. In this case, the component frameworks 111 and 121 may dynamically establish a connection with the counterpart component framework.

また、ローカルとリモートとのいずれを用いるかを選択する他の手法として、コンポーネントフレームワーク121が機能やサービスの利用範囲に応じて分担を変更するようにしてもよい。具体的には、例えば、コンポーネントが提供する機能やサービスが共用である場合、コンポーネントフレームワーク121がリモートのコンポーネントを利用すると選択してもよい。また、例えば、契約等により、サイト内のサーバ上/クラウド上の機能を共用することなどの設定がなされている場合に、その設定内容に従ってコンポーネントフレームワーク121が選択を行ってもよい。
また、電子文書格納機能において、電子文書を共有するか否か、共有範囲がサイト内であるか否か、サイト間で共用するか否か、といった条件に従ってコンポーネントフレームワーク121が選択を行ってもよい。
Further, as another method for selecting whether to use local or remote, the component framework 121 may change the sharing according to the usage range of the function or service. Specifically, for example, when a function or service provided by a component is shared, the component framework 121 may select to use a remote component. In addition, for example, when a setting such as sharing functions on a server in the site / cloud is made by a contract or the like, the component framework 121 may select according to the setting content.
Further, in the electronic document storage function, even if the component framework 121 makes a selection according to the conditions such as whether to share an electronic document, whether the sharing range is within a site, whether to share between sites. Good.

(6)上述の第2の実施形態では、コンポーネントフレームワーク111、121のバージョンが整合していない場合にアダプタソフトウェアを利用する構成としたが、これに限らず、バージョンが整合していない場合にリモート側のコンポーネントは使用しないように制御してもよい。また、リモート側のコンポーネントフレームワーク111のバージョンに応じて、異なるフレームワーク間通信(例えば異なるバージョンのWebSocketプロトコル)を適用してもよい。 (6) In the second embodiment described above, the adapter software is used when the versions of the component frameworks 111 and 121 are not matched. However, the present invention is not limited to this, and the versions are not matched. The remote component may be controlled not to be used. Further, different inter-framework communication (for example, different versions of the WebSocket protocol) may be applied according to the version of the component framework 111 on the remote side.

(7)通信システム1の構成は、上述した実施形態で説明した構成に限定されない。例えば、通信システム1を構成する各装置の数は、実施形態とは異なる数であってもよい。例えば、上述の実施形態では、通信システム1が1台の画像処理装置20を備える例を示したが、画像処理装置20の数は1に限らず、複数であってもよい。また、上述の実施形態では、ひとつのクラウドサービスを1台のクラウドサービス提供装置が提供したが、これに限らず、ひとつのクラウドサービスが複数のサーバ装置によって提供されてもよい。 (7) The configuration of the communication system 1 is not limited to the configuration described in the above-described embodiment. For example, the number of devices constituting the communication system 1 may be different from that in the embodiment. For example, in the above-described embodiment, an example in which the communication system 1 includes one image processing device 20 has been described. However, the number of image processing devices 20 is not limited to 1, and may be plural. In the above-described embodiment, one cloud service providing apparatus provides one cloud service. However, the present invention is not limited to this, and one cloud service may be provided by a plurality of server apparatuses.

また、図14に示すように、画像処理装置20aがローカル装置20bを介してクラウドサービス提供装置10と接続される構成であってもよい。   Further, as shown in FIG. 14, the image processing device 20a may be connected to the cloud service providing device 10 via the local device 20b.

(8)上述した実施形態で説明した画像処理装置20は、クラウドサービス提供装置10からサービスの提供を受けるクライアント装置の一例である。このクライアント装置は、例えばパーソナルコンピュータ、タブレットPC(Personal Computer)、携帯電話機等の他の装置であってもよい。 (8) The image processing device 20 described in the above-described embodiment is an example of a client device that receives a service from the cloud service providing device 10. The client device may be another device such as a personal computer, a tablet PC (Personal Computer), or a mobile phone.

(9)クラウドサービス提供装置10又は画像処理装置20において実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、このプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。 (9) The program executed in the cloud service providing apparatus 10 or the image processing apparatus 20 may be downloaded via a communication line such as the Internet. The program is provided in a state of being recorded on a computer-readable recording medium such as a magnetic recording medium (magnetic tape, magnetic disk, etc.), an optical recording medium (optical disk, etc.), a magneto-optical recording medium, or a semiconductor memory. May be.

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 SYMBOLS 1 ... Communication system, 10 ... Cloud service provision apparatus, 11, 21 ... Control part, 12, 22 ... Communication part, 13, 23 ... Memory | storage part, 14,271 ... Definition file, 15 ... Framework program, 16 ... Component program , 20 ... Image processing device, 24 ... Display unit, 25 ... Image forming unit, 26 ... Image reading unit, 27 ... Storage unit, 30 ... Network, 111, 121 ... Component framework, 112 ... Image processing unit, 122 ... Reading Control unit, 123 ... print control unit, 272 ... framework program, 273 ... component program.

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のソフトウェアフレームワークは、前記共通ソフトウェアコンポーネントを前記他のコンピュータで動作させると選択する処理
を更に実行させるための請求項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のソフトウェアフレームワークは、前記共通ソフトウェアコンポーネントを前記コンピュータで動作させると選択する処理
を更に実行させるための請求項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.
JP2013060135A 2013-03-22 2013-03-22 Program and device Pending JP2014186473A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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