OPC協議会 Developer Conference 2006
昨日はこれに1日参加してきました。
内容的にはOPC UAの概要と内部の情報モデル、実装についてです。
OPC UAの要件
OPC UAが必要とされる要件は以下のようになります。
- エンタープライズフロアのアプリケーション(ERP/SCMなど)とプラントフロアのアプリケーション(MES/SCADA)との相互接続性を確保し、容易にするためにオープンなインターフェイス仕様の作成が必要。また、それが可能となるような情報モデルが構築可能なソフトウェアアーキテクチャを持てること。(ISA-S95への対応を含む)
- 今までのOPC各仕様を統一し、現実世界のオブジェクトと、OPCの管理単位が一致すること。また、仕様毎にバラバラだったクライアントからサーバーへのデータアクセス方法を統一する。
- 基板となる分散処理技術をリタイアするDCOMからWeb Service切り替えるとともに、それによって、異プラットフォーム間での相互運用性も担保するとともに、特定の実装技術に依存しないようにする。
- セキュリティを必須とし、広く利用されているセキュリティシステム(認証、暗号化技術)を利用する。
OPC UAの仕様・設計思想
以上の要件を実現するためにOPC UAでは以下の基板技術に基づいて仕様が策定されています。
- SOAP/WSDL
- WS-*(WS-Security, WS-Trust, WS-ReliableMessaging,..)
このような基板技術の変更以外にOPC UAが今までのCOM OPCと異なる大きな点はOPC UAのサーバーがその内部に柔軟性を持った情報モデルを持つと言う事です。これまでのCOM OPCの各仕様は、使用目的を実現するための固定的な情報モデルしか持たず、クライアントサイドにもそれへのアクセス手段しか持たせませんでしたが、OPC UAの情報モデルではオブジェクト指向に基づいたプラントの情報モデルをネットワークデータベースの形で情報モデルとして内部に持たせることが出来るので、より付加価値の高い情報をクライアントサイドに提供することが出来ます。この情報モデルは、モデルの階層構造を示すオブジェクト(Object)、データが格納されるバリアブル(Variable)、それらの内部変数である属性(Attribute)、バリアブル内部でデータを格納する実体であるプロパティ(Property)で構成され、それぞれ、オブジェクト・バリアブルはクラスとして、その他にもクラス間のリレーション、プロパティのタイプはXMLスキーマ、バイナリのストラクチャとして型定義されます。
また、OPC UAではこのような情報モデルをを記述するためのノーテーション(記述言語)をUMLを拡張する形で開発しています。(ただし現状ではMDA的なアプローチは考えていないらしい)
セキュリティに関してはWS-Securityに基づきコミュニケーションレイヤでのセキュアな通信チャンネルの確保、アプリケーションレイヤーでのアプリケーションのオーセンティフィケーションの確認、ユーザー認証を行い多段階でのセキュリティ確保を必須とし、それらを実現するためには公開鍵インフラ(RADIUS)やスマートカードによる認証システムを利用するようにします。
またOPCはWS-ReliableMessagingに基づく通信の保証をおこないます。また、OPC UAではこれまでのCOM OPCで要望の強かった冗長化の仕様化をクライアント、サーバー、デバイスそれぞれのレベルで実現できるように仕様化しています。
OPC UAの実装
OPC UAの実装は基本的にTCP/IPのスタック、Web Serviceのスタック、適切なXMLパーサーがあれば開発可能です。OPC Foundationから提供されるSDKは.NET/ANSIC,C++/Javaが提供されます。特にANSIC, C++向けのSDKはPLCやDCSコントローラにOPC UAを組み込みかたちでの実装を想定しているようです。このため、OPC UAはPCの為の技術であったCOM OPCにくらべ、垂直方向のスケーラビリティがメインフレームからPLCまでと大きく広がることになります。
このほかに、今までのCOM OPCからOPC UAへのスムーズな以降を促進する意味もあって、既存のCOM OPCをラップし、OPC UAのインターフェイスとして公開するためのラッパ、プロキシもOPC Foundationから提供されます。
まとめ
このようにOPC UAは既存のCOM OPCに対する大規模な改造というよりも、パラダイムシフトであり、全く新しく生まれ変わる。このため、開発技術者にとっても大きなスキームチェンジを伴う物にもなりますが、技術とビジネス環境の変化に対応していくためにはそれも必要な事でしょう。
DevCon全体の感想
- 情報モデルの説明に関しては、聴衆の理解は進んでいないようです。
- 実装説明に関しては、特定のプラットフォームに依存しないのが建前とはいえ、コードをちゃんと見せてほしかった。
- 同時通訳の品質が悪すぎで、かえって何を言っているのかがわからない。
11:57追記
一部修正しました。
コメント