スマートフロッグ

スマートフロッグ
開発者イギリス、ブリストルHPラボ
初回リリース2004年1月24日; 21年前 (2004-01-24)
安定版リリース
3.18.016 / 2012年3月13日; 13年前 (2012-03-13)
リポジトリsourceforge.net/projects/smartfrog/
書かれたジャワ
プラットフォームLinuxMicrosoft Windows XP SP2Microsoft Windows VistaHP-UXMac OS/X
タイプ構成管理、フレームワーク
ライセンスApacheライセンス2.0
Webサイトwww.smartfrog.org

SmartFrogSmart Framework for Object Groups)は、コンポーネントベースの分散システム上で大規模アプリケーションをホストするためのJavaベースのオープンソースフレームワークです。分散システムの設計、構成展開、管理を、より容易かつ正確かつ自動化することを目的としています。SmartFrogは主に、SmartFrog言語、ランタイムシステム、そしてSmartFrogコンポーネントモデルを実装するSmartFrogコンポーネントライブラリの3つの要素で構成されています。[1]

歴史

SmartFrogはもともとヒューレット・パッカードのヨーロッパ研究所で開発されました。HPのインフラストラクチャ自動化とサービス自動化に関する研究や、さまざまなHP製品に使用されてきました。 [2] SmartFrogは2004年1月にSourceForgeでホストされるGNU Lesser General Public License (LGPL)ライセンスの下で一般公開されました。その結果、研究所外のユーザーや開発者もフレームワークの使用、拡張、バグ報告を通じて貢献できるようになりました。[3] 2017年、ヒューレット・パッカードHP Inc.Hewlett Packard Enterpriseに分割された後、 Hewlett Packard Enterpriseの所有下でSmartFrogはApache License 2.0の下で再ライセンスされました。[4]

テクノロジー

スマートフロッグ言語

SmartFrog 言語は、システムに属するソフトウェア コンポーネント、構成パラメータ、コンポーネントがシステム内の他のコンポーネントとどのようにバインドされているか、コンポーネントがどのような順序で動作するかなど、コンポーネント コレクションとシステム構成を記述するために使用される構成記述言語です。

コンポーネントモデル

SmartFrogにおいて、コンポーネントは最も重要かつ基本的な要素です。システムはアプリケーションの集合体とみなされ、各アプリケーションはコンポーネントの集合体で構成されています。各コンポーネントはJavaで記述されたSmartFrogファイルに記述され、コンポーネントの存在とデフォルト属性が表現されます。

ランタイムシステム

ランタイムシステムは、SmartFrog Languageで記述された記述を解釈し、その解釈結果に基づいてコンポーネントを管理します。また、ユーザーにコンポーネントを操作するためのツールも提供します。

特徴

枠組みとして

SmartFrogはパッケージやライブラリではなく、ソフトウェアシステムの構築を支援するフレームワーク、つまり構成要素です。SmartFrogはフレームワークに新しいコンポーネントを追加することで拡張できるため、適用範囲が広がり、新しい機能も獲得できます。[5]

テンプレートメカニズム

SmartFrogでは、すべてのコンポーネントがテンプレートとして定義されます。通常、新しいサービスごとに新しいコンポーネントが作成され、アクティブ化されます。ただし、一部の汎用コンポーネントは異なるサービスで再利用できます。テンプレートメカニズムにより、システム構成をさまざまな要件に簡単に適応させることができ、デフォルトの構成を保持できます。プロトタイピングにより、システム構成のすべての変換と履歴を保持することもできます。SmartFrogを使用して大規模な分散システムを構築すると、一部のコンポーネントを再利用できるため、アプリケーション全体を完全に書き直す必要はありません。ユーザーは、構成記述記法を使用して、システムのインストール、アンインストール、構成、起動、停止を行うためのシンプルなSmartFrogコンポーネントを簡単に作成できます。[5]

クロスクライアントモデル

