MUF(Memory Unit Framework)は、分散システムにおけるユニット間連携を、Redis上の階層化されたキー空間の状態変化として再定義するフレームワークです。本フレームワークは、産業用コントローラの共有メモリ概念をネットワーク空間へ拡張し、各ユニットが特定の階層構造に従ってデータを配置することで、疎結合かつ自律的な連携を実現します。
最大の特徴は、RedisのKeyspace Notificationsを利用したリアクティブなイベント駆動モデルと、すべてのデータに設定されるTTL(有効期限)による自動的なメモリ清掃機能にあります。本バージョンでは、DB上のパスをすべて小文字のプレフィックス(muf/)に強制正規化する「小文字絶対主義」を採用しており、大文字小文字の差異に起因する不整合を物理的に排除した、極めて堅牢な非同期メッセージング環境を提供します。
MUFプロトコルにおいて、すべてのデータは muf/[unit_name]/[status]/[id] という小文字の階層構造を持ち、SDKを介した入力は内部で自動的に正規化されます。
特定の処理を依頼するリクエストである req は、送信側ユニットの空間に生成され、デフォルトで10秒の有効期限が適用されます。リクエストに対する成功応答である res および処理中の例外を通知する err は、リクエスト送信側の空間に書き戻され、これらは60秒間保持されます。長期間の保持を目的とした定常的な共有メモリである keep は、3600秒の有効期限を持つ状態保持用データとして定義されます。具体的な実装方法やコードサンプルについては、docフォルダ内のユニット開発リファレンスを参照してください。
- sample-unit
- 開発参照用のサンプルユニット
- identify-uni
- ログイン機能とセッション発行機能を持つ認証ユニット
ルートディレクトリに配置された docker-compose.yml を司令塔として、システムの起動と観測を行います。各ユニットの設定は include 機能により統合管理されており、ネットワークの生成から削除までを Docker Compose が完全に自動管理するため、手動でのネットワーク作成は不要です。
運用を開始する際は、まずシステムの神経網である Redis と自動応答を担うエコーユニットを
docker compose up -d muf-redis
でバックグラウンド起動します。基盤が立ち上がった後、一時的な診断用スクリプトであるチェックユニットを
docker compose run --rm muf-check-unit
で実行し、システム全体の通信機能が正常であることを検証します。動作が確認された後は、必要に応じて docker compose run --rm muf-monitor を使用したメモリ空間の観測や、docker compose run --rm muf-terminal, docker compose run --rm muf-echo-unit を使用した対話的なリクエスト発行を行います。
プロジェクトは機能ごとにディレクトリが分離されており、開発者はルートから直接各コンポーネントを呼び出すことができます。
muf/ ディレクトリは SDK の本体であり、接続管理やパスの正規化、ワイルドカード監視を担うコアライブラリを保持します。check-unit/ は稼働中のシステムに対して通信シーケンスをテストし、健全性を保証するための一時実行用診断ユニットです。monitor/ はキー空間通知を解釈してメモリ遷移を可視化する観測ツールであり、terminal/ はユーザーが直接リクエスト発行や状態操作を行うための対話型インターフェースを提供します。echo-unit/ はリクエストに対して自動的に応答を返すバックエンドの標準的な実装サンプルとして機能します。