JP2014178893A - Cooperation processor, program and software updating method - Google Patents
Cooperation processor, program and software updating method Download PDFInfo
- Publication number
- JP2014178893A JP2014178893A JP2013052502A JP2013052502A JP2014178893A JP 2014178893 A JP2014178893 A JP 2014178893A JP 2013052502 A JP2013052502 A JP 2013052502A JP 2013052502 A JP2013052502 A JP 2013052502A JP 2014178893 A JP2014178893 A JP 2014178893A
- Authority
- JP
- Japan
- Prior art keywords
- software
- update
- processing
- cooperation
- program
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、連携処理装置、プログラム及びソフトウェア更新方法に関する。 The present invention relates to a cooperation processing apparatus, a program, and a software update method.
従来、複数の情報処理装置へのソフトウェア更新作業を、動作確認作業を含めて自動化してシステム管理者の負荷を軽減させるソフトウェア更新プログラムがある(例えば特許文献1参照)。 2. Description of the Related Art Conventionally, there is a software update program that automates software update work for a plurality of information processing apparatuses including operation check work to reduce the load on a system administrator (see, for example, Patent Document 1).
従来のソフトウェア更新プログラムは、ソフトウェアを更新するための修正ファイルとともに該修正ファイルの適用後のソフトウェアの動作確認をおこなうテストプログラムを配布するファイル配布手順と、前記ファイル配布手順がファイルを配布した情報処理装置において前記修正ファイルの適用が完了した後に、前記テストプログラムの実行を指示するテストプログラム実行指示手順と、前記実行指示手順が実行を指示した前記テストプログラムの実行が完了した後に、該テストプログラムの実行結果を取得するテストプログラム実行結果取得手順と、前記テストプログラム実行結果取得手順が取得した前記実行結果の通知をおこなう結果通知手順と、をコンピュータに実行させていた。 A conventional software update program includes a file distribution procedure for distributing a test file for checking the operation of software after application of the correction file together with a correction file for updating the software, and information processing in which the file distribution procedure distributes the file A test program execution instruction procedure for instructing execution of the test program after application of the correction file is completed in the apparatus; and after execution of the test program instructed to execute by the execution instruction procedure is completed, The computer is caused to execute a test program execution result acquisition procedure for acquiring an execution result and a result notification procedure for notifying the execution result acquired by the test program execution result acquisition procedure.
近年、ユーザは電子データを出力するプリンタ、複合機、プロジェクタなどの様々な電子機器や、携帯電話、スマートフォン、タブレット端末などの様々な端末装置を利用するようになっている。これら電子機器や端末装置を利用する形態(システム)では、様々な電子機器や端末装置を連携させることにより利用価値の向上が期待される。 In recent years, users have come to use various electronic devices such as printers, multifunction devices, and projectors that output electronic data, and various terminal devices such as mobile phones, smartphones, and tablet terminals. In the form (system) in which these electronic devices and terminal devices are used, improvement of utility value is expected by linking various electronic devices and terminal devices.
これら電子機器や端末装置を連携させる処理は、連携処理装置に搭載されているアプリケーションによって行われる場合がある。しかしながら、連携処理装置に搭載されているアプリケーションを更新する場合は電子機器や端末装置を含む情報処理システム全体の動作を停止させなければならなかった。 The process for linking these electronic devices and terminal devices may be performed by an application installed in the cooperation processing apparatus. However, when updating an application installed in the cooperation processing device, the operation of the entire information processing system including the electronic device and the terminal device has to be stopped.
本発明の一実施形態は上記の点に鑑みなされたもので、情報処理システム全体の動作を停止させることなく動作中のソフトウェアを更新できる連携処理装置、プログラム及びソフトウェア更新方法を提供することを目的とする。 An embodiment of the present invention has been made in view of the above points, and an object thereof is to provide a cooperative processing apparatus, a program, and a software update method capable of updating operating software without stopping the operation of the entire information processing system. And
上記目的を達成するため、本願請求項1は、連携機器と接続され、前記連携機器からの処理要求を受け付けて処理を実行する連携処理装置であって、前記処理要求に対応した処理を実施するソフトウェアと、前記ソフトウェアの管理を行うソフトウェア管理手段と、前記連携機器からの処理要求を前記ソフトウェアに送信して処理を実施させる処理要求送信手段とを有し、前記ソフトウェア管理手段は、前記ソフトウェアが更新中の間、前記連携機器からの処理要求を前記処理要求送信手段に保管させ、更新前の前記ソフトウェアの動作内容を保持したデータを取得した上で、更新後の前記ソフトウェアを起動して、更新後の前記ソフトウェアに更新前の前記ソフトウェアの動作内容を復元させ、前記ソフトウェアの更新を完了させることを特徴とする。
In order to achieve the above object,
本発明の一実施形態によれば、情報処理システム全体の動作を停止させることなく動作中のソフトウェアを更新できる。 According to an embodiment of the present invention, it is possible to update the operating software without stopping the operation of the entire information processing system.
次に、本発明の実施の形態について、詳細に説明する。
[第1の実施形態]
<システム構成>
図1は本実施形態に係る情報処理システムの一例の構成図である。図1の情報処理システム1は、連携処理装置10がLAN(Local Area Network)やインターネットなどのネットワークN1に接続されている。
Next, embodiments of the present invention will be described in detail.
[First Embodiment]
<System configuration>
FIG. 1 is a configuration diagram of an example of an information processing system according to the present embodiment. In the
また、情報処理システム1は一台以上のPC11、一台以上の携帯端末12、一台以上の複合機(MFP)13、一台以上のプロジェクタ14がネットワークN1に接続されている。さらに、情報処理システム1はプログラム保存装置15がネットワークN1に接続されている。
In the
PC11、携帯端末12はユーザが操作する端末装置16の一例である。PC11はデスクトップPC、ノードPCなど、ユーザが操作できる装置であればよい。携帯端末12はスマートフォン、タブレット端末の他、携帯電話など、ユーザが携帯して操作できる装置であればよい。
The PC 11 and the
複合機13及びプロジェクタ14は電子データの入出力(印刷、撮像、投影など)を行う電子機器17の一例である。例えば電子機器17は、複合機13及びプロジェクタ14の他、プリンタ、複写機、画像表示装置など、電子データの入出力を行うことのできる装置であればよい。
The
連携処理装置10は例えば汎用OSを採用しており、ネットワークN1を介して様々な端末装置16や電子機器17を接続できる。連携処理装置10は内部にアプリケーションが搭載されている。連携処理装置10は端末装置16や電子機器17からファイル共有などを実現するSMB(Server Message Block)やHTTPリクエストなどの汎用プロトコルにより要求を受け付けることができる。連携処理装置10は受け付けた要求をアプリケーションにより処理し、ネットワークN1を介して結果を返す。
The
複合機13は画像形成装置の一例である。複合機13は内部に搭載するブラウザソフトを介して連携処理装置10にアクセスする。ブラウザソフトはHTTPリクエストなどの汎用プロトコルを用いて連携処理装置10に要求を出力する。また、複合機13はファイルシステムをサポートしている。
The
複合機13は連携処理装置10に対してSMBでアクセスすることができれば、複合機13内に保存したファイルを連携処理装置10のネットワーク共有フォルダにコピーすることで、連携処理装置10に対するワークフロー処理の要求を出すことができる。
If the
プロジェクタ14は画像投影装置の一例である。プロジェクタ14は、ネットワークN1経由で端末装置16や他の電子機器17から要求のあった画像を投影することが可能である。プロジェクタ14は連携処理装置10、端末装置16、電子機器17に保存されている画像を選択して投影することも可能である。
The
端末装置16はブラウザ機能を有する。端末装置16は連携処理装置10に対してブラウザ経由でSMBやHTTPなどの汎用プロトコルを用いて要求を出力する。また、端末装置16はファイルシステムをサポートしている。端末装置16は連携処理装置10に対してSMBでアクセスすることができれば、端末装置16内に保存したファイルを連携処理装置10のネットワーク共有フォルダにコピーすることで、連携処理装置10に対するワークフロー処理の要求を出すことができる。
The
プログラム保存装置15は連携処理装置10内のプログラムの更新情報(更新プログラム情報)と、更新プログラムとを格納している。連携処理装置10は例えば所定期間ごとにプログラム保存装置15にアクセスし、更新プログラムの存在有無を確認する。連携処理装置10は、必要に応じてプログラム保存装置15から更新プログラムをダウンロードする。
The
連携処理装置10は複合機13やプロジェクタ14で処理できないような高機能処理の実行や、ファイルサーバとしての処理の実行を行うことができる。連携処理装置10は端末装置16と電子機器17とを連携させることにより利用価値の向上を図れる。連携処理装置10は複数のコンピュータに分散して構成するようにしてもよい。
The
<ハードウェア構成>
連携処理装置10は例えば図2に示すハードウェア構成のコンピュータシステムにより実現される。なお、端末装置16も図2に示すハードウェア構成を含む構成である。図2は本実施形態に係るコンピュータシステムの一例のハードウェア構成図である。
<Hardware configuration>
The
図2のコンピュータシステム100は、入力装置101、表示装置102、外部I/F103、RAM104、ROM105、CPU106、通信I/F107及びHDD108などを備え、それぞれがバスBで相互に接続されている。入力装置101はキーボードやマウス、タッチパネルなどを含み、コンピュータシステム100に各操作信号を入力するために用いられる。
The
表示装置102はディスプレイなどを含み、コンピュータシステム100による処理結果を表示する。通信I/F107はコンピュータシステム100をネットワークN1に接続するインターフェースである。これにより、コンピュータシステム100は通信I/F107を介して、プログラム保存装置15、端末装置16、電子機器17等とデータ通信を行うことができる。
The
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、コンピュータシステム100全体を制御する基本ソフトウェアであるOS(Operating System)、及び、OS上において各種機能を提供するアプリケーションソフトウェアなどがある。また、HDD108は、格納しているプログラムやデータを、所定のファイルシステム及び/又はDB(Data Base)により管理している。
The
外部I/F103は、外部装置とのインターフェースである。外部装置には、記録媒体103aなどがある。これにより、コンピュータシステム100は外部I/F103を介して、記録媒体103aの読み取り及び/又は書き込みを行うことができる。なお、記録媒体103aにはフレキシブルディスク、CD、DVD(Digital Versatile Disk)、SDメモリカード(SD Memory card)、USBメモリ(Universal Serial Bus memory)等がある。
The external I /
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105には、コンピュータシステム100の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM104は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
The
CPU106は、ROM105やHDD108などの記憶装置からプログラムやデータをRAM104上に読み出し、処理を実行することで、コンピュータシステム100全体の制御や機能を実現する演算装置である。
The
本実施形態に係るコンピュータシステム100は、上記ハードウェア構成により、後述するような各種処理を実現できる。
The
<ソフトウェア構成>
《連携処理装置》
本実施形態に係る連携処理装置10は例えば図3に示すように構成される。図3は本実施形態に係る連携処理装置の一例の処理ブロック図である。連携処理装置10はプログラムを実行することで、共通フレームワーク20、WebAPI処理部21、WEB制御部22、認証処理部23、画像処理部24、設定情報管理部25、データ管理部26、アプリ管理部27、アップデート処理部28、メッセージ処理部29、データ保存部30、プログラム保存部31、メッセージ保存部32を実現している。
<Software configuration>
<< Cooperation processing device >>
The
共通フレームワーク20は連携処理装置10内の複数あるソフトウェアが通信するための仕組みであり、要求やデータの送受信に用いられる。WebAPI処理部21はネットワークN1に接続された端末装置16や電子機器17からWebAPIを介したアクセスを制御する。WebAPI(Application Programming Interface)は、端末装置16や電子機器17からの要求を受信するために設けられた予め定義されたインターフェースであり、例えば関数やクラス等により構成される。WebAPI処理部21は受信した要求をWEB制御部22に通知する。WEB制御部22はWebAPI処理部21から通知された要求を共通フレームワーク20で解釈できるメッセージに変換し、各種処理部へ送信する。
The
認証処理部23はユーザ情報の認証を行う。例えば認証処理部23はデータ保存部30に保存されているアカウント情報にアクセスしてユーザ情報の認証を行う。または、認証処理部23はWebAPIを介した認証サーバ(図示せず)を利用してユーザ情報の認証を行う。例えばデータ保存部30にアカウント情報が保存されている場合、認証処理部23は設定情報管理部25を介してアカウント情報にアクセスする。
The
画像処理部24はWEB制御部22からの要求により、必要な画像処理を行う。画像処理部24はOCR(Optical Character Reader)などの文字読取機能も有する。必要な画像処理が完了すると、画像処理部24は各種処理部へ画像処理の結果を通知する。画像処理部24は、また、WEB制御部22からの要求により、データを他のフォーマットへ変換する。画像処理部24は、各種アプリケーションやPDF、XPSなどのドキュメントフォーマット、JPEGやTIFF、PNGなどの画像フォーマットに対応する。
The
設定情報管理部25は、アカウント情報、システム情報、ユーザに紐付けされたユーザ設定などを、データ保存部30で管理する。データ管理部26は、ユーザが連携処理装置10内に保存したデータを、データ保存部30で管理する。全てのデータは蓄積データとしてユニークなドキュメントIDを割り振られて管理される。連携処理装置10内の蓄積データにアクセスする際はドキュメントIDを元にアクセスする。
The setting
アプリ管理部27は連携処理装置10内にあるプログラムを、プログラム保存部31で管理する。共通フレームワーク20が起動すると、アプリ管理部27はプログラム保存部31から読み出したプログラムをロードして起動させる。また、プログラムを更新するようにアップデート処理部28から要求があった場合、アプリ管理部27は更新するプログラムをアンロードする。
The
アップデート処理部28はプログラムのアップデート情報(更新プログラム)があるかを定期的にプログラム保存装置15に問い合わせる。プログラムのアップデート情報がある場合、アップデート処理部28はアップデート情報をプログラム保存装置15からダウンロードし、プログラム保存部31に格納する。なお、プログラム保存部31に格納されている状態維持用データについては後述する。
The
メッセージ処理部29は共通フレームワーク20が持つメッセージキューをメッセージ保存部32で管理する。プログラムの状態(例えば更新中)によって要求を受け付けられない場合、要求は一旦、メッセージキューに蓄積される。また、要求を受け付けられるプログラムの状態(稼働中)になると、要求はメッセージキューから順番にプログラムへ送信される。
The
<処理の詳細>
以下では、本実施形態に係る情報処理システム1の処理の詳細について説明する。
<Details of processing>
Below, the detail of the process of the
《連携処理装置の起動時の処理》
図4は連携処理装置の起動時の処理を表した一例のフローチャートである。ステップS1において、連携処理装置10はOS(システム)を起動する。ステップS2において連携処理装置10はOSから共通フレームワーク20を起動する。共通フレームワーク20はアプリ管理部27の処理を開始する。
<< Processing at startup of the collaboration processing device >>
FIG. 4 is a flowchart illustrating an example of processing when the cooperative processing apparatus is activated. In step S1, the
ステップS3において、アプリ管理部27はプログラム保存部31に格納されているプログラムを順次読み込んで起動させる。ステップS4において、起動したプログラムは初期化処理を行う。ステップS5において、連携処理装置10は起動したプログラムによるサービスの提供を開始する。サービスの提供を開始したあと、アップデート処理部28はステップS6に進み、更新プログラムの確認処理を開始する。
In step S3, the
ステップS6の更新プログラムの確認処理は、連携処理装置10内のプログラムの更新プログラムが、プログラム保存装置15にあるかを定期的に確認する処理である。連携処理装置10内のプログラムの更新プログラムがプログラム保存装置15にあれば、アップデート処理部28は更新プログラムをプログラム保存装置15からダウンロードし、更新プログラムをプログラム保存部31に格納する。そして、アップデート処理部28はプログラムを更新するようにアプリ管理部27に要求する。
The update program confirmation processing in step S6 is processing for periodically confirming whether the
したがって、図4のフローチャートの処理によれば、連携処理装置10はプログラム保存装置15に更新プログラムが保存されると、更新プログラムをダウンロードすることができる。また、連携処理装置10は更新プログラムを連携処理装置10からダウンロードしたあと、後述のようなプログラム更新時の処理を開始できる。
Therefore, according to the processing of the flowchart of FIG. 4, the
《連携処理装置の通常運用時の処理》
図5は連携処理装置の通常運用時の処理を表した一例のフローチャートである。端末装置16や電子機器17などの連携機器はステップS11において、WEBメッセージを送信して、連携処理装置10に要求を行う。ここで言う要求とは、連携処理装置10に保存されているデータの取得要求や、必要なデータ形式(フォーマット)への変換要求などであり、連携処理装置10が有する各種機能(提供する各種サービス)を使用するための要求である。連携機器と連携処理装置10とのWEBメッセージのやり取りはWebAPIを介して実施されるため、各々のハードウェアに依存しない形式で行われる。
<Processing during normal operation of the collaboration processing device>
FIG. 5 is a flowchart illustrating an example of processing during normal operation of the cooperation processing apparatus. In step S <b> 11, a cooperation device such as the
ステップS12において、連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを受信する。WebAPIによるWEBメッセージはHTTP又はHTTPSなどの汎用プロトコルにより送受信される。
In step S12, the Web
また、ステップS13において、WEB制御部22は受信したWEBメッセージを共通フレームワーク20で解釈できる形式のメッセージに変換する。共通フレームワーク20はXMLスキーマにより定義されたメッセージを送受信する。共通フレームワーク20内で動作するプログラムは全て同じフォーマットのメッセージを使用する。
In step S13, the
ステップS14において、共通フレームワーク20はメッセージを解釈し、メッセージに対応した処理を実施するプログラムにメッセージを送信する。メッセージを受信したプログラムはメッセージに対応した処理を実施する。メッセージに対応した処理としては連携処理装置10に保存されているデータの取得処理や、データ形式の変換処理、他の連携機器へのデータの送信処理など、である。
In step S14, the
ステップS15において、メッセージに対応した処理を実施したプログラムは、処理を実施した結果について、要求元の連携機器に対するメッセージを作成する。共通フレームワーク20はメッセージを解釈し、そのメッセージをWEB制御部22に送信する。WEB制御部22は受信したメッセージをWebAPIで送信できる形式のWEBメッセージに変換する。
In step S <b> 15, the program that has performed the processing corresponding to the message creates a message for the requesting linked device for the result of the processing. The
ステップS16において、連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを送信する。ステップS17において、要求元の連携機器は処理を実施した結果についてのWEBメッセージを受信する。
In step S16, the Web
したがって、図5のフローチャートの処理によれば、連携処理装置10は連携機器からWEBメッセージにて要求された処理を実施し、処理を実施した結果をWEBメッセージにて要求元の連携機器に返すことができる。
Therefore, according to the processing of the flowchart of FIG. 5, the
《連携処理装置のプログラム更新時の処理》
図5に示した連携処理装置10の通常運用時の処理は、プログラム更新時、図6に示すフローチャートのように変化する。図6は連携処理装置のプログラム更新時の処理を表した一例のフローチャートである。ここでは連携機器からのWEBメッセージを連携処理装置10が受信する前に、アップデート処理部28がプログラムを更新するようにアプリ管理部27に要求していたものとして説明を続ける。
<Processing when updating the program of the cooperation processing device>
The processing during normal operation of the
ステップS21において、連携機器はWEBメッセージを送信して、連携処理装置10に要求を行う。ステップS22において、連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを受信する。WEB制御部22はWebAPI処理部21により受信されたWEBメッセージを、共通フレームワーク20で解釈できる形式のメッセージに変換する。
In step S <b> 21, the cooperation device transmits a WEB message and makes a request to the
ステップS23は、連携処理装置10において実施される、プログラム更新時におけるメッセージのキューイング処理を示している。連携処理装置10内におけるメッセージの送信は共通フレームワーク20を介して行われる。
Step S23 shows a message queuing process at the time of program update, which is performed in the
メッセージに対応した処理を実施するプログラムが更新中であれば、メッセージ処理部29はメッセージをメッセージキューにキューイングする。更新中のプログラムには通常のメッセージが送信されず、プログラムの更新に必要なメッセージがやり取りされる。
If the program that performs the processing corresponding to the message is being updated, the
なお、メッセージに対応した処理を実施するプログラムが更新中であるかの判定は例えば図7に示すようなアプリ管理テーブルを参照して行うことができる。図7はアプリ管理テーブルの一例の構成図である。図7のアプリ管理テーブルは例えばアプリ管理部27により管理される。
Note that it is possible to determine whether a program that performs processing corresponding to a message is being updated with reference to an application management table as shown in FIG. 7, for example. FIG. 7 is a configuration diagram of an example of the application management table. The application management table in FIG. 7 is managed by the
図7のアプリ管理テーブルはアプリID、アプリ名、状態、保存先、関連アプリIDなどを項目として有する。アプリIDはプログラムを特定する情報の一例である。アプリ名はプログラムの一例としてのアプリケーションの名称である。状態はプログラムの状態を表している。プログラムの状態としては、例えば更新中、稼働中、停止中等がある。保存先はプログラムの保存先を表している。関連アプリIDは関連するアプリケーションのアプリIDを示している。メッセージ処理部29はアプリ管理テーブルの保存先を参照することにより、プログラムが更新中であるか否かを判定できる。
The application management table of FIG. 7 includes an application ID, an application name, a state, a storage destination, a related application ID, and the like as items. The application ID is an example of information that identifies a program. The application name is an application name as an example of the program. The state represents the state of the program. The program status includes, for example, updating, running, and stopping. The save destination represents the save destination of the program. The related application ID indicates the application ID of the related application. The
ステップS24において、アプリ管理部27は更新対象のプログラムに対してプログラム更新通知を送信する。プログラム更新通知を受信した更新対象のプログラムは、プログラムの更新が開始されることを把握する。更新対象のプログラムは現在処理中のデータが存在する場合は一旦処理を中断してデータ構造のシリアライズ(バイナリデータ化)を開始する。
In step S24, the
なお、シリアライズされるデータ構造は例えば図8に示すようなものである。図8はシリアライズされるデータ構造の一例の説明図である。図8に示すように、更新対象のアプリAはデータサブセット、スレッドテーブル、スレッドデータを有する。ステップS24で行うデータ構造のシリアライズは、図8に示すようなデータ構造を退避させるための準備処理である。 Note that the data structure to be serialized is, for example, as shown in FIG. FIG. 8 is an explanatory diagram of an example of a data structure to be serialized. As shown in FIG. 8, the update target application A has a data subset, a thread table, and thread data. The serialization of the data structure performed in step S24 is a preparation process for saving the data structure as shown in FIG.
ステップS25において、更新対象のプログラムはシリアライズしたデータ構造(現在の動作内容を保持したデータ)を取り出し、そのシリアライズしたデータ構造を状態維持用データとしてアプリ管理部27に送信する。アプリ管理部27は、受信した状態維持用データをプログラム保存部31に保存する。
In step S25, the update target program extracts the serialized data structure (data holding the current operation content), and transmits the serialized data structure to the
更新対象のプログラムから受信した状態維持用データを保存すると、アプリ管理部27はステップS26において更新対象のプログラムのアンロードを行う。プログラムのアンロードは共通フレームワーク20に取り込んだプログラムを一旦メモリ上から外すことを示している。外されたプログラムは再度ロードし直すまで使用できない。
When the state maintenance data received from the update target program is stored, the
更新対象のプログラムのアンロードが完了した時点で、アプリ管理部27は更新対象のプログラムの旧モジュールをリネームし、新モジュール(更新プログラム)のロードに失敗した場合などに再利用できるようにする。
When the unloading of the update target program is completed, the
ステップS27に進み、アプリ管理部27は更新対象のプログラムの旧モジュールを新モジュール(更新プログラム)と差し替え、更新プログラムを共通フレームワーク20へロードし直す。新モジュール(更新プログラム)は更新前、特別な保存場所に保存されているため、旧モジュールのリネームが完了した時点で適切な保存場所に移動される。新モジュール(更新プログラム)が共通フレームワーク20にロードされると、更新プログラムは起動され、処理が開始される。
In step S27, the
ステップS28に進み、アプリ管理部27は状態維持用データをプログラム保存部31から読み出す。アプリ管理部27は状態維持用データを更新プログラムに送信し、プログラムの更新が開始される前のデータ構造を復元させる。プログラムの更新が開始される前のデータ構造に更新プログラムが復元されたあと、メッセージ処理部29はステップS29に進む。
In
ステップS29において、メッセージ処理部29はメッセージキューにキューイングしておいたメッセージを順次、デキューする。更新対象のプログラムの更新中はメッセージ処理部29によりメッセージのキューイングが実施され、メッセージを更新対象のプログラムへ送信しないようにしている。
In step S29, the
このため、連携処理装置10ではプログラムの更新中であっても、更新対象のプログラムへのメッセージの受け付けを継続できるので、情報処理システム1全体の動作を停止させる必要がない。プログラムの更新が開始される前のデータ構造に復元されたあと、更新プログラムは以前と同様にメッセージの受信を再開できる。
For this reason, since the
ステップS30において、共通フレームワーク20はメッセージに対応した処理を実施する更新プログラムにメッセージを送信する。そして、メッセージを受信した更新プログラムはメッセージに対応した処理を実施する。
In step S30, the
ステップS31において、メッセージに対応した処理を実施した更新プログラムは処理を実施した結果について要求元の連携機器に対するメッセージを作成する。共通フレームワーク20はメッセージを解釈し、そのメッセージをWEB制御部22に送信する。WEB制御部22は受信したメッセージをWebAPIで送信できる形式のWEBメッセージに変換する。
In step S31, the update program that has performed the processing corresponding to the message creates a message for the requesting linked device regarding the result of the processing. The
連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを送信する。ステップS32において、要求元の連携機器は処理を実施した結果についてのWEBメッセージを受信する。
The Web
図6のフローチャートの処理によれば連携処理装置10は更新対象のプログラムの更新中に、更新対象のプログラムへのメッセージの受け付けを継続できる。また、連携処理装置10は更新プログラムのデータ構造を、プログラムの更新が開始される前のデータ構造に復元できる。したがって、図6のフローチャートの処理によれば、情報処理システム1全体の動作を停止させることなく稼働(動作)中のプログラムを更新できる。
According to the process of the flowchart of FIG. 6, the
《連携処理装置の通常運用時の処理のシーケンス図》
図9は連携処理装置の通常運用時の処理を表した一例のシーケンス図である。ステップS101において、連携処理装置10のアップデート処理部28は、連携処理装置10内のプログラムの更新プログラムが、プログラム保存装置15にあるかを確認する。ここでは連携処理装置10内のプログラムの一例としてのアプリAの更新プログラムが、プログラム保存装置15に無かったものとして説明を続ける。
《Sequence diagram of processing during normal operation of the collaboration processing device》
FIG. 9 is a sequence diagram illustrating an example of processing during normal operation of the cooperation processing apparatus. In step S <b> 101, the
連携機器はステップS102において、WEBメッセージを送信して、連携処理装置10に処理要求を行う。連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを受信する。また、WEB制御部22は受信したWEBメッセージを共通フレームワーク20で解釈できる形式のメッセージに変換する。WEB制御部22は共通フレームワーク20を利用し、ステップS103において、メッセージをメッセージ処理部29に送信する。
In step S <b> 102, the cooperation device transmits a WEB message and makes a processing request to the
ステップS104において、メッセージ処理部29はメッセージに対応した処理を実施するプログラム(アプリA)の状態をアプリ管理部27に要求する。アプリ管理部27は図7に示したようなアプリ管理テーブルからアプリAの状態を読み出し、メッセージ処理部29に返す。ここでは、アプリAの状態が稼働中であったものとして説明を続ける。
In step S <b> 104, the
ステップS105において、メッセージ処理部29はメッセージを、メッセージに対応した処理を実施するアプリAに送信する。ステップS106において、アプリAは受信したメッセージに対応する必要な処理を実施する。そして、アプリAはメッセージ処理部29、WEB制御部22、WebAPI処理部21などを介して、処理結果を要求元の連携機器に通知する。
In step S105, the
《連携処理装置のプログラム更新時の処理》
図5に示した連携処理装置10の通常運用時の処理は、プログラム更新時、図10及び図11に示すシーケンス図のように変化する。図10及び図11は連携処理装置のプログラム更新時の処理を表した一例のシーケンス図である。
<Processing when updating the program of the cooperation processing device>
The process during normal operation of the
ステップS201において、連携処理装置10のアップデート処理部28は、連携処理装置10内のアプリAの更新プログラムであるアプリaが、プログラム保存装置15にあるかを確認する。ここでは連携処理装置10内のアプリAの更新プログラムであるアプリaが、プログラム保存装置15にあったものとして説明を続ける。
In step S <b> 201, the
ステップS202において、アップデート処理部28はアプリaをプログラム保存装置15からダウンロードする。ステップS203において、アップデート処理部28はダウンロードしたアプリaをプログラム保存部31に保存する。そして、アップデート処理部28はステップS204において、アプリaのプログラム更新通知をアプリ管理部27に対して行う。
In step S202, the
連携機器はステップS205において、WEBメッセージを送信して、連携処理装置10に処理要求を行う。連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを受信する。また、WEB制御部22は受信したWEBメッセージを共通フレームワーク20で解釈できる形式のメッセージに変換する。WEB制御部22は共通フレームワーク20を利用し、ステップS206において、メッセージをメッセージ処理部29に送信する。
In step S205, the cooperation device transmits a WEB message and makes a processing request to the
ステップS207において、メッセージ処理部29はメッセージに対応した処理を実施するプログラム(アプリA)の状態をアプリ管理部27に要求する。アプリ管理部27は図7に示したようなアプリ管理テーブルからアプリAの状態を読み出し、メッセージ処理部29に返す。ここでは、アプリAの状態が稼働中から更新中に変更される前であったものとして説明を続ける。
In step S207, the
ステップS208において、メッセージ処理部29はメッセージを、メッセージに対応した処理を実施するアプリAに送信する。ステップS209において、アプリAは受信したメッセージに対応する必要な処理を実施する。このように、メッセージ処理部29はアプリ管理部27から後述のプログラム更新開始通知を受信する前であれば、メッセージをアプリAに送信し、アプリAに必要な処理を実施させる。
In step S208, the
ステップS210において、アプリ管理部27はアプリAの状態を稼働中から更新中に変更し、メッセージ処理部29にプログラム更新開始通知を送信する。プログラム更新開始通知を受信後、メッセージ処理部29はアプリAに送信するメッセージのキューイング処理を開始する。
In step S <b> 210, the
ステップS211において、アプリ管理部27はアプリAに対してプログラム更新通知を送信する。プログラム更新通知を受信したアプリAは、プログラムの更新が開始されることを把握する。この時点でアプリAはステップS208で受信したメッセージに対応する必要な処理を終了していなかったものとする。
In step S <b> 211, the
ステップS212において、アプリAは処理を一時停止する。アプリAはステップS213において、現在処理中のデータ(データ構造)のシリアライズを行う。ステップS214において、アプリAはシリアライズしたデータを状態維持用データとしてアプリ管理部27に送信する。アプリ管理部27は、受信した状態維持用データをプログラム保存部31に保存する。
In step S212, the application A temporarily stops processing. In step S213, the application A serializes data (data structure) currently being processed. In step S214, the application A transmits the serialized data to the
アプリAから受信した状態維持用データを保存すると、アプリ管理部27はステップS215においてアプリAのアンロードを行う。アプリAのアンロードが完了後、アプリ管理部27はステップS216において、旧モジュール(アプリA)を新モジュール(アプリa)と差し替える。
When the state maintenance data received from the application A is stored, the
ステップS217において、アプリ管理部27はアプリaを共通フレームワーク20へロードし直す。アプリaが共通フレームワーク20にロードされると、アプリ管理部27は状態維持用データをプログラム保存部31から読み出す。ステップS218においてアプリ管理部27は状態維持用データをアプリaに送信する。ステップS219においてアプリaは状態維持用データを利用し、プログラムの更新が開始される前のデータ構造を復元させる。
In step S <b> 217, the
ステップS220において、アプリaはデータ構造を復元したことをアプリ管理部27に通知する。ステップS221において、アプリ管理部27はプログラム更新完了通知をメッセージ処理部29に送信する。メッセージ処理部29はプログラム更新完了通知を受信することで、プログラムの更新が終了したことを把握する。なお、データ構造を復元したアプリaはステップS222において処理を再開する。
In step S220, the application a notifies the
プログラム更新完了通知を受信する前であるステップS223において、連携機器はWEBメッセージを送信して、連携処理装置10に処理要求を行っている。連携処理装置10のWebAPI処理部21はWebAPIによりWEBメッセージを受信する。WEB制御部22は、受信したWEBメッセージを共通フレームワーク20で解釈できる形式のメッセージに変換する。WEB制御部22は共通フレームワーク20を利用し、ステップS224において、メッセージをメッセージ処理部29に送信する。プログラム更新完了通知の受信前であるため、メッセージ処理部29は、ステップS224において受信したメッセージをキューイングする。
In step S223 before receiving the program update completion notification, the cooperation device transmits a WEB message to make a processing request to the
ステップS226において、アプリaはステップS208で受信したメッセージに対応する必要な処理を終了し、メッセージ処理部29、WEB制御部22、WebAPI処理部21などを介して、処理結果を要求元の連携機器に通知する。
In step S226, the application “a” ends the necessary processing corresponding to the message received in step S208, and the processing result is transmitted to the requesting cooperative device via the
ステップS227に進み、メッセージ処理部29はメッセージキューにキューイングしておいたメッセージを順次、デキューし、アプリaに送信する。アプリaはステップS228において、受信したメッセージに対応する必要な処理を実施する。そして、アプリaはメッセージ処理部29、WEB制御部22、WebAPI処理部21などを介して、処理結果を要求元の連携機器に通知する。
In step S227, the
本実施形態に係る情報処理システム1は連携処理装置10がプログラム保存装置15に更新プログラムがあるかを定期的に確認しているが、プログラム保存装置15から連携処理装置10に通知することも可能である。本実施形態に係る情報処理システム1の構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
The
<まとめ>
連携処理装置10は様々な端末装置16や電子機器17等の連携機器を連携させることにより利用価値の向上が期待される一方、連携機器の数の増加により、システム全体としての保守性・信頼性・可用性に与える影響が大きくなっている。また、連携処理装置10に搭載されるソフトウェアは技術力の向上や顧客要求の高まりにより、機能追加や修正のためのプログラム更新のサイクルが短くなっている。従来はソフトウェアを更新するために情報処理システム1全体の動作を停止させる必要があり、ユーザにとって利便性がよくなかった。
<Summary>
The
本実施形態の情報処理システム1はソフトウェアを更新するために情報処理システム1全体の動作を停止させる必要がない。したがって、本実施形態の情報処理システム1はプログラム更新の短いサイクルに対応したとしても、ユーザにとっての利便性を欠くこともない。
The
本実施形態に係る情報処理システム1は更新中のソフトウェアへのメッセージの受け付けを継続できる。また、本実施形態に係る情報処理システム1は更新したソフトウェアのデータ構造を更新が開始される前のデータ構造に復元できる。したがって、本実施形態に係る情報処理システム1によれば情報処理システム1全体の動作を停止させることなく稼働中のソフトウェアを更新できる。
The
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載したソフトウェア管理手段はアプリ管理部27に相当する。また、処理要求送信手段はメッセージ処理部29に相当する。更新前のソフトウェアの動作内容を保持したデータは状態維持用データに相当する。ソフトウェア保存装置はプログラム保存装置15に相当する。更新処理手段はアップデート処理部28に相当する。
The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims. The software management means described in the claims corresponds to the
1 情報処理システム
10 連携処理装置
11 PC
12 携帯端末
13 複合機(Multi Function Peripheral:MFP)
14 プロジェクタ
15 プログラム保存装置
20 共通フレームワーク
21 WebAPI処理部
22 WEB制御部
23 認証処理部
24 画像処理部
25 設定情報管理部
26 データ管理部
27 アプリ管理部
28 アップデート処理部
29 メッセージ処理部
30 データ保存部
31 プログラム保存部
32 メッセージ保存部
100 コンピュータシステム
101 入力装置
102 表示装置
103 外部I/F
103a 記録媒体
104 RAM
105 ROM
106 CPU
107 通信I/F
108 HDD
B バス
N1 ネットワーク
DESCRIPTION OF
12
DESCRIPTION OF
103a Recording medium 104 RAM
105 ROM
106 CPU
107 Communication I / F
108 HDD
B bus N1 network
Claims (7)
前記処理要求に対応した処理を実施するソフトウェアと、
前記ソフトウェアの管理を行うソフトウェア管理手段と、
前記連携機器からの処理要求を前記ソフトウェアに送信して処理を実施させる処理要求送信手段と
を有し、
前記ソフトウェア管理手段は、前記ソフトウェアが更新中の間、前記連携機器からの処理要求を前記処理要求送信手段に保管させ、更新前の前記ソフトウェアの動作内容を保持したデータを取得した上で、更新後の前記ソフトウェアを起動して、更新後の前記ソフトウェアに更新前の前記ソフトウェアの動作内容を復元させ、前記ソフトウェアの更新を完了させること
を特徴とする連携処理装置。 A cooperation processing apparatus that is connected to a cooperation device, receives a processing request from the cooperation device, and executes a process.
Software for performing processing corresponding to the processing request;
Software management means for managing the software;
Processing request transmission means for transmitting a processing request from the cooperation device to the software and performing processing;
The software management means, while the software is being updated, causes the processing request from the cooperation device to be stored in the processing request transmission means, obtains data holding the operation content of the software before the update, A cooperative processing apparatus, wherein the software is activated, causes the updated software to restore the operation content of the software before the update, and completes the update of the software.
を特徴とする請求項1記載の連携処理装置。 The processing request transmission means is configured to transmit processing requests from the cooperation device stored during the software update to the software sequentially after the software update is completed. The cooperation processing apparatus according to claim 1.
を特徴とする請求項1又は2記載の連携処理装置。 When the software before update receives an update notification from the software management unit, the software temporarily stops processing, generates data holding the operation content of the software before update, and transmits the data to the software management unit The cooperation processing apparatus according to claim 1 or 2.
を特徴とする請求項3記載の連携処理装置。 4. The cooperation according to claim 3, wherein the updated software receives data holding the operation content of the software before the update from the software management unit, and restores the operation content of the software before the update. Processing equipment.
を特徴とする請求項1乃至4何れか一項記載の連携処理装置。 The update processing means for acquiring the updated software from a software storage device and requesting the software management means to update the software before the update from the software before the update. The cooperation processing apparatus as described in any one of thru | or 4.
前記処理要求に対応した処理を実施するソフトウェア、
前記ソフトウェアの管理を行うソフトウェア管理手段、
前記連携機器からの処理要求を前記ソフトウェアに送信して処理を実施させる処理要求送信手段
として機能させ、
前記ソフトウェア管理手段は、前記ソフトウェアが更新中の間、前記連携機器からの処理要求を前記処理要求送信手段に保管させ、更新前の前記ソフトウェアの動作内容を保持したデータを取得した上で、更新後の前記ソフトウェアを起動して、更新後の前記ソフトウェアに更新前の前記ソフトウェアの動作内容を復元させ、前記ソフトウェアの更新を完了させること
を特徴とするプログラム。 A cooperation processing apparatus that is connected to a cooperation device and receives a processing request from the cooperation device and executes a process.
Software for performing processing corresponding to the processing request;
Software management means for managing the software;
Function as processing request transmission means for transmitting a processing request from the cooperation device to the software and performing processing;
The software management means, while the software is being updated, causes the processing request from the cooperation device to be stored in the processing request transmission means, obtains data holding the operation content of the software before the update, A program that activates the software, causes the updated software to restore the operation content of the software before the update, and completes the update of the software.
前記連携処理装置は、
前記処理要求に対応した処理を実施するソフトウェアと、
前記ソフトウェアの管理を行うソフトウェア管理手段と、
前記連携機器からの処理要求を前記ソフトウェアに送信して処理を実施させる処理要求送信手段と
を有し、
前記ソフトウェア管理手段が、前記ソフトウェアが更新中の間、前記連携機器からの処理要求を前記処理要求送信手段に保管させるステップと、
更新前の前記ソフトウェアの動作内容を保持したデータを取得した上で、更新後の前記ソフトウェアを起動するステップと、
更新後の前記ソフトウェアに更新前の前記ソフトウェアの動作内容を復元させ、前記ソフトウェアの更新を完了させるステップと
を有することを特徴とするソフトウェア更新方法。 A software update method in a cooperation processing apparatus that is connected to a cooperation device and receives a processing request from the cooperation device and executes a process,
The cooperation processing device
Software for performing processing corresponding to the processing request;
Software management means for managing the software;
Processing request transmission means for transmitting a processing request from the cooperation device to the software and performing processing;
The software management means storing the processing request from the cooperation device in the processing request transmission means while the software is being updated;
After obtaining data holding the operation content of the software before update, starting the software after update;
And a step of restoring the operation content of the software before the update to the software after the update and completing the update of the software.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013052502A JP2014178893A (en) | 2013-03-14 | 2013-03-14 | Cooperation processor, program and software updating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013052502A JP2014178893A (en) | 2013-03-14 | 2013-03-14 | Cooperation processor, program and software updating method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014178893A true JP2014178893A (en) | 2014-09-25 |
Family
ID=51698769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013052502A Pending JP2014178893A (en) | 2013-03-14 | 2013-03-14 | Cooperation processor, program and software updating method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014178893A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017076952A (en) * | 2015-10-14 | 2017-04-20 | 株式会社リコー | Apparatus management device, apparatus management system, apparatus management method, and program |
JP2018129006A (en) * | 2017-02-10 | 2018-08-16 | 日本電信電話株式会社 | Communication device, component switching method, and computer program |
JP2018523871A (en) * | 2015-08-03 | 2018-08-23 | アリババ グループ ホウルディング リミテッド | Method and apparatus for facilitating a software update process over a network |
JP2020013441A (en) * | 2018-07-20 | 2020-01-23 | Necプラットフォームズ株式会社 | Communication control device, communication control system, communication system, communication control method, and control program |
JP2021121056A (en) * | 2020-01-30 | 2021-08-19 | ソフトバンク株式会社 | Terminal device, update method, and program |
-
2013
- 2013-03-14 JP JP2013052502A patent/JP2014178893A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018523871A (en) * | 2015-08-03 | 2018-08-23 | アリババ グループ ホウルディング リミテッド | Method and apparatus for facilitating a software update process over a network |
JP2017076952A (en) * | 2015-10-14 | 2017-04-20 | 株式会社リコー | Apparatus management device, apparatus management system, apparatus management method, and program |
JP2018129006A (en) * | 2017-02-10 | 2018-08-16 | 日本電信電話株式会社 | Communication device, component switching method, and computer program |
JP2020013441A (en) * | 2018-07-20 | 2020-01-23 | Necプラットフォームズ株式会社 | Communication control device, communication control system, communication system, communication control method, and control program |
JP2021121056A (en) * | 2020-01-30 | 2021-08-19 | ソフトバンク株式会社 | Terminal device, update method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430135B2 (en) | Relay apparatus, information processing apparatus, information processing system, and recording medium storing information processing | |
JP6364738B2 (en) | Information processing system, information processing apparatus, program, and process execution method | |
US8760692B2 (en) | System, apparatus, method, and computer program for information processing resource adjustment | |
US10114940B2 (en) | Information processing system, information processing apparatus, and information processing method | |
US20100225966A1 (en) | System and method for printing using a document conversion server | |
JP6488673B2 (en) | Information processing apparatus, program, information management method, information processing system | |
JP6064592B2 (en) | Printing system, printing method, image forming apparatus, and control device | |
JP2014178893A (en) | Cooperation processor, program and software updating method | |
JP6848340B2 (en) | Information processing system, update method, information processing device and program | |
JP2013225285A (en) | Information processing device, information processing method, and program | |
JP2015084209A (en) | Information processing system, program, authentication method, and portable terminal | |
US9141321B1 (en) | Configurable printer server device | |
JP6801265B2 (en) | Service provision system, information processing device, program, information processing system and cooperative processing method | |
JP2007323653A (en) | Data delivery system, data delivery method and data delivery program | |
US9323907B2 (en) | Distribution apparatus, device, control method for distribution apparatus, and storage medium | |
US20170078509A1 (en) | Information processing system and information processing method | |
US10291743B2 (en) | Configuring service endpoints in native client applications | |
JP2015153117A (en) | document generation system | |
JP2014220768A (en) | Service providing system and service providing method | |
EP2302512A1 (en) | Integration and management apparatus, integration and management system and computer readable information recording medium | |
JP6999534B2 (en) | Information processing equipment, programs and information management methods | |
JP6089825B2 (en) | Information processing system and data input method | |
JP2018041432A (en) | Information processing system, information processing device and program | |
JP6337532B2 (en) | Information processing system and information processing method | |
JP6863128B2 (en) | Information processing equipment, information processing systems and programs |