Skip to content
/ MUF Public

Memory Unit Framework. 通信をメモリ操作へ置換する、Redis基盤の共有メモリ型分散システムフレームワーク。

License

Notifications You must be signed in to change notification settings

Masafuro/MUF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MUF: Memory Unit Framework

プロジェクトの概要と設計思想

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/ はリクエストに対して自動的に応答を返すバックエンドの標準的な実装サンプルとして機能します。

About

Memory Unit Framework. 通信をメモリ操作へ置換する、Redis基盤の共有メモリ型分散システムフレームワーク。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages