(57)【特許請求の範囲】
【請求項１】
外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信するメッセージ変換実行装置であって、
前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベースが記憶されている記憶部と、
前記レコードの追加、削除、変更を含む更新処理を行うレコード更新部と、
送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するメッセージ解析部と、
前記メッセージ識別子を取得し、自身が保持する前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定する振り分け制御部と、
前記検索条件を用いて、前記データベースを検索し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す１つ以上の検索結果を、マシン複製処理部に出力するレコード検索部と、
前記１つ以上の検索結果を取得し、前記取得した検索結果が２つ以上であった場合に、前記取得した検索結果の数から１を引いた数だけ、前記振り分け制御部およびアクション実行部を複製し、前記振り分け制御部および前記複製された振り分け制御部に、前記検索結果それぞれを出力する前記マシン複製処理部と、を備え、
前記振り分け制御部は、
前記検索結果を取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果をアクション実行部に出力し、
前記アクション実行部は、
当該検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信し、
前記複製された振り分け制御部は、
前記検索結果を取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果を前記複製されたアクション実行部に出力し、
前記複製されたアクション実行部は、
当該検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信すること、
を特徴とするメッセージ変換実行装置。
【請求項２】
外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信するメッセージ変換実行装置のメッセージ変換実行方法であって、
前記メッセージ変換実行装置は、
前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベースが記憶されている記憶部を備え、
前記レコードの追加、削除、変更を含む更新処理を行うステップと、
送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するステップと、
前記メッセージ識別子を取得し、自身が保持する前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定するステップと、
前記検索条件を用いて、前記データベースを検索し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す２つ以上の検索結果を得るステップと、
前記２つ以上の検索結果のうちの１つを取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果を出力するステップ（内部状態更新ステップ）と、
当該出力された検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信するステップ（アクション実行ステップ）と、
前記内部状態更新ステップおよび前記アクション実行ステップを、未処理の前記検索結果のうちの１つを取得して実行するステップと、
を実行すること特徴とするメッセージ変換実行方法。
【請求項３】
外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信し、
前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベースが記憶されている記憶部を備えるコンピュータに、
前記レコードの追加、削除、変更を含む更新処理を行うステップと、
送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するステップと、
前記メッセージ識別子を取得し、自身が保持する前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定するステップと、
前記検索条件を用いて、前記データベースを検索し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す２つ以上の検索結果を得るステップと、
前記２つ以上の検索結果のうちの１つを取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果を出力するステップ（内部状態更新ステップ）と、
当該出力された検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信するステップ（アクション実行ステップ）と、
前記内部状態更新ステップおよび前記アクション実行ステップを、未処理の前記検索結果のうちの１つを取得して実行するステップと、
を実行させるためのプログラム。
【請求項４】
外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信するメッセージ変換実行装置であって、
（１）前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベース、および（２）前記レコードの更新処理が必要か否かを判定するための所定の判定情報と、前記判定の結果、前記更新処理が必要と判定された場合の更新対象となる前記レコードの更新情報とが格納される更新データベース、が記憶されている記憶部と、
前記レコードの追加、削除、変更を含む更新処理を行うレコード更新部と、
送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するメッセージ解析部と、
前記メッセージ識別子を取得し、自身が保持する前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定し、
前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す検索結果を取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果を、アクション実行部に出力する振り分け制御部と、
前記検索条件を用いて、前記データベースを検索し、前記検索結果を、前記振り分け制御部に出力するレコード検索部と、
前記検索結果を取得し、前記検索結果に含まれる前記変換処理後の情報を用いて、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信する前記アクション実行部と、を備え、
前記アクション実行部は、前記外部装置または前記他の外部装置から所定のメッセージを取得した場合に、前記判定情報を用いて、前記データベースの前記レコードの追加、削除、変更を含む更新処理が必要か否かを判定し、前記更新処理が必要と判定したとき、前記更新データベースから前記更新対象となるレコードの更新情報を取得して、前記レコード更新部に送信し、
前記レコード更新部は、前記更新情報を用いて、前記データベースの前記更新対象となるレコードの前記更新処理を実行すること、
を特徴とするメッセージ変換実行装置。
【請求項５】
外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信するメッセージ変換実行装置のメッセージ変換実行方法であって、
前記メッセージ変換実行装置は、
（１）前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベース、および（２）前記レコードの更新処理が必要か否かを判定するための所定の判定情報と、前記判定の結果、前記更新処理が必要と判定された場合の更新対象となる前記レコードの更新情報とが格納される更新データベース、が記憶されている記憶部を備えており、
前記レコードの追加、削除、変更を含む更新処理を行うステップと、
送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するステップと、
前記メッセージ識別子を取得し、前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定するステップと、
前記検索条件を用いて前記データベースを検索し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す検索結果を取得するステップと、
前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記内部状態を更新するステップと、
前記検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信するステップと、
前記外部装置または前記他の外部装置から所定のメッセージを取得した場合に、前記判定情報を用いて、前記データベースの前記レコードの追加、削除、変更を含む更新処理が必要か否かを判定するステップと、
前記更新処理が必要と判定された場合に、前記更新データベースから前記更新対象となるレコードの更新情報を取得するステップと、
前記取得した更新情報を用いて、前記データベースの前記更新対象となるレコードの前記更新処理を実行するステップと、
を実行することを特徴とするメッセージ変換実行方法。
【請求項６】
外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信し、
（１）前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベース、および（２）前記レコードの更新処理が必要か否かを判定するための所定の判定情報と、前記判定の結果、前記更新処理が必要と判定された場合の更新対象となる前記レコードの更新情報とが格納される更新データベース、が記憶されている記憶部を備えるコンピュータに、
前記レコードの追加、削除、変更を含む更新処理を行うステップと、
送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するステップと、
前記メッセージ識別子を取得し、前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定するステップと、
前記検索条件を用いて前記データベースを検索し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す検索結果を取得するステップと、
前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記内部状態を更新するステップと、
前記検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信するステップと、
前記外部装置または前記他の外部装置から所定のメッセージを取得した場合に、前記判定情報を用いて、前記データベースの前記レコードの追加、削除、変更を含む更新処理が必要か否かを判定するステップと、
前記更新処理が必要と判定された場合に、前記更新データベースから前記更新対象となるレコードの更新情報を取得するステップと、
前記取得した更新情報を用いて、前記データベースの前記更新対象となるレコードの前記更新処理を実行するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ変換実行装置、メッセージ変換実行方法およびプログラムに関する。
【背景技術】
【０００２】
通信事業者の大規模網にかかるコストを削減するため、網を構成する多様な装置群を管理するＥＭＳ（Element Management System）における内部機能の共通化が検討されている。図１（ａ）に示すように、このＥＭＳ１００ａは、上位ＯｐＳ（Operation System）２００と装置（例えば、ルータや伝送装置）３００との間に設けられる。そして、ＥＭＳ１００ａは、図１（ｂ）に示すように、上位ＯｐＳ２００からの、ＳＮＭＰ（Simple Network Management Protocol）やＣＭＩＰ（Common Management Information Protocol）といった共通プロトコルによるメッセージを、ＥＭＳ１００ａ内の管理用プロトコル処理部が受信し、プロトコル変換処理部が、装置３００固有のコマンドやプロトコルに変換して、各装置３００に固有の装置用コマンド・プロトコル処理部を介して、各装置３００に送信する（非特許文献１参照）。各装置３００からの応答メッセージ等もＥＭＳ１００ａを介して、プロトコル等の変換処理を行い、上位ＯｐＳ２００に送信される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“Principles for a telecommunications management network,”［online］，2000/03，ITU-T Recommendation M.3010，［平成２３年６月１５日検索］，インターネット<http://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-M.3010-200002-I!!PDF-E&type=items>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のＥＭＳ１００ａは、装置ベンダが装置毎に特化して実装しており、そもそも共通プロトコルの変更や装置固有のコマンドや操作の変更に対応していないものであった。つまり、図１において、共通プロトコルを変更しようとすると、ＥＭＳ１００ａ内の管理用プロトコル処理部やプロトコル変換処理部を新たな共通プロトコルを対応させるように変更する必要がある。また、装置固有のコマンドや操作を変更しようとすると、ＥＭＳ１００ａ内の装置用コマンド・プロトコル処理部やプロトコル変換処理部の変更が必要になる。
【０００５】
プロトコル変換処理部内では、共通プロトコルと装置固有のコマンドや操作とを対応付ける変換処理を実現しているが、この変換処理を実現するルール（プログラム）は、ＥＭＳ１００ａの制御部を実現するプログラムファイルの中に直接ハードコーディングされることが多い。よって、ＥＭＳ１００ａのシステムを止めることなく、この変換処理のルールの追加や削除、変更ができないものであった。
【０００６】
このような背景に鑑みて本発明がなされたのであり、本発明は、システムを止めることなく、変換処理のルールの追加や削除、変更を可能にする、メッセージ変換実行装置、メッセージ変換実行方法およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１１】
また、本発明は、外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信するメッセージ変換実行装置であって、前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベースが記憶されている記憶部と、前記レコードの追加、削除、変更を含む更新処理を行うレコード更新部と、送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するメッセージ解析部と、前記メッセージ識別子を取得し、自身が保持する前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定する振り分け制御部と、前記検索条件を用いて、前記データベースを検索し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す１つ以上の検索結果を、マシン複製処理部に出力するレコード検索部と、前記１つ以上の検索結果を取得し、前記取得した検索結果が２つ以上であった場合に、前記取得した検索結果の数から１を引いた数だけ、前記振り分け制御部およびアクション実行部を複製し、前記振り分け制御部および前記複製された振り分け制御部に、前記検索結果それぞれを出力する前記マシン複製処理部と、を備え、前記振り分け制御部が、前記検索結果を取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果をアクション実行部に出力し、前記アクション実行部が、当該検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信し、前記複製された振り分け制御部が、前記検索結果を取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果を前記複製されたアクション実行部に出力し、前記複製されたアクション実行部が、当該検索結果に含まれる前記変換処理後の情報を取得し、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信すること、を特徴とするメッセージ変換実行装置とした。
【００１２】
このようにすることで、メッセージ変換実行装置は、データベースから複数の検索結果が得られる場合であっても、送信先となる外部装置自身または他の外部装置に応じた所定形式の情報に変更等があったときに、データベースのレコードを追加、削除、変更することにより、メッセージ変換実行装置全体の処理を止めることなくメッセージの変換処理を実現することができる。
【００１５】
また、本発明は、外部装置と、前記外部装置以外の他の外部装置と接続され、前記外部装置から送信先となる当該外部装置自身または前記他の外部装置に対して送受信されるメッセージを、前記送信先に応じた所定形式の情報に変換処理して前記送信先に送信するメッセージ変換実行装置であって、（１）前記外部装置から送信されるメッセージの内容に固有なメッセージ識別子と、前記メッセージを送受信する一連のプロセス中の段階を示す内部状態とに対応付けて、次の前記段階を示す新たな内部状態と、前記送信先となる前記外部装置自身または前記他の外部装置に応じた所定の形式に変換処理後の情報とを示すレコードが格納されるデータベース、および（２）前記レコードの更新処理が必要か否かを判定するための所定の判定情報と、前記判定の結果、前記更新処理が必要と判定された場合の更新対象となる前記レコードの更新情報とが格納される更新データベース、が記憶されている記憶部と、前記レコードの追加、削除、変更を含む更新処理を行うレコード更新部と、送信元となる前記外部装置から、前記メッセージを受信してその内容を解析し、当該内容に基づいて、前記メッセージ識別子を生成するメッセージ解析部と、前記メッセージ識別子を取得し、自身が保持する前記内部状態および前記メッセージ識別子を、前記データベースを検索する検索条件として設定し、前記検索条件、前記新たな内部状態および前記変換処理後の情報を示す検索結果を取得し、前記取得した検索結果に含まれる前記新たな内部状態を用いて、前記自身が保持する内部状態を更新し、前記検索結果を、アクション実行部に出力する振り分け制御部と、前記検索条件を用いて、前記データベースを検索し、前記検索結果を、前記振り分け制御部に出力するレコード検索部と、前記検索結果を取得し、前記検索結果に含まれる前記変換処理後の情報を用いて、前記送信先となる前記外部装置自身または前記他の外部装置が実行可能なメッセージを生成し、当該送信先に送信する前記アクション実行部と、を備え、前記アクション実行部が、前記外部装置または前記他の外部装置から所定のメッセージを取得した場合に、前記判定情報を用いて、前記データベースの前記レコードの追加、削除、変更を含む更新処理が必要か否かを判定し、前記更新処理が必要と判定したとき、前記更新データベースから前記更新対象となるレコードの更新情報を取得して、前記レコード更新部に送信し、前記レコード更新部が、前記更新情報を用いて、前記データベースの前記更新対象となるレコードの前記更新処理を実行すること、を特徴とするメッセージ変換実行装置とした。
【００１６】
このようにすることで、メッセージ変換実行装置は、外部装置または他の外部装置から所定のメッセージを取得し、レコードの更新処理が必要と判定した場合に、更新データベースの更新情報を用いて、レコードの更新処理を実行することができる。つまり、外部からの処理の変更要請等を示す所定の情報に基づき、データベースに記憶されたレコードを自己改変することができる。
【発明の効果】
【００１７】
本発明によれば、システムを止めることなく、変換処理のルールの追加や削除、変更を可能にする、メッセージ変換実行装置、メッセージ変換実行方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】従来技術におけるＥＭＳを含むシステムの構成と、ＥＭＳの機能とを説明するための図である。
【図２】比較例である条件分岐文による変換処理を説明するための図である。
【図３】ＴＦＴＰ（Trivial File Transfer Protocol）のプロトコルシーケンスを示す図である。
【図４】ＴＦＴＰサーバの状態遷移表を示す図である。
【図５】図４を、Ｃ言語における関数のポインタの二次元配列として示す図である。
【図６】比較例である二次元配列による変換処理を説明するための図である。
【図７】チューリングマシンの処理を説明するための図である。
【図８】本実施形態に係るメッセージ変換実行装置の概要を説明するための図である。
【図９】本実施形態に係るメッセージ変換実行装置（ＥＭＳ）の構成例を説明するための図である。
【図１０】非決定性チューリングマシンの処理を説明するための図である。
【図１１】決定性チューリングマシンと非決定性チューリングマシンとにおける、全体の処理の流れの違いを説明するための図である。
【図１２】非決定性チューリングマシンの計算モデルを適用した、本実施形態の第１の変形例に係るメッセージ変換実行装置を説明するための図である。
【図１３】万能チューリングマシンの計算モデルを適用した、本実施形態の第２の変形例に係るメッセージ変換実行装置を説明するための図である。
【図１４】本実施形態の第３の変形例に係る自己改変型のメッセージ変換実行装置を説明するための図である。
【発明を実施するための形態】
【００１９】
次に、本発明を実施するための形態（以下、「実施形態」という）について、適宜図面を参照しながら詳細に説明する。
【００２０】
（比較例）
まず、比較例として、ＥＭＳ１００ａが上位ＯｐＳ２００との間の共通のプロトコルを装置３００固有のコマンドや操作に対応させる「変換処理」を実現する方法について、２つの例を説明する。
【００２１】
＜比較例１：条件分岐文＞
図２は、比較例である条件分岐文を用いて変換処理を実現する例を説明するための図である。
【００２２】
ＥＭＳ１００ａにおいて、共通のプロトコルを装置固有のコマンドや操作に対応させる「変換処理」を実現するために、条件分岐文を用いる方法が広く知られている（例えば、非特許文献２：結城  浩、「Ｊａｖａ言語で学ぶデザインパターン入門」、ソフトバンク クリエイティブ株式会社、2004年6月30日、p.285-305）。
【００２３】
この条件分岐文を用いる方法では、図２に示すように、変換前の入力（ここでは、ＳＮＭＰやＣＭＩＰ等の共通プロトコル）を「条件値」に対応させ、変換後の出力処理（ここでは、装置固有のコマンドや操作）を「アクション」に対応させて処理する。つまり、共通プロトコルを用いたあるメッセージをＥＭＳ１００ａが受信すると、その共通プロトコルの内容を解析して、その内容（条件値）にあった、アクション（装置固有のコマンドや操作）を実行する。
【００２４】
この条件分岐文を用いる方法では、通常「条件値」と「アクション」の対（以下「ルール」とよぶ）が、制御部を実現するプログラムファイル本体の中に直接ハードコーディングされる。よって、ＥＭＳ１００ａのシステムを止めることなくルールの追加や、削除、変更を行うことはできない。
【００２５】
＜比較例２：状態遷移をテーブル形式で表す方法＞
「変換処理」を実現する方法として、上記のように、条件分岐文を用いる方法以外に、ＴＦＴＰ（Trivial File Transfer Protocol）サーバの状態遷移を有限状態機械としてテーブルで表す方法がある（例えば、非特許文献３：Ｗ．リチャード・スティーヴンス、「ＵＮＩＸネットワークプログラミング」、トッパン、1992、p.551-620）。
【００２６】
非特許文献３では、ＴＦＴＰのプロトコルマシンを例示しており、そこで示されたプロトコルシーケンスを例として説明する。
【００２７】
図３は、ＴＦＴＰのプロトコルシーケンスを示す図である。図３（ａ）は、クライアントがサーバからファイルを受信する場合を示し、図３（ｂ）は、クライアントからサーバへファイルを送信する場合を示している。
【００２８】
この図３（ａ）および図３（ｂ）を基に、サーバの状態遷移表を作成すると図４のようになる。
図４は、例えば、受信前に送ったパケット（「行」）が「ＤＡＴＡ」であり、受信したパケット（「列」）が「ＡＣＫ」である場合に、次の状態に遷移することを示す（符号［３］、および図３（ａ）参照）。また、受信前に送ったパケット（「行」）が「ＡＣＫ」であり、受信したパケット（「列」）が「ＤＡＴＡ」である場合に、次の状態に遷移することを示している（符号［４］、および図３（ｂ）参照）。ここで、図４において、符号［１］〜［４］は、「行」および「列」の条件を満たした場合に、何らかのパケットを送信して次の状態に遷移することを示している。
【００２９】
この図４を、Ｃ言語の関数のポインタの二次元配列で表すと図５のようになる（なお、図４の符号［１］〜［４］に相当する部分を、図５では下線を引いている）。
状態遷移をテーブル形式で表す方法では、図５に示すように、図４の状態遷移表を二次元配列で表現し、配列のインデックスを「条件値」とみなし、その配列の値（関数のポインタ）によって呼び出される関数を「アクション」とみなして、「変換処理」を実現する。
【００３０】
この状態遷移をテーブル形式で表す方法の場合、通常「条件値」と「アクション」の対（「ルール」）が、二次元配列として制御部からのみアクセスされる（図６参照）。しかし、この二次元配列は、通常ランタイム・メモリ上に展開されているため、ＥＭＳ１００ａのシステムを止めることなくルールの追加や、削除、変更を行うことはできない。また、設定ファイル等から、直接二次元配列を読み出す方法では、排他制御の観点からルールの追加や、削除、変更を行うことは難しい。
【００３１】
以上説明したように、比較例における、共通のプロトコルと装置固有のコマンドや操作との「変換処理」の実現方法では、「条件値」（例えば、共通プロトコル）に対応した「アクション」（装置固有のコマンドや操作）を、システムを止めることなく、追加、削除、変更等を行うことができないものであった。
【００３２】
（本実施形態）
次に、本実施形態に係るメッセージ変換実行装置について、ＥＭＳ１００を例として具体的に説明する。
【００３３】
（フレームワーク）
まず、本実施形態に係るメッセージ変換実行装置（ＥＭＳ１００）の構成について説明する前に、本発明を基礎付ける重要な技術として、チューリングマシン（Turing machine）を説明する。チューリングマシンは、現在の計算機の基本となる抽象的な計算モデルである。以下に説明するチューリングマシンの計算モデルにおける状態関数の概念を持ち込み、追加修正を加えることで、メッセージ変換実行装置（ＥＭＳ１００）において、共通のプロトコルを装置固有のコマンドや操作に対応させるという「変換処理」を、システムを止めることなく実行できるようする。
なお、チューリングマシンについては、次の文献（非特許文献４：M.Davis, "Computability and Unsolvability," Dover, New York, 1985、非特許文献５：細井 勉、「計算の基礎理論」、教育出版、1975、 非特許文献６：岩田 茂、「ＮＰ完全問題入門」、共立出版、1995）に詳しい。
【００３４】
＜チューリングマシン＞
チューリングマシンは、図７に示すように、左右両方に無限に伸びているテープ１と、ＴＭ（Turing machine）制御部２とからなる。テープはます目に分けられており、各ます目には１つだけ記号（Ｓ：「テープ記号」とよぶ）を書くことができる。
【００３５】
ＴＭ制御部２には、テープ１のます目の記号（Ｓ：「テープ記号」）を読み取ったり書き換えたりするためのヘッド３が付いているものとし、このヘッド３は、一時点では１つのます目を眺める（読み取る）ことができ、かつヘッド３が動くことにより、テープ１の眺めているます目の位置を１つだけ左か右に移動させることができる。
【００３６】
このチューリングマシンは、以下の条件を満たす対（Ｋ,Σ,δ,ｑｓ,ｑＨ）により定義される。
【００３７】
（１）Ｋは空でない有限集合（Ｋの要素を内部状態とよぶ）。
（２）Σは空でない有限集合（Σの要素をテープ記号とよぶ）。
（３）δはＫ×ΣからΣ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝への部分関数（δを状態関数、集合｛Ｌ,Ｒ,ＮＯＰ｝の要素をアクションとよぶ）。なお、ＮＯＰの場合は、ヘッド３を動かさない。ここで、δは、Ｋ×Σ×Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝の部分集合として表すことができる。
（４）ｑｓ∈Ｋ（ｑｓを開始状態とよぶ）。
（５）ｑＨ∈Ｋ（ｑＨを停止状態とよぶ）。
【００３８】
図７は、例として、状態関数δが、δ（ｑ１,Ｓ１）＝（Ｓ２,ｑ２,Ｒ）の場合を示している。図７に示すように、チューリングマシンは、ＴＭ制御部２に内部状態を持ち、その内部状態（「ｑ１」）と、ヘッド３が眺めている（読み取る）記号（テープ記号：「Ｓ１」）とに応じて、以下の３つの行動を、１つのステップ（ステップＳ１）として実行する。
【００３９】
（ステップＳ１−１）ヘッド３が眺めているます目に（新たに）ある記号（テープ記号：「Ｓ２」）を書き込む（前と同じ記号でもよい）。
（ステップＳ１−２）ＴＭ制御部２の内部状態（「ｑ１」）を新しい内部状態（「ｑ２」）に書き換える（元の内部状態と同じでもよい）。
（ステップＳ１−３）ヘッド３を１ますだけ左（Ｌ）若しくは右（Ｒ）に動かす、または、ＮＯＰの場合は動かさない（アクションを実行する）。この例では右（Ｒ）に動かす。
【００４０】
（概要）
次に、前記したチューリングマシンの計算モデルを発展させた本実施形態に係るメッセージ変換実行装置の概要について説明する。
図８は、本実施形態に係るメッセージ変換実行装置の概要を説明するための図である。
【００４１】
図８に示すように、本実施形態に係るメッセージ変換実行装置は、外部装置（例えば、上位ＯｐＳ２００や各装置３００）からのメッセージを受け取り、そのメッセージを構文解析するメッセージ解析部１０と、チューリングマシンにおいて説明した内部状態を持つ振り分け制御部２０と、新しい内部状態（不図示）と条件値に対応したプログラム（アクション）とが記憶されるデータベース３０と、取得したアクションに基づき処理を実行するアクション実行部４０とを含んで構成される。なお、ここでのメッセージは、一般的なコンピュータや機械、装置等に与える命令であるコマンドを含む概念である。
【００４２】
このメッセージ変換実行装置の処理の流れは、まず、メッセージ解析部１０が受け取ったメッセージを振り分け制御部２０に出力する。そして、振り分け制御部２０は、内部状態を含む条件値（図８では、条件値「１」）をデータベース３０に出力する。そして、振り分け制御部２０は、検索結果として、新しい内部状態（不図示）と１つのアクション（ここでは、アクション「１」）とを取得し、内部状態を書き換えた上で、アクション（アクション「１」）を含む検索結果をアクション実行部４０に出力する。
【００４３】
本実施形態に係るメッセージ変換実行装置の構成上の特徴は、以下の４点である。
【００４４】
（特徴Ａ）
図１（ｂ）のＥＭＳ１００ａにおいて説明した変換処理に関連する機能を、本メッセージ変換実行装置においては、メッセージ解析部１０、振り分け制御部２０、データベース３０、アクション実行部４０の４つに分離する。特に、振り分け制御部２０と、データベース３０とを分離し、データベース３０独自で、例えば、上位ＯｐＳ２００や各装置３００のプロトコルや、コマンド・操作の変更に対応できるようにする。
【００４５】
（特徴Ｂ）
データベース３０には、外部装置との間のプロトコル等の違い、例えば、上位ＯｐＳ２００や装置３００に対するプロトコルや操作コマンド等の違いによらない共通のテーブルが用いられる。このことにより、上位ＯｐＳ２００や各装置３００へのコマンドや操作の変更に対応するために、このデータベース３０に行うことは、レコードの追加や、削除、変更だけであり、データベース３０自身、さらには、テーブル自体を変更する必要がない。
【００４６】
（特徴Ｃ）
振り分け制御部２０は、メッセージ解析部１０、データベース３０およびアクション実行部４０との間の情報の受信および送信のみを行い、その間の送受信される情報（メッセージ等）の中身は解釈しない。つまり、メッセージ解析部１０から受信したメッセージの内容は解釈せず、振り分け制御部２０は、メッセージ解析部１０により付された本メッセージ変換実行装置が送受信するメッセージの内容を示す固有のメッセージ識別子（後記する「メッセージ番号」）と、その時の内部状態とを、条件値として、データベース３０に送信する。このとき、振り分け制御部２０は、メッセージの内容（メッセージ番号の値）および内部状態の値を解釈せずに、データベース３０に送信する。また、振り分け制御部２０は、データベース３０から受信した検索結果に基づき、内部状態を更新し、アクションを含む検索結果をアクション実行部４０に送信する。このときも、振り分け制御部２０は、更新する内部状態の値を解釈しない、また、アクションの中身の解釈も行わない。
【００４７】
（特徴Ｄ）
データベース３０は、後記するデータベース管理部３２（図９参照）を備えており、このデータベース管理部３２が、データベース３０内のレコードの追加、削除、更新等を行う際に排他制御を実現することにより、データの一貫性を保持する。
【００４８】
＜チューリングマシンとの対応関係＞
本実施形態に係るメッセージ変換実行装置と、前記において説明したチューリングマシンとの対応関係について説明する。
【００４９】
まず、チューリングマシンにおける状態関数δをデータベース３０の特定のスキーマのレコード全体とみなす。状態関数δの入力値（内部状態，テープ記号）を、ＳＱＬ（Structured Query Language）のＳＥＬＥＣＴ文の引数とみなす。つまり、状態関数の入力（図７において、ヘッド３が見ていたテープ記号とテープ記号を読み出したときのＴＭ制御部２の内部状態）は、ＳＥＬＥＣＴ文の検索キー（検索条件）とみなすことができる。
【００５０】
チューリングマシンにおけるテープ記号の書き換えやヘッドのアクションを、本メッセージ変換実行装置が管理する外部装置（例えば、上位ＯｐＳ２００や各装置３００）に対して行う、プロトコルの変更や、各装置３００のコマンドや操作の処理（アクション）に相当するとみなすことができる。
【００５１】
チューリングマシンにおける状態関数δの出力に相当するＳＥＬＥＣＴ文の検索結果は、「検索キー（検索条件）」と「振り分け制御部２０の次の内部状態」と「外部装置（上位ＯｐＳ２００や各装置３００）への様々な操作を行うプログラム（アクション）」からなるレコードとみなすことができる。つまり、データベース３０の特定のスキーマは、「検索キー（検索条件）」と「振り分け制御部２０の次の内部状態」と「外部装置（上位ＯｐＳ２００や各装置３００）への様々な操作を行うプログラム」をテーブル属性に持つことを示す。
【００５２】
チューリングマシンにおける状態関数δを定義することは、データベース３０の特定のスキーマのレコードを追加することとみなすことができる。
【００５３】
このような考え方に基づいて、外部装置（上位ＯｐＳ２００や装置３００等）の種類によらず、「外部装置（上位ＯｐＳ２００や各装置３００）への様々な操作を行うプログラム」を共通のデータベース３０に格納する。そして、データベース３０に対して、ＳＱＬのＳＥＬＥＣＴ文のような共通の問い合わせ（クエリ）インタフェースでプログラムを、検索、追加、削除、変更できるようにする。このようにすることで、外部装置（上位ＯｐＳ２００や各装置３００）へのプログラムの追加や変更が行われても、データベース３０を操作するだけで済む。つまり、外部装置（上位ＯｐＳ２００や各装置３００）へのプログラムの追加や変更に対して、本メッセージ変換実行装置を止めることなく柔軟に対応することができる。
【００５４】
（本実施形態の構成）
次に、本実施形態に係るメッセージ変換実行装置の構成について説明する。本実施形態においては、メッセージ変換実行装置の具体例をＥＭＳ１００として説明する。
【００５５】
図９は、メッセージ変換実行装置（ＥＭＳ１００）の構成例を説明するための図である。このＥＭＳ１００は、システム全体を管理する上位ＯｐＳ２００と、網を構成する装置３００（例えば、ルータや伝送装置等）と接続される。そして、ＥＭＳ１００は、上位ＯｐＳ２００からの共通プロトコル等で生成されたメッセージを取得して、そのメッセージを個々の装置３００に固有のコマンドや操作を示す情報（アクション）に変換処理し、その装置３００に送信する。なお、装置３００は、図９においては、１つの装置３００しか記載していないが、ネットワークを構成する複数の装置３００それぞれとＥＭＳ１００とが接続されている。以下、ＥＭＳ１００の内部構成について具体的に説明する。
【００５６】
＜ＥＭＳの内部構成＞
ＥＭＳ１００は、ネットワークを構成する各装置を管理するための装置であり、不図示の入出力部、制御部および記憶部を備えるコンピュータにより実現される。そして、ＥＭＳ１００は、制御部内に、図９に示すように、メッセージ解析部１０と、振り分け制御部２０と、データベース管理部３２と、アクション実行部４０とが備えられ、記憶部内には、プログラムデータベース３１が備えられて構成される。なお、この制御部は、例えば、ＥＭＳ１００の記憶部に格納されたプログラムをＣＰＵ（Central Processing Unit）がＲＡＭ（Random Access Memory）等のメモリに展開し実行することで実現される。
【００５７】
また、不図示の入出力部は、ネットワーク等を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力装置やモニタ等の出力装置等との間で入出力を行う入出力インタフェースとから構成され、上位ＯｐＳ２００や装置３００それぞれとの間で情報の送受信を行う。
不図示の記憶部は、ハードディスクやフラッシュメモリ等の記憶手段からなり、プログラムデータベース３１（詳細は後記）等が記憶されている。
以下、ＥＭＳ１００の各構成について、具体的に説明する。
【００５８】
メッセージ解析部１０は、上位ＯｐＳ２００や装置３００から、入出力部（不図示）を介してメッセージを取得し、そのメッセージの内容を解析した上で、振り分け制御部２０へ出力する。このメッセージ解析部１０は、管理用プロトコル処理部１１と、装置用プロトコル処理部１２とを含んで構成される。
【００５９】
管理用プロトコル処理部１１は、上位ＯｐＳ２００からの、例えば、ＳＮＭＰやＣＭＩＰといった共通プロトコルによるメッセージを受信し、そのメッセージの内容を解析する。そして、管理用プロトコル処理部１１は、そのメッセージの内容に基づき、予め設定されたそのメッセージの内容に固有の番号であるメッセージ番号（メッセージ識別子：図９では「Ｍ１」）を、振り分け制御部２０に出力する。
【００６０】
装置用プロトコル処理部１２は、各装置３００に固有に用いられる、例えば、ＳＮＭＰやＮＥＴＣＯＮＦ等のプロトコルによるメッセージを受信し、そのメッセージ内容を解析する。そして、装置用プロトコル処理部１２は、そのメッセージの内容に基づき、予め設定されたそのメッセージの内容に固有の番号であるメッセージ番号（メッセージ識別子：図９では「Ｍ２」）を振り分け制御部２０に出力する。
【００６１】
振り分け制御部２０は、その内部に「内部状態（図９では「Ｑ１」）」を備えており、自身が備える内部状態（「Ｑ１」）と、メッセージ解析部１０から取得したメッセージ番号（例えば「Ｍ１」）とを検索条件（検索キー：［Ｑ１，Ｍ１］）として、プログラムデータベース３１を管理するデータベース管理部３２へ出力する。
また、振り分け制御部２０は、データベース管理部３２が検索したレコードの検索結果を取得する。この検索結果には、検索条件（検索キー：［Ｑ１，Ｍ１］）に、その検索条件に基づき検索されたレコードの値である新たな内部状態（例えば「Ｑ２」）と、処理内容を示すコマンド／プロトコル処理プログラムであるアクション（例えばアクション「１」）とが付されている。そして、振り分け制御部２０は、レコードの検索結果を取得すると、自身の内部状態（「Ｑ１」）を、受信した新たな内部状態（「Ｑ２」）に書き換え、アクション（アクション「１」）を含む検索結果をアクション実行部４０に出力する。
【００６２】
なお、この振り分け制御部２０は、自身が送受信する情報の内容については、解釈せず処理を行う。つまり、振り分け制御部２０は、自身の内部状態の値（「Ｑ１」「Ｑ２」等）を解釈せずに送信したり書き換えたりする。また、振り分け制御部２０は、メッセージ番号（例えば「Ｍ１」「Ｍ２」）の内容や、アクション（アクション「１」）の内容を解釈せずに、情報の受け渡しだけの処理を行う。
【００６３】
データベース管理部３２は、プログラムデータベース３１に記憶される情報を管理し、レコード更新部３３とレコード検索部３４とを備える。
【００６４】
このプログラムデータベース３１には、内部状態およびメッセージ番号が検索条件（検索キー）として設けられ、その検索条件（検索キー）に対応付けて、新たな内部状態とコマンド・プロトコル処理プログラムであるアクション（変換処理後の情報）とが１レコードとして記憶されている。
また、このコマンド・プロトコル処理プログラム（アクション）は、検索条件である内部状態およびメッセージ番号に対応付けられ、そのメッセージ番号におけるメッセージの内容が、送信先となる装置３００や上位ＯｐＳ２００の、プロトコルや、装置３００固有のコマンド、操作等に応じた所定の形式に変換された内容で記述される。
【００６５】
レコード更新部３３は、不図示の入出力部等からの情報により、プログラムデータベース３１に格納された、上位ＯｐＳ２００のプロトコルや、装置３００固有のコマンドや操作が記憶される、コマンド／プロトコル処理プログラム（「アクション」：変換処理後の情報）を含むレコードの追加や、削除、更新等を行う。
なお、このレコード更新部３３による、プログラムデータベース３１のレコードの追加や、削除、更新等は、振り分け制御部２０の処理とは関係なく行なわれる。よって、このレコードの更新等の際に、ＥＭＳ１００全体を止める必要をなくすことができる。
【００６６】
レコード検索部３４は、振り分け制御部２０から、内部状態（例えば「Ｑ１」）と、メッセージ解析部１０から取得したメッセージ番号（例えば「Ｍ１」）とが付された検索条件（検索キー：［Ｑ１，Ｍ１］）を、振り分け制御部２０から取得する。そして、レコード検索部３４は、その検索条件（検索キー：［Ｑ１，Ｍ１］）を用いて、プログラムデータベース３１を検索し、その検索条件（［Ｑ１，Ｍ１］）と、新たな内部状態（例えば、「Ｑ２」）と、処理内容を示すコマンド／プロトコル処理プログラムであるアクション（例えばアクション「１」）とを含む検索結果（例えば、［Ｑ１，Ｍ１，Ｑ２，アクション「１」］）を振り分け制御部２０に出力する。
【００６７】
アクション実行部４０は、振り分け制御部２０から、アクション（例えば、「アクション「１」」）を含む検索結果を取得し、そのアクションに記載されたコマンド／プロトコル処理プログラムを実行させるためのメッセージを生成し、各装置３００や上位ＯｐＳ２００へ送信する。このアクション実行部４０は、装置用コマンド・プロトコル処理実行部４１と上位ＯｐＳ用コマンド・プロトコル処理実行部４２とを含んで構成される。
【００６８】
装置用コマンド・プロトコル処理実行部４１は、取得したアクション（例えば、アクション「１」）に基づき、該当する装置のコマンドや操作の変更に対応した処理を実行するための各装置３００に対応したメッセージを生成して、その装置３００に、入出力部（不図示）を介して送信する。
【００６９】
上位ＯｐＳ用コマンド・プロトコル処理実行部４２は、取得したアクション（例えば、アクション「２」）に基づき、上位ＯｐＳ２００のプロトコルに対応した処理を実行するためのメッセージを生成して、上位ＯｐＳ２００に、入出力部（不図示）を介して送信する。
【００７０】
このような構成にすることにより、本実施形態に係るメッセージ変換実行装置（ＥＭＳ１００）では、上位ＯｐＳ２００や装置３００で用いられるプロトコルの変更や、装置固有のコマンドや操作の変更があったとしても、プログラムデータベース３１を書き換えることにより対応できるため、ＥＭＳ１００全体の処理を止めることをなくすことができる。
【００７１】
＜ＥＭＳの動作＞
次に、図９を参照しながら、本実施形態に係るＥＭＳ１００の処理の流れを説明する。
ここでは、上位ＯｐＳ２００から受信したメッセージを、ＥＭＳ１００が受信し、プログラムデータベース３１を参照して、装置固有のコマンドや操作に変換した上で、装置３００に送信する。そして、メッセージを受け取った装置３００からの応答メッセージを、ＥＭＳ１００が受信し、プログラムデータベース３１を参照して、上位ＯｐＳ２００が用いるプロトコルに変換した上で、上位ＯｐＳ２００へ送信する場合を例に説明する。
【００７２】
まず、上位ＯｐＳ２００から、ＳＮＭＰ等の共通プロトコルによるメッセージを、ＥＭＳ１００のメッセージ解析部１０（管理用プロトコル処理部１１）が受信する（ステップＳ１０１）。
【００７３】
メッセージを受信したメッセージ解析部１０（管理用プロトコル処理部１１）は、その受信したメッセージを解析し、メッセージの内容に固有のメッセージ番号（ここでは「Ｍ１」）を生成し、振り分け制御部２０に出力する（ステップＳ１０２）。
【００７４】
次に、振り分け制御部２０は、メッセージ解析部１０からメッセージ番号を取得した時点における、自身の備える内部状態（ここでは、「Ｑ１」）と、その取得したメッセージ番号（「Ｍ１」）とを、検索条件（検索キー：［Ｑ１，Ｍ１］）として、プログラムデータベース３１を管理するデータベース管理部３２に出力する（ステップＳ１０３）。
【００７５】
続いて、データベース管理部３２のレコード検索部３４は、取得した検索条件（検索キー：［Ｑ１，Ｍ１］）を用いて、プログラムデータベース３１を検索する。そして、レコード検索部３４は、その検索条件と、新たな内部状態（ここでは、「Ｑ２」）と、メッセージ番号「Ｍ１」の内容に対応した装置固有の処理内容を示すコマンド／プロトコル処理プログラムであるアクション（ここでは、アクション「１」）とを含む検索結果（［Ｑ１，Ｍ１，Ｑ２，アクション「１」］）を生成し、振り分け制御部２０に出力する（ステップＳ１０４）。
【００７６】
そして、データベース管理部３２から検索結果を取得した振り分け制御部２０は、自身の内部状態（「Ｑ１」）を、受信した新たな内部状態（「Ｑ２」）に書き換え、アクション（アクション「１」）を含む検索結果を、アクション実行部４０に出力する（ステップＳ１０５）。
【００７７】
アクション（アクション「１」）を取得したアクション実行部４０の装置用コマンド・プロトコル処理実行部４１は、取得したアクション（アクション「１」）に基づき、該当する装置固有のコマンドや操作の変更等に対応した処理を実行させるためのメッセージを生成して、その装置３００に送信する（ステップＳ１０６）。
【００７８】
メッセージを受信した装置３００は、その応答メッセージをＥＭＳ１００に送信する（ステップＳ１０７）。
【００７９】
そして、応答メッセージを受信したメッセージ解析部１０（装置用プロトコル処理部１２）は、その受信した応答メッセージを解析し、その応答メッセージの内容に固有のメッセージ番号（ここでは「Ｍ２」）を生成し、振り分け制御部２０に出力する（ステップＳ１０２と同様の処理）。
【００８０】
次に、振り分け制御部２０は、メッセージ解析部１０からメッセージ番号（「Ｍ２」）を取得した時点における、自身の備える内部状態（ここでは、ステップＳ１０５で書き換えられた「Ｑ２」）と、その取得したメッセージ番号（「Ｍ２」）とを、検索条件（検索キー：［Ｑ２，Ｍ２］）として、プログラムデータベース３１を管理するデータベース管理部３２に出力する（ステップＳ１０３と同様の処理）。
【００８１】
続いて、データベース管理部３２のレコード検索部３４は、取得した検索条件（検索キー：［Ｑ２，Ｍ２］）を用いて、プログラムデータベース３１を検索する。そして、レコード検索部３４は、その検索条件と、新たな内部状態（ここでは、「Ｑ３」）と、メッセージ番号「Ｍ２」の内容に対応した上位ＯｐＳ２００の処理内容を示すコマンド／プロトコル処理プログラムであるアクション（ここでは、アクション「２」）とを含む検索結果（［Ｑ２，Ｍ２，Ｑ３，アクション「２」］）を生成し、振り分け制御部２０に出力する（ステップＳ１０４と同様の処理）。
【００８２】
そして、データベース管理部３２から検索結果を取得した振り分け制御部２０は、自身の内部状態（「Ｑ２」）を、受信した新たな内部状態（「Ｑ３」）に書き換え、アクション（アクション「２」）を含む検索結果を、アクション実行部４０に出力する（ステップＳ１０５と同様の処理）。
【００８３】
アクション（アクション「２」）を取得したアクション実行部４０の上位ＯｐＳ用コマンド・プロトコル処理実行部４２は、取得したアクション（アクション「２」）に基づき、該当する処理内容を示す共通プロトコルのメッセージを生成して、その上位ＯｐＳ２００に送信する（ステップＳ１０８）。
【００８４】
このようにすることで、上位ＯｐＳ２００や装置３００においてプロトコルの変更や装置固有のコマンドや操作の変更が行われた場合であっても、ＥＭＳ１００のレコード更新部３３が、プログラムデータベース３１に記憶されたレコードの追加や、削除、変更等を行うだけでよい。本ＥＭＳ１００は、変換処理のプログラムが、従来技術のように、ハードコーディングされておらず、かつ、ＥＭＳ１００全体の処理動作を制御する振り分け制御部２０と、プログラムデータベース３１を管理するデータベース管理部３２とが独立して処理を行えるため、ＥＭＳ１００を止めることなく、変換処理のルールの追加や削除、変更が可能となる。
【００８５】
（本実施形態の変形例）
次に、本実施形態に係るメッセージ変換実行装置の変形例について説明する。本実施形態に係るメッセージ変換実行装置は、前記において説明したように、チューリングマシンの計算モデルをその基礎としている。
【００８６】
そして、チューリングマシンの計算モデルに基づき図７および図８を用いて説明した決定性チューリングマシン（後記で説明）以外に、本実施形態に係るメッセージ変換実行装置の変形例として、以下に示す、（１）非決定性チューリングマシンと、（２）万能チューリングマシンと、を基礎とするメッセージ変換実行装置、そして、（３）自己改変型のメッセージ変換実行装置について説明する。
【００８７】
＜第１の変形例：非決定性チューリングマシン＞
図７および図８を参照して説明したチューリングマシンの場合、状態関数δは、Ｋ×ΣからΣ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝への部分関数であり、状態関数δの定義域が１つ決まれば、状態関数δの値が集合Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝の要素として１つ決まる。例えば、図８においては、条件値「１」に対して、アクション「１」の１つだけが検索結果として出力される。一般にこのようなチューリングマシンは「決定性チューリングマシン」とよばれる。
【００８８】
これに対し、「決定性チューリングマシン」の定義の状態関数δをＫ×Σから、Ｐ（Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝）（Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝の部分集合全体）への部分関数に変更した場合、状態関数δの定義域の要素が１つ決まっても、Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝の要素が一般に複数決まる。このような計算モデルは「非決定性チューリングマシン」とよばれる（前記した非特許文献６参照）。
【００８９】
この非決定性チューリングマシンは、以下の条件を満たす対（Ｋ,Σ,δ,ｑｓ,ｑＨ）により定義される。
【００９０】
（１）Ｋは空でない有限集合（Ｋの要素を内部状態とよぶ）。
（２）Σは空でない有限集合（Σの要素をテープ記号とよぶ）。
（３）δはＫ×ΣからＰ（Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝）への部分関数（δを状態関数、集合｛Ｌ,Ｒ,ＮＯＰ｝の要素をアクションとよぶ）。Ｐ（Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝）は、Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝の部分集合全体を表す。
（４）ｑｓ∈Ｋ（ｑｓを開始状態とよぶ）。
（５）ｑＨ∈Ｋ（ｑＨを停止状態とよぶ）。
【００９１】
図１０は、非決定性チューリングマシンの例として、状態関数δが、
δ（ｑ１,Ｓ１）＝｛（Ｓ２,ｑ２,Ｒ），（Ｓ３,ｑ３,ＮＯＰ）｝
であり、２つの結果となる場合を示している。
【００９２】
図１０（ａ）に示すように、非決定性チューリングマシンは、ＴＭ制御部２内に内部状態を持ち、その内部状態（「ｑ１」）と、ヘッド３が眺めている（読み取る）記号（テープ記号：「Ｓ１」）とに応じて、複数（ここでは２つ）の要素を得て実行する。
【００９３】
図１０（ｂ）は、δ（ｑ１,Ｓ１）の要素である（Ｓ２,ｑ２,Ｒ）に対して、以下の３つの行動を、１つのステップ（ステップＳ１）として実行する。
【００９４】
（ステップＳ１−１）ヘッド３が眺めているます目に（新たに）ある記号（テープ記号：「Ｓ２」）を書き込む。
（ステップＳ１−２）ＴＭ制御部２の内部状態（「ｑ１」）を新しい内部状態（「ｑ２」）に書き換える。
（ステップＳ１−３）ヘッド３を１ますだけ右（Ｒ）に動かす（アクションを実行する）。
【００９５】
図１０（ｃ）は、δ（ｑ１,Ｓ１）の要素である（Ｓ３,ｑ３,ＮＯＰ）に対して、以下の３つの行動を、１つのステップ（ステップＳ１）として実行する。
【００９６】
（ステップＳ１−１）ヘッド３が眺めているます目に（新たに）ある記号（テープ記号：「Ｓ３」）を書き込む。
（ステップＳ１−２）ＴＭ制御部２の内部状態（「ｑ１」）を新しい内部状態（「ｑ３」）に書き換える。
（ステップＳ１−３）ヘッド３を動かさない（アクションを実行する）。
【００９７】
このように、非決定性チューリングマシンでは、状態関数δの定義域の要素が１つ決まっても、結果が１つ以上あり、複数の場合もある。
【００９８】
この非決定性チューリングマシンの計算モデルによる処理のプロセスと、前記した決定性チューリングマシンによる計算モデルによる処理のプロセスを比較すると図１１のようになる。
図１１（ａ）に示すように、決定性チューリングマシンでは、１つのステップを実行すると結果が１つに決定するため、ステップの実行全体が直線状になる。一方、非決定性チューリングマシンでは、１つのステップで結果が複数になる場合があり、ステップの実行全体が、図１１（ｂ）に示すように、ツリー状になる。そして、実行したステップのどこかで処理が終了（プロセスが受理）されれば、全体のステップも終了となる。
【００９９】
本実施形態に係るメッセージ変換実行装置においては、決定性チューリングマシンにおける状態関数をデータベースの検索機能とみなしている。この場合、検索条件はレコードを識別する検索キーとなっているため、データベースの問い合わせの結果として得られるレコード数は１件であった（図８参照）。
しかしながら、一般にデータベースへの問い合わせの結果、複数のレコードが得られることがある。このことは、まさに、非決定性チューリングマシンの状態関数の入力に対して、Σ×Ｋ×｛Ｌ,Ｒ,ＮＯＰ｝の要素が複数決まることに相当すると考えることができる。
【０１００】
図１２は、非決定性チューリングマシンの計算モデルを適用した、本実施形態の第１の変形例に係るメッセージ変換実行装置を説明するための図である。
図１２に示すように、メッセージ解析部１０が外部装置（不図示）等から受け取ったメッセージを振り分け制御部２０に出力する。そして、振り分け制御部２０は、内部状態を含む条件値（図１２では、条件値「２」）を、マシン複製処理部５０を介して、データベース３０に出力する。データベース３０（具体的には、図９に示すデータベース３０を検索するレコード検索部３４）においては、条件値「２」を検索条件として検索が実行され、１つ以上の検索結果を得る。ここでは、条件値「２」と新しい内部状態（不図示）とアクション「２」とを含む検索結果、条件値「２」と新しい内部状態（不図示）とアクション「３」とを含む検索結果の２つが得られる。そして、マシン複製処理部５０は、２つ以上の検索結果を取得した場合に、その検索結果の数に１を引いた数の振り分け制御部２０とアクション実行部４０との組の複製を生成する。
続いて、マシン複製処理部５０は、取得した各検索結果を、元の（複製でない）振り分け制御部２０および複製された振り分け制御部２０それぞれに送信する。
図１２においては、マシン複製処理部５０は、条件値「２」と新しい内部状態とアクション「２」とを含む検索結果を、元の振り分け制御部２０に送信する。また、マシン複製処理部５０は、条件値「２」と新しい内部状態とアクション「３」とを含む、まだ送信されていない（未処理の）検索結果を、複製した振り分け制御部２０に送信する。
【０１０１】
次に、元の振り分け制御部２０は、検索結果の１つ（ここでは、条件値「２」と新しい内部状態とアクション「２」とを含む検索結果）を取得し、内部状態を書き換えた上で、その検索結果を元の（複製でない）アクション実行部４０に出力する。そして、元のアクション実行部４０では、その検索結果に含まれるアクション（アクション「２」）を実行させるためのメッセージを生成し、外部装置（不図示）へ送信する。
また、複製された振り分け制御部２０は、未処理の検索結果のうちの１つ（ここでは、条件値「２」と新しい内部状態とアクション「３」とを含む検索結果）を取得し、内部状態を書き換えた上で、その検索結果を複製されたアクション実行部４０に出力する。そして、複製されたアクション実行部４０では、その検索結果に含まれるアクション（アクション「３」）を実行させるためのメッセージを生成し、外部装置（不図示）へ送信する。
【０１０２】
以上説明したように、本実施形態の第１の変形例に係るメッセージ変換実行装置は、非決定性チューリングマシンの計算モデルに適応可能である。つまり、データベース３０において、検索結果として複数のレコードが検索される場合でも、システムを止めることなく、プロトコルやコマンドの追加、削除、変更等を行うことを可能とする。
【０１０３】
＜第２の変形例：万能チューリングマシン＞
次に、本実施形態の第２の変形例として、万能チューリングマシンの計算モデルを基礎とした、メッセージ変換実行装置を説明する。
【０１０４】
適当に一つのチューリングマシンＵを定めておき、任意のチューリングマシンＭの定義とそのチューリングマシンＭに与える開始状態（テープ１上のテープ記号の並びだけでなく、テープ１上でヘッド３が眺めているます目の位置とチューリングマシンＭの開始状態も含む）とをテープ１上に表現し、そのテープ１をチューリングマシンＵに与えると、チューリングマシンＵは、本来チューリングマシンＭがそのテープ１に対して実行すべき処理を、まねて実行する。このとき、チューリングマシンＵは万能チューリングマシンとよばれる（前記した非特許文献５参照）。
【０１０５】
図１３は、万能チューリングマシンの計算モデルを適用した、本実施形態の第２の変形例に係るメッセージ変換実行装置（以下、第２の変形例の説明において、「本メッセージ変換実行装置」という場合がある）において、任意のチューリングマシンＭを万能チューリングマシンＵがまねる（チューリングマシンＭとしての処理を実行する）ことを説明するための図である。
【０１０６】
図１３に示すように、まず、ステップＳ２０１において、万能チューリングマシンＵでは、まねをしたい任意のチューリングマシンＭを決定する。
【０１０７】
次に、万能チューリングマシンＵでは、まねをしたいチューリングマシンＭの状態関数δＭの各要素を、テープ１上に配置するが、本メッセージ変換実行装置では、まねをしたいチューリングマシンＭの状態関数δＭの各要素を、本メッセージ変換実行装置を管理する装置等からレコード更新部３３を介して、データベース３０に入れる（取り込む）（ステップＳ２０２）。なお、入れる前に、まねをしたいチューリングマシンＭの内部状態の開始状態、終了状態の記号は、本メッセージ変換実行装置の開始状態、終了状態とそれぞれ同じにしておく。
【０１０８】
ここで、チューリングマシンＭの状態関数δＭ（⊆ＫＭ×ΣＭ×ΣＭ×ＫＭ×｛Ｌ,Ｒ,ＮＯＰ｝）は、メッセージ変換実行装置の変換処理のルールに相当する。また、チューリングマシンＭの状態関数δＭの各要素は、メッセージ変換実行装置の変換処理のルールを構成する各要素であり、具体的には、データベース３０内の各レコードに相当する。
【０１０９】
続いて、ステップＳ２０３において、本メッセージ変換実行装置は、まねをしたいチューリングマシンＭのメッセージ解析部１０Ｍ（１０）と、本メッセージ変換実行装置の振り分け制御部２０とをつなげる。このことにより、本メッセージ変換実行装置のメッセージ解析部１０は、メッセージを受信し、取り込んだ変換処理のルールに対応させて、そのメッセージの内容を解析し、その内容に基づいてメッセージ番号（メッセージ識別子）を生成するメッセージ解析部１０Ｍとしての処理を行う。
【０１１０】
次に、ステップＳ２０４において、本メッセージ変換実行装置は、まねをしたいチューリングマシンＭのアクション実行部４０Ｍ（４０）と、本メッセージ変換実行装置の振り分け制御部２０とをつなげる。このことにより、本メッセージ変換実行装置のアクション実行部４０は、検索結果に含まれるアクション（変換処理後の情報）を取得し、取り込んだ変換処理のルールに対応させて、送信先となる外部装置等が実行可能なメッセージを生成し、その送信先に送信するアクション実行部４０Ｍとしての処理を行う。
なお、万能チューリングマシンＵであれば、まねをしたいチューリングマシンＭのメッセージ解析部１０およびアクション実行部４０はヘッド３そのものであるため、共通に使えるのでつなぎ換える必要はない。一方、本メッセージ変換実行装置が、チューリングマシンＭをまねるためには、ステップＳ２０３およびＳ２０４の処理が必要となる。
【０１１１】
そして、ステップＳ２０５において、本メッセージ変換実行装置は、チューリングマシンＭのまねを開始する。具体的には、メッセージ解析部１０Ｍ（１０）を始動する。その後は、決定性チューリングマシンと同じ処理の流れとなる（図８および図９参照）。
このようにすることで、本実施形態の第２の変形例に係るメッセージ変換実行装置は、データベース３０に、任意のチューリングマシンＭの状態関数δＭ（変換処理のルール）の各要素（各レコードに相当）を取り込むことができ、取り込んだチューリングマシンＭの変換処理のルールを用いて、メッセージの変換処理を実行することができる。
【０１１２】
以上説明したように、万能チューリングマシンＵの計算モデルに追加修正を加えることで、本実施形態の第２の変形例に係るメッセージ変換実行装置を実現することができる。
つまり、万能チューリングマシンＵは、まねをする対象である任意のチューリングマシンＭの状態関数δＭの各要素も、チューリングマシンＭのテープ記号の書き込まれた同じテープ１上に書き込んでおき、テープ１上の状態関数δＭを見ながらチューリングマシンＭの行う計算をまねることができる。
一方、本メッセージ変換実行装置は、データベース３０に、任意のチューリングマシンＭの状態関数δＭ（変換処理のルール）の各要素（各レコードに相当）を取り込むことができ、取り込んだチューリングマシンＭの変換処理のルールを用いて、メッセージの変換処理を実行することでチューリングマシンＭが行う計算をまねることができる。
特に、万能チューリングマシンＵでは、テープ１上で、任意のチューリングマシンＭの状態関数δＭの各要素を探すために必要な万能チューリングマシンＵのヘッド３の動き方等を表すチューリングマシンＭに依らない万能チューリングマシンＵの状態関数δＵが必要になる。これに対し、本実施形態の第２の変形例に係るメッセージ変換実行装置では、万能チューリングマシンＵの状態関数δＵに相当する動作は、データベース３０（具体的には、図９に示すデータベース３０を検索するレコード検索部３４）でチューリングマシンＭに依らないで実現されているため、万能チューリングマシンＵの状態関数δＵに相当するものをデータベース３０にレコードとして保持しないですむ。
【０１１３】
＜第３の変形例：自己改変型＞
本実施形態に係るメッセージ変換実行装置においては、プログラムの追加や、削除、更新等を、データベース管理部３２内のレコード更新部３３（図９参照）が実行するものとした。しかし、このレコード更新部３３を、アクション実行部４０の中から起動されるものとすると、外界からの情報（所定のメッセージ等）を受けて、自らのプログラムを書き換える自己改変型プログラム若しくは環境適応型プログラムの実装方法とすることができる。
【０１１４】
図１４は、本実施形態の第３の変形例に係る自己改変型のメッセージ変換実行装置を説明するための図である。
【０１１５】
本実施形態の第３の変形例に係る自己改変型のメッセージ変換実行装置は、図８に示した本実施形態に係るメッセージ変換実行装置に比べ、図１４に示すように、アクション実行部４０から、データベース３０を管理するデータベース管理部３２（不図示）内のレコード更新部３３へ向けて、データベース３０のレコードの更新を要請する更新情報を送信する点が異なる。また、この自己改変型のメッセージ変換実行装置の記憶部（不図示）には、データベース３０に加え、更新データベース（不図示）が格納される。
この更新データベースには、データベース３０の更新処理が必要か否かを判定するための判定情報と、アクション実行部４０がこの判定情報を用いて、更新処理を必要と判定した場合の更新対象となるレコードの更新情報とが格納されている。
【０１１６】
この自己改変型のメッセージ変換処理実行装置の処理においては、図８および図９に示した本実施形態に係るメッセージ変換実行装置の処理に加え、アクション実行部４０が外部装置等から、所定のメッセージを取得した場合に、更新データベース内の判定情報を用いて、レコードの追加、削除、変更を含む更新処理が必要か否かを判定する。ここで、所定のメッセージとは、外部装置等からの明示的な処理の変更要請を示すメッセージでもよいし、アクション実行部４０が、送受信されるメッセージを監視し、設定された条件を監視対象のメッセージが満たしたとき（閾値等を超えたとき）に、更新処理が必要と判定するようにしてもよい。そして、アクション実行部４０は、更新処理が必要と判定したとき、更新データベースから更新対象となるレコードの更新情報を取得して、レコード更新部３３にその更新情報を送信する。レコード更新部３３は、取得した更新情報を用いて、データベース３０内の更新対象となるレコードの更新処理を実行する。
【０１１７】
以上説明したように、本実施形態の第３の変形例に係る自己改変型のメッセージ変換実行装置によれば、外部装置等から処理の変更要請を示す所定のメッセージを取得し、レコードの更新処理が必要と判定した場合に、更新データベースの更新情報を用いて、更新対象となるレコードの更新処理を実行することができる。つまり、外部からの所定の情報に基づき、データベース３０に記憶されたレコードを自己改変することができる。
【符号の説明】
【０１１８】
１      テープ
２      ＴＭ（Turing machine）制御部
３      ヘッド
１０    メッセージ解析部
１１    管理用プロトコル処理部
１２    装置用プロトコル処理部
２０    振り分け制御部
３０    データベース
３１    プログラムデータベース
３２    データベース管理部
３３    レコード更新部
３４    レコード検索部
４０    アクション実行部
４１    装置用コマンド・プロトコル処理実行部
４２    上位ＯｐＳ用コマンド・プロトコル処理実行部
５０    マシン複製処理部
２００  上位ＯｐＳ
３００  装置
【図１】
0005706769.tif 000002
【図２】
0005706769.tif 000003
【図３】
0005706769.tif 000004
【図４】
0005706769.tif 000005
【図５】
0005706769.tif 000006
【図６】
0005706769.tif 000007
【図７】
0005706769.tif 000008
【図８】
0005706769.tif 000009
【図９】
0005706769.tif 000010
【図１０】
0005706769.tif 000011
【図１１】
0005706769.tif 000012
【図１２】
0005706769.tif 000013
【図１３】
0005706769.tif 000014
【図１４】
0005706769.tif 000015