クライアントのコンフィグレーションファイルをサーバで管理仕組み

Copyright (C) 2004-2008 Masashi Shimakura
Last Update: 03 01 2008

  • 起動設定ファイルについて

  • zither(サーバ)、sitar(クライアント)の関係がある場合、接続はクライアントから行います。
    この為クライアントはサーバに接続する以前からサーバのアドレスやポート番号を知っている
    必要がありますが、初めてサーバに接続する時点では、どうしてもサーバの情報をクライアン
    トが知っている必要があります。zither はこの最初の一回目だけは仕方ないとして、その後は
    全てサーバ側でクライアント(sitar)用コンフィグレーションファイルを管理します。

    Zither(Server)--------+--------- Sitar(Client)
    
                          <--------         接続要求
    認証
    接続許可               -------->
                                            接続
                          <--------         初回疎通確認(ファイルの編集確認もかねる)
    ファイルの確認
    状態の送信            --------->
                                            ファイルのステータスを受け取る
                                            1)編集がない場合はそのまま運用
                        2)編集されている場合はファイルの要求
                                            
                          <--------         コンフファイル要求
    ファイル送信           -------->
                                            自分が起動したファイルとの比較
                        1)編集されている場合は再起動
                                            2)同じ場合はそのまま運用
                                            3)サーバにファイルが無い場合は自分のファイルをUPし
                                              そのまま運用
    


  • ステータスファイルについて

  • sitarクライアントの基本操作の為にステータスファイルがありますが、このファイルの状態は
    初回の接続時は無視されます。通常運用時に疎通確認を行い、その際にファイルに変更を認めた
    場合のみクライアント側に反映されます。これは基本動作にクライアントプログラムの再起動や
    停止など、影響の大きな動作が含まれる為です

    Zither(Server)--------+--------- Sitar(Client)
    
                          <--------         疎通確認(ファイルの編集確認もかねる)
    ファイルの確認
    状態の送信            --------->
                                            ファイルのステータスを受け取り実行
                                            初回は無視
    
    


  • 監視リストファイル、コマンドファイルについて

  • 監視項目や方法を記載したリストファイルやクライアントで実行する複数種のコマンドを一つの
    ファイルにまとめたコマンドファイルはクライアント停止時に編集があった場合、初回のみ
    古いリストを実行しますが、2回目の監視サイクルからは新しいファイルにて運用されます。当然
    ですが運用途中のサーバ側での編集の有無を疎通確認の度に確認します。

    Zither(Server)--------+--------- Sitar(Client)
    
                          <--------         接続要求
    認証
    接続許可               -------->
                                            接続
                          <--------         初回疎通確認(ファイルの編集確認もかねる)
    ファイルの確認
    状態の送信            --------->
                                            ファイルのステータスを受け取る
                                            ファイルが編集された場合
                          <--------         ファイルを要求
    ファイルの送信        ---------> 
                                            ファイルの受け取り
                        但しこの時点で動作している監視サイクルには
                                            反映されません。
    
    
    


    ZitherとApollonの同期について



  • zither サーバ、sitar 監視クライアント間の動機

  • 基本的にサーバ側の設定ファイル類に編集があった場合は、監視クライアント側からのアクション
    で、その編集の有無をクライアントは知り、監視クライアント側が自らサーバにファイルを要求
    します。この間のやり取りにApollonインターフェースは関与しません。

  • ロック機構について

  • アポロンがzitherサーバに対して行うアクションは、各設定ファイル類の編集を行うだけです。設定
    ファイルに変更があったことは、監視クライアントがサーバとの疎通確認の際に自動的に知ることが
    出来るので、アポロン側はその機構について考慮する必要はありません。但し、これら設定ファイル
    は編集の際に同期を取っています。アポロン編集中は<クライアント名>.list_lock などのファイル
    が設定ファイル類と同じ階層に出来ているはずです。このファイルは監視クライアントがこのファイル
    にアクセス中もzither監視サーバによって作成されており、この場合 apollon はこのファイルにアク
    セスすることを待つ仕組みになっています。

    
    Zither(Server)--------------------+--------------------- Sitar(Client)
                                    <------      定期疎通確認
    編集の有無を確認
    編集があることを通知            ------->
                                    <------      編集のあったファイルを要求
    
    
    Apollon ---------------------------+----------------------------- zither
                                 test.conf_lock   <---- ロックファイル作成
                                 test.conf        <---- 読み込み中
    この間ロックファイル
    があるので編集出来ない       test.conf_lock   <---- ロックファイル削除
    
    ロックファイル作成      ----> test.conf_locl
    書き込み中              ----> test.conf          この間ロックファイルがあるので
    ロックファイル削除      ----> test.conf_lock     編集出来ない
    
    (注)
    ロックファイルによる排他処理は、セマフォを使った信頼のある方法を用いていません。
    
    

    zither2.jpg(13489 byte) zither.ms-n.comにもどる