(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-25
(45)【発行日】2024-02-02
(54)【発明の名称】コンピュータシステム、プログラム、及び方法
(51)【国際特許分類】
G06F 3/0484 20220101AFI20240126BHJP
G06F 8/30 20180101ALI20240126BHJP
【FI】
G06F3/0484
G06F8/30
(21)【出願番号】P 2023036929
(22)【出願日】2023-03-09
(62)【分割の表示】P 2018248535の分割
【原出願日】2018-12-12
【審査請求日】2023-04-05
(73)【特許権者】
【識別番号】519002117
【氏名又は名称】Gemsmith Partners株式会社
(74)【代理人】
【識別番号】100151448
【氏名又は名称】青木 孝博
(74)【代理人】
【識別番号】230121016
【氏名又は名称】小笠原 匡隆
(72)【発明者】
【氏名】伊藤 暢洋
【審査官】岩橋 龍太郎
(56)【参考文献】
【文献】特開2011-070472(JP,A)
【文献】特開2017-151530(JP,A)
【文献】特開2011-008358(JP,A)
【文献】特開2004-151893(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048-3/04895
G06F 3/14-3/153
G06F 8/00-8/38
G06F 8/60-8/77
G06F 9/44-9/445
G06F 9/451
(57)【特許請求の範囲】
【請求項1】
複数のモジュールのうちの少なくとも一部を連携して実行するためのコンピュータシステムであって、
前記複数のモジュール及び前記複数のモジュールのうちの少なくとも一部を連携させて処理するためのプログラムに関する情報を記憶するためのメモリと、
ユーザの指示入力を受け付けるための入力インターフェースと、
前記プログラムの実行により、
連携させる複数のモジュールと関係性を指定する前記ユーザの指示入力を前記入力インターフェースが受け付けると、前記指示入力に応じて、当該複数のモジュール間で所定の関係性を形成し、
形成された前記関係性に応じて各モジュールを連携させて新たなモジュールを生成し、
生成された前記新たなモジュールは、前記複数のモジュールの一部を構成し、連携させる複数のモジュールの一部として前記新たなモジュールを指定する前記ユーザの指示入力に応じて、当該複数のモジュール間で所定の関係性を形成し、形成された前記関係性に応じて前記新たなモジュールとは異なる他の新たなモジュールを生成し、前記他の新たなモジュールは前記複数のモジュールの一部を構成し、
新たなモジュールを構成の一部とする前記複数のモジュールについて、前記モジュールを実行するユーザの指示入力を前記入力インターフェースが受け付けると、前記モジュールを実行する、
ための処理を実行するプロセッサと、
を含むコンピュータシステム。
【請求項2】
前記メモリは、前記複数のモジュールの各々の属性情報を記憶し、
前記プロセッサは、前記属性情報に基づいて、各モジュールが連携可能か否かを判断する、請求項1に記載のコンピュータシステム。
【請求項3】
前記属性情報は、各モジュールの型情報であり、
前記プロセッサは、各モジュールの型情報が同一であるか、又は承継関係であるかに基づいて連携可能か否かを判断する、請求項2に記載のコンピュータシステム。
【請求項4】
複数のモジュールのうちの少なくとも一部を連携して実行するためのプログラムであって、
前記複数のモジュールに関する情報を記憶するためのメモリと、ユーザの指示入力を受け付けるための入力インターフェースと、を含むコンピュータを、
連携させる複数のモジュールと関係性を指定する前記ユーザの指示入力を前記入力インターフェースが受け付けると、前記指示入力に応じて、当該複数のモジュール間で所定の関係性を形成し、
形成された前記関係性に応じて各モジュールを連携させて新たなモジュールを生成し、
生成された前記新たなモジュールは、前記複数のモジュールの一部を構成し、連携させる複数のモジュールの一部として前記新たなモジュールを指定する前記ユーザの指示入力に応じて、当該複数のモジュール間で所定の関係性を形成し、形成された前記関係性に応じて前記新たなモジュールとは異なる他の新たなモジュールを生成し、前記他の新たなモジュールは前記複数のモジュールの一部を構成し、
新たなモジュールを構成の一部とする前記複数のモジュールについて、前記モジュールを実行するユーザの指示入力を前記入力インターフェースが受け付けると、前記モジュールを実行する、
プログラム。
【請求項5】
複数のモジュールのうちの少なくとも一部を連携して実行するための方法であって、
前記複数のモジュール及び前記複数のモジュールのうちの少なくとも一部を連携させて処理するためのプログラムに関する情報を記憶するためのメモリと、ユーザの指示入力を受け付けるための入力インターフェースと、を含むコンピュータにおいて、プロセッサが前記プログラムを処理することによりなされる方法であって、
連携させる複数のモジュールと関係性を指定する前記ユーザの指示入力を前記入力インターフェースが受け付けると、前記指示入力に応じて、当該複数のモジュール間で所定の関係性を形成する段階と、
形成された前記関係性に応じて各モジュールを連携させて新たなモジュールを生成する段階と、
生成された前記新たなモジュールは、前記複数のモジュールの一部を構成し、連携させる複数のモジュールの一部として前記新たなモジュールを指定する前記ユーザの指示入力に応じて、当該複数のモジュール間で所定の関係性を形成し、形成された前記関係性に応じて前記新たなモジュールとは異なる他の新たなモジュールを生成し、前記他の新たなモジュールは前記複数のモジュールの一部を構成する段階と、
新たなモジュールを構成の一部とする前記複数のモジュールについて、前記モジュールを実行するユーザの指示入力を前記入力インターフェースが受け付けると、前記モジュールを実行する段階と、
を含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータユーザがインターフェース画像を通じて複数のモジュールを連携させて実行するコンピュータシステムに関する。
【背景技術】
【0002】
従来より、アプリケーション中心のユーザインターフェースをユーザに提示するコンピュータシステムがある。例えば、特許文献1には、アプリケーション中心のユーザインターフェースがユーザに対して提示されるコンピュータシステムが記載されている。当該ユーザインターフェースにおいてユーザに対して提示されるのは、1個又は複数個のアプリケーションを示す表示であった。当該表示に対して指示入力することによりアプリケーションの起動が行われるものであった。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来のアプリケーション中心のユーザインターフェースがユーザに提示する表示は、アプリケーションを示すものであり、コンピュータシステムにおける処理を実行する個々のプログラムを示すものではなかった。また、当該ユーザインターフェースにおいてアプリケーションを示す表示に指示入力しても、当該表示が示すアプリケーションが起動されるに止まり(アプリケーションのスタート画面を開くなど)、アプリケーションの個々の処理を行うプログラム(モジュールなど)を直接実行するものではなかった。
【0005】
そこで、本開示の実施形態により、複数のモジュールが連携して処理を実行することが可能なコンピュータシステム、プログラム及び方法を提供する。
【課題を解決するための手段】
【0006】
本開示の一実施形態によれば、「複数のモジュールのうちの少なくとも一部を連携して実行するためのコンピュータシステムであって、前記複数のモジュール、前記複数のモジュールのうちの少なくとも一部を連携させて処理するためのプログラム、及び前記複数のモジュールのそれぞれに対応して表示されるインターフェース画像に関する情報を記憶するためのメモリと、前記インターフェース画像を表示するためのディスプレイと、ユーザによる指示入力を受け付けるための入力インターフェースと、前記プログラムの実行により、連携させるモジュールに対応するインターフェース画像に対する前記ユーザの指示入力を前記入力インターフェースが受け付けると、前記指示入力に応じて、当該インターフェース画像と、あらかじめ前記ディスプレイに表示された他のインターフェース画像との間で所定の関係性を形成し、形成された前記関係性に応じて各インターフェース画像に対応する各モジュールを連携させて新たなモジュールを生成し、生成された前記新たなモジュールに対する前記ユーザの指示入力を前記入力インターフェースが受け付けると前記新たなモジュールを実行するための処理を実行するプロセッサと、を含むコンピュータシステム」が提供される。
【0007】
本開示の一実施形態によれば、「複数のモジュールのうちの少なくとも一部を連携して実行するためのプログラムであって、前記複数のモジュール、及び前記複数のモジュールのそれぞれに対応して表示されるインターフェース画像に関する情報を記憶するためのメモリと、前記インターフェース画像を表示するためのディスプレイと、ユーザによる指示入力を受け付けるための入力インターフェースと、を含むコンピュータを、連携させるモジュールに対応するインターフェース画像に対する前記ユーザの指示入力を前記入力インターフェースが受け付けると、前記指示入力に応じて、当該インターフェース画像と、あらかじめ前記ディスプレイに表示された他のインターフェース画像との間で所定の関係性を形成し、形成された前記関係性に応じて各インターフェース画像に対応する各モジュールを連携させて新たなモジュールを生成し、生成された前記新たなモジュールに対する前記ユーザの指示入力を前記入力インターフェースが受け付けると前記新たなモジュールを実行するための処理を実行するプロセッサ、として機能させるプログラム」が提供される。
【0008】
本開示の一実施形態によれば、「複数のモジュールのうちの少なくとも一部を連携して実行するための方法であって、前記複数のモジュール、前記複数のモジュールのうちの少なくとも一部を連携させて処理するためのプログラム、及び前記複数のモジュールのそれぞれに対応して表示されるインターフェース画像に関する情報を記憶するためのメモリと、前記インターフェース画像を表示するためのディスプレイと、ユーザによる指示入力を受け付けるための入力インターフェースと、を含むコンピュータにおいて、プロセッサが前記プログラムを処理することによりなされる方法であって、連携させるモジュールに対応するインターフェース画像に対する前記ユーザの指示入力を前記入力インターフェースが受け付けると、前記指示入力に応じて、当該インターフェース画像と、あらかじめ前記ディスプレイに表示された他のインターフェース画像との間で所定の関係性を形成する段階と、形成された前記関係性に応じて各インターフェース画像に対応する各モジュールを連携させて新たなモジュールを生成する段階と、生成された前記新たなモジュールに対する前記ユーザの指示入力を前記入力インターフェースが受け付けると前記新たなモジュールを実行する段階と、を含む方法」が提供される。
【発明の効果】
【0009】
本開示の実施形態により、複数のモジュールが連携して処理を実行することが可能なコンピュータシステム、プログラム及び方法を提供する。
【図面の簡単な説明】
【0010】
【
図1】
図1は、本開示の実施形態に係るコンピュータシステム100のディスプレイ112に表示される画面の例を示す図である。
【
図2】
図2は、本開示の実施形態に係るコンピュータシステム100の構成を示すブロック図である。
【
図3】
図3は、コンピュータシステム100のプロセッサ110で本開示の実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。
【
図4A】
図4Aは、コンピュータシステム100のプロセッサ110で本開示の実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。
【
図4B】
図4Bは、コンピュータシステム100のプロセッサ110で本開示の実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。
【
図5】
図5は、コンピュータシステム100のプロセッサ110で本開示の実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。
【
図6】
図6は、本開示の本実施形態に係るインターフェース画像に対応するモジュールの型情報の例を示す図である。
【
図7A】
図7Aは、本開示の実施形態に係るプログラムの実行による画面例を示す模式図である。
【
図7B】
図7Bは、本開示の実施形態に係るプログラムの実行による画面例を示す模式図である。
【
図7C】
図7Cは、本開示の実施形態に係るプログラムの実行による画面例を示す模式図である。
【
図7D】
図7Dは、本開示の実施形態に係るプログラムの実行による画面例を示す模式図である。
【
図8】
図8は、本開示の実施形態に係るプログラムの実行による画面例を示す模式図である。
【
図9A】
図9Aは、インターフェース画像に対応するモジュールに関する設定情報を変更させる際の画面例を示す模式図である。
【
図9B】
図9Bは、インターフェース画像に対応するモジュールに関する設定情報を変更させる際の画面例を示す模式図である。
【発明を実施するための形態】
【0011】
添付図面を参照して本発明の実施形態を説明する。なお、図面における共通する構成要素には同一の参照符号が付されている。
【0012】
<本開示に係るシステムの概要>
以下、本発明の一実施形態に係るコンピュータシステムとして、本実施形態に係るプログラムを実行可能なディスプレイを有するコンピュータシステム100(携帯電話、スマートフォン、タブレット機、携帯型ゲーム機、携帯情報端末、PDA、無線コントローラー端末、デスクトップパソコン、ラップトップパソコン、ゲームセンター等に設置されるようなアーケードゲーム用端末など)を例にとって具体的に説明する。
【0013】
図1は、本開示の実施形態に係るコンピュータシステム100のディスプレイ112に最大表示される画面の例(ディスプレイ112の一部に適当な大きさで表示されてもよい)であって、ユーザがモジュールを連携させた処理を実行する新たなモジュールを作成している状態を示す図である。
【0014】
コンピュータシステム100のディスプレイ112には、メモリ113に格納された各モジュールに対応して表示されるインターフェース画像134を1又は複数配置することが可能な実行用表示領域132が表示されている。インターフェース画像134には、当該インターフェース画像に対応するモジュール又は連携モジュールに関する情報に格納されている、モジュールの名称・説明、設定情報137及びその値138を表示することが可能である。また、ディスプレイ112には、実行用表示領域132上のインターフェース画像134の1又は複数を、ユーザからの指示入力に応じて、実行用表示領域132から配置することが可能な連携用表示領域131が表示されている。実行用表示領域132と連携用表示領域131は、視認性の観点から、一つのウィンドウ内で各領域を分けて表示するのが望ましいが、それに限られない。例えば、一つのウィンドウ内で一つの領域に結合してもよいし、領域ではなく、ウィンドウそのものを分けるようにしてもよい。
【0015】
実行用表示領域132のインターフェース画像134に対してユーザが指示入力すること(インターフェース画像134に、データファイルをドラッグアンドドロップする又はインターフェース画像内をクリックするなど)によりインターフェース画像134に対応するモジュールの処理を実行できる。
【0016】
実行用表示領域132のインターフェース画像134は、ドラッグアンドドロップ操作などにより連携用表示領域131に配置することが可能である(
図1の矢印は当該ドラッグアンドドロップ操作によるインターフェース画像の配置を示す)。
図1では、実行用表示領域132に表示されたインターフェース画像Aを連携用表示領域131にドラッグアンドドロップ操作して配置させた例であるが、連携用表示領域131に配置されるインターフェース画像Aは、実行用表示領域132のインターフェース画像Aと全く同じ表示となる必要はない。例えば、連携用表示領域131に配置されるインターフェース画像Aは、連携可能なモジュールをわかりやすく表示するために、当該インターフェース画像に対応するモジュールの属性情報を表示したり、属性情報に応じて表示を変更することが可能である。
【0017】
連携用表示領域131に配置されるインターフェース画像133は、ドラッグ操作に続いてドロップ操作が行われた際のマウス116の座標を取得し、当該インターフェース画像133の重心座標に当該座標を設定する形で配置することができる。
【0018】
連携用表示領域131の左上隅を基準座標(座標の横軸及び縦軸の値がいずれも0)とし、ディスプレイ112の下方に向かって縦軸のプラス方向、ディスプレイ112の右方に向かって横軸のプラス方向とする。このとき、モジュールの連携は、各インターフェース画像の重心座標について縦軸方向が小さいものから順に連携させる。仮に重心座標の縦軸方向が同じ値の場合には、連携順序が一つ前のモジュールから、重心座標の縦軸方向が同じ値の複数のモジュールに対して並列に連携させたり、又は、各インターフェース画像の重心座標について横軸方向が小さいものから、各インターフェース画像に対応する各モジュールを順に連携させ、新たな一つのモジュールを生成する。なお、各インターフェース画像の重心座標について厳密な大小関係によって連携順序を決定するのではなく、その差が一定の閾値内か否かによって決定することも可能である。この場合、複数のインターフェース画像の重心座標が当該閾値内にある場合、当該複数のインターフェース画像の重心座標は同じとみなすことができる。
【0019】
ユーザにより当該連携モジュールの作成を行うと決定された場合、プロセッサ110は、当該連携モジュールの連携順序及び設定情報をメモリ113に記憶させる。さらに、プロセッサ110は、当該連携モジュールを示すインターフェース画像134を実行用表示領域132に新たに表示する。
【0020】
なお、本実施形態において、モジュールとは、プログラムよって実行される1又は複数の機能ごとのまとまりのことを意味する。本実施形態に係るモジュールは、
図1に記載するようなモジュール間の連携及び実行を可能とするモジュールであれば、いずれでもよい。端的には、文書作成、ブラウジング、カメラ撮影、動画視聴、メール送信などの各種アプリケーションが例として挙げられるが、当然これらのみには限られない。ユーザが指示入力をするためのGUIや一連の処理を完結するための全てのプログラムがモジュール内に含まれている必要はなく、文字入力、特定のインターフェース画像への操作、情報検索、数値計算、コピーアンドペースト、画面の切り替え、他のアプリケーションやモジュールの起動、カメラの操作、メールの検索、受信メールの表示など、ごく限られた機能ごと、又はこれらを複数組み合わせて一つのモジュールを形成してもよい。
【0021】
本実施形態に係るモジュールは、あらかじめコンピュータシステム100のメモリ113に記憶されている。また、本実施形態に係るモジュールは、通信インターフェース111を介して外部のサーバー装置(図示しない)から受信することにより随時追加・更新され、コンピュータシステム100のメモリ113に記憶される。
【0022】
本実施形態に係るプログラムは、あらかじめコンピュータシステム100のメモリ113に記憶されている。また、当該プログラムは、いわゆるネイティブアプリと呼ばれるプログラムのように、当該プログラムがサーバー装置に記憶され、コンピュータシステム100にダウンロードして実行することも可能である。
【0023】
本実施形態においては、当該プログラムの実行をコンピュータシステム100のプロセッサ110において実行する場合について説明するが、いわゆるWebアプリと呼ばれるプログラムのように、外部のサーバー装置内に当該プログラムを記憶し、プログラムの進行に応じてコンピュータシステム100から送信された指示・コマンドに応じてサーバー装置内の当該プログラムにより処理を実行し、その結果をコンピュータシステム100に送信することで、本実施形態を実現することも可能である。
【0024】
<コンピュータシステム100>
図2は、本開示の実施形態に係るコンピュータシステム100の構成を示すブロック図である。なお、本実施形態に係るコンピュータシステム100は、
図2に示す構成要素の全てを備える必要はなく、一部を省略した構成をとることも可能である。
【0025】
図2を参照すると、コンピュータシステム100は、プロセッサ110、通信インターフェース111、ディスプレイ112、メモリ113、キーボード115及びマウス116を含む入力インターフェース114を含む。これらの各要素が制御ライン及びデータラインを介して互いに電気的に接続されている。
【0026】
プロセッサ110は、CPU(マイクロコンピュータ:マイコン)から構成され、キーボード115上のキー押下により入力されるキー情報及びマウス116への接触により入力される座標情報に基づいて、メモリ113に記憶された各モジュールのインターフェース画像及び関連情報のディスプレイ112への表示や、本実施形態に係るプログラムを実行して各モジュールの連携に係る処理を制御する。具体的には、ディスプレイ112上で所定の位置関係が形成されたインターフェース画像に対応するモジュール同士を連携させて新たなモジュールを生成する処理を行う。プロセッサ110は、メモリ113に記憶された各種プログラムに基づいて、接続された他の構成要素を制御する制御部として機能する。
【0027】
プロセッサ110は、単一のCPUで構成されてもよいが、複数のCPUで構成してもよい。また、画像処理すなわちディスプレイ112に対する表示制御や数値計算に特化したGPUを別途設けてもよい。
【0028】
通信インターフェース111は、無線の場合には接続された無線通信アンテナを介して、また、有線の場合には接続されたLANなどを介して、メモリ113に記憶された情報を遠隔に設置された他の端末に送信するため、又は他の端末から送信されて来た情報を受信するために、変調や復調などの各種処理を行う通信部として機能する。例えば、本実施形態に係るプログラムをサーバー装置から受信するような場合には、通信インターフェース111は、本実施形態に係るプログラムを処理の進行に応じて随時、又は実行開始時にまとめてサーバー装置等から受信するのを制御する。また、当該プログラムの実行による各種処理又は結果をサーバー装置に送信するのを制御する。
【0029】
無線の場合には、この通信インターフェース111は、W-CDMA(Wideband-Code Division Multiple Access)方式に代表されるような広帯域の無線通信方式に基づいて処理されるが、IEEE802.11に代表されるような無線LANやBluetooth(登録商標)のような狭帯域の無線通信に関する方式に基づいて処理することも可能である。
【0030】
ディスプレイ112は、例えばメモリ113に記憶された各インターフェース画像及び関連情報を、プロセッサ110の制御により表示するための表示部として機能する。一例としては、液晶ディスプレイから構成される。なお、本実施形態に係る端末装置は単一のディスプレイ112を備えるものであるが、2つ以上のディスプレイを備えるものであってもよい。
【0031】
メモリ113は、ROM、RAM、不揮発性メモリ等から構成される。ROMは、例えば本実施形態に係るプログラムを記憶するための記憶部として機能する。プロセッサ110は、このプログラムをロードすることにより各種処理を実行する。RAMは、ROMに記憶されたプログラムを実行することにより生成される各種命令がプロセッサ110により処理されている間、データの書き込み及び読み込みをするために用いられるメモリである。不揮発性メモリは、当該プログラムの実行によってデータの書き込み及び読み込みが実行されるメモリであって、ここに書き込まれたデータは、当該プログラムの実行が終了した後でも保存される。また、本実施形態に係るプログラムをコンピュータシステム100で読み取り可能な別の媒体に記憶しておき、プロセッサ110は、この媒体からプログラムをロードすることにより各種処理を実行することも可能である。
【0032】
本実施形態においては、メモリ113には、モジュールの連携に係るプログラムが記憶される。これに加えて、メモリ113には、各モジュールごとに、各モジュールを実行するためのプログラム、各モジュールに対応するインターフェース画像に関する情報(例えば、アイコンなどの描画情報)、各モジュールの名称・説明、各モジュールが有する属性情報(型情報、分類情報など)、各モジュール実行時の設定情報などが、それぞれ対応付けて記憶されている。メモリ113に対応付けて記憶されたこれらの情報は、例えばユーザの指示入力に応じて、随時更新される。
【0033】
入力インターフェース114は、キーボード115やマウス116等から構成され、ユーザからの各種指示入力を受け付ける操作部として機能する。なお、入力インターフェース114は、キーボード115やマウス116に限らず、タッチパネル、音声認識(マイク)、ジェスチャー認識(カメラや赤外線センサなど)など、他の手段・方法であってもよい。
【0034】
<プログラム連携の制御フロー>
図3は、コンピュータシステム100のプロセッサ110で本実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。メモリ113に記憶された本実施形態に係るプログラムをプロセッサ110が実行すると当該処理フローは開始される。
【0035】
まず、プロセッサ110は、入力インターフェース114がユーザから受け付けた指示入力に基づいて、実行用表示領域132において当該指示入力がなされたインターフェース画像134を検出する(S101)。次に、プロセッサ110は、当該インターフェース画像134についてドラッグ操作に続いてドロップ操作が行われたマウス116の入力座標位置を検出する(S102)。さらに、プロセッサ110は、当該座標位置が連携用表示領域131内にあるか否かを判断する(S103)。
【0036】
S103において、インターフェース画像134のドロップ位置が連携用表示領域131内にあると決定された場合、当該インターフェース画像134に対応するモジュールと、既に連携用表示領域131内に配置されている他のインターフェース画像133に対応するモジュールとの間で、プログラムの連携が可能か否かを判断する(S104)。
【0037】
S104において、各インターフェース画像に対応する各モジュール間でモジュールの連携が可能であると決定された場合、連携モジュールの作成を行うか否かのユーザによる指示入力を受け付ける(S105)。
【0038】
S105において、連携モジュールの作成を行うというユーザの指示入力を受け付けた場合、当該連携モジュールを示すインターフェース画像134を実行用表示領域132に新たに表示する(S106)。このとき、プロセッサ110は、当該連携モジュールの連携順序及び設定情報をメモリ113に記憶させる。
【0039】
S103において座標位置が連携用表示領域内でない場合、S104において各インターフェース画像に対応する各モジュール間で連携が不可能と決定された場合、又はS105において連携モジュールの作成を行うというユーザの指示入力を受け付けなかった場合、再びS101に戻り、ドラッグ操作の対象となるインターフェース画像の検出を行う。
【0040】
図4A及び
図4Bは、コンピュータシステム100のプロセッサ110で本開示の実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。具体的には、
図4A及び
図4Bは、
図3のS104における各インターフェース画像に対応する各モジュール間で、連携の順序を決定したうえで、当該連携が可能か否かを判断する処理の詳細を示すフロー図である。
【0041】
図4Aは、連携順序の決定に係る処理の一例を示す。具体的には、各モジュールに対応するインターフェース画像間の位置関係に基づいて、当該各モジュールの連携順序を決定する例を示す。インターフェース画像134に対するドロップ操作が行われた位置が連携用表示領域131内にあると決定された場合、インターフェース画像間の位置関係からモジュールの連携順序を決定する(S107)。本実施形態によれば、連携用表示領域131の左上隅を基準座標(座標の横軸及び縦軸の値がいずれも0)とし、ディスプレイ112の下方に向かって縦軸のプラス方向、ディスプレイ112の右方に向かって横軸のプラス方向とする。このとき、各インターフェース画像133の重心座標について縦軸方向が小さいものから順に連携させる。仮に重心座標の縦軸方向が同じ値の場合には、連携順序が一つ前のモジュールから、重心座標の縦軸方向が同じ値の複数のモジュールに対して並列に連携させたり、又は、各インターフェース画像の重心座標について横軸方向が小さいものから順に連携させる。これにより、インターフェース画像間の連携順序を決定できる。
【0042】
なお、インターフェース画像の座標位置を用いた連携順序は単なる一例であり、当然他の基準に基づいて連携順序を決定してもよい。例えば、単純に連携用表示領域131に配置された順番に基づいて連携されてもよい。また、基準となる一つのインターフェース画像133(例えば、最初に連携用表示領域131に配置されたインターフェース画像)を基準として、そこからの距離に応じた順番で各モジュールを連携してもよい。また、ある基準座標とインターフェース画像の重心座標を通る直線と、軸(縦軸又は横軸)のなす角度に応じた順番で各モジュール間の連携順序を決定してもよい。なお、連携順序の基準となる値について厳密な大小関係によって決定するのではなく、一定の閾値内か否かによって決定することも可能である。この場合、複数のインターフェース画像が当該閾値内にある場合、当該複数のインターフェース画像に対応するモジュールの連携順序は同じとみなすことができる。
【0043】
次に、プロセッサ110は、各インターフェース画像に対応する各モジュールの連携の可否を判断する(S108)。当該判断は、上記連携順序の前後にあるインターフェース画像との間で判断する。連携順序が直前又は直後のインターフェース画像が並列に複数存在する場合には、当該複数のインターフェース画像との間で判断する。当該インターフェース画像に対応するモジュールが、前後いずれかのインターフェース画像に対応するモジュールとの間で連携が不可能と決定された場合、再びS101に戻り、ドラッグ操作の対象となるインターフェース画像134の検出を行う。
【0044】
S108において、当該インターフェース画像に対応するモジュールが前後いずれのインターフェース画像に対応するモジュールとの間でも連携が可能であると決定された場合、プロセッサ110は、ドロップ操作が行われた際のマウス116の座標位置を取得し、重心座標を当該座標に設定して、当該インターフェース画像133を表示するよう制御する(S109)。そして、当該処理フローは終了し、
図3に示す処理フローに移行する。具体的には、連携用表示領域131内に当該インターフェース画像133を表示したら、ユーザによる連携モジュールの作成を行うか否かの指示入力を受け付ける(
図3:S105)。
【0045】
図4Bは、連携順序の決定に係る処理の他の例を示す。具体的には、
図4Bは、各モジュールに対応するインターフェース画像間を繋ぐ有向グラフに基づいて、連携順序を決定する例である。まず、インターフェース画像134に対するドロップ操作が行われた位置が連携用表示領域131内にあると決定された場合、当該ドロップ操作が行われた際のマウス116の座標を取得し、重心座標を当該座標に設定して、当該インターフェース画像133を表示する(S201)。
【0046】
次に、プロセッサ110は、入力インターフェース114に入力されたユーザの指示入力に基づいて、ユーザが連携を意図する連携用表示領域131内の各インターフェース画像133を特定する(S202)。例えば、連携用表示領域131内において、連携の始点となるモジュールのインターフェース画像133上でクリックの押下を行い、これを継続し、連携の終点となるモジュールのインターフェース画像133上で当該クリックの押下を止めることにより、連携の始点になるモジュールに対応するインターフェース画像133及び連携の終点になるモジュールのインターフェース画像133を特定することが可能である。
【0047】
プロセッサ110は、連携を意図された各モジュール間で、モジュールの連携が可能か否かを判断する(S203)。仮に当該モジュール間でモジュールの連携が不可能と決定された場合、再びS202に戻りさらに別のモジュールに対応するインターフェース画像133がユーザにより指示されるのを待つか、又は、S101(
図3)に戻りドラッグ操作の対象となるインターフェース画像134の検出を行う。
【0048】
S203において、当該モジュール間でモジュールの連携が可能であると決定された場合、プロセッサ110は、当該モジュール間の連携自体及び連携する方向を示す有向辺をディスプレイ112に表示するよう制御する(S204)。具体的には、プロセッサ110は、連携の始点になるモジュールに対応するインターフェース画像133から、連携の終点になるモジュールのインターフェース画像133に向けて有向辺を表示する。そして、当該処理フローは終了し、
図3に示す処理フローに移行する。具体的には、連携用表示領域131内に当該有向辺を表示したら、ユーザによる連携モジュールの作成を行うか否かの指示入力を受け付ける(S105)。
【0049】
なお、有向辺の表示は一例であってその他の表示であってもよい。例えば、連携の対象となる各モジュールに対応する各インターフェース画像133を枠で囲んだり、対応する位置を枠で囲んだり、配置位置を並び替えて表示してもよい。また、
図4Aに示す連携順序の決定方法を組み合わせてもよい。さらに、連携順序の決定は、プログラムによって自動的に決定されてもよいし、ユーザの追加の指示入力によって決定してもよい。
【0050】
図5は、コンピュータシステム100のプロセッサ110で本開示の実施形態に係るプログラムを実行することで行われる処理の流れを示すフロー図である。具体的には、S104、S108、又はS203において、モジュール間でモジュールの連携が可能か否かを判断する処理の流れを示すフロー図である。まず、連携の対象となるモジュールが決定された場合、プロセッサ110は、当該モジュールの型情報をメモリ113から取得する(S112)。
【0051】
図6は、本開示の本実施形態に係るインターフェース画像に対応するモジュールの型情報の例を示す図である。具体的には、
図6は、モジュールの型情報を示したコーディングの例である。一例として、型情報はJSON形式で示されている。型情報の保存形式は、XML形式、CSV形式その他の適切なデー夕保存形式であればよい。モジュールの型情報には、当該モジュールが連携の始点となる場合に、連携の終点となるモジュールに渡す出力データの出力型情報が示されている。
図6(a-1)の型情報を保有するモジュールでは、出力型情報は、モジュールの「outputs」属性の「type」属性に示されており、「text」という値となる。また、モジュールの型情報には、当該モジュールが連携の終点となる場合に、連携の始点となるモジュールから受領することが可能である入力データの入力型情報が示されている。
図6(a-2)の型情報を保有する別のモジュールでは、入力型情報は、モジュールの「inputs」属性の「type」属性に示されており、「text」という値となる。
【0052】
再び
図5に戻り、
図6(a-1)の型情報を保有するモジュールを始点とし、
図6(a-2)の型情報を保有するモジュールを終点とする、モジュール間の連携では、連携の始点となるモジュールの出力型情報と連携の終点となるモジュールの入力型情報が同一と判断できるので(S113)、連携の始点となる前記モジュールに対応するインターフェース画像から連携の終点となる前記モジュールに対応するインターフェース画像に向かって連携が可能であると決定される。
【0053】
モジュール間で型情報が同一と判断できない場合(S113)、インターフェース画像に対応するモジュールの型情報間で継承可能か否かが判断される(S114)。
【0054】
図6(b-1)の型情報を保有するモジュールでは、出力型情報は「file:pdf」という値となる。この値は、当該モジュールが出力するデータは「ファイル」であり、「ファイル」の中でも「PDFファイル」であることを示す例である。「:」という記号は、型情報の包含関係について、「ある型情報を包含する概念:当該型情報に包含される概念(の1つ)」という規則で示される。ここでは「ファイル:PDFファイル」ということを意味している。「ファイル」が「PDFファイル」を包含する型情報であり、「PDFファイル」は「ファイル」という型情報の1つである。このような型情報の包含関係が成立する場合、型情報間で継承可能と決定する。なお、継承関係の数に制限はなく、2層以上の継承関係を示すことも可能である。
【0055】
また、
図6(b-2)の型情報を保有するモジュールでは、入力型情報は「file」という値となる。この値は、前記インターフェース画像が受領することができる入力データは「ファイル」であることを意味している。
【0056】
再び
図5に戻り、
図6(b-1)の型情報を保有するモジュールを始点とし、
図6(b-2)の型情報を保有するモジュールを終点とする、モジュール間の連携では、連携の終点となるモジュールの入力型情報は、「file」であり、連携の始点となるモジュールの出力型情報の「file:pdf」を包含するものであるから、型情報間で継承が可能であると決定する(S114)。連携の始点となる当該モジュールに対応するインターフェース画像から連携の終点となる当該モジュールに対応するインターフェース画像に向かって連携が可能であると決定する。
【0057】
当該モジュール間で型情報が継承できないと決定された場合(S114)、再びS101に戻り、ドラッグ操作の対象となるインターフェース画像134の検出を行う。S203の場合には、再びS101に戻るか、又は、ユーザの指示入力に応じてユーザが連携を意図する連携用表示領域内の各インターフェース画像が特定されるまで待機する(S202)。
【0058】
なお、本実施形態においては、
図6において属性情報として型情報を利用したが、他の属性情報を利用することも可能である。また、同一か否かの判断、及び承継関係を有するか否かの判断は、各属性ごとに決められた規則をあらかじめメモリ113に記憶し、及び/又は、当該規則を記憶した外部のサーバー装置から通信インターフェース111を介して当該規則を受信し、当該規則を参照することによって行われる。外部のサーバー装置に記憶された当該規則は随時追加・更新され、当該追加・更新に応じて当該メモリ113が追加・更新することも可能である。
【0059】
<画面遷移>
図7A~
図7Dは、本実施形態に係るプログラムの実行による画面例を示す模式図である。ここでは、インターフェース画像間の所定の関係性を有向グラフで表示する例について説明している。
図7Aは、ユーザによる指示入力が入力インターフェース114によって受け付けられ、実行用表示領域132のインターフェース画像134のうち、インターフェース画像Aを連携用表示領域131へドラッグアンドドロップ操作しているときの画面例を示す模式図である。
【0060】
図7Aでは、プロセッサ110は、本実施形態に係るプログラムの実行を開始すると、ディスプレイ112の所定の位置に連携用表示領域131及び実行用表示領域132を表示する。実行用表示領域132は、メモリ113に格納されたプログラムを示すインターフェース画像134を3個配置する(インターフェース画像A~C)。なお、実行用表示領域132には、任意の個数のインターフェース画像134を配置することが可能である。そして、実行用表示領域132のインターフェース画像134のうち1つが、ユーザによる指示入力によりドラッグアンドドロップ操作され、連携用表示領域131に配置される。
【0061】
次に、
図7Bを参照すると、
図7Aに続いて、実行用表示領域132の別のインターフェース画像Cが、ユーザによる指示入力に応じて、ドラッグアンドドロップ操作され、連携用表示領域131に配置される。
【0062】
さらに、
図7Cを参照すると、連携の始点となるモジュールのインターフェース画像133に対するユーザの指示入力(例えば、当該インターフェース画像上でクリックの押下を行い、これを継続する)を受け付ける。
図7Cでは、インターフェース画像Aのモジュールが連携の始点となる。次に、ユーザの指示入力に応じて、連携の終点となるモジュールのインターフェース画像を指示する(例えば、当該インターフェース画像上で当該クリックの押下を止める)。
図7Cでは、インターフェース画像Cのモジュールが連携の終点となる。これによって、インターフェース画像Aとインターフェース画像Cとの間で、ディスプレイ112上で所定の関係性が形成される。両インターフェース画像A及びC間で有向辺135が表示される。
【0063】
図7Cにおいて、ユーザが連携用表示領域131に示されたインターフェース画像に対応するモジュールの連携を行うとの決定を行った場合(当該決定は、別途用意される所定のボタンの押下、又はキーボード115の「Enter」の押下を通じて行うなどがある)、プロセッサ110は、当該連携モジュールの連携順序及び設定情報をメモリ113に記憶させる。さらに、
図7Dを参照すると、プロセッサ110は、新たに生成された当該連携モジュールを示すインターフェース画像Dを実行用表示領域132に新たに表示する。当該インターフェース画像Dが示すモジュールは、
図7Cにおいて有向辺の始点となるインターフェース画像Aのモジュールから、有向辺の終点となるインターフェース画像Cのモジュールに向かって、モジュールの処理を連携させた連携モジュールである。そして、プロセッサ110は、連携用表示領域131に示されていた各インターフェース画像133及び有向辺135を非表示にする。
【0064】
図7Dを参照すると、実行用表示領域132には、インターフェース画像Dの連携モジュールを含め、全部で4個のモジュール(インターフェース画像A~D)が使用可能となる。すなわち、実行用表示領域132に表示されているインターフェース画像134のいずれかに対するユーザの指示入力を入力インターフェース114が受け付けると、当該指示入力で選択されたインターフェース画像134(例えば、インターフェース画像D)に対応するモジュール(例えば、インターフェース画像Dの連携モジュール)の処理を実行する。
【0065】
図8は、本開示の実施形態に係るプログラムの実行による画面例を示す模式図である。具体的には、
図8は、連携用表示領域131において、複数のインターフェース画像133(E~J)を連携させた画面の例を示す。
図8によると、インターフェース画像Eに対応するモジュールが連携モジュール全体の始点であり、インターフェース画像Jに対応するモジュールが連携モジュール全体の終点である。
【0066】
図8による連携モジュールは以下のとおりである。最初に、インターフェース画像Eが示すモジュールが、連携モジュール全体の入力データを受け取り、当該入力データに基づいて処理を行う。当該処理による出力データがインターフェース画像F及びインターフェース画像Gに対応する各モジュールの入力データとなる。当該入力データに基づいてインターフェース画像F及びインターフェース画像Gが示す各モジュールの処理が行われる。当該各処理による各出力データがインターフェース画像H及びインターフェース画像Iに対応する各モジュールの入力データとなる。
【0067】
当該入力データに基づいてインターフェース画像Hが示すモジュールの処理が行われる。当該処理による出力データがインターフェース画像Iに対応するモジュールのもう一つの入力データとなる。2つの入力データに基づいてインターフェース画像Iが示すモジュールの処理が行われる。当該処理による出力データがインターフェース画像Jに対応するモジュールの入力データとなる。当該入力データに基づいてインターフェース画像Jが示すモジュールの処理が行われる。当該処理による出力データが連携モジュール全体の出力データとなる。
【0068】
図8におけるインターフェース画像133には以下のような例が挙げられる。インターフェース画像Eが示すモジュールは、インターフェース画像134にドラッグアンドドロップ操作されたファイルからテキスト情報を抽出する処理を行う。インターフェース画像Fが示すモジュールは、テキスト情報にあらかじめ指定したテキスト情報を付加する処理を行う。インターフェース画像G及びインターフェース画像Hが示すモジュールは、テキスト情報をインターネット上で検索し、その検索結果として得られるWebページをPDFファイル形式で取得する処理を行う。インターフェース画像Iが示すモジュールは、入力データとして受領した複数のPDFファイルを1つのPDFファイルに統合する処理を行う。インターフェース画像Jが示すモジュールは、入力データとして受領したファイルをプリンタで印刷する処理を行う。
【0069】
以上の各インターフェース画像が示すモジュールを連携させた連携モジュールを示すインターフェース画像には、以下の処理を行う連携プログラムが表示されることになる。すなわち、当該インターフェース画像に対してファイルをドラッグアンドドロップ操作すると、当該ファイルのテキスト情報及び当該テキスト情報にあらかじめ指定したテキスト情報を付加したテキスト情報について、インターネット上で検索を行い、その検索結果として得られる複数のWebページを一つのPDFファイルに統合したファイルをプリンタで印刷するという処理を行う。
【0070】
図9A及び
図9Bは、インターフェース画像に対応するモジュールに関する設定情報を変更させる際の画面例を示す模式図である。
図9Aは、テキスト情報にあらかじめ指定したテキスト情報を付加する処理を行うモジュールの例である。
図9Aを参照すると、ユーザによるインターフェース画像に対する指示入力に応じて、当該インターフェース画像に対応するモジュール又は連携モジュールに関する情報に格納された設定情報137及びその値138が表示される。
図9Aの例では、当該設定情報は「付加するテキスト」であり、その値は「テキスト」(カタカタ表記)である。
【0071】
当該値は、表示領域138に対する指示入力を受け付けることを通じて、当該指示入力により変更することが可能である。
図9Bを参照すると、当該値が、ユーザがキーボード115上のキーを押下することにより、
図9Aの「テキスト」(カタカタ表記)から「てきすと」(ひらがな表記)に変更して表示される。プロセッサ110は、設定情報の値を「テキスト」(カタカタ表記)から「てきすと」(ひらがな表記)に変更してメモリ113に記憶する。
【0072】
以上、本実施形態においては、ディスプレイ112に表示されたインターフェース画像と、他のインターフェース画像とを、ユーザの指示入力に応じて所定の関係性を形成するように表示する。そして、その関係性に応じて当該インターフェース画像に対応するモジュールと、他のインターフェース画像に対応するモジュールとを連携させて新たなモジュールを生成する。さらに、生成された新たなモジュールに対応するインターフェース画像をディスプレイ112に表示させ、当該インターフェース画像に対するユーザの指示入力に応じて、当該インターフェース画像に対応する連携モジュールの処理を実行する。したがって、ユーザの所望に応じて、多様なモジュールを組み合わせて、簡便に新たな連携モジュールを生成し、処理を実行することが可能となる。
【0073】
<その他の実施形態>
上記実施形態においては、連携させるモジュールに対応するインターフェース画像の選択及び配置を、ドラッグアンドドロップ操作によって行った。本実施形態では、ドラッグアンドドロップ操作に代えて、インターフェース画像の選択及び配置を、キーボードを用いて行う。具体的には、マウス116によって連携させるモジュールに対応するインターフェース画像が選択されると、キーボード115に備えられた特定のキー(例えば、Enterキー)の押下を検出することでそのインターフェース画像を連携用表示領域131に配置させる。このとき、他のキー(例えば、Shiftキー)を押下しながら連携させるモジュールが複数選択されたことが検出された場合には、その選択された順番を保持し、Enterキーの押下検出によって、その選択された順番で複数のモジュールを連携させることも可能である。
【0074】
以上、本実施形態においては、ディスプレイ112に表示されたインターフェース画像と、他のインターフェース画像とを、ユーザの指示入力に応じて所定の関係性を形成するように表示する。そして、その関係性に応じて当該インターフェース画像に対応するモジュールと、他のインターフェース画像に対応するモジュールとを連携させて新たなモジュールを生成する。さらに、生成された新たなモジュールに対応するインターフェース画像をディスプレイ112に表示させ、当該インターフェース画像に対するユーザの指示入力に応じて、当該インターフェース画像に対応する連携モジュールの処理を実行する。したがって、ユーザの所望に応じて、多様なモジュールを組み合わせて、簡便に新たな連携モジュールを生成し、処理を実行することが可能となる。
【0075】
本明細書で説明される処理及び手順は、実施形態において明示的に説明されたものによってのみならず、ソフトウェア、ハードウェア又はこれらの組み合わせによっても実現可能なものである。具体的には、本明細書で説明された処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明される処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【0076】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュール(ここでは、本明細書中で定義した前記モジュールに限らず、モジュール一般を指す)によって実行される旨が説明されたとしても、そのような処理又は手順は、複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は、複数のモジュールによって実行されるものとすることができる。また、本明細書中で説明されるデータ、テーブル又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル又はデータベースは、単一の装置に備えられた複数のメモリ又は複数の装置に分散して配置された複数のメモリに分散して格納されるものとすることができる。さらに、本明細書において説明されるソフトウェア及びハードウェアの要素は、それらをより少ない構成要素に統合して、又は、より多い構成要素に分解することによって実現されるものとすることができる。
【符号の説明】
【0077】
100 コンピュータシステム
110 プロセッサ
111 通信インターフェース
112 ディスプレイ
113 メモリ
114 入力インターフェース
115 キーボード
116 マウス