ソフトウェア概要
Plastic Cell Architecture用アプリケーションの機能検証に用いるためのシミュレータ. 修士研究の一環で開発していました(と言っても,修論の内容はまったく別物なのがうける). まあ,Plastic Cell Architectureに限らず使おうと思えば使えます. イメージとしては,オブジェクト群をFIFOチャネルで結んで協調動作させるためのフレームワークです.
GraphSimで動作するアプリケーションは,階層型グラフ構造をとります. ノードは機能を表し,エッジはデータ通信チャネルを現します. ノードには,入力・出力ポートが存在し,各ポートは他のノードのポートと通信チャネルで結ばれています. 入出力ポートからは,データの入力および出力を行うことができます. 出力されたデータは,通信チャネル内にFIFOで蓄えられ,もう一方の入力ポートから読み込まれるのを待ちます. ですから,ノードはデータを読み込み,処理し,出力するという記述だけを行います. そして,アプリケーションは,いかにしてそのノードをつなげるかによって記述されます.
イメージとしては,コマンドラインシェルのパイプに近いです. ただ,パイプとの違いは3つあります.
一つ目の違いは,構造の違いです. パイプは,リスト構造を採ります(コマンドの列). GraphSimは,グラフ構造を採ります.
二つ目の違いは,階層型かそうでないかです. パイプはリスト構造が階層的に記述されることはありません. しかし,GraphSimは,グラフ構造が階層的に記述されます.
最後の違いは,構造の柔軟性です. パイプは一度動き出したらそのパイプ構造を変えることはありません. しかし,GraphSimは,動作中でもグラフ構造を変えることが出来ます. しかも,アプリケーションが自律的にです.
もう少しで面白いものになりそうな予感はするんだけど,今ひとつそこにたどり着けないのが,現状のGraphSimの立ち位置です.
各種ドキュメント(PCAWiki内へのリンクを含む)
動作環境
- Java1.4以上がインストールされている環境
ダウンロード
残念ながら,諸事情によりソースコードを開示することはできません. 次のバージョンからは開示できると思います.
注意事項
本プログラムにより発生したいかなる損害も,私は責任を負いません. graphsim2.jarは,中身を改変しないときのみ,ライブラリという形での再配布を許します. そのとき,配布ファイル内に,graphsim2.jarの出所について,記述してください. 具体的には,本ページのアドレスを記述し,そこがgraphsim2.jarの一次配布元であることが明らかであるような記述です.