(57)【要約】【課題】データフォーマットやアクセス方法等が異なる複数のデバイスやパッケージソフト等を円滑に統合化する。【解決手段】入出力機器１０に関する入出力データ構造、プロコトル及びアクセス手段を自己説明型ＸＭＬ文書として送信可能なデバイスエージェント１２と、入出力データ構造等に基づいて入出力機器１０からの入力データを受け取り、入力データに対し所定の処理を行い、当該処理結果を出力する機能を持つ、オブジェクト指向言語で記述されたＥＪＢプログラム３２と、入出力機器１０からの自己説明型ＸＭＬ文書を解釈し、解釈で得られた入出力データ構造等の情報及び入出力機器１０からの入力データをＥＪＢプログラム３２へ送信するとともに、ＥＪＢプログラム３２からの処理結果を入出力機器１０へ送信するミドルソフトウェアシステム１６、１８、２０、２２、２４、２６、２８とを備えた統合化システム１を構築する。【選択図】　図２
2004086355.tif 000002
【特許請求の範囲】
【請求項１】
レガシーデバイス、ディジタルデバイス及び業務アプリケーションプログラムを含んで構成される入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を、自己説明型ＸＭＬ文書として送信可能なデバイスエージェントモジュールと、
前記入出力データ構造、入出力プロコトル及びアクセス手段に基づいて前記入出力機器からの入力データを受け取り、当該入力データに対し所定の処理を行い、当該処理結果としての出力データを出力する機能を持つ、オブジェクト指向言語で記述されたバックエンドアプリケーションと、
前記入出力機器からの自己説明型ＸＭＬ文書を解釈し、当該解釈で得られた前記入出力データ構造、入出力プロコトル及びアクセス手段の情報及び前記入出力機器からの入力データを前記バックエンドアプリケーションへ送信するとともに、前記バックエンドアプリケーションからの出力データを前記入出力機器へ送信するミドルソフトウェアシステムと、
を備えた統合化システム。
【請求項２】
前記ミドルソフトウェアシステムは、
前記デバイスエージェントモジュールから自己説明型ＸＭＬ文書を受信するリスナープログラムと、
受信された自己説明型ＸＭＬ文書を解釈し、解釈結果に基づいてＪａｖａ言語によるクラスオブジェクトを生成するジェネレータプログラムと、
生成されたクラスオブジェクトを格納するディレクトリサービスプログラムと、
前記ディレクトリサービスプログラムを管理するディレクトリ管理プログラムと、
当該ミドルソフトウェアシステムにおける処理実行を制御するカーネルプログラムと、
前記バックエンドアプリケーション間のワークフローを定義するワークベンチプログラムと、
を含んで構成されることを特徴とする請求項１記載の統合化システム。
【請求項３】
前記デバイスエージェントモジュールは、
前記入出力機器の内部に常駐し、当該入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を解析し、解析結果に基づいて前記自己説明型ＸＭＬ文書を生成することを特徴とする請求項１又は２に記載の統合化システム。
【請求項４】
前記デバイスエージェントモジュールには、それぞれ一意のデバイス識別情報が割り当てられることを特徴とする請求項１〜３の何れか１項に記載の統合化システム。
【請求項５】
前記自己説明型ＸＭＬ文書は、
生成したデバイスエージェントモジュールに割り当てられたデバイス識別情報が記述された識別情報部と、
対象の入出力機器の入出力データ構造が記述されたデータ構造部と、
対象の入出力機器の入出力動作に必要なプロトコルが記述されたプロトコル情報部と、
前記データ構造部と前記プロトコル情報部とをマッピングするための情報が記述されたメッセージ情報部と、
を含んで構成されることを特徴とする請求項４記載の統合化システム。
【請求項６】
前記入出力機器の入出力データ構造又は入出力プロトコルが変化した場合、前記デバイスエージェントモジュールは、新たに最新の情報に基づいて自己説明型ＸＭＬ文書を生成することを特徴とする請求項１〜５の何れか１項に記載の統合化システム。
【請求項７】
前記リスナープログラムは、
特定のプロトコルを解釈するためのプロトコル毎のアダプタモジュールを実装し、
前記アダプタモジュールによって、前記デバイスエージェントモジュールから伝送される自己説明型ＸＭＬ文書を解釈可能とされていることを特徴とする請求項２記載の統合化システム。
【請求項８】
前記リスナープログラムは、
前記入出力機器がデバイスエージェントモジュールを内蔵できない場合、当該入出力機器に対応するデバイスエージェントモジュールをアダプタモジュールとして内蔵していることを特徴とする請求項２記載の統合化システム。
【請求項９】
前記ミドルソフトウェアシステムでは、
前記デバイスエージェントモジュールから受信した自己説明型ＸＭＬ文書を解析し、
解析で得られたデバイス識別情報、入出力機器と通信を行うための入出力データ構造、プロトコル及びネットワークアドレスを、前記ディレクトリサービスプログラムに蓄積することを特徴とする請求項２記載の統合化システム。
【請求項１０】
前記ミドルソフトシステムでは、
デバイスエージェントモジュールから受信した自己説明型ＸＭＬ文書から、データ入出力検証用のオブジェクト指向言語に基づくクラスオブジェクトが生成され、
生成されたクラスオブジェクトは前記ディレクトリサービスプログラムによって蓄積される、
ことを特徴とする請求項２記載の統合化システム。
【請求項１１】
最新のクラスオブジェクトは、ミドルソフトウェアシステム内にキャッシュ化されることを特徴とする請求項１０記載の統合化システム。
【請求項１２】
前記ミドルソフトウェアシステムでは、
入出力機器のデータ構成が変化した場合に送信される新たな自己説明型ＸＭＬ文書がクラスオブジェクト化され、
最新の自己説明型ＸＭＬ文書と前回の自己説明型ＸＭＬ文書とのハッシュ値の相違に基づいて、自己説明型ＸＭＬ文書がバージョン管理される、
ことを特徴とする請求項２記載の統合化システム。
【請求項１３】
前記ミドルソフトウェアシステムは、
前記自己説明型ＸＭＬ文書に基づいて、入出力機器とのプロトコル及びデータ構造に依存しない前記バックエンドアプリケーションのためのアクセス手段として、オブジェクト指向言語仕様に基づくアプリケーションプログラムインタフェースを生成する、
ことを特徴とする請求項２記載の統合化システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工作機械やセンサ機器等のレガシーデバイス、ＰＤＡ等のディジタルデバイス、及び業務アプリケーションプログラムを含めた企業内の様々なシステムリソースの統合を図るための統合化システムに関する。
【０００２】
なお、本明細書の「入出力機器」は、レガシーデバイスやディジタルデバイス等のハードウェアリソースと、業務アプリケーションプログラム等のソフトウェアリソースの両方を含む概念とされている。
【０００３】
【従来の技術】
インターネットはＰＣ、ＵＮＩＸサーバ、メインフレーム、そして携帯電話やＰＤＡなどあらゆる情報機器を結ぶネットワークに成長している。これを支えているのは目覚しい進歩を遂げたコンピュータシステムであり、企業各社は何らかの形でコンピュータシステム、インターネットに代表されるネットワークシステムを取り入れている。
【０００４】
ここ１０年の間にネットワークは目覚しい発達を遂げたにも関わらず、進化した情報機器が扱うコンテンツは、人間に理解できる文字、音声、画像であり、あまり変化していない。昨今の最新情報技術動向から鑑みて、これら情報機器とインターネットを利用して、Ｗｅｂ　Ｓｅｒｖｉｃｅという概念を用いた大規模企業システムが主流となると思われる。
【０００５】
一方、人間が直接理解する必要の無いデータをコンテンツとするセンサ、バーコード、ＲＦＩＤ、ＩＣカードなどの情報デバイスが激増している。これら情報デバイスは、その数においても、発生するであろう情報量においても、現在インターネットに接続される情報機器に比較して桁違いに大きく、今後１０年間でのこの分野は１９９０年代のインターネット旋風を上回る爆発的な発展が期待される。
【０００６】
ディジタルデバイスは技術革新と量産効果によって小型化、低価格化、高性能化が進み、これによってあらゆるものがディジタルデバイス化されつつあり、温度センサ、工業用機械など従来からあるレガシーなデバイスもネットワークに接続されるケースが増えてきている。
【０００７】
各種のデバイスがネットワーク化されると、これらから発生する情報を取り込んだり、制御したりする業務アプリケーションとの接続が発生する。例えば、コンピュータ化された工作機械からの工程進捗データに基づいて生産ライン全体の調整を行うような生産管理システムや、温度センサからの出力値である温度情報に基づいて予め設定された設定された温度に調整するための環境アプリケーションシステム等、さまざまなアプリケーションシステムが存在する。例えば、図１は代表的な製造業におけるシステム構成を示す。これらはサブシステム（例えば生産管理システム９２、受発注システム９４、工作機械稼働システム９６、生産ラインシステム９８）の各々に、相互に異なるデータ構造とプロトコルを実装している。
【０００８】
上記のように発生する情報を取り込んだり、制御情報を出力したりするアプリケーションパッケージにはＳＣＡＤＡがある。ＳＣＡＤＡソフトウェアはＦＡ分野における代表的なソリューションと言える。このＳＣＡＤＡソフトウェアは、一般にパーソナルコンピュータで動作し、ＰＬＣ（プログラマブル・ロジック・コントローラ）からの生産ライン情報を収集し、予め設定された条件を満足すると、他のＰＬＣに接続された生産ラインに制御情報を出力したり、他のアプリケーションに情報を出力したりする。
【０００９】
【発明が解決しようとする課題】
しかし、このようなソリューションはそれぞれが別々の生い立ちを持って確立されてきた技術であり、他のソリューションとは互換性の点で考慮されていない場合が多い。例えば先のＳＣＡＤＡは対象とするＰＬＣやプラントのハードウェア仕様やＤｅｖｉｃｅＮｅｔ等の業界通信プロトコルと強く結びついているため、製造業全体をカバーするような汎用的製品となりにくいのが実情である。すなわち、ソリューション間におけるデータ、プロトコル、操作の非互換性が管理コスト、実装コストの増加を招いている。
【００１０】
そのため、現在においては、アプリケーションを含めた企業内の様々なシステムリソースの統合が可能であるミドルソフトウェアが必要とされる。このミドルソフトウェアとしては、はディジタルデバイス、レガシーデバイス、業務アプリケーションそれぞれのデータ構造（スキーマ）、プロトコル、アクセス手法に依存せずに、データ形式の変換、プロコトル変換、ルーティングが可能であることが強く求められる。即ち、ディジタルデバイス、レガシーデバイス及び業務アプリケーションのそれぞれにおいて、データ形式やプロコトル等の互換性を持たせるための改変を施すことは非常に処理負担が大きく、コスト増加を招く。特にレガシーデバイス等への改変は技術的に困難であることが多く、現実的な対応とは考えがたい。
【００１１】
本発明は、自己説明型ＸＭＬと、これを解釈し業務アプリケーションへプロトコルや物理的なデータ構造に依存しないＡＰＩ（アプリケーションプログラムインタフェース）を提供するためのミドルソフトウェアシステムを構築し、データフォーマットやアクセス方法等が相互に異なる複数のコンピュータシステム、ディジタルデバイス、レガシーデバイス等を円滑に統合化することができる統合化システムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る統合化システムは、請求項１に記載したように、レガシーデバイス、ディジタルデバイス及び業務アプリケーションプログラムを含んで構成される入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を、自己説明型ＸＭＬ文書として送信可能なデバイスエージェントモジュールと、前記入出力データ構造、入出力プロコトル及びアクセス手段に基づいて前記入出力機器からの入力データを受け取り、当該入力データに対し所定の処理を行い、当該処理結果としての出力データを出力する機能を持つ、オブジェクト指向言語で記述されたバックエンドアプリケーションと、前記入出力機器からの自己説明型ＸＭＬ文書を解釈し、当該解釈で得られた前記入出力データ構造、入出力プロコトル及びアクセス手段の情報及び前記入出力機器からの入力データを前記バックエンドアプリケーションへ送信するとともに、前記バックエンドアプリケーションからの出力データを前記入出力機器へ送信するミドルソフトウェアシステムとを備えたことを特徴とする。
【００１３】
本発明に係る統合化システムでは、特に、デバイスエージェントモジュールが入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を、自己説明型ＸＭＬ文書として送信可能とされた点、及び、デバイスエージェントモジュールとバックエンドアプリケーションとを中継するミドルソフトウェアシステムを設けた点をポイントとする。
【００１４】
即ち、デバイスエージェントモジュールが、各種の入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を、自己説明型ＸＭＬ文書として送信すると、ミドルソフトウェアシステムが、当該自己説明型ＸＭＬ文書を受け取って解釈し、当該解釈で得られた入出力データ構造、入出力プロコトル及びアクセス手段の情報及び入出力機器からの入力データをバックエンドアプリケーションへ送信する。
【００１５】
これらを受信したバックエンドアプリケーションは、入出力データ構造、入出力プロコトル及びアクセス手段に基づいて入出力機器からの入力データを受け取り、当該入力データに対し所定の処理を行い、当該処理結果としての出力データを出力する。そして、ミドルソフトウェアシステムが、バックエンドアプリケーションからの出力データを入出力機器へ送信する。
【００１６】
上記のようにミドルソフトウェアシステムが、各種の入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を表す自己説明型ＸＭＬ文書を自動的に解釈し、入出力機器とバックエンドアプリケーション間のデータを中継するため、入出力機器又はバックエンドアプリケーションが通信相手のデータフォーマットやアクセス方法等に適合させるための処理を行う必要がなく、データフォーマットやアクセス方法等が相互に異なる複数のコンピュータシステム、ディジタルデバイス、レガシーデバイス等を円滑に統合化することができる。
【００１７】
本発明に係る統合化システムは、具体的には、以下の構成とすることができる。
【００１８】
本発明に係る統合化システムでは、請求項２に記載したように、前記ミドルソフトウェアシステムは、前記デバイスエージェントモジュールから自己説明型ＸＭＬ文書を受信するリスナープログラムと、受信された自己説明型ＸＭＬ文書を解釈し、解釈結果に基づいてＪａｖａ言語によるクラスオブジェクトを生成するジェネレータプログラムと、生成されたクラスオブジェクトを格納するディレクトリサービスプログラムと、前記ディレクトリサービスプログラムを管理するディレクトリ管理プログラムと、当該ミドルソフトウェアシステムにおける処理実行を制御するカーネルプログラムと、前記バックエンドアプリケーション間のワークフローを定義するワークベンチプログラムとを含んで構成することができる。
【００１９】
また、請求項３に記載したように、前記デバイスエージェントモジュールは、前記入出力機器の内部に常駐し、当該入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を解析し、解析結果に基づいて前記自己説明型ＸＭＬ文書を生成する構成とすることができる。
【００２０】
一般に、入出力機械はさまざまなデータソースを持つ。例えば工作機械では、各種のセンサ情報例えば、油温、水温、ガス圧、冷却水伝導率等を持ち、これらはそれぞれの工作機械機械種別、工作機械メーカごとにさまざまである。また、業務アプリケーションプログラムである生産管理パッケージソフトウェアや受発注パッケージソフトウェアもさまざまな形式の入出力値を持つ。このため、上記のようにデバイスエージェントモジュールが入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を解析し、解析結果に基づいて自己説明型ＸＭＬ文書を生成する構成とすることで、既存のシステムに追加・修正を加えることなく、各入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段の情報を得るしくみを構築することができる。
【００２１】
また、請求項４に記載したように、前記デバイスエージェントモジュールに、それぞれ一意のデバイス識別情報が割り当てられた構成とすることができる。これにより、各入出力機器が統合化システム内でユニークであることを保証することができる。
【００２２】
また、請求項５に記載したように、前記自己説明型ＸＭＬ文書は、生成したデバイスエージェントモジュールに割り当てられたデバイス識別情報が記述された識別情報部と、対象の入出力機器の入出力データ構造が記述されたデータ構造部と、対象の入出力機器の入出力動作に必要なプロトコルが記述されたプロトコル情報部と、前記データ構造部と前記プロトコル情報部とをマッピングするための情報が記述されたメッセージ情報部とを含んで構成することができる。
【００２３】
また、請求項６に記載したように、前記入出力機器の入出力データ構造又は入出力プロトコルが変化した場合、前記デバイスエージェントモジュールは、新たに最新の情報に基づいて自己説明型ＸＭＬ文書を生成する構成とすることができる。この場合、入出力機器の入出力データ構造又は入出力プロトコルが変化しても、最新の情報に基づいて自己説明型ＸＭＬ文書がデバイスエージェントモジュールにより生成されることとなる。
【００２４】
また、請求項７に記載したように、前記リスナープログラムは、特定のプロトコル（例えば、ＨＴＴＰ、ＳＭＴＰ等）を解釈するためのプロトコル毎のアダプタモジュールを実装し、前記アダプタモジュールによって、前記デバイスエージェントモジュールから伝送される自己説明型ＸＭＬ文書を解釈可能な構成とすることができる。この場合、リスナープログラムは、プロトコル毎のアダプタモジュールによって、さまざまなプロトコルによる自己説明型ＸＭＬ文書の解釈が可能となる。
【００２５】
また、請求項８に記載したように、前記リスナープログラムは、前記入出力機器がデバイスエージェントモジュールを内蔵できない場合、当該入出力機器に対応するデバイスエージェントモジュールをアダプタモジュールに内蔵した構成とすることができる。この場合、入出力機器とリスナープログラムは、入出力機器独自のプロトコルで通信を行い、デバイスエージェントモジュールを内蔵したアダプタモジュールが、自己説明型ＸＭＬ文書を生成することが可能となる。即ち、入出力機器がデバイスエージェントモジュールを内蔵できない場合であっても、当該入出力機器も含めて複数システムを円滑に統合化することができる。
【００２６】
また、請求項９に記載したように、前記ミドルソフトウェアシステムは、前記デバイスエージェントモジュールから受信した自己説明型ＸＭＬ文書を解析し、解析で得られたデバイス識別情報、入出力機器と通信を行うための入出力データ構造、プロトコル及びネットワークアドレスを、前記ディレクトリサービスプログラムに蓄積する構成とすることができる。
【００２７】
また、請求項１０に記載したように、前記ミドルソフトシステムでは、デバイスエージェントモジュールから受信した自己説明型ＸＭＬ文書から、データ入出力検証用のオブジェクト指向言語に基づくクラスオブジェクトが生成され、生成されたクラスオブジェクトは前記ディレクトリサービスプログラムによって蓄積される構成とすることができる。
【００２８】
また、請求項１１に記載したように、最新のクラスオブジェクトは、ミドルソフトウェアシステム内にキャッシュ化される構成とすることができる。この場合、ミドルソフトウェアシステムによる処理のパフォーマンス効率を向上させることができる。
【００２９】
また、請求項１２に記載したように、前記ミドルソフトウェアシステムでは、入出力機器のデータ構成が変化した場合に送信される新たな自己説明型ＸＭＬ文書がクラスオブジェクト化され、最新の自己説明型ＸＭＬ文書と前回の自己説明型ＸＭＬ文書とのハッシュ値の相違に基づいて、自己説明型ＸＭＬ文書がバージョン管理される構成とすることができる。即ち、ハッシュ値が前回の自己説明型ＸＭＬ文書と異なる場合にのみ、クラスオブジェクトの生成をすることで、統合化システムにおける効率良い運用を実現し、無駄な処理を省くことができる。
【００３０】
また、請求項１３に記載したように、前記ミドルソフトウェアシステムは、前記自己説明型ＸＭＬ文書に基づいて、入出力機器とのプロトコル及びデータ構造に依存しない前記バックエンドアプリケーションのためのアクセス手段として、オブジェクト指向言語仕様に基づくアプリケーションプログラムインタフェースを生成する構成とすることができる。この場合、バックエンドアプリケーションが、入出力機器毎に存する入出力の特性を考慮する必要がなくなるという利点がある。
【００３１】
【発明の実施の形態】
以下、添付図面に基づき、本発明に関する実施の形態について説明する。尚、各図において同一要素には同一符号を付して説明を省略する。また、本実施形態では、入出力機器間のデータ符号化形式、データ交換形式としてＸＭＬ文書を利用する。ＸＭＬ（拡張可能型マークアップ言語：ｅＸｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）は、データソース間で共通のデータ形式を定義する。ＸＭＬはデータソースに独自の「型」の定義を可能とするが、本発明においては「型」はＷ３Ｃ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ　Ｃｏｎｓｏｒｔｉｕｍ）において定義されたＸＭＬスキーマ言語の型に従う。
【００３２】
図２には、本実施形態に係る製造業企業内のサブシステム間を統合するための統合化システム１の構成例を示す。この統合化システム１における入出力機器１０としては、工作機械１０Ａ、生産ライン１０Ｂ、生産管理パッケージソフトウェア１０Ｃ及び受発注パッケージソフトウェア１０Ｄから構成される。原則的に入出力機器１０の内部には、デバイスエージェントモジュール１２Ａ等（デバイスエージェントモジュール１２と総称する）が常駐し、デバイスエージェントモジュール１２は、これらの入出力データ構造と入出力プロトコルを解析して、自己説明型ＸＭＬ文書を生成する。入出力機器１０の入出力データ構造や入出力プロトコルが変化した場合、デバイスエージェントモジュール１２は、新たに最新の情報に基づいて自己説明型ＸＭＬ文書を生成する。なお、デバイスエージェントモジュール１２には、それぞれ一意のデバイス識別情報が割り当てられる。
【００３３】
統合化システム１におけるバックエンドプログラムは、Ｊａｖａ言語によるＥＪＢ（Ｅｎｔｅｒｐｒｉｓｅ　Ｊａｖａ　Ｂｅａｎ）プログラム３２として構築され、ＥＪＢブログラム３２はアプリケーションサーバ３０上で実行される。ＥＪＢブログラム３２のうち加工指示ＥＪＢブログラム３２Ａは工作機械や生産ラインを動作させるためのＥＪＢプログラムであり、データベース３６に存在する加工制御データを統合化システム１に送り込み、工作機械や生産ラインを実行制御する。ここでの加工制御データは工作機械や生産ライン装置が判読できる数値制御データでも良いし、装置に送り込めるマイクロプログラムでも良い。また、実績収集ＥＪＢブログラム３２Ｂは工作機械や生産ラインからの動作実績、障害情報を収集するＥＪＢプログラムであり、計画指示ＥＪＢブログラム３２Ｃは新規受注データを生産管理パッケージに送信するためのＥＪＢプログラムである。更に、生産実績ＥＪＢブログラム３２Ｄは、収集された実績データを生産管理パッケージに送信するためのＥＪＢプログラムである。
【００３４】
統合化システム１におけるミドルソフトウェアシステムは、Ｊａｖａ言語によって構築され、リスナープログラム１６、ジェネレータプログラム２２、ディレクトリサービスプログラム２０、ディレクトリ管理プログラム２４、カーネルプログラム１８、ＥＪＢ制御プログラム２８及びワークベンチプログラム２６から構成される。
【００３５】
このうちリスナープログラム１６は、入出力機器と通信を行うプログラムであり、特定のプロトコルを解釈するためのアダプタモジュール１４Ａ、１４Ｂ、１４Ｃ、１４Ｄ（アダプタモジュール１４と総称する）を実装し、特定のプロコトルによって入出力機器１０から伝送される自己説明型ＸＭＬ文書を受信可能とされている。
【００３６】
但し、リスナープログラム１６は、入出力機器１０がデバイスエージェントモジュール１２を内蔵できない場合、例えば、図２の例で生産ライン１０Ｂがデバイスエージェントモジュール１２を内蔵できない場合、生産ライン１０Ｂに対応するデバイスエージェントモジュール１２Ｂをアダプタモジュール１４Ｂに内蔵している。上記構成により、生産ライン１０Ｂとリスナープログラム１６は、生産ライン１０Ｂ独自のプロトコルで通信を行い、アダプタモジュール１４Ｂが自己説明型ＸＭＬ文書を生成することが可能である。
【００３７】
ジェネレータプログラム２２は、入出力機器１０が送信する自己説明型ＸＭＬ文書を解釈しクラスオブジェクトを生成するプログラムである。また、ディレクトリサービスプログラム２０は、ユーザインタフェースを持ったディレクトリ管理プログラム２４により制御され、カーネルプログラム１８は、ミドルソフトウェアシステム全体の動作を制御するプログラムである。また、ＥＪＢ制御プログラム２８は、ＥＪＢプログラム間のワークフロー制御とミドルソフトウェアシステム間の通信を行うプログラムである。このＥＪＢ制御プログラム２８は、ユーザインタフェースを持ったワークベンチプログラム２６からの指示に基づいてワークフロー制御の調整を行う。ワークフローが変更された場合にはＥＪＢ制御プログラム２８は、ワークベンチプログラム２６からの変更指示に基づいて、呼び出す対象のＥＪＢプログラムを変更する。更に、ワークベンチプログラム２６は自己説明型ＸＭＬ文書から入出力クラスライブラリ３４Ａ、３４Ｂ、３４Ｃ、３４Ｄ（入出力クラスライブラリ３４と総称する）を生成できる。入出力クラスライブラリ３４はＪａｖａ言語によるテンプレートプログラムであり、コンパイル時にＥＪＢプログラム３２とリンクすることができる。
【００３８】
図３及び図４には、デバイスエージェントモジュール１２が生成する自己説明型ＸＭＬ文書４０の構成を示す。自己説明型ＸＭＬ文書４０は、ＸＭＬスキーマ言語によって記述された入力用構造と出力用構造が記述されたデータ構造部４０Ａと、発信元を一意に特定するためのデバイスＩＤ（ＤＩＤ）が記述されている識別情報部４０Ｂと、入出力動作に必要なプロトコルが記述されるプロトコル情報部４０Ｃと、入出力において使用するデータ構造部４０Ａとプロトコル情報部４０Ｃをマッピングするための情報を記述されるメッセージ情報部４０Ｄとを含んで構成される。
【００３９】
なお、データ構造部４０Ａに含まれるデータ構造には、ＸＭＬスキーマ言語に合致したそれぞれのデータ型（文字型、整数型等）、とりうる値の範囲、及び出現回数の指定を行うことができる。データ構造部４０Ａに記述するデータ構造は図４のように親子関係を持っていても良いし、持っていなくてもよい。また他の親構造を子構造として取り込んでも良い。
【００４０】
また、識別情報部４０ＢのデバイスＩＤ（ＤＩＤ）は管理者によって与えられるものであっても良いし、ネットワークアドレスのような一意の識別子でもよい。
【００４１】
また、プロトコル情報部４０Ｃにはデータ構造をどのような通信プロトコルを使用して配信するのかが記述される。プロトコル情報部４０Ｃにはプロトコルを識別するためのプロトコル名と、使用ネットワークにおける実際の伝送に必要なパラメータが記述される。例えばＨＴＴＰ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｐｒｏｔｏｃｏｌ）であればＵＲＬである。
【００４２】
本実施形態の統合化システム１における処理は、図１０に示すように、入出力機器１０が自己説明型ＸＭＬ文書をミドルソフトウェアシステムに送信する告知フェーズＳ１００と、入出力機器１０とミドルソフトウェアシステム間が実際の入出力データを送受信する入出力フェーズＳ２００とから構成される。以下、これら告知フェーズ及び入出力フェーズを順に説明する。
【００４３】
図５には本実施形態に係る告知フェーズにおける処理フローを示す。まず、工作機械や生産管理パッケージの管理者は、入出力機器１０のデバイスエージェントモジュール１２に一意のＤＩＤを設定する（図５のＳ１）。デバイスエージェントモジュール１２は独自のユーザインタフェースを持って管理者から入力されたＤＩＤを保持しても良い。また、デバイスエージェントモジュール１２はＤＩＤを、予めコンピュータシステム上のメモリに格納したり、ある種のデータベースに格納してもよい。
【００４４】
次に、工作機械や生産管理パッケージの管理者はデバイスエージェントモジュール１２を動作させ（Ｓ２）、デバイスエージェントモジュール１２は対象の工作機械やアプリケーションの定義情報から図３及び図４のような自己説明型ＸＭＬを生成する（Ｓ３）。この定義情報とは、ハードディスク装置に格納されたテキストファイルであったり、コンピュータシステム上のメモリに格納されていたり、ある種のデータベースに格納されていてもよい。
【００４５】
生成された自己説明型ＸＭＬは、ＴＣＰ／ＩＰ等のプロトコルを用いてインターネットやＬＡＮを経由してリスナープログラム１６に配信される（Ｓ４）。リスナープログラム１６は工作機械や生産管理パッケージといった入出力機器１０の内部に存在していてもよく、この場合には、内部プロセス間通信機構によって配信される。デバイスエージェントモジュール１２とリスナープログラム１６間にファイアウォールが存在する場合にはＨＴＴＰプロトコル等のファイアウォール透過プロトコルによってラッピングされてもよい。
【００４６】
リスナープログラム１６は、受信した自己説明型ＸＭＬ文書中の識別情報部のＤＩＤと、入出力機器１０のネットワークアドレスと、リスナープログラム１６自身の識別子（リスナーＩＤ）とをディレクトリサービスプログラム２０に登録する（Ｓ５）。ディレクトリサービスプログラム２０は、ＤＩＤを登録キーにして入出力機器１０のネットワークアドレスとリスナーＩＤとを自身のデータベースに登録する（Ｓ６）。登録された情報はディレクトリ管理プログラム２４のユーザインタフェースから参照したり、削除したりすることができる。
【００４７】
さらにリスナープログラム１６は、受信した自己説明型ＸＭＬ文書をジェネレータプログラム２２に引き渡す（Ｓ７）。
【００４８】
ジェネレータプログラム２２は自己説明型ＸＭＬ文書から一方向ハッシュ関数を用いて、一意のハッシュ値を生成する（Ｓ８）。ジェネレータプログラム２２は自己説明型ＸＭＬ文書をＤＯＭ（Ｄｏｃｕｍｅｎｔ　Ｏｂｊｅｃｔ　Ｍｏｄｅｌ）に基づいたオブジェクトとしてメモリに展開する。そして、ＤＩＤを検索キーとしてハッシュ値を検索し（Ｓ９）、ハッシュ値がＤＩＤと合致しない場合（Ｓ１０で否定判断の場合）に、以下のようにしてメッセージ処理クラスオブジェクトを生成する（Ｓ１１）。
【００４９】
ここで、図６を用いてジェネレータプログラム２２による解析処理及びメッセージ処理クラスオブジェクト生成処理を説明する。ジェネレータプログラム２２は、図６に示す以下の処理Ｔ１〜Ｔ６を実行する。
【００５０】
即ち、ジェネレータプログラム２２は、情報解析処理Ｔ１において、自己説明型ＸＭＬ文書を解析してメモリ上に各種の解析情報（識別情報、プロトコル情報、メッセージ情報、データ構造）を作成する。そして、ジェネレータプログラム２２は、メッセージ依存関係解析処理Ｔ２において、メッセージ情報の情報同士の依存関係を解析し、その際にデータ構造が関係するか否かを調べる。
【００５１】
ここで、データ構造が関係する場合には、ジェネレータプログラム２２は、データ依存関係解析処理Ｔ３において、データ構造の依存関係を解析する。また、ジェネレータプログラム２２は、メッセージデータ型解析処理Ｔ４において、メッセージ情報からメッセージ情報に含まれるデータの型の構成情報を解析してデータ構成情報を作成する。
【００５２】
また、データ構造が関係する場合には、ジェネレータプログラム２２は、データ構造データ型解析処理Ｔ５において、データ構造のデータの型の構成情報を解析してデータ構成情報に追加する。更に、ジェネレータプログラム２２は、データチェック情報作成処理Ｔ６において、データ構成情報と識別情報からメッセージ処理クラスオブジェクトを動的に生成する。
【００５３】
以上のようにしてメッセージ処理クラスオブジェクトを生成した後、図５のようにジェネレータプログラム２２は、動的に生成したメッセージ処理クラスオブジェクトとハッシュ値とを、識別情報部４０Ｂに格納されているＤＩＤを登録キーにして登録するべく、メッセージ処理クラスオブジェクト、ハッシュ値及びＤＩＤを一組にしてディレクトリサービスプログラム２０に渡す（図５のＳ１２）。
【００５４】
そして、ディレクトリサービスプログラム２０は、ＤＩＤを登録キーにしてメッセージ処理クラスオブジェクトとハッシュ値を自身のデータベースにデバイス情報として登録する（Ｓ１３）。登録されたデバイス情報はディレクトリ管理プログラム２４のユーザインタフェースから参照したり、削除したりすることができる。
【００５５】
ワークベンチプログラム２６は、登録されたメッセージ処理クラスオブジェクトから入出力クラスライブラリ３４を生成する（Ｓ１４）。入出力クラスライブラリ３４はＪａｖａ言語によるテンプレートプログラムであり、コンパイル時にＥＪＢプログラム３２とリンクすることができる。
【００５６】
ここで、図７及び図８を用いてディレクトリ管理プログラム２４及びワークベンチプログラム２６の処理を補足的に説明する。図７に示すように、ディレクトリ管理プログラム２４はユーザインタフェースを利用して、アプリケーションサーバ情報としてアプリケーションサーバ３０（図２）のネットワークアドレスと、ＥＪＢプログラム情報としてアプリケーションサーバ３０上のＥＪＢプログラム３２のオブジェクトクラス名とオブジェクトメソッド名とをディレクトリサービスプログラム２０に登録することができる。
【００５７】
図８に示すように、これらのアプリケーションサーバ情報（アプリケーションサーバ３０のネットワークアドレス情報）とＥＪＢプログラム情報（アプリケーションサーバ３０上のＥＪＢプログラム３２のオブジェクトクラス名とオブジェクトメソッド名）は、ＥＪＢクラスオブジェクト名からクラスメソッド名及びアプリケーションサーバ３０のネットワークアドレスへのリンクリストとして、ディレクトリサービスプログラム２０内のデータベースに保存される。但し、アプリケーションサーバのネットワークアドレスからＥＪＢクラスオブジェクト名へのリンク情報も保存されている。
【００５８】
一方、ワークベンチプログラム２６は、ディレクトリ管理プログラム２４が登録したＥＪＢプログラム情報を読み込み、ユーザインタフェース上にアイコンとして表示できる。ワークベンチプログラム２６の操作者は、入出力機器１０が出力したデータをどのＥＪＢプログラム３２に引き渡すかを定義できる。また、ＥＪＢプログラム３２のアイコン同士をグラフィカルな線で接続することによって、ＥＪＢプログラム３２間の実行順序を定義できる。ワークベンチプログラム２６が定義したワークフロー情報はディレクトリサービスプログラム２０に格納される。
【００５９】
次に、図９を用いて入出力フェーズ（図１０のＳ２００）を説明する。この入出力フェーズは、図２の受発注パッケージソフトウェア１０Ｄから発生した出力データを計画指示ＥＪＢプログラム３２Ｃが処理し、生産管理パッケージソフトウェア１０Ｃへ送出するフェーズである。
【００６０】
入出力機器としての受発注パッケージソフトウェア１０Ｄがデータの出力を行う場合、告知フェーズで送信した自己説明型ＸＭＬ文書の出力構造と合致するデータ構造とプロトコルを使用してデータの出力を行う。また、出力パケットには、出力データと入出力機器（受発注パッケージソフトウェア１０Ｄ）のＤＩＤとが含まれている。出力パケットはインターネットやＬＡＮを経由してリスナープログラム１６が受信する（Ｓ２１）。出力データを受信したリスナープログラム１６はカーネルプログラム１８に出力パケットを渡す（Ｓ２２）。
【００６１】
例えば、受発注パッケージソフトウェア１０Ｄは、受注情報と受発注パッケージソフトウェア１０Ｄに定義されたＤＩＤとを、出力データとしてミドルソフトウェアシステムに送信する（Ｓ２１）。ミドルソフトウェアシステム内のリスナープログラム１６は出力データを受信し、カーネルプログラム１８に送信する（Ｓ２２）。カーネルプログラム１８は、ＤＩＤをキーとしてメッセージ処理クラスを取得する（Ｓ２３）。具体的には、カーネルプログラム１８は、ディレクトリサービスプログラム２０からＤＩＤをキーとしてメッセージ処理クラスを検索することで（Ｓ２４）、ＪＡＶＡメッセージ処理クラスを得る。
【００６２】
Ｓ２４の検索によりメッセージ処理クラスが得られると、カーネルプログラム１８は、当該メッセージ処理クラスをインスタンス化し（Ｓ２５）、出力データが正常ならば（Ｓ２６で肯定判断ならば）、ＤＩＤをキーとして、計画指示ＥＪＢプログラム３２Ｃを呼び出すために必要な情報（ＥＪＢ呼出情報）を取得する（Ｓ２７）。具体的には、カーネルプログラム１８は、ディレクトリサービスプログラム２０からＤＩＤをキーとしてＥＪＢ呼出情報を検索することで（Ｓ２８）、ＥＪＢ呼出情報を得る。ＥＪＢ呼出情報としては、例えば、計画指示ＥＪＢプログラム３２Ｃのクラスオブジェクト名、クラスメソッド名、及び、計画指示ＥＪＢプログラムが動作するアプリケーションサーバのネットワークアドレスが挙げられる。
【００６３】
そして、カーネルプログラム１８は、受注情報を引数として計画指示ＥＪＢプログラム３２Ｃを呼び出す（Ｓ２９）。
【００６４】
計画指示ＥＪＢプログラム３２Ｃは、製品ごとの生産数量を算出し生産基礎データを生成する（Ｓ３０）。そして、生産基礎データをパラメータとして入出力クラスライブラリ３４Ｃをコールする（Ｓ３１）。
【００６５】
入出力クラスライブラリ３４Ｃは、カーネルプログラム１８を呼び出し生産量基礎データを渡す（Ｓ３２）。また、この際に、入出力クラスライブラリ３４Ｃは、あて先となる生産管理パッケージソフトウェア１０Ｃを特定するためのＤＩＤも同時にカーネルプログラム１８に渡す（Ｓ３２）。
【００６６】
カーネルプログラム１８は、ＤＩＤをキーとしてリスナーＩＤを取得する（Ｓ３３）。具体的には、カーネルプログラム１８は、ディレクトリサービスプログラム２０からＤＩＤをキーとしてリスナーＩＤを検索することで（Ｓ３４）、ＤＩＤを持った生産管理パッケージソフトウェア１０Ｃが自己説明型ＸＭＬを送信した先のリスナープログラムのリスナーＩＤを得る。
【００６７】
そして、カーネルプログラム１８は、当該リスナーＩＤに該当するリスナープログラム１６を呼び出すと（Ｓ３５）、当該リスナープログラム１６に生産量基礎データを渡す。このリスナープログラム１６は生産量基礎データを生産管理パッケージソフトウェア１０Ｃに送信する（Ｓ３６）。
【００６８】
以上説明した本発明の実施形態により、図２のミドルソフトウェアシステム１６、１８、２０、２２、２４、２６、２８が、各種の入出力機器１０に関する入出力データ構造、入出力プロコトル及びアクセス手段を表す自己説明型ＸＭＬ文書を自動的に解釈し、入出力機器１０と、バックエンドアプリケーションであるＥＪＢプログラム３２との間のデータを中継するため、入出力機器１０又はＥＪＢプログラム３２が通信相手のデータフォーマットやアクセス方法等に適合させるための処理を行う必要がなく、データフォーマットやアクセス方法等が相互に異なる複数のコンピュータシステム、ディジタルデバイス、レガシーデバイス等を円滑に統合化することができる。
【００６９】
なお、上記のような統合化システムにおけるミドルソフトウェアシステム内のプログラムの各々は、複数のコンピュータシステムに分散してインストールされていてもよいし、一台のコンピュータシステムに集中的にインスト−ルされていてもよい。
【００７０】
また、ミドルソフトウェアシステム内のプログラム（リスナープログラム、ジェネレータプログラム、ディレクトリサービスプログラム、ディレクトリ管理プログラム、カーネルプログラム）は、Ｊａｖａ言語、Ｃ＋＋言語等のオブジェクト指向言語で作成され、磁気ディスクにインストールされている構成を採ることができる。
【００７１】
また、ディレクトリ管理プログラムは、ディレクトリサービスプログラムに蓄積された入出力機器のＤＩＤ、データ構造、使用プロトコル及びネットワークアドレスをデバイス情報としてディレクトリ管理プログラムの画面上のアイコンとして表示する構成を採ることができる。
【００７２】
また、ディレクトリ管理プログラムを使用して、ディレクトリサービスプログラムに対してバックエンドアプリケーションのネットワークアドレス、オブジェクトクラス名、オブジェクトメソッド名をバックエンドアプリケーション情報として登録でき、これらをディレクトリ管理プログラムの画面上のアイコンとして表示する構成を採ることができる。
【００７３】
また、ワークベンチプログラムはディレクトリサービスプログラムのデバイス情報とバックエンドアプリケーション情報を参照して、アイコンのクリックアンドドラッグ操作により、デバイス情報アイコンとバックエンドアプリケーション情報アイコンを結びつけることができる。このような操作によって入出力機器とバックエンドアプリケーション間の経路制御（ルーティング）が可能になる。
【００７４】
また、デバイスエージェントモジュールは、Ｊａｖａ言語、Ｃ＋＋言語等のオブジェクト指向言語で作成され、ネットワークサーバから供給される態様、入出力機器の一部として取り込まれている態様、独立したプログラムとして磁気ディスクにインストールされている態様の何れの態様を採用してもよい。
【００７５】
【発明の効果】
以上説明したように、本発明によれば、ミドルソフトウェアシステムが、各種の入出力機器に関する入出力データ構造、入出力プロコトル及びアクセス手段を表す自己説明型ＸＭＬ文書を自動的に解釈し、入出力機器とバックエンドアプリケーション間のデータを中継するため、入出力機器又はバックエンドアプリケーションが通信相手のデータフォーマットやアクセス方法等に適合させるための処理を行う必要がなく、データフォーマットやアクセス方法等が相互に異なる複数のコンピュータシステム、ディジタルデバイス、レガシーデバイス等を円滑に統合化することができる。
【図面の簡単な説明】
【図１】代表的な製造業におけるシステム構成例を示す図である。
【図２】本実施形態における統合化システムのシステム構成図である。
【図３】自己説明型ＸＭＬ文書の構成図である。
【図４】自己説明型ＸＭＬ文書のデータ構造を説明するための図である。
【図５】告知フェーズにおける処理を示すフロー図である。
【図６】ジェネレータプログラムにおける解析処理を説明するための図である。
【図７】ディレクトリ管理プログラム及びワークベンチプログラムの処理を示す図である。
【図８】ＥＪＢクラスオブジェクト名及びＥＪＢクラスメソッド名のリンク構造を示す図である。
【図９】入出力フェーズにおける処理を示すフロー図である。
【図１０】統合化システムにおける処理概要を示すフロー図である。
【符号の説明】
１…統合化システム、１０…入出力機器、１０Ａ…工作機械、１０Ｂ…生産ライン、１０Ｃ…生産管理パッケージソフトウェア、１０Ｄ…受発注パッケージソフトウェア、１２…デバイスエージェントモジュール、１４…アダプタモジュール、１６…リスナープログラム、１８…カーネルプログラム、２０…ディレクトリサービスプログラム、２２…ジェネレータプログラム、２４…ディレクトリ管理プログラム、２６…ワークベンチプログラム、２８…制御プログラム、３０…アプリケーションサーバ、３２…ＥＪＢブログラム、３４…入出力クラスライブラリ、３６…データベース、４０…自己説明型ＸＭＬ文書、４０Ａ…データ構造部、４０Ｂ…識別情報部、４０Ｃ…プロトコル情報部、４０Ｄ…メッセージ情報部、９２…生産管理システム、９４…受発注システム、９６…工作機械稼働システム、９８…生産ラインシステム、Ｓ１００…告知フェーズ、Ｓ２００…入出力フェーズ、Ｔ１…情報解析処理、Ｔ２…メッセージ依存関係解析処理、Ｔ３…データ依存関係解析処理、Ｔ４…メッセージデータ型解析処理、Ｔ５…データ構造データ型解析処理、Ｔ６…データチェック情報作成処理。
【図１】
2004086355.tif 000003
【図２】
2004086355.tif 000004
【図３】
2004086355.tif 000005
【図４】
2004086355.tif 000006
【図５】
2004086355.tif 000007
【図６】
2004086355.tif 000008
【図７】
2004086355.tif 000009
【図８】
2004086355.tif 000010
【図９】
2004086355.tif 000011
【図１０】
2004086355.tif 000012