CAP概要
CAP
CAPとは、Controller Access Protocolの略で、インターネット経由でCAOプロバイダにアクセスするための「インターネット向け通信プロトコル」です。
CAOエンジンは、DCOMを利用してCAOプロバイダにアクセスしますが、DCOMのセキュリティ上の制約から、インターネットを介したアクセスはできません。
また、企業で導入されているファイアウォールを越えてリモートアクセスすることは困難です。その問題を解決するためにCAPが開発されました。
CAPは、SOAP (Simple Object Access Protocol) を使用して、インターネット経由でオブジェクト間のリモートアクセスを実現するプロトコルです。CAPの機能を実装したCAPプロバイダにより、CAPの仕様に従ったメッセージを作成して送信することができます。これにより、HTTPで接続可能な環境であれば、容易にインターネットを介してリモートのCAOプロバイダに接続することができます。
下図に示すように、CAPプロバイダはリモートのCAOプロバイダに接続するためのCAPメッセージ (SOAPパケット) をWebサーバへ送信します。Webサーバにより呼び出されたCAPリスナはメッセージを解析し、目的のCAOプロバイダを呼び出して必要な情報の受け渡しを行います。これにより、クライアントアプリケーション側は、ローカルに存在するデバイスと同様にインターネット経由でデバイスへアクセスすることができます。

CAPのクライアントとサーバの接続形態は上図で示す通り四つあります。①と②はクライアントアプリケーションが自前でCAPの機能を実装した場合の経路を指します。③はCAOのリモートエンジンの機能とCAPプロバイダの仲介でインターネットやファイアウォールを越えてアクセスする経路を指します。④はサーバ (機器) 側が自前でXMLパーサやSOAPを使用してCAPの機能を組み込んだ場合の経路を指します。③と④の経路は、CaoControllerオブジェクトを生成する際のAddControllerメソッドのオプション引数によって決まります。CAPクライアントとサーバ間のCAPメッセージの通信イメージは以下の通りです。

■e-CAP
e-CAPは、HTTPのPOSTコマンドに必要な情報を格納して通信を行うプロトコルです。CAPプロバイダでは、インターネット経由で情報をCAPリスナとやり取りをする際、XML形式でSOAPパケットに情報を乗せて通信を行います。これはDCOMの直結接続に比べて多くの処理を必要としオーバヘッドが生じます。
また、組み込み機器では、SOAPパケットに対応する処理やXMLを解釈するXMLパーサの機能を実装することは容易ではありません。これらの問題を解決するためにe-CAPが開発されました。e-CAPクライアントとサーバ間のe-CAPメッセージの通信イメージは以下の通りです。

■b-CAP
b-CAPは、TCP/UDPでバイナリデータを使って通信を行うプロトコルです。CAPの概念を踏襲しつつ通信速度の向上を狙ったプロトコルで、TCPストリーム通信として実装されます。b-CAPクライアントとサーバ間のb-CAPメッセージの通信イメージは以下の通りです。

- ■CAPファミリの構成まとめ
本サイトでは、CAOアプリケーション=
ORiNアプリケーション、CAOエンジン=ORiNエンジン、CAOプロバイダ=ORiNプロバイダと表記しています。