Jijo2agentライブラリ
このライブラリは、事情通ロボットプロジェクトにおいて、ロボットのソフトウェアの基盤となったライブラリです。1998年に初版が実装されました。
C言語で実装され、イベント駆動型のモジュールプログラミングを行うことができます。
このライブラリを用いて作成したモジュール間の通信は、完全非同期で実施され、モジュール間のプロトコルとして、S式を採用していますので、様々な方のデータ通信を行うことができます。そのため、Lispとの親和性が非常に高いのが特徴です。
事情通ロボットでは、応答性や処理速度の要求が高いモジュールをこのjijo2agentライブラリに基づくプログラムモジュールで実装し、比較的高度な知的処理で応答性があまり高くなくてもよい機能をEusLispで実装していました。
通信プロトコルについては、S式以外の独自形式にも対応することができると思います。
動作環境について
jijo2agentライブラリは、開発当初からLinuxをターゲットにしていたこともあり、通常のLinuxであれば問題なく動作します。また、POSIX Cでほとんどが実装されていますので、Unix系のOS(MacOSXやCygwinなど)でも問題なくコンパイル&実行可能です。
また、開発当初のLinuxには、カーネルスレッドすらない状態でしたので、このライブラリでもスレッド機能がなくても動作させることができます。(ただし、周期タスクがブロックされないことが条件ですが)しかし、現在では、PThreadでのタスク実行ができようになっていますので、ほとんどのOSでスレッドを使った非同期イベント駆動がたのモジュールを作成することができます。
Windowsに関しては、Cygwinを基本としていますが、VC++ MFCを用いた実装も行っていますので、MFCをコンパイルできる環境があれば、対応可能です。
派生ライブラリ
このjijo2agentライブラリを同期型のRPCに対応させ、IIOP,GIOP等を実装したものがRtORBになります。このライブラリ自体は、TCPソケット通信を行っていますので、ソースコードを読んでみれば、TCPソケットのプロセス間通信の基本が理解できると思います。
ぜひ、ソースコードを読んで、バグの報告をしていただけると助かります。
資料
添付ファイルなし