JP2013143049A - 開発支援装置、動作確認方法、及び開発支援プログラム - Google Patents
開発支援装置、動作確認方法、及び開発支援プログラム Download PDFInfo
- Publication number
- JP2013143049A JP2013143049A JP2012003461A JP2012003461A JP2013143049A JP 2013143049 A JP2013143049 A JP 2013143049A JP 2012003461 A JP2012003461 A JP 2012003461A JP 2012003461 A JP2012003461 A JP 2012003461A JP 2013143049 A JP2013143049 A JP 2013143049A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- command
- function
- communication
- data
- 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
- Debugging And Monitoring (AREA)
Abstract
【課題】複数の機器を1台のコンピュータ上でエミュレートして機器連携ソフトウェアの動作確認を行った場合、従来に比べてメモリ消費量を削減させる。
【解決手段】命令変換部103は、実行部102が機器連携ソフトウェアを実行することで、機器の機能を呼び出す命令が実行された場合、描画部100に対して予め付与された識別情報を送信先のポート番号とする第1通信命令に当該命令を変換する。命令変換部122は、通信部121により受信された第1通信命令に送信先の機器のIPアドレスが含まれている場合、当該IPワークアドレスに対応する識別IDを特定し、当該識別IDを送信先のポート番号とする第2通信命令に第1通信命令を変換する。機能実行部123は、命令変換部122から第2通信命令を受け取ると、第2通信命令を通信部121に渡し、第2通信命令を送信先の描画部100に送信させる。
【選択図】図1
【解決手段】命令変換部103は、実行部102が機器連携ソフトウェアを実行することで、機器の機能を呼び出す命令が実行された場合、描画部100に対して予め付与された識別情報を送信先のポート番号とする第1通信命令に当該命令を変換する。命令変換部122は、通信部121により受信された第1通信命令に送信先の機器のIPアドレスが含まれている場合、当該IPワークアドレスに対応する識別IDを特定し、当該識別IDを送信先のポート番号とする第2通信命令に第1通信命令を変換する。機能実行部123は、命令変換部122から第2通信命令を受け取ると、第2通信命令を通信部121に渡し、第2通信命令を送信先の描画部100に送信させる。
【選択図】図1
Description
本発明は、機器連携ソフトウェアの開発を支援する技術に関するものである。
近年、ネットワークを介して接続されたデジタル家電製品(以下、機器と記述する。)同士を連携させて所定の連携サービスをユーザに提供する機器が登場している。連携サービスとしては、例えば、複数のスマートフォンを用いてユーザ間で画像を共有したり、ユーザ間で文書を共同編集したりするものがある。
このような連携サービスを実現するためのソフトウェアを、以降、機器連携ソフトウェアと呼称する。機器連携ソフトウェアの開発に際しては、複数の実機を用意できないことがあるため、実機を模擬する複数のエミュレータをコンピュータ上で起動させて機器連携ソフトウェアの動作を確認することが行われている。
本願発明に関連する従来技術として、例えば特許文献1が知られている。特許文献1には、統合管理プリンタと複数の被管理プリンタとがネットワークを介して接続されたシステムで用いられるソフトウェアを評価するソフトウェア評価システムであって、複数の被管理プリンタを1台のコンピュータで模擬するものが開示されている。
図14は、特許文献1に示される従来技術のブロック図である。図14に示すソフトウェア評価システムは、統合管理プリンタ200と、イーサネット(登録商標)等の通信路を介して接続されたコンピュータ210とを備えている。コンピュータ210は、被管理プリンタを模擬した複数の仮想被管理プリンタ211と、各仮想被管理プリンタ211に対応する機器情報受信部212とを備えている。
そして、このソフトウェア評価システムでは、機器情報受信部212に対応する仮想被管理プリンタ211の仮想IPアドレスをバインドさせた状態で、統合管理プリンタ200からの配信を待機させる。これにより、仮想被管理プリンタ211は統合管理プリンタ200からの配信を受け付けることが可能となり、実際の統合管理プリンタ200と被管理プリンタとによって行われるデータの送受が再現されている。
しかしながら、特許文献1では、統合管理プリンタ200と仮想被管理プリンタ211とでのみデータの送受が行われており、仮想被管理プリンタ211間におけるデータの送受は再現されていない。そのため、特許文献1では、クライアントサーバモデルのシミュレートが行われているに過ぎない。
また、被管理プリンタの個数に応じて仮想被管理プリンタ211及び機器情報受信部212を設ける必要があり、被管理プリンタの個数を増大させてしまうと、コンピュータ210のメモリ消費量が膨大になるという問題がある。機器のエミュレータは一般的に消費メモリ量やCPU使用率が大きいため、特許文献1の構成では高性能なコンピュータ210が必要になる。
本発明の目的は、複数の機器を1台のコンピュータ上でエミュレートして機器連携ソフトウェアの動作確認を行った場合、従来に比べてメモリ消費量を削減させることができる開発支援装置等を提供することである。
(1)本発明による開発支援装置は、複数の機器を連携させて所定の連携サービスを実現する機器連携ソフトウェアの動作確認を行う開発支援装置であって、各機器に対応して設けられ、各機器による前記機器連携ソフトウェアのGUIの描画をシミュレートする描画部と、前記機器連携ソフトウェアにしたがって各機器が実行する機能をシミュレートする全描画部共通の機能部とを備え、前記描画部は、前記機器連携ソフトウェアのGUIを表示装置に表示させる表示制御部と、前記機器連携ソフトウェアを解釈して実行する実行部と、前記実行部により機器の機能を呼び出す命令が実行された場合、前記描画部に対して予め付与された識別情報を送信先のポート番号とする第1通信命令に当該命令を変換する描画部側命令変換部と、前記描画部側命令変換部により変換された第1通信命令を前記機能部に送信する描画部側通信部とを備え、前記機能部は、前記描画部側通信部から送信された第1通信命令を受信する機能部側通信部と、各機器の識別情報と各機器のネットワークアドレスとを対応付けて管理するデータ管理部と、前記機能部側通信部により受信された第1通信命令に送信先の機器のネットワークアドレスが含まれている場合、前記データ管理部を参照して当該ネットワークアドレスに対応する識別情報を特定し、当該識別情報を送信先のポート番号とする第2通信命令に前記第1通信命令を変換する機能部側命令変換部と、前記機能部側命令変換部により変換された第2通信命令を前記機能部側通信部に送信させる機能実行部とを備える。
この構成によれば、複数の描画部と全描画部共通の1つの機能部とを備えている。そして、機器の機能を呼び出す命令が実行された場合、この命令は、実行元の識別情報を送信先のポート番号とする第1通信命令に変換され、機能部に送信される。機能部は第1通信命令を受信すると、第1通信命令に送信先の機器のネットワークアドレスが含まれていれば、この第1通信命令を、当該ネットワークアドレスに対応する識別情報を送信先のポート番号とする第2通信命令に変換する。そして、第2通信命令は、送信先の機器に対応する描画部に送信される。これにより、複数の描画部は、機能部を介してデータを送受することができ、複数の描画部と1つの機能部とによって複数の機器を1台のコンピュータ上でエミュレートすることができる。
従来の技術では、エミュレートする機器の個数分のエミュレータを起動させることで、ソフトウェアの動作確認が行われていた。このエミュレータは、本構成の描画部及び機能部の機能を併せ持つ。そのため、従来の技術では、エミュレートする機器の個数をn個とすると、n個のエミュレータを起動させなければならず、メモリ消費量が増大するという問題があった。
そこで、本構成では、描画部のみをn個起動させ、機能部は全描画部で共用させた。そのため、従来の技術に比べて、機能部の個数をn−1個分減らすことができ、メモリ消費量を大幅に削減することができる。
(2)ユーザからの操作指令に基づいて前記描画部を生成すると共に、ユーザからの操作指令に基づいて前記描画部を削除する機器管理部を更に備え、前記データ管理部は、各機器のデータを保存するための機器固有データ領域を備え、前記機器管理部により描画部が生成された場合、当該描画部のためのデータ領域を前記機器固有データ領域に確保し、前記機器管理部により描画部が削除された場合、当該描画部のためのデータ領域を前記機器固有データ領域から解放することが好ましい。
この構成によれば、ユーザは機器管理部に対して描画部を生成するための操作指令を入力すると、描画部のためのデータ領域が機器固有データ領域に確保される。そのため、ユーザは動作対象となる機器連携ソフトウェアが連携する機器の個数に応じて自由に描画部を生成することができ、機器連携ソフトウェアの動作確認を容易に実施することができる。
また、ユーザは連携する機器の個数を変化させて機器連携ソフトウェアの動作確認を行うこともある。この場合、ユーザは生成した描画部を削除することで、エミュレートする機器の個数を調整することができ、手軽に機器連携ソフトウェアの動作確認を行うことができる。更に、ユーザが描画部を削除するとその描画部のためのデータ領域が解放されるため、メモリリソースを節約することができる。
(3)前記機能部側命令変換部は、前記機能部側通信部により受信された第1通信命令が機器のデータを読み出す命令である場合、前記機能実行部に前記機器に対応する描画部のデータ領域からデータを読み出すように指示し、前記機能実行部は、前記機能部側命令変換部からの指示にしたがって、前記データ領域からデータを読み出し、読み出したデータを前記機器に対応する描画部に送信するように前記機能部側通信部に指示することが好ましい。
この構成によれば、描画部により機器のデータを読み出す命令が実行されると、当該命令が第1通信命令に変換されて描画部から機能部に送信される。そして、機能部は、当該命令を実行した描画部のデータ領域からデータを読み出し、当該描画部に返す。そのため、開発支援装置において機器が自身のデータを読み出す処理を実現することができる。
(4)前記機能部側命令変換部は、前記機能部側通信部により受信された第1通信命令が機器にデータを保存する命令である場合、前記機能実行部に前記機器に対応する描画部のデータ領域にデータを保存するように指示し、前記機能実行部は、前記機能部側命令変換部からの指示にしたがって、前記データ領域にデータを保存することが好ましい。
この構成によれば、描画部により機器にデータを保存する命令が実行されると、当該命令が第1通信命令に変換されて描画部から機能部に送信される。そして、機能部は、当該命令を実行した描画部のデータ領域に保存対象のデータを保存する。そのため、開発支援装置において機器がデータを保存する処理を実現することができる。
(5)前記機能部側命令変換部は、前記機能部側通信部により受信された第1通信命令が第1機器のデータを第2機器にコピーする命令である場合、前記機能実行部にコピーを指示し、前記機能実行部は、前記第1機器に対応する描画部のデータ領域からコピー対象のデータを読み出し、読み出したコピー対象のデータを前記第2機器に対応する描画部のデータ領域に書き込むように、前記データ管理部に指示することが好ましい。
この構成によれば、描画部により第1機器のデータを第2機器にコピーする命令が実行されると、当該命令が第1通信命令に変換されて描画部から機能部に送信される。そして、機能部は、第1機器に対応する描画部のデータ領域に保存されたデータを第2機器に対応する描画部のデータ領域にコピーする。そのため、開発支援装置において機器間でデータをコピーする処理を実現することができる。
(6)前記機器管理部は、前記描画部を生成する際にユーザから前記描画部の識別情報、ネットワークアドレス、及び前記機器のディスプレイサイズを含む起動オプションを指定する操作指令を受け付けて前記描画部を生成するものであり、生成した描画部を起動する際にユーザからの操作指令に基づいて前記起動オプションを変更することが好ましい。
この構成によれば、ユーザは描画部を起動させる際にディスプレイサイズを含む起動オプションを変更することができるため、ユーザは、ディスプレイサイズを変更させながら機器連携ソフトウェアの動作確認を行うことができ、GUIを表示するうえで適切なディスプレイサイズを容易に確認することができる。
(7)前記描画部は、ネイティブコードで記述されていることが好ましい。
この構成によれば、描画部は、開発支援装置が実装されるコンピュータの例えばOSが直接デコードすることができるネイティブコードにより記述されているため、描画部によるメモリリソースの消費量を低下させ、かつ、描画部によるGUIの描画処理の高速化を図ることができる。
本発明によれば、複数の描画部と1つの機能部とによって複数の機器を1台のコンピュータ上でエミュレートすることができるため、描画部及び機能部を1つのエミュレータとし、このエミュレータを複数起動させることで複数の機器をエミュレートしていた従来の構成に比べメモリリソースの消費量を抑制することができる。
以下、図面を参照しつつ本発明の実施の形態について説明する。図9は、本発明の実施の形態による開発支援装置99のハードウェア構成を示すブロック図である。開発支援装置99は、例えばコンピュータにより構成され、入力装置1、ROM(リードオンリメモリ)2、CPU(中央演算処理装置)3、RAM(ランダムアクセスメモリ)4、外部記憶装置5、表示装置6、記録媒体駆動装置7、及び通信装置8を備える。各ブロックは内部のバスに接続され、このバスを介して種々のデータ等が入出され、CPU3の制御の下、種々の処理が実行される。
入力装置1は、キーボード、マウス等から構成され、ユーザが種々のデータを入力するために使用される。ROM2には、BIOS(Basic Input/Output System)等のシステムプログラムが記憶される。外部記憶装置5は、ハードディスクドライブ等から構成され、所定のOS(Operating System)及び開発支援プログラム等が記憶される。CPU3は、外部記憶装置5からOS及び開発支援プログラム等を読み出し、各ブロックの動作を制御する。RAM4は、CPU3の作業領域等として用いられる。
表示装置6は、例えば液晶ディスプレイや有機ELディスプレイにより構成され、CPU3の制御の下に種々の画像を表示する。記録媒体駆動装置7は、CD−ROMドライブ、フレキシブルディスクドライブ等から構成される。
なお、開発支援プログラムは、CD−ROM等のコンピュータ読み取り可能な記録媒体9に格納されてユーザに提供される。ユーザはこの記録媒体9を記録媒体駆動装置7に読み込ませることで、開発支援プログラムをコンピュータにインストールする。また、開発支援プログラムをインターネット上のサーバに格納し、このサーバからダウンロードすることで、開発支援プログラムをコンピュータにインストールしてもよい。
通信装置8は、例えば、開発支援装置99をインターネットに接続するための通信装置により構成され、CPU3の制御の下、インターネットを介して他の機器との間でデータを送受する。
図1は、本発明の実施の形態における開発支援装置99の機能ブロック図である。開発支援装置99は、描画部100、機器管理部110、及び機能部120を備えている。描画部100は、各機器に対応して複数設けられ、各機器による前記機器連携ソフトウェアのGUIの描画をシミュレートする。
描画部100は、例えば、HTML5で記述されたプログラムが実行可能なウェブブラウザにより構成され、エミュレートする機器の数に応じて1又は複数生成される。図1の例では2つの描画部100が生成されているため2つの描画部100_1、100_2が示されている。ここで、描画部100は、ネイティブコードで記述されているため、機能部120と比較してメモリ消費量が少なく、かつ、高速である。ネイティブコードとは、例えば開発支援装置99を構成するコンピュータのOSが直接実行することができるコードである。そのため、描画部100を仮想マシン上で動作する中間言語で記述した場合に比べてパラメータをネイティブコードのパラメータに変換するといった手間が省かれ、処理の高速化を図ることができる。
具体的には、描画部100は、動作対象となる機器連携ソフトウェアを解釈及び実行することで、機器連携ソフトウェアのGUIを表示装置6に表示する。また、描画部100は、入力装置1を操作することでユーザにより入力された操作指令を受け付ける。ここで、描画部100はウェブブラウザにより構成されているため、動作対象となる機器連携ソフトウェアは例えばウェブブラウザ上で実行することができるプログラミング言語により記述されている。本実施の形態では、機器連携ソフトウェアは、例えば、HTML5により記述され、内部処理を担当する箇所は、例えばJavaScript(登録商標)により記述されている。
図2は、描画部100が表示装置6に表示する表示画面300の一例を示した画面図である。図2の例では、3つの機器がエミュレートされているため、表示画面300には3つの機器に対応する3つのGUI表示ウインドウ301〜303が表示されている。GUI表示ウインドウ301〜303には、それぞれ、対応する描画部100がシミュレートする機器連携ソフトウェアのGUIが表示される。ユーザはGUIに含まれるボタン等をクリックすることで描画部100に操作指令を入力することができる。また、GUI表示ウインドウ301〜303は仮想ネットワークを示す線で結線され、機器同士が接続されていることが明示されている。
なお、機器連携ソフトウェアの一例としては、例えば、1画面で表示される地図画面を拡大させて、複数の地図画面に分割し、分割した地図画面を複数の機器で分担して表示させるものが挙げられる。この場合、例えば、ある機器において地図画面がスライドされると、それに連動して他の機器でも地図画面をスライドさせる処理が機器連携ソフトウェアによって実行される。
図1に戻り、描画部100は、表示制御部101、実行部102、命令変換部103(描画部側命令変換部の一例)、及び通信部104(描画部側通信部の一例)を備えている。
表示制御部101は、機器連携ソフトウェアのGUIに関するコードを解釈し、機器連携ソフトウェアのGUIを表示装置6に表示させる描画処理を行う。また、表示制御部101は、マウス等によるユーザからの操作指令を受け付ける。ここで、表示制御部101は、ユーザからの操作指令を受け付ける等して、内部処理を実行する必要が発生すると処理を実行部102に委ねる。
実行部102は、機器連携ソフトウェアの内部処理の箇所を解釈して実行し、内部処理が終了すると処理結果を表示制御部101に返す。また、実行部102は、対応する描画部100に対して個別に付与された識別情報(以下、識別IDと記述する。)を保持する。
以下の説明では、描画部100_1には識別IDとして1000が付与され、描画部100_2には識別IDとして2000が付与されているものとする。また、描画部100_1がエミュレートする機器には192.168.0.2のネットワークアドレス(以下、IPアドレスと記述する。)が予め付与され、描画部100_2がエミュレートする機器には、192.168.0.3のIPアドレスが予め付与されているものとする。
命令変換部103は、実行部102により機器の機能を呼び出す命令が実行された場合、描画部100に対して予め付与された識別IDを送信先のポート番号とする第1通信命令に当該命令を変換する。図5(A)は、命令変換部103によって行われる命令の変換を説明するための図である。図5(A)においては、描画部100_1の命令変換部103が命令を変換する場合を例に挙げて説明する。
図5(A)の例では、getAddressという命令が実行されている。getAddressは、描画部100_1がエミュレートする機器のIPアドレスを取得するための命令である。
getAddressには、描画部100_1の識別IDである1000を送信先のポート番号とするhttp://localhost:1000/?command=getAddressというHTTP(Hyper Text Transfer Protocol)の第1通信命令に変換されている。先頭に“http”と記述され、第1通信命令がHTTPの通信プロトコルの命令であることが示されている。“localhost”は、ホスト名を表している。本実施の形態では、開発支援装置99がホストとなる。“1000”はポート番号を示している。“/”はホストにおけるリソースのパスを示す。この例では、リソースはホストのルートディレクトリに存在している。“?”は区切り文字を示す。“command=getAddress”は、第1通信命令の実態を示す。
なお、第1通信命令としてHTTPを用いる場合を例示したが、本発明はこれに限定されず、他の通信プロトコル(例えば、WebSocket)を用いてもよい。WebSocketを用いた場合、描画部100と機能部120とは双方向で通信することができるという利点や、通信されるデータのヘッダが非常に少なくオーバーヘッドが少なくなる利点がある。
本実施の形態では、各描画部100がウェブクライアントとなり、機能部120がウェブサーバとなり、ある描画部100が機能部120を介して別の描画部100に命令を送信することで、機器同士の通信をシミュレートしている。ウェブサーバは、ポート番号によりウェブクライアントを識別することができる。そこで、本実施の形態では、機能部120に各描画部100の識別IDを管理させ、この識別IDをポート番号とする第1通信命令を各描画部100から機能部120に送信させている。これにより、機能部120は第1通信命令の送信元の描画部100を区別することができ、機器に応じた機能を実行することができる。
従来の技術では、エミュレートする機器の個数分のエミュレータを起動させることで、ソフトウェアの動作確認が行われていた。このエミュレータは、本実施の形態の描画部100及び機能部120の機能を併せ持つ。そのため、従来の技術では、エミュレートする機器の個数をn個とすると、n個のエミュレータを起動させなければならず、メモリ消費量が増大するという問題があった。
そこで、本実施の形態では、描画部100のみをn個起動させ、機能部120は全描画部100で共用させた。そのため、従来の技術に比べて、機能部120の個数をn−1個分減らすことができ、メモリ消費量を大幅に削減することができる。
通信部104(描画部側通信部の一例)は、命令変換部103により変換された第1通信命令を機能部120に送信する。ここで、通信部104は、自己が属する描画部100に付与された識別IDがバインドされたソケットを生成し、生成したソケットを通信部121で生成された対応するソケットと接続して、描画部100と機能部120とのコネクションを確立する。具体的には、通信部104は、描画部100が起動した際、起動した描画部100が機能部120から第2通信命令を受信するためのコネクションを確立する。また、通信部104は、描画部100が機能部120に第1通信命令を送信する際、描画部100と機能部120とのコネクションを確立する。なお、描画部100が機能部120にデータ送信するためのコネクションは、第1通信命令としてHTTPが採用された場合、第1通信命令の送信後、機能部120から応答を受信することで消滅される。なお、この応答には、データが含まれる場合とデータが含まれない場合とが存在する。第1通信命令が文字列を送信するような命令である場合、応答にデータは含まれないが、第1通信命令がデータを読み出すような命令である場合、応答に読み出し対象となるデータが含まれる。
機器管理部110は、ユーザからの操作指令に基づいて、描画部100を生成(追加)すると共に、ユーザからの操作指令に基づいて、生成した描画部100を起動させる。また、機器管理部110は、ユーザからの操作指令に基づいて、描画部100の状態を変更する。ここで、描画部100の状態としては、起動中及び停止中が存在する。具体的には、機器管理部110は、表示装置6に機器の一覧画面を表示するGUIを表示し、このGUIを介してユーザからの操作指令を受け付けることで、描画部100の生成、削除及び状態の変更を行う。
図3(A)、(B)は、機器管理部110が表示装置6に表示するGUI401、402の一例を示した図である。GUI401には、一覧表示欄4011、状態変更ボタン4012、機器追加ボタン4013、及び削除ボタン4014が含まれている。
一覧表示欄4011は、機器管理部110が生成した描画部100に対応するエミュレート対象の機器が一覧表示されている。具体的には、一覧表示欄4011には、機器名、IPアドレス、識別ID、及び起動状態のフィールドを持ち、1行に1つの機器が割り当てられた表である。機器名は、機器に付与された名称である。IPアドレスは機器に付与されたIPアドレスである。識別IDは各機器に対して一意に付与され、各機器を識別するためのデータである。起動状態は、各機器の状態、すなわち、各描画部100の状態を示す。
例えば、機器1は対応する描画部100の状態が起動中であるため、起動状態のフィールドには起動中と表示されている。一方、機器4は対応する描画部100の状態が停止中であるため、起動状態のフィールドには停止中と表示されている。
また、機器1〜4には、識別IDとしてそれぞれ1000、2000、3000、4000と異なるデータが割り当てられ、識別IDによって機器1〜4を識別できることが分かる。
状態変更ボタン4012は、一覧表示欄4011の各行に対応して1つ設けられている。ユーザは、例えば、“停止”と表示された1行目の状態変更ボタン4012をクリックすると、機器1に対応する描画部100の状態が停止中となる。そして、1行目の状態変更ボタン4012の表示が“停止”から“起動”に切り替わると共に、機器1の起動状態のフィールドに“停止中”と表示される。
また、ユーザは、例えば、“起動”と表示された4行目の状態変更ボタン4012をクリックすると機器4に対応する描画部100の状態が起動中となる。そして、4行目の状態変更ボタン4012の表示が“起動”から“停止”に切り替わり、機器4の起動状態のフィールドに“起動中”と表示される。
機器追加ボタン4013は、新たに機器を追加する際に用いられる。ユーザが機器追加ボタン4013をクリックすると、機器管理部110は、図3(B)に示すGUI402を表示装置6に表示する。このGUI402は、新たに機器を登録するためのGUIである。
GUI402には、機器名入力欄4021、IPアドレス入力欄4022、ディスプレイサイズ入力欄4023、及び追加ボタン4024が含まれている。機器名入力欄4021は、ユーザが機器名を入力するために用いられる。例えば、ユーザはキーボードを用いて機器名入力欄4021に好みの文字列を入力して、機器名を決定することができる。なお、デフォルトでは、例えば、“機器”の文字列の後に機器の生成順序を示す数値が付加された文字列が機器名として自動的に付与される。
IPアドレス入力欄4022は、ユーザが機器のIPアドレスを入力するために用いられる。例えば、ユーザはキーボードを用いてIPアドレス入力欄4022にエミュレートする機器のIPアドレスを入力し、機器のIPアドレスを決定することができる。
ディスプレイサイズ入力欄4023は、ユーザが機器の表示装置の画面サイズを入力するために用いられる。具体的には、ディスプレイサイズ入力欄4023は、幅と高さとをそれぞれ入力するための入力欄が含まれる。このように、ユーザは幅と高さとを任意に入力することができるため、ユーザは、GUIの表示に適したディスプレイサイズをよりきめ細かく調節することができる。ここで、幅及び高さのサイズの単位としては例えばピクセルを採用することができる。
機器名入力欄4021〜ディスプレイサイズ入力欄4023への入力が終了し、ユーザにより追加ボタン4024がクリックされると、機器管理部110は当該機器に対して識別IDを付与し、付与した識別IDとユーザにより入力された機器名、IPアドレス、及びディスプレイサイズとを含む機器固有情報が設定されたインスタンスを生成し、描画部100を生成する。
また、機器管理部110は、生成済みの描画部100を起動する際、ディスプレイサイズを変更するためのユーザからの操作指令を受け付け、受け付けた操作指令にしたがってディスプレイサイズを変更する。これにより、ディスプレイサイズを変更させながら機器連携ソフトウェアの動作確認を行うことができ、適切なGUIのディスプレイサイズをユーザは容易に確認することができる。
なお、機器管理部110は、生成済みの描画部100を起動する際、ディスプレイサイズのみならず、GUI402に示す他の項目を変更するためのユーザからの操作指令を受け付け、受け付けた操作指令にしたがって該当する項目の内容を変更してもよい。これにより、ユーザは生成済みの描画部100に対する設定内容の変更を容易に行うことができる。
なお、ディスプレイサイズは起動オプションの一例であり、本実施の形態では、起動オプションとして、例えば、機器連携ソフトウェアの格納場所を示すURIを含めてもよい。これにより、ユーザは生成済みの描画部100に実行させる機器連携ソフトウェアを容易に変更することができる。
図3(A)において、削除ボタン4014は、ユーザが機器を削除するために用いられる。ユーザは、例えば、一覧表示欄4011において削除した機器が表示された行に図略のカーソルを位置決めして当該機器を選択し、削除ボタン4014をクリックすると、選択した機器を削除することができる。
また、機器管理部110は、機器固有情報が記載された機器プロファイル501を生成し、データ管理部124に渡す。なお、機器プロファイル501は、例えばXML(eXtensible Markup Language)等により記述される。
図4(A)は、機器プロファイル501の記載内容の一例を示した図である。機器プロファイル501において、<name>のタグには、機器名が記述されている。<id>のタグには機器に付与された識別IDが記述されている。<address>のタグには機器に付与されたIPアドレスが記述されている。なお、機器プロファイル501には、図4(A)に示した情報以外の機器固有情報(例えばディスプレイサイズ)を記述してもよい。
図1に戻り、機能部120は、機器連携ソフトウェアにしたがって各機器が実行する機能をシミュレートするものであり、通信部121(機能部側通信部の一例)、命令変換部122(機能部側命令変換部の一例)、機能実行部123、及びデータ管理部124を備えている。ここで、機器の機能とは、例えば他の機器と通信する機能、データを保存する機能、及びデータを読み出す機能等が該当する。
通信部121は、通信部104から送信される第1通信命令を受信し、受信した第1命令を命令変換部122に渡す。また、通信部121は、識別IDがポート番号としてバインドされたソケットを生成し、生成したソケットを通信部104により生成されたソケットと接続することで、描画部100と機能部120とを接続させる。ここで、通信部121は、描画部100毎に識別IDがポート番号としてバインドされたソケットを生成する。
命令変換部122は、通信部121により受信された第1通信命令に送信先の機器のIPアドレスが含まれている場合、機器プロファイル記憶部126に記憶された機器プロファイル501を参照し、当該IPアドレスに対応する識別IDを特定し、当該識別IDを送信先のポート番号とする第2通信命令に第1通信命令を変換する。そして、命令変換部122は、変換した第2通信命令を機能実行部123に渡す。これにより、描画部100同士が機能部120を介して通信することができる。
図5(B)は、命令変換部103、122の処理の説明図である。図5(B)では、文字列“hello”をIPアドレスが192.168.0.3の他の機器に送信する命令であるsend(192.168.0.3,“hello”)が例示されている。ここで、sendの送信元の機器の識別IDは1000であり、送信先の機器の識別IDは2000とする。
まず、命令変換部103は、送信元の機器の識別ID=1000を送信先のポート番号とする第1通信命令にsendを変換する(S501)。これにより、sendは、“http://localhost:1000/?command=send&param0=192.168.0.3&param1=hello”というhttpの命令に変換される。
この命令において、“1000”とあり、sendが送信元の機器の識別IDを送信先のポート番号とする命令に変換されていることが分かる。また、“command=send”とあり、この命令にsendが組み込まれていることが分かる。また、“param0=192.168.0.3”、“param1=hello”とあり、送信先の機器のIPアドレスと送信する文字列とがこの命令に組み込まれていることが分かる。
次に、命令変換部122は、第1通信命令内に送信先のIPアドレス(192.168.0.3)が記述されているため、第1通信命令には、他の機器のIPアドレスが記述されていると判定する。そして、命令変換部122は、このIPアドレスに対応する識別ID(=2000)を機器プロファイル501から特定し、特定した識別ID=2000を送信先のポート番号とする第2通信命令に第1通信命令に変換する(S502)。これにより、“http://localhost:1000/?command=send&param0=192.168.0.3&param1=hello”は、“http://localhost:2000/?command=send&param1=hello”に変換される。
第2通信命令において、第1通信命令のparam0=192.168.0.3が送信先の機器の識別IDである2000に変換され、この2000を送信先のポート番号とするhttpの命令に変換されていることが分かる。
図1に戻り、機能実行部123は、命令変換部122から第2通信命令を受け取ると、第2通信命令を通信部121に渡し、第2通信命令を送信先の描画部100に送信させる。
ここで、描画部100はウェブクライアントにより構成されておりウェブサーバの機能を持たないため、第2通信命令を直接受信することができない。そこで、機能実行部123は、第2通信命令を例えば、JSON(JavaScript(登録商標) Object Notation)形式の文字列に変換し、変換した文字列をCometを用いて通信部121を介して該当する描画部100に送信する。具体的には、描画部100は、機能部120と接続する際、第2通信命令を受信するためのコネクションを確立して機能部120からの応答を待っている。そして、機能部120は、このコネクションを介してJSON形式の文字列に変換された第2通信命令を例えばCometを用いて該当する描画部100に送信する。Cometを用いた場合、ウェブサーバである機能部120は、ウェブクライアントである描画部100からの要請なしに、データを送信することができる。
図13は、機能実行部123が第2通信命令を変換する処理の説明図である。図13に示すように、第2通信命令は、“from”、“api”、及び“param1”の要素からなる文字列に変換されている。“from”の要素には、送信元の描画部100_1のIPアドレスが記述されている。“api”の要素には送信対象となる命令である“send”が記述されている。“param1”の要素には、送信対象となる文字列である“hello”が記述されている。なお、図13において、“//”の記号はコメントを表している。
そして、機能実行部123は、文字列に変換した第2通信命令を送信先のポート番号である2000を指定して通信部121に渡し、通信部121はポート番号が2000のソケットを介して文字列に変換された第2通信命令を描画部100_2に送信する。
データ管理部124は、機器管理部110により描画部100が生成された場合、当該描画部100のためのデータ領域を機器固有データ記憶部125が記憶する機器固有データ領域502に確保する。具体的には、データ管理部124は、描画部100を生成した際に機器管理部110から渡された機器プロファイル501を機器プロファイル記憶部126に保存する。そして、データ管理部124は、機器管理部110により生成された描画部100のためのデータ領域を機器固有データ領域502に確保する。
また、データ管理部124は、機能実行部123の要求にしたがって、データをある描画部100のデータ領域に保存させたり、ある描画部100のデータ領域にデータを読み出したり、ある描画部100のデータ領域からデータを削除したり、ある描画部100のデータ領域のデータを別の描画部100のデータ領域にコピーしたりする。
また、データ管理部124は、機器管理部110によりある描画部100が削除されると、その描画部100のデータ領域を機器固有データ領域502から解放する。また、データ管理部124は、機能実行部123の要求にしたがって、機器プロファイル501に記載された情報を機能実行部123に渡す。
図4(B)は、機器固有データ記憶部125が記憶する機器固有データ領域502のデータ構造の一例を示した図である。図4(B)に示すように機器固有データ領域502は、各描画部100に付与された識別IDに対応付けられたディレクトリを備えている。図4(B)の例では、機器固有データ領域502は、“data_1000”、“data_2000”、“data_3000”の3つのディレクトリを備え、識別ID=1000、2000、3000の3つの描画部100のデータ領域を備えていることが分かる。そして、各ディレクトリの配下には、対応する描画部100のデータが保存される。
(フローチャート)
以下、本実施形態における開発支援装置99が行う処理について説明する。図6は、本発明の実施の形態による開発支援装置99が描画部100を生成する際の処理を示したフローチャートである。
以下、本実施形態における開発支援装置99が行う処理について説明する。図6は、本発明の実施の形態による開発支援装置99が描画部100を生成する際の処理を示したフローチャートである。
まず、機器管理部110は、描画部100を生成するためのユーザからの操作指令及び動作対象となる機器連携ソフトウェアのURIを指定するための操作指令を受け付ける(S1001)。この場合、ユーザは、図3(B)に示すGUI402において機器名、及びIPアドレスと、必要に応じてディスプレイサイズを入力し、追加ボタン4024をクリックすることで、操作指令を入力する。なお、ユーザがディスプレイサイズを入力しなかった場合、機器管理部110は、ディスプレイサイズとしてデフォルトのディスプレイサイズを設定すればよい。また、機器連携ソフトウェアのURIは、例えば、GUI402にURI入力欄(図略)を設け、この入力欄に入力させればよい。
次に、機器管理部110は、生成対象となる描画部100に識別IDを付与し、識別ID、機器名、IPアドレス、及びディスプレイサイズが記述された機器プロファイル501を生成する(S1002)。
次に、機器管理部110は、生成した機器プロファイル501に記述された内容にしたがって描画部100を生成する(S1003)。具体的には、機器管理部110は、生成した機器プロファイル501に記述された機器名、ディスプレイサイズ、IPアドレス、及び識別IDと、ユーザにより入力された機器連携ソフトウェアのURIとを起動パラメータとし、起動パラメータによって定義されたインスタンスを生成することで描画部100を生成する。
動作対象となる機器連携ソフトウェアの格納場所は特に限定されず、開発支援装置99内(例えばデータ管理部124)であってもよいし、開発支援装置99外であってもよい。開発支援装置99外の格納場所としては、開発支援装置99とインターネットやLANを介して接続され、機器連携ソフトウェアを配信するためのサーバが挙げられる。
次に、機器管理部110は、生成した機器プロファイル501をデータ管理部124に渡し、データ管理部124は渡された機器プロファイル501を機器プロファイル記憶部126に保存する(S1004)。
次に、S1003で生成された描画部100の実行部102は、機能部120との接続指示を実行する(S1005)。次に、命令変換部103は、接続命令を実行した描画部100と機能部120とを接続させる(S1006)。
この場合、命令変換部103は、実行部102により実行された接続指示を通信部104に渡し、接続指示を機能部120に送信する。すると、通信部104及び通信部121は、接続指示を出した描画部100の識別IDをポート番号とするソケットを生成し、生成したソケット同士を接続させ、描画部100と機能部120とのコネクションを確立させる。このコネクションは描画部100が機能部120から送信される第2通信命令を受信するためのコネクションとなる。また、通信部121は描画部100が起動されたことを機能実行部123に通知する。このように、第2通信命令を受信するためのコネクションを予め確立しておくことで、機能部120は、ある描画部100が別の描画部100にデータを送信するための第1通信命令を受信した場合、受信した第1通信命令に対応する第2通信命令を速やかに別の描画部100に送信することができる。
次に、機能実行部123は、データ管理部124にS1003で生成された描画部100のデータ領域を確保するようにデータ管理部124に指示する(S1007)。これにより、データ管理部124は、S1003で生成された描画部100の識別IDをキーとするデータ領域を機器固有データ領域502に確保する。
次に、機能実行部123は、描画部100が追加されたことを、生成済みの他の描画部100に通知する(S1008)。この場合、機能実行部123は、S1003で生成された描画部100の機器名を他の描画部100に通知すればよい。なお、他の描画部100が存在しない場合、つまり、S1003で生成された描画部100が1つ目の描画部100である場合、S1008の処理は省略される。
次に、描画部100は、S1001で入力されたURIから機器連携ソフトウェアを読み出して機器連携ソフトウェアの実行を開始する(S1009)。なお、本実施の形態では、描画部100は生成時においてデフォルトの起動状態が起動中とされている。したがって、このフローチャートでは、描画部100は生成されると速やかに起動を開始し、機器連携ソフトウェアの実行を開始する。
なお、生成済みの描画部100において起動状態が停止中から起動中に切り替えられた場合、描画部100は、起動通知を機能部120に送信する。そして、機能部120の機能実行部123は、起動通知を送信した描画部100の状態が起動中になったことを、状態が起動中の他の描画部100に通知するようにしてもよい。これにより、起動中の描画部100は新たに起動中の描画部100が追加された場合、そのことを認識することができる。
図7は、本発明の実施の形態による開発支援装置99が行う機器間の通信処理を示すフローチャートである。
このフローチャートの前提条件として、描画部100_1と描画部100_2とが起動中であるとする。また、描画部100_1のIPアドレスは192.168.0.2、識別ID(ポート番号)は1000とする。また、描画部100_2のIPアドレスは192.168.0.3、識別ID(ポート番号)は2000とする。
まず、描画部100_1の実行部102は、描画部100_2を送信先とする命令“send(“192.168.0.3”,“hello”)“を実行する(S2001)。
次に、命令変換部103は、当該命令を“http://localhost:1000/?command=send&param0=192.168.0.3&param1=hello”に変換し(S2002)、第1通信命令を生成し、通信部104に渡す。次に、通信部104は、命令変換部103から渡された第1通信命令を機能部120に送信する(S2003)。この場合、通信部104は、第1通信命令を機能部120に送信するためのコネクションを確立して、第1通信命令を機能部120に送信する。
次に、命令変換部122は、通信部121により受信された第1通信命令に送信先のIPアドレス(=192.168.0.3)が含まれているため、当該IPアドレスに対応する識別ID(=2000)を送信先のポート番号とする第2通信命令に第1通信命令を変換する(S2003)。ここで、命令変換部122は、データ管理部124にIPアドレス(=192.168.0.3)を持つ機器の識別IDを問い合わせる。すると、データ管理部124は、機器プロファイル記憶部126を参照してIPアドレス(=192.168.0.3)に対応する識別ID(=2000)を返す。これにより、命令変換部122は、第1通信命令を“http://localhost:2000/?command=send&param1=hello”に変換する。
次に、機能実行部123は、命令変換部122から第2通信命令を受け取り、受け取った第2通信命令を通信部121に送信させる(S2004)。この場合、機能実行部123は、第2通信命令を例えばJSONの文字列に変換し、変換した第2通信命令を送信先の描画部100のポート番号を指定して通信部121に渡す。そして、通信部121は、指定されたポート番号がバインドされたソケットを介して文字列に変換された第2通信命令を送信先の描画部100に送信する。この場合、第2通信命令は送信先のポート番号が2000であるため、描画部100_2に送信される。
次に、描画部100_2は、送信された第2通信命令を受信する(S2005)。具体的には、描画部100_2の通信部104が第2通信命令を受信し、命令変換部103が第2通信命令をデコードする。そして、描画部100_2の命令変換部103は、第2通信命令に“command=send”及び“param1=hello”が含まれているため、他の描画部100から“hello”の文字列が送信されたと認識する。
なお、図7では文字列を送信する例を示したが、例えば、描画部100_2は何らかの処理を実行する命令を受信した場合はその命令にしたがって処理を実行し、処理結果をGUIに反映させればよい。
図8は、本発明の実施の形態による開発支援装置99が描画部100を停止する場合の処理を示すフローチャートである。まず、機器管理部110は、機器の動作を停止するためのユーザからの操作指令を受け付ける(S3001)。この場合、ユーザは、図3(A)に示す一覧表示欄4011において状態が起動中である機器のうち、停止させる機器の行に表示された状態変更ボタン4012をクリックすることで、操作指令を入力する。ここでは、描画部100_1に対応する機器の停止指示がユーザにより入力されたとする。
次に、機器管理部110は、描画部100_1に停止を指示する(S3002)。すると、描画部100_1の実行部102は、機器連携ソフトウェアに記述された機器を停止する際の処理にしたがって、機器を停止する処理を実行する。
次に、描画部100_1は、機能部120に停止を通知し、機能部120は、起動中の他の描画部100に対して(ここでは、描画部100_2に対して)の描画部100_1の停止を通知する(S3003)。この場合、機能部120の機能実行部123は、描画部100_1の機器名を含む停止通知を通信部121を介して描画部100_2に送信し、描画部100_2の通信部104にその停止通知を受信させることで、描画部100_1の停止を描画部100_2に通知すればよい。次に、機能部120は、描画部100_1との接続を切断する(S3004)。この場合、描画部100_1の通信部104及び通信部121はソケットの接続を切断することで、機能部120と描画部100_1との接続を切断すればよい。
なお、描画部100の停止でなく、描画部100の削除が指示された場合、データ管理部124は、削除対象の描画部100のデータ領域を機器固有データ領域502から解放すると共に、削除対象の描画部100の機器プロファイル501を削除すればよい。
次に、本発明の実施の形態による開発支援装置99のユースケースについて説明する。上記説明では、ユースケースとして、機器同士が通信する場合を例に挙げて説明したが、本実施の形態では、開発支援装置99は下記のユースケースを実行することもできる。
図10は、機器が自身のデータを読み出すユースケースC1を実行する際の開発支援装置99の処理の説明図である。なお、図10において、ユースケースC1に関連しないブロックは省いている。また、命令の実行元は描画部100_1とし、描画部100_1の識別IDは1000とする。図10では、データを読み出す命令としてgetListを採用した場合を例示しているが、読み出す命令としてはこの命令に限定されず、他の命令を採用してもよい。
まず、実行部102は、getList(“/mnt/sdcard”)を実行している。getListの括弧内にはデータの読み出し先のパスが記述されている。この例では、“/mnt/sdcard”のパスが記述されている。
次に、命令変換部103は、getListを描画部100の識別IDを送信先のポート番号とする第1通信命令に変換する。
次に、通信部104は、この第1通信命令を機能部120に送信する。このとき、通信部104は、描画部100_1と機能部120とのコネクションを確立して、第1通信命令を送信し、機能部120からの応答を待つ状態となる。
通信部121は、この第1通信命令を受信し、命令変換部122に渡す。命令変換部122は、通信部121から渡された第1通信命令をデコードし、描画部100_1のデータ領域(=data_1000/)の“/mnt/sdcard”のディレクトリからデータを読み出すように機能実行部123に指示する。
次に、機能実行部123は、命令変換部122の指示にしたがって、機器固有データ領域502にアクセスし、data_1000/mnt/sdcardのディレクトリに格納されたデータを読み出す。そして、機能実行部123は、読み出したデータを第1通信命令に対する応答に含ませて通信部121に渡し、通信部121は、機能実行部123から渡された応答を描画部100_1に送信する。
描画部100_1は、機能部120から応答を受信すると、確立したコネクションを消滅させる。以上によりデータの読み出しがシミュレートされる。なお、この態様は一例であり、機能実行部123は、描画部100_1が機能部120からのデータを受信するために確立したコネクションを利用して読み出し対象となるデータを描画部100_1に送信してもよい。
図10の例ではデータを読み出すユースケースを示したが、IPアドレスを取得してもよいし、データを削除してもよい。データを削除する場合、描画部100により削除するデータのファイル名及び格納場所を示すパスが指定された削除命令が実行される。この削除命令は第1通信命令に変換され機能部120に送信される。そして、機能部120はこの第1通信命令にしたがって、削除対象となるデータを描画部100のデータ領域から削除すればよい。
また、描画部100によりIPアドレスを取得する命令が実行された場合、機能部120は、描画部100の機器プロファイル501からIPアドレスを読み出し、命令を実行した描画部100にIPアドレスを送信すればよい。
図11は、機器1が機器2にデータをコピーするユースケースC2を開発支援装置99が実行する際の処理の説明図である。この説明において、描画部100_1は機器1に対応し、描画部100_2は機器2に対応しているものとする。また、機器1のIPアドレスは“192.168.0.2”とし、機器2のIPアドレスは“192.168.0.3”とする。また、図11において、データ領域D1は、描画部100_1のデータ領域であり、データ領域D2は描画部100_2のデータ領域であるとする。
まず、実行部102は、copy(“XXX.jpg”,“192.168.0.3”)を実行する。ここで、“XXX.JPG”はコピー対象となるデータのファイル名を示す。“192.168.0.3”はコピー先の機器のIPアドレスを示す。
次に、命令変換部103は、copyを描画部100_1の識別ID(=1000)を送信先のポート番号とする第1通信命令に変換する。
次に、通信部104は、この第1通信命令を機能部120に送信する。通信部121は、この第1通信命令を受信し、命令変換部122に渡す。
命令変換部122は、この第1通信命令をデコードし、描画部100_1のXXX.jpgを描画部100_2のデータ領域にコピーするように機能実行部123に指示する。機能実行部123は、命令変換部122の指示にしたがって、機器固有データ領域502のデータ領域D1のファイル名が“XXX.jpg”のデータをデータ領域D2にコピーするようにデータ管理部124に指示する。すると、データ管理部124は、データ領域D1からXXX.jpgのデータを読み出して、データ領域D2に書き込む。
データ管理部124は、コピーが終了するとコピー終了通知を機能実行部123に通知し、機能実行部123は、コピー終了通知を描画部100_2に通知するためのhttpの通信命令を生成し、通信部121に渡す。そして、通信部121は、機能実行部123から渡された通信命令を描画部100_2に送信する。以上により、機器同士でのデータのコピーがシミュレートされる。
図12は、機器がデータを保存するするユースケースC3の処理を開発支援装置99が実行する際の処理の説明図である。図12の例では、描画部100_1がデータを保存する場合を例に挙げて説明する。まず、実行部102は保存対象となるデータの格納場所やファイル名を指定した保存命令を実行する。保存場所の指定の方法としては、例えばURIを採用すればよい。また、保存場所は、本開発支援装置99内に設けてもよいし、外部のサーバに設けてもよい。命令変換部103は、描画部100_1の識別ID(=1000)を送信先のポート番号とする第1通信命令に実行された保存命令を変換する。次に、通信部104は、命令変換部103により変換され第1通信命令を機能部120に送信する。通信部121は第1通信命令を受信して命令変換部122に渡す。命令変換部122は、第1通信命令をデコードし、保存対象のデータを描画部100_1のデータ領域に保存するように機能実行部123に指示する。機能実行部123は、命令変換部122の指示にしたがって、保存対象のデータを保存場所から読み出して描画部100_1のデータ領域に保存するようにデータ管理部124に指示する。そして、データ管理部124は、保存対象のデータを保存場所にアクセスして保存場所から読み出して描画部100_1のデータ領域に保存する。
以上、説明したように本実施の形態による開発支援装置99によれば、機器のエミュレータを描画部100と機能部120とに分離し、機能部120が複数の描画部100からの命令に応答することで各機器がエミュレートされている。そのため、描画部100のみを追加するだけで機器を追加することができ、従来技術に比べメモリ消費量を抑制することができる。
本発明の開発支援装置は、複数の描画部と単一の端末機能部とを1台のコンピュータ上で動作させて複数の機器をエミュレートするため、機器連携ソフトウェアを動作させて開発を進める機器連携ソフトウェアの開発環境に適用するうえで有用である。
99 開発支援装置
100 描画部
101 表示制御部
102 実行部
103 命令変換部
104 通信部
110 機器管理部
120 機能部
121 通信部
122 命令変換部
123 機能実行部
124 データ管理部
125 機器固有データ記憶部
126 機器プロファイル機器プロファイル記憶部
100 描画部
101 表示制御部
102 実行部
103 命令変換部
104 通信部
110 機器管理部
120 機能部
121 通信部
122 命令変換部
123 機能実行部
124 データ管理部
125 機器固有データ記憶部
126 機器プロファイル機器プロファイル記憶部
Claims (9)
- 複数の機器を連携させて所定の連携サービスを実現する機器連携ソフトウェアの動作確認を行う開発支援装置であって、
各機器に対応して設けられ、各機器による前記機器連携ソフトウェアのGUIの描画をシミュレートする描画部と、前記機器連携ソフトウェアにしたがって各機器が実行する機能をシミュレートする全描画部共通の機能部とを備え、
前記描画部は、
前記機器連携ソフトウェアのGUIを表示装置に表示させる表示制御部と、
前記機器連携ソフトウェアを解釈して実行する実行部と、
前記実行部により機器の機能を呼び出す命令が実行された場合、前記描画部に対して予め付与された識別情報を送信先のポート番号とする第1通信命令に当該命令を変換する描画部側命令変換部と、
前記描画部側命令変換部により変換された第1通信命令を前記機能部に送信する描画部側通信部とを備え、
前記機能部は、
前記描画部側通信部から送信された第1通信命令を受信する機能部側通信部と、
各機器の識別情報と各機器のネットワークアドレスとを対応付けて管理するデータ管理部と、
前記機能部側通信部により受信された第1通信命令に送信先の機器のネットワークアドレスが含まれている場合、前記データ管理部を参照して当該ネットワークアドレスに対応する識別情報を特定し、当該識別情報を送信先のポート番号とする第2通信命令に前記第1通信命令を変換する機能部側命令変換部と、
前記機能部側命令変換部により変換された第2通信命令を前記機能部側通信部に送信させる機能実行部とを備える開発支援装置。 - ユーザからの操作指令に基づいて前記描画部を生成すると共に、ユーザからの操作指令に基づいて前記描画部を削除する機器管理部を更に備え、
前記データ管理部は、各機器のデータを保存するための機器固有データ領域を備え、前記機器管理部により描画部が生成された場合、当該描画部のためのデータ領域を前記機器固有データ領域に確保し、前記機器管理部により描画部が削除された場合、当該描画部のためのデータ領域を前記機器固有データ領域から解放する請求項1記載の開発支援装置。 - 前記機能部側命令変換部は、前記機能部側通信部により受信された第1通信命令が機器のデータを読み出す命令である場合、前記機能実行部に前記機器に対応する描画部のデータ領域からデータを読み出すように指示し、
前記機能実行部は、前記機能部側命令変換部からの指示にしたがって、前記データ領域からデータを読み出し、読み出したデータを前記機器に対応する描画部に送信するように前記機能部側通信部に指示する請求項2記載の開発支援装置。 - 前記機能部側命令変換部は、前記機能部側通信部により受信された第1通信命令が機器にデータを保存する命令である場合、前記機能実行部に前記機器に対応する描画部のデータ領域にデータを保存するように指示し、
前記機能実行部は、前記機能部側命令変換部からの指示にしたがって、前記データ領域にデータを保存する請求項2又は3記載の開発支援装置。 - 前記機能部側命令変換部は、前記機能部側通信部により受信された第1通信命令が第1機器のデータを第2機器にコピーする命令である場合、前記機能実行部にコピーを指示し、
前記機能実行部は、前記第1機器に対応する描画部のデータ領域からコピー対象のデータを読み出し、読み出したコピー対象のデータを前記第2機器に対応する描画部のデータ領域に書き込む請求項2〜4のいずれかに記載の開発支援装置。 - 前記機器管理部は、前記描画部を生成する際にユーザから前記描画部の識別情報、ネットワークアドレス、及び前記機器のディスプレイサイズを含む起動オプションを指定する操作指令を受け付けて前記描画部を生成するものであり、生成した描画部を起動する際にユーザからの操作指令に基づいて前記起動オプションを変更する請求項2〜5のいずれかに記載の開発支援装置。
- 前記描画部は、ネイティブコードで記述されている請求項1〜6のいずれかに記載の開発支援装置。
- 複数の機器を連携させて所定の連携サービスを実現する機器連携ソフトウェアの動作確認を開発支援装置が行う動作確認方法であって、
前記開発支援装置は、各機器に対応して設けられ、各機器による前記機器連携ソフトウェアのGUIの描画をシミュレートする描画部と、前記機器連携ソフトウェアにしたがって各機器が実行する機能をシミュレートする全描画部共通の機能部とを備え、
前記機器連携ソフトウェアのGUIを前記描画部が表示装置に表示させる表示制御ステップと、
前記機器連携ソフトウェアを前記描画部が解釈して実行する実行ステップと、
前記実行ステップにより機器の機能を呼び出す命令が実行された場合、前記描画部が、自己に対して予め付与された識別情報を送信先のポート番号とする第1通信命令に当該命令を変換する描画部側命令変換ステップと、
前記描画部側命令変換ステップにより変換された第1通信命令を前記描画部が前記機能部に送信する描画部側送信ステップと、
前記描画部側送信ステップにより送信された第1通信命令を前記機能部が受信する機能部側受信ステップと、
前記機能部側受信ステップにより受信された第1通信命令に送信先の機器のネットワークアドレスが含まれている場合、前記機能部が、各機器の識別情報と各機器のネットワークアドレスとを対応付けて管理するデータ管理部を参照して当該ネットワークアドレスに対応する識別情報を特定し、当該識別情報を送信先のポート番号とする第2通信命令に前記第1通信命令を変換する機能部側命令変換ステップと、
前記機能部側命令変換ステップにより変換された第2通信命令を機能部側通信部に送信させる機能実行ステップとを備える動作確認方法。 - 複数の機器を連携させて所定の連携サービスを実現する機器連携ソフトウェアの動作確認を行う開発支援装置としてコンピュータを機能させる開発支援プログラムであって、
各機器に対応して設けられ、各機器による前記機器連携ソフトウェアのGUIの描画をシミュレートする描画部と、前記機器連携ソフトウェアにしたがって各機器が実行する機能をシミュレートする全描画部共通の機能部としてコンピュータを機能させ、
前記描画部は、
前記機器連携ソフトウェアのGUIを表示装置に表示させる表示制御部と、
前記機器連携ソフトウェアを解釈して実行する実行部と、
前記実行部により機器の機能を呼び出す命令が実行された場合、前記描画部に対して予め付与された識別情報を送信先のポート番号とする第1通信命令に当該命令を変換する描画部側命令変換部と、
前記描画部側命令変換部により変換された第1通信命令を前記機能部に送信する描画部側通信部とを備え、
前記機能部は、
前記描画部側通信部から送信された第1通信命令を受信する機能部側通信部と、
各機器の識別情報と各機器のネットワークアドレスとを対応付けて管理するデータ管理部と、
前記機能部側通信部により受信された第1通信命令に送信先の機器のネットワークアドレスが含まれている場合、前記データ管理部を参照して当該ネットワークアドレスに対応する識別情報を特定し、当該識別情報を送信先のポート番号とする第2通信命令に前記第1通信命令を変換する機能部側命令変換部と、
前記機能部側命令変換部により変換された第2通信命令を前記機能部側通信部に送信させる機能実行部とを備える開発支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012003461A JP2013143049A (ja) | 2012-01-11 | 2012-01-11 | 開発支援装置、動作確認方法、及び開発支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012003461A JP2013143049A (ja) | 2012-01-11 | 2012-01-11 | 開発支援装置、動作確認方法、及び開発支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013143049A true JP2013143049A (ja) | 2013-07-22 |
Family
ID=49039574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012003461A Pending JP2013143049A (ja) | 2012-01-11 | 2012-01-11 | 開発支援装置、動作確認方法、及び開発支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013143049A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019191992A (ja) * | 2018-04-26 | 2019-10-31 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置、画像形成システム、および情報処理方法 |
-
2012
- 2012-01-11 JP JP2012003461A patent/JP2013143049A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019191992A (ja) * | 2018-04-26 | 2019-10-31 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置、画像形成システム、および情報処理方法 |
JP7124421B2 (ja) | 2018-04-26 | 2022-08-24 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置、画像形成システム、および情報処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI521357B (zh) | 經由網頁瀏覽器輸入內容至應用程式 | |
JP6064381B2 (ja) | 情報共有システム | |
JP2015149568A (ja) | 画像形成装置、その制御方法およびプログラム | |
JPWO2008084665A1 (ja) | 業務処理のためのデータ入力を支援するための方法およびプログラム | |
JP2008282297A (ja) | クライアント・サーバシステム、ウェブosのプログラム、ウェブosの実行方法 | |
JP6177001B2 (ja) | 情報処理装置、管理装置、情報処理方法、管理装置の制御方法、及び、プログラム | |
JP2013210912A (ja) | データ処理装置、データ処理システム及びプログラム | |
US20160019014A1 (en) | Information processing apparatus and method for the same | |
JP2013143049A (ja) | 開発支援装置、動作確認方法、及び開発支援プログラム | |
JP2007122691A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JPWO2006129621A1 (ja) | パソコンのデスクトップ上にユーザーインタフェースを表示するための方法及びプログラム | |
WO2013088534A1 (ja) | クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム | |
JP6128503B1 (ja) | 電子マニュアルに関連するサービスを提供するためのプログラム、サーバおよびシステム | |
JP5927930B2 (ja) | 情報処理装置及びプログラム | |
TWI581117B (zh) | 網頁上協同工作的方法 | |
TWI609272B (zh) | 終端裝置及其終端作業系統與雲端裝置及其雲端作業系統 | |
JP6082210B2 (ja) | 情報処理装置およびその制御方法、システム、並びにプログラム | |
JP2016167295A (ja) | 情報処理装置及びプログラム | |
TWI564731B (zh) | 管理資產的方法以及應用該方法的資產管理系統與機器 | |
CN114564401A (zh) | 远程控制方法和计算装置 | |
KR20140114968A (ko) | 애플리케이션 개발 환경 제공 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체 | |
KR20140115470A (ko) | 애플리케이션 환경 제공 시스템 | |
KR20140115472A (ko) | 애플리케이션 환경 제공 시스템 | |
KR20140114984A (ko) | 애플리케이션 개발 환경 제공 장치 | |
JP2017199357A (ja) | 電子マニュアルに関連するサービスを提供するためのプログラム、サーバおよびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20140606 |