(57)【要約】【課題】送信側の端末と受信側の端末とにおいて互いに異なるフォーマットの制御データを利用する場合であっても、送受信した制御データを利用可能にすること【解決手段】本発明の一実施形態に係るプログラムは、第１のフォーマットの制御データを出力する第１の装置であって接続部に接続された第１の装置を識別するための識別情報を、第１のサーバに対して送信し、第１のサーバの応答として、第１のフォーマットの制御データを第２のフォーマットに変換するために必要な第１の変換用情報を受信し、第１の装置から出力される第１のフォーマットの制御データを、接続部を介して取得し、第１の変換用情報に基づいて、制御データを第１のフォーマットから前記第２のフォーマットに変換し、第２のサーバに対して、第２のフォーマットに変換した制御データを送信すること含む通信方法をコンピュータに実行させる。【選択図】図７
2017111614.tif 000002
【特許請求の範囲】
【請求項１】
指示の入力に応じて第１のフォーマットの制御データを出力する第１の装置であって接続部に接続された第１の装置を識別するための識別情報を、第１のサーバに対して送信し、
前記識別情報の送信に対する前記第１のサーバの応答として、前記第１のフォーマットの制御データを第２のフォーマットに変換するために必要な第１の変換用情報を受信し、
前記第１の装置から出力される前記第１のフォーマットの制御データを、前記接続部を介して取得し、
前記第１の変換用情報に基づいて、前記制御データを前記第１のフォーマットから前記第２のフォーマットに変換し、
受信した制御データを予め決められた端末に転送する第２のサーバに対して、前記第２のフォーマットに変換した制御データを送信する
こと含む通信方法をコンピュータに実行させるためのプログラム。
【請求項２】
前記通信方法は、
前記識別情報の送信に対する前記第１のサーバの応答として、当該識別情報に対応する前記第１の装置を所定のルールで分類した分類情報を受信すること
をさらに含み、
前記第２のサーバに送信される前記第２のフォーマットの制御データには、前記分類情報が関連付けられていることを特徴とする請求項１に記載のプログラム。
【請求項３】
供給された第１のフォーマットの制御データに応じて動作する第２の装置であって接続部に接続された第２の装置を識別するための識別情報を、第１のサーバに対して送信し、
前記識別情報の送信に対する前記第１のサーバの応答として、第２のフォーマットの制御データを前記第１のフォーマットに変換するために必要な第２の変換用情報を受信し、
他の端末から受信した第２のフォーマットの制御データを転送する第２のサーバから、当該第２のフォーマットの制御データを受信し、
前記第２のサーバから受信した前記第２のフォーマットの制御データを、前記第２の変換用情報に基づいて前記第１のフォーマットに変換し、
前記第１のフォーマットに変換された制御データを、前記接続部を介して前記第２の装置に供給する
こと含む通信方法
をコンピュータに実行させるためのプログラム。
【請求項４】
前記通信方法は、
前記識別情報の送信に対する前記第１のサーバの応答として、当該識別情報に対応する前記第２の装置を所定のルールで分類した分類情報を受信し、
前記分類情報が関連付けられて前記第２のサーバにおいて受信された前記制御データを、当該第２のサーバから受信する
ことをさらに含むことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記第２のサーバのアドレスは、前記第１のサーバによって指定されることを特徴とする請求項１乃至請求項４のいずれかに記載のプログラム。
【請求項６】
指示の入力に応じて第１のフォーマットの制御データを出力する第１の装置、または、供給された第１のフォーマットの制御データに応じて動作する第２の装置を識別するための識別情報を端末から受信し、
受信した前記識別情報が前記第１の装置を識別する場合には、前記第１のフォーマットの制御データを第２のフォーマットに変換するために必要な第１の変換用情報を送信し、当該識別情報が前記第２の装置を識別する場合には、前記第２のフォーマットの制御データを当該第１のフォーマットに変換するために必要な第２の変換用情報を前記端末に送信し、
前記第２のフォーマットの制御データを前記端末と他の端末との間で送受信する際に中継されるサーバのアドレスを、前記識別情報を送信した前記端末に送信する
ことを特徴とする通信方法。
【請求項７】
請求項６に記載の通信方法を実行する制御部を備えるサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置を制御するためのデータの送受信をする技術に関する。
【背景技術】
【０００２】
ネットワークを介して接続された端末間において、一方の端末から送信された制御データを他方の装置で受信して、所定の装置の制御に用いることが行われている。例えば、楽器演奏に伴う演奏操作に対応した制御データが一方の端末から他の端末に送信される。他の端末において受信した制御データは、他の端末において使用されて音源等の発音に用いられる。このような技術は、例えば、特許文献１、２に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１６５０７８号公報
【特許文献２】特開２０１３−４１０９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような制御データの送受信を行うときに、送信側の端末と受信側の端末とでは、共通のフォーマットの制御データが用いられる。例えば、特許文献１に開示された技術によれば、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）といわれる規格化されたフォーマットの制御データが用いられる。しかしながら、制御データを生成するための装置、および制御データによって制御される装置は、全てが同一のフォーマットを用いるとは限らない。そのため、上記のサービスを利用できるユーザが限られてしまっていた。
【０００５】
本発明の目的の一つは、送信側の端末と受信側の端末とにおいて互いに異なるフォーマットの制御データを利用する場合であっても、送受信した制御データを利用可能にすることにある。
【課題を解決するための手段】
【０００６】
本発明の一実施形態によると、指示の入力に応じて第１のフォーマットの制御データを出力する第１の装置であって接続部に接続された第１の装置を識別するための識別情報を、第１のサーバに対して送信し、前記識別情報の送信に対する前記第１のサーバの応答として、前記第１のフォーマットの制御データを第２のフォーマットに変換するために必要な第１の変換用情報を受信し、前記第１の装置から出力される前記第１のフォーマットの制御データを、前記接続部を介して取得し、前記第１の変換用情報に基づいて、前記制御データを前記第１のフォーマットから前記第２のフォーマットに変換し、受信した制御データを予め決められた端末に転送する第２のサーバに対して、前記第２のフォーマットに変換した制御データを送信すること含む通信方法をコンピュータに実行させるためのプログラムが提供される。
【０００７】
前記通信方法は、前記識別情報の送信に対する前記第１のサーバの応答として、当該識別情報に対応する前記第１の装置を所定のルールで分類した分類情報を受信することをさらに含み、前記第２のサーバに送信される前記第２のフォーマットの制御データには、前記分類情報が関連付けられていてもよい。
【０００８】
本発明の一実施形態によると、供給された第１のフォーマットの制御データに応じて動作する第２の装置であって接続部に接続された第２の装置を識別するための識別情報を、第１のサーバに対して送信し、前記識別情報の送信に対する前記第１のサーバの応答として、第２のフォーマットの制御データを前記第１のフォーマットに変換するために必要な第２の変換用情報を受信し、他の端末から受信した第２のフォーマットの制御データを転送する第２のサーバから、当該第２のフォーマットの制御データを受信し、前記第２のサーバから受信した前記第２のフォーマットの制御データを、前記第２の変換用情報に基づいて前記第１のフォーマットに変換し、前記第１のフォーマットに変換された制御データを、前記接続部を介して前記第２の装置に供給すること含む通信方法をコンピュータに実行させるためのプログラムが提供される。
【０００９】
前記通信方法は、前記識別情報の送信に対する前記第１のサーバの応答として、当該識別情報に対応する前記第２の装置を所定のルールで分類した分類情報を受信し、前記分類情報が関連付けられて前記第２のサーバにおいて受信された前記制御データを、当該第２のサーバから受信することをさらに含んでもよい。
【００１０】
前記第２のサーバのアドレスは、前記第１のサーバによって指定されてもよい。
【００１１】
本発明の一実施形態によると、指示の入力に応じて第１のフォーマットの制御データを出力する第１の装置、または、供給された第１のフォーマットの制御データに応じて動作する第２の装置を識別するための識別情報を端末から受信し、受信した前記識別情報が前記第１の装置を識別する場合には、前記第１のフォーマットの制御データを第２のフォーマットに変換するために必要な第１の変換用情報を送信し、当該識別情報が前記第２の装置を識別する場合には、前記第２のフォーマットの制御データを当該第１のフォーマットに変換するために必要な第２の変換用情報を前記端末に送信し、前記第２のフォーマットの制御データを前記端末と他の端末との間で送受信する際に中継されるサーバのアドレスを、前記識別情報を送信した前記端末に送信することを特徴とする通信方法が提供される。
【００１２】
前記識別情報に応じて特定される前記第１のフォーマットが前記第２のフォーマットと同じである場合に、前記第１の変換用情報または前記第２の変換用情報を送信する代わりに、当該第１のフォーマットと当該第２のフォーマットとが同じであることを示す情報を前記端末に送信してもよい。
【００１３】
受信した前記識別情報に応じた前記第１の装置または前記第２の装置を所定のルールで分類した分類情報を、当該識別情報を送信した前記端末に送信してもよい。
【００１４】
本発明の一実施形態によると、上記の通信方法を実行する制御部を備えるサーバが提供される。
【発明の効果】
【００１５】
本発明によれば、送信側の端末と受信側の端末とにおいて互いに異なるフォーマットの制御データを利用する場合であっても、送受信した制御データを利用可能にすることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態における通信システムの構成を示すブロック図である。
【図２】本発明の一実施形態における端末の構成を示すブロック図である。
【図３】本発明の一実施形態における端末の制御部によって実現される機能構成を示すブロック図である。
【図４】本発明の一実施形態におけるサービス提供テーブルの一例である。
【図５】本発明の一実施形態における変換テーブルの一例である。
【図６】本発明の一実施形態における端末設定処理を示す通信フローである。
【図７】本発明の一実施形態における制御データ送受信処理を示す通信フローである。
【図８】本発明の一実施形態における装置の分類に応じたＭＱＴＴサーバの動作の一例を説明する図である。
【図９】本発明の一実施形態における装置の分類に応じたＭＱＴＴサーバの動作の別の例を説明する図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態における通信システムについて、図面を参照しながら詳細に説明する。以下に示す実施形態は本発明の実施形態の一例であって、本発明はこれらの実施形態に限定して解釈されるものではない。なお、本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号（数字の後にＡ、Ｂ等を付しただけの符号）を付し、その繰り返しの説明は省略する場合がある。
【００１８】
＜実施形態＞
［概要］
一実施形態に係る通信システムは、端末およびサーバを備える。端末から制御データが送信され、他の端末において受信される。このとき、制御データは、サーバを介して端末間で送受信される。この例では、このサーバはＭＱＴＴ（Ｍｅｓｓａｇｅ  Ｑｕｅｕｅ  Ｔｅｌｅｍｅｔｒｙ  Ｔｒａｎｓｐｏｒｔ）技術を用いたブローカといわれる中継サーバ（以下、ＭＱＴＴサーバという）である。なお、各端末は、制御データの送受信を実行するために、事前に送受信の設定を行う。この設定は、各端末がＷｅｂサーバにアクセスすることによって実行される。
【００１９】
ユーザは、各端末に接続された制御装置に対して指示を入力する操作を行う。制御装置は入力された指示に応じて制御データを生成する。生成された制御データは、端末からＭＱＴＴサーバに送信され、ＭＱＴＴサーバから他の端末に転送される。制御データを受信した端末は、自端末に接続された被制御装置に制御データを供給する。被制御装置は、供給された制御データに応じて動作が制御される。これによって、ユーザは端末に接続された制御装置に対して指示を入力することによって、別の端末に接続された被制御装置を制御することができる。
【００２０】
この例では、制御装置が生成する制御データと、被制御装置の動作を制御するための制御データとは、フォーマットが異なっていてもよい。このような場合においても、制御データを用いて制御装置から被制御装置を制御できるようにするための通信システムを、以下に詳述する。
【００２１】
［通信システムの構成］
図１は、本発明の一実施形態における通信システムの構成を示すブロック図である。通信システム１は、端末１０、Ｗｅｂサーバ５０（第１のサーバ）およびＭＱＴＴサーバ８０（第２のサーバ）を備える。これらの各構成は、インターネット等のネットワークＮＷを介して接続されている。端末１０は、例えば、スマートフォン、パーソナルコンピュータ等の通信可能な装置であり、プログラムを実行することによって所定の機能を実現することができるコンピュータである。端末１０の構成についての詳細は後述する。
【００２２】
［ＭＱＴＴサーバ］
ＭＱＴＴサーバ８０は、上述したようにＭＱＴＴによって動作するサーバである。この例では、ＭＱＴＴサーバ８０は、端末１０から送信されてきたデータを、予め設定された端末１０に転送する。なお、ＭＱＴＴにおいては、パラメータ「トピック（Ｔｏｐｉｃ）」を用いて、データが転送される端末１０を特定する。
【００２３】
ＭＱＴＴでは、データを送信する端末１０を「パブリッシャ（Ｐｕｂｌｉｓｈｅｒ）」といい、データが転送される端末１０を「サブスクライバ（Ｓｕｂｓｃｒｉｂｅｒ）」という。ＭＱＴＴによれば、パブリッシャがメッセージ（例えば、制御データ）を所定のトピックを指定して送信すると、そのトピックに送信されたメッセージを受信するように設定されたサブスクライバに対して、ブローカ（ＭＱＴＴサーバ）がメッセージを転送する。なお、ＭＱＴＴは公知技術であるため、詳細の動作説明については省略する。
【００２４】
［端末のハードウエア構成］
図２は、本発明の一実施形態における端末の構成を示すブロック図である。端末１０は、制御部１１、記憶部１３、操作部１５、表示部１６、スピーカ１７、通信部１８および接続部１９を備える。これらの各構成はバスを介して接続されている。
【００２５】
制御部１１は、ＣＰＵなどの演算処理回路を含む。制御部１１は、記憶部１３に記憶されたプログラムをＣＰＵ（コンピュータ）により実行して、後述する通信処理を行うための機能を実現する。この機能を実現する構成の一部または全部は、プログラムの実行によってソフトウエアによって実現される場合に限られず、ハードウエアによって実現されてもよい。
【００２６】
記憶部１３は、不揮発性メモリ、ハードディスク等の記憶装置である。記憶部１３は、上述したプログラムなど、様々な機能を実現するためのアプリケーションプログラムを記憶する記憶領域、通信処理に用いられる設定情報（後述の変換用情報など）を記憶する記憶領域を含む。プログラムは、コンピュータにより実行可能であればよく、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶した状態で提供されてもよい。この場合には、端末１０は、記録媒体を読み取る装置を備えていてもよい。また、プログラムは、ネットワーク経由でダウンロードされてもよい。
【００２７】
操作部１５は、操作ボタン、キーボード、マウスなどの装置であり、ユーザによって入力された操作に応じた信号を制御部１１に出力する。表示部１６は、液晶ディスプレイ、有機ＥＬディスプレイ等の表示装置であり、制御部１１による制御に基づいた画面を表示する。なお、操作部１５と表示部１６とは一体としてタッチパネルを構成してもよい。スピーカ１７は、制御部１１による制御に基づいた音を出力する。通信部１８は、制御部１１の制御に基づいてネットワークに接続された外部の装置と通信をし、情報の送受信を行う。
【００２８】
接続部１９は、外部装置と接続して情報の送受信を行うためのインターフェイスである。接続部１９と外部装置との接続は有線であっても無線であってもよい。外部装置と有線で接続される場合には、接続部１９は、ケーブル等が接続されるコネクタである。外部装置と無線で接続される場合には、接続部１９は、例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等を用いた通信が可能な通信モジュールである。
【００２９】
図２においては、接続部１９に接続される装置の例が示されている。ここでは、鍵盤部２２と音源部２６とを備えた鍵盤楽器２０、センサ４０および照明部４５が接続部１９に接続される装置として例示されている。鍵盤部２２およびセンサ４０は、指示の入力に応じて制御データを出力する制御装置（第１の装置）の一例である。一方、音源部２６および照明部４５は、制御データによって動作が制御される被制御装置（第２の装置）の一例である。そのため鍵盤楽器２０は、全体として、制御装置と被制御装置とを含んでいる。
【００３０】
なお、上述した操作部１５は、端末１０の内部構成であるものの、操作信号が制御データに対応するものであるから、制御装置の一例として解釈することもできる。同様に、表示部１６およびスピーカ１７についても、制御部１１の制御によって動作するものであるから、被制御装置の一例として解釈することもできる。このように、接続部１９には、制御装置または被制御装置が接続可能であり、いずれか一方のみが接続される場合もある。
【００３１】
鍵盤部２２は、ユーザによる指示を演奏操作によって受け付ける鍵を有し、演奏操作に応じた信号を制御データとして出力する。音源部２６は、入力された制御データに応じた音波形を生成する。この制御データは、鍵盤部２２の演奏操作に応じて出力され信号に応じて生成されたものであってもよいし、接続部１９を介して外部から供給されたものであってもよい。この例では、生成された音波形は、鍵盤楽器２０が内蔵スピーカを備えている場合そのスピーカから音として出力されてもよいし、出力端子等から電気信号として出力されてもよい。
【００３２】
センサ４０は、例えば、加速度センサ、角速度センサなどのセンサ自体の挙動を検出するセンサであってもよいし、タッチセンサ、圧力センサ、光センサ、マイクロフォン、臭いセンサなど外部環境からの影響を検出するセンサであってもよい。センサ４０は、ユーザによる指示を検出可能な態様で受け付けて、検出結果を示す信号を制御データとして出力する。照明部４５は、ＬＥＤランプなどの照明機器であり、接続部１９を介して外部から供給された制御データに基づいて、照明のオンオフの切り替え、発光パターンなどを制御する。なお、上記の制御装置または被制御装置は、一例として示したものであり、他の制御装置または被制御装置が接続されていてもよいし、例示した装置が接続されていなくてもよい。以上が、端末１０のハードウエア構成についての説明である。
【００３３】
［端末のソフトウエア構成］
図３は、本発明の一実施形態における端末の制御部によって実現される機能構成を示すブロック図である。ここでは、上述したプログラムが制御部１１によって実行されることにより通信処理を行うための機能（通信機能１００）として実現された構成について説明する。
【００３４】
通信機能１００は、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）２１０、ＡＰＩ設定部２８０、識別情報取得部２９０、フォーマット変換部３１０およびフォーマット変換設定部３８０を含む。ＡＰＩ２１０は、制御装置または被制御装置と接続するためのソフトウエア上のインターフェイスである。ここでは、端末１０に含まれる制御装置または被制御装置、端末１０に接続された制御装置または被制御装置に対して、それぞれＡＰＩ２１５、２１６、２１７、２２１、２２６、２４０、２５０（それぞれを区別しない場合には、単にＡＰＩ２１０という）が設けられている。なお、関連性のある装置については、１つのＡＰＩでまとめられていてもよい。この場合には、例えば、ＡＰＩとともに使用されるパラメータで区別すればよい。
【００３５】
ＡＰＩ設定部２８０は、通信部１８を介してＷｅｂサーバ５０から取得した情報に基づいて、通信機能１００により実行される通信処理において各装置に対応したＡＰＩ２１０を使用するかしないかを設定する。識別情報取得部２９０は、ＡＰＩ２１０を介して接続されている装置を識別する情報（識別情報）を取得する。この識別情報は、通信部１８を介してＷｅｂサーバ５０に送信される。
【００３６】
フォーマット変換部３１０は、各ＡＰＩ２１０を介して取得した制御データのフォーマットを、設定された変換方法で別のフォーマットに変換して通信部１８に出力する。また、フォーマット変換部３１０は、通信部１８から取得した制御データのフォーマットを、設定された変換方法で別のフォーマットに変換して、被制御装置が接続されているＡＰＩ２１０（この例では、ＡＰＩ２１６、２１７、２２６、２５０）に提供する。この例では、通信部１８において受信される制御データとともにＡＰＩの指定がある場合には、指定されたＡＰＩに接続された被制御装置に制御データを提供する。なお、設定の内容によっては、フォーマットを変換せず、そのまま同じフォーマットで制御データを出力する場合もある。フォーマット変換設定部３８０は、通信部１８から取得した情報（変換用情報）に応じて、フォーマット変換部３１０において実行されるフォーマットの変換方法を、各ＡＰＩに対応して決定する。
【００３７】
［Ｗｅｂサーバ］
図１に戻って説明を続ける。Ｗｅｂサーバ５０は、制御部５１、記憶部５３および通信部５８を備える。制御部５１は、ＣＰＵなどの演算処理回路を含む。記憶部１３に記憶されたプログラムをＣＰＵにより実行して、後述する通信処理を行うための機能を実現する。通信部５８は、制御部５１の制御に基づいてネットワークに接続された外部の装置と通信をし、情報の送受信を行う。なお、記憶部５３の機能は、通信部５８において通信可能な外部装置で実現されてもよい。
【００３８】
記憶部５３は、ハードディスク等の記憶装置である。記憶部５３は、上述したプログラムなど、様々な機能を実現するためのアプリケーションプログラムを記憶する記憶領域、サービス提供テーブル、変換テーブル等の通信処理に対して端末１０に所定の設定をするために用いるテーブルを記憶する記憶領域を含む。
【００３９】
サービス提供テーブルは、ＭＱＴＴサーバ８０を用いた通信処理において使用可能なサービスと、各サービスにおいて利用可能な制御装置または被制御装置を特定するための情報とを対応付けている。変換テーブルは、装置を識別する情報、その装置が制御装置であるか被制御装置であるかを特定する情報、制御データのフォーマット変換方法、および装置の分類を対応付けている。
【００４０】
図４は、本発明の一実施形態におけるサービス提供テーブルの一例である。サービス提供テーブルでは、各サービスＡ、Ｂ、Ｃに対して、使用可能なＡＰＩ（図示ではＡａ、Ａｂ、Ａｃ・・・）が対応付けられている。この例では、利用可能な制御装置または被制御装置が、使用可能なＡＰＩにより特定されることになる。図４に示すサービス提供テーブルの例では、サービスＡであれば、ＡＰＩがＡａ、Ａｂで接続される制御装置または被制御装置が利用可能であることが示されている。
【００４１】
図５は、本発明の一実施形態における変換テーブルの一例である。変換テーブルでは、識別情報に対して、フォーマットの変換方法が対応付けられている。図５に示す変換テーブルの例では、識別情報ＡＡＡの装置であれば、フォーマットＡの制御データをフォーマットＧへ変換するための変換方法が対応付けられている。識別情報ＥＥＥについては、同じフォーマットＧのまま変換不要であるという方法が対応付けられている。識別情報ＦＦＦについては、フォーマットＧの拡張規格であるフォーマットＧ’をフォーマットＧに変換するための変換方法が対応付けられている。
【００４２】
なお、図５に示すように、識別情報に対応する装置が制御装置（入力）であるか被制御装置（出力）であるか、どのような装置の分類（装置の能力、種類等、所定のルールによる分類）に対応するかについて対応付けられていてもよい。図５に示す変換テーブルの例では、識別情報ＡＡＡの装置は、制御装置であり、分類ｇａであることが示されている。
【００４３】
識別情報ＡＡＡの装置は、フォーマットＡの制御データを出力する制御装置であるともいえる。そして、この制御装置からの出力される制御データは、この変換方法によって、上記のフォーマット変換部３１０において、フォーマットＡからフォーマットＧに変換されることになる。この例では、識別情報ＥＥＥのように変換を行わないという方法が対応付けられている場合、識別情報ＢＢＢのように制御装置と被制御装置とを備える装置では、それぞれに適用されるフォーマットの変換方法が対応付けられている場合もある。
【００４４】
図５の変換テーブルの例では、制御装置に対応する識別情報に対応する変換方法は、いずれも所定のフォーマットからフォーマットＧに変換される。一方、被制御装置に対応する識別情報に対応する変換方法は、いずれもフォーマットＧから所定のフォーマットに変換される。このように、フォーマットＧは、通信処理において共通に用いられるフォーマットであるともいえる。このフォーマットＧは、図５の例で示すように識別情報ＥＥＥに対応する装置において直接用いられるフォーマットであってもよい。また、フォーマットＧは、この通信処理において専用に用いられるフォーマットであってもよい。共通に用いられるフォーマットは、装置の分類毎に定められていてもよい。
【００４５】
なお、フォーマットには、例えば、鍵盤楽器２０等を想定したものであれば、ＭＩＤＩ形式、ＯＳＣ（Ｏｐｅｎ  Ｓｏｕｎｄ  Ｃｏｎｔｒｏｌ）形式等の制御のためのプロトコルに関するもの、音源に設定される音色の指定方法の規格（基本規格、拡張規格Ａ、拡張規格Ｂなど）などが例示される。基本規格と拡張規格という関係の場合、拡張規格を用いる被制御装置は基本規格のフォーマットのままの制御データを用いるようにしてもよいし、拡張規格に変換してから用いるようにしてもよい。いずれにするかを設定するためのインターフェイスをユーザに提供して、いずれかの変換方法を選択させてもよい。
【００４６】
［通信システムの動作］
続いて、上記の通信システム１において実行される通信処理による通信方法を説明する。通信処理は、大きく分けて端末設定処理と制御データ送受信処理とに分かれる。端末設定処理については図６を用いて説明する。制御データ送受信処理については図７を用いて説明する。
【００４７】
図６は、本発明の一実施形態における端末設定処理を示す通信フローである。端末１０とＷｅｂサーバ５０との通信は、例えば、ＨＴＴＰ方式で行われる。まず、端末１０は、ユーザによるサービスへ接続する要求の入力（ＵＲＬの指定などによる指示の入力）がある（ステップＳ１１０）と、サービスの接続要求をＷｅｂサーバ５０に送信する（ステップＳ１２０）。Ｗｅｂサーバ５０は、接続要求を受信すると、サービスの選択画面（Ｗｅｂページ）を生成して（ステップＳ１３０）、選択画面を端末１０に送信する（ステップＳ１４０）。この例では、様々な種類毎の制御データの送受信に応じて異なるサービスが選択肢として提供される。例えば、鍵盤楽器等で用いられる演奏に関する制御データの送受信を行うサービス（さらに曲の分野等で細分化されたサービスであってもよい）、照明装置の点灯に関する制御データの送受信を行うサービス等が選択肢として提供される。
【００４８】
端末１０は、サービス選択画面を表示し（ステップＳ１５０）、ユーザによってサービスの選択が入力されると、端末１０は、選択結果を送信する（ステップＳ１６０）。Ｗｅｂサーバ５０は、サービス提供テーブルを参照して、端末１０によって選択されたサービスに対応して使用可能なＡＰＩ（使用ＡＰＩ）を決定する（ステップＳ１７０）。Ｗｅｂサーバ５０は、使用ＡＰＩを特定するための情報を端末１０に送信する（ステップＳ１８０）。このような情報は、例えば、ＨＴＭＬ＋ＪａｖａＳｃｒｉｐｔ（登録商標）として送信される。
【００４９】
端末１０は、自身が使用可能なＡＰＩのうち、ユーザが選択したサービスにおいて使用するＡＰＩと使用しないＡＰＩとを、Ｗｅｂサーバ５０から受信した情報に基づいて設定する（ステップＳ１９０）。この設定は、上述のＡＰＩ設定部２８０によって行われる。
【００５０】
使用するＡＰＩを設定すると、端末１０は、そのＡＰＩに接続された装置を識別する識別情報を取得して、Ｗｅｂサーバ５０に送信する（ステップＳ２００）。Ｗｅｂサーバ５０は、変換テーブルを参照して、端末１０から受信した識別情報に対応する変換方法を決定し（ステップＳ２１０）、変換方法を特定するための変換用情報を、識別情報の送信に対する応答として端末１０に送信する（ステップＳ２２０）。端末１０は、変換用情報に基づいて、フォーマットの変換方法を設定する（ステップＳ２３０）。
【００５１】
具体的な一例を示す。端末１０から送信された識別情報が「ＡＡＡ」および「ＢＢＢ」である場合に、Ｗｅｂサーバ５０が端末１０に送信する変換用情報について説明する。図５に示す変換テーブルによれば、変換用情報は、「ＡＡＡ」に対応する変換方法（フォーマットＡからフォーマットＧへ変換）および「ＢＢＢ」に対応する変換方法（制御装置に対してフォーマットＣからフォーマットＧへ変換、被制御装置に対してフォーマットＧからフォーマットＣに変換）を特定するための情報を含む。これによって端末１０においては、フォーマット変換設定部３８０は、フォーマット変換部３１０に対して以下の設定を行う。
【００５２】
（１）識別情報「ＡＡＡ」に対応する装置（制御装置）が接続されたＡＰＩから出力される制御データを、フォーマットＡからフォーマットＧに変換して、通信部１８に出力する。
（２）識別情報「ＢＢＢ」に対応する装置（制御装置）が接続されたＡＰＩから出力される制御データを、フォーマットＣからフォーマットＧに変換して、通信部１８に出力する。
（３）通信部１８から取得した制御データを、フォーマットＧからフォーマットＣに変換して、識別情報「ＢＢＢ」に対応する装置（被制御装置）が接続されたＡＰＩに出力する。
【００５３】
上記の説明では、１つの端末１０について説明しているが、Ｗｅｂサーバ５０に接続した他の端末１０においても同様に、ユーザによって選択されたサービスに応じてＡＰＩに対する設定処理が実行される。以上が端末設定処理の説明である。続いて、制御データ送受信処理について説明する。
【００５４】
図７は、本発明の一実施形態における制御データ送受信処理を示す通信フローである。ここでは、３台の端末１０が同じサービスを選択して、制御データの送受信を実行する場合を想定する。この例では、制御データを送信するパブリッシャとなる端末１０を端末Ｐといい、制御データが送信されるサブスクライバとなる端末１０を端末Ｓ１、Ｓ２という。端末Ｐ、Ｓ１、Ｓ２は、予め決められたアドレスのＭＱＴＴサーバ８０にアクセスする。ＭＱＴＴサーバ８０のアドレスは、端末設定処理において端末１０がＷｅｂサーバ５０との間で通信をしている間のいずれかにおいて、Ｗｅｂサーバ５０から取得する。このアドレスは、例えば、変換用情報または使用ＡＰＩとともに送信されればよい。なお、ＭＱＴＴサーバ８０のアドレスは、端末１０において実行されるプログラムにおいて、予め規定されていてもよい。端末１０とＭＱＴＴサーバ８０との通信は、Ｗｅｂｓｏｃｋｅｔ方式で行われる。
【００５５】
まず、各端末は、ＭＱＴＴサーバ８０から転送を受けるデータを指定するために、ＭＱＴＴサーバ８０に対して転送設定を送信する（ステップＳ４１０）。転送設定は、ＭＱＴＴのパラメータ「Ｔｏｐｉｃ  Ｎａｍｅ」（以下単に「トピック」という）をＭＱＴＴサーバ８０に設定する。このようにすると、ＭＱＴＴサーバ８０は、制御データに付加されたトピックを設定した端末に、その制御データを転送することになる。すなわち、受信した制御データの転送先となる端末は、パラメータ「トピック」を用いて予めＭＱＴＴサーバ８０に対して設定されることになる。ここでは、このトピックは、ユーザが選択したサービスを識別する情報に対応するパラメータとして決められる。サービスを識別する情報は、端末設定処理において端末１０がＷｅｂサーバ５０との間で通信をしている間のいずれかにおいてＷｅｂサーバ５０から取得すればよく、例えば、変換用情報、使用ＡＰＩまたはＭＱＴＴサーバ８０のアドレスとともに送信されてもよい。なお、端末１０は、トピックを利用せずに、サービス毎に異なるＭＱＴＴサーバ８０を用いるように動作してもよい。この場合には、端末１０は、トピックに対応するパラメータをＷｅｂサーバ５０から取得するのではなく、サービスに対応したＭＱＴＴサーバ８０のアドレスを取得すればよい。
【００５６】
端末Ｐは、フォーマット変換部３１０においてＡＰＩ２１０を介して制御装置から制御データが取得されるのを待つ（ステップＳ４２０；Ｎｏ）。制御データを取得すると（ステップＳ４２０；Ｙｅｓ）、端末Ｐは、フォーマット変換部３１０において制御データのフォーマットを変換して（ステップＳ４３０）、ＭＱＴＴサーバ８０に送信する（ステップＳ４４０）。このとき、端末Ｐに接続された制御装置によって利用されるフォーマットの制御データは、フォーマット変換部３１０に予め設定された変換方法によって、共通のフォーマットであるフォーマットＧに変換されて端末Ｐから送信される。この制御装置が識別情報ＡＡＡに対応する装置であれば、制御データがフォーマットＡ（第１のフォーマット）からフォーマットＧ（第２のフォーマット）に変換されて送信される。さらに制御データには、ＭＱＴＴのパラメータ「トピック」が付加されている。
【００５７】
ＭＱＴＴサーバ８０は、端末Ｐから受信した制御データの転送先となる端末（この例では端末Ｓ１、Ｓ２）を特定し（ステップＳ４５０）、端末Ｓ１、Ｓ２にその制御データを転送する（ステップＳ４６０）。ここでは、制御データに付加されたトピックを参照して、転送される端末（この例では端末Ｓ１、Ｓ２）を特定する。なお、端末Ｓ２がＭＱＴＴサーバ８０に設定したトピックが別のパラメータであった場合には、制御データは、端末Ｓ１にのみ転送され、端末Ｓ２には転送されないことになる。
【００５８】
端末Ｓ１、Ｓ２においてフォーマットＧの制御データが受信されると、各端末のフォーマット変換部３１０は、予め設定された変換方法によって、フォーマットＧ（第２のフォーマット）から各端末に接続された被制御装置によって利用されるフォーマット（第１のフォーマット）に変換する（ステップＳ４７０）。この被制御装置が識別情報ＤＤＤに対応する装置であれば、制御データがフォーマットＧからフォーマットＤに変換される。なお、各端末において使用されるＡＰＩが複数である場合、それぞれのＡＰＩに接続された被制御装置に対応してフォーマットの変換が行われる。
【００５９】
フォーマット変換部３１０は、被制御装置に対応したフォーマットに変換した制御データを、その被制御装置が接続されたＡＰＩに供給する（ステップＳ４８０）。これによって、被制御装置は、制御データに応じた動作を行う。このようにして、端末Ｐに接続された制御装置において入力された指示は、端末Ｓ１、Ｓ２に接続された被制御装置に伝達される。このとき、制御装置と被制御装置とが異なるフォーマットの制御データを利用する場合であっても、事前に設定したフォーマットの変換方法により、ユーザは、フォーマットの違いを意識せずにサービスを利用することができる。
【００６０】
［装置の分類の適用］
上述した変換テーブルにおける「分類」が適用される場合、同一のサービスが選択された端末１０間であっても、制御データの送受信がされない場合がある。この場合には、識別情報に対応した分類についても変換用情報に含まれて、端末１０に送信される。端末１０は、制御データ送受信処理において、パラメータ「トピック」に分類を示す情報（分類情報）を含ませて同様の処理を行う。上述の例に適用すると、「トピック」には、ユーザが選択したサービスを識別する情報と、分類を示す情報とが含まれることになる。なお、トピックを用いることにより、制御データの送受信に対して様々なグループ化が可能となる。この例では、サービスの種類によって端末１０を単位としてグループ化され、分類情報によって端末１０において使用可能な装置を単位としてグループ化される。続いて、制御データの送受信について、具体例を用いて説明する。
【００６１】
図８は、本発明の一実施形態における装置の分類に応じたＭＱＴＴサーバの動作の一例を説明する図である。この例では端末Ａ、Ｂ、Ｃ、Ｄ、Ｅが同じサービスを選択した端末である。端末Ａ、Ｂには分類ｇａの装置が接続されている。端末Ｃ、Ｅには分類ｇｂの装置が接続されている。端末Ｄには分類ｇａ、ｇｂの装置が接続されている。このような状況において、端末Ａから制御データが出力された場合には、ＭＱＴＴサーバは、端末Ｂ、Ｄに転送する。一方、端末Ａと同じサービスを選択していたとしても、端末Ｃから制御データが出力された場合には、ＭＱＴＴサーバは、端末Ｄ、Ｅに転送する。ここで、端末Ｄにおいては、端末Ａから送信された制御データと端末Ｃから送信された制御データとが受信され、トピックに基づいて、それぞれの分類に応じた装置に制御データが供給される。
【００６２】
図９は、本発明の一実施形態における装置の分類に応じたＭＱＴＴサーバの動作の別の例を説明する図である。図８に示すように、同じサービスであれば１つのＭＱＴＴサーバを用いることも考えられるが、サービスを異ならせた場合と同様に、分類毎に別々のＭＱＴＴサーバにアクセスするようになっていてもよい。
【００６３】
＜変形例＞
以上、本発明の一実施形態について説明したが、本発明は以下のように、様々な態様で実施可能である。
【００６４】
（１）上述した実施形態では、変換用情報にフォーマットの変換方法が含まれて端末１０に送信され、変換方法がフォーマット変換部３１０に設定されていた。別の方法として、予め端末１０において実行されるプログラムに、様々な変換方法が用意されていてもよい。この場合には、ユーザに選択画面を提供してユーザにいずれの変換方法を使用するか指定されてもよい。また、変換用情報において選択すべき変換方法を指定する情報が含まれるようにしてもよい。すなわち、変換用情報は、変換方法そのものを示す情報を含んでいてもよいし、変換方法を指定する情報を含んでいてもよく、フォーマットを変換するために必要な情報であればどのような形式の情報であってもよい。
【００６５】
（２）制御データを転送するサーバは、ＭＱＴＴを用いていなくてもよく、すなわちＭＱＴＴサーバ８０でなくてもよい。例えば、制御データを転送するサーバは、パブリッシャの端末１０から受信した制御データをサブスクライバとなる特定の端末１０に送信するときに、制御データの送信先のＩＰアドレス（サーバのアドレス）を転送先の端末１０のＩＰアドレスに変換して送信するようなサーバを用いてもよい。このとき、識別情報に応じて転送先の端末１０のＩＰアドレスに変換してもよい。
【００６６】
（３）所定のサービスを選択したときに、使用可能なＡＰＩのうち端末１０において存在しないものがある場合（またはそのＡＰＩに装置が接続されていない場合）には、別の装置において代替処理ができるように、使用可能なＡＰＩに類似している別のＡＰＩを使用可能として、そのＡＰＩに接続された装置を代替して使用してもよい。例えば、被制御装置として照明装置が接続されていない場合に、表示部により代替することが一例として想定される。
【００６７】
（４）ＭＱＴＴサーバ８０は、端末１０に制御データを転送するときに、複数の端末１０において、同時に制御データによる被制御装置の動作が行われるようにしてもよい。この場合には、例えば、以下の処理を実行すればよい。まず、ＭＱＴＴサーバ８０は、端末１０が最初にアクセスしてきたときに、絶対時刻を互いに合わせる処理と、通信の遅延時間を測定する処理とを実行し、端末１０毎に遅延時間を記憶しておく。
【００６８】
端末Ｐから送信されてきた制御データに、複数の端末（例えば端末Ｓ１、Ｓ２）において同時に被制御装置を制御することを指示する情報が含まれている場合には、ＭＱＴＴサーバ８０は、転送する制御データに以下の情報を付加する。付加される情報は、被制御装置に制御データを供給する時刻（制御データの再生予約時刻）を示す情報である。この時刻は、端末Ｐからの制御データを受信した時刻から、同時に動作させる端末１０に対応する最も長い遅延時間を加算し、さらに予備時間を加算して決められる。なお、複数の端末は、同じサービスを選択した端末の全てであってもよいし、一部の端末であってもよい。一部の端末である場合には、トピックなどのパラメータによって指定される。
【００６９】
また、絶対時刻を互いに合わせる処理を行うのではなく、ＭＱＴＴサーバ８０が遅延時間に応じて端末への制御データの転送タイミングをずらして、遅延時間が長い端末１０に対しては、他の端末１０に対して相対的に早めに転送するように制御して、ほぼ同時刻に各端末に制御データが到達されるようにしてもよい。
【００７０】
（５）各端末１０において被制御装置が動作中であって動作を停止する指示を受信していない状況において、端末１０とＭＱＴＴサーバ８０との通信が切断された場合を想定して、予め所定時間の制御データの送受信がない場合には、動作を停止する指示を実行するようにしてもよい。これは、ＭＱＴＴでは、例えばパラメータ「ＷＩＬＬ」で実現できる。その際、被制御装置に対して動作停止指示またはリセット指示などを、制御部１１が接続部１９を介して行うようにしてもよい。
【００７１】
（６）上記の例では、端末１０と鍵盤楽器２０とは別の装置としていたが、電子ピアノ等の鍵盤楽器において端末１０において実現される機能を有するようにしてもよい。
【００７２】
（７）パブリッシャとなる端末１０は、ユーザによる制御装置への指示の入力によって制御データが送信されていたが、所定のプログラムによって自動的に制御装置に対して指示が入力された状況を想定して、その状況に応じた制御データが端末１０から送信されるようにしてもよい。なお、所定のプログラムによって既定またはランダムに生成されたメロディ、コード進行またはリズムパターン等が端末１０から送信されパブリッシャとして動作しているときであっても、端末１０はサブスクライバとしての動作をしてもよい。この場合、端末１０において既定以上の制御データがＭＱＴＴサーバ８０から受信された場合には、パブリッシャとしての上記の送信を停止してもよい。これによれば、ＭＱＴＴサーバ８０に何らかの接続がある状態を保つことができる。
【００７３】
（８）ＭＱＴＴサーバ８０は、パラメータ「トピック」を用いて、事前に選択されたサービス、装置の分類等に応じた転送先を設定して制御データを転送していたが、別の要素によって転送先を設定してもよい。例えば、端末１０の状況に応じてトピックを設定する。端末１０の状況は、例えば、加速度センサなどにより測定された端末１０の傾きであってもよいし、位置検出センサなどにより測定された端末１０の位置であってもよい。
【００７４】
（９）端末１０において、制御データの送受信を行っている他の端末１０との間でテキストメッセージ等の送受信をするためのインターフェイスが提供されるようにしてもよい。このインターフェイスは、例えば、「あなたは誰ですか？」といった定型文を容易に送信できるボタン等を含んでいてもよい。この場合の送信先は、直前または一定時間前から現在までの間に、制御データを送信した端末１０（パブリッシャ）に限定されてもよい。
【００７５】
（１０）上述した実施形態では、ＡＰＩを用いて制御装置および被制御装置と接続して制御データの送受信のインターフェイスとして用いていたが、ＡＰＩを用いなくてもよい。この場合には、Ｗｅｂサーバ５０から端末１０が受信するＨＴＭＬ＋ＪａｖａＳｃｒｉｐｔにおいてＡＰＩに相当する機能を実装するようにしてもよい。
【００７６】
（１１）端末１０から送信される識別情報は、空白での送信として、その値が省略されていてもよい。例えば、識別情報ＡＡＡがＷｅｂサーバ５０に送信される場合の例として、「http://www.***.com/page1.html?id=AAA」といった形式のメッセージが送信される場合を想定する。この場合には、識別情報の値が省略されると、送信されるメッセージは、「http://www.***.com/page1.html?id=」といった記述、または「http://www.***.com/page1.html」といった記述で送信される。これは、制御装置または被制御装置から識別情報が取得できない場合等に利用される。すなわち、特に、後者のように「id」直接的な記載が無くとも、端末１０からＷｅｂサーバ５０にメッセージが送信される処理そのものが識別情報を送信しているともいえる。なお、このような値が省略された識別情報に対応した変換方法（例えば、デフォルトのフォーマット）等が変換テーブルに登録されていてもよい。
【００７７】
（１２）フォーマットの変換は端末１０において実行されていたが、ネットワークＮＷを介して接続される外部装置（第３のサーバ）において実行されるようにしてもよい。この場合には、以下の通り例示される処理を行えばよい。
【００７８】
まず、端末１０からＭＱＴＴサーバ８０に送信される制御データの場合、端末１０は、外部装置に対してフォーマット変換前の制御データを送信し、外部装置は制御データのフォーマットを変換する。通常は、制御データのフォーマットは共通フォーマット（フォーマットＧ）に変換される。フォーマット変換後の制御データは、端末１０を介してＭＱＴＴサーバ８０に送信するようにしてもよいし、外部装置が端末１０を介さずにＭＱＴＴサーバ８０に送信するようにしてもよい。
【００７９】
一方、端末１０がＭＱＴＴサーバ８０から受信する制御データの場合、端末１０は、外部装置（第３のサーバ）に送信してフォーマットを変換させ、フォーマット変換後の制御データを外部装置から受信して、被制御装置に供給すればよい。このとき、外部装置には予め変換後のフォーマットを指定しておくことで、フォーマットＧの制御データは、指定されたフォーマットに変換される。
【００８０】
なお、一部のフォーマットについてのみ、外部装置で変換されるようにしてもよい。以上の制御については、例えば、Ｗｅｂサーバ５０から提供されるＪａｖａＳｃｒｉｐｔにおいて規定されていればよい。このようにすると、端末１０の処理能力が低い場合に、外部装置に処理の一部を代替することができる。
【符号の説明】
【００８１】
１…通信システム、１０…端末、１１…制御部、１３…記憶部、１５…操作部、１６…表示部、１７…スピーカ、１８…通信部、１９…接続部、２０…鍵盤楽器、２２…鍵盤部、２６…音源部、４０…センサ、４５…照明部、５０…Ｗｅｂサーバ、５１…制御部、５３…記憶部、５８…通信部、８０…ＭＱＴＴサーバ、１００…通信機能、２１０…ＡＰＩ、２８０…ＡＰＩ設定部、２９０…識別情報取得部、３１０…フォーマット変換部、３８０…フォーマット変換設定部
【図１】
2017111614.tif 000003
【図２】
2017111614.tif 000004
【図３】
2017111614.tif 000005
【図４】
2017111614.tif 000006
【図５】
2017111614.tif 000007
【図６】
2017111614.tif 000008
【図７】
2017111614.tif 000009
【図８】
2017111614.tif 000010
【図９】
2017111614.tif 000011