(57)【要約】【課題】動作基盤であるハードウェアやＯＳ、ミドルウェアに変更が生じても、容易に業務アプリケーションプログラムをこれに適応させる。【解決手段】処理装置及びメモリを含むハードウェア１と、ＯＳ２と、ＯＳ２上あるいはミドルウェア３上で動作し、ＯＳのＡＰＩを仮想化する生産システム仮想基盤ソフトウェア４と、前記仮想化ＡＰＩを利用する生産システムアプリケーションプログラム５を有する。仮想化ＡＰＩは、生産システムアプリケーションプログラム５から渡されたパラメータをＯＳ２のＡＰＩの呼び出し書式に適合するように変更する。生産システムアプリケーションプログラム５は、ＯＳ２の変更によらず仮想化ＡＰＩを同一形式で呼び出す。【選択図】図１
2010009325.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを備える生産システムであって、
前記コンピュータは、
ソフトウェアを実行する処理装置及びメモリを含むハードウェアと、
前記ハードウェア上で動作するオペレーティングシステムソフトウェアと、
前記オペレーティングシステムソフトウェア上で動作し、前記オペレーティングシステムのＡＰＩを仮想化する仮想化ソフトウェアと、
前記仮想化ソフトウェア上で動作し、前記仮想化ＡＰＩを利用する生産システムアプリケーションプログラムと、
を有し、前記仮想化ソフトウェアの前記仮想化ＡＰＩは、前記生産システムアプリケーションプログラムから渡されたパラメータを前記オペレーティングシステムのＡＰＩの呼び出し書式に適合するように変更し、
前記生産システムアプリケーションプログラムは、前記オペレーティングシステムの相違によらずに前記仮想化ＡＰＩを同一形式で呼び出すことを特徴とする生産システム。
【請求項２】
請求項１記載のシステムにおいて、さらに、
前記オペレーティングシステムソフトウェア上で動作し、前記オペレーティングシステムのＡＰＩを利用するミドルソフトウェア
を有し、前記仮想化ソフトウェアは、前記オペレーティングシステムソフトウェア及び前記ミドルウェア上で動作し、前記オペレーティングシステム及び前記ミドルウェアのＡＰＩを仮想化し、
前記仮想化ソフトウェアの前記仮想化ＡＰＩは、前記生産システムアプリケーションプログラムから渡されたパラメータを前記オペレーティングシステム及び前記ミドルウェアのＡＰＩの呼び出し書式に適合するように変更し、
前記生産システムアプリケーションプログラムは、前記オペレーティングシステム及び前記ミドルウェアの相違によらずに前記仮想化ＡＰＩを同一形式で呼び出すことを特徴とする生産システム。
【請求項３】
請求項１記載のシステムにおいて、
前記仮想化ソフトウェアの前記仮想化ＡＰＩは、前記オペレーティングシステムソフトウェアのＡＰＩを複数組み合わせた拡張ＡＰＩを有することを特徴とする生産システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は生産システムに関し、特に車両生産に用いるコンピュータシステムに関する。
【背景技術】
【０００２】
汎用コンピュータを利用した車両生産システムは、ハードウェア、基本ソフト（ＯＳ：オペレーティングシステムソフトウェア）、データベース等の汎用ミドルウェアと、目的の業務を行うようにプログラムされたアプリケーションソフト（業務アプリケーション）等で構成される。ハードウェア制御は比較的複雑であるため、業務アプリケーションはハードウェアの制御を直接的には行わず、ＯＳやミドルウェアが提供するアプリケーションインタフェース（ＡＰＩ）機能を通して行うことが多い。
【０００３】
このような車両生産システムにおいて、業務アプリケーションがユーザに提供する機能は、生産方式や運用手法と密接に関係しているため、汎用ソフトウェアではなく、特別に専用ソフトウェアを作成して利用するのが一般的である。また、一度作成した業務アプリケーションは、社内の多数の生産工場へ導入し、長期にわたって利用を続ける場合もある。従来において、この業務アプリケーションは、ハードウェア、ＯＳ、ミドルウェアを動作の基盤としているが、これらは提供メーカの都合により部品変更や販売の打ち切り、バージョンアップ等種々の理由で短期間に変更が繰り返される。この変更周期は、システムを多数工場へ順次導入していく期間（数年）や、一旦導入したシステムを修繕しながら利用していく運用の期間よりも一般的に短いため、業務アプリケーション開発は、その都度新しい動作基盤への適合のためのソフトウェア改造と膨大なテスト作業を必要とする。
【０００４】
特許文献１には、センサを基盤としてユーザあるいはユーザシステムの状況に適応的にソフトウェア構成を変更できる、自律的なシステム構成を支援する状況認知基盤システムが開示されている。
【０００５】
特許文献２には、種類の異なる複数の端末で、同一のアプリケーションソフトウェアを重複して記憶する必要が無く、バージョンアップ等も容易に行うことができるネットワーク端末でのソフトウェア実行方法が開示されている。
【０００６】
特許文献３には、再利用性が高く、しかもカスタマイズし易い柔軟なシフトウェアを作成することにより、業務システムの開発コストを低減できる業務システムの構築装置が開示されている。
【０００７】
【特許文献１】特開２００７−１５７１６５号公報
【特許文献２】特開２００１−５１８５７号公報
【特許文献３】特開２００２−３５８２００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ＯＳが提供するＡＰＩ機能は、主にハードウェア機器を動作させる単純な基礎命令である。データの操作やプログラムの実行、画面表示等を行うために必要である。ミドルウェアのＡＰＩ機能は、ＯＳが提供するいくつかの基礎的機能を組み合わせて、ある程度まとまった機能を提供するものの、やはり汎用的な機能である。
【０００９】
いずれのＡＰＩ機能も、生産システムに用途を限定した機能ではなく、汎用的な機能として提供されているため、業務アプリケーションが利用する際には、目的に応じた制御パラメータを与えて動作を指定する必要がある。よく利用するＡＰＩ機能の場合、業務アプリケーションの多数の機能から、制御パラメータ値を変えながら繰り返し利用される。つまり、業務アプリケーションプログラムの多くの箇所で利用するように組み入れられている。この状態でＡＰＩ機能が変更され、例えばパラメータ値の与え方（呼び出し形式）が変わってしまった場合、業務アプリケーションプログラムの該当ＡＰＩ機能を使用している箇所を全て見つけ出し、新しい呼び出し形式にあわせて変更し、動作確認テストを行う必要が生じてしまう。
【００１０】
本発明の目的は、動作基盤であるハードウェアやＯＳ、ミドルウェアに変更が生じても、容易に業務アプリケーションプログラム、より特定的には車両等の生産システムアプリケーションプログラムをこれに適応させることができるシステムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、コンピュータを備える生産システムであって、前記コンピュータは、ソフトウェアを実行する処理装置及びメモリを含むハードウェアと、前記ハードウェア上で動作するオペレーティングシステムソフトウェアと、前記オペレーティングシステムソフトウェア上で動作し、前記オペレーティングシステムのＡＰＩを仮想化する仮想化ソフトウェアと、前記仮想化ソフトウェア上で動作し、前記仮想化ＡＰＩを利用する生産システムアプリケーションプログラムとを有し、前記仮想化ソフトウェアの前記仮想化ＡＰＩは、前記生産システムアプリケーションプログラムから渡されたパラメータを前記オペレーティングシステムのＡＰＩの呼び出し書式に適合するように変更し、前記生産システムアプリケーションプログラムは、前記オペレーティングシステムの相違によらずに前記仮想化ＡＰＩを同一形式で呼び出すことを特徴とする。
【００１２】
本発明において、さらに、前記オペレーティングシステムソフトウェア上で動作し、前記オペレーティングシステムのＡＰＩを利用するミドルソフトウェアを有し、前記仮想化ソフトウェアは、前記オペレーティングシステムソフトウェア及び前記ミドルウェア上で動作し、前記オペレーティングシステム及び前記ミドルウェアのＡＰＩを仮想化し、前記仮想化ソフトウェアの前記仮想化ＡＰＩは、前記生産システムアプリケーションプログラムから渡されたパラメータを前記オペレーティングシステム及び前記ミドルウェアのＡＰＩの呼び出し書式に適合するように変更し、前記生産システムアプリケーションプログラムは、前記オペレーティングシステム及び前記ミドルウェアの相違によらずに前記仮想化ＡＰＩを同一形式で呼び出してもよい。
【００１３】
また、本発明において、前記仮想化ソフトウェアの前記仮想化ＡＰＩは、前記オペレーティングシステムソフトウェアのＡＰＩを複数組み合わせた拡張ＡＰＩを有していてもよい。
【発明の効果】
【００１４】
本発明によれば、動作基盤であるハードウェアやＯＳ、ミドルウェアに変更が生じても、生産システムアプリケーションプログラムを変更する必要がないため容易に対応できる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づき本発明の実施形態について説明する。
【００１６】
図１に、本実施形態における車両生産システムの機能ブロック図を示す。生産システムは汎用コンピュータシステムで構成され、車両生産における各工程、すなわち溶接、塗装、組み立て等の各工程において生産指示を作業者に出力するコンピュータである。生産システムは、機能ブロックとして、ディスク装置やメモリ、ＣＰＵ、入出力インタフェース、各種バス等からなるハードウェア１と、ハードウェア１を制御しその状態を把握する基本ソフトウェア（ＯＳ）２と、基本ソフトウェア（ＯＳ）２に処理を依頼し、結果を受け取ることでひとまとまりの機能を行うミドルウェア３と、基本ソフトウェア（ＯＳ）２及びミドルウェア３とが提供する機能を直接利用する生産システム仮想基盤ソフトウェア４と、生産システム仮想基盤ソフトウェア４が提供する機能を利用して動作する生産システム業務ロジック（業務アプリケーションプログラム）５から構成される。従来においては、システム動作基盤の階層構造において上部に位置する業務アプリケーションプログラムが基本ソフトウェア（ＯＳ）２やミドルウェア３が提供する機能を直接利用する構造であるのに対し、本実施形態では、システム動作基盤を利用する窓口となる生産システム仮想基盤ソフトウェア４が存在し、この生産システム仮想基盤ソフトウェア４を介して動作基盤の機能を利用する点が異なっている。
【００１７】
生産システム仮想基盤ソフトウェア４は、生産システムに特化した以下の機能を有する。すなわち、ディスクアクセス、プログラム実行、共有メモリ利用、プロセス間通信、ネットワークアクセス、データベースアクセス、通信ソフト利用、保全機能付きデータ管理、データ保全機能付きプロセス間通信、システム動作状態管理、プロセス一括起動／停止である。
【００１８】
ディスクアクセスは、ディスク装置等の記憶媒体に記憶された、ＯＳによりファイルとして仮想化されているデータを読み書きする機能である。
【００１９】
プログラム実行は、ファイルの状態でＯＳの管理するファイルシステム上に配置されているプログラムをメモリ上にロードして実行状態にする機能である。
【００２０】
共有メモリ利用は、メモリ上に、複数プロセスからアクセスできる共有メモリ領域を確保し開放する機能である。
【００２１】
プロセス間通信は、実行段階にあるプログラム複数の間でデータの受け渡しを行えるようにする機能である。
【００２２】
ネットワークアクセスは、コンピュータシステムの外部とネットワークによる通信を行うための機能であり、ＴＣＰ／ＩＰプロトコルによる内部通信を含む。
【００２３】
通信ソフト利用は、ＨＴＴＰ、ＳＮＭＰ、ＦＴＰ等の通信ソフトウェアを利用する機能である。
【００２４】
保全機能付きデータ管理は、メモリ上でデータを管理し、他のプログラムからのデータ追加、削除、更新、検索の要求に応える機能である。メモリ上のデータは外部のディスク装置にも保存されており、電源供給停止時にもデータが消失しないデータ管理機能である。
【００２５】
データ保全機能付きプロセス間通信は、上記のプロセス間通信の機能に加え、受け渡すデータを逐一ディスク装置上に記録しながら受け渡すことで、電源供給停止時にもデータが消失しないプロセス間通信機能である。
【００２６】
システム動作状態管理は、システムのハードウェアやプログラムの動作状態を監視し、異常を検出する機能である。
【００２７】
プロセス一括起動／停止は、プログラムをまとまった機能グループの単位に括って、一括で起動または停止させることができる機能である。
【００２８】
生産システム仮想基盤ソフトウェア４は、基本ソフトウェア（ＯＳ）２やミドルウェア３が提供する機能のうち、生産システムとして必要な機能それぞれに対して１対１に対応する仮想化機能が組み込まれている。例えば、ＯＳのディスクアクセスに対し、ディスクアクセス機能が１対１に対応し、ミドルウェアであるデータベースソフトに対し、データベースアクセス機能が１対１に対応する。また、これらの仮想化機能を複数利用して、生産システムとして必要なより高級でまとまった機能も仮想基盤ソフトウェアとして組み込まれている。例えば、共有メモリとそのデータをディスク装置に二重記録し、データが消失しないような保全機能をつけた保全機能付きデータ管理機能である。
【００２９】
業務アプリケーションプログラム５は、ＯＳ２やミドルウェア３の機能は直接利用せず、代わりに、仮想基盤ソフトウェア４が提供する機能のみを利用し、目的の処理を行うようにプログラミングされる。
【００３０】
このような構成において、ハードウェア１、ＯＳ２、ミドルウェア３において何らかの変更が生じても、これを直接利用している仮想基盤ソフトウェア４の特定部位プログラムのみを変更し、変更前と同じ処理結果が得られるようにすることで、業務アプリケーションプログラム５の変更を回避することができる。また、仮想基盤ソフトウェア４は、生産システムにおいて必要なもののみを用意しているため、これに関係ない部分での変更については全く影響なく、無視することができる。
【００３１】
このように、本実施形態では、動作基盤の変更に伴うプログラム変更必要箇所を最小限とし、テスト作業工数を低減でき、品質の安定化及び維持コストの低減が可能となる。仮想基盤ソフトウェア４が、動作基盤の変更を吸収するということもできる。
【００３２】
図２に、仮想基盤ソフトウェア４を用いない場合の処理構成例、図３に仮想基盤ソフトウェア４を用いた場合の処理構成例を示す。いずれも、業務アプリケーションプログラム５がディスク装置から必要なデータを繰り返し読み込む場合である。
【００３３】
仮想基盤ソフトウェア４を有しない場合、業務アプリケーションプログラム５のある機能Ｆの処理の中で、ステップＦ１、Ｆ２、Ｆ３の３箇所でｆｉｌｅＲｅａｄという処理ステップを実行する。ｆｉｌｅＲｅａｄは、ＯＳのＡが提供しているファイル読み込みＡＰＩであり、業務アプリケーションプログラム５の各ステップではこのＡＰＩにパラメータとしてファイル名、読み取り基本サイズ、読み取り回数、データ格納先を指定して呼び出している。例えば、ステップＦ１では、ファイル名としてｆｉｌｅＡを、読み取り基本サイズとして１を、読み取り回数として３を、データ格納先としてｄａｔａ１を指定して呼び出している。同様に、ステップＦ２やステップＦ３ではパラメータを変えながら同じＡＰＩを呼び出している。ファイル読み込みＡＰＩは、ＯＳの機能としてディスク装置を制御し、データを読み出して結果を呼び出し元の業務アプリケーションプログラム５に返す。
【００３４】
ＯＳのＡと異なる、あるいはバージョンアップであるＯＳのＢを搭載した別のコンピュータで同ソフトウェアを動作させる必要が生じた場合で、かつＯＳのＢが提供するファイル読み込みＡＰＩが呼び出しの名称やパラメータの順序、項目がＯＳのＡと異なる場合を想定すると、ＯＳのＢでは呼び出し名はｆＲｅａｄとなり、パラメータはデータ格納先、読み取りサイズ、ファイル名の順で与えなければならない。この場合、業務アプリケーションプログラム５の機能Ｆは、呼び出し形式が一致しないためこれを利用することができず、ステップＦ１、Ｆ２、Ｆ３の３箇所を修正しなければならない。
【００３５】
一方、仮想基盤ソフトウェア４を用いる場合、ＯＳのＡをＯＳのＢに置き換えても、仮想基盤ソフトウェア４の一部を変更するだけですみ、業務アプリケーションプログラム５については変更する必要がない。仮想基盤ソフトウェア４に用意したＯＳのＡ用のファイル読み込みＡＰＩは、呼び出し名はｖＲｅａｄ、パラメータはファイル名、読み取り基本サイズ、読み取り回数、データ格納先の順である。この仮想ＡＰＩは、呼び出された時に受け取ったパラメータを、そのままＯＳのＡが提供するファイル読み込みＡＰＩに渡して呼び出す。ＯＳのＢへの適合を行う際には、ＯＳのＡ用のものを元にＯＳのＢ用のファイル読み込みＡＰＩを作成する。ＯＳのＢ用のファイル読み込みＡＰＩでは、読み取り基本サイズと読み取り回数から読み取りサイズを算出し、結果をｓｉｚｅという内部一時記憶領域に保存しておき、ＯＳのＢが提供するファイル読み込みＡＰＩの呼び出し書式にあわせてこれを呼び出すように変更する。但し、業務アプリケーションプログラム５が利用する際の呼び出し名（ｖＲｅａｄ）やパラメータの配列は変更せず、同一の形式とする。
【００３６】
このような構成では、業務アプリケーションプログラム５の機能Ｆからの利用方法には変更がないため、業務アプリケーションプログラム５の変更は不要となる。同じＡＰＩを他の機能の多数の箇所で利用している場合も同様である。したがって、仮想基盤ソフトウェア４を介在させることで、ＯＳの提供するＡＰＩ機能を仮想化し、業務アプリケーションプログラム５への影響を吸収することができる。ファイル読み込みＡＰＩだけでなく、他のＡＰＩ機能についても同様である。
【００３７】
図４に、仮想基盤ソフトウェア４の他の機能を示す。車両生産システムとして利用する仮想基盤ソフトウェア４は、ＯＳが提供するレベルよりも、より高機能に拡張した機能を提供する。図は、ＯＳが提供するプロセス間通信の機能を拡張したデータ保全機能付きプロセス間通信の場合である。ここで、プロセスとはコンピュータで起動され実行中のプログラムを意味する。プロセス間通信は、２つ以上のプロセスが互いに連携し合いながら動作する際に、それらの間でデータをやり取りするための機能を意味する。
【００３８】
図において、業務アプリケーションプログラム５の機能Ｇと、業務アプリケーションプログラム５の機能Ｈはプロセス間通信を行う。ＯＳが用意しているプロセス間通信機能を利用する場合、業務アプリケーションプログラムの機能Ｇは、仮想基盤ソフトウェア４のプロセス間通信（送信）を介してＯＳ２のプロセス間通信（送信）を使用する。ＯＳ２のプロセス間通信機能はメモリを介して送り先にデータを供給する。受信側の業務アプリケーションプログラムの機能Ｈは、同様にＯＳ２の受信機能を用いてメモリ上のデータを読み込むことでプロセス間のデータ受け渡しが成立する。しかしながら、メモリで受け渡すデータはコンピュータの電源が何らかの理由で遮断された場合、記憶していたデータが消失してしまう。生産プロセスにおいては生産指示の抜け等にもつながり得るため電源が消えてもデータが保持されるプロセス間の通信が必要な場合がある。データ保全機能付きプロセス間通信は、送信したデータを電源が切れても内容が保持されるようにディスク装置への書き込みを同時に行うように機能拡張したプロセス間通信である。
【００３９】
業務アプリケーションプログラム５の機能Ｇは、データ保全機能付きプロセス間通信の送信機能を呼び出し、送信データを渡す。送信機能は、データ書き込み機能を介してディスク装置上にデータを書き込むと同時に、上記のプロセス間通信機能を介してデータを送った旨を通知する。業務アプリケーションプログラム５の機能Ｈは、受信機能を呼び出してデータの受信を待つ。受信機能は、ディスク装置上のデータ読み込みを行う機能を呼び出して未読のデータがあればそれを読み出し、業務アプリケーションプログラム５の機能Ｈへ返す。未読のデータがなければプロセス間通信（未読）で通知が来るのを待つ。通知が来たら、再びデータ読み込み機能を利用してデータを読み込む。
【００４０】
このようにして、ＯＳ２が本来提供しているメモリを利用したプロセス間通信の機能と、ディスク上のデータアクセス機能を組み合わせて、機能拡張したプロセス間通信を行うことができる。
【００４１】
なお、本実施形態における仮想基盤ソフトウェア４の類似技術として、Ｊａｖａ（登録商標）があり、これとの相違については以下のとおりである。
【００４２】
図５に、Ｊａｖａ（登録商標）による仮想コンピュータの動作原理を示す。開発者はＪａｖａ（登録商標）言語でプログラムソースコードを作成する。一般にプログラムソースコードは人間が解釈できる自然言語に近い言語で表現されるが、コンピュータはこれをそのまま実行することはできないため、コンピュータが理解できる実行コードに翻訳する必要がある。開発者は、Ｊａｖａ（登録商標）が提供する翻訳ツールを用い、中間コードを生成し、プログラムを動作させるコンピュータハードウェア上へ配置する。それぞれのコンピュータ上にはそれぞれのハードウェアに適したＯＳが動作しており、さらにそれぞれのＯＳ用に作られているＪａｖａ（登録商標）仮想マシンソフトウェアがインストールされる。プログラムを実行する際に、Ｊａｖａ（登録商標）仮想マシンは中間コードを読み込み、それぞれのＯＳが実行できる実行コードに翻訳しながら実行する。ハードウェアＡでは、ＯＳのＡ用のＪａｖａ（登録商標）仮想マシンがＯＳのＡ用に適した実行コードで、ハードウェアＢでは、ＯＳのＢ用のＪａｖａ（登録商標）仮想マシンが、ＯＳのＢ用に適した実行コードに翻訳して実行するため、同一のプログラムを異なるハードウェア、異なるＯＳ上で実行することができる。しかしながら、この方式では、プログラム実行段階で中間コードを実行コードに翻訳する処理が毎回行われるため処理の実行効率が低い。
【００４３】
一方、本実施形態では、ＯＳにより異なる部分は、ＯＳの種類毎にプログラムソースを作成し、差し替えて利用する。この場合、ソースプログラムは例えばＣ言語で作成し、開発段階で実行コードに翻訳することができるので実行効率が高い。
【００４４】
図６に、Ｊａｖａ（登録商標）と本実施形態の相違を概念的に示す。図６（Ａ）に示すように、Ｊａｖａ（登録商標）は目的を特定しない汎用的な仮想コンピュータであるため、ＯＳの持つ機能をほぼそのまま仮想化している。このため、その上に種々のアプリケーションを構築することができない。一方、図６（Ｂ）に示すように、本実施形態の生産システム仮想基盤ソフトウェア４は、生産システムにおいて必要とされる機能に特化しており、ＯＳの機能全てを仮想化するものではない。
【図面の簡単な説明】
【００４５】
【図１】実施形態の構成図である。
【図２】従来方式の処理説明図である。
【図３】実施形態の処理説明図である。
【図４】実施形態の他の処理説明図である。
【図５】Ｊａｖａ（登録商標）の説明図である。
【図６】Ｊａｖａ（登録商標）と本実施形態の比較説明図である。
【符号の説明】
【００４６】
１  ハードウェア、２  基本ソフト（ＯＳ）、３  ミドルウェア、４  生産システム仮想基盤ソフトウェア、５  業務アプリケーションプログラム（生産システム業務ロジック）。
【図１】
2010009325.tif 000003
【図２】
2010009325.tif 000004
【図３】
2010009325.tif 000005
【図４】
2010009325.tif 000006
【図５】
2010009325.tif 000007
【図６】
2010009325.tif 000008