(57)【特許請求の範囲】
【請求項１】
イベントを受信するイベント受信手段と、チャネルドライバがメディアサーバを制御するタイミングとその制御内容と前記タイミングが時間および前記イベントの何れで規定されるかを示すタイミング種別とを含むスケジュールデータが複数記述された配信スケジュール情報を記憶する記憶装置と、前記配信スケジュール情報中の個々のスケジュールデータのタイミング成否をタイミング種別に応じて検出し、成立したタイミングに対応する制御内容に基づくシグナルを前記チャネルドライバに送信する処理装置とを備え、前記スケジュールデータは、前記チャネルドライバが前記メディアサーバを制御するタイミングに関するデータを記述するタイミング記述部と制御内容に関するデータを記述するコマンド記述部とをそれぞれ少なくとも１以上含み、且つ、前記タイミング記述部は、タイミングが時間およびイベントの何れで規定されるかを示すタイミング種別項目と、タイミングが時間で規定される場合には当該時間が設定され、タイミングがイベントで規定される場合には当該タイミングが成立する条件式が設定されるタイミングデータ項目とを含む同期制御サーバ。
【請求項２】
イベントを受信するイベント受信手段と、チャネルドライバがメディアサーバを制御するタイミングとその制御内容と前記タイミングが時間、前記イベント及び他のスケジュールにおけるタイミングの成立の何れで規定されるかを示すタイミング種別とを含むスケジュールデータが複数記述された配信スケジュール情報を記憶する記憶装置と、前記配信スケジュール情報中の個々のスケジュールデータのタイミング成否をタイミング種別に応じて検出し、成立したタイミングに対応する制御内容に基づくシグナルを前記チャネルドライバに送信する処理装置とを備え、前記スケジュールデータは、前記チャネルドライバが前記メディアサーバを制御するタイミングに関するデータを記述するタイミング記述部と制御内容に関するデータを記述するコマンド記述部とをそれぞれ少なくとも１以上含み、且つ、前記タイミング記述部は、タイミングが時間、イベント及び他のタイミング記述部のタイミングの成立の何れで規定されるかを示すタイミング種別項目と、タイミングが時間で規定される場合には当該時間が設定され、タイミングがイベントで規定される場合には当該タイミングが成立する条件式が設定され、タイミングが他のタイミング記述部のタイミングの成立で規定される場合には当該他のタイミング記述部を識別する情報が設定されるタイミングデータ項目とを含む同期制御サーバ。
【請求項３】
前記処理装置は、タイミングが時間で規定されるタイミング記述部のタイミング成否を検出する第１のタイミング制御手段と、タイミングがイベントで規定されるタイミング記述部のタイミング成否を検出する第２のタイミング制御手段と、タイミングの成立したタイミング記述部に対応するコマンド記述部を蓄積する待ち行列と、前記待ち行列に蓄積されたコマンド記述部に従ってシグナルを生成しネットワーク経由で前記チャネルドライバに送信する配信制御手段とを含む請求項１記載の同期制御サーバ。
【請求項４】
前記処理装置は、タイミングが時間で規定されるタイミング記述部のタイミング成否を検出する第１のタイミング制御手段と、タイミングがイベントで規定されるタイミング記述部のタイミング成否を検出する第２のタイミング制御手段と、タイミングが他のタイミング記述部のタイミングの成立で規定されるタイミング記述部のタイミング成否を検出する第３のタイミング制御手段と、タイミングの成立したタイミング記述部に対応するコマンド記述部を蓄積する待ち行列と、前記待ち行列に蓄積されたコマンド記述部に従ってシグナルを生成しネットワーク経由で前記チャネルドライバに送信する配信制御手段とを含む請求項２記載の同期制御サーバ。
【請求項５】
前記タイミング記述部は、スケジュール開始、スケジュール終了、アクション実行タイミングの何れかを示す動作ポイント項目を有し、前記コマンド記述部は、スケジュール開始、スケジュール終了、アクション実行タイミングの何れかを示す実行ポイント項目を有し、前記処理装置は、１つのスケジュールデータ中の或るタイミング記述部のタイミングが成立したとき、同じスケジュールデータ中に存在するコマンド記述部のうち、実行ポイント項目の内容が前記タイミングの成立したタイミング記述部の動作ポイント項目と同じ内容のコマンド記述部を全て処理するものである請求項３または４記載の同期制御サーバ。
【請求項６】
前記タイミング記述部は、タイミングの成立を遅延させる第１の遅延時間を設定する項目を含む請求項５記載の同期制御サーバ。
【請求項７】
前記コマンド記述部は、シグナルの実行を遅延させる第２の遅延時間を設定する項目を含む請求項５記載の同期制御サーバ。
【請求項８】
前記処理装置は、タイミングの成立したタイミング記述部に対応するコマンド記述部に、タイミング成立時刻に前記第２の遅延時間を加算した時刻を実行時間として付与して前記待ち行列に蓄積するものであり、前記配信制御手段は、コマンド記述部に付与された実行時間の一定時間前に当該コマンド記述部に付与された実行時間を指定したシグナルを前記チャネルドライバに先行配信するものである請求項７記載の同期制御サーバ。
【請求項９】
前記配信制御手段は、送信するシグナルに一意な識別子を付与して送信し、スケジュールの中止、中断、再開が指示されたとき、先行配信したシグナルの識別子を指定して前記チャネルドライバに対して先行配信したシグナルの中止、中断、再開の命令を送信するものである請求項８記載の同期制御サーバ。
【請求項１０】
前記条件式は、タイミングが成立する要件となる変数評価式であり、前記変数評価式は、前記イベントが発生したときに所定の変数演算式によって変更される変数を含む請求項１乃至９の何れか１項に記載の同期制御サーバ。
【請求項１１】
前記記憶装置は、前記変数の変数名、初期値及び変動値を含む変数データと、イベントのＩＤ及び変数演算式を含むイベント処理データとを記憶するものであり、且つ、前記イベント受信手段は、受信したイベントのＩＤと同じＩＤを持つ前記イベント処理データ中の変数演算式を実行して前記変数データの変動値を更新するものである請求項１０記載の同期制御サーバ。
【請求項１２】
前記記憶装置は、前記変数の変数名、初期値及び変動値を含む変数データを記憶するものであり、且つ、前記配信スケジュール情報は、前記変数データの変動値を更新する変数演算式を記述したコマンド記述部を有するスケジュールデータを含み、且つ、前記変数演算式を記述したコマンド記述部をそれに対応するタイミング記述部のタイミング成立に応答して実行するコマンド処理手段を備える請求項１０記載の同期制御サーバ。
【請求項１３】
前記シグナルは、前記チャネルドライバが処理を実行すべき時刻と、前記チャネルドライバが処理すべき制御内容を特定する抽象化された情報とを含んで構成され、前記チャネルドライバに対し、指定された時刻が到来したときに、前記抽象化された情報で特定されるアプリケーション処理を実行させることによって前記メディアサーバを制御するものである請求項１乃至９の何れか１項に記載の同期制御サーバ。
【請求項１４】
前記抽象化された情報は、シグナルＩＤおよび引数で構成される請求項１３記載の同期制御サーバ。
【請求項１５】
前記イベント受信手段は、ユーザインタフェイスで発生したイベントまたは外部システムで発生したイベントの少なくとも一方で発生したイベントのＩＤを受信するものである請求項１乃至９の何れか１項に記載の同期制御サーバ。
【請求項１６】
前記イベント受信手段は、前記メディアサーバで発生したイベントのＩＤを受信するものである請求項１乃至９の何れか１項に記載の同期制御サーバ。
【請求項１７】
制御タイミングが時間及びイベントの何れかで規定されたスケジュールデータを含む配信スケジュール情報に従って各メディアサーバがコンテンツを配信する動作の制御を行う同期制御サーバからネットワーク経由で先行配信されてきたシグナルであってメディアサーバの制御内容、実行時間およびＩＤを含むシグナルを記憶する記憶装置と、実行時間になったシグナルを検出し、前記メディアサーバの制御を行うメディアサーバ制御装置に対して前記検出したシグナルに基づく処理を行わせる動作装置であって、前記同期制御サーバからネットワーク経由でＩＤを指定したシグナルの中止命令、中断命令を受信したとき、指定されたＩＤを持つシグナルを中止状態、中断状態とする動作装置とを含むチャネルドライバ。
【請求項１８】
前記動作装置は、中断命令を受信した後に前記同期制御サーバからネットワーク経由でＩＤおよび繰り下げ時間を指定したシグナルの再開命令を受信したとき、指定されたＩＤを持つシグナルの実行時間を前記指定された繰り下げ時間だけ繰り下げて中断状態を解除するものである請求項１７記載のチャネルドライバ。
【請求項１９】
コンピュータを、イベントを受信するイベント受信手段、チャネルドライバがメディアサーバを制御するタイミングとその制御内容と前記タイミングが時間および前記イベントの何れで規定されるかを示すタイミング種別とを含むスケジュールデータが複数記述された配信スケジュール情報を記憶する記憶装置に記憶された前記配信スケジュール情報中の個々のスケジュールデータのタイミング成否をタイミング種別に応じて検出し、成立したタイミングに対応する制御内容に基づくシグナルを前記チャネルドライバに送信する処理手段、として機能させるプログラムであって、前記スケジュールデータは、前記チャネルドライバが前記メディアサーバを制御するタイミングに関するデータを記述するタイミング記述部と制御内容に関するデータを記述するコマンド記述部とをそれぞれ少なくとも１以上含み、且つ、前記タイミング記述部は、タイミングが時間およびイベントの何れで規定されるかを示すタイミング種別項目と、タイミングが時間で規定される場合には当該時間が設定され、タイミングがイベントで規定される場合には当該タイミングが成立する条件式が設定されるタイミングデータ項目とを含むプログラム。
【請求項２０】
前記処理手段は、タイミングが時間で規定されるタイミング記述部のタイミング成否を検出する第１のタイミング制御手段と、タイミングがイベントで規定されるタイミング記述部のタイミング成否を検出する第２のタイミング制御手段と、タイミングの成立したタイミング記述部に対応するコマンド記述部を蓄積する待ち行列に蓄積されたコマンド記述部に従ってシグナルを生成しネットワーク経由で前記チャネルドライバに送信する配信制御手段とを含む請求項１９記載のプログラム。
【請求項２１】
コンピュータを、イベントを受信するイベント受信手段、チャネルドライバがメディアサーバを制御するタイミングとその制御内容と前記タイミングが時間、前記イベント及び他のスケジュールにおけるタイミングの成立の何れで規定されるかを示すタイミング種別とを含むスケジュールデータが複数記述された配信スケジュール情報を記憶する記憶装置に記憶された前記配信スケジュール情報中の個々のスケジュールデータのタイミング成否をタイミング種別に応じて検出し、成立したタイミングに対応する制御内容に基づくシグナルを前記チャネルドライバに送信する処理手段、として機能させるプログラムであって、前記スケジュールデータは、前記チャネルドライバが前記メディアサーバを制御するタイミングに関するデータを記述するタイミング記述部と制御内容に関するデータを記述するコマンド記述部とをそれぞれ少なくとも１以上含み、且つ、前記タイミング記述部は、タイミングが時間、イベント及び他のタイミング記述部のタイミングの成立の何れで規定されるかを示すタイミング種別項目と、タイミングが時間で規定される場合には当該時間が設定され、タイミングがイベントで規定される場合には当該タイミングが成立する条件式が設定され、タイミングが他のタイミング記述部のタイミングの成立で規定される場合には当該他のタイミング記述部を識別する情報が設定されるタイミングデータ項目とを含むプログラム。
【請求項２２】
前記処理手段は、タイミングが時間で規定されるタイミング記述部のタイミング成否を検出する第１のタイミング制御手段と、タイミングがイベントで規定されるタイミング記述部のタイミング成否を検出する第２のタイミング制御手段と、タイミングが他のタイミング記述部のタイミングの成立で規定されるタイミング記述部のタイミング成否を検出する第３のタイミング制御手段と、タイミングの成立したタイミング記述部に対応するコマンド記述部を蓄積する待ち行列に蓄積されたコマンド記述部に従ってシグナルを生成しネットワーク経由で前記チャネルドライバに送信する配信制御手段とを含む請求項２１記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は映像や音声、ＨＴＭＬページ等のマルチメディアコンテンツをメディアサーバからクライアントに配信するシステムに関し、特に配信スケジュールの管理技術に関する。
【０００２】
【従来の技術】
この種のスケジュール管理には、例えば特開平１１−２１５１９３号公報（文献１）に見られるように、クライアント側にスケジュール情報（同公報ではシナリオ）を持たせ、複数のサーバから提供されるコンテンツの再生順序等を配信先で制御する方式と、例えば特開平１１−８８２７９号公報（文献２）に見られるように、複数のサーバにネットワーク接続されたスケジュール管理用のサーバ（同公報ではインデックスサーバ）にスケジュール情報を持たせ、配信元でスケジュールを管理する方式とが存在する。本発明は、後者のように配信元で配信スケジュールを管理する際のスケジュール管理技術に関する。
【０００３】
図１８に文献２で提案されている放送システムのブロック図を示す。この放送システムでは、ディストリビュータ（配信事業者）のインデックスサーバ２１と複数の情報サーバ２５Ａ〜２５Ｄと複数のクライアント端末２９Ａ、２９Ｂとがネットワーク２３を介して通信可能に接続される。インデックスサーバ２１には、ディストリビュータの提供する複数の放送チャンネルＣＨ１、ＣＨ２の各々について、それぞれ独立に、放送される複数の番組とその放送時間を規定した放送スケジュール３１Ａ、３１Ｂが格納されており、個々の情報サーバ２５Ａ〜２５Ｄには、各コンテンツ事業者が作成した番組コンテンツのファイル３３Ａ〜３３Ｆが格納されている。インデックスサーバ２１は、各チャンネルＣＨ１、ＣＨ２の放送スケジュール３１Ａ、３１Ｂに従って、各番組を規定された放送時間に各チャンネルへ放送するよう、各番組コンテンツを保有している情報サーバ２５Ａ〜２５Ｄに要求する。具体的には、各情報サーバに対して、その情報サーバが担当する番組を、どのチャンネル番号へ何時に放送開始せよ又は即時に放送開始せよという放送開始指示と、何時に放送終了せよ又は即時に放送終了せよという放送終了指示とを送信する。各情報サーバ２５Ａ〜２５Ｄは、インデックスサーバ２１からの要求に従い、各々の保有する番組データファイル３３Ａ〜３３Ｆのデータを指定された放送時間にネットワーク２３の指定されたチャンネルに送出する。具体的には、放送開始指示を受けたときには、その指示に従って、対象の番組のコンテンツデータを番組ファイルから読み込み、これを指定されたチャンネルへ、指定された開始時刻から放送を開始し、放送終了指示を受けたときには、その指示に従って、対象の番組の放送を指定された終了時刻に終了する。このような動作により、ネットワーク２３上には、各チャンネルＣＨ１、ＣＨ２毎に、それぞれの放送スケジュール３１Ａ、３１Ｂに従った番組コンテンツが連結したマルチメディアデータストリーム３５Ａ、３５Ｂが形成される。
【０００４】
【発明が解決しようとする課題】
文献２に記載される放送システムでは、前述したように配信スケジュールを時間で管理している。このようなスケジュール管理は、テレビ放送スタジオなどで従来から行われていたものをそのまま踏襲したものであり、サーバからクライアントへデータストリームを配信するサービスには有効な方法の１つを言える。
【０００５】
しかし、時間だけでスケジュールを管理するためには、各コンテンツの配信時間を事前に決めておく必要があり、配信時間が事前に決まらないコンテンツはスケジュールできない。例えば、映像や音声の配信を行っている最中に或るイベント（事象）が生じたときに別の映像や音声の配信に切り替えたり、切り替えずとも別の種類の情報を並行して配信したい場合、そのイベントが発生する時間が事前に予測できないと文献２記載の技術ではスケジュールすることはできない。
【０００６】
また、最近においてＴＶ放送とインターネットのホームページとを連動させてユーザ参加型の番組を提供する双方向サービスシステムなど、コンテンツの新しい配信形態が続々と現れている。このようなシステムで、例えばユーザに対してリアルタイムに実施するアンケートの結果に基づいてスケジュールを変更したい場合、アンケートの回答が何時までに得られるかや、アンケート結果がどのようになるかは事前に予測できないため、時間だけによるスケジュール管理では実現は困難である。勿論、テレビ放送スタジオなどで行われているように或るイベントが発生した場合にスケジュール情報を書き換えることで対処することも考えられるが、スケジュール情報の書き換えには多くの労力と時間を要し、迅速なスケジュール変更は困難である。
【０００７】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、時間だけでなくイベントによっても配信スケジュールを立てることのできる新規なスケジュール管理技術を提供することにある。
【０００８】
【課題を解決するための手段】
本発明の同期制御サーバは、イベントを受信するイベント受信手段と、チャネルドライバがメディアサーバを制御するタイミングとその制御内容と前記タイミングが時間、前記イベント、更に好ましくは他のスケジュールにおけるタイミングの成立の何れで規定されるかを示すタイミング種別とを含むスケジュールデータが複数記述された配信スケジュール情報を記憶する記憶装置と、前記配信スケジュール情報中の個々のスケジュールデータのタイミング成否をタイミング種別に応じて検出し、成立したタイミングに対応する制御内容に基づくシグナルを前記チャネルドライバに送信する処理装置とを備えている。
【０００９】
より具体的には、前記スケジュールデータは、前記チャネルドライバが前記メディアサーバを制御するタイミングに関するデータを記述するタイミング記述部と制御内容に関するデータを記述するコマンド記述部とをそれぞれ少なくとも１以上含み、且つ、前記タイミング記述部は、タイミングが時間、イベント及び他のタイミング記述部のタイミングの成立の何れで規定されるかを示すタイミング種別項目と、タイミングが時間で規定される場合には当該時間が設定され、タイミングがイベントで規定される場合には当該タイミングが成立する条件式が設定され、タイミングが他のタイミング記述部のタイミングの成立で規定される場合には当該他のタイミング記述部を識別する情報が設定されるタイミングデータ項目とを含んでいる。また、前記処理装置は、タイミングが時間で規定されるタイミング記述部のタイミング成否を検出する第１のタイミング制御手段と、タイミングがイベントで規定されるタイミング記述部のタイミング成否を検出する第２のタイミング制御手段と、タイミングが他のタイミング記述部のタイミングの成立で規定されるタイミング記述部のタイミング成否を検出する第３のタイミング制御手段と、タイミングの成立したタイミング記述部に対応するコマンド記述部を蓄積する待ち行列と、前記待ち行列に蓄積されたコマンド記述部に従ってシグナルを生成しネットワーク経由で前記チャネルドライバに送信する配信制御手段とを含んでいる。
【００１０】
このように、タイミングが時間、イベント、他のスケジュールにおけるタイミングの成立の何れで規定されるかを示すタイミング種別をスケジュールデータに含ませ、配信スケジュール情報中の個々のスケジュールデータのタイミング成否をタイミング種別に応じて検出することにより、時間だけでなく、イベントや他のスケジュールとの関係で配信スケジュールを立てることができる。
【００１１】
また、前記タイミング記述部は、スケジュール開始、スケジュール終了、アクション実行タイミングの何れかを示す動作ポイント項目を有し、前記コマンド記述部は、スケジュール開始、スケジュール終了、アクション実行タイミングの何れかを示す実行ポイント項目を有し、前記処理装置は、１つのスケジュールデータ中の或るタイミング記述部のタイミングが成立したとき、同じスケジュールデータ中に存在するコマンド記述部のうち、実行ポイント項目の内容が前記タイミングの成立したタイミング記述部の動作ポイント項目と同じ内容のコマンド記述部を全て処理するようにしている。これにより、或るスケジュールのタイミングが成立すると、複数のコマンドを実行して複数のチャネルに同時にシグナルを発行し、複数のチャネルで流すコンテンツを同期して変更する如きチャネル連携が可能となる。
【００１２】
また、前記タイミング記述部は、タイミングの成立を遅延させる第１の遅延時間を設定する項目を含んでいて良い。これにより、そのタイミング記述部の動作ポイント項目と同じ内容の実行ポイント項目を持つ複数のコマンド記述部すべてに対して一括して遅延時間を付与することが可能となる。
【００１３】
また、前記コマンド記述部は、シグナルの実行を遅延させる第２の遅延時間を設定する項目を含んでいて良い。これにより、或るスケジュールのタイミングが成立したとき、複数のコマンドを実行して複数のチャネルにそれぞれ異なる実行時間を指定したシグナルを発行することができ、複数のチャネルで流すコンテンツを時間をずらして変更する如きチャネル連携が可能となる。
【００１４】
同期制御サーバとチャネルドライバとはインターネット等のネットワーク経由で接続されているため、正確な時刻にシグナルに基づく制御をチャネルドライバ側で実行させるためには、シグナルを先行配信しておく必要がある。この場合、前記処理装置は、タイミングの成立したタイミング記述部に対応するコマンド記述部に、タイミング成立時刻に前記第２の遅延時間を加算した時刻を実行時間として付与して前記待ち行列に蓄積するものであり、前記配信制御手段は、コマンド記述部に付与された実行時間の一定時間前に当該コマンド記述部に付与された実行時間を指定したシグナルを前記チャネルドライバに先行配信する。これにより、イベントで規定するスケジュールや、他のスケジュールに連動するスケジュールにかかるシグナルも先行配信することが可能となる。
【００１５】
また、前記配信制御手段は、送信するシグナルに一意な識別子を付与して送信し、スケジュールの中止、中断、再開が指示されたとき、先行配信したシグナルの識別子を指定して前記チャネルドライバに対して先行配信したシグナルの中止、中断、再開の命令を送信するようにして良い。これにより、先行配信されてしまったシグナルも含めてスケジュールの中止、中断、再開が可能となる。
【００１６】
本発明において、前記条件式は、タイミングが成立する要件となる変数評価式とすることができる。ここで、前記変数評価式は、所定のイベントが発生したときに所定の変数演算式によって変更される変数を含む式である。これにより、或る１つのイベントが所定回数発生したことや、或る複数のイベントがそれぞれ所定回発生したこと等、イベントの発生状況の任意の組み合わせの成立を契機にチャネルドライバがメディアサーバを制御するスケジュールを立てることができる。この場合、前記記憶装置は、前記変数の変数名、初期値及び変動値を含む変数データと、イベントのＩＤ及び変数演算式を含むイベント処理データとを記憶するものであり、且つ、前記イベント受信手段は、受信したイベントのＩＤと同じＩＤを持つ前記イベント処理データ中の変数演算式を実行して前記変数データの変動値を更新するものとして構成される。
【００１７】
また、前記配信スケジュール情報は、前記変数データの変動値を更新する変数演算式を記述したコマンド記述部を有するスケジュールデータを含み、且つ、前記変数演算式を記述したコマンド記述部をそれに対応するタイミング記述部のタイミング成立に応答して実行するコマンド処理手段を備えるようにしても良い。これにより、変数を外部から入力されるイベントでなく、事前のスケジュールに従って変更して当該イベントで規定されたスケジュールを駆動することも可能となる。
【００１８】
本発明において、前記シグナルは、前記チャネルドライバが処理を実行すべき時刻と、前記チャネルドライバが処理すべき制御内容を特定する抽象化された情報（例えばシルナルＩＤと引数）とを含んで構成され、前記チャネルドライバに対し、指定された時刻が到来したときに、前記抽象化された情報で特定されるアプリケーション処理を実行させることによって前記メディアサーバを制御する。これにより、チャネルドライバがメディアサーバを制御するための情報を、シグナルのプロトコル及び同期制御サーバの基本処理から分離でき、メディアサーバの制御方式の変更が容易となる。
【００１９】
本発明において、前記イベント受信手段は、ユーザインタフェイスで発生したイベントまたは外部システムで発生したイベントの少なくとも一方で発生したイベントのＩＤを受信するものとして構成して良い。これにより、システム管理者が入力するイベントや、同期制御サーバに接続された外部システムから入力されたイベントによるスケジュールの駆動が可能となる。
【００２０】
また、前記イベント受信手段は、前記メディアサーバで発生したイベントのＩＤを受信するものとして構成して良い。これにより、メディアサーバが行った実行結果に基づいたイベントを契機に、他のチャネルを制御するスケジュールを駆動するといった如きチャネル連携が可能となる。
【００２１】
また、本発明のチャネルドライバは、制御タイミングが時間及びイベントの何れかで規定されたスケジュールデータを含む配信スケジュール情報に従って各メディアサーバがコンテンツを配信する動作の制御を行う同期制御サーバからネットワーク経由で先行配信されてきたシグナルであってメディアサーバの制御内容、実行時間およびＩＤを含むシグナルを記憶する記憶装置と、実行時間になったシグナルを検出し、前記メディアサーバの制御を行うメディアサーバ制御装置に対して前記検出したシグナルに基づく処理を行わせる動作装置とを含んで構成される。前記動作装置は、前記同期制御サーバからネットワーク経由でＩＤを指定したシグナルの中止命令、中断命令を受信したとき、指定されたＩＤを持つシグナルを中止状態、中断状態とする。また、前記動作装置は、中断命令を受信した後に前記同期制御サーバからネットワーク経由でＩＤおよび繰り下げ時間を指定したシグナルの再開命令を受信したとき、指定されたＩＤを持つシグナルの実行時間を前記指定された繰り下げ時間だけ繰り下げて中断状態を解除する。更に、前記メディアサーバで発生したイベントに対応するイベントＩＤをネットワーク経由で前記同期制御サーバに送信する通信装置を備えるようにしても良い。
【００２３】
【発明の実施の形態】
次に本発明の実施の形態の例について図面を参照して詳細に説明する。
【００２４】
図１を参照すると、同期制御サーバ１０００は、２種類のイベント発生装置Ａ、Ｂ（１１０１、１１０２）と、スケジュール編集装置１４０１と、操作卓１８０１と、インターネット等のネットワーク１５０１とに接続されている。他方、複数のクライアント端末１６０１、１６０２に対して映像や音声、ＨＴＭＬページなど各種メディアのコンテンツを放送電波あるいはインターネット等の図示しないネットワークにより別々のチャネルで配信する複数のメディアサーバＡ、Ｂ、…、Ｎ（１３０１〜１３０３）が地理的に分散して存在し、各メディアサーバ１３０１〜１３０３の近くに設置したチャネルドライバＡ、Ｂ、…、Ｎ（１２０１〜１２０３）によって制御可能になっている。そして、これらのチャネルドライバ１２０１〜１２０３がネットワーク１５０１を通じて同期制御サーバ１０００と相互に通信可能に接続されている。図１では、１つのチャネルドライバが１つのメディアサーバを制御しているが、１つのチャネルドライバが複数のメディアサーバを制御する構成や、１つのメディアサーバが複数のチャネルドライバによって制御される構成も考えられる。
【００２５】
同期制御サーバ１０００は、スケジュール編集装置１４０１によって編集された配信スケジュールに従ってチャネルドライバ１２０１〜１２０３に対してシグナルと呼ぶ信号を送出することにより、各チャネルドライバ１２０１〜１２０３を制御でき、従って各メディアサーバ１３０１〜１３０３からクライアント端末１６０１、１６０２へのコンテンツの配信を集中的に制御できるようになっている。この際、スケジュール編集装置１４０１によって編集される配信スケジュール情報には、チャネルドライバ１２０１〜１２０３がメディアサーバ１３０１〜１３０３を制御するタイミングを時間で規定した制御データ、イベントで規定した制御データ及び他の制御データにおける制御タイミングの成立で規定する制御データを含んでおり、時間だけでなく、イベントや他のスケジュールに連動したスケジュール管理が行えるようになっている。
【００２６】
スケジュールを起動するイベントを特定する識別子（イベントＩＤ）は、本実施の形態では、イベント発生装置１１０１およびイベント発生装置１０１２から同期制御サーバ１０００へ送信されてくる。イベント発生装置１０１１はユーザインターネットを備え、また外部システム１７０１に接続されており、ユーザインタフェイス及び外部システム１７０１の少なくとも一方で発生するイベントの種類に対応するイベントＩＤを発生し、同期制御サーバ１０００へ送信する。外部システムは、各種の自動化システムなど、任意のシステムである。他方、イベント発生装置１０１２は、特定のメディアサーバ１３０１で発生しこのメディアサーバ１３０１を制御するチャネルドライバ１２０１経由で送られてくるイベントの種類に対応するイベントＩＤを発生し、同期制御サーバ１０００へ送信する。何れのイベント発生装置１０１１、１０１２も、イベントの種類とイベントＩＤとの対応表を持っており、発生したイベントの種類に対応するイベントＩＤを同期制御サーバ１０００へ送信する。
【００２７】
また、本実施の形態では、チャネルドライバ１２０１〜１２０３が実行すべき制御内容と実行時刻とを指定するシグナルを、その実行時刻に先行して同期制御サーバ１０００からチャネルドライバ１２０１〜１０２３に配信する処理（先行配信）を行うことで、同期制御サーバ１０００とチャネルドライバ１２０１〜１２０３とのネットワーク上の遅延時間の影響を受けずに、正しい実行時刻にチャネルドライバ１２０１〜１２０３を制御できるようにしている。そして、先行配信されたシグナルは、その実行時刻まで実行されずにチャネルドライバ１２０１〜１２０３に蓄積されているため、先行配信されたシグナルを中止、中断、再開する仕組みを付加している。操作卓１８０１は、同期制御サーバ１０００とシステム管理者との間のユーザインタフェイスであり、このような中止、中断、再開の指令をシステム管理者が同期制御サーバ１０００に与えるために使用される。
【００２８】
さらに、本実施の形態の場合、各々のメディアサーバ１３０１〜１３０３からクライアント端末１６０１、１６０２に提供されるコンテンツの流れがそれぞれ１つのチャネルになっており、同期制御サーバ１０００は、複数のチャネルドライバ１２０１〜１２０３毎に独立した配信スケジュールでなく、複数のチャネルドライバ１２０１〜１２０３のスケジュールを組み入れた配信スケジュール情報に従って制御することで、チャネル連携を可能にしている。チャネル連携とは、テレビ放送で流されている映像・音声素材とインターネット上の或るＷｅｂサイトが提供するコンテンツとを連動させる如き形態を言う。具体的には、テレビで放送した内容を数分後に自動的にネットストリームで流したり或いはアーカイブすることや、テレビ放送とＷｅｂページをリアルタイムに連携させた視聴者参加型番組などである。図１に示すクライアント端末１６０１は、そのようにチャネル連携された複数のチャネルを同時に受信（視聴）している端末を示す。勿論、クライアント端末１６０２のように好きな１つのチャネルのみを受信（視聴）している端末も存在する。
【００２９】
次に、スケジュール編集装置１４０１で編集される配信スケジュール情報について詳細に説明する。
【００３０】
図２に、スケジュール編集装置１４０１を使ってシステム管理者が作成する配信スケジュール情報を構成するスケジュールフォルダの論理構成を示す。スケジュールフォルダ２０００は、１つのファイルとして作成され、スケジュールデータ２１００、変数データ２６００及びイベント処理データ２７００をそれぞれ１つ以上含んでいる。スケジュールデータ２１００は、いつ何をするべきかを詳細に記述したリストであり、「いつ」は時間だけでなく、イベントや他のスケジュールの成否で規定することができる。このイベントで規定するスケジュールのために用意されるのが変数データ２６００及びイベント処理データ２７００である。本実施の形態では、後述するようにイベントで規定するスケジュールデータ２１００中には、タイミングが成立する要件となる変数評価式が含まれており、この変数評価式は、所定のイベントが発生したときに所定の変数演算式によって変更される変数の値を評価するための式になっている。このとき、どのような変数を使うのかを定めるのが変数データ２６００であり、どのイベントが発生したときにどのような変数演算式によって変数の値を変更するのかを定めるのがイベント処理データ２７００である。
【００３１】
図３に変数データ２６００及びイベント処理データ２７００の論理構成を示す。変数データ２６００は、図３（ａ）に示すように、変数名２６１０、初期値２６２０および変動値２６３０で構成される。変動値２６３０はスケジュール実行前に初期値２６２０に初期化されており、その後、適宜に更新される。イベント処理データ２７００は、図３（ｂ）に示すように、対応イベントＩＤおよび変数演算式２７２０で構成される。対応イベントＩＤ２７１０は、イベントを一意に識別するためのＩＤであり、変数演算式２７２０は、対応イベントＩＤ２７１０と一致するＩＤのイベントがイベント発生装置１１０１またはイベント発生装置１１０２から送信されてきたときに実行される演算式である。どの変数を演算するかは変数演算式２７２０自体で示される。変数演算式２７２０は、例えば、変数Ｘに対してＸ＝Ｘ＋１等の如き演算を行う式である。
【００３２】
スケジュールフォルダ２０００に含まれる個々のスケジュールデータ２１００は、図２に示すように、タイミングリスト２２００とコマンドリスト２４００の対で構成され、スケジュールデータ２１００を一意に識別するためのスケジュールＩＤ２１０１が付与されている。タイミングリスト２２００は、スケジュールの動作タイミング（ｗｈｅｎ）を記述するリストであり、コマンドリスト２４００は、実行される制御内容（ｗｈａｔ、ｗｈｅｒｅ）を記述するリストである。
【００３３】
タイミングリスト２２００は、複数の動作タイミングを記述できるように、図４（ａ）に示すように、複数のタイミング記述オブジェクト２３０１〜２３０３を含むことができる。従って、例えば或るコンテンツの配信を開始するタイミングと終了するタイミングとを１つのタイミングリスト２２００で記述することができる。また、開始、終了といった概念のない単発的なアクション（例えば電子メールの送信など）のタイミング（アクション実行タイミング）も同じタイミングリスト２２００に記述することができる。
【００３４】
タイミングリスト２２００中の個々のタイミング記述オブジェクト２３０１〜２３０３は、図４（ｂ）のタイミング記述オブジェクト２３００に示されるように、動作ポイント２３１０、タイミング種類２３２０、タイミングデータ２３３０及び遅延時間２３４０の記述が可能になっている。
【００３５】
動作ポイント２３１０は、「スケジュール開始」、「スケジュール終了」、「アクション実行タイミング」の何れか１つが設定される。
【００３６】
タイミング種類２３２０は、タイミングが何で規定されるのかを示しており、「時間指定」、「変数評価式指定」、「他スケジュール連動指定」の何れか１つが設定される。
【００３７】
タイミングデータ２３３０は、タイミング種類２３２０の内容に応じて図４（ｃ）のような内容が格納される。すなわち、タイミング種類２３２０が「変数評価式指定」なら変数評価式２３３１が、「時間指定」なら時間２３３２が、「他スケジュール連動指定」ならスケジュール指定先２３３３が、それぞれ設定される。変数評価式２３３１は、タイミングが成立するか否かを評価する式であり、例えば、変数Ｘに対してＸ＞０の如き式である。変数評価式２３３１の結果が真であればタイミング成立、偽であればタイミング未成立である。時間２３３２は、タイミングが成立する時間を示す。時間２３３２は、絶対時間または相対時間で指定することができる。絶対時間とは、年月日、時、分、秒を直接指定するものである。相対時間は、スケジュールフォルダ２０００等に予め設定された基準となる絶対時間からの経過時間を指定するものである。
【００３８】
スケジュール指定先２３３３は、他のスケジュールに連動して動作するスケジュールにおいて、その連動先を指定する部分であり、スケジュールＩＤ２１０１と動作ポイント２３１０の組が設定される。例えば、スケジュールＩＤ＝ＡＢＣを持つ他のスケジュールのスケジュール開始タイミングが成立したときに連動させる場合、スケジュールＩＤ＝ＡＢＣと「スケジュール開始」とがスケジュール指定先２３３３に設定される。
【００３９】
遅延時間２３４０は、タイミング成立時間の調整用である。この遅延時間２３４０が０の場合、「時間指定」のスケジュールでは後述する先行配信時間（現在時刻より所定時間だけ進んだ時間）が時間２３３２で指定される時刻になったとき、「変数評価式指定」のスケジュールでは変数評価式２３３１が真になったとき、「他スケジュール連動指定」のスケジュールではスケジュール指定先２３３３で指定される他のスケジュールが成立したとき、それぞれタイミングが成立するわけであるが、遅延時間２３４０に或る値ＲＴＩＭＥが設定されている場合には、このＲＴＩＭＥだけ遅れた時刻にタイミングが成立することになる。例えば、「変数評価式指定」で遅延時間２３４０に５分を設定しておくと、変数評価式が真になった時刻の５分後にタイミングが成立する。
【００４０】
コマンドリスト２４００は、実行される制御内容（ｗｈａｔ、ｗｈｅｒｅ）を複数記述できるように、図５（ａ）に示すように、複数のコマンド記述オブジェクト２５０１〜２５０３を含むことができる。これは、対になるタイミングリスト２２００が複数の動作タイミングを記述できるようになっている為にコマンドリスト側でも個々の動作タイミング毎に別々のコマンドを実行し得るようにする必要があることと、スケジュール開始などの同じタイミングで複数のコマンドを実行して例えば複数のチャネルドライバを同時に制御すること等が行えるようにすることを考慮したものである。
【００４１】
コマンドリスト２４００中の個々のコマンド記述オブジェクト２５０１〜２５０３は、図５（ｂ）のコマンド記述オブジェクト２５００に示されるように、実行ポイント２５１０、遅延時間２５２０、コマンド種類２５３０、コマンドデータ２５４０および結果２５５０で構成される。
【００４２】
実行ポイント２５１０は、「スケジュール開始」、「スケジュール終了」、「アクション実行タイミング」の内のどのタイミングが成立したときにコマンドを実行すべきかを指定するもので、前記３つの何れか１つが設定される。コマンドリスト２４００に含まれる複数のコマンド記述オブジェクト２５０１〜２５０３のうち実行ポイント２５１０に「スケジュール開始」が設定されているものは、対となるタイミングリスト２２００で「スケジュール開始」のタイミングが成立すると、全て実行される。「スケジュール終了」、「アクション実行タイミング」についても同様である。
【００４３】
遅延時間２５２０は、シグナルの実行時間の調整用である。タイミング記述オブジェクト２３００中の遅延時間２３４０が「スケジュール開始」、「スケジュール終了」、「アクション実行タイミング」の種類毎に一括してタイミング成立時間の調整を行うための遅延時間であったのに対し、この遅延時間２５２０はコマンド毎のタイミング調整用の時間である。例えば、動作ポイント２３１０が「スケジュール開始」、タイミング種類２３２０が「時間指定」、タイミングデータ２３３０が時間ＴＩＭＥ、遅延時間２３４０がＲＴＩＭＥであるタイミング記述オブジェクト２３００のタイミングが成立すると、実行ポイント２５１０が「スケジュール開始」になっている全てのコマンド記述オブジェクト２５００が実行されるが、そのようなコマンド記述オブジェクト２５００が例えば２つあり、１つのコマンド記述オブジェクト２５０１の遅延時間２５２０は０、他のコマンド記述オブジェクト２５０２の遅延時間２５２０は１分であれば、コマンド記述オブジェクト２５０１にかかるシグナルはタイミングの成立時（ＴＩＭＥ＋ＲＴＩＭＥ）に直ちに実行されるが、コマンド記述オブジェクト２５０１にかかるシグナルは１分遅れて、（ＴＩＭＥ＋ＲＴＩＭＥ＋１分）に実行されることになる。
【００４４】
コマンド種類２５３０には、「変数演算式指定」、「シグナル発行指定」の何れかが設定される。「シグナル発行指定」は当該コマンド記述オブジェクト２５００がチャネルドライバ１２０１〜１２０３にシグナルを出すコマンドであることを示す。他方、「変数演算式指定」は、当該コマンド記述オブジェクト２５００が変数データ２６００を更新するコマンドであることを示す。前述したように変数データ２６００は、イベント発生装置１１０１、１１０２で発生するイベントに応じてイベント処理データ２７００中の変数演算式２７２０によって更新されるわけであるが、コマンド種類２５３０に「変数演算式指定」を持つコマンド記述オブジェクト２５００を用意しておくことによって、イベントの発生と無関係に同期制御サーバ１０００の内部だけのフィードバック系でイベント駆動が可能になる。これは、例えばイベントＡＢＣは、少なくともＴ時刻までに発生すると予期していたにもかかわらず、何らかの理由によって発生しなかった為にイベント連動によるスケジュールが成立しなかった場合、例外処理として、Ｔ時刻にタイミングが成立するスケジュールのコマンド記述オブジェクト２５００中の変数演算式によってイベントＡＢＣに連動するスケジュールを成立させるためなどに利用される。
【００４５】
コマンドデータ２５４０は、コマンド種類２５３０の内容に応じて、図５（ｃ）に示すように、「変数演算式指定」のときは変数演算式２５４１が設定され、「シグナル発行指定」のときはシグナル記述データ２５４２が設定される。変数演算式２５４１は、変数データ２６００を更新する式であり、例えば変数Ｘに対してＸ＝Ｘ＋１の如き式が設定される。シグナル記述データ２５４２は、チャネルドライバ１２０１〜１２０３に対する制御内容を記述したデータである。その論理的な構成を図５（ｄ）に示す。
【００４６】
シグナル記述データ２５４２は、シグナルＩＤ２５４３、チャネルＩＤ２５４４および任意引数２５４５を含んで構成される。チャネルＩＤ２５４４は、各チャネルドライバ１２０１〜１２０３に事前に付与されているＩＤである。このチャネルＩＤ２５４４で、どのチャネルドライバにシグナルを送出するかを指定する。シグナルＩＤ２５４３は、チャネルドライバ１２０１〜１２０３側の各シグナル処理毎に事前に付与されているＩＤである。このシグナルＩＤ２５４３で、どのシグナル処理を実行させるかを指定する。任意引数２５４５は、チャネルドライバ１２０１〜１２０３のシグナル処理に同期制御サーバ１０００から引き渡す引数を設定する部分である。この任意引数２５４５に設定された引数とシグナルＩＤ２５４３とで、チャネルドライバ１２０１〜１２０３で実行すべきアプリケーション処理が特定される。具体的には、チャネルドライバ１２０１〜１２０３が、各シグナル処理毎のメソッドを実装している場合、シグナルＩＤ２５４３は起動するメソッドのＩＤを示し、任意引数２５４５はそのメソッドに引き渡す引数に相当する。
【００４７】
コマンド記述オブジェクト２５００の結果２５５０は、当該コマンド記述オブジェクト２５００の実行結果を保存するログ領域である。「シグナル発行指定」のコマンド記述オブジェクト２５００の場合、シグナル発行先のチャネルドライバ１２０１〜１２０３から通知される１以上の実行結果が保存される。
【００４８】
以上、スケジュール編集装置１４０１で編集される配信スケジュール情報について説明した。このような配信スケジュール情報を編集するスケジュール編集装置１４０１は、例えばエディタ機能を有するパーソナルコンピュータ等の情報処理装置で実現される。また、配信スケジュール情報を記述する言語は例えばＸＭＬが使用される。スケジュール編集装置１４０１で編集された配信スケジュール情報は、同期制御サーバ１０００に内蔵の記憶装置に登録され、実際の制御に供される。スケジュール編集装置１４０１は、同期制御サーバ１０００に登録された配信スケジュール情報を、スケジュール変更のために修正する処理も行っている。
【００４９】
次に、同期制御サーバ１０００がチャネルドライバ１２０１〜１２０３に発行するシグナルについて説明する。
【００５０】
図６（ａ）に、同期制御サーバ１０００からチャネルドライバ１２０１〜１２０３に先行配信されるシグナル２８００の論理構成を示す。シグナル２８００は、制御情報２８０１、シリアルＩＤ２８０２、シグナル記述データ２８０３および実行時間２８０４を含んで構成される。制御情報２８０１は、先行配信されるシグナル２８００の場合、「先行配信」を示す識別子が設定される。シリアルＩＤ２８０２は、先行配信されるシグナル２８００を一意に識別するために同期制御サーバ１０００が付与したＩＤであり、このシグナル２８００の先行配信後に同期制御サーバ１０００からチャネルドライバ１２０１〜１２０３上のシグナル２８００を遠隔で制御（中止、中断、再開の制御）する際などに利用される。シグナル記述データ２８０３は、図５（ｄ）で示したようにシグナルＩＤ２５４３、チャネルＩＤ２５４４および任意引数２５４５で構成される。実行時間２８０４は、このシグナル２８００をチャネルドライバ１２０１〜１２０３が実際に実行すべき実行時間（時刻）を示す。つまり、先行配信されたシグナル２８００はチャネルドライバ１２０１〜１２０３に内蔵の記憶装置に一旦蓄積され、現在時刻が実行時間２８０４に一致したときに実行される。実行時間２８０４は、遅延時間２３４０を考慮したタイミング成立時刻に遅延時間２５２０を加算した時間である。
【００５１】
同期制御サーバ１０００からチャネルドライバ１２０１〜１２０３に送出されるシグナルには、先行配信されるシグナル以外に、直ちに実行すべきシグナルがある。直ちに実行すべきシグナルの論理構成は図６（ａ）のシグナル２８００とほぼ同様であるが、制御情報２８０１には「直ちに実行」を示す識別子が設定され、実行時間２８０４は省略されるか、あってもチャネルドライバ１２０１側で無視される。
【００５２】
同期制御サーバ１０００からチャネルドライバ１２０１〜１２０３に送出される他のシグナルとして、中止命令、中断命令および再開命令がある。中止命令は、指定したシリアルＩＤのシグナルの実行を行わせないようにする命令である。中断命令は、指定したシリアルＩＤのシグナルの実行を一時的に停止させる命令であり、再開命令は、中断命令で一時的に停止させたシグナルの実行を再開させる命令である。中止命令および中断命令の論理構成は、図６（ｂ）の２８１０に示すように、制御情報２８１１およびシリアルＩＤのリスト２８１２で構成される。制御情報２８１１には、中止命令の場合は「中止」を示す識別子が、中断命令の場合は「中断」を示す識別子がそれぞれ設定され、シリアルＩＤのリスト２８１２は中止または中断したいシグナルを特定するシリアルＩＤのリストが設定される。また、再開命令の論理構成は、図６（ｃ）の２８２０に示すように、制御情報２８２１、シリアルＩＤのリスト２８２２および繰り下げ時間２８２３で構成される。制御情報２８２１には、「再開」を示す識別子が設定され、シリアルＩＤのリスト２８２２には再開したいシグナルを特定するシリアルＩＤのリストが設定される。繰り下げ時間２８２３は、中断から再開までの時間に応じた時間が設定される。
【００５３】
次に、同期制御サーバ１０００の内部構成について詳細に説明する。
【００５４】
図７は同期制御サーバ１０００の内部構成を示すブロック図である。同期制御サーバ１０００は、同期制御処理装置１０１０、スケジュールデータ記憶装置１０２１、変数データ記憶装置１０２２、イベント処理情報記憶装置１０２３およびコマンドＦＩＦＯ行列記憶装置１０２４を含んで構成される。また、同期制御処理装置１０１０は、先行配信時間制御装置１０１１、時間連動タイミング制御装置１０１２、イベント変数連動タイミング制御装置１０１３、スケジュール連動タイミング制御装置１０１４、データ登録装置１０１５、イベント受信装置１０１６、コマンド処理装置１０１７およびシグナル先行配信制御装置１０１８を備えている。
【００５５】
データ登録装置１０１５は、スケジュール編集装置１４０１に接続されており、スケジュール編集装置１４０１から図２に示したスケジュールフォルダ２０００を受け取ると、スケジュールデータ２１００はスケジュールデータ記憶装置１０２１へ、変数データ２６００は変数データ記憶装置１０２２へ、イベント処理データ２７００はイベント処理情報記憶装置１０２３へ、それぞれ格納する。また、データ登録装置１０１５は、各記憶装置１０２１〜１０２３に格納されたデータを読み出してスケジュール編集装置１４０１に出力する処理や、システム管理者がスケジュール編集装置１４０１上で修正したデータに基づいて各記憶装置１０２１〜１０２３の元のデータを変更する処理も行う。
【００５６】
イベント受信装置１０１６は、イベント発生装置１１０１または１１０２から送信されるイベントＩＤを受信する装置である。イベント受信装置１０１６は、イベントＩＤを受信すると、受信したイベントＩＤと同じイベントＩＤを対応イベントＩＤ２７１０に持つイベント処理データ２７００をイベント処理情報記憶装置１０２３から検索し、そのイベント処理データ２７００の変数演算式２７２０を実行することにより、変数データ記憶装置１０２２に格納された該当する変数データ２６００の変動値２６３０を更新する。例えば、変数演算式２７２０がＸ＝Ｘ＋１であれば、Ｘを変数名２６１０に持つ変数データ２６００を変数データ記憶装置１０２２から検索し、その現在の変動値２６３０を＋１する。また、変数データ２６００の変動値２６３０は、コマンド種類２５３０に「変数演算式指定」を持つコマンド記述オブジェクト２５００がコマンド処理装置１０１７で実行されることによっても更新される。何れの場合も、変数データ２６００の変動値２６３０が変化すると、直ちにイベント変数連動タイミング制御装置１０１３に通知が出される。
【００５７】
先行配信時間制御装置１０１１は、現在時刻から所定時間Ｔだけ進んだ時刻を先行配信時間として時間連動タイミング制御装置１０１２およびコマンドＦＩＦＯ行列記憶装置１０２４に配信する。所定時間Ｔは、余り短く設定すると、同期制御サーバ１０００と複数のチャネルドライバ１２０１〜１２０３間の通信時におけるネットワーク遅延時間を吸収できなくなる等の不都合があり、余り長く設定すると、先行配信されたシグナルを蓄積するチャネルドライバ１２０１〜１２０３側の必要容量が大きくなる等の不都合があるため、両者を勘案して事前に決められている。一例として、所定時間Ｔは１分程度に設定される。
【００５８】
時間連動タイミング制御装置１０１２は、時間で規定されたスケジュールのタイミングの成否を検出する装置である。この時間連動タイミング制御装置１０１２は、スケジュールデータ記憶装置１０２１に記憶されたスケジュールデータ２１００中の、タイミング種類２３２０が「時間指定」となっているタイミング記述オブジェクト２３００（但し、既にタイミングの成否を検出して処理し終えたものは除く）について、そこに設定されている時間２３３２に遅延時間２３４０を足した時間（絶対時間で表す）が、先行配信時間制御装置１０１１から配信されている先行配信時間と一致するか否かを調べることにより、スケジュールのタイミングが成立したタイミング記述オブジェクト２３００を検出する。タイミングの成立したタイミング記述オブジェクト２３００を検出すると、そのタイミング記述オブジェクト２３００が含まれるタイミングリスト２２００と対になっているコマンドリスト２４００中のコマンド記述オブジェクト２５００のうち、実行ポイント２５１０がタイミングの成立したタイミング記述オブジェクト２３００の動作ポイント２３１０と同じコマンド記述オブジェクト２５００の全てを、コマンドＦＩＦＯ行列記憶装置１０２４に格納する。また、時間連動タイミング制御装置１０１２は、タイミングの成立したタイミング記述オブジェクト２３００の動作ポイント２３１０と、このタイミング記述オブジェクト２３００を含むタイミングリスト２２００を有するスケジュールデータ２１００のスケジュールＩＤ２１０１とを、スケジュール連動タイミング制御装置１０１４に通知する。そして、今回処理したタイミング記述オブジェクト２３００に所定の印を付ける等により処理済として管理する。
【００５９】
図８にコマンドＦＩＦＯ行列記憶装置１０２４に格納される１要素情報であるコマンドＦＩＦＯデータの論理構成を示す。１つのコマンドＦＩＦＯデータ２８５０は、実行時間２８５１、コマンド記述オブジェクト２８５２、先行配信状況２８５３およびシリアルＩＤ２８５４で構成される。
【００６０】
時間連動タイミング制御装置１０１２は、コマンドＦＩＦＯ行列記憶装置１０２４に格納するコマンド記述オブジェクト２５００毎に、１つのコマンドＦＩＦＯデータ２８５０を使い、コマンド記述オブジェクト２５００をコマンド記述オブジェクト２８５２にコピーする。また、実行時間２８５１には、タイミング成立時刻（時間２３３２に遅延時間２３４０を足した時間で絶対時間で表す）に更にコマンド記述オブジェクト２５００の遅延時間２５２０を足した時間を設定する。また、先行配信状況２８５３は「未配信」に設定する。さらに、一意なシリアルＩＤを採番し、シリアルＩＤ２８５４に設定する。
【００６１】
イベント変数連動タイミング制御装置１０１３は、イベントで規定されたスケジュールのタイミングの成否を検出する装置である。このイベント変数連動タイミング制御装置１０１３は、変数データ記憶装置１０２２において変数データ２６００の変動値２６３０が変更された通知を受けると、先ず、スケジュールデータ記憶装置１０２１に記憶されたスケジュールデータ２１００中の、タイミング種類２３２０が「変数評価式指定」となっているタイミング記述オブジェクト２３００（但し、既にタイミングの成否を検出して処理し終えたものは除く）について、そこに設定されている変数評価式２３３１が真か、偽かを判定する。次に、変数評価式２３３１が真であると判定したタイミング記述オブジェクト２３００について、その判定時刻をｔｃとすると、この時刻ｔｃから当該タイミング記述オブジェクト２３００の遅延時間２３４０だけ経過した時点でタイミングが成立するものとして、スケジュールのタイミングが成立するタイミング記述オブジェクト２３００を検出する。タイミングの成立したタイミング記述オブジェクト２３００を検出すると、そのタイミング記述オブジェクト２３００が含まれるタイミングリスト２２００と対になっているコマンドリスト２４００中のコマンド記述オブジェクト２５００のうち、実行ポイント２５１０がタイミングの成立したタイミング記述オブジェクト２３００の動作ポイント２３１０と同じコマンド記述オブジェクト２５００の全てを、コマンドＦＩＦＯ行列記憶装置１０２４に格納する。この格納時の処理は時間連動タイミング制御装置１０１２の場合と同様であり、図８に示したコマンドＦＩＦＯデータ２８５０における実行時間２８５１、コマンド記述オブジェクト２８５２、先行配信状況２８５３およびシリアルＩＤ２８５４が設定される。また、イベント変数連動タイミング制御装置１０１３は、タイミングの成立したタイミング記述オブジェクト２３００の動作ポイント２３１０と、このタイミング記述オブジェクト２３００を含むタイミングリスト２２００を有するスケジュールデータ２１００のスケジュールＩＤ２１０１とを、スケジュール連動タイミング制御装置１０１４に通知する。そして、今回処理したタイミング記述オブジェクト２３００に所定の印を付ける等により処理済として管理する。
【００６２】
スケジュール連動タイミング制御装置１０１４は、他のスケジュールに連動するスケジュールの成否を検出する装置である。このスケジュール連動タイミング制御装置１０１４は、時間連動タイミング制御装置１０１２およびイベント変数連動タイミング制御装置１０１３からスケジュールＩＤ２１０１及び動作ポイント２３１０が通知されると、先ず、スケジュールデータ記憶装置１０２１に記憶されたスケジュールデータ２１００中の、タイミング種類２３２０が「他スケジュール連動指定」となっているタイミング記述オブジェクト２３００（但し、既にタイミングの成否を検出して処理し終えたものは除く）について、そこに設定されているスケジュール指定先２３３３が示すスケジュールＩＤ及び動作ポイントが、前記通知されたスケジュールＩＤ及び動作ポイントと一致するか否かを判定する。次に、スケジュールＩＤ及び動作ポイントが一致すると判定したタイミング記述オブジェクト２３００について、その判定時刻をｔｃとすると、この時刻ｔｃから当該タイミング記述オブジェクト２３００の遅延時間２３４０だけ経過した時点でタイミングが成立したものとして、スケジュールのタイミングが成立するタイミング記述オブジェクト２３００を検出する。タイミングの成立したタイミング記述オブジェクト２３００を検出すると、そのタイミング記述オブジェクト２３００が含まれるタイミングリスト２２００と対になっているコマンドリスト２４００中のコマンド記述オブジェクト２５００のうち、実行ポイント２５１０がタイミングの成立したタイミング記述オブジェクト２３００の動作ポイント２３１０と同じコマンド記述オブジェクト２５００の全てを、コマンドＦＩＦＯ行列記憶装置１０２４に格納する。この格納時の処理は時間連動タイミング制御装置１０１２の場合と同様であり、図８に示したコマンドＦＩＦＯデータ２８５０における実行時間２８５１、コマンド記述オブジェクト２８５２、先行配信状況２８５３およびシリアルＩＤ２８５４が設定される。そして、今回処理したタイミング記述オブジェクト２３００に所定の印を付ける等により処理済として管理する。
【００６３】
更に、スケジュール連動タイミング制御装置１０１４は、タイミングが成立していると自ら判定したタイミング記述オブジェクト２３００の動作ポイント２３１０と、このタイミング記述オブジェクト２３００を含むタイミングリスト２２００を有するスケジュールデータ２１００のスケジュールＩＤ２１０１とに基づき、スケジュールＩＤ及び動作ポイントが時間連動タイミング制御装置１０１２またはイベント変数連動タイミング制御装置１０１３から通知があった場合と同様の処理を行うことで、他のスケジュールに連動するスケジュールに更に連動するスケジュールのタイミングの成否も判定している。
【００６４】
コマンドＦＩＦＯ行列記憶装置１０２４は、図８に示したようなコマンドＦＩＦＯデータ２８５０を複数格納し、先行配信時間制御装置１０１１から配信されている先行配信時間および実時間に基づき、各コマンドＦＩＦＯデータ２８５０のコマンド記述オブジェクト２８５２をコマンド処理装置１０１７またはシグナル先行配信制御装置１０１８に分配する。具体的には、先ず、先行配信状況２８５３が「未配信」であり且つコマンド記述オブジェクト２８５２中のコマンド種類２５３０が「シグナル発行指定」であるコマンドＦＩＦＯデータ２８５０について、先行配信を実現すべく、その実行時間２８５１と先行配信時間とを比較し、一致したコマンドＦＩＦＯデータ２８５０の実行時間２８５１、コマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４をシグナル先行配信制御装置１０１８に送って、先行配信を指示し、今回処理したコマンドＦＩＦＯデータ２８５０の先行配信状況２８５３を「配信済」に変更する。
【００６５】
以上の処理によって、各タイミング制御装置１０１２〜１０１４からコマンドＦＩＦＩ行列記憶装置１０２４に登録されたコマンドＦＩＦＯデータ２８５０のうち、コマンド種類２５３０が「シグナル発行指定」であるものの多くは先行配信されるようになるが、イベント変数連動タイミング制御装置１０１３やスケジュール連動タイミング制御装置１０１４から登録されたコマンドＦＩＦＯデータ２８５０のうちには、遅延時間２５２０の時間が短く（例えば０）、時間の制約で先行配信できないコマンドＦＩＦＯデータ２８５０が残る。また、コマンド種類２５３０が「変数演算式指定」であるコマンドＦＩＦＯデータ２８５０は、先行配信時間でなく実時間で処理する必要がある。このため、コマンドＦＩＦＯ行列記憶装置１０２４は、先行配信状況２８５３が「未配信」であるコマンドＦＩＦＯデータ２８５０について、その実行時間２８５１と実時間とを比較し、一致したコマンドＦＩＦＯデータ２８５０のコマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４をコマンド処理装置１０１７に送る処理も並行して行っている。なお、コマンド処理装置１０１７に送られたコマンドＦＩＦＯデータ２８５０の先行配信状況２８５３も「配信済」に変更される。
【００６６】
コマンド処理装置１０１７は、コマンドＦＩＦＯ行列記憶装置１０２４からコマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４を受け取ると、そのコマンド記述オブジェクト２８５４中のコマンド種類２５３０が「変数演算式指定」か「シグナル発行指定」かに応じて処理を切りわける。「変数演算式指定」の場合、コマンド処理装置１０１７は、コマンド記述オブジェクト２８５２中のコマンドデータ２５４０に設定されている変数演算式２５４１を実行することにより、変数データ２６００の変動値２６３０を変更する。具体的には、変数演算式２５４１に現れる変数を変数名２６１０に持つ変数データ２６００の現在の変動値２６３０を変数データ記憶装置１０２２から検索し、それを用いて変数演算式により新たな変動値２６３０を計算し、この新たな変動値２６３０で元の値を更新する。他方、「シグナル発行指定」の場合、コマンド処理装置１０１７は、コマンドＦＩＦＯ行列記憶装置１０２４から受け取ったコマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４をシグナル先行配信制御装置１０１８に渡し、配信を指示する。
【００６７】
シグナル先行配信制御装置１０１８は、コマンドＦＩＦＯ行列記憶装置１０２４から実行時間２８５１、コマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４を受け取るとシグナルの先行配信処理を行い、コマンド処理装置１０１７からコマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４を受け取ると、先行配信処理でなく、直ちに実行されるシグナルの配信処理を行う。
【００６８】
シグナルの先行配信処理では、シグナル先行配信制御装置１０１８は、コマンドＦＩＦＯ行列記憶装置１０２４から受け取った実行時間２８５１、コマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４に基づいて図６のシグナル２８００を作成して、ネットワーク経由で該当するチャネルドライバ１２０１〜１２０３へ送信する。この場合、図６のシグナル２８００における制御情報２８０１は「先行配信」を示す識別子が設定され、シリアルＩＤ２８０２には受け取ったシリアルＩＤ２８５４が設定され、シグナル記述データ２８０３には受け取ったコマンド記述オブジェクト２８５２中のコマンドデータ２５４０に記述されたシグナル記述データ２５４２が設定され、実行時間２８０４には受け取った実行時間２８５１が設定される。送り先のチャネルドライバは、シグナル記述データ２５４２中のチャネルＩＤで特定されるチャネルドライバである。
【００６９】
シグナル先行配信制御装置１０１８は、直ちに実行されるシグナルの配信処理では、コマンド処理装置１０１７から受け取ったコマンド記述オブジェクト２８５２およびシリアルＩＤ２８５４に基づいて図６のシグナル２８００と同様なシグナルを作成して、ネットワーク経由で該当するチャネルドライバ１２０１〜１２０３へ送信する。この場合、制御情報２８０１の部分には「直ちに実行」を示す識別子が設定され、シリアルＩＤ２８０２には受け取ったシリアルＩＤ２８５４が設定され、シグナル記述データ２８０３には受け取ったコマンド記述オブジェクト２８５２中のコマンドデータ２５４０に記述されたシグナル記述データ２５４２が設定され、実行時間２８０４は省略される。送り先のチャネルドライバは、シグナル記述データ２５４２中のチャネルＩＤで特定されるチャネルドライバである。
【００７０】
他方、シグナル先行配信制御装置１０１８は、システム管理者から操作卓１０８１を通じて入力される指示に従い、チャネルドライバ１２０１〜１２０３に先行配信したシグナルを中止、中断、再開する命令を生成し、該当するチャネルドライバ１２０１〜１２０３へ送信する処理も行っている。以下、これについて説明する。
【００７１】
システム管理者が操作卓１８０１からスケジュールの中断を指示すると、同期制御処理装置１０１０は、先行配信時間制御装置１０１１による先行配信時間の配信ならびに実時間による処理を中断する。これにより、スケジュールフォルダ２０００のスケジュールの進行が中断される。また、シグナル先行配信制御装置１０１８により、以下の処理を行う。先ず、コマンドＦＩＦＯ行列記憶装置１０２４から、先行配信状況２８５３が「配信済」の全てのコマンドＦＩＦＯデータ２８５０を検索し、先行配信状況２８５３を「中断」に変更する。次に、検索したコマンドＦＩＦＯデータ２８５０から、コマンド記述オブジェクト２８５２内のシグナル記述データ２５４２中のチャネルＩＤ２５４４毎に、シリアルＩＤ２８５４のリストを作成する。そして、チャネルＩＤ２５４４毎に、図６（ｂ）の制御情報２８１１に「中断」を示す識別子を設定し、シリアルＩＤのリスト２８１２に前記作成したシリアルＩＤ２８５４のリストを設定した中断命令を作成し、当該チャネルＩＤ２５４４で特定されるチャネルドライバ１２０１〜１２０３へ送信する。
【００７２】
システム管理者が操作卓１８０１からスケジュールの再開を指示すると、同期制御処理装置１０１０は、シグナル先行配信制御装置１０１８により、以下の処理を行う。先ず、コマンドＦＩＦＯ行列記憶装置１０２４から、先行配信状況２８５３が「中断」の全てのコマンドＦＩＦＯデータ２８５０を検索する。次に、検索したコマンドＦＩＦＯデータ２８５０から、コマンド記述オブジェクト２８５２内のシグナル記述データ２５４２中のチャネルＩＤ２５４４毎に、シリアルＩＤ２８５４のリストを作成する。そして、チャネルＩＤ２５４４毎に、図６（ｃ）の制御情報２８２１に「再開」を示す識別子を設定し、シリアルＩＤのリスト２８２２に前記作成したシリアルＩＤ２８５４のリストを設定し、繰り下げ時間２８２３に中断から再開までの時間を設定した再開命令を作成し、当該チャネルＩＤ２５４４で特定されるチャネルドライバ１２０１〜１２０３へ送信する。繰り下げ時間２８２３は、シグナル先行配信制御装置１０１８に内蔵の繰り下げ時間保持部（図示せず）の内容に加算される。この繰り下げ時間保持部の初期値は０である。その後、同期制御処理装置１０１０は、先行配信時間制御装置１０１１による先行配信時間の配信ならびに実時間による処理を再開するが、シグナル先行配信制御装置１０１８は、図６のシグナル２８００の生成時、コマンドＦＩＦＯデータ２８５０の実行時間２８５１に繰り下げ時間保持部に保持されている時間を加算した時間を実行時間２８０４に設定することにより、スケジュールを時間的にスライドさせる。
【００７３】
システム管理者が操作卓１８０１からスケジュールの中止を指示すると、同期制御処理装置１０１０は、先行配信時間制御装置１０１１による先行配信時間の配信ならびに実時間による処理を中止する。これにより、スケジュールフォルダ２０００のスケジュールの進行が中止する。また、シグナル先行配信制御装置１０１８により、以下の処理を行う。先ず、コマンドＦＩＦＯ行列記憶装置１０２４から、先行配信状況２８５３の「配信済」、「中断」等の状態にかかわらず全てのコマンドＦＩＦＯデータ２８５０を検索し、先行配信状況２８５３を「中止」に変更する。次に、検索したコマンドＦＩＦＯデータ２８５０から、コマンド記述オブジェクト２８５２内のシグナル記述データ２５４２中のチャネルＩＤ２５４４毎に、シリアルＩＤ２８５４のリストを作成する。そして、チャネルＩＤ２５４４毎に、図６（ｂ）の制御情報２８１１に「中止」を示す識別子を設定し、シリアルＩＤのリスト２８１２に前記作成したシリアルＩＤ２８５４のリストを設定した中止命令を作成し、当該チャネルＩＤ２５４４で特定されるチャネルドライバ１２０１〜１２０３へ送信する。
【００７４】
以上、同期制御サーバ１０００の内部構成と動作を説明した。このような同期制御サーバ１０００は、パーソナルコンピュータやワークステーション等の情報処理装置と同期制御サーバ用プログラムとで実現することができる。同期制御サーバ用プログラムは、磁気ディスク等の機械読み取り可能な記録媒体に記録されて提供され、情報処理装置の立ち上げ時などに情報処理装置に読み取られ、情報処理装置の動作を制御することにより、情報処理装置上に同期制御処理装置１０１０を構成する各要素（１０１１〜１０１８）を実現する。また、各記憶装置１０２１〜１０２４は情報処理装置の磁気ディスク等の記憶装置で実現される。
【００７５】
次に、チャネルドライバ１２０１〜１２０３の内部構成について、イベント発生装置との接続を持つチャネルドライバ１２０１を例に説明する。
【００７６】
図９はチャネルドライバ１２０１のブロック図である。チャネルドライバ１２０１は、処理装置１２０２、シグナル記憶装置１２０３およびメディアサーバ制御装置１２０４を含んで構成され、処理装置１２０２は、通信装置１２０５、１２０６および動作装置１２０７を備えている。イベント発生装置との接続を持たないチャネルドライバ１２０２等では、通信装置１２０６は省略される。
【００７７】
通信装置１２０５は、ネットワーク経由で同期制御サーバ１０００と所定の通信プロトコルで通信するための装置、通信装置１２０６は、ネットワーク経由でイベント発生装置１１０２と所定の通信プロトコルで通信するための装置である。ここでは、２つの通信装置１２０５、１２０６を使用しているが、１つの通信装置で実現することも可能である。
【００７８】
シグナル記憶装置１２０３は、先行配信されたシグナルを蓄積する装置であり、磁気ディスク等で構成される。ここに蓄積されるシグナルは、図６（ａ）に示したように、制御情報２８０１、シリアルＩＤ２８０２、シグナル記述データ２８０３および実行時間２８０４で構成され、シグナル記述データ２８０３は図５（ｄ）に示したように、シグナルＩＤ２５４３、チャネルＩＤ２５４４および任意引数２５４５で構成されている。
【００７９】
通信装置１２０５は、同期制御サーバ１０００から自チャネルドライバ宛のシグナルを受信すると、このシグナルが「先行配信」を示す識別子を持つ場合、シグナル記憶装置１２０３に格納し、それ以外、つまり「直ちに実行」の識別子を持つシグナル、「中止」、「中断」、「再開」の識別子を持つ中止命令、中断命令、再開命令は動作装置１２０７へ渡す。また、通信装置１２０５は、動作装置１２０７の実行結果を同期制御サーバ１０００へ送るためにも使用される。
【００８０】
動作装置１２０７は、シグナル記憶装置１２０３に記憶されているシグナルの実行時間２８０４と実時間とを比較することにより、実行タイミングとなったシグナルを検出し、そのシグナルのシグナル記述データ２８０３中のシグナルＩＤ２５４３および任意引数２５４５をメディアサーバ制御装置１２０４に通知する。また、動作装置１２０７は、制御情報２８０１に「直ちに実行」を示す識別子が設定されたシグナルを通信装置１２０５から受け取ると、そのシグナルのシグナル記述データ２８０３中のシグナルＩＤ２５４３および任意引数２５４５をメディアサーバ制御装置１２０４に直ちに通知する。メディアサーバ制御装置１２０４は、動作装置１２０７から受け取ったシグナルＩＤ２５４３及び任意引数２５４５で特定されるアプリケーション処理を実行することによって、メディアサーバ１３０１を制御する。
【００８１】
他方、動作装置１２０７は、中止命令、中断命令、再開命令を受け取ると、それらに応じた処理を実行する。ここで、中止および中断命令は図６（ｂ）に示したように制御情報２８１１およびシリアルＩＤのリスト２８１２を含み、再開命令は図６（ｃ）に示したように制御情報２８２１、シリアルＩＤのリスト２８２２および繰り下げ時間２８２３を含んでいる。
【００８２】
動作装置１２０７は、中断命令の場合、シグナル記憶装置１２０３に記憶されているシグナルのうち、中断命令に付加されたシリアルＩＤのリスト２８１２に記載されているシリアルＩＤを持つシグナルの実行を中断状態とする。再開命令の場合は、シグナル記憶装置１２０３に記憶されているシグナルのうち、再開命令に付加されたシリアルＩＤのリスト２８２２に記載されているシリアルＩＤを持つシグナルの実行時間２８０４に繰り下げ時間２８２３を加算し、中断状態を解除する。中止命令の場合は、シグナル記憶装置１２０３に記憶されているシグナルのうち、中止命令に付加されたシリアルＩＤのリスト２８１２に記載されているシリアルＩＤを持つシグナルを削除する。
【００８３】
動作装置１２０７は、自チャネルドライバ１２０１の動作状況を同期制御サーバ１０００が把握できるようにするために、各種の通知を通信装置１２０５を通じてシグナル先行配信制御装置１０１８に送る処理も行っている。例えば、シグナルの実行が開始されたときと、その実行が終了したときに、シグナル先行配信制御装置１０１８にその旨を通知する。シグナル先行配信制御装置１０１８では、これらの通知をコマンドＦＩＦＯ行列記憶装置１０２４の該当するコマンドＦＩＦＯデータ２８５０のコマンド記述オブジェクト２８５２中の結果２５５０に記録する。動作装置１２０７から通知する実行結果は、チャネルドライバ側で任意に設定することが可能であり、実行直前通知、実行後通知の組み合わせや、どちらか一方、或いは通知しないという設定が可能である。また、動作装置１２０７は、中止、中断、再開に成功したシグナルのシリアルＩＤの通知や、既に実行済のために中止、中断、再開が行えなかったシグナルのシリアルＩＤの通知なども行う。シグナル先行配信制御装置１０１８側では、これらの通知もコマンドＦＩＦＯ行列記憶装置１０２４の該当するコマンドＦＩＦＯデータ２８５０のコマンド記述オブジェクト２８５２中の結果２５５０に記録する。
【００８４】
通信装置１２０６は、メディアサーバ１３０１から送られてきたイベントをネットワーク経由でイベント発生装置１１０２に送出する処理を行う。イベント発生装置１１０２は、受信したイベントの種類に対応するイベントＩＤが登録されていれば、そのイベントＩＤを同期制御サーバ１０００に送信する。なお、通信装置１２０６にイベント発生装置１１０２の機能を持たせ、メディアサーバ１３０１から送られてきたイベントの種類に対応するイベントＩＤを同期制御サーバ１０００にネットワーク経由で直接送信させても良い。更に、メディアサーバ１３０１にイベント発生装置１１０２の機能を持たせ、メディアサーバ１３０１から送られてきたイベントの種類に対応するイベントＩＤを同期制御サーバ１０００にネットワーク経由で直接送信させても良い。
【００８５】
チャネルドライバ１２０１の構成要素のうち、メディアサーバ制御装置１２０４は、制御対象となるメディアサーバ１３０１の種類に特化した専用装置となるが、処理装置１２０２及びシグナル記憶装置１２０３は、任意のチャネルドライバで汎用的に使用することができる。処理装置１２０２は、例えば、パーソナルコンピュータ等の情報処理装置と制御プログラムとで実現することができる。制御プログラムは、磁気ディスク等の機械読み取り可能な記録媒体に記録されて提供され、情報処理装置の立ち上げ時などに情報処理装置に読み取られ、情報処理装置の動作を制御することにより、情報処理装置上に処理装置１２０１を構成する各要素（１２０５〜１２０７）を実現する。また、シグナル記憶装置１２０３は、情報処理装置の磁気ディスク等の記憶装置で実現される。
【００８６】
次に、本実施の形態の動作について説明する。
【００８７】
図１０のステップ３５００から始まる処理は通常のシグナル先行配信時の処理の流れを示している。ステップ３５０１はシグナル２８００をチャネルドライバ１２０１〜１２０３へ先行配信する処理である。このシグナル先行配信の処理３５０１は概ね図１１に示す流れに従って行われる。なお、図１１において、（ａ）は主に３つのタイミング制御装置１０１２〜１０１４の処理を、（ｂ）は主にコマンド処理装置１０１７及びシグナル先行配信制御装置１０１８の処理をそれぞれ示している。
【００８８】
先ず、図１１（ａ）を参照すると、時間連動タイミング制御装置１０１２、イベント変数連動タイミング制御装置１０１３およびスケジュール連動タイミング制御装置１０１４は、スケジュールデータ記憶装置１０２１に記憶されているスケジュールデータ２１００のタイミングリスト２２００に含まれるタイミング記述オブジェクト２３００のタイミングの成否を前述したように検出しており（ステップ３００１）、タイミングが成立したことを検出すると、前述したようにコマンドＦＩＦＯデータ２８５０を作成してコマンドＦＩＦＯ行列記憶装置１０２４に格納する（ステップ３００２）。こうして、タイミングの成立したスケジュールのコマンドが順次にコマンドＦＩＦＯ行列記憶装置１０２４に蓄えられていく。
【００８９】
次に、図１１（ｂ）を参照すると、コマンドＦＩＦＯ行列記憶装置１０２４は、コマンドＦＩＦＯデータ２８５０の実行時間２８５１を先行配信時間と比較することにより（ステップ３１０１）、先行配信の対象となるコマンドＦＩＦＯデータ２８５０を検出する。そして検出すると、シグナル先行配信制御装置１０１８に先行配信を指示し、シグナル先行配信制御装置１０１８は、シグナル２８００を作成し、該当するチャネルドライバ１２０１〜１２０３へ先行配信する（ステップ３１０２）。こうして、シグナル２８００は先行配信時間と実時間との差に相当する時間だけ先行してチャネルドライバ１２０１〜１２０３へ送信される。
【００９０】
また、コマンドＦＩＦＯ行列記憶装置１０２４は、コマンドＦＩＦＯデータ２８５０の実行時間２８５１を実時間と比較することにより（ステップ３１０３）、時間の制約で先行配信できなかったコマンドＦＩＦＯデータ２８５０および変数演算式２５４１を持つコマンドＦＩＦＯデータ２８５０を検出している。そして検出すると、シグナル先行配信制御装置１０１８はコマンド処理装置１０１７に指示を出し、コマンド処理装置１０１７は、変数演算式２５４１を有するコマンドＦＩＦＯデータ２８５０については、その変数演算式２５４１を実行し、シグナル記述データ２５４２を有するコマンドＦＩＦＯデータ２８５０についてはシグナル先行配信制御装置１０１８によりシグナルを生成させて該当するチャネルドライバ１２０１〜１２０３へ送信させる（ステップ３１０４）。こうして、時間の制約で先行配信できなかったシグナルも速やかにチャネルドライバ１２０１〜１２０３へ送信され、また変数演算式２５４１を有するコマンドは実時間で実行される。
【００９１】
図１０を再び参照すると、先行配信されたシグナルは送信先のチャネルドライバ１２０１〜１２０３で実行時間２８０４になると実行され、その結果がシグナル先行配信制御装置１０１８に返されてくるので、それを受信し（ステップ３５０２）、該当するコマンドＦＩＦＯデータ２８５０のコマンド記述オブジェクト２８５２における結果２５５０に格納する（ステップ３５０３）。この結果は、「実行開始」、「実行終了」の正常系と、「対応シグナルＩＤなし」、「通信エラー」、「実行エラー」などの異常系とがある。正常系はシグナルの実行開始前と終了後の２回到着する可能性がある。
【００９２】
図１２のステップ３６００から始まる処理は、中断をともなうシグナル先行配信時の処理の流れを示している。シグナル２８００をチャネルドライバ１２０１〜１２０３に先行配信した後（ステップ３６０１）、スケジュールの中断が何らかの理由で発生した場合、中断命令がチャネルドライバ１２０１〜１２０３へ送信される（ステップ３６０２）。この時点で、同期制御サーバのスケジュールフォルダ２０００にかかるスケジュールの進行は中断し、チャネルドライバ１２０１〜１２０３側でも先行配信されたシグナルの実行が中断される。その後、中断要因が解消されたことにより、繰り下げ時間を指定した再開命令が同期制御サーバ１０００からチャネルドライバ１２０１〜１２０３へ送信されると（ステップ３６０３）、チャネルドライバ１２０１〜１２０３側では、指定された繰り下げ時間だけ実行時間を繰り下げて、先行配信されたシグナルの実行を再開する。また、同期制御サーバ１０００側もスケジュールフォルダ２０００にかかるスケジュールの進行を再開する。その後、図１０のステップ３５０２、３５０３と同様に実行結果の受信と保存とが行われる（ステップ３６０４、３６０５）。
【００９３】
図１３のステップ３７００から始まる処理は、中止をともなうシグナル先行配信時の処理の流れを示している。シグナル２８００をチャネルドライバ１２０１〜１２０３に先行配信した後（ステップ３７０１）、スケジュールの中止が何らかの理由で発生した場合、中止命令がチャネルドライバ１２０１〜１２０３へ送信される（ステップ３７０２）。この時点で、同期制御サーバのスケジュールフォルダ２０００にかかるスケジュールの進行は中止され、チャネルドライバ１２０１〜１２０３側では先行配信されていたシグナルは全て削除される。しかし、削除する前に実行してしまったシグナルについては、その旨の通知がチャネルドライバ１２０１〜１２０３からシグナル先行配信制御装置１０１８に返される。この通知は、ステップ３７０３、３７０４により、図１０のステップ３５０２、３５０３と同様にシグナル先行配信制御装置１０１８で受信され、保存される。
【００９４】
次に本実施の形態の動作を幾つかの実施例を挙げて説明する。
【００９５】
（１）実施例１
ここでは、時間連動のスケジュールの実行結果をイベントとして、イベント駆動型のスケジュールを実行して他のチャネルのスケジュールを実行する場合を想定する。スケジュールフォルダ２０００には、チャネルＡ（チャネルドライバ１２０１）のスケジュールデータ２１００およびチャネルＢ（チャネルドライバ１２０２）のスケジュールデータ２１００の両方を含んでいるものとする。このように、スケジュールフォルダ２０００に複数のチャネルのスケジュールデータを含ませることで、チャネル連携スケジュールが実現できる。
【００９６】
図１４に本実施例の処理の流れを示す。ステップ４１０１において、チャネルＡに関する時間連動スケジュールが実行され、ステップ４１０２において、シグナル２８００がチャネルドライバＡ１２０１に配信される。その後、ステップ４１０３において、チャネルドライバＡ１２０１がメディアサーバＡ１３０１を制御して、何らかの動作を行う。その動作結果か、またはその動作から派生された別の動作の結果かの、いずれかの結果がチャネルドライバＡ１２０１からイベント発生装置Ｂ１１０２に送られることにより（ステップ４１０４）、イベント発生装置Ｂ１１０２で所定のイベントＩＤが生成され、それが同期制御サーバ１０００に通知される（ステップ４０１５）。このときのイベントＩＤはスケジュールフォルダ２０００にあるイベント処理データ２７００の対応イベントＩＤと同一である。
【００９７】
ステップ４２０１において、同期制御サーバ１０００のイベント受信装置１０１６はイベントＩＤを受信し、ステップ４２０２において、イベント処理データ２７００の変数演算式２７２０が実行される。ここで、この変数演算に使う変数は変数名Ｘ、初期値０とし、変数演算式２７２０がＸ＝Ｘ＋１とすると、変動値２６３０は１、つまりＸ＝１となる。
【００９８】
変数データ２７００の変動値２６３０が変更されたので、イベント変数連動タイミング制御装置１０１３は、ステップ４２０３において、変数の比較（変数評価式の実行）を行う。実行する変数評価式は、タイミング記述オブジェクト２３００の中で、タイミング種類２３２０が「変数評価式」になっているものの、タイミングデータ２３３０に設定された変数評価式２３３１である。ここで、その変数評価式２３３１がＸ＞０であったとすると、ステップ４２０１の瞬間にこの評価式が成立していたことになる。
【００９９】
この場合、ステップ４２０４において、イベント連動型のスケジュールが実行される。ここで、そのスケジュールのコマンド記述オブジェクト２５００には、チャネルＢを指定したシグナル記述データ２５４２が記載されているとすると、ステップ４２０５において、チャネルドライバＢ１２０２に対してシグナル２８００が配信され、ステップ４２０６において、チャネルドライバＢ１３０２がメディアサーバＢ１３０２を制御する。
【０１００】
（２）実施例２
ここでは、実施例１において、変数評価式をＸ＞０ではなく、Ｘ＞１である場合を想定する。この場合、図１４のステップ４２０１の１回目のイベントＩＤの受信ではＸ＝１となりスケジュールが発行しないが、同じイベントＩＤが２回発生したら、Ｘ＝２となり、スケジュールが実行される。この実施例は、変数をイベントの媒介とすることで、イベントの組み合わせによって、イベント駆動のスケジュールの実施が可能であることを示している。
【０１０１】
（３）実施例３
ここでは、実施例１において、変数評価式がＸ＞１ではなく、（Ｘ＞０）ａｎｄ（Ｙ＞０）として、ＸとＹが両方とも０以上なら評価式が成立することを想定する。そして、変数Ｙに対して、別のイベント処理データ２７２０でＹ＝Ｙ＋１なる変数演算式を設定し、この変数演算式はイベント発生装置Ａ１１０１から送信される或るイベントＩＤで駆動されるものとする。こうしておくと、チャネルドライバＡ１２０１からの情報に基づくイベント発生装置Ｂ１１０２からのイベントＩＤと、イベント発生装置Ａ１１０１からのイベントＩＤの両方が発生した場合に、チャネルＢのスケジュールが実行される。つまり、二つのイベントの同期待ちを制御できることになる。
【０１０２】
（４）実施例４
ここでは、実施例３において、変数評価式を（Ｘ＞０）ａｎｄ（Ｙ＜０）とする場合を想定する。こうすれば、イベント発生装置Ａ１１０１がイベントＩＤを発生したら、それ以降の評価式の成立を妨げる働きをする。このことで、イベント発生装置Ａ１１０１がストッパー装置の働きをして、チャネルドライバＡ１２０１やイベント発生装置Ｂの実装を変更することなく、ストッパー装置を実現することができる。
【０１０３】
（５）実施例５
図１５は本実施例の説明のために用いるブロック図である。同期制御サーバ４３０１は図７に示したものと同じであるが、ここではイベント発生装置Ａ、Ｂも含んでいるものとする。また、Ｗｅｂサーバ４３０２、映像配信サーバ４３０３、４３０４は、チャネルドライバとメディアサーバを含んでいるものとする。同期制御サーバ４３０１は、Ｗｅｂサーバ４３０２、映像配信サーバ４３０３、４３０４の同期を制御しており、複数の一般視聴者４３０５はそれぞれのサーバからのメディアデータを視聴している。
【０１０４】
図１６に一般視聴者４３０５側の画面構成例を示す。映像画面４３１４は、映像配信サーバ４３０３、４３０４から提供される映像を表示する画面である。他方、Ｗｅｂサーバ４３０２の画面を視聴するために、Ｗｅｂブラウザ４３１０があり、この実施例では総合情報を表示するペイン４３１１、映像画面の詳細情報を表示するペイン４３１２、ユーザのアクションを実施するペイン４３１３から構成されるものとする。本実施例では、これらの画面で表示する内容を同期制御サーバ4301で切り替える。なお、映像画面４３１４はＷｅｂブラウザ４３１０に含めることもあり、外部のブラウザに表示するか、あるいはテレビ画面に表示することもあり得る。また、Ｗｅｂサーバ４３０２には、アンケートが１０００件に達したらイベントＥの発行を求める機能、および１０００件中のアンケートの回答の過半数が賛成になっていたら、イベントＦの発行を求める機能を有しているものとする。
【０１０５】
一般視聴者は、映像を複数の映像配信サーバ４３０３、４３０４から視聴し、同時にＷｅｂブラウザ４３１０を利用して、Ｗｅｂサーバ４３０２のＨＴＭＬページの視聴およびアンケートに対する回答を行う。同期制御サーバ４３０１には、図１７に示されるようなスケジュールデータ４３２１〜４３２５が格納されている。このスケジュールデータ４３２１〜４３２５により、以下のようなスケジュールが実行される。
【０１０６】
０時になると、スケジュールデータ４３２１にしたがって、Ｗｅｂサーバ４３０２からペイン4311に、番組の総合情報が記載されたＨＴＭＬページＴが表示される。
【０１０７】
１時になると、スケジュールデータ４３２２にしたがって、Ｗｅｂサーバ４３０２からペイン４３１２に、映像Ｑの参照方法を記述したＨＴＭＬページＱが表示され、同時に映像配信サーバ４３０３から映像Ｑの配信が開始される。一般視聴者は、ＨＴＭＬページＱに記述されている参照方法にしたがって、映像画面４３１４において、映像配信サーバ４３０３から映像Ｑを視聴する。
【０１０８】
２時になると、スケジュールデータ４３２４にしたがって、Ｗｅｂサーバ４３０２からペイン４３１２に、映像Ｑに対するアンケート画面が表示され、アンケートが開始される。アンケート画面を表示するスケジュールデータ４３２４は、その終了タイミングが３時とイベントＥ発生の論理和である。他方、Ｗｅｂサーバ４３０２では、アンケートが１０００件に達したら、イベントＥの発行を求めるため、アンケートが１０００件に達した時点でイベントＥが同期制御サーバ１０００に送信される。従って、スケジュールデータ４３２４によるアンケート画面の表示は、アンケートが１０００件に達してイベントＥが発生するか、３時になるか、その早い方で終了することになる。
【０１０９】
２時５７分になると、スケジュールデータ４３２２にしたがって、Ｗｅｂサーバ４３０２がＨＴＭＬページＱの表示を終了し、視聴者の誘導を停止する。
【０１１０】
３時になると、スケジュールデータ４３２２にしたがって、映像配信サーバ４３０３が映像Ｑの配信を終了する。同時にスケジュールデータ４３２３にしたがって、Ｗｅｂサーバ４３０２からペイン４３１２に、映像Ｒの参照方法を記述したＨＴＭＬページＲが表示され、同時に映像配信サーバ４３０４から映像Ｒの配信が開始される。一般視聴者は、ＨＴＭＬページＲに記述されている参照方法にしたがって、映像画面４３１４において、映像配信サーバ４３０４から映像Ｒを視聴する。また、スケジュールデータ４３２４にしたがって、イベントＥがまだ発生していなかったら、即ちアンケート回答が１０００件に達していなくても、Ｗｅｂサーバ４３０２はアンケート画面の表示を終了する。
【０１１１】
４時５７分になると、スケジュールデータ４３２３にしたがって、Ｗｅｂサーバ４３０２がＨＴＭＬページＲの表示を終了し、視聴者の誘導を停止する。
【０１１２】
５時になると、スケジュールデータ４３２３にしたがって、映像配信サーバ４３０４が映像Ｒの配信を終了する。
【０１１３】
スケジュールデータ４３２５は、イベントＦと５時の論理積で表してあり、両方成立した場合に、映像配信サーバ４３０３から映像Ｓの配信を開始する。イベントＦはアンケートの回答の賛成が過半数であったことを表しており、過半数が肯定的な意見だった場合に、映像Ｆが視聴者画面４３１４に提供されることになる。
【０１１４】
以上本発明の実施の形態および実施例について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。例えば、タイミング記述オブジェクト２３００は、別のタイミング記述オブジェクト２３００を入れ子構造で保有するようにしても良い。例えば、開始、終了タイミングの対のタイミング記述オブジェクト２３００を複数保有したタイミング記述オブジェクト２３００を有していても良い。タイミング記述オブジェクト２３００が入れ子になっていた場合、親のオブジェクトが複数の子を保有することになるため、親のタイミングの成立条件として、子同士のタイミング成立の論理積や論理和を指定することができる。また、１つのスケジュールフォルダ２０００だけからなる配信スケジュール情報について説明したが、複数のスケジュールフォルダ２０００を含む配信スケジュール情報であっても良い。この場合、スケジュールの中止、中断、再開がスケジュールフォルダ単位で実施される。
【０１１５】
【発明の効果】
以上説明したように本発明によれば、時間だけでなくイベントによっても配信スケジュールを立てることができ、チャネル連携などを柔軟に実施することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態の構成図である。
【図２】本発明の実施の形態におけるスケジュールフォルダの論理構成例を示す図である。
【図３】本発明の実施の形態における変数データおよびイベント処理データの論理構成例を示す図である。
【図４】本発明の実施の形態におけるタイミングリストの論理構成例を示す図である。
【図５】本発明の実施の形態におけるコマンドリストの論理構成例を示す図である。
【図６】本発明の実施の形態におけるシグナルの論理構成例を示す図である。
【図７】本発明の実施の形態における同期制御サーバの内部構成例を示すブロック図である。
【図８】本発明の実施の形態におけるコマンドＦＩＦＯデータの論理構成例を示す図である。
【図９】本発明の実施の形態におけるチャネルドライバの内部構成例を示すブロック図である。
【図１０】通常のシグナル先行配信時の処理の流れを示すフローチャートである。
【図１１】シグナル先行配信処理の概略を示すフローチャートである。
【図１２】中断をともなうシグナル先行配信時の処理の流れを示すフローチャートである。
【図１３】中止をともなうシグナル先行配信時の処理の流れを示すフローチャートである。
【図１４】実施例１の説明に用いるフローチャートである。
【図１５】実施例５の説明に用いるブロック図である。
【図１６】実施例５の説明に用いる一般視聴者側の画面構成例を示す図である。
【図１７】実施例５の説明に用いるスケジュールデータの例を示す図である。
【図１８】従来技術のブロック図である。
【符号の説明】
１０００…同期制御サーバ
１１０１、１１０２…イベント発生装置
１２０１〜１２０３…チャネルドライバ
１３０１〜１３０３…メディアサーバ
１４０１…スケジュール編集装置
１５０１…ネットワーク
１６０１、１６０２…クライアント端末
１７０１…外部システム
１８０１…操作卓
【図１】
0003801014.tif 000002
【図２】
0003801014.tif 000003
【図３】
0003801014.tif 000004
【図４】
0003801014.tif 000005
【図５】
0003801014.tif 000006
【図６】
0003801014.tif 000007
【図７】
0003801014.tif 000008
【図８】
0003801014.tif 000009
【図９】
0003801014.tif 000010
【図１０】
0003801014.tif 000011
【図１１】
0003801014.tif 000012
【図１２】
0003801014.tif 000013
【図１３】
0003801014.tif 000014
【図１４】
0003801014.tif 000015
【図１５】
0003801014.tif 000016
【図１６】
0003801014.tif 000017
【図１７】
0003801014.tif 000018
【図１８】
0003801014.tif 000019