JP2009508184A - グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法 - Google Patents

グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法 Download PDF

Info

Publication number
JP2009508184A
JP2009508184A JP2008523837A JP2008523837A JP2009508184A JP 2009508184 A JP2009508184 A JP 2009508184A JP 2008523837 A JP2008523837 A JP 2008523837A JP 2008523837 A JP2008523837 A JP 2008523837A JP 2009508184 A JP2009508184 A JP 2009508184A
Authority
JP
Japan
Prior art keywords
server
client
information system
self
block
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
Application number
JP2008523837A
Other languages
English (en)
Inventor
ミケイル ヴァシリエヴィチ ベリャーエフ
Original Assignee
ミケイル ヴァシリエヴィチ ベリャーエフ
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ミケイル ヴァシリエヴィチ ベリャーエフ filed Critical ミケイル ヴァシリエヴィチ ベリャーエフ
Publication of JP2009508184A publication Critical patent/JP2009508184A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Abstract

説明されるのは、サーバコンピュータ及び通信チャネルによって前記サーバと接続される1つ又は複数のクライアントコンピュータで構成される情報システムであって、データの変更及び検索操作は前記サーバコンピュータによって実行され、前記クライアントコンピュータは前記サーバへの前記データ変更及び検索要求を実行し、高機能グラフィカルユーザインターフェイスを表し、クライアントコンピュータごとに動的に作成された自己完結オブジェクトの拡張可能汎用システムを使用することを特徴とする情報システムである。さらに、クライアント−サーバ情報システムのクライアントコンピュータにおいて高機能な動的に作成されたグラフィカルユーザインターフェイスを提供するために、特定のアルゴリズムに従って操作される自己完結オブジェクトの先進システム、つまりイベントハンドラを使用せずに機能するプログラムオブジェクトシステムを使用することを特徴とする方法が提案される。

Description

