JP2004220318A - 情報処理装置及びこれに用いるプログラム - Google Patents
情報処理装置及びこれに用いるプログラム Download PDFInfo
- Publication number
- JP2004220318A JP2004220318A JP2003006935A JP2003006935A JP2004220318A JP 2004220318 A JP2004220318 A JP 2004220318A JP 2003006935 A JP2003006935 A JP 2003006935A JP 2003006935 A JP2003006935 A JP 2003006935A JP 2004220318 A JP2004220318 A JP 2004220318A
- Authority
- JP
- Japan
- Prior art keywords
- session
- client
- program
- server
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
【課題】サーバーと、同一の情報処理装置上における複数のクライアントプログラムとの間で1つのセッションを共有することで、ユーザの利便性を高める。
【解決手段】情報処理装置2において、ユーザ認証後にサーバープログラムとの間で確立される一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するセッション管理手段2mを設ける。異なるクライアントプログラムであっても、ユーザ認証後に確立される同一セッション(サーバーセッション)の識別情報を用いてサーバープログラムとの間で通信処理を行えるようにした。
【選択図】 図1
【解決手段】情報処理装置2において、ユーザ認証後にサーバープログラムとの間で確立される一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するセッション管理手段2mを設ける。異なるクライアントプログラムであっても、ユーザ認証後に確立される同一セッション(サーバーセッション)の識別情報を用いてサーバープログラムとの間で通信処理を行えるようにした。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、通信機能を備えた情報処理装置において、ユーザの利便性を高めるとともに、サーバーの負荷を軽減するための技術に関する。
【0002】
【従来の技術】
ウェブ(World Wide Web等)サービスを提供するサーバーのクライアントプログラムとして、Webブラウザだけでなく、Webサーバーが提供する機能(Webサービス)について直接HTTP(ハイパーテキスト転送プロトコル)等でアクセスすることができる専用クライアントが一般的になりつつある。
【0003】
そして、ネットワーク上のサーバーマシンとクライアントマシンとの間で通信を行う場合に、通常、ユーザ認証が必要とされる。例えば、ログインを必要とするWebサービスを利用する場合、クライアントマシン上のクライアントプログラムからそのWebサービスを利用するにあたって、ユーザID(識別情報)やパスワード(暗証番号)等の入力が必要である。
【0004】
【発明が解決しようとする課題】
ところで、従来の装置では、複数のクライアントプログラムの間で同一のセッションを共有して、サーバープログラムとの間で情報のやりとりを行えないため、例えば、下記に示すような問題が起きる。
【0005】
同一サーバーにより提供されるWebサービス等に対してアクセスするためのクライアントプログラムが一つの情報処理装置に一種類しか存在しない場合には、そのクライアントプログラム(アプリケーション)を立ち上げてからユーザIDやパスワード等を入力してユーザ認証を行えば良い。しかし、複数のアプリケーションを使って同一のWebサービスにアクセスし、ユーザがアプリケーション間で連携した使用を望む場合には、アプリケーション毎にユーザIDやパスワードを入力し、サーバーとのセッションをそれぞれ開始する必要がある。つまり、サーバーが同じでも、クライエントマシン上のクライアントプログラム毎に異なるセンションが開始される。
【0006】
このような状況下では、下記の事項が問題となる。
【0007】
・ユーザが、アプリケーション毎に同じユーザID及びパスワードをその都度入力する必要があるので、操作が2度手間となり面倒であること。
【0008】
・サーバーにとっては、1人のユーザに対して異なるセッションを開始しなければならず、無駄なリソース(コンピュータ資源)を消費してしまうこと。
【0009】
・Webサービス等のシステム設計上、セッション毎の管理に必要な情報を、一時的な情報(揮発性データ)として管理する場合(例えば、ショッピングカートのような購買システムにおいて、ログインしてからカート内にユーザが注文しようとする商品情報を保持する場合が考えられ、そのカート内部の商品情報が、セッションの終了時にクリアされるような場合等)、別々のセッションとして管理されるクライアントプログラム間では、ユーザが同一であるにもかかわらず、サーバー側のデータ等を共有できないといった問題が発生すること。
【0010】
そこで、本発明は、同一の情報処理装置上における複数のクライアントプログラムと、サーバーとの間でセッションを共有して、ユーザの利便性を高めることを課題とする。
【0011】
【課題を解決するための手段】
本発明に係る情報処理装置は、ユーザ認証を経てサーバープログラムとクライアントプログラムとの間の論理的な接続関係として確立されるセッションに関して、一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するセッション管理手段を備えたものである。
【0012】
また、本発明に係る情報処理装置に用いるプログラムは、ユーザ認証後にサーバープログラムとの間で確立される一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するステップを有するものである。
【0013】
従って、本発明によれば、異なるクライアントプログラムであっても、ユーザ認証後に確立される同一セッションの識別情報を用いてサーバープログラムとの間で通信処理を行うことができる。
【0014】
【発明の実施の形態】
本発明は、サーバーによるウェブ(Web)サービス等をクライアントに提供するシステムにおいて、1つのセッション(サーバーセッション)を同一マシン(クライアントマシン)上の複数のクライアントで共有することができるようにしたものである。例えば、1つのWebサービスにアクセスすることができる、複数のクライアントプログラムをユーザが使用する場合に、ユーザが同じであれば、クライアントプログラム毎に別々のログインを行う必要がなく、1度どれかのクライアントプログラムでログインすると、それ以降、他のクライアントプログラムではログインを行う必要がない。これによって、ユーザの利便性を向上させることができる。
【0015】
尚、ここで「セッション」とは、ユーザIDやパスワード等を用いたユーザ認証を経てサーバープログラムとクライアントプログラムとの間に確立される通信上の論理的な接続関係を意味し、ユーザ認証が正しく行われて生成(又は開始)され、ユーザ操作又は時間制限等の終了条件により消滅する。より簡単に言えば、ログインから開始され、ログアウト等で終了するまでの間、サーバーとクライアントとの間で行われる一連の処理を表している。
【0016】
図1は、インターネット等を用いたコンピュータネットワーク及びこれに接続された情報処理装置(サーバーマシンやクライアントマシン)により構成されたシステム例を概念的に示したものである。
【0017】
本システム(情報通信システム)1では、情報処理装置2としてクライアントマシン2c、2c、…及びサーバーマシン2sが設けられている。つまり、特定の情報サービス(Webサービス等)をクライアントマシン2c、2c、…に対して提供するサーバーマシン2sがネットワーク上に接続されていて、サーバーマシン2s上で実行されるサーバープログラムを用いて、情報サービス等に必要な各種の情報処理が行われる。
【0018】
クライアントマシン2cは、該マシン上で実行されるクライアントプログラムを用いて、サーバープログラムとの間で情報をやりとりすることができる。尚、「クライアントマシン」としては、例えば、ネットワーク通信機能を有するパーソナルコンピュータや、Webサービス等にアクセス可能な、PDA(Personal Digital Assistance)、携帯電話等の移動体通信端末装置、あるいはネットワーク接続可能な各種装置(撮像装置や映像機器等)が挙げられる。また、クライアントプログラムとしては、例えば、ブラウザ(閲覧用ソフト)が挙げられるが、これに限らず各種アプリケーションを用いることができる。
【0019】
図1には、ある情報処理装置(クライアントマシン2c)において、複数のクライアントプログラムA、B、…が実行されている様子を概念的に示している。該クライアントマシンは、複数のクライアントプログラム(プロセス)間で一つのセッションを共有するために、該セッションの識別情報を管理するセッション管理手段2mを備えている(実際のハードウェア構成としては、例えば、中央処理装置やメインメモリ、システムコントローラ等の各種コントローラ、補助記憶装置等が設けられ、プログラム等を用いてセッション管理手段2mが実現されるが、図には簡略化して示している。)。
【0020】
一例としては、クライアント側に、1つのサーバーセッションに対応する、実行プログラム(以下、「セッション管理プロセス」という。)を用意し、これを用いてセッションの識別情報を管理する。つまり、このセッション管理プロセスは、上記セッション管理手段2mを構成するものであり、クライアントマシン又はプログラムとサーバーマシン又はプログラムとの接続時、あるいはログイン時に生成されるセッションを識別するためのID情報(以下、「セッションID」という。)を管理する役目をもっている。
【0021】
Webサービス等を利用する場合に実行されるクライアントプログラムは、1つのクライアントマシン上において、それぞれ別々のプログラム(プロセス)として存在し、それらは、セッション管理プロセスに対して、セッションIDの問い合わせや設定を行うことができる。
【0022】
第一のクライアントプログラム(クライアントA)から、サーバーにログインする時、セッション管理プロセスが起動され、クライアントAとサーバープログラムとの間で開始されたセッションのセッションIDをクライアントAがセッション管理プロセスに対して設定する。
【0023】
その後に、第二のクライアント(クライアントB)が起動されたときは、セッション管理プロセスの存在を条件として、セッションIDが該プロセスからクライアントBに通知される。つまり、クライアントBは、セッション管理プロセスが存在しているかどうかを判定し、該プロセスがクライアントマシン上に存在している場合は、設定済みのセッションIDを取り出す。そして、クライアントBを用いてサーバーマシンとの通信を始める場合に、取得したセッションIDを使用してサーバーへのアクセスを行う。
【0024】
クライアントBとサーバープログラムとの間でクライアントAの場合と同じセッションIDを用いた通信処理が行われ、よって、クライアントBを使ったユーザが、Webサービス等にログインするために、ユーザ名やパスワード等、ユーザ認証に必要なデータを入力する必要が無い。
【0025】
尚、上記の説明では、最初のログイン時に、セッション管理プロセスが生成されるものとしたが、該プロセスが生成されるタイミングについては、特に「ログイン」という行為を必要としない。よって、常駐プログラムの形態としても良いし、また最初にWebサービス等に接続したときにプロセスを生成する等、各種形態で実施することができる。
【0026】
以下では、画像データを取り扱う、フォト・シェアリングサイト(画像情報の共有及び利用のためのサイト)のウェブサービスを例にして、図2乃至図7に従って具体的に説明する。
【0027】
本サイト(http://www.imagestation.jp/)では、画像ファイルを”アルバム”という、ファイルシステムのディレクトリに類似の論理構造(1階層構造)により管理している。
【0028】
ウェブサービスのためのインターフェイス(External Interface)は、アルバムの一覧やアルバム内の画像情報の取得、あるいは画像の特定アルバムへのアップロード、といった機能を提供するためのインターフェイスであり、クライアントプログラムである「アップローダ」及び「機能拡張バー」から利用される。
【0029】
「アップローダ」は、クライアントマシン(ローカルマシン)にある画像ファイルを、サイトにアップロード(送信あるいは転送)する機能を備えた専用クライアントプログラムである。
【0030】
図2は、「アップローダ」の画面(メイン画面)例を示したものであり、(A)図がログイン前の表示状態を示し、(B)図がログイン後の表示状態を示している。
【0031】
(A)図に示すログイン前の状態における各部(オブジェクト)の意味は下記の通りである。
【0032】
・ドロップターゲット部(3_1)=本来は画像ファイルのドラッグ&ドロップ(マウスポインタによるアイコン操作)のために用意された領域(ログイン前ではアニメーション等が表示されるだけで、特別な機能はない。)
・ID入力部(3_2)=ログインID(ユーザID)の入力及び編集領域
・パスワード入力部(3_3)=パスワードの入力及び編集領域
・「ログイン」ボタン(3_4)=ログイン操作用のボタンオブジェクト
・メニューボタン(3_5)=操作時にポップアップメニュー(アルバム一覧更新、アップロード、新アルバム作成等の項目を含む)を表示するボタンオブジェクト。
【0033】
尚、メニューボタン3_5の右側には、「アルバムを開く」ボタン3_6、「アルバムに招待する」ボタン3_7等のオブジェクトが配置されている。
【0034】
また、(B)図に示すログイン後の状態における各部(オブジェクト)の意味は下記の通りである。
【0035】
・ドロップターゲット部(3_1)=サイトへのログイン状態において、この部分に対して画像ファイルのドラッグ&ドロップを行うことで発生するイベントにより、該画像ファイルのアップロードが開始され、下記の「アルバムドロップダウンリスト」に選択されているアルバムに画像ファイルがアップロードされる。
【0036】
・ニックネーム部(3_8)=ログインしたユーザが登録している名称(ニックネーム)の表示領域
・「ログアウト」ボタン(3_9)=ログアウト操作用のボタンオブジェクト・アルバムドロップダウンリスト(3_10)=ユーザ所有のアルバムリストを表示したり、ドラッグ&ドロップによる画像ファイルのアップロード、「アルバムを開く」ボタン3_6や「アルバムに招待する」ボタン3_7による操作は、すべてこのリストオブジェクトで選択されているアルバムに対して行われる。
【0037】
尚、メニューボタン3_5や、「アルバムを開く」ボタン3_6、「アルバムに招待する」ボタン3_7の配置は、(A)図と同じである。
【0038】
例えば、ユーザが「アップローダ」を用いてサイトにアクセスして、所望の画像ファイルをユーザが意図するアルバムにアップロードする場合の手順は次に示す通りである。
【0039】
(1)「アップローダ」の起動及びログイン(図2(A)に示す画面でのログインID及びパスワード入力等の操作)
(2)ユーザ認証が済むと、図2(B)に示す表示状態となり、ここでユーザが、アルバムドロップダウンリスト3_10でアップロード先のアルバムを選択する
(3)所望の画像ファイルのアイコンをドラッグ&ドロップによりドロップターゲット部3_1へと移す操作をユーザが行うことで、画像ファイルのアップロードが行われる。
【0040】
次に、「機能拡張バー」について、図3及び図4を用いて説明する。
【0041】
この「機能拡張バー」は、特定のブラウザ等にプラグイン(あるいはアドイン)として機能的に追加されるクライアントプログラム(プラグインコンポーネント等)である。
【0042】
図3はブラウザに追加された形態を示すものであり、図には、アドレスバー等のツールバーの最下段に配置された「機能拡張バー」を示している。これは、例えば、Internet Explorer(マイクロソフト社の商標)へのプラグイン形態の場合、ウィンドウズ(マイクロソフト社製OSの商標)では、ダイナミックリンクライブラリ(DLL::Dynamic Link Library)として実装されていて、システムに登録しておくことでブラウザによってメモリロードがなされる。
【0043】
図4は、「機能拡張バー」の画面例を示したものであり、(A)図がログイン前の表示状態を示し、(B)図がログイン後の状態を示している。
【0044】
(A)図に示すログイン前の状態では、ボタンオブジェクト4_1だけが表示されており、このボタンを押すと所定のメニュー(ログイン、ヘルプ等)が表示される。
【0045】
また、(B)図に示すログイン後の状態における各部(オブジェクト)の意味は下記の通りである。
【0046】
・ボタンオブジェクト(4_1)=ボタン操作により、ログアウト、アルバム情報、新規アルバムの作成等の各種項目を含むメニューが表示される。
【0047】
・「アルバム」ボタン(4_2)=アルバムタイトルを表示したボタンオブジェクトであり、アルバムの更新時にソーティング(並び替え)された最新のものが表示画面の片側から順番に表示される。ユーザが本ボタンを押すとそのアルバムの画像リストページに遷移する。
【0048】
・「アルバム移動」ボタン(4_3)=バー上に表示される「アルバム」ボタン群の両側に位置されるボタンオブジェクト(「<<」、「>>」で示す。)。「機能拡張バー」の表示エリアが狭い場合やアルバムの数が多い場合に、本ボタンが有効となり、例えば、ボタン押圧により、「<<」又は「>>」に示される方向に従って「アルバム」ボタンの位置がシフト(移動)する。これにより、バーに表示される「アルバム」ボタン群の表示を変更できる。
【0049】
ユーザは「機能拡張バー」からサイトへのログインを行うことができ、その際には、該ユーザのアルバム一覧用データがインターフェイス(External Interface)経由で取得され、それらは「アルバム」ボタン(ショートカットボタン)としてバー上に並べられる。
【0050】
尚、「機能拡張バー」と同等の機能を有するプログラム(ブラウザ等)を最初から設計して作成することもできるが、本例のように、ユーザが使い慣れた既存プログラムへの機能追加として必要な処理を付加する形態では、操作等を改めて学習すること等を含めて、ユーザーの負担が少ないといった利点があり、また、プログラム作成上の負担が軽減される。
【0051】
「アップローダ」、「機能拡張バー」は別々のクライアントプログラムとされるが、どちらを用いても同一サイトにログインすることができ、本来的にはサーバーとの間でセッションをそれぞれ確立することが可能である。
【0052】
図5は、セッションの共有を行う場合の基本的な流れについて説明するための図であり、ネットワークにより接続されるサーバープログラム(「S」)及びクライアントプログラムA、B、セッション管理プロセス「M」の関係を示している。尚、本例では、クライアントプログラムAが「アップローダ」とされ、クライアントプログラムBが「機能拡張バー」とされており、最初に「アップローダ」のみが起動され、その後に「機能拡張バー」を含むブラウザが起動された状態を想定している。
【0053】
図示のように、サーバープログラムSにおいて作成されるセッションID(本例では「000111」)は、クライアントマシンに送られ、セッション管理プロセスMで管理される。
【0054】
セッション管理プロセスMは、「クライアントテーブル」を保持しているが、該テーブルは、クライアントプログラムの実行インスタンスを登録しておくためのテーブルである。例えば、クライアントAがサーバーに対して何らかのリクエストを発し、サーバー内部のセッションに関する情報やデータに変更があった場合に、クライアントBがそのイベントを知るためにこのテーブルが使用される。各クライアントプログラム(プロセス)はイベントを受け取る用意ができた状態にある場合に、このクライアントテーブルにアプリケーションハンドルを登録しておく(尚、「アプリケーションハンドル」は、実行アプリケーションを特定するために用いられる識別情報であり、例えば、GUI(Graphical User Interface)の場合、ウィンドウハンドルが挙げられる。)。
【0055】
所定のイベントが発生した場合(例えば、あるクライアントプログラムでユーザーがログアウトした場合等)、クライアントテーブルに登録されているすべてのクライアントに該イベントに対応するメッセージが送られる。
【0056】
図5に示す(1)乃至(8)の手順例に従って、一連の処理の流れを、以下に説明する。
【0057】
(1)クライアントAの起動及びユーザの入力ステップ
(2)ユーザ認証及びセッション生成のステップ
(3)セッション管理プロセスの生成及びセッション管理等のステップ
(4)クライアントBの起動ステップ
(5)セッションIDの取り出し及びアプリケーションハンドルの登録ステップ
(6)セッションIDの返送ステップ
(7)(6)のセッションIDを用いたサーバーの呼び出しステップ
(8)ログイン済みセッションへの応答の返送ステップ。
【0058】
先ず、(1)では、ユーザの指示を受けてクライアントA、即ち、「アップローダ」が起動される。その後、ユーザに対して、サイトへのログインID及びパスワードを要求する画面(図2(A)参照)が提示される。ユーザが入力した項目(ログインID、パスワード)データは、暗号化されてサーバープログラムSに送られる。
【0059】
(2)では、サーバーにおいてユーザ認証が行われ、上記(1)で入力された情報が、正しいユーザ情報であるか否かが判断される。そして、ユーザ情報が正しいと判断された場合には、セッション(ここでは、セッションIDを仮に「000111」とする。)が生成される。セッションIDの情報はサーバープログラムSからクライアントAに返される。
【0060】
(3)では、正しいセッションIDがサーバーから送られてきた場合に、クライアントAが、セッション管理プロセスMを生成して、セッションID(本例では「000111」)を設定する。これは、一つのセッションを複数のクライアントプログラムの間で共有するために、セッション管理プロセスMがセッションIDを管理する必要のためである。また、それと同時にアプリケーションハンドル(ウィンドウハンドル)をセッション管理プロセスMのクライアントテーブルに登録する(尚、この時点では、クラアントBはクライアントテーブルに未登録である。)。
【0061】
(4)において、ユーザの指示を受けてクライアントB、即ち、ブラウザが起動される(図3参照。)。
【0062】
(5)では、クライアントBの起動直後にセッション管理プロセスMを検索し、該プロセスの存否が判断される。そして、セッション管理プロセスが存在する場合は、(2)で設定されたセッションIDを取り出す。その際、「機能拡張バー」(を含むブラウザ)を特定するためのアプリケーションハンドル(ウィンドウハンドル)を登録しておく(これは、セッション管理プロセスのクライアントテーブルに登録される。)。
【0063】
(6)では、セッション管理プロセスに登録されているセッションIDがクライアントBに送られる。つまり、クライアントBとサーバープログラムSとの間で該セッションIDを用いた通信処理を行えるように、セッションIDがクライアントBに通知される。
【0064】
(7)において、サイトのサーバーを呼び出す場合に、(6)で得られたセッションIDを使用してアクセスする。たとえば、(1)でユーザがアップローダに入力したユーザIDによるログイン状態のページを要求する際に、このセッションIDを一緒にサーバに送る
(8)では、ログイン済みのセッションに対する応答がクライアントBに返る。
【0065】
尚、(1)、(2)及び(7)、(8)の処理は、サーバーマシンとクライアントマシンとの間のネットワーク通信により行われ、また、(3)、(5)、(6)の処理はプロセス間通信(LPC:Local Procedure call等)で行われる。(7)のサーバーへのリクエストについては、いわゆるクッキー(Cookie:WWWサーバーがユーザを識別して管理する仕組み)に(6)で取得したセッションIDを入れてサーバーに通知することも可能である。
【0066】
図5において、(3)や(5)では、アプリケーション(クライアントA、B)がセッション管理プロセスMに対してアプリケーションハンドルを設定しており、セッション管理プロセスMではそれらの設定情報をクライアントテーブルに保持している。クライアントテーブルは、セッション管理プロセスMが、あるクライアントから発生したイベント(例えば、ログアウトや新規アルバムの作成など)を他のクライアントに通知するために必要とされる。
【0067】
次に、「アップローダ」と、「機能拡張バー」(を含むブラウザ)がともにログイン状態にあるとし、図6を使ってイベント通知の仕組みについて説明する。
【0068】
処理の流れは以下の通りである。
【0069】
(11)クライアントA(「アップローダ」)からサーバーに対してログアウト(logout)の操作を行う
(12)ログアウト成功のステータスがクライアントAに戻ってくる。尚、ここで、ログアウトとはサーバーセッションの削除を意味する。この状態では、クライアントBの方ではサーバーに該当セッション(ID=000111)が無くなったことは分からない
(13)クライアントAが、セッション管理プロセスMに対して、ログアウトイベントを送る
(14)セッション管理プロセスMは、クライアントテーブルに登録されている、クライアントA(送り元)以外のすべてのクライアント(本例では、クライアントB)にログアウトイベントを送る。これにより、クライアントは、現在のセッションが既に有効でないことを知り、例えば、ユーザインターフェイスをログイン待機状態にする等の処理が可能となる。
【0070】
図7は、クライアントプログラム(「アップローダ」)を主体として、その起動から停止までの処理の流れをセッション管理プロセスとの関わりに限って例示したフローチャート図である(尚、基本的な処理の流れは、「機能拡張バー」の場合もほぼ同様である。)。
【0071】
図中の「State」はログイン状態(login)、ログアウト状態(logout)の如何を示している。
【0072】
先ず、ステップS1では、クライアントAを起動し(この時点ではログアウト状態である。)、次ステップS2で、セッション管理プロセスMのクライアントテーブルにクライアントAのアプリケーションハンドルが登録される。
【0073】
そして、ステップS3において、セッション管理プロセスMからセッションIDを取得できるか否かが判断される。つまり、既にセッションが確立されてそのセッションIDがセッション管理プロセスMに保持されている場合には、ステップS4に進むが、そうでない場合(セッション未確立)にはステップS5に進む。
【0074】
ステップS4ではユーザインターフェイス(UI)をログイン状態とし(State=login)、次ステップS5に進む。
【0075】
ステップS5において、セッション管理プロセスMからのメッセージ及びユーザイベントの待ち処理に入る。
【0076】
次ステップS6では、現在ログアウト状態である場合に、ユーザインターフェイスによるログインを行うか否かが判断される。尚、「State==logout」は等値関係の条件式を意味し、該条件の成立時に真値を示す。現状ログアウトとされていてユーザがログインを行う場合には、ステップS7に進むが、そうでない場合にはステップS11に進む。
【0077】
ステップS7において、クライアントAからサーバーにログインリクエストが送られた後、次ステップS8でログインの成否を判断し、ログインに成功した場合にはステップS9に進むが、ログイン不成功の場合にはステップS5に戻る。
【0078】
ステップS9では、ログインの成功時にサーバーから送られてくるセッションIDがセッション管理プロセスMに設定されて管理される。そして次ステップS10でユーザインターフェイスをログイン状態にした後(State=login)、ステップS5に戻る。
【0079】
ステップS11では、クライアントAにセッション管理プロセスMからログアウトメッセージが届けられたかどうかを判断する。つまり、前記したように、他のクライアントによるログアウト時にイベントが発生した場合には、クライアントテーブルに登録されている全クライアントにログアウトメッセージが送られるので、該メッセージが来た場合には、ステップS12に進んでユーザインターフェイスをログアウト状態にした後(State=logout)、ステップS5に戻る。また、クライアントAにログアウトメッセージが来ない場合には次ステップS13に進み、イベント検知処理、例えば、新規アルバムの作成メッセージか否か等の判断を行い、ステップS14に進みイベントに応じた処理(例えば、アルバムリストの更新等)を行ってからステップS5に戻る。
【0080】
尚、ステップS13からS14に進み、S5に戻るループがイベント処理に係る主要な流れを示す。
【0081】
ステップS13からステップS15に進んだ場合に、ここで、クライアントAの終了(Exit)がユーザから指示されたか否かが判断される。そして、終了指示がなされた場合には、ステップS16に進むが、そうでない場合にはステップS5に戻る。
【0082】
ステップS16において、セッション管理プロセスMのクライアントテーブルからクライアントAの登録が抹消される(アプリケーションハンドルが削除される。)。そして、ステップS17に進んで、アプリケーション(クライアントA)が停止する。
【0083】
以上のように、クライアントプログラムの起動後に、そのアプリケーションハンドルがクライアントテーブルに登録され、別のクライアントプログラムとサーバープログラムとの間で開始されたセッションの識別情報(セッションID)がセッション管理プロセスMにおいて保持されているかが判断される。そして、セッションIDを取得することができる場合には、該セッションIDを用いてサーバーとの通信処理を行えるようにユーザインターフェイスがログイン状態とされる。また、サーバーとの間にセッションが確立されていない状態でログインを行う場合に、ステップS7乃至S10に示すようにセッションが新たに開始されて、セッション管理プロセスMにおけるセッションIDの設定登録後にログイン状態とされる。
【0084】
しかして、上記した構成によれば、例えば、下記に示す利点が得られる。
【0085】
・ログインを必要とする、ひとつの情報サービス(Webサービス等)に対して、同一マシン上の異なるクライアントプログラム(アプリケーション)からユーザがアクセスする場合に、どれか1つのクライアントプログラムでログインすると、他のクライアントプログラムにおいて再度ログインする必要が無くなる。つまり、ユーザは使用するアプリケーション毎にログインする必要が無くなり、ユーザIDやパスワード等をいちいち入力する手間が省けるので、ユーザの利便性が向上する。
【0086】
・サーバー側からみた場合に、従来の構成では、クライアントマシンを使っているユーザが同一ユーザであるにもかかわらず、アプリケーション毎に複数のセッションを用意する必要がある(つまり、ユーザが同じでもアプリケーション毎にセッションの生成及びセッションIDの付与が必要とされる。)。これに対して、本発明に係る上記の構成では、複数のアプリケーションに関して1つのセッションIDで済むので、不要なリソースを消費しないように回避できる。
【0087】
・1つのセッションで有効なデータを使うようなサービス(例えば、ショッピングカートのような仕組みを実装したアプリケーションを用いたサービス)では、別々のクライアントプログラム(アプリケーション)から1つのセッションにアクセス可能であるため、それぞれのクライアントプログラムにおいて、共通の状態を参照したり、情報の更新等を行うことができる(つまり、アプリケーション毎に異なるセッションが確立されてサーバーとクライアントとの間で通信が行われる形態では、アプリケーション側からみた場合にサーバーのデータ等を、複数のアプリケーションの間で共有することができない。)。
【0088】
尚、本発明は、前記した情報処理装置やこれに用いるプログラムに限らず、上記したセッション管理機能を有するプログラムを記録した情報記録媒体(情報処理装置に装着してそのプログラムをメモリロードできるようにした各種の記録媒体や記憶媒体)や、一つのセッションを複数のクライアントプログラムの間で共有するために、セッションの識別情報を管理する方法等に幅広く適用することができる。
【0089】
【発明の効果】
以上に記載したところから明らかなように、請求項1、請求項4に係る発明によれば、異なるクライアントプログラムであっても、ユーザ認証後に確立される同一セッションの識別情報を用いてサーバープログラムとの間で通信処理を行うことができるので、ログインのための重複した入力操作からユーザが解放され、また、複数のクライアントプログラムからみた場合に、クライアントプログラムの間でサーバーのデータ等を共有することができる。
【0090】
請求項2、請求項5に係る発明によれば、クライアントプログラムが新たに起動された場合に、該クライアントプログラムに対してセッションの識別情報を通知することができる。
【0091】
請求項3、請求項6に係る発明によれば、所定のイベントが発生した場合(例えば、あるクライアントプログラムでのログアウト等)に、テーブルに登録されている全クライアントプログラムに対して該イベントに応じたメッセージが送られるので、該メッセージが通知されないことに起因する弊害や不要動作(例えば、ログアウト状態であるにもかかわらずログイン状態を前提としたリクエスト等が発行される等)を防止できる。
【図面の簡単な説明】
【図1】本発明に係るシステム構成例を示す概念図である。
【図2】クライアントプログラム「アップローダ」の画面例を示す説明図である。
【図3】クライアントプログラム「機能拡張バー」を含むブラウザの画面例を示す説明図である。
【図4】クライアントプログラム「機能拡張バー」の画面例を示す説明図である。
【図5】本発明に係る処理例を示す説明図である。
【図6】イベント通知に係る処理例を示す説明図である。
【図7】クライアントプログラムの起動から停止までの処理例について説明するためのフローチャート図である。
【符号の説明】
2…情報処理装置、2m…セッション管理手段
【発明の属する技術分野】
本発明は、通信機能を備えた情報処理装置において、ユーザの利便性を高めるとともに、サーバーの負荷を軽減するための技術に関する。
【0002】
【従来の技術】
ウェブ(World Wide Web等)サービスを提供するサーバーのクライアントプログラムとして、Webブラウザだけでなく、Webサーバーが提供する機能(Webサービス)について直接HTTP(ハイパーテキスト転送プロトコル)等でアクセスすることができる専用クライアントが一般的になりつつある。
【0003】
そして、ネットワーク上のサーバーマシンとクライアントマシンとの間で通信を行う場合に、通常、ユーザ認証が必要とされる。例えば、ログインを必要とするWebサービスを利用する場合、クライアントマシン上のクライアントプログラムからそのWebサービスを利用するにあたって、ユーザID(識別情報)やパスワード(暗証番号)等の入力が必要である。
【0004】
【発明が解決しようとする課題】
ところで、従来の装置では、複数のクライアントプログラムの間で同一のセッションを共有して、サーバープログラムとの間で情報のやりとりを行えないため、例えば、下記に示すような問題が起きる。
【0005】
同一サーバーにより提供されるWebサービス等に対してアクセスするためのクライアントプログラムが一つの情報処理装置に一種類しか存在しない場合には、そのクライアントプログラム(アプリケーション)を立ち上げてからユーザIDやパスワード等を入力してユーザ認証を行えば良い。しかし、複数のアプリケーションを使って同一のWebサービスにアクセスし、ユーザがアプリケーション間で連携した使用を望む場合には、アプリケーション毎にユーザIDやパスワードを入力し、サーバーとのセッションをそれぞれ開始する必要がある。つまり、サーバーが同じでも、クライエントマシン上のクライアントプログラム毎に異なるセンションが開始される。
【0006】
このような状況下では、下記の事項が問題となる。
【0007】
・ユーザが、アプリケーション毎に同じユーザID及びパスワードをその都度入力する必要があるので、操作が2度手間となり面倒であること。
【0008】
・サーバーにとっては、1人のユーザに対して異なるセッションを開始しなければならず、無駄なリソース(コンピュータ資源)を消費してしまうこと。
【0009】
・Webサービス等のシステム設計上、セッション毎の管理に必要な情報を、一時的な情報(揮発性データ)として管理する場合(例えば、ショッピングカートのような購買システムにおいて、ログインしてからカート内にユーザが注文しようとする商品情報を保持する場合が考えられ、そのカート内部の商品情報が、セッションの終了時にクリアされるような場合等)、別々のセッションとして管理されるクライアントプログラム間では、ユーザが同一であるにもかかわらず、サーバー側のデータ等を共有できないといった問題が発生すること。
【0010】
そこで、本発明は、同一の情報処理装置上における複数のクライアントプログラムと、サーバーとの間でセッションを共有して、ユーザの利便性を高めることを課題とする。
【0011】
【課題を解決するための手段】
本発明に係る情報処理装置は、ユーザ認証を経てサーバープログラムとクライアントプログラムとの間の論理的な接続関係として確立されるセッションに関して、一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するセッション管理手段を備えたものである。
【0012】
また、本発明に係る情報処理装置に用いるプログラムは、ユーザ認証後にサーバープログラムとの間で確立される一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するステップを有するものである。
【0013】
従って、本発明によれば、異なるクライアントプログラムであっても、ユーザ認証後に確立される同一セッションの識別情報を用いてサーバープログラムとの間で通信処理を行うことができる。
【0014】
【発明の実施の形態】
本発明は、サーバーによるウェブ(Web)サービス等をクライアントに提供するシステムにおいて、1つのセッション(サーバーセッション)を同一マシン(クライアントマシン)上の複数のクライアントで共有することができるようにしたものである。例えば、1つのWebサービスにアクセスすることができる、複数のクライアントプログラムをユーザが使用する場合に、ユーザが同じであれば、クライアントプログラム毎に別々のログインを行う必要がなく、1度どれかのクライアントプログラムでログインすると、それ以降、他のクライアントプログラムではログインを行う必要がない。これによって、ユーザの利便性を向上させることができる。
【0015】
尚、ここで「セッション」とは、ユーザIDやパスワード等を用いたユーザ認証を経てサーバープログラムとクライアントプログラムとの間に確立される通信上の論理的な接続関係を意味し、ユーザ認証が正しく行われて生成(又は開始)され、ユーザ操作又は時間制限等の終了条件により消滅する。より簡単に言えば、ログインから開始され、ログアウト等で終了するまでの間、サーバーとクライアントとの間で行われる一連の処理を表している。
【0016】
図1は、インターネット等を用いたコンピュータネットワーク及びこれに接続された情報処理装置(サーバーマシンやクライアントマシン)により構成されたシステム例を概念的に示したものである。
【0017】
本システム(情報通信システム)1では、情報処理装置2としてクライアントマシン2c、2c、…及びサーバーマシン2sが設けられている。つまり、特定の情報サービス(Webサービス等)をクライアントマシン2c、2c、…に対して提供するサーバーマシン2sがネットワーク上に接続されていて、サーバーマシン2s上で実行されるサーバープログラムを用いて、情報サービス等に必要な各種の情報処理が行われる。
【0018】
クライアントマシン2cは、該マシン上で実行されるクライアントプログラムを用いて、サーバープログラムとの間で情報をやりとりすることができる。尚、「クライアントマシン」としては、例えば、ネットワーク通信機能を有するパーソナルコンピュータや、Webサービス等にアクセス可能な、PDA(Personal Digital Assistance)、携帯電話等の移動体通信端末装置、あるいはネットワーク接続可能な各種装置(撮像装置や映像機器等)が挙げられる。また、クライアントプログラムとしては、例えば、ブラウザ(閲覧用ソフト)が挙げられるが、これに限らず各種アプリケーションを用いることができる。
【0019】
図1には、ある情報処理装置(クライアントマシン2c)において、複数のクライアントプログラムA、B、…が実行されている様子を概念的に示している。該クライアントマシンは、複数のクライアントプログラム(プロセス)間で一つのセッションを共有するために、該セッションの識別情報を管理するセッション管理手段2mを備えている(実際のハードウェア構成としては、例えば、中央処理装置やメインメモリ、システムコントローラ等の各種コントローラ、補助記憶装置等が設けられ、プログラム等を用いてセッション管理手段2mが実現されるが、図には簡略化して示している。)。
【0020】
一例としては、クライアント側に、1つのサーバーセッションに対応する、実行プログラム(以下、「セッション管理プロセス」という。)を用意し、これを用いてセッションの識別情報を管理する。つまり、このセッション管理プロセスは、上記セッション管理手段2mを構成するものであり、クライアントマシン又はプログラムとサーバーマシン又はプログラムとの接続時、あるいはログイン時に生成されるセッションを識別するためのID情報(以下、「セッションID」という。)を管理する役目をもっている。
【0021】
Webサービス等を利用する場合に実行されるクライアントプログラムは、1つのクライアントマシン上において、それぞれ別々のプログラム(プロセス)として存在し、それらは、セッション管理プロセスに対して、セッションIDの問い合わせや設定を行うことができる。
【0022】
第一のクライアントプログラム(クライアントA)から、サーバーにログインする時、セッション管理プロセスが起動され、クライアントAとサーバープログラムとの間で開始されたセッションのセッションIDをクライアントAがセッション管理プロセスに対して設定する。
【0023】
その後に、第二のクライアント(クライアントB)が起動されたときは、セッション管理プロセスの存在を条件として、セッションIDが該プロセスからクライアントBに通知される。つまり、クライアントBは、セッション管理プロセスが存在しているかどうかを判定し、該プロセスがクライアントマシン上に存在している場合は、設定済みのセッションIDを取り出す。そして、クライアントBを用いてサーバーマシンとの通信を始める場合に、取得したセッションIDを使用してサーバーへのアクセスを行う。
【0024】
クライアントBとサーバープログラムとの間でクライアントAの場合と同じセッションIDを用いた通信処理が行われ、よって、クライアントBを使ったユーザが、Webサービス等にログインするために、ユーザ名やパスワード等、ユーザ認証に必要なデータを入力する必要が無い。
【0025】
尚、上記の説明では、最初のログイン時に、セッション管理プロセスが生成されるものとしたが、該プロセスが生成されるタイミングについては、特に「ログイン」という行為を必要としない。よって、常駐プログラムの形態としても良いし、また最初にWebサービス等に接続したときにプロセスを生成する等、各種形態で実施することができる。
【0026】
以下では、画像データを取り扱う、フォト・シェアリングサイト(画像情報の共有及び利用のためのサイト)のウェブサービスを例にして、図2乃至図7に従って具体的に説明する。
【0027】
本サイト(http://www.imagestation.jp/)では、画像ファイルを”アルバム”という、ファイルシステムのディレクトリに類似の論理構造(1階層構造)により管理している。
【0028】
ウェブサービスのためのインターフェイス(External Interface)は、アルバムの一覧やアルバム内の画像情報の取得、あるいは画像の特定アルバムへのアップロード、といった機能を提供するためのインターフェイスであり、クライアントプログラムである「アップローダ」及び「機能拡張バー」から利用される。
【0029】
「アップローダ」は、クライアントマシン(ローカルマシン)にある画像ファイルを、サイトにアップロード(送信あるいは転送)する機能を備えた専用クライアントプログラムである。
【0030】
図2は、「アップローダ」の画面(メイン画面)例を示したものであり、(A)図がログイン前の表示状態を示し、(B)図がログイン後の表示状態を示している。
【0031】
(A)図に示すログイン前の状態における各部(オブジェクト)の意味は下記の通りである。
【0032】
・ドロップターゲット部(3_1)=本来は画像ファイルのドラッグ&ドロップ(マウスポインタによるアイコン操作)のために用意された領域(ログイン前ではアニメーション等が表示されるだけで、特別な機能はない。)
・ID入力部(3_2)=ログインID(ユーザID)の入力及び編集領域
・パスワード入力部(3_3)=パスワードの入力及び編集領域
・「ログイン」ボタン(3_4)=ログイン操作用のボタンオブジェクト
・メニューボタン(3_5)=操作時にポップアップメニュー(アルバム一覧更新、アップロード、新アルバム作成等の項目を含む)を表示するボタンオブジェクト。
【0033】
尚、メニューボタン3_5の右側には、「アルバムを開く」ボタン3_6、「アルバムに招待する」ボタン3_7等のオブジェクトが配置されている。
【0034】
また、(B)図に示すログイン後の状態における各部(オブジェクト)の意味は下記の通りである。
【0035】
・ドロップターゲット部(3_1)=サイトへのログイン状態において、この部分に対して画像ファイルのドラッグ&ドロップを行うことで発生するイベントにより、該画像ファイルのアップロードが開始され、下記の「アルバムドロップダウンリスト」に選択されているアルバムに画像ファイルがアップロードされる。
【0036】
・ニックネーム部(3_8)=ログインしたユーザが登録している名称(ニックネーム)の表示領域
・「ログアウト」ボタン(3_9)=ログアウト操作用のボタンオブジェクト・アルバムドロップダウンリスト(3_10)=ユーザ所有のアルバムリストを表示したり、ドラッグ&ドロップによる画像ファイルのアップロード、「アルバムを開く」ボタン3_6や「アルバムに招待する」ボタン3_7による操作は、すべてこのリストオブジェクトで選択されているアルバムに対して行われる。
【0037】
尚、メニューボタン3_5や、「アルバムを開く」ボタン3_6、「アルバムに招待する」ボタン3_7の配置は、(A)図と同じである。
【0038】
例えば、ユーザが「アップローダ」を用いてサイトにアクセスして、所望の画像ファイルをユーザが意図するアルバムにアップロードする場合の手順は次に示す通りである。
【0039】
(1)「アップローダ」の起動及びログイン(図2(A)に示す画面でのログインID及びパスワード入力等の操作)
(2)ユーザ認証が済むと、図2(B)に示す表示状態となり、ここでユーザが、アルバムドロップダウンリスト3_10でアップロード先のアルバムを選択する
(3)所望の画像ファイルのアイコンをドラッグ&ドロップによりドロップターゲット部3_1へと移す操作をユーザが行うことで、画像ファイルのアップロードが行われる。
【0040】
次に、「機能拡張バー」について、図3及び図4を用いて説明する。
【0041】
この「機能拡張バー」は、特定のブラウザ等にプラグイン(あるいはアドイン)として機能的に追加されるクライアントプログラム(プラグインコンポーネント等)である。
【0042】
図3はブラウザに追加された形態を示すものであり、図には、アドレスバー等のツールバーの最下段に配置された「機能拡張バー」を示している。これは、例えば、Internet Explorer(マイクロソフト社の商標)へのプラグイン形態の場合、ウィンドウズ(マイクロソフト社製OSの商標)では、ダイナミックリンクライブラリ(DLL::Dynamic Link Library)として実装されていて、システムに登録しておくことでブラウザによってメモリロードがなされる。
【0043】
図4は、「機能拡張バー」の画面例を示したものであり、(A)図がログイン前の表示状態を示し、(B)図がログイン後の状態を示している。
【0044】
(A)図に示すログイン前の状態では、ボタンオブジェクト4_1だけが表示されており、このボタンを押すと所定のメニュー(ログイン、ヘルプ等)が表示される。
【0045】
また、(B)図に示すログイン後の状態における各部(オブジェクト)の意味は下記の通りである。
【0046】
・ボタンオブジェクト(4_1)=ボタン操作により、ログアウト、アルバム情報、新規アルバムの作成等の各種項目を含むメニューが表示される。
【0047】
・「アルバム」ボタン(4_2)=アルバムタイトルを表示したボタンオブジェクトであり、アルバムの更新時にソーティング(並び替え)された最新のものが表示画面の片側から順番に表示される。ユーザが本ボタンを押すとそのアルバムの画像リストページに遷移する。
【0048】
・「アルバム移動」ボタン(4_3)=バー上に表示される「アルバム」ボタン群の両側に位置されるボタンオブジェクト(「<<」、「>>」で示す。)。「機能拡張バー」の表示エリアが狭い場合やアルバムの数が多い場合に、本ボタンが有効となり、例えば、ボタン押圧により、「<<」又は「>>」に示される方向に従って「アルバム」ボタンの位置がシフト(移動)する。これにより、バーに表示される「アルバム」ボタン群の表示を変更できる。
【0049】
ユーザは「機能拡張バー」からサイトへのログインを行うことができ、その際には、該ユーザのアルバム一覧用データがインターフェイス(External Interface)経由で取得され、それらは「アルバム」ボタン(ショートカットボタン)としてバー上に並べられる。
【0050】
尚、「機能拡張バー」と同等の機能を有するプログラム(ブラウザ等)を最初から設計して作成することもできるが、本例のように、ユーザが使い慣れた既存プログラムへの機能追加として必要な処理を付加する形態では、操作等を改めて学習すること等を含めて、ユーザーの負担が少ないといった利点があり、また、プログラム作成上の負担が軽減される。
【0051】
「アップローダ」、「機能拡張バー」は別々のクライアントプログラムとされるが、どちらを用いても同一サイトにログインすることができ、本来的にはサーバーとの間でセッションをそれぞれ確立することが可能である。
【0052】
図5は、セッションの共有を行う場合の基本的な流れについて説明するための図であり、ネットワークにより接続されるサーバープログラム(「S」)及びクライアントプログラムA、B、セッション管理プロセス「M」の関係を示している。尚、本例では、クライアントプログラムAが「アップローダ」とされ、クライアントプログラムBが「機能拡張バー」とされており、最初に「アップローダ」のみが起動され、その後に「機能拡張バー」を含むブラウザが起動された状態を想定している。
【0053】
図示のように、サーバープログラムSにおいて作成されるセッションID(本例では「000111」)は、クライアントマシンに送られ、セッション管理プロセスMで管理される。
【0054】
セッション管理プロセスMは、「クライアントテーブル」を保持しているが、該テーブルは、クライアントプログラムの実行インスタンスを登録しておくためのテーブルである。例えば、クライアントAがサーバーに対して何らかのリクエストを発し、サーバー内部のセッションに関する情報やデータに変更があった場合に、クライアントBがそのイベントを知るためにこのテーブルが使用される。各クライアントプログラム(プロセス)はイベントを受け取る用意ができた状態にある場合に、このクライアントテーブルにアプリケーションハンドルを登録しておく(尚、「アプリケーションハンドル」は、実行アプリケーションを特定するために用いられる識別情報であり、例えば、GUI(Graphical User Interface)の場合、ウィンドウハンドルが挙げられる。)。
【0055】
所定のイベントが発生した場合(例えば、あるクライアントプログラムでユーザーがログアウトした場合等)、クライアントテーブルに登録されているすべてのクライアントに該イベントに対応するメッセージが送られる。
【0056】
図5に示す(1)乃至(8)の手順例に従って、一連の処理の流れを、以下に説明する。
【0057】
(1)クライアントAの起動及びユーザの入力ステップ
(2)ユーザ認証及びセッション生成のステップ
(3)セッション管理プロセスの生成及びセッション管理等のステップ
(4)クライアントBの起動ステップ
(5)セッションIDの取り出し及びアプリケーションハンドルの登録ステップ
(6)セッションIDの返送ステップ
(7)(6)のセッションIDを用いたサーバーの呼び出しステップ
(8)ログイン済みセッションへの応答の返送ステップ。
【0058】
先ず、(1)では、ユーザの指示を受けてクライアントA、即ち、「アップローダ」が起動される。その後、ユーザに対して、サイトへのログインID及びパスワードを要求する画面(図2(A)参照)が提示される。ユーザが入力した項目(ログインID、パスワード)データは、暗号化されてサーバープログラムSに送られる。
【0059】
(2)では、サーバーにおいてユーザ認証が行われ、上記(1)で入力された情報が、正しいユーザ情報であるか否かが判断される。そして、ユーザ情報が正しいと判断された場合には、セッション(ここでは、セッションIDを仮に「000111」とする。)が生成される。セッションIDの情報はサーバープログラムSからクライアントAに返される。
【0060】
(3)では、正しいセッションIDがサーバーから送られてきた場合に、クライアントAが、セッション管理プロセスMを生成して、セッションID(本例では「000111」)を設定する。これは、一つのセッションを複数のクライアントプログラムの間で共有するために、セッション管理プロセスMがセッションIDを管理する必要のためである。また、それと同時にアプリケーションハンドル(ウィンドウハンドル)をセッション管理プロセスMのクライアントテーブルに登録する(尚、この時点では、クラアントBはクライアントテーブルに未登録である。)。
【0061】
(4)において、ユーザの指示を受けてクライアントB、即ち、ブラウザが起動される(図3参照。)。
【0062】
(5)では、クライアントBの起動直後にセッション管理プロセスMを検索し、該プロセスの存否が判断される。そして、セッション管理プロセスが存在する場合は、(2)で設定されたセッションIDを取り出す。その際、「機能拡張バー」(を含むブラウザ)を特定するためのアプリケーションハンドル(ウィンドウハンドル)を登録しておく(これは、セッション管理プロセスのクライアントテーブルに登録される。)。
【0063】
(6)では、セッション管理プロセスに登録されているセッションIDがクライアントBに送られる。つまり、クライアントBとサーバープログラムSとの間で該セッションIDを用いた通信処理を行えるように、セッションIDがクライアントBに通知される。
【0064】
(7)において、サイトのサーバーを呼び出す場合に、(6)で得られたセッションIDを使用してアクセスする。たとえば、(1)でユーザがアップローダに入力したユーザIDによるログイン状態のページを要求する際に、このセッションIDを一緒にサーバに送る
(8)では、ログイン済みのセッションに対する応答がクライアントBに返る。
【0065】
尚、(1)、(2)及び(7)、(8)の処理は、サーバーマシンとクライアントマシンとの間のネットワーク通信により行われ、また、(3)、(5)、(6)の処理はプロセス間通信(LPC:Local Procedure call等)で行われる。(7)のサーバーへのリクエストについては、いわゆるクッキー(Cookie:WWWサーバーがユーザを識別して管理する仕組み)に(6)で取得したセッションIDを入れてサーバーに通知することも可能である。
【0066】
図5において、(3)や(5)では、アプリケーション(クライアントA、B)がセッション管理プロセスMに対してアプリケーションハンドルを設定しており、セッション管理プロセスMではそれらの設定情報をクライアントテーブルに保持している。クライアントテーブルは、セッション管理プロセスMが、あるクライアントから発生したイベント(例えば、ログアウトや新規アルバムの作成など)を他のクライアントに通知するために必要とされる。
【0067】
次に、「アップローダ」と、「機能拡張バー」(を含むブラウザ)がともにログイン状態にあるとし、図6を使ってイベント通知の仕組みについて説明する。
【0068】
処理の流れは以下の通りである。
【0069】
(11)クライアントA(「アップローダ」)からサーバーに対してログアウト(logout)の操作を行う
(12)ログアウト成功のステータスがクライアントAに戻ってくる。尚、ここで、ログアウトとはサーバーセッションの削除を意味する。この状態では、クライアントBの方ではサーバーに該当セッション(ID=000111)が無くなったことは分からない
(13)クライアントAが、セッション管理プロセスMに対して、ログアウトイベントを送る
(14)セッション管理プロセスMは、クライアントテーブルに登録されている、クライアントA(送り元)以外のすべてのクライアント(本例では、クライアントB)にログアウトイベントを送る。これにより、クライアントは、現在のセッションが既に有効でないことを知り、例えば、ユーザインターフェイスをログイン待機状態にする等の処理が可能となる。
【0070】
図7は、クライアントプログラム(「アップローダ」)を主体として、その起動から停止までの処理の流れをセッション管理プロセスとの関わりに限って例示したフローチャート図である(尚、基本的な処理の流れは、「機能拡張バー」の場合もほぼ同様である。)。
【0071】
図中の「State」はログイン状態(login)、ログアウト状態(logout)の如何を示している。
【0072】
先ず、ステップS1では、クライアントAを起動し(この時点ではログアウト状態である。)、次ステップS2で、セッション管理プロセスMのクライアントテーブルにクライアントAのアプリケーションハンドルが登録される。
【0073】
そして、ステップS3において、セッション管理プロセスMからセッションIDを取得できるか否かが判断される。つまり、既にセッションが確立されてそのセッションIDがセッション管理プロセスMに保持されている場合には、ステップS4に進むが、そうでない場合(セッション未確立)にはステップS5に進む。
【0074】
ステップS4ではユーザインターフェイス(UI)をログイン状態とし(State=login)、次ステップS5に進む。
【0075】
ステップS5において、セッション管理プロセスMからのメッセージ及びユーザイベントの待ち処理に入る。
【0076】
次ステップS6では、現在ログアウト状態である場合に、ユーザインターフェイスによるログインを行うか否かが判断される。尚、「State==logout」は等値関係の条件式を意味し、該条件の成立時に真値を示す。現状ログアウトとされていてユーザがログインを行う場合には、ステップS7に進むが、そうでない場合にはステップS11に進む。
【0077】
ステップS7において、クライアントAからサーバーにログインリクエストが送られた後、次ステップS8でログインの成否を判断し、ログインに成功した場合にはステップS9に進むが、ログイン不成功の場合にはステップS5に戻る。
【0078】
ステップS9では、ログインの成功時にサーバーから送られてくるセッションIDがセッション管理プロセスMに設定されて管理される。そして次ステップS10でユーザインターフェイスをログイン状態にした後(State=login)、ステップS5に戻る。
【0079】
ステップS11では、クライアントAにセッション管理プロセスMからログアウトメッセージが届けられたかどうかを判断する。つまり、前記したように、他のクライアントによるログアウト時にイベントが発生した場合には、クライアントテーブルに登録されている全クライアントにログアウトメッセージが送られるので、該メッセージが来た場合には、ステップS12に進んでユーザインターフェイスをログアウト状態にした後(State=logout)、ステップS5に戻る。また、クライアントAにログアウトメッセージが来ない場合には次ステップS13に進み、イベント検知処理、例えば、新規アルバムの作成メッセージか否か等の判断を行い、ステップS14に進みイベントに応じた処理(例えば、アルバムリストの更新等)を行ってからステップS5に戻る。
【0080】
尚、ステップS13からS14に進み、S5に戻るループがイベント処理に係る主要な流れを示す。
【0081】
ステップS13からステップS15に進んだ場合に、ここで、クライアントAの終了(Exit)がユーザから指示されたか否かが判断される。そして、終了指示がなされた場合には、ステップS16に進むが、そうでない場合にはステップS5に戻る。
【0082】
ステップS16において、セッション管理プロセスMのクライアントテーブルからクライアントAの登録が抹消される(アプリケーションハンドルが削除される。)。そして、ステップS17に進んで、アプリケーション(クライアントA)が停止する。
【0083】
以上のように、クライアントプログラムの起動後に、そのアプリケーションハンドルがクライアントテーブルに登録され、別のクライアントプログラムとサーバープログラムとの間で開始されたセッションの識別情報(セッションID)がセッション管理プロセスMにおいて保持されているかが判断される。そして、セッションIDを取得することができる場合には、該セッションIDを用いてサーバーとの通信処理を行えるようにユーザインターフェイスがログイン状態とされる。また、サーバーとの間にセッションが確立されていない状態でログインを行う場合に、ステップS7乃至S10に示すようにセッションが新たに開始されて、セッション管理プロセスMにおけるセッションIDの設定登録後にログイン状態とされる。
【0084】
しかして、上記した構成によれば、例えば、下記に示す利点が得られる。
【0085】
・ログインを必要とする、ひとつの情報サービス(Webサービス等)に対して、同一マシン上の異なるクライアントプログラム(アプリケーション)からユーザがアクセスする場合に、どれか1つのクライアントプログラムでログインすると、他のクライアントプログラムにおいて再度ログインする必要が無くなる。つまり、ユーザは使用するアプリケーション毎にログインする必要が無くなり、ユーザIDやパスワード等をいちいち入力する手間が省けるので、ユーザの利便性が向上する。
【0086】
・サーバー側からみた場合に、従来の構成では、クライアントマシンを使っているユーザが同一ユーザであるにもかかわらず、アプリケーション毎に複数のセッションを用意する必要がある(つまり、ユーザが同じでもアプリケーション毎にセッションの生成及びセッションIDの付与が必要とされる。)。これに対して、本発明に係る上記の構成では、複数のアプリケーションに関して1つのセッションIDで済むので、不要なリソースを消費しないように回避できる。
【0087】
・1つのセッションで有効なデータを使うようなサービス(例えば、ショッピングカートのような仕組みを実装したアプリケーションを用いたサービス)では、別々のクライアントプログラム(アプリケーション)から1つのセッションにアクセス可能であるため、それぞれのクライアントプログラムにおいて、共通の状態を参照したり、情報の更新等を行うことができる(つまり、アプリケーション毎に異なるセッションが確立されてサーバーとクライアントとの間で通信が行われる形態では、アプリケーション側からみた場合にサーバーのデータ等を、複数のアプリケーションの間で共有することができない。)。
【0088】
尚、本発明は、前記した情報処理装置やこれに用いるプログラムに限らず、上記したセッション管理機能を有するプログラムを記録した情報記録媒体(情報処理装置に装着してそのプログラムをメモリロードできるようにした各種の記録媒体や記憶媒体)や、一つのセッションを複数のクライアントプログラムの間で共有するために、セッションの識別情報を管理する方法等に幅広く適用することができる。
【0089】
【発明の効果】
以上に記載したところから明らかなように、請求項1、請求項4に係る発明によれば、異なるクライアントプログラムであっても、ユーザ認証後に確立される同一セッションの識別情報を用いてサーバープログラムとの間で通信処理を行うことができるので、ログインのための重複した入力操作からユーザが解放され、また、複数のクライアントプログラムからみた場合に、クライアントプログラムの間でサーバーのデータ等を共有することができる。
【0090】
請求項2、請求項5に係る発明によれば、クライアントプログラムが新たに起動された場合に、該クライアントプログラムに対してセッションの識別情報を通知することができる。
【0091】
請求項3、請求項6に係る発明によれば、所定のイベントが発生した場合(例えば、あるクライアントプログラムでのログアウト等)に、テーブルに登録されている全クライアントプログラムに対して該イベントに応じたメッセージが送られるので、該メッセージが通知されないことに起因する弊害や不要動作(例えば、ログアウト状態であるにもかかわらずログイン状態を前提としたリクエスト等が発行される等)を防止できる。
【図面の簡単な説明】
【図1】本発明に係るシステム構成例を示す概念図である。
【図2】クライアントプログラム「アップローダ」の画面例を示す説明図である。
【図3】クライアントプログラム「機能拡張バー」を含むブラウザの画面例を示す説明図である。
【図4】クライアントプログラム「機能拡張バー」の画面例を示す説明図である。
【図5】本発明に係る処理例を示す説明図である。
【図6】イベント通知に係る処理例を示す説明図である。
【図7】クライアントプログラムの起動から停止までの処理例について説明するためのフローチャート図である。
【符号の説明】
2…情報処理装置、2m…セッション管理手段
Claims (6)
- ユーザ認証を経てサーバープログラムとクライアントプログラムとの間の論理的な接続関係として確立されるセッションを通して情報伝達を行う通信機能を備えた情報処理装置において、
一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するセッション管理手段を備えている
ことを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、
第一のクライアントプログラムと上記サーバープログラムとの間で開始されたセッションの識別情報が上記セッション管理手段により管理されるとともに、その後に第二のクライアントプログラムが起動された場合に、該セッションの識別情報が上記セッション管理手段から第二のクライアントプログラムに通知されることで、第二のクライアントプログラムと上記サーバープログラムとの間で該セッションの識別情報を用いた通信処理が行われる
ことを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、
上記セッション管理手段が、上記クライアントプログラムを登録するためのテーブルを備えており、所定のイベントが発生した場合に該テーブルに登録されている全てのクライアントプログラムに該イベントに対応するメッセージが送られる
ことを特徴とする情報処理装置。 - ユーザ認証を経てサーバープログラムとクライアントプログラムとの間の論理的な接続関係として確立されるセッションを通して情報伝達を行う通信機能を備えた情報処理装置に用いるプログラムであって、
一つのセッションを複数のクライアントプログラムの間で共有するために、該セッションの識別情報を管理するステップを有する
ことを特徴とする情報処理装置に用いるプログラム。 - 請求項4に記載の情報処理装置に用いるプログラムにおいて、
第一のクライアントプログラムと上記サーバープログラムとの間で開始されたセッションの識別情報を保持し、その後に第二のクライアントプログラムが起動された場合に、第二のクライアントプログラムと上記サーバープログラムとの間で該セッションの識別情報を用いた通信処理を行えるように、該セッションの識別情報を第二のクライアントプログラムに通知するステップを有する
ことを特徴とする情報処理装置に用いるプログラム。 - 請求項4に記載の情報処理装置に用いるプログラムにおいて、
上記クライアントプログラムをテーブルに登録しておき、所定のイベントが発生した場合に該テーブルに登録されている全てのクライアントプログラムに該イベントに対応するメッセージを送るステップを有する
ことを特徴とする情報処理装置に用いるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003006935A JP2004220318A (ja) | 2003-01-15 | 2003-01-15 | 情報処理装置及びこれに用いるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003006935A JP2004220318A (ja) | 2003-01-15 | 2003-01-15 | 情報処理装置及びこれに用いるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004220318A true JP2004220318A (ja) | 2004-08-05 |
Family
ID=32897170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003006935A Pending JP2004220318A (ja) | 2003-01-15 | 2003-01-15 | 情報処理装置及びこれに用いるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004220318A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316679A (ja) * | 2005-05-11 | 2007-12-06 | Sony Corp | 処理装置、処理装置の通信セッション確立方法、プログラム、および記録媒体 |
JP2009049508A (ja) * | 2007-08-14 | 2009-03-05 | Nec Corp | 通信装置およびプログラム、並びに、ネットワーク選択方法 |
JP2009181417A (ja) * | 2008-01-31 | 2009-08-13 | Oki Electric Ind Co Ltd | オンラインサービス提供システム及びオンラインサービス提供方法 |
JP2014096063A (ja) * | 2012-11-09 | 2014-05-22 | Kddi Corp | サーバ、端末装置、コンテンツ配信システム、およびプログラム |
JP2014135022A (ja) * | 2013-01-11 | 2014-07-24 | Kddi Corp | 端末装置、プログラム、および広告表示方法 |
-
2003
- 2003-01-15 JP JP2003006935A patent/JP2004220318A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316679A (ja) * | 2005-05-11 | 2007-12-06 | Sony Corp | 処理装置、処理装置の通信セッション確立方法、プログラム、および記録媒体 |
JP2009049508A (ja) * | 2007-08-14 | 2009-03-05 | Nec Corp | 通信装置およびプログラム、並びに、ネットワーク選択方法 |
JP2009181417A (ja) * | 2008-01-31 | 2009-08-13 | Oki Electric Ind Co Ltd | オンラインサービス提供システム及びオンラインサービス提供方法 |
JP2014096063A (ja) * | 2012-11-09 | 2014-05-22 | Kddi Corp | サーバ、端末装置、コンテンツ配信システム、およびプログラム |
JP2014135022A (ja) * | 2013-01-11 | 2014-07-24 | Kddi Corp | 端末装置、プログラム、および広告表示方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10778763B2 (en) | Content item sharing and synchronization system with team shared folders | |
KR101505234B1 (ko) | 원격 리소스들의 웹 액세스를 위한 xml-기반 웹 피드 | |
US9298747B2 (en) | Deployable, consistent, and extensible computing environment platform | |
JP4456485B2 (ja) | ポータル・サーバにおいてポートレットの集合を管理する方法および装置 | |
US20210286861A1 (en) | User Experience Container Level Identity Federation and Content Security | |
US9003059B2 (en) | Running applications in an online or offline mode based on the availability of the connection to the remote web server | |
JP4473128B2 (ja) | ウェブ・ポータルの関連するポートレットが、同期されたコンテンツ表示のために協働することを可能にする方法および装置 | |
EP2353102B1 (en) | Method and apparatus for managing state information of remote user interface | |
US11102206B2 (en) | Methods and apparatus for establishing shared memory spaces for data access and distribution | |
US9176720B1 (en) | Installation of third-party web applications into a container | |
US20150032731A1 (en) | Information processing apparatus, method of controlling the same, and storage medium | |
US20100306642A1 (en) | Co-browsing (java) scripted html documents | |
JP4066444B2 (ja) | ホームページ自動生成装置および方法 | |
CN111651418B (zh) | 一种文档内容下载方法、装置、计算机设备和存储介质 | |
CN110740118B (zh) | 与合作伙伴站点发起会话的协议 | |
US7809837B2 (en) | User interface for configuring web services for remote portlets | |
CN102004729A (zh) | 一种网站网页的展现方法、***及网站服务器 | |
WO2010098096A1 (ja) | 携帯端末装置、コンテンツ再生装置、ブックマーク管理サーバ、ブックマーク管理システム、ブックマーク管理方法、コンテンツ再生方法、ブックマーク管理サーバの制御方法、制御プログラムおよび記録媒体 | |
JP2004220318A (ja) | 情報処理装置及びこれに用いるプログラム | |
JP2008077614A (ja) | セッション管理プログラム及びセッション管理方法 | |
JP2015046818A (ja) | アプリケーションシステム、携帯端末、サーバコンピュータおよびコンピュータプログラム | |
KR100562357B1 (ko) | 블로그 서비스 제공 시스템 및 블로그 서비스 제공 방법 | |
JPH10307745A (ja) | ドキュメント処理システム | |
JP2001117845A (ja) | 情報提供システム及び情報提供方法、識別情報付加装置及び識別情報付加プログラムを記録したコンピュータ読み取り可能な記録媒体、情報提供装置及び情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体、情報利用端末及び情報利用プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2002342286A (ja) | 電子情報管理システムおよびサーバおよびクライアント |