(57)【要約】本発明による方法によって、サーバー（Ｓ）のプログラミング条件をリアルタイムで置換し、その際に被置換プロセス（１）が置換プロセス（１’）と一定期間共存するように進行することができる。このオペレーションの所要時間は、被置換プロセス（１）により決められ、被置換プロセス（１）が既に進行中であるトランザクションがいつ完了するかを判断することができる。
2004526246.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセス（１）を実行するネットワークサーバー（Ｓ）のプログラミング条件をアップグレードする方法であって、前記プロセス（１）は、ネットワークパケットとインターフェースする下位レイヤ又はレベル（２）と前記パケットを処理するための上位レイヤ又はレベル（３）とを含む前記方法において、
−  ネットワークパケットとインターフェースする別の下位レイヤ（２’）と前記パケットを処理するための別の上位レイヤ（３’）とを含んだ更新プロセス（１’）を付与するステップであって、前記別の下位レイヤ（２’）は、通信チャネル（４）に接続されてネットワークパケットを前記別の下位レイヤ（２’）から前記上位レイヤ（３）に迂回させる前記ステップ、
−  前記下位レイヤ（２）を前記別の下位レイヤ（２’）と置換するステップ（１０６）、
−  前記別の下位レイヤ（２’）から受け取ったパケットが前記上位レイヤ（３）にて既に進行中のトランザクション又は新しいトランザクションのどちらに関係するかを検査するステップ（１１２）、
−  前記上位レイヤ（３）にて既に進行中のトランザクションに関するパケットを前記上位レイヤ（３）において処理するステップ（１１４）、
−  新しいトランザクションに関するパケットを前記別の上位レイヤ（３’）において処理するステップ（１１６）、
−  前記上位レイヤ（３）にて既に進行中のトランザクションが完了したかどうかを判断するステップ（１１８）、及び
−  前記上位レイヤ（３）にて既に進行中の前記トランザクションが完了すると、前記通信チャネル（４）を閉鎖し、サーバー（Ｓ）のプログラミングアップグレードを終了するステップ（１２０）
を含むことを特徴とする前記方法。
【請求項２】
前記プログラミングアップグレードを実行するために、該プログラミングアップグレードが単一のサーバー（Ｓ）にて実行されることを検査するステップ（１０２）を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記下位レイヤ（２）を前記別の下位レイヤ（２’）と置換する前記ステップが、前記下位レイヤ（２）のネットワークポートを前記別の下位レイヤ（２’）に移転するステップを含むことを特徴とする請求項１又は２に記載の方法。
【請求項４】
受け取ったパケットが前記上位レイヤ（３）にて既に進行中のトランザクションと新しいトランザクションのどちらに関係するかを検査する前記ステップ（１１２）を、前記上位レイヤ（３）にて実行し、前記上位レイヤ（３）が、前記通信チャネル（４）によって新しいトランザクションに関するパケットを前記別の上位レイヤ（３’）に送るように構成されていることを特徴とする請求項１〜３のいずれか一項に記載の方法。
【請求項５】
アップグレードされるプロセス（１）とアップグレードされたプロセス（１’）の間で状態情報を交換する（１０８）ように前記通信チャネル（４）を構成するステップを含むことを特徴とする請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記通信チャネル（４）をソケットとして構成するステップを含むことを特徴とする請求項１〜５のいずれか一項に記載の方法。
【請求項７】
請求項１〜６のいずれか一項に記載の方法を用いてプログラミング条件をアップグレードするように構成されたネットワークサーバー。
【請求項８】
前記サーバーがセッション・イニシエーション・プロトコル（ＳＩＰ）プロキシであることを特徴とする請求項７に記載のサーバー。
【請求項９】
コンピュータメモリに直接ロードすることができるソフトウエア製品であって、コンピュータ上にて実行する際に請求項１〜６のいずれか一項に記載の方法を実施するプログラミングコード部分を含んだ前記ソフトウエア製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバーの使用を伴うネットワークに関し、特に、本発明は、これらのサーバーのプログラミング条件を更新するための機能、言い換えれば、現在「ソフトウエアアップグレード」と称されている機能に関する。特に、本発明による方法は、トランザクションを管理し且つ状態（もしそれを損失すれば永続的又は一時的な故障を引き起こし得る）を保持するサーバーにおける潜在的な用途に特に留意しつつ開発された。
【背景技術】
【０００２】
サービスを中断せず又は最小の中断回数のみで実行するのを保証する必要がある場合、サービスを利用できないことが生じ得るようなサーバーソフトウエアアップグレードは特に注意が必要となる。
【０００３】
この点について、ある程度のフォールト・トレランスを保証するために一般に用いられる解決策は、サーバーの複製である。更新オペレーションが実施されると、このオペレーションに関係するサーバー（単数又は複数）が一時的に分離される。この分離は、一般にはこれらのサーバーを探し出すことができるデータベースを例えばドメイン・ネーム・サーバー（DNS）機構により削除し、使用中のサーバーに負荷を移すことにより行われる。
【０００４】
この解決策の主な欠点は次の通りである。
（１）いつサーバーを動作停止できるかを判断するのが常に容易なわけではないこと。すなわち、実際には、進行中のトランザクションが存在していないこと、及びクライアントとして動作している装置におけるサーバーリストのローカルコピーが当該サーバーを参照していないことを保証する必要がある。
（２）この欠点に直接関係する別の問題は、管理オペレーションが常に相当遅く、特に緊急な場合（例えば起こりうるセキュリティ問題に対処する必要がある場合）唯一できるのは、サービスを一時的に中断することである。
（３）加えて、該プロセスにより維持される状態の所要時間がトランザクションの所要時間を超える場合（しばしばそうであるように）、その有効な生存期間の終わりを容易に識別することができず、その状態を喪失し一時的な故障を引き起こしてしまうことである。
（４）最後に、（たいていの場合にそうであるように）トラヒック傾向を予想するのが難しく、更新オペレーション中にトラヒックピークが生じるならば、動作中のサーバーが、それらの作業負荷を処理することの難しさに直面し得ることである。この問題を防止する唯一の方法は、通常の状況下で十分に対応できる機器に加えて少なくとも１つの機器を配備することであり、このことにより、厳密には必要ないシステム冗長性を増大させる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、本発明の目的は、上記概説した問題を解消することができる解決策を提供することである。
【課題を解決するための手段】
【０００６】
本発明により、この目的は、特許請求の範囲に詳細に記した特徴を備えた方法により達成される。本発明はまた、それに関連するシステム、言い換えれば、前述の方法に基づいて動作するよう構成されたシステムに関し、また、それに対応したソフトウエア製品、言い換えれば、コンピュータにロードされ該コンピュータ上で実行されるコードであって、該コンピュータが前述の方法に基づいて動作できるように該コンピュータを構成することができるコードにも関する。
【０００７】
基本的に、本発明による解決策は、「ホット」サーバープロセス置換を伴い、置換されるプロセス（被置換プロセス）がその置換操作と一定期間共存するように進行する。このオペレーションの所要時間は、被置換プロセスにより決められ、よって常に該オペレーションが最後のトランザクションの終了後に行われることが保証される。より長い生存期間を有する状態情報は、例えばソケット又は別の双方向性プロセス間通信機構により一方のプロセスから他方のプロセスに送ることができる。
【０００８】
図面の簡単な説明
以下、添付図面を参照して本発明を説明するが、単に例として行っており、限定的に解釈すべきでない。
図１は、本発明に従って動作するサーバーの通常オペレーションを示す機能ブロック図であり、
図２は、図１と同じ形式で示した別の機能ブロック図であり、図１に示したサーバー更新オペレーションをどのように実行するかを示しており、
図３は、図２に示したオペレーションをどのように実行するかを示したフローチャートである。
【発明を実施するための最良の形態】
【０００９】
図１は、サーバーＳの一般的な構成の略図である。このサーバーＳは、例えば、通信ネットワークにおいて用いられてＳＩＰ（セッション・イニシエーション・プロトコル）プロキシ機能を実行するサーバーである。
【００１０】
これは、例えば、Solaris （登録商標）オペレーティングシステムを用いる、Sun Microsistems（Palo Alto (CA)）により製造されたEnterpriseサーバーである。
【００１１】
サーバーＳは、その全体が１で示されたようなプロセスオペレーションを実行することができる。
【００１２】
オペレーション１は、次のものを含む。
（１）パケットの受信／送信を保証するためにネットワークと直接インターフェースを行う下位レイヤ（レベル）２（以下ではレイヤとレベルなる用語は等価なものと見なす）、及び
（２）パケットを受け取り、処理し、下位レイヤに送る上位レイヤ３。
【００１３】
２つのレイヤ２及び３は、矢印で表されているような一般的な双方向通信方式にて接続される。
【００１４】
上述した点すべてが、当業者に十分よく知られることになるであろう構成及び適用の基準に対応していることが分かるので、ここで詳細な説明をする必要はないであろう。
【００１５】
サーバーのプログラミング条件の更新（言い換えれば、いわゆるソフトウエア・アップグレード・オペレーション）を行う際、１で示した現在の構成を、全体を１’で示した更新構成と置換しなければならず、この更新構成も同様に下位レイヤ２’と上位レイヤ３’に編成されており、更新オペレーションすなわちアップグレードオペレーションの終わりに対応するレイヤ２及び３を取り替える。
【００１６】
本発明による方法は、現在のプロセス１をその更新バージョン１’に取り替え又は置換するオペレーションがネットワークとは完全に無関係であることを保証するものであり、言い換えれば、サーバーSに接続されたクライアントがアップグレードオペレーションが開始したこと及びこのオペレーションが進行中であることを実際には検出できないように該オペレーションが実施されることを保証する。
【００１７】
これらのことすべてが、該プロセスにより維持される状態の所要時間がトランザクションの所要時間を超える（それにより、有効な生存期間の終わりをある程度容易に識別するのがしばしば不可能となる）場合でさえ、進行中のトランザクションが正常に管理されることを保証し、かつ予想できないトラヒックピークに続いて生じ得るどんな困難も回避しつつ実現される。
【００１８】
アップグレードオペレーションでは、まず、更新又はアップグレードに対応するプロセス１’が、全体として４で示され自身を認証する(authenticating itself）ソケット又は他のＩＰＣ機構によって、置換すべき現在のプロセス１に接続される。
【００１９】
当然、置換される現在のプロセス１は、アップグレードオペレーションが同一の機器Ｓにより実行されることの検査も行う。
【００２０】
置換される現在のプロセス１は、そのポート（下位レイヤ２）を解放する。これらのポートは、アップグレードされたプロセス１’の対応するレイヤ２’によりすぐに取得される。このレイヤ２’は、受信したパケットフローをチャネル４を介して現在のプロセス１の上位レイヤ３に送るために、このパケットフローを選択的に迂回させることができるように構成されている。
【００２１】
それから、ネットワークから到着したパケットは、アップグレードされたプロセス１’の下位レイヤ２’により専ら受信される。
【００２２】
いずれにしても、これらのパケットは、そのとき置換されつつあるプロセス１の上位レイヤ３にも送られる。よって、このプロセス１の上位レイヤ３は、いわばフィルターとして作用する立場に置かれる。すなわち、もしメッセージが新しいトランザクション（言い換えれば、アップグレードオペレーションの開始後に始まったトランザクション）に関係するならば、アップグレードされたプロセス１’の対応する上位レイヤ３’に対して、処理することなく直接メッセージを転送する。逆に、もしメッセージが、置換されつつあるプロセス１の上位レイヤ３にて既に進行中のトランザクションに関係するならば、この上位レイヤ３によりメッセージを続けて処理する。
【００２３】
加えて、２つのプロセス１及び１’は、トランザクションに関わりのない状態情報を交換することができる。
【００２４】
置換されつつあるプロセス１の上位レイヤ３は、それが管理するトランザクションのすべてが終了したことを判断し、アップグレードオペレーションが完了したことを示す信号を発生する。この信号は、チャネル４上に送られ、アップグレードされたプロセス１’の下位レイヤ２’が、アップグレードされたプロセス１の上位レイヤ３に対してどんな種類のパケット又はメッセージもさらに送らないことを保証する。通信チャネル４は閉鎖され、よって、アップグレードされたプロセス１’がこの時点であらゆる点でプロセス１を置換しており、プロセス１は停止される。
【００２５】
上述したアップグレードオペレーションを実行するのに用いられるステップを、図３のフローチャートにさらに詳細に示す。
【００２６】
このフローチャートにおいて、符号１００はアップグレードオペレーションにおける最初のステップを示し、これは接続４の開設に対応する。
【００２７】
符号１０２は、同一の機器にアップグレードが実行されていることを現在のプロセス１が検査するステップを示す。
【００２８】
この検査の結果が否定（結果Ｆ）であるとき、アップグレードオペレーションを継続せず、ステップ１０４にて中断する。
【００２９】
ステップ１０２で実行する検査の結果が肯定（結果Ｖ）であるとき、ステップ１０６においてシステムポート（実際にはネットワークとのインターフェース）を現在のプロセス１の下位レイヤ２からアップグレードされたプロセス１’の下位レイヤ２’に移し、次にステップ１０８において状態情報を転送する。
【００３０】
この時点以降、既に進行中のトランザクションに関するメッセージは現在のプロセス１により取り扱かわれ続ける一方で、新しいトランザクションに関するメッセージはアップグレードされたプロセス１’により取り扱われるという動作条件が設定される。
【００３１】
特に、符号１１０は、新しいメッセージを読み取るステップを示し、符号１１２は、ちょうど読み取られたパケットが既知のトランザクションと新しいトランザクションのどちらに関係するかを判断する検査を実行するステップを示す。
【００３２】
メッセージが新しいトランザクションに関係する場合（ステップ１１２の結果がＦ）、パケットは「新しい」トランザクションに関するものと識別され、よってステップ１１４においてアップグレードされたプロセス１’により取り扱われる。
【００３３】
読み取られたメッセージが、既知のトランザクションに対応するものと識別された場合（ステップ１１２の結果がＶ）、そのメッセージはステップ１１６において現在のプロセス１により取り扱われる。
【００３４】
ステップ１１４とステップ１１６の両方から開始して、アップグレードオペレーションは継続し、１１８で示した別のステップに合流し、このステップ１１８において、置換されつつあるプロセス、言い換えれば現在のプロセス１に対するトランザクションが終了したと見なせるか否かを判断する。
【００３５】
まだ完了していないトランザクションがなお存在している場合（ステップ１１８の結果がＦ）、新しいパケットを読み取るならば、システムオペレーションは、ステップ１１０の上流に再び戻る。
【００３６】
逆に、もし置換されつつあるプロセス１により取り扱う必要のあるトランザクションが終了したならば（ステップ１１８の結果がＶ）、システムは１２０で示される最終ステップに進み、このステップ１２０において通信チャネル４を閉鎖し、よってアップグレードオペレーションを完了する。
【００３７】
当然、本発明の基礎となる原理を損なうことなく、ここでの記載及び説明に関して本発明の範囲を逸脱することなく実施の詳細及び形態を広く変えることができる。
【００３８】
例えば、図１及び３に関して上述した一般的なアプローチにつき、単なる例示であってあらゆる点で限定的に解釈すべきでない可能な変更として、次のものを挙げることができる。
（１）チャネル４により示される通信機構がソケットでない。すなわち、本質的なことは、一般にこのチャネルにより双方向の通信ができること、及び同様に一方のプロセスが実行されつつある場合に確実に設定できることである。
（２）下位レイヤ２を下位レイヤ２’と取り換え又は置換する初期機構が、前述のポートに加えて又はこれらのポートの代わりに、専ら入力／出力機能に用いられる他の専用リソースに適用される。
【００３９】
原則的に、本発明による方法は、サービスの中断時間を最小（実質的には零）にしなければならず、且つ取り扱われるトラヒックがかなり少ない期間を識別することができないというあらゆる状況において適用される。
【図面の簡単な説明】
【００４０】
【図１】本発明に従って動作するサーバーの通常オペレーションを示す機能ブロック図である。
【図２】図１と同じ形式で示した別の機能ブロック図であり、図１に示したサーバー更新オペレーションをどのように実行するかを示す。
【図３】図２に示したオペレーションをどのように実行するかを示したフローチャートである。
【符号の説明】
【００４１】
１    被置換プロセス
１’  置換プロセス
２    下位レイヤ
３    上位レイヤ
４    通信チャネル
Ｓ    サーバー
【図１】
2004526246.tif 000003
【図２】
2004526246.tif 000004
【図３】
2004526246.tif 000005
【国際公開パンフレット】
2004526246.tif 000006
2004526246.tif 000007
2004526246.tif 000008
2004526246.tif 000009
2004526246.tif 000010
2004526246.tif 000011
2004526246.tif 000012
2004526246.tif 000013
2004526246.tif 000014
2004526246.tif 000015
2004526246.tif 000016
2004526246.tif 000017
2004526246.tif 000018
【国際調査報告】
2004526246.tif 000019
2004526246.tif 000020