メモ
とあることをきっかけに、Tuple Spaceに関して今一度整理しておきたくて検索した。 Twenty years of coordination technologies が2020年ころまでのCordiantion Technologyの歴史を振り返っており大変参考になった。
Twenty years of coordination technologiesの概要
長いのでざっくり要約すると…
概要: この論文は、COORDINATIONカンファレンスの20年の歴史を振り返り、調整技術(Coordination Technologies)の発展と現状を分析した包括的なレビュー論文。 IoTなどの影響で、システム間の相互作用の複雑さが増していることから調整技術の重要性を強調。 サクセスストーリーや制限を明確にする。
なお、ここでいう調整技術とは、Coordination Models and Languagesに基づき、「複数の異種コンポーネントを統合する手段を提供する」ことを目指す技術を指すことにする。
全体的なトレンド
初期:基礎的なモデルと実験的な実装 中期:モバイル環境やセキュリティへの対応 後期:IoTや分散システムへの実践的な適用
1996-2000年(初期)
Linda モデルをベースとした多くの技術が登場
主な技術: - ACLT (1996) - 後のTuCSoNの基礎となる - Manifold (1996) - 後のReoの基礎となる - Moses (2000) - 法に基づく相互作用(LGI)モデルの実装 - Piccola (2000) - コンポジション言語
2001-2010年
より専門化・多様化した技術の出現
主な技術: - Reo (2002) - チャネルベースの調整モデル - O'Klaim (2004) - モバイルコード向けの調整 - Limone (2004) - モバイルエージェント向けの軽量調整 - CRIME (2007) - 論理ベースの調整 - CiAN (2008) - MANETsのためのワークフロー管理
2011-2018年
より実践的で特定領域に特化した技術の登場
主な技術: - LINC (2015) - IoT向けの商用調整技術 - RepliKlaim (2015) - データレプリケーション管理 - Logic Fragments (2015) - 論理推論ベースの調整 - TuCSoN - 継続的な発展と実用化
論文執筆辞典(2020年)現在の課題
- 産業界での採用が限定的
- 開発・デプロイメントツールの不足
- メインストリームの開発言語・プラットフォームとの統合の必要性
- 実用的なモニタリング・デバッグツールの不足
貢献
理論的貢献: - 形式的なモデリング言語の発展 - 検証技術の進歩 - 新しい調整パラダイムの提案
実践的な応用: - 分散システムの設計パターン - ミドルウェアソリューション - クラウドサービスの調整メカニズム
将来の展望: - AIと機械学習を活用した適応型調整メカニズム - ブロックチェーンベースの分散調整 - エッジコンピューティングにおける調整課題 - 大規模分散システムのための新しい調整モデル
参考文献: - https://www.researchgate.net/publication/339464058_Twenty_years_of_coordination_technologies_COORDINATION_contribution_to_the_state_of_art - https://www.researchgate.net/publication/325388738_Twenty_Years_of_Coordination_Technologies_State-of-the-Art_and_Perspectives - https://core.ac.uk/download/pdf/196287252.pdf - https://scispace.com/journals/the-journal-of-logic-and-algebraic-programming-1ay8iggr/2020
Tuple Spaceに類似した技術
概要
Tuple Spaceに類似した技術は、分散システムにおけるデータ共有と通信を実現するための抽象化モデルとして発展してた。Linda modelを起点として、クラウドコンピューティング、IoT、マイクロサービスアーキテクチャなどの現代的なコンテキストで進化している。これらの技術は共通して、非同期通信、データの永続性、空間的・時間的な分離を特徴としている。 ここでは直接の派生とは言えないものも列挙してみる。
主要なポイント
類似技術の分類
- メッセージキューイングシステム
- Apache Kafka
- RabbitMQ
- Amazon SQS
- Redis Pub/Sub
- 分散キーバリューストア
- Apache Cassandra
- Redis
- Hazelcast
- Apache Ignite
- 分散共有メモリシステム
- JavaSpaces
- GigaSpaces
- TSpaces (IBM)
- Lime (Mobile Tuple Spaces)
- Triple Space
- TripCom (Triple Space Communication)
- Web Service Execution Environment (WSMX)との統合
共通と思われる特徴
- 非同期通信モデル
- データの永続性サポート(実装の途中から対応したものもある)
- 分散トランザクション処理(厳密にはトランザクション管理されていないものもある。あるいは後付けでトランザクション管理の機能が追加されたものもある)
- スケーラビリティ
- 耐障害性
技術的な差異を考えるうえでの観点の例
- データモデル(構造化vs非構造化)
- 一貫性モデル(強一貫性vs結果一貫性)
- スケーリング方式(水平vs垂直)
- 実装アプローチ(中央集権型vs分散型)
関連検索に用いるキーワード
- Linda Model
- Distributed Coordination
- Shared Memory Systems
- Message-Oriented Middleware
- Distributed Hash Tables
- Space-Based Architecture
- Content-Based Publish/Subscribe
- Distributed Data Structures
参考文献・URL
(作業途中。とりあえず簡単な例を記載しているが網羅性を高める必要あり)
学術論文
"Coordination Models and Languages" (2001) https://link.springer.com/chapter/10.1007/3-540-45587-6_3
"A Survey of Tuple Space Implementations" (1998) https://dl.acm.org/doi/10.1145/292834.292836
"Space-Based Computing and Reliable Distributed Systems" (2019) https://ieeexplore.ieee.org/document/8731537
技術記事・ドキュメント
Apache Kafka Documentation https://kafka.apache.org/documentation/
JavaSpaces Principles, Patterns, and Practice https://www.oracle.com/technical-resources/articles/javase/javaspaces.html
GigaSpaces Technical Documentation https://docs.gigaspaces.com/latest/overview/index.html
研究プロジェクト
LIME Project (Mobile Tuple Spaces) http://lime.sourceforge.net/
T-Spaces Project (IBM Research) https://researcher.watson.ibm.com/researcher/view_group.php?id=128
本分野の主な応用分野
- クラウドコンピューティング
- IoTシステム
- マイクロサービスアーキテクチャ
- 分散データ処理
- リアルタイムアナリティクス
- エッジコンピューティング
- データスペース ※きっと…という期待を込めて。
今後の話の広がりの方向性の例
- AIや機械学習システムとの統合
- ブロックチェーン技術との関係性整理と統合、あるいは分担
- エッジコンピューティングでの活用
- 次世代ネットワーク通信での応用
- 量子コンピューティングとの関係性、応用
- データスペースのモデル化