SmartFrogに類似したソフトウェアシステムは数多く存在しますが、SmartFrogと同じモデルを採用しているものはほとんどありません。最も普及しているシステムはクライアントサーバーモデルであり、すべてのクライアントの設定データはサーバーに保存され、各クライアントはサーバーに保存されている設定データと一致するように設計されています。しかし、SmartFrogではクロスクライアントモデルを採用しており、各クライアントは独立したエンティティとして扱われます。これにより、SmartFrogは広範囲のノード間で協調動作を行い、自律的なアクションを実行することができ、高いスケーラビリティを実現しています。[6]

安全

SmartFrogには、セキュアモードと非セキュアモードの2つの動作モードがあります。[7]非セキュアモードでは、SmartFrogへのクライアント接続に制限はなく、プレーンテキスト通信は盗聴・傍受される可能性があります。このモードでは、システムは悪意のある攻撃に対して脆弱です。

SmartFrogは、悪意のある展開やその他の管理操作から保護する必要があります。セキュアモードでは、SmartFrogは公開鍵基盤(PKI)システムを使用します。指定された証明機関(CA)によって認証されたクライアントのみがSmartFrogデーモンに接続できます。さらに、SmartFrogはすべてのコンポーネントと記述に証明書で署名し、署名されたものだけが展開されます。通信はトランスポート層セキュリティ(TLS)プロトコルを使用して暗号化されます[8]

GridWeaverプロジェクト

GridWeaverプロジェクトは2002年に開始され、1年間続きました。プロジェクトの協力者は、エディンバラ大学情報学部、HP研究所、エディンバラ並列コンピューティングセンター(EPCC)でした。このプロジェクトの目的は、次世代グリッドコンピューティングファブリックの構成と管理の自動化に関する問題の解決策を見つけることでした。[9]

このプロジェクトでは、SmartFrog とLocal ConFiGuration システム (LCFG)の長所と短所を比較し、これらのツールが問題解決にどのように活用されるかを調査しました。

SFJS

SFJSは、SmartFrogプロジェクトの主任著者の一人であるパトリック・ゴールドサック氏が共同設立したConfigured Things社によって開発された、設定言語、ランタイム、およびコンポーネントライブラリです。SFJSはNode.jsをベースに構築されたSmartFrogの精神的な後継です。[5] [10]

参照

参考文献

  1. ^ Goldsack, Patrick; Guijarro, Julio; Lain, Antonio; Mecheneau, Guillaume; Murray, Paul; Toft, Peter (2003). 「SmartFrog: 分散アプリケーションの構成と自動起動」: 1–9 . CiteSeerX  10.1.1.187.8478 . {{cite journal}}:ジャーナルを引用するには|journal=ヘルプ)が必要です
  2. ^ 「SourceForge プロジェクト ページ」。
  3. ^ 「HP Labs SmartFrogプロジェクトページ」。2019年2月20日時点のオリジナルよりアーカイブ。
  4. ^ “SmartFrog / SVN / コミット [r8898]”.ソースフォージ。 2017年5月16日。
  5. ^ abc 「SmartFrog公式サイト」。smartfrog.org
  6. ^ Goldsack, Patrick; Guijarro, Julio; Loughran, Steve; Coles, Alistair; Farrell, Andrew; Lain, Antonio; Murray, Paul; Toft, Peter (2009). 「Smart Frog構成管理フレームワーク」. ACM SIGOPS オペレーティングシステムレビュー. 43 : 16– 25. doi :10.1145/1496909.1496915. S2CID  11693395.
  7. ^ “SmartFrog security”. 2015年3月28日時点のオリジナルよりアーカイブ。
  8. ^ 「SmartFrog ユーザーマニュアル」。2019年2月20日時点のオリジナルよりアーカイブ。
  9. ^ “GridWeaverプロジェクト”. 2016年9月23日時点のオリジナルよりアーカイブ。
  10. ^ 「SmartFrogプロジェクト」。Configured Things 。 2022年4月25日閲覧
  • 公式ウェブサイト
  • HP Labs SmartFrogプロジェクトのウェブサイト( Wayback Machine)(2019年2月20日アーカイブ)
  • SourceForgeのプロジェクトページ
  • Google Usenix ペーパーで参照されています。
Retrieved from "https://en.wikipedia.org/w/index.php?title=SmartFrog&oldid=1305277160"