本発明は、コンピュータネットワークにおけるデータ伝送に関し、分散情報システムにおいても使用されうる。
標準的な用語
情報クライアント−サーバシステム(Information client-server system)とは、1つのサーバコンピュータ(バックコンピュータ)及び1つ又は複数のクライアントコンピュータ(フロントコンピュータ)で構成される分散情報システムを意味し、このシステムにおいて各クライアントは通信チャネルによってサーバと結合される。現在、インターネット環境は、ほとんどの場合、通信チャネルとして使用される。クライアント−サーバシステムの主な機能は、サーバコンピュータによって実行される。情報システムのユーザは、クライアントコンピュータと対話する。
要求(request)とは、通信チャネルを介してクライアントコンピュータからサーバコンピュータに送信される信号シーケンスを意味する。要求信号は、サーバによって実行されるべき操作、及びクライアントによってサーバに期待されるデータの性質を定義する。
応答(response)とは、通信チャネルを介してサーバコンピュータからクライアントコンピュータに送信される信号シーケンスを意味する。応答は、クライアントのためのデータを構成する。
プログラムオブジェクト(program object)とは、コンピュータメモリ内の特定の方法で編成された信号の集合を意味する。プログラムオブジェクトは、オブジェクト指向プログラミングのアルゴリズムに従ってコンピュータ操作中に作成されて使用される。各プログラムオブジェクトは、オブジェクトメソッド(関数及び/又はプロシージャ)の特定のセットを有し、オブジェクトプロパティ値のセットによって特徴付けられる。プログラムオブジェクトは、相互のメソッドを呼び出して、相互に対話する。通常、対話は、イベントハンドラを用いて行われる。
オブジェクトメソッド(object method)とは、コンピュータメモリ内の特定の方法で編成された信号の集合を意味する。メソッドを呼び出す(実行する)ことで、それらの信号を始動させる。メソッドは、メソッドを実行した結果であるデータを返すことができる。
オブジェクトプロパティ(object property)は、あらかじめ定められた1つのタイプのデータを含むオブジェクト特性を意味する。プロパティの記録及び読み取りは、対応するオブジェクトメソッドの呼び出しを通じて実行される。
イベント(event)とは、ユーザのアクション又はコンピュータシステムにおけるその他の任意の変化を意味する。
プログラムオブジェクト構成(program object configuration)とは、このオブジェクトのプロパティの特定の値のセットを意味する。
プログラムオブジェクト記述(program object description)とは、プログラムオブジェクト構成を含むデータを意味する。さまざまなバイナリ又はテキストフォーマットが、プログラムオブジェクト記述に使用されうる。
プログラムオブジェクト記述バージョン(program object description version)とは、オブジェクト構成の変種を区別できるようにする、プログラムオブジェクト記述に関連する追加のデータを意味する。
(プログラム)インターフェイスとは、メソッド及びプロパティの特定のセットを意味する。プログラムインターフェイスをサポートするため、オブジェクトは、このインターフェイスに関連するすべてのメソッド及びプロパティを所有する必要がある。
オブジェクトの振る舞いとは、オブジェクト構成に応じた、システム内のイベントに対するオブジェクトの応答を意味する。プログラムオブジェクトは、当初は何らかの振る舞い、つまりオブジェクト構成に応じてシステム内のイベントに対するあらかじめ定められた応答を備える。
イベントハンドラとは、コンピュータメモリ内の特定の方法で編成された信号の集合であって、コンピュータシステム内の特定のイベントの発生に応答して実行されるものを意味する。イベントハンドラは、プログラムオブジェクトの振る舞いを大部分定義する。これらは、オブジェクトの初期の振る舞いを変更し、この振る舞いを個別化する手段であり、通常はオブジェクト間の対話を提供する。
スクリプトとは、プログラミング言語の1つでプログラムを含むテキストであって、Webページ又は他の文書に組み込まれたテキストを意味する。イベントハンドラは、スクリプトテキストを、対応するイベントハンドラの信号の集合に動的に解釈することにより実行されうる。
Webアプリケーションとは、Webブラウザをクライアントプログラムとして使用する情報クライアント−サーバシステムを意味する。Webアプリケーションクライアント部分のプログラムオブジェクトの振る舞いは、Webページに導入されたスクリプトを使用して割り当てられる。
シンクライアントアーキテクチャとは、この概念に従って、クライアントプログラム(いわゆる「シンクライアント」)がユーザインターフェイス要素のみを反映し、すべてのユーザインターフェイスのイベントがサーバにおいて処理されることを意味する。これは、(クライアント−サーバシステム内の通常の要求及び応答に加えて)追加の通信トラフィックを生じさせる。
キャッシングとは、再使用の目的でクライアントコンピュータの機械可読媒体(ハードドライブ)においてWebページ及びその他の文書を格納し、通信トラフィックを減少させることを意味する。Webアプリケーションにおいて、Webブラウザのキャッシング機能は通常、(不整合な格納データの誤用を招くおそれがある)更新を防ぐことができるので、オフに切り替えられる必要がある。
ハッシングとは、復号化の可能性のない暗号化の変形(一方向暗号化)を意味する。
ユーザ認証とは、ユーザが自身のユーザ権限を従来の名前及びパスワードにより証明する場合に、ユーザをシステムに接続しながら実行される手続きを意味する。
ユーザ認証とは、情報システム操作中にユーザ権限を確認するための手続きを意味する。
本発明の著者により加えられた用語
自己完結オブジェクト(self-sufficient object)とは、操作にイベントハンドラを必要としないプログラムオブジェクトを意味する。自己完結プログラムオブジェクトは、特定のシステムの一環としてのみ十分に機能することができる。
自己完結オブジェクトのシステムとは、特定の方法で編成されたプログラムオブジェクトのシステムであって、それらのオブジェクト間の相互関係がその構成によってのみ定義されているものを意味する。特定の方法で確立された自己完結オブジェクト間の相互関係により、システムは、スクリプトを使用せずに機能する可能性を含む、いかなる種類のイベントハンドラも使用することなく十分に機能することができる。自己完結オブジェクトのシステムの操作を規定とする機能が以下に説明される。
現在、情報クライアント−サーバシステムは、幅広く使用されている。情報クライアント−サーバシステムのユーザである個人は、クライアントコンピュータと直接対話する。ユーザのアクション(たとえば、キーを押す、又はマウスをクリックする)に応答して、クライアントプログラムの制御の下に動作しているクライアントコンピュータは、通信チャネルを介して要求信号をサーバコンピュータに送信する。クライアントプログラムは、クライアントコンピュータにおいてユーザインターフェイスを提供し、ユーザのアクションをサーバへの要求信号に変換する。
サーバコンピュータは、サーバプログラムの制御の下に動作する。要求信号を受信すると、サーバは、要求に従って、機械可読媒体に格納されているデータの一部の変換を実行し、同じ機械可読媒体又は他の機械可読媒体からデータサンプルを導き出して、通信チャネルを介してそれぞれの信号の形態でそれらのデータをクライアントコンピュータに送信する。応答信号を受信すると、クライアントコンピュータは、サーバから受信したデータをユーザに都合のよい形態でユーザに提供し、必要に応じて受信データの一部又は全部をクライアントコンピュータの機械可読媒体に記録する。システムにおける要求信号及び応答信号の交換は、特定の問題を解決するためにユーザが必要とする限り続行する。クライアントの役割は、コンピュータに加えて、クライアントプログラムの制御の下に動作する携帯電話又はその他の通信装置によって実行されうる。
したがって、情報クライアント−サーバシステムが機能するためには、サーバプログラム及びクライアントプログラムという2つのプログラムが必要である。通常、サーバプログラムはデータベースの形態の情報リソースにアクセスすることができ、クライアント−サーバシステムの主要アクティビティを実行する。クライアントプログラムは、ユーザインターフェイスを提供し、サーバへの要求を実行して、作業の小部分を達成する。
多くの情報システムにおいて、Microsoft(登録商標)Internet Explorer、Mozilla、又はOperaなどのプログラムWebブラウザは、クライアントプログラムとして使用される、つまりそれらの情報システムはWebアプリケーションである。あらかじめ定められたWebページのセットをユーザに提供するWebサイトとは対照的に、Webアプリケーションは対話形式で動作し、ユーザ要求に従って動的に作成されたWebページを提供する。Webアプリケーションの長所は、汎用のプログラム(Webブラウザ)がすべてのWebアプリケーションでクライアントとして使用されることにある。Webブラウザは、多くの場合オペレーティングシステムをインストールする際に、クライアントコンピュータに1回インストールされる。するとそれは、ほとんどのさまざまなWebアプリケーションでクライアントプログラムとして使用されうる。それにより、別個のWebアプリケーションごとにカスタマイズされたクライアントプログラムをインストールする必要がなくなる。Webアプリケーションにおいて、情報システム操作の論理及びクライアントに情報を提供する方法は、もっぱらサーバ側によって定義される。したがって、情報を提供するこれらの論理及び方法における変更が、クライアントプログラムの変更を必要とすることはほとんどない。
しかし、Webアプリケーションの可能性は、Webブラウザによって提供されるユーザインターフェイスの可能性がいくぶん劣っているために制限されている。近年、XForms仕様(XForms 1.0 (W3C Recommendation) http://www.w3.org/TR/xforms/)及びWebForms 2.0(WebForms 2.0 (Working Draft) http://whatwg.org/specs/web-forms/current-work/)に基づいてWebアプリケーションのユーザインターフェイスを改善する試みが行われてきた。それにもかかわらず、新しい仕様は、Webアプリケーションのユーザインターフェイスと、Windows(登録商標)、MacOS、XWindow、Java(登録商標)などのシステムによって提供される改良されたグラフィカルユーザインターフェイスとを隔てるギャップの克服を(は)可能にしていない。したがって、分散情報システムが高機能グラフィカルユーザインターフェイスを必要とするような場合、開発者は、所定のクライアントプラットフォームにネイティブなカスタマイズクライアントプログラム、つまり特定のクライアントプログラムのアプリケーションプログラミングインターフェイスに基づくプログラムを作成することを余儀なくされる。この場合、すべての情報システムには、各自のクライアントプログラムが必要となり、情報システム操作の論理又はユーザに情報を提供する方法におけるあらゆる変更には、クライアントプログラムの更新(クライアントコンピュータにおけるプログラムの再インストール)が必要となる。新しいバージョンのクライアントプログラムの送信及び再インストールは、結果として追加の通信トラフィックをもたらし、ユーザに甚大な不便をかけ、追加の財務費用を生じることになる。
XForms 1.0 (W3C Recommendation) http://www.w3.org/TR/xforms/ WebForms 2.0 (Working Draft) http://whatwg.org/specs/web-forms/current-work/
本発明の目的は、情報を表すビジネス論理及び方法が完全にサーバ側にあり、クライアント部分は個別のアプリケーションごとに再インストールを必要としない汎用プログラムによって表される、高機能グラフィカルユーザインターフェイスを備える情報クライアント−サーバシステムを開発するための技術(システム及び方法)を提供することである。このようにして、グラフィカルユーザインターフェイスの操作、つまりユーザインターフェイスオブジェクトのユーザとの十分な対話及び相互の間の十分な対話が、サーバにアクセスすることなくクライアントコンピュータにおいて独占的に行われる必要がある。本発明の技術的効果は、確立するパケット及び更新バージョンのクライアントプログラムを送信することにより生じる追加の通信トラフィックを排除することにある。
すでに知られているのは、WebページにActiveX又はJava(登録商標)アプレットのコンポーネントを組み込むことにより、Webアプリケーションの高機能グラフィカルユーザインターフェイスを提供する方法である[Internet and World Wide Web. How to Program, 3rd Edition. By Harvey M. Deitel, Paul J. Deitel, Andrew B. Goldberg. Published Nov 24, 2003 by Prentice Hall. 1296 pages]。しかし、これらの方法は、既存の組み込みコンポーネントが汎用ではなく(Webアプリケーションごとにカスタマイズされたコンポーネントが必要とされ)、情報システム操作の論理を更新するか又は情報を表す方法を変更することが求められるため、目的を達成しない。同様のことが、Java(登録商標)アプレットを改良することを目的とする新しいJava(登録商標)技術のWeb Start [Java(登録商標) Web Start Technology, http://java.sun.com/products/javawestart/]についても言える。
すでに知られているのは、シンクライアントアーキテクチャにおける情報クライアント−サーバシステムの実施形態である(米国特許出願公開第2002/0130900号明細書、米国特許出願公開第2003/0135825号)。これらの米国特許出願によれば、ユーザインターフェイスのオブジェクトは、サーバから取得されるExtensible Markup Language (XML)の記述によって動的に作成される。そのため、クライアントプログラムの汎用特性による通信トラフィックの低減が可能になる。しかし、追加の通信トラフィックは、サーバにおいてクライアントイベントを処理するために、この利点を無効にしてしまう。
本発明の最も近い類似物は、国際公開第2004/019160号パンフレットである。この出願は、マークアップ言語(XML、XSL、DHTML、XHTML、HTML)のいずれかでサーバから取得される記述に基づいてクライアントコンピュータにおいてユーザインターフェイスのプログラムオブジェクトを動的に作成することを提案する。ユーザインターフェイスのプログラムオブジェクトの振る舞いの個別化は、Java(登録商標)Script言語のスクリプトを使用して達成される。そのようなシステムは拡張性特性を有することができる、つまり新しいタイプのオブジェクトが必要に応じてシステムに追加されうると考えられている。しかし、スクリプトを機能させるために、オブジェクトモデル、つまりあらかじめ定められたオブジェクトタイプのセット(オブジェクト指向プログラミングでは、クラス)を割り当てることが通常は必要になり、これは拡張性の原則と相反する。これらの提案は、前述のような矛盾と、スクリプトサポートの汎用機能を実行する複雑さのために、まだ広範に行われていない。
クライアント側において、動的に作成された自己完結プログラムオブジェクトの汎用システムを使用して、特定のアルゴリズムに従って情報クライアント−サーバシステムを管理することにより、一連のタスクが本発明において解決される。本発明において、及び米国特許出願公開第2002/0130900号明細書、米国特許出願公開第2003/0135825号明細書、及び国際公開第2004/019160号パンフレットにおいて、クライアントコンピュータにおけるプログラムオブジェクトは、サーバから取得されたその記述によって動的に作成されるが、本発明では、ユーザインターフェイスのオブジェクトはWebブラウザには組み込まれず、汎用クライアントプログラムの一部として動作する。本発明は、米国特許出願公開第2002/0130900号明細書及び米国特許出願公開第2003/0135825号明細書とは対照的に、ユーザインターフェイス操作のためにサーバにアクセスする工程を必要とはしない。国際公開第2004/019160号パンフレットとは対照的に、本発明は、システム操作のためのスクリプト機能をサポートする工程を必要とはしない。本発明における自己完結プログラムオブジェクトのシステムの使用は、スクリプトサポートの汎用機能を実行する複雑さを排除する。自己完結オブジェクトを記述するために使用されているフォーマットは、本発明を実行するにあたってあまり重要ではない。
イベントハンドラによって振る舞いが著しく定義される一般に使用されるプログラムオブジェクトとは対照的に、自己完結プログラムオブジェクトの振る舞いは、その構成を指定することによって、つまりこのオブジェクトのプロパティの値セットによって完全に定義される。システム内の自己完結プログラムオブジェクトのイベント応答はオブジェクト構成に依存するが、各々特定の構成において、この応答はあらかじめ定められ、イベントハンドラを使用して変更することはできない。
振る舞いの変更が前提とされない場合、いかにして、非常に異なるオブジェクト間の十分な対話が確保されうるのであろうか。その目的のために、本発明におけるクライアント側のオブジェクトは、自己完結プログラムオブジェクトのシステムにクラスタ化され、そのシステム操作がクライアント−サーバシステムのフレームワーク内のオブジェクト対話の統一された特性を考慮に入れる。
システムにおけるすべての自己完結オブジェクトは、複数のカテゴリに分類される。1つ又は別のカテゴリに属するオブジェクトは、システムにおけるその役割及び振る舞いを定義する。オブジェクトの以下のカテゴリが、自己完結オブジェクトのシステムにおいて指定される。
コンテナは、自己完結オブジェクトをグループにまとめることを目的とする。これらのオブジェクトは、ウィンドウフォーム及びさまざまなグループ分けパネルとしてユーザインターフェイスに表される。コンテナオブジェクトの宛先は、サーバから取得されたデータをオブジェクトに送信するため、又はサーバへの要求を形成するデータをオブジェクトから受信するために、このコンテナによってまとめられるすべての自己完結オブジェクトにアクセスできることを前提としている。コンテナ記述は、その他のコンテナを含むそこに関連するすべてのオブジェクトの記述を含む。どの自己完結オブジェクト(ウィンドウフォームを除く)も、何らかのコンテナに含まれる。ウィンドウフォームは、最上位のコンテナとして独立して存在する。
イニシエータは、ユーザアクション(キーを押す、又はマウスをクリックする)に基づいてサーバへの要求を開始することができるボタン、メニュー項目、及びその他のオブジェクトである。
受信側は、受信すること、及び場合によってはサーバから受信したデータを表示することができるラベル、テキスト入力制御、リスト、グリッド、図、及びその他のオブジェクトである。
要求側は、サーバ要求を形成するためにそこに含まれているデータを提供することができる単一行テキスト入力制御、テキスト領域、リスト、グリッド、及びその他のオブジェクトである。
装飾は、ユーザと対話することができないピクチャ及びその他のグラフィカル設計要素である。装飾は情報システム操作に影響を及ぼすことはなく、その存在又はその不在は単にウィンドウフォームのレイアウトを定義する。
ブローカは、その他のカテゴリのオブジェクト間のリンクである特殊な自己完結オブジェクトである。
一部の自己完結オブジェクトは、たとえば同時に要求側及び受信側になるなど、複数のカテゴリに同時に分類されることもある。
一部のカテゴリに属することは、そのカテゴリに義務付けられている属性の可用性、つまり対応するインターフェイスのサポートを必要とする。
自己完結オブジェクトの示されているカテゴリのインターフェイスメソッド及びプロパティの最小セットを以下に一覧する。
Initiatorインターフェイスにおいて、
Brokerプロパティは、このイニシエータを使用してどのブローカが開始されるかを定義する。
Brokerインターフェイスにおいて、
Containerプロパティは、要求の形成に関与するコンテナを定義する。
RequestTypeプロパティは、要求タイプを定義する。システム操作に最小十分なセットは、新しいコンテナ要求、既存コンテナへのデータ要求、サーバからその後データを受信してサーバにおいてデータを変更する要求、サーバからその後データを受信せずにサーバにおいてデータを変更する要求、ユーザを認証するための複数の要求の変種、などのタイプの要求を含む。
ContainerNameプロパティは、どのコンテナが要求されるか(新しいコンテナが要求される場合)、又はどのコンテナにデータが要求されるかを定義する。
ServerAddressプロパティは、情報システムを実行するサーバのネットワークアドレスを構成する。
Goメソッドはブローカを始動させる。
Requesterインターフェイスにおいて、
ReceiveRequestメソッドは、所定の要求側と一致する要求部分を返す。
Recipientインターフェイスにおいて、
SetDataメソッドは、それぞれのデータを特定の受信側に送信する。
Containerインターフェイスにおいて、
FormRequestメソッドは、完全な要求をサーバに返す。このメソッドを呼び出す場合、コンテナはそれに関連するすべてのオブジェクトを検索し、要求側ごとにReceiveRequestメソッドを呼び出すので、受信された部分から完全な要求を形成する。
DistributeDataメソッドは、コンテナに関連するすべてのオブジェクト受信側を検索し、オブジェクトごとにSetDataメソッドを呼び出し、それによりそれぞれデータをすべての特定の受信側に送信する。
Decorationインターフェイスは要求されない。
すべての自己完結オブジェクトは、値がオブジェクトを識別するNameプロパティを有する必要がある。
新しいコンテナが要求される場合、通信トラフィックのさらなる減少をもたらす特殊キャッシング機能を使用することができる。一覧されるメソッド及びプロパティのセットは、要求及び応答の完全又は選択的暗号化によりデータを保護し、暗号化フォーム(以下を参照)でオブジェクトのキャッシュされた記述を格納するために必要なプロパティを含んではいない。
図1において、データの変更及び受信を要求する場合(図2のブロック図)のクライアント及びサーバの対話をたどる。
凡例:1−サーバ、2−クライアント、3−クライアントプログラム、4−要求形成段階、5−応答処理段階
操作のシーケンス:
ユーザ6はイニシエータ7を始動させる(ボタン、メニュー項目など)(ブロック21)。
イニシエータ7はブローカ8のGoメソッドを呼び出す(ブロック22)。
ブローカ8はコンテナ9のFormRequestメソッドを呼び出す(ブロック23)。
コンテナ9は、各々にReceiveRequestメソッドを呼び出すことにより(ブロック24)それに関連する自己完結オブジェクト要求側に問い合わせを行い(ループ、ブロック24〜26)、要求側と一致する部分から要求を形成し(ブロック25)、形成された要求をブローカ8に返す(ブロック27)。(ブロック26は、すべての要求側が処理されたかどうか、状態を確認する)。
ブローカ8は、ServerAddressのサーバプログラム10に要求を送信する(ブロック28)。
サーバプログラム10は、データベース12内のデータを変更し(ブロック29)、データベース12からデータを要求して受信する(ブロック30)。
サーバプログラム10は、必要なフォーマットにデータを変換し(ブロック31)、それらをブローカ8に送信する(ブロック32)。
ブローカ8は、DistributeDataメソッドを呼び出すことにより、受信したデータをすでに存在するコンテナ13に送信する(コンテナ13は最初のコンテナ9と同じであってもよい)(ブロック33)。
コンテナ13は、受信側ごとにSetDataメソッドを呼び出すことにより(ブロック34)、それに関連する自己完結オブジェクト受信側間で受信データを配信する(ループ、ブロック34〜35)。(ブロック35は、すべての受信側が処理されたかどうか、状態を確認する)。
図3において、(キャッシュせずに)新しいコンテナを要求する場合(図4のブロック図)のクライアント及びサーバの対話をたどる。
操作のシーケンス:
ユーザ6はイニシエータ7を始動させる(ボタン、メニュー項目などにより)(ブロック41)。
イニシエータ7はブローカ8のGoメソッドを呼び出す(ブロック42)。
ブローカ8はコンテナ9のFormRequestメソッドを呼び出す(ブロック43)。
コンテナ9は、各々にReceiveRequestメソッドを呼び出すことにより(ブロック44)それに関連する自己完結オブジェクト要求側に問い合わせを行い(ループ、ブロック44〜46)、要求側と一致する部分から要求を形成し(ブロック45)、形成された要求をブローカ8に返す(ブロック47)。(ブロック46は、すべての要求側が処理されたかどうか、状態を確認する)。
ブローカ8は、ServerAddressのサーバプログラム10に要求を送信する(ブロック48)。
サーバプログラム10は、サーバ機械可読媒体11に位置する新しいコンテナ記述を探し出して読み込む(ブロック49)。
サーバプログラム10は、新しいコンテナ記述をブローカ8に送信する(ブロック50)。
ブローカ8は、受信した記述に従って新しいコンテナ14を作成する(ブロック51)。
ブローカ8は、今度は新しいコンテナ14のデータを受信するために、第2の要求をサーバに送信する(ブロック52)。
サーバプログラム10は、データベース12からデータを要求して受信する(ブロック53)。
サーバプログラム10は、必要なフォーマットにデータを縮小し、それらをブローカ8に送信する(ブロック54)。
ブローカ8は、DistributeDataメソッドを呼び出すことにより、すでに存在する新しいコンテナ14に受信したデータを送信する(ブロック55)。
コンテナ14は、受信側ごとにSetDataメソッドを呼び出すことにより(ブロック56)、それに関連する自己完結オブジェクト受信側間で受信データを配信する(ループ、ブロック56〜57)。(ブロック57は、すべての受信側が処理されたかどうか、状態を確認する)。
図5において、新しいコンテナを要求する場合(図6のブロック図)のキャッシング機能をたどる。
最初、操作は、コンテナ9からのブローカ8によって形成された要求を受信するまで、図3(図4のブロック41〜47)に従って実行される。さらに、以下の操作が実行される。
ブローカ8は、クライアント機械可読媒体15において新しいコンテナの記述及びこの記述のバージョンを検索する(ブロック61)。記述及びそのバージョンがクライアントコンピュータに存在する場合(ブロック62)、ブローカ8は記述のバージョンを要求に含める(ブロック63)。
ブローカ8は、ServerAddressのサーバプログラム10に要求を送信する(ブロック64)。
サーバプログラム10は、サーバ機械可読媒体11に位置する新しいコンテナ記述及び記述バージョンを探し出して読み込む(ブロック65)。
サーバプログラム10は、機械可読媒体のクライアント15及びサーバ11からの記述バージョンを比較する(ブロック66)。記述バージョンに相異がない場合、サーバプログラムはそれぞれフラグを応答に含める(ブロック67)。この場合、記述及びそのバージョンは、クライアントコンピュータに送信されない。バージョンが異なる場合、又は記述バージョンが要求にない場合、サーバプログラムは記述及びそのバージョンを応答に含める(ブロック68)。
サーバプログラム10は、応答をブローカ8に送信する(ブロック69)。
ブローカ8は応答を分析する。バージョン一致のフラグがない場合(ブロック70)、ブローカは、受信した記述及びそのバージョンをクライアント機械可読媒体15に格納し、必要に応じて既存の記述及びそのバージョンを置き換える(ブロック71)。それ以外の場合、すでに存在する記述が使用される(ブロック72)。
ブローカ8は、(おそらくは受信したばかりの)既存の記述に従って新しいコンテナ14を作成する(ブロック73)。
さらに、新しいコンテナのデータを受信するために、図3に従って操作が実行される(図4のブロック52〜57)。
情報システム操作論理又はデータ表現メソッドにおいて、次の操作セッションまで変更が発生しない場合、コンテナ記述はクライアント機械可読媒体から読み取られる。記述が変更されていないコンテナ記述のバージョン及びフラグのみが、通信チャネルを介して送信される。情報システム操作論理又はデータ表現メソッドを修正する必要が生じるので、サーバプログラム操作の修正に加えて、サーバ機械可読媒体に格納されているそれぞれのコンテナの記述を修正してそれらの記述のバージョンを変更することで十分である。この場合、サーバ機械可読媒体に格納されているそれぞれのコンテナの記述は、次の操作セッションにおいて更新される。したがって、キャッシング機能は、一方で、情報システム操作論理又はデータ表現メソッドを即座に更新できるようにし、またもう一方では、必要な場合に限り各コンテナの記述を更新することによって通信トラフィックを軽減する。
キャッシング機能をコンテナ記述に適用する可能性及び必要性は、これらの記述が多くの操作セッション中に不変でありえるということによってもたらされる。サーバから自己完結オブジェクト受信側へと至るデータの場合、1つの操作セッション中であってもそれらのデータが変化する可能性があるので、キャッシングは適用されない。
前述のように、Webアプリケーションの正しい操作のために、Webブラウザに存在するキャッシング機能を通常オフに切り替える必要がある。これは、Webアプリケーションに使用されるプロトコル及びHTMLマークアップ言語が、頻繁に変化するデータと稀にしか変化しないデータとの区別を可能にしていないことに関連する。したがって、Webブラウザのキャッシング機能は、データの更新を妨げ、結果として不整合な格納データの誤用を招く可能性もある。Webアプリケーションのキャッシング機能をオフに切り替えることで、すべての要求のWebページの完全な再ロードがもたらされる。これは、Webアプリケーションに追加の(相当数かつ根拠のない)通信トラフィックを形成する。
図1〜図6は、自己完結オブジェクト内の対話を示す。2つのタイプの要求について検討した。その他のタイプの要求を実行するアルゴリズムには、検討されたアルゴリズムとは根本的な区別はない。システム操作では、最大限に「要求−応答」モードを使用するが、これはいかなるクライアント−サーバシステムにも標準的である。このモードにおけるシステム操作は、汎用操作シーケンスを形成できるようにする。検討された操作シーケンスが、スクリプトに基づくイベントハンドラを含むいかなるイベントハンドラにも関与することなく実行されうることに留意することは重要である。
要求の実行及び応答の受信への良好な関与のためには、自己完結オブジェクトのシステムを正しく構成すること、つまりそれらのプロパティの値を正しく設定することで十分である。特に、図1の要求の場合、一連のプロパティは、以下のオブジェクトで正しく設定される必要がある。
イニシエータ7において、Brokerプロパティは要求に関与しているブローカ8を指し示す必要がある。
ブローカ8において、Containerプロパティは要求を形成するコンテナ9を指し示す必要がある。RequestTypeプロパティは、要求タイプと一致する必要がある。ContainerNameプロパティは、データが要求されるコンテナ14の名前と一致する必要がある。ServerAddressプロパティは、それぞれのデータを含む必要がある。
コンテナ9は、正しく設定された構成で要求を形成するために必要なすべてのオブジェクトを含む必要がある。
構成するために必要なすべてのデータは、コンテナ9の記述に含まれうる(この場合、イニシエータ7及びブローカ8はいずれもコンテナ9に含まれる)。オブジェクトの構成は、オブジェクトを含むコンテナの記述に基づいて作成された直後、それを作成したブローカによって実行される。
システムに関与するために、自己完結オブジェクトはこのオブジェクトのカテゴリと一致するインターフェイスをサポートすることで必要かつ十分である。この条件の下で、提案されるシステムは、新しい自己完結オブジェクトによって容易に付加されうる。すなわち、システムは拡張可能である。システムを補足する自己完結オブジェクトは、クライアントコンピュータの機械可読媒体においてダイナミックリンクライブラリのファイルに配置されうる。クライアントコンピュータの機械可読媒体においてダイナミックリンクライブラリを記録した後、そのライブラリに含まれる自己完結オブジェクトは、さまざまな情報システムに使用されうる。したがって、自己完結オブジェクトシステムの拡張には、通信チャネルを介して小さいダイナミックリンクライブラリを一度送信する必要があるだけである。
これ以降、ユーザとの自己完結オブジェクトシステムの対話について検討する。本対話の技法、及びシステム内のそれらの対話の技法は、これらの自己完結オブジェクトの構成によって完全に定義される。自己完結オブジェクトは、情報システムのユーザによってグラフィックユーザインターフェイスの要素として認識される。実質上、これらは、Windows(登録商標)、MacOS、XWindow、又はJava(登録商標)など、クライアントプラットフォームに標準的な高機能グラフィカルユーザインターフェイスを提供する必要がある。したがって、これらは、特定のクライアントプラットフォームのアプリケーションプログラミングインターフェイスに基づいて作成される。ユーザインターフェイスオブジェクトの適切な振る舞いは以下の事項を前提とする。
オブジェクトの現在のユースケースと一致する必要のある情報入力制限のセット
各自の不適切なアクションをユーザに警告すること
オブジェクトの相互の一貫性を確認すること
単に自己完結オブジェクト構成を調整することにより、いかにしてこれらすべての機能がイベントハンドラを使用せずに実行されうるかを説明する。実施例を検討する。図7は、クレジットカードによる支払いの実行のために設計されたウィンドウフォーム101の概略を示す(簡単にするために、すべてのフィールドは示されていない)。ドロップダウンリスト102は、たとえば、VISA、American Expressなど、サポートされるクレジットカードのリストを備える特殊オブジェクトである。入力フィールド103〜107は、クレジットカードアカウント用の103、クレジットカード有効期限の月及び年用の104及び105、支払い金額用の106、カード所有者名用の107に、それぞれの英数字データを入力するために設計されている。オブジェクト102〜107は要求側である。ボタン108及び109はそれぞれ、要求をサーバに送信する操作、及びウィンドウフォームを閉じる操作を開始する。図7は、コンテナ101には存在するが、ユーザには見えないブローカは示していない。ブローカのContainerプロパティは、ウィンドウフォーム101を指し示す必要がある。ボタン108のBrokerプロパティは、既存のブローカを指し示す必要がある。
情報入力制限が実行されうる方法を説明する。入力フィールドの制限は、ContentType及びMaxLengthプロパティに関連付けられうる。MaxLengthプロパティは、入力シンボルの可能な最大数を定義する。ContentTypeプロパティは、入力コントロールに入力されうるシンボルを定義する。したがって、入力フィールド103〜105については、ContentTypeプロパティは整数値に設定される必要がある。このタイプのコンテンツは、デジタルシンボルの入力のみを可能にする。入力フィールド106については、ContentTypeプロパティは通貨値に設定される必要がある。このタイプのコンテンツは、デジタルシンボル及び小数シンボル(地域の調整に応じて小数点又はコンマ)の入力のみを可能にする。その他の入力フィールドは、同様に調整される。シンボル入力プロセス中に、オブジェクト(入力フィールド)は、ContentTypeプロパティ値で入力されているシンボルの対応関係を確認し、許容されないシンボルを無視する。入力確認は、オブジェクトに対して外部にあるイベントハンドラではなく、オブジェクト自身によって行われる。
ユーザの不適切なアクションに対する警告が実行されうる方法を示す(図8のブロック図)。検討中の事例において、ユーザの典型的な不適切なアクションは、入力フィールドに記入しないこと、及びクレジットカードの種類を選択しないことである。ユーザがボタン108を押すと、以下の順序で操作が実行される。
ボタン108は、ブローカを始動させる(ブローカのGoメソッドを呼び出す)(ブロック81)。
ブローカはコンテナ101のFormRequestメソッドを呼び出す(Containerプロパティによって指し示される)(ブロック82)。
コンテナ101は、自己完結オブジェクト、それに関連する要求側102〜107を検索し(ループ、ブロック83〜86)、各々にReceiveRequestメソッドを呼び出す(ブロック83)。(ブロック86は、すべての要求側が処理されたかどうかを確認する)。
ドロップダウンリスト102のReceiveRequestメソッドを呼び出すとき、ユーザアクションの妥当性確認が行われる(ブロック84)。この場合、確認は、ユーザがクレジットカードの種類を選択したかどうかについて実行される。ユーザがクレジットカードの種類を選択してない場合、これは不適切なアクションであるが、プログラム操作は中断され、ドロップダウンリストが「The credit card type has not been selected(クレジットカードの種類が選択されていません)」というテキストをユーザに表示するメッセージボックス(ブロック85)を開く。
入力フィールド103〜107の各々にReceiveRequestメソッドを呼び出すとき、各フィールドは各自ユーザアクションの妥当性を確認する(ブロック84)。入力フィールドの場合、これは、このフィールドに記入されているかどうかを確認することである。ユーザがコントロール103に記入してない場合、これは不適切なアクションであるが、プログラム操作は中断され、入力フィールド103が「The field‘Credit card number'has not been filled(‘クレジットカード番号’のフィールドが記入されていません)」というテキストをユーザに表示するメッセージボックス(ブロック85)を開く。(テキスト‘Credit card number(クレジットカード番号)’は、入力コントロール103のプロパティFieldNameに含まれる必要がある)。
すべてのフィールドが記入された場合、新しいコンテナ、支払いを実行した結果を伴うウィンドウフォームを受信する操作が実行される(ブロック47〜57)。
プログラム操作が停止するごとに、ユーザは、必要な修正を行ってからボタン108を再度押す必要がある。不適切なユーザアクションの制御及びそれに関する報告は、オブジェクトに対して外部にあるイベントハンドラではなく、オブジェクト自身によって行われる。
自己完結オブジェクトの相互に合意した振る舞いが実行されうる方法を示す。検討中の事例において(図7)、クレジットカード番号の桁数(入力コントロール103)は、ドロップダウンリスト102で選択されたクレジットカードの種類によって決まる。したがって、たとえば、VISAクレジットカードの番号は13〜16桁で構成され、American Expressクレジットカードの番号は15桁で構成され、Dinners Clubクレジットカードの番号は14桁で構成される。さらに、クレジットカードの正しい番号は、特定のカードの種類ごとに固有の規則に従っている。したがって、オブジェクト102及び103だけは一貫して操作する必要がある。この問題を解決するため、クレジットカード番号の入力フィールドは、リスト102を指し示すCreditCardListプロパティを有する必要がある。この場合、入力中に、許容可能な入力桁数は、リスト102で選択されているクレジットカードの種類と一致させることができ、コントロール103にReceiveRequestメソッドを呼び出す場合、入力の番号がそれぞれのアルゴリズムに従ってクレジットカードの種類に適合するかどうかの確認を行うことが可能である。この場合、入力の番号がクレジットカードの種類に適合しないとき、ユーザはそれぞれのメッセージで警告を受け取ることができる。この操作が、イベントハンドラではなく、オブジェクト自身によって行われることが重要である。
このように、イベントハンドラを使用することなく、ユーザインターフェイスオブジェクトの適切な振る舞いがどのように提供されうるかを示してきた。
前述の操作シーケンスは、本質的に、情報クライアント−サーバシステムの本来の操作プロトコルの基礎を成すが、これは特定の形式的な特徴付け後に考案されうる。このプロトコルは、TCP/IP、HTTP、HTTPS、SOAPなどの既知のネットワークプロトコル[Internet and World Wide Web. How to Program, 3rd Edition. By Harvey M. Deitel, Paul J. Deitel, Andrew B. Goldberg. Published Nov 24, 2003 by Prentice Hall. 1296 pages]及び、たとえばモバイルネットワークのデータ転送のプロトコルなど、他のプロトコルを介して実行されうる。基本ネットワークプロトコルの選択(に)は、根本的な意味合いはなく、実装機能のみに影響を及ぼす。高水準プロトコル(たとえば、TCP/IPに比較してHTTP、又はHTTPに比較してSOAP)を選択することは、実行のプロセスを簡略化させることができる。一方、低水準プロトコルを選択することで、送信データパケットをよりコンパクトにし、通信チャネル経由で転送されるデータ量を減少させることができる。
ユーザ認証及び許可に関連する問題について簡単に検討する。以下の3つのレベルの認証を区別する。
情報システムが誰にもフリーアクセスを許し、認証が要求されない、最も簡単な場合は、ゼロレベルに関連する。この場合、ログイン要求はユーザのデータを満足することはない。
クライアント及びサーバ通信がセキュリティ接続を介して実行される(たとえば、HTTPSプロトコル[3]が基本として選択されている)場合、ユーザの名前及びパスワードは通信チャネルを介して認証要求でサーバに直接送信されうる。この場合、認証には1つの要求で十分である(第1のレベル)。
セキュリティの低い状態での接続が使用される場合、オープン又はキャッシュフォームでも通信チャネルを介してパスワードを送信することは不可能である。この場合、認証には、2つの要求が必要とされ(第2のレベル)、ダイジェスト認証又はKerberosプロトコル[Hacking Exposed Web Applications. By Joel Scambray, Mile Shema, Caleb Sima, Publisher: McGraw-Hill Osborne Media; 1 edition (June 19, 2002)]の場合と同様に、2つの工程で行われうる。
いずれの場合においても、正常な認証とは、一意のセッション識別子をユーザに割り当てることである。ゼロの認証レベルにおいて、セッション識別子は、名前及びパスワードを確認することなくユーザに割り当てられる。情報システムのさらなる操作中、セッション識別子は、受信データ及びコンテナのすべての要求に含められ、ユーザ認証は要求ごとに実行される。
データ暗号化のないプロトコル、たとえばTCP/IP又はHTTPが基本ネットワークプロトコルとして使用される場合、要求及び応答の完全又は選択的暗号化の形態のデータ保護は、当該のシステムに直接組み込まれうる。これには、Requester、Recipient、及びContainerインターフェイスが以下のプロパティを含むことが必要になる。
Requesterインターフェイスにおいて、
EncryptRequestプロパティフラグは、この要求側と一致する要求部分が暗号化される必要がある場合に設定される。
Recipientインターフェイスにおいて、
DecryptResponseプロパティフラグは、この受信側と一致する応答部分が復号化される必要がある場合に設定される。
Containerインターフェイスにおいて、
EncryptCompleteRequestプロパティフラグは、完全要求が暗号化される必要がある場合に設定される。
DecryptCompleteResponseプロパティフラグは、完全応答が復号化される必要がある場合に設定される。
暗号化アルゴリズムは、ダイナミックリンクライブラリの形式で実行されうる。さまざまなアルゴリズムが、完全及び/又は部分要求暗号化及び応答復号化に使用されうる。したがって、最大4つの異なるアルゴリズムが同時に使用されうる。
要求を形成する間に完全及び/又は部分暗号化が行われうる方法を示す。(図9のブロック図)。FormRequestメソッドを呼び出すと(ブロック121)、コンテナは、各々にReceiveRequestメソッドを呼び出すことにより(ブロック122)自己完結オブジェクト、それに関連する要求側(ループ、ブロック122〜126)に問い合わせを行う。EncryptRequestプロパティが要求側で設定されている場合(ブロック123)、コンテナは、ダイナミックリンクライブラリを使用してこの要求部分を暗号化し(ブロック124)、このライブラリを暗号化形式で完全要求に含める(ブロック125)。ブロック126は、すべての要求側が処理されたかどうかを確認する。EncryptCompleteRequestプロパティがコンテナで設定されている場合(ブロック127)、形成された要求は、サーバに送信される前に(ブロック129)暗号化される(ブロック128)。
サーバから応答を受信する際に完全及び/又は部分復号化が行われうる方法を示す(図10のブロック図)。DistributeDataメソッドを呼び出すとき(ブロック141)、DecryptCompleteResponseプロパティがコンテナで設定されている場合(ブロック142)、コンテナは、ダイナミックリンクライブラリを使用してサーバから受信された応答を復号化する(ブロック143)。コンテナ14は、受信側ごとにSetDataメソッドを呼び出すことにより(ブロック144)、自己完結オブジェクト、及びそれに関連する受信側間で受信データを配信する(ループ、ブロック144〜148)。DecryptResponseプロパティが特定の受信側で設定されている場合(ブロック145)、コンテナは、Set-Dataメソッドを呼び出す前に(ブロック147)ダイナミックリンクライブラリを使用してこの受信側向けのデータを復号化する(ブロック146)。ブロック148は、すべての受信側が処理されたかどうかを確認する。
暗号鍵は、Kerberosプロトコル[Hacking Exposed Web Applications. By Joel Scambray, Mile Shema, Caleb Sima, Publisher: McGraw-Hill Osborne Media; 1 edition (June 19, 2002)]に従ってユーザを認証するときに、サーバから受信されうる。これらの鍵は、1つの操作セッション中に操作する。
コンテナ記述を備えるデータの暗号化は、同様に編成されうる。この場合、コンテナ記述は通信チャネルを介して送信され、暗号化形式でクライアント機械可読媒体に格納される必要がある。記述を復号化する責任は、ブローカに課せられうる。復号化の必要は、ブローカのDecryptContainerDescriptionプロパティを設定することにより示されうる。コンテナ記述は複数の操作セッション中にクライアント機械可読媒体から読み取ることができるので、セッション鍵はコンテナ記述の復号化には使用できない。ユーザパスワードは、直接又はハッシングフォームのいずれでも、コンテナ記述を復号化する鍵として使用されうる。
自己完結プログラムオブジェクトのシステムに基づいて汎用クライアントプログラムの制御の下でのクライアントコンピュータの操作を検討する。
汎用クライアントプログラムは、大多数の実際的な情報システムの要件を満たすことができるように、自己完結プログラムオブジェクトのリッチセットを含む必要がある。オブジェクトをシステムに含めることは、そのようなタイプのオブジェクトがそれらの記述に関して作成され構成されうるということである。自己完結オブジェクトの標準セットが不十分であるような少数の情報システムは、ダイナミックリンクライブラリに含まれている追加のオブジェクトによって補充されうる。
特定のアプリケーションの操作を開始するため、クライアントプログラムは以下のデータを備えるのに十分である。
アプリケーションサーバのネットワークアドレス
所定のアプリケーションにおいて実行するユーザ認証方式
第1のコンテナ、つまりユーザ認証の直後に要求されるコンテナの名前
(必要に応じて)システムを補足する自己完結オブジェクトを有するダイナミックリンクライブラリのリスト
(必要に応じて)要求及び応答の完全又は部分暗号化のためのプログラムコードを含むダイナミックリンクライブラリのリスト
これらのデータは、クライアント機械可読媒体でアプリケーションの初期化ファイルに格納されうる。汎用クライアントプログラムの制御の下でのクライアントコンピュータの操作セッションの始めの操作シーケンスを検討する(図11のブロック図)。
アプリケーションサーバアドレス上のデータ、認証方式、第1の要求されたコンテナの名前、及びダイナミックリンクライブラリのファイル名は、クライアントコンピュータの機械可読媒体にある初期化ファイルから読み出される(ブロック161)。
ダイナミックリンクライブラリのファイル名のリストが空ではない場合(ブロック162)、追加の自己完結オブジェクトを有するダイナミックリンクライブラリ及び暗号化アルゴリズム実行を有するライブラリはロードされる(ブロック163)。
認証要求を実行するために、ブローカ−オブジェクトが作成され、構成される(ブロック164)。
ユーザの認証方式がユーザ名及びパスワードの入力を必要とする場合(第1及び第2のレベル)(ブロック165)、名前及びパスワードを入力するフィールドとシステム入力ボタンを含む特殊ウィンドウフォームが作成されて、モニタ画面に表示される(ブロック166)。
ゼロレベルの認証が使用される場合、システムへの入力要求は、ユーザのアクションなしで実行される(ブロック167)。
第1又は第2のレベルの認証が使用される場合、認証は、それぞれ1つ又は2つの要求を使用するユーザによって名前及びパスワードが入力されシステム入力ボタンが押された後に実行される(ブロック168)。
正常な認証の場合(ブロック169)、既存のブローカは、既知の名前に従って、作成される第1のコンテナ(第1のウィンドウフォーム)を要求する(ブロック170)。
ブローカは、受信した記述に従って第1のウィンドウ名を作成して構成する(ブロック171)。
情報システムのさらなる操作は、第1のウィンドウフォームの内容によって定義される方法に従う。このフォームにおいて、その他のウィンドウフォームを要求するブローカが存在する必要がある。したがって、情報システムのさらなる操作の論理は、サーバによって(特に、サーバから受信された第1のウィンドウフォームの記述を通じて)完全に定義される(ブロック172)。
ユーザの情報システムの操作は、ユーザによって第1のウィンドウフォームが閉じられた後に終了する(ブロック173)。
以上、自己完結プログラムオブジェクトのシステムに基づいて汎用クライアントプログラムの制御の下でクライアントコンピュータが、いかにして、論理がサーバによって完全に定義される操作を実行できるかを示してきた。クライアントプログラムは汎用であるため、さまざまな情報システムにおいてクライアントコンピュータの操作を、高機能グラフィカルユーザインターフェイスを提供して、制御することができる。他の情報システムにおいて操作するため、及び操作論理とデータ表現方式を変更する際に、クライアントプログラムをリセットする必要はない。このことは、必要とされる技術的結果の達成を導く、つまり、インストールパケットと更新版のクライアントプログラムを送信することにより生じる追加のトラフィックを排除するので、通信チャネル上のロードを軽減する。シンクライアントアーキテクチャにおけるクライアント−サーバシステムに特有の通信チャネルトラフィックもまた排除される。
本発明は、その実施形態を用いて説明されてきたが、本発明の範囲は、それらの実施例によって限定されることはなく、可能な等価物を考慮に入れる特許請求の範囲によってのみ定義される。
データの変更及び受信を必要とする場合の、自己完結オブジェクトシステムの操作を示す図である。 データの変更及び受信を必要とする場合を示すフローチャートである。 新しいコンテナを必要とする場合の、自己完結オブジェクトのシステムの操作を示す図である。簡単にするために、キャッシング機能はこの図には示されない。 キャッシング機能を構成しない新しいコンテナを必要とする場合を示すフローチャートである。 新しいコンテナを必要とする場合のキャッシング機能を示す図である。 新しいコンテナを必要とする場合のキャッシング機能を示すフローチャートである。 クレジットカードによる支払いの実行を対象とするウィンドウフォームの例を示す図である。 クレジットカードにより支払いを実行する場合を示すフローチャートである。 要求を完全又はサンプル暗号化する場合を示すフローチャートである。 応答を完全又はサンプル復号化する場合を示すフローチャートである。 汎用クライアントプログラムの実行を示すフローチャートである。

Claims (11)

  1. サーバコンピュータ及び通信チャネルによって前記サーバと接続される1つ又は複数のクライアントコンピュータで構成される情報システムであって、変更及びデータ検索操作は前記サーバコンピュータによって実行され、前記クライアントコンピュータは前記サーバへの前記データ変更及び検索要求を実行し、高機能グラフィカルユーザインターフェイスを提供し、クライアントコンピュータごとに動的に作成された自己完結オブジェクトの拡張可能汎用システムを使用することを特徴とする情報システム。
  2. 基本プロトコルとしてネットワークプロトコルTCP/IPを使用することを特徴とする請求項1に記載の情報システム。
  3. 基本プロトコルとしてネットワークプロトコルHTTP及びHTTPSを使用することを特徴とする請求項1に記載の情報システム。
  4. 基本プロトコルとしてネットワークプロトコルHTTP及びHTTPSでプロトコルSOAPを使用することを特徴とする請求項1に記載の情報システム。
  5. サーバ側においてセッション識別子による許可でセッションプロトコルをサポートすることを特徴とする請求項1に記載の情報システム。
  6. ダイジェスト認証タイプによるユーザ認証を使用することを特徴とする請求項1に記載の情報システム。
  7. ケルベロスプロトコルによるユーザ認証を使用することを特徴とする請求項1に記載の情報システム。
  8. 自己完結オブジェクトを記述するためにキャッシング機構を使用することを特徴とする請求項1に記載の情報システム。
  9. セッション鍵を使用して要求及び応答の完全及び/又は部分暗号化を使用することを特徴とする請求項1に記載の情報システム。
  10. 通信チャネルを介して送信され、暗号化形式でクライアント機械可読媒体にキャッシュされる自己完結オブジェクトの記述を使用することを特徴とする請求項1に記載の情報システム。
  11. クライアント−サーバ情報システムのクライアントコンピュータにおいて高機能な動的に作成されたグラフィカルユーザインターフェイスを提供する方法であって、特定のアルゴリズムに従って操作される自己完結オブジェクトの拡張可能システム、つまりイベントハンドラを使用せずに機能するプログラムオブジェクトシステムを使用することを特徴とする方法。
JP2008523837A 2005-07-27 2005-07-27 グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法 Pending JP2009508184A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2005/000394 WO2007001206A1 (fr) 2005-07-27 2005-07-27 Systeme d'information client-serveur et procede permettant d'obtenir une interface graphique

Publications (1)

Publication Number Publication Date
JP2009508184A true JP2009508184A (ja) 2009-02-26

Family

ID=37595374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008523837A Pending JP2009508184A (ja) 2005-07-27 2005-07-27 グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法

Country Status (4)

Country Link
US (1) US20080208964A1 (ja)
EP (1) EP1914636A4 (ja)
JP (1) JP2009508184A (ja)
WO (1) WO2007001206A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018501590A (ja) * 2015-04-07 2018-01-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070078927A1 (en) * 2005-09-12 2007-04-05 Microsoft Corporation Server-side service framework
US8875259B2 (en) * 2007-11-15 2014-10-28 Salesforce.Com, Inc. On-demand service security system and method for managing a risk of access as a condition of permitting access to the on-demand service
US20110172155A1 (en) * 2008-03-17 2011-07-14 Regenerx Biopharmaceuticals, Inc. Beta thymosin fragments
JP2010165202A (ja) * 2009-01-16 2010-07-29 Alpine Electronics Inc 情報処理装置及びファイル高速読み出し方法
US9619779B2 (en) * 2011-08-26 2017-04-11 Apple Inc. Client-side policy enforcement of developer API use
US9232025B2 (en) * 2013-02-01 2016-01-05 Schweitzer Engineering Laboratories, Inc. Entry of electric power delivery system data in a web-based interface
CN104202331B (zh) * 2014-09-15 2018-01-02 北京奇虎科技有限公司 客户端功能的生成方法和装置
CN114661851B (zh) * 2022-05-23 2022-08-16 山东省国土测绘院 一种在线轻量级快速响应的自然资源空间信息处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207762A (ja) * 2001-01-05 2002-07-26 Ntt-X Inc 店舗情報供給システムおよび店舗情報供給プログラムが記録されたコンピュータ読み取り可能な記録媒体
JP2003242111A (ja) * 2002-02-14 2003-08-29 Meidensha Corp 業務統合システム
JP2003271388A (ja) * 2002-03-14 2003-09-26 Victor Co Of Japan Ltd 通信システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061512A (en) * 1997-04-29 2000-05-09 Global Adsi Solutions Methods and apparatus for creating automated servers for display telephones
US6061727A (en) * 1997-09-30 2000-05-09 The United States Of America As Represented By The Secretary Of The Navy Robust computer systems permitting autonomously switching between alternative/redundant components
US6469714B2 (en) * 1998-01-26 2002-10-22 International Business Machines Corporation Infocenter user interface for applets and components
US6297819B1 (en) * 1998-11-16 2001-10-02 Essential Surfing Gear, Inc. Parallel web sites
US7188240B1 (en) * 1999-07-15 2007-03-06 International Business Machines Corporation Method and system for encryption of web browser cache
US6654784B1 (en) * 2000-01-14 2003-11-25 Nexaweb Technologies, Inc Computing architecture
US7487440B2 (en) * 2000-12-04 2009-02-03 International Business Machines Corporation Reusable voiceXML dialog components, subdialogs and beans
DE10065419B4 (de) * 2000-12-27 2011-01-20 Siemens Ag Industrielle Steuerung mit taktsynchronem Ablaufebenenmodell
US20020130900A1 (en) * 2001-03-16 2002-09-19 Tomorrowsoft Corporation System for generating an interface for software applications in a client-server environment
US20030135825A1 (en) 2001-12-05 2003-07-17 Matthew Gertner Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
ES2257583T3 (es) * 2001-12-12 2006-08-01 Koninklijke Philips Electronics N.V. Sistema de visualizacion con guiado tactil.
US7565537B2 (en) * 2002-06-10 2009-07-21 Microsoft Corporation Secure key exchange with mutual authentication
US20040003341A1 (en) * 2002-06-20 2004-01-01 Koninklijke Philips Electronics N.V. Method and apparatus for processing electronic forms for use with resource constrained devices
WO2004019160A2 (en) * 2002-08-23 2004-03-04 Jway Group, Inc. Extensible user interface (xui) framework and development environment
AU2002952106A0 (en) * 2002-10-15 2002-10-31 Silverbrook Research Pty Ltd Methods and systems (npw008)
EP1420337A1 (en) * 2002-11-15 2004-05-19 Hewlett-Packard Company, A Delaware Corporation System and method to provide a flexible user interface
US20040187090A1 (en) * 2003-03-21 2004-09-23 Meacham Randal P. Method and system for creating interactive software
US7552451B2 (en) * 2003-04-11 2009-06-23 Microsoft Corporation Persisting state across navigations in a navigation-based application and responding to navigation-related events throughout an application
WO2005022337A2 (en) * 2003-08-29 2005-03-10 Yahoo! Inc. Extensible user interface
US20070011126A1 (en) * 2005-03-21 2007-01-11 Primitive Logic, Inc. Service-oriented architecture
US20060253773A1 (en) * 2005-05-09 2006-11-09 Hsieh Cheng H Web-based client/server interaction method and system
US9772689B2 (en) * 2008-03-04 2017-09-26 Qualcomm Incorporated Enhanced gesture-based image manipulation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002207762A (ja) * 2001-01-05 2002-07-26 Ntt-X Inc 店舗情報供給システムおよび店舗情報供給プログラムが記録されたコンピュータ読み取り可能な記録媒体
JP2003242111A (ja) * 2002-02-14 2003-08-29 Meidensha Corp 業務統合システム
JP2003271388A (ja) * 2002-03-14 2003-09-26 Victor Co Of Japan Ltd 通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018501590A (ja) * 2015-04-07 2018-01-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド モバイルデバイスに基づくクラスタコンピューティングインフラストラクチャのための方法および装置

Also Published As

Publication number Publication date
EP1914636A4 (en) 2009-12-23
US20080208964A1 (en) 2008-08-28
EP1914636A1 (en) 2008-04-23
WO2007001206A1 (fr) 2007-01-04

Similar Documents

Publication Publication Date Title
JP2009508184A (ja) グラフィカルユーザインターフェイスの提示のためのクライアント−サーバ情報システム及び方法
US9098482B2 (en) Method and system for cross-platform form creation and deployment
US6944817B1 (en) Method and apparatus for local generation of Web pages
KR100600959B1 (ko) 분산 컴퓨팅 환경에서 집합화된 서비스의 공급
RU2313824C2 (ru) Информационная система клиент - сервер и способ предоставления графического пользовательского интерфейса
US7062706B2 (en) Method and apparatus for populating a form with data
KR100998515B1 (ko) 클라이언트-서버 네트워크에서 파일-유형 연관성을 이용한분산 프로그램 실행 방법
US20070250711A1 (en) System and method for presenting and inputting information on a mobile device
US7293034B2 (en) Dynamically customizing a user interface for the aggregation of content
US20050015491A1 (en) Systems, methods, and articles of manufacture for dynamically providing web services
US7716339B2 (en) System and method for discretization of client-server interactions
EP1126681A2 (en) A network portal system and methods
US6728750B1 (en) Distributed application assembly
US7949760B2 (en) System and method for serving an application to a heterogeneous collection of client devices
EP2040190A2 (en) Processing HTML extensions to enable support of information cards by relying party
US7266838B2 (en) Secure resource
US20070239911A1 (en) Implementing device support in a web-based enterprise application
US7860987B2 (en) Apparatus for providing service in response to user request and method therefor
CA2381832A1 (en) Method and system for cross-platform form creation and deployment
US6763355B2 (en) Method and apparatus in mark-up language documents for providing mark-up language hidden attributes
US20240004740A1 (en) System and method for interoperability communication using raised intents
US20020184313A1 (en) Method for exchange of data and user interface components
JP2002014963A (ja) データベース管理システム及びその開発システム
EP1168162A2 (en) Tag-based user interface
AU2006233857B2 (en) Methods for distributed program execution with file-type association in a client-server network

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110606

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110613

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111006