(57)【要約】カスタム構成のデータベースでバックアップされたリモートアクセス可能なアプリケーション群の作成および使用のための方法およびシステムを提供する。クライアントデバイス群（６０）のユーザが、ネットワーク（５０）を介してアプリケーションジェネレータサーバ（３０）にアクセスし、要求されるアプリケーションに関する構成を提供する。サーバ（３０）との直接通信、アプリケーションまたはスクリプトのオフライン使用、またはサーバが作成したリンクを辿ることを介して、リモートユーザが、データタイプ、フォーマッティングの対象となるアプリケーションを実行し、アプリケーション構成情報の中で与えられた特性および／または制約を表示する。クライアントデバイス上、サーバ上、または他のサーバ（アプリケーションジェネレータサーバと通信する）上でホストされた他のアプリケーション群が、作成済みのアプリケーションとデータを交換することができる。
2005526334.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータアプリケーション群を作成する方法であって、
サーバを提供するステップと、
前記サーバにおいて第１のリモートデバイスから、第１のデータベースでバックアップされたコンピュータアプリケーションの作成を求める要求を一緒に示す第１のセットの１つまたは複数の関連する要求信号を受信するステップであって、
前記１つまたは複数の関連する要求信号が、第１のアプリケーション構成情報を含むステップと、
前記第１のアプリケーション構成情報に基づいて第１のコンピュータアプリケーションを作成し、構成するステップと、
前記サーバにおいて、前記第１のコンピュータアプリケーションに第１のデータを追加する要求を示すデータサブミッション信号を受信するステップと、
前記データサブミッション信号に応答して前記第１のデータを前記第１のコンピュータアプリケーションに追加するステップとを含む方法。
【請求項２】
前記作成し、構成するステップが、前記第１のアプリケーション構成データの少なくとも一部を第１のデータベースの中に格納するステップと、
前記追加するステップが、前記第１のデータを前記第１のデータベースの中に格納するステップとを含む請求項１に記載の方法。
【請求項３】
前記サーバにおいて第２のリモートデバイスから、第２のデータベースでバックアップされたコンピュータアプリケーションの作成を求める要求を一緒に示す第２のセットの１つまたは複数の関連する要求信号を受信するステップであって、
前記１つまたは複数の関連する要求信号が、第２＋のアプリケーション構成情報を含むステップと、
前記第２のアプリケーション構成情報に基づいて第２のコンピュータアプリケーションを作成し、構成するステップと、
前記サーバにおいて、前記第２のコンピュータアプリケーションに第２のデータを追加する要求を示すデータサブミッション信号を受信するステップと、
前記データサブミッション信号に応答して前記第２のデータを前記第２のコンピュータアプリケーションに追加するステップとをさらに含む請求項１に記載の方法。
【請求項４】
前記構成情報が、複数のユーザグループのそれぞれに関するアクセス情報をさらに含む方法であって、
前記複数のユーザグループの少なくとも１つの中のユーザに関して、前記アクセス情報に基づいて前記第１のコンピュータアプリケーションへのアクセスを制限するステップをさらに含む請求項１に記載の方法。
【請求項５】
ゼロまたは１つ以上のレコードをそれぞれが有する１つまたは複数のテーブルを含むデータベースであって、
前記１つまたは複数のテーブルの中に第１のセットの１つまたは複数のレコードを含む第１のアプリケーションに関する構成情報を含むデータベースと、
前記１つまたは複数のテーブルの中に第２のセットの１つまたは複数のレコードを含む第２のアプリケーションに関する構成情報と、
前記データベースの中の１つまたは複数のレコードから選択されたアプリケーションに関する特定の構成情報を読み取るため、および前記特定の構成情報に基づき、前記選択されたアプリケーションに関連するデータを表示するステップと前記選択されたアプリケーションに関連するストレージ向けに新たなデータを受け入れるステップとの少なくともどちらかを実行するユーザインタフェースを提示するためのアプリケーション作成手段と、  を含むシステム。
【請求項６】
前記特定の構成情報を変更する能力を１名または複数名の認証済みのユーザに提供するためのアプリケーション管理手段をさらに含む請求項３に記載のシステム。
【請求項７】
第１のグループのユーザが、前記第１のアプリケーションの管理のために認証を受けることが可能であり、第２のグループのユーザが、前記第２のアプリケーションの管理のために認証を受けることが可能であり、前記第１のグループと前記第２のグループが異なる請求項６に記載のシステム。
【請求項８】
前記第１のグループは、単独のユーザから成る請求項７に記載のシステム。
【請求項９】
前記特定の構成情報の少なくとも一部をファイルにエクスポートするための手段をさらに含む請求項３に記載のシステム。
【請求項１０】
ユーザインタフェースを介してワードプロセッシングアプリケーションとスプレッドシートアプリケーションの少なくともどちらかへのアクセスを提供する第１のコンピュータと、
データベースに接続可能な第２のコンピュータとを含むシステムであって、
前記インタフェースが、前記データベースの中のデータの操作を可能にするデータフォームを含むシステム。
【請求項１１】
前記第１のコンピュータが、前記第２のコンピュータである請求項１０に記載のシステム。
【請求項１２】
前記アクセスが、読み取り専用である請求項１０に記載のシステム。
【請求項１３】
前記アクセスが、読み取り−書き込みである請求項１０に記載のシステム。
【請求項１４】
少なくとも２つのフィールドを有する少なくとも１つのテーブルを有するデータベースと通信するサーバと、
前記サーバと通信するプロセッサと、
前記プロセッサと通信する記憶メディアであって、
前記プロセッサによって実行されて、ユーザインタフェースを提供し、
前記ユーザインタフェースを介してユーザ入力データを受け入れ、ビジネス規則群を前記ユーザ入力データに適用し、前記ユーザ入力データの第１の部分と前記少なくとも２つのフィールドの間の関係を定義することが可能なプログラミング命令が符号化された記憶メディアとを含むシステムであって、
構成ファイルが、前記ユーザインタフェース、前記ビジネス規則群、および前記関係を定義するように前記プログラミング命令に従って前記プロセッサによって使用可能であるシステム。
【請求項１５】
前記構成ファイルが、前記サーバによって作成される請求項１４に記載のシステム。
【請求項１６】
前記ユーザ入力データの少なくとも第２の部分が、前記プロセッサが前記データベースと通信していない間に前記プロセッサにローカルな不揮発性メモリの中に格納される請求項１４に記載のシステム。
【請求項１７】
前記ユーザ入力データの前記第２の部分が、前記データベースの少なくとも２つのフィールドの中のデータと同期される請求項１６に記載のシステム。
【請求項１８】
前記データベースが、前記サーバのメモリリソースおよび処理リソースを共有する請求項１４に記載のシステム。
【請求項１９】
前記データベースが、前記サーバがアクセスすることができないメモリリソースおよび処理リソースを使用する請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リモートで実行可能なコンピュータプログラムに関する。より具体的には、本発明は、カスタマイズされたリモートアクセスの、データベースでバックアップされたアプリケーション群の作成および使用に関する。リモートアクセス可能なアプリケーション群を開発するための現在のシステムおよび技術は、能力と使いやすさにおいて限界を抱えている。
【背景技術】
【０００２】
２００１年５月１７日に出願した同時係属の米国特許仮出願第６０／２９１７４４号明細書の優先権を主張する。
このため、リモートアプリケーションの作成および使用の技術へのさらなる貢献、および該技術の改良の必要性が存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、データベースでバックアップされたアプリケーション群を作成し、使用するための改良されたシステムおよび方法を提供することである。
【課題を解決するための手段】
【０００４】
この目的およびその他の目的は、本明細書で開示し、本開示を所与として当業者が思い付くような本発明の様々な形態によって達せられる。
本発明の一形態は、アプリケーションを作成するためのネットワークベースのユーザインタフェース（ＵＩ）を提供する。アプリケーション構成情報は、アプリケーション自体によって使用されるデータとともにデータベースの中に格納される。アプリケーションへのリンクが、リモートアクセスのために作成者またはその他の人々によって作成されることが可能であり、作成済みのアプリケーションに関する構成情報が、構成ファイルをユーザインタフェースコンポーネント群、ビジネス規則群、およびＵＩコンポーネント群からバックエンド（サーバ側）データベースフィールドへのマッピングに変換するためのスクリプトインタープリタ（エンジン）を使用して、様々なクライアントプラットフォーム上でのリモート実行のためにエクスポートされることが可能である。
【発明を実施するための最良の形態】
【０００５】
本発明の原理の理解を促進する目的で、図面に例示する実施形態について以下に述べ、具体的な言葉を使って該実施形態を説明する。ただし、それにより本発明の範囲の限定は全く意図されていないことが理解されよう。つまり、本発明が関連する技術分野の業者が普通に思い付くような、説明する、または例示する実施形態のあらゆる代替形態、およびさらなる変更形態、ならびに実施形態に示す本発明の諸原理のあらゆるさらなる応用例が企図されている。
【０００６】
全般的に、図１〜４に関連して説明するアプリケーション作成−使用のシステムおよび方法により、ユーザがデータベースでバックアップされたアプリケーション群（すなわち、クライアントデバイスから遠隔にあるデータベースの中に格納されるデータの入力、変更、閲覧、および削除を１名または複数名のユーザが行うことを可能にするアプリケーション群）を作成する単純の効率的なやり方が提供される。それらのアプリケーションは、アプリケーションジェネレータ（「ＡＰＰＧＥＮ」）サーバへのアクセスを有する作成者およびその他の人々が、ホストされたアプリケーション群として使用することができる。このアクセスを円滑にするため、システムは、そのようなユーザがアプリケーションにアクセスするのに使用することができるユニバーサルリソースロケータ（ＵＲＬ）、ハイパーリンク、またはその他のリンクを作成することができる。一部の形態では、構成情報を、様々なクライアントデバイスの任意のデバイス上のスクリプトエンジン、またはその他のクライアント側ソフトウェアが読み取ることができる構成ファイルにエクスポートして、アプリケーションのユーザインタフェースを提示すること、入力されたデータに関してビジネス規則群および検証要件を実施すること、アプリケーション内のデータに関して出力レポートを生成すること、同期を管理することなどができる。これらの形態を以下により詳細に説明する。
【０００７】
図１は、アプリケーションジェネレータサーバ３０と、データベースサーバ４０と、ネットワーク５０と、ワークステーション６０ａ、サーバ６０ｂ、ハンドヘルドデバイス６０ｃ、およびインターネット対応のセルラー電話機６０ｄを含むクライアントデバイス群（クライアントデバイス群を総称として「代表的なクライアント」または「クライアントデバイス」６０と呼んでいる）と、を含むシステム２０の全体的なブロック図を示している。この例示した実施形態では、任意のクライアントデバイス６０が、ネットワーク５０を介してアプリケーションジェネレータサーバ３０にアクセスすることができる。この実施形態では、それらの接続は、必ずしも常時ではない（あるいはほぼ常時でさえない）。例えば、インターネット対応のセルラー電話技術を介するアクセスは、陸線接続よりもいくぶん費用が高く、したがって、セルラー接続は、普通、必要に応じてだけ行われ、保たれる。他方、アプリケーションジェネレータサーバ３０とデータベースサーバ４０の間の接続は、好ましくは、当技術分野で周知のとおり、非常に信頼性の高いメディアを介して行われる。ただし、一般に、ネットワーク５０は、ローカルエリアネットワーク（ＬＡＮ）、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、または当業者が思い付くような他のネットワークタイプの形態であることが可能である。
【０００８】
一般的に言って、クライアントデバイス群６０は、ネットワーク５０を介してアプリケーションサーバ３０に接続し、サーバ３０は、クライアントデバイス群６０のユーザによって提供された構成情報を使用してアプリケーションを作成する。アプリケーション構成情報は、将来の使用のためにデータベースサーバ４０の中に格納される。次に、作成者、またはクライアントデバイス群６０のその他のユーザは、ＡＰＰＧＥＮサーバ３０上のアプリケーションにアクセスして、所望に応じてアプリケーションデータの追加、使用、および削除を行う。データベースサーバ４０は、そのデータを、ユーザの指示に従う後の編集、閲覧、および削除のために格納する。
【０００９】
図１を参照することを続けながら、次に図２を見ると、代表的なクライアント６０のコンポーネント群、ＡＰＰＧＥＮサーバ３０、およびデータベースサーバ４０が示されている。代表的なクライアント６０は、この例では、プロセッサ６１、１つまたは複数の入力コンポーネント６２、ランダムアクセスメモリ（ＲＡＭ）６３、１つまたは複数の出力コンポーネント６４、読み取り専用メモリ（ＲＯＭ）、および／または電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）６４、ストレージ６７、および１つまたは複数のネットワーキング−通信コンポーネント６９を有する。代表的なクライアント６０は、複数のプロセッサまたはＣＰＵ、ならびにメモリ６３、６５、および６７が１つまたは複数のタイプを代表する１つまたは複数のタイプのストレージを含むことが可能であることに留意されたい。プロセッサ６１は、単一のユニットとして構成された１つまたは複数のコンポーネントから成ることが可能である。代替として、複数のコンポーネントの形態である場合、プロセッサ６１は、１つまたは複数のコンポーネントが、他のコンポーネントに対して遠隔に配置されていることも可能である。プロセッサ６１の１つまたは複数のコンポーネントは、デジタル回路、アナログ回路、またはその両方を含む電子タイプであることが可能である。一実施形態では、プロセッサ６１は、インテルコーポレーションによって供給される１つまたは複数のＰＥＮＴＩＵＭ  ＩＩＩまたはＰＥＮＴＩＵＭ４、またはモトローラ社によって供給される１つまたは複数の６８０ｘ０マイクロプロセッサのような従来の集積回路マイクロプロセッサ構成である。
【００１０】
メモリコンポーネント６３、６５、および６７には、いくつかだけを挙げると、１つまたは複数のタイプのソリッドステート電子メモリ、磁気メモリ、または光メモリが含まれることが可能である。限定的ではない例として、メモリ６３、６５、および６７には、ソリッドステート電子ＲＡＭ、順次アクセス可能メモリ（ＳＡＭ）（先入れ先出し（ＦＩＦＯ）タイプまたは後入れ先出し（ＬＩＦＯ）タイプなどの）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、電気的にプログラミング可能な読み取り専用メモリ（ＥＰＲＯＭ）、またはＥＥＰＲＯＭ、光ディスクメモリ（ＤＶＤまたはＣＤ−ＲＯＭなどの）、磁気で符号化されるハードディスク、フロッピーディスク、テープ、またはカートリッジメディア、または以上のメモリタイプのいずれかの組み合わせが含まれることが可能である。また、メモリ６３、６５、および６７は、揮発性、不揮発性、または揮発性タイプと不揮発性タイプの混成の組み合わせであることが可能である。
【００１１】
いくつかの代表的な例だけを挙げると、キーボード、マウス、トラックボール、ライトペン、および／またはマイクなどの１つまたは複数の操作者入力コンポーネント６２が含まれることが可能である。また、モニタ、またはその他の表示デバイス、またはスピーカなどの１つまたは複数の出力コンポーネント６４も含まれることが可能である。１つまたは複数のネットワーキング／通信コンポーネント６９には、当技術分野で周知のとおり、１つまたは複数のネットワークインタフェースカード（ＮＩＣ）、その他のカード、インタフェース、またはネットワーク５０を含む１つまたは複数の有線ネットワークまたは無線ネットワークを介して接続を提供することができるその他のデバイス群が含まれることが可能である。
【００１２】
この実施形態では、ＡＰＰＧＥＮサーバ３０は、プロセッサ３１、ＲＡＭ３３、ＲＯＭ３５、ストレージ３７、および１つまたは複数のネットワーキング／通信コンポーネント３９を含み、これらは、それぞれ、対応するコンポーネント６１、６３、６５、６７、および６９と同一の機能を提供するが、いずれの特定のクライアント６０の対応する部分とも同一なコンポーネントは含まない可能性がある。同様に、データベースサーバ４０も、プロセッサ４１、ＲＡＭ４３、ＲＯＭ４５、ストレージ４７、および１つまたは複数のネットワーキング／通信コンポーネント４９を含み、これらも、それぞれ、対応するコンポーネント６１、６３、６５、６７、および６９と同様な機能を提供するが、代表的なクライアント６０またはＡＰＰＧＥＮサーバ３０の対応する部分と同一なコンポーネントを含むことも、含まないことも可能である。
【００１３】
代表的なクライアントデバイス６０とＡＰＰＧＥＮサーバ３０の間で送られる一連の典型的な信号を図３に限定的でない例として示しており、図１の諸要素の参照を続けながら、以下に説明する。この例では、クライアント６０からＡＰＰＧＥＮサーバ３０への構成情報信号７０が、ユーザが作成されることを所望するアプリケーションのためのユーザが選択したパラメータを示す。この情報は、クライアント側アプリケーションまたは一連のＨＴＭＬフォームを使用することによるなど、当技術分野で周知の１つまたは複数の方法を使用することによって入力される。構成情報の入力のためにこの例で提供されるユーザインタフェースは、好ましくは、接続を行っているクライアントデバイス６０のタイプに適合され、好ましくは、アプリケーションのユーザによって使用されるデータフィールドの構成、および作成するユーザが許すことを所望するデータの操作に関するいくつかの有効なオプションをユーザに提供する。この典型的な実施形態において存在することが可能な他の構成情報には、アプリケーションのデータを閲覧すること、変更すること、および削除すること（読み取り−書き込みアクセス）が許されるべきユーザの第１のグループのユーザ名、データを閲覧することだけ（読み取り専用アクセス）が許されるべきユーザの第２のグループのユーザ名、ユーザインタフェース構成（概観、特徴、および位置を伴うボタン、リスト、ラベル、および入力要素などのユーザインタフェース要素群を含む）などが含まれる。この構成情報は、データベース４２の中に格納され、これにより、要求された構成を有する新たなアプリケーションが実質的に利用可能になる。その作成イベント（７０ａ）が確認され、利用可能なアプリケーションのリストが、応答信号７１上で提供される。
【００１４】
新たなアプリケーションの作成者または所有者は、新たな認証済みの管理機能要求を信号７２上でサブミットする。この機能には、例えば、信号７０内で提供された構成情報のすべて、または一部を編集すること、改訂すること、拡張すること、または削除することが含まれることが可能である。この要求の認証は、ＨＴＴＰベースの「基本」認証または「ダイジェスト」認証、フォームベースのユーザ名／パスワード入力、バイオメトリック技術などの、当技術分野で周知の任意の適切なユーザ認証技術および／またはデバイス認証技術を含む、または使用することが可能である。ＡＰＰＧＥＮサーバ３０は、管理機能を実行することを求める要求が、その操作（または、許可スキームの細分性に依存して、「それらの」操作）を行うことが許可されたユーザによって行われたと判定した場合、要求されたアプリケーション管理機能を実行し（７２ａ）（相応してデータベース４２を更新し）、その実行の結果、およびＵＩ更新を信号７３上でクライアントに提供する。
【００１５】
さらに後に、所有者が、任意の利用可能な技術（信号７２の上記の説明を参照）を使用し、ログイン信号７４をサーバ３０に送って自らを認証する。次に、ＡＰＰＧＥＮサーバ３０が、許可ユーザセッションを開始する（７４ａ）。確認信号７５を使用して、サーバ３０は、サーバログインが成功したとクライアントデバイス６０に確認する。次に、ＡＰＰＧＥＮサーバ３０は、信号７６をクライアントデバイス６０に伝送する。信号７６は、情報をクライアントデバイス６０に通信して、アプリケーションのデータに対する閲覧操作、編集操作、報告操作、および削除操作を実行するのにユーザが使用することができるユーザインタフェースの提示を可能にする。このユーザインタフェースを使用して、認証済みのユーザは、信号７７上で新たなデータをＡＰＰＧＥＮサーバ３０に送る。クライアントデバイス６０上で提示されるユーザインタフェースは、好ましくは、ユーザがデータを入力するにつれ、入力データに対してビジネス論理規則群を実施する。ビジネス論理規則群には、例えば、例示規則群、所与の定式を他のフィールドに適用することに基づいて値を提示するユーザインタフェースフィールド、データフィールドまたは計算された値など）に依存する表示スタイル、フォームエントリ規則群（フィールドのサイズ制限、データフォーマッティング、要件など）、データベース更新規則群、およびデータ検証規則群が含まれることが可能である。ＡＰＰＧＥＮサーバ３０は、新たなデータを受け取った場合、データベースサーバ４０を介してデータベース４２を更新し（７７ａ）、次に、信号７８を介してクライアントデバイス６０上でユーザインタフェースを更新して、変更を確認する。
【００１６】
別の操作では、クライアントデバイス６０のユーザは、既存のアプリケーションデータを変更する。その変更が、ユーザインタフェースによって適用する検証−更新基準に合格した場合、クライアントデバイス６０は、「変更済みデータ」信号７９をＡＰＰＧＥＮサーバ３０に送る。この場合も、ＡＰＰＧＥＮサーバ３０は、変更を検証し、相応してデータベース４２を更新する（７７ａ）。ＡＰＰＧＥＮサーバ３０は信号８０で応答し、これの信号より、この場合も、クライアントデバイス６０上のユーザインタフェースが更新され、変更が確認される。
【００１７】
さらに別のトランザクションでは、クライアントデバイス６０のユーザが、既存のアプリケーションデータを削除する。通常の妥当性および更新の検査に続き、クライアントデバイス６０は、ＡＰＰＧＥＮサーバ３０がデータベース４２からデータを削除することを求める要求として信号８１を送る。独自の検証プロセスが正常に完了した後、ＡＰＰＧＥＮサーバ３０は、データベース４２を更新し（７７ａ）、信号８２で応答して、変更を確認し、クライアントデバイス６０上のユーザインタフェースを更新する。妥当性検査または更新検査のいずれかが不合格であった場合、誤りメッセージおよび／または訂正を求める指示が、当業者には周知の手段および方法を使用して、クライアントデバイス６０を介してユーザに提示されることが可能である。ユーザの変更が完了した時点で、ユーザは、アプリケーションからログアウトし、これにより、クライアントデバイス６０が、ログアウト信号８３を送ることによってＡＰＰＧＥＮサーバ３０に合図するイベントが生じる。ＡＰＰＧＥＮサーバ３０は、認証済みユーザセッションを終了させ（８３ａ）、オプションとして、セッションの正常の終了を反映するようにクライアントデバイス６０上のユーザインタフェースを更新することができる（図示せず）。
【００１８】
読み取り専用アクセスだけを許されたユーザのグループの中のユーザがＡＰＰＧＥＮサーバ３０にユーザログイン信号８４を介してログインした場合、ＡＰＰＧＥＮサーバ３０は、認証済みユーザセッションを開始して（８４ａ）、信号８５を介してこのセッションの開始を確認し、信号８６を介してアプリケーションの読み取り専用使用のためのユーザインタフェース（信号７６によって記述されるユーザインタフェースとは異なる）を提示する。このユーザインタフェースは、アプリケーションに関連するデータ（場合により、その限られた部分）をユーザが閲覧する手段を提供する。このユーザインタフェースを使用して、クライアントデバイス６０のユーザは、探索クエリ信号８７を介してアプリケーションのデータのすべて、または選択された部分の特定の表示を取り出すクエリをサブミットすることができる。ＡＰＰＧＥＮサーバ３０は、データベースサーバ４０と通信して、データベース４２から妥当なデータを取り出し、探索結果信号８８を介して、要求された表示を構築するのに必要とされる情報を提供する。ユーザは、データのクエリを行い、データを閲覧することを終えた時点で、アプリケーションからログアウトし、クライアントデバイス６０がユーザログアウト信号８９をＡＰＰＧＥＮサーバ３０に送ることを生じさせ、これにより、認証済みユーザセッションが終了される（８９ａ）。
【００１９】
本発明の一部の実施形態によって実行されるステップを、図２の諸要素を参照して図４に関連して以下に説明する。プロセス１００が、開始ポイント１０１で開始し、サーバが、ブロック１０３で初期設定される。この初期設定は、リモートデバイス群からの接続を受けることに対してサーバを準備し、アプリケーション群およびアプリケーションデータを格納するため、および取り出すためにサーバによって使用されるべき１つまたは複数のデータベースとの接続を検査し、当業者によって行われるようなその他の初期設定タスクを実行する。次に、サーバは、リモートデバイス群から入来するコネクション待つ。
【００２０】
サーバは、入力ブロック１０５で入来信号を受け入れる。様々な典型的な実施形態では、この入力信号は、ＨＴＴＰ要求、リモートプロシージャコール、非同期メッセージ着信、または当業者が思い付くその他の信号の形態をとることが可能である。次に、全般的に、サーバが、着信した信号のタイプを判定した後、以下に説明するとおり、適切なアクションを行い、かつ／または適切な応答を提供する。様々な実施形態では、それぞれの着信信号が、プロセッサ３１の別個の実行スレッドで処理されること、イベントまたはポーリングのループにおける単一のスレッドで処理されること、または当業者が思い付くような他の技術を使用して処理されることが可能である。
【００２１】
判定ブロック１１０で、着信信号が、サーバにおける１つまたは複数のアプリケーションへの認証済みのアクセスを求めるリモートデバイスのユーザによる要求を示しているかどうかが判定される。示している（判定ブロック１１０において肯定的な結果）場合、ブロック１１１で前述したとおり、サーバがユーザを認証する。認証プロセスに不合格であった（判定ブロック１１３で否定的な結果）場合、サーバは、着信信号を待つこと（「待ち状態」の先行ブロック１１５）に戻り、オプションとして、当業者に周知の技術を使用して、失敗した認証の試みを示す信号（図示せず）で応答する。認証が成功であった（判定ブロック１１３で肯定的な結果）場合、サーバは、当業者には周知のとおり、ブロック１１５で新たなユーザセッションを開始する。このプロセスは、通常、サーバに格納され、セッション中にクライアントからの各要求とともにサブミットされたセッション識別子の割り当てに関わる。次に、サーバは、利用可能なアプリケーションのリストをユーザに示す（クライアント６０の出力コンポーネントを介して）のに十分な情報を提供することにより、ブロック１１７で着信信号に応答した後、待ち状態に戻る。
【００２２】
着信信号が、新たな認証済みセッションを求める要求ではなかった（判定ブロック１１０で否定的な結果）場合、サーバは、着信信号がそのセッションを終える、またはサーバから「ログアウト」する要求であるかどうかを判定する（判定ブロック１２０）。セッションを終了する、またはサーバからログアウトする要求であった（判定ブロック１２０で肯定的な結果）場合、サーバは、ブロック１２５で、セッションに結び付けられたリソース群を解放し、セッション識別子を無効にする。次に、サーバは、待ち状態に戻る。
【００２３】
着信信号がログインセッションを終了させる要求ではなかった（判定ブロック１２０で否定的な応答）場合、サーバは、着信信号が新たなアプリケーションを作成する要求であるかどうかを判定する（判定ブロック１３０）。アプリケーションを作成する要求であった（判定ブロック１３０で肯定的な結果）場合、サーバは、ブロック１３１で、新たなアプリケーションのための構成情報をユーザに求める。サーバは、入力ブロック１３３でその構成情報を受け入れ、ブロック１３５でその構成情報をシステムデータベース４２の中に格納する。前述したとおり、この請求／受け入れ／格納の手続きは、１つまたは複数のＨＴＭＬフォームを提供すること、追加の構成情報を繰り返し検証し、受け入れること、入力を有効な文字に制限することなどを含むことが可能である。
【００２４】
構成獲得プロセス（ブロック１３１、１３３、および１３５）は、通常、アプリケーションデータベース内で確立されるべきフィールドの１つまたは複数の名前およびデータタイプ、データ入力のフィールド長および検証規則群などをユーザから獲得する。一部の実施形態では、構成情報は、新たなレコードの既定の値、表示フォーマット（通貨、日付、時刻、指数表現など）、特定のフィールドをユーザが編集することができるかどうかを示すフラグ、および／または管理グループ、マネージャグループ、およびユーザグループのそれぞれの中のユーザに関する既定のＵＴフォームも（明示的、または暗黙に）指定する。構成情報は、１つまたは複数のあらかじめ構成されたデータタイプ、カスタムデータタイプ、またはこの２つの組み合わせへの参照を含むことも可能である。構成情報は、最初、既存のアプリケーション構成の複製コピーとして導出しても、ゼロから作成してもよい。構成情報が受け入れられ、格納されると、サーバは、待ち状態に戻る。
【００２５】
入力信号が新たなアプリケーションを作成する要求ではなかった（判定ブロック１３０で否定的な結果）場合、サーバは、入力信号が既存のアプリケーションにデータを追加する要求であるかどうかを判定する（判定ブロック１４０）。データを追加する要求であった（判定ブロック１４０で肯定的な結果）場合、サーバは、ブロック１４５で新たなデータを検証し、格納して、そのデータの受け入れを反映するようにクライアントデバイス上のユーザインタフェースを更新する。次に、サーバは、待ち状態に戻る。
【００２６】
着信信号が新たなデータを追加する要求ではなかった（判定ブロック１４０で否定的な結果）場合、サーバは、着信信号がアプリケーションの構成情報をエクスポートする要求であるかどうかを判定する（判定ブロック１５０）。エクスポートする要求であった（判定ブロック１５０で肯定的な結果）場合、サーバは、構成ファイルを作成し、そのファイルをクライアントデバイスに伝送する。次に、サーバは、待ち状態に戻る。この実施形態では、構成ファイルは、クライアント側のスクリプトエンジンによって解釈されて、エクスポートされるアプリケーションに合わされたユーザインタフェースが提示され、クライアントデバイス群のユーザが、認証、ＵＩ、ならびにアプリケーションのデータの追加、削除、編集、および閲覧を含め、サーバから接続解除されている間にアプリケーションを「実行」することができるようになる。また、ユーザインタフェースにより、クライアントデバイスのユーザが、そのような遠隔で変更されるデータをサーバ上のアプリケーションデータと同期させることができるようにもなる（以下のブロック１７５の説明を参照）。構成ファイルは、データベースファイル、ＸＭＬ（またはＸＭＬの拡張）ファイル、汎用スクリプトエンジンによって実行可能なスクリプトの形態、または当業者が思い付くようなその他の形態をとることが可能である。
【００２７】
着信信号がアプリケーションのエクスポートを求める要求ではなかった（判定ブロック１５０で否定的な結果）場合、サーバは、着信信号がアプリケーションへのリンクを作成する要求であるかどうかを判定する（判定ブロック１６０）。リンクを作成する要求であった（判定ブロック１６０で肯定的な結果）場合、サーバは、テキストＵＲＬ、ＵＲＬを含むデータファイル、指定された接続を確立する実行可能なプログラム、または当業者が思い付くようなその他の形態などのリンクを作成する。リンクは、符号化された形態、または符号化されていない形態で、指定されたアプリケーションの識別子、リンクを作成するユーザの識別子、そのリンクを介してアプリケーションを使用する人々に許されるべきアクセスのレベルまたは限度、そのリンクを使用するための認証パラメータ（ユーザ識別子またはグループ識別子、使用すべき特定のパスワード、そのリンクを使用するための容認できる認証プロトコル）、そのリンクに関する時間制限または使用回数制限、および／またはそのリンクにおけるその他の要素群を含むことが可能である。代替として、またはさらに、これらのリンクデータ要素の１つまたは複数がデータベース４２の中に格納されて、作成されたリンクにおけるデータベースキーによって参照されることが可能である。リンクが作成され、クライアントデバイスに供与される、または送られると、サーバは、待ち状態に戻る。
【００２８】
着信信号がアプリケーションリンクを作成する要求ではなかった（判定ブロック１６０で否定的な結果）場合、サーバは、着信信号が、サーバに格納されているアプリケーションデータとリモートデータを同期させる要求であるかどうかを判定する（判定ブロック１７０）。同期させる要求であった（判定ブロック１７０で肯定的な結果）場合、サーバは、ブロック１７５で、リモートデバイスにおけるデータをサーバ側のアプリケーションデータと同期させることにとりかかる。同期は、任意の適切な方法を使用して行われることが可能である。同期が完了した時点で、サーバは、待ち状態に戻る。着信信号が同期を求める要求ではなかった（判定ブロック１７０で否定的な結果）場合、サーバは、着信信号がシャットダウンコマンドであるかどうかを判定する（判定ブロック１８０）。シャットダウンコマンドではなかった（判定ブロック１８０で否定的な結果）場合、待ち状態に戻ること、クライアントデバイスにおいて誤りメッセージを表示すること（図示せず）、または当業者が思い付くようなその他のアクションなどの既定のアクションを行う。着信信号がシャットダウンコマンドであった（判定ブロック１８０で肯定的な結果）場合、サーバはシャットダウンし、終了ポイント１９９でプロセス１００が終了する。
【００２９】
本発明のさらなる実施形態を図５のシステム２００に関連して以下に説明する。クライアント２６０が、アプリケーションサーバ２２０上でホストされるアプリケーション（例えば、ワードプロセッシングアプリケーションまたはスプレッドシートアプリケーションなどの）にアクセスし、サーバ２２０は、当技術分野で周知のとおり、アプリケーションサービスプロバイダ（ＡＳＰ）２１０によって運営される。アプリケーションサーバ２２０は、アプリケーションジェネレータサーバ２３０と通信しており、サーバ２３０もＡＳＰ２１０によって運営される。この実施形態では、作成されたアプリケーション群の所有者および／またはユーザに対して、アプリケーションにリンクされたデータ入力フォームを作成するためのツールであって、作成済みのアプリケーションに関するライブのデータ（および／またはそのデータのオフラインコピー）の追加、編集、閲覧、および／または削除を行うのにアプリケーションサーバ２２０上でホストされるアプリケーション群を介して使用することができるツールが提供される。同様に、作成済みのアプリケーションからデータのレポートを、ホストされるアプリケーションにおいて直接に使用でき、閲覧でき、操作できる形で作成するツール群も提供される。ホストされたアプリケーション上でフォームを使用して入力され、かつ／または変更されたデータは、ローカルで（クライアント上に）格納され、作成済みのアプリケーションデータベースと後に同期されることも、あるいはパススルーの形で作用して、フォームを使用して改訂が行われるにつれ、リアルタイムで作成済みのアプリケーションデータを更新することも可能である。
【００３０】
図５に示したシステムの代替として、生産性アプリケーションおよび／または生産性アプリケーションが扱うドキュメントが、クライアント上に存在するが、作成済みのアプリケーションのデータへのリンクを含む。一部のそのような実施形態では、クライアント側の生産性アプリケーションの固有のネットワーキング能力およびデータベース能力を活用して、作成済みアプリケーションのデータへの接続が提供される。他のそのような実施形態では、クライアント側の生産性アプリケーションが、そのデータへのアクセスを可能にするように拡張される。
【００３１】
本発明の態様をいくらか詳細に説明してきたが、必要以上の実験を行うことなしに多種多様な変形形態が利用できることが、当業者には理解されよう。例えば、様々な実施形態が、以下の変形形態の１つまたは複数を活用することができる。すなわち、システム内のデバイス群に適した任意のワイヤ  プロトコルを使用することができ、追加のネットワークおよび／または接続を提供することができ、単一のコンピュータシステム上で実行するためにデータベース４０（図１および図２）に関連するデータベース機能をＡＰＰＧＥＮサーバ３０に関連して説明した機能と組み合わせることも、あるいは、これらのデバイスに関して前述した機能をいくつかのコンピューティングデバイスの間に分散させることもでき、ネットワーク５０とＡＰＰＧＥＮサーバ３０の間にプロキシサーバを挿入して、着信するクエリをクエリの送信元、内容、またはその他の特性、または状況に基づいて転送することができ、サーバ側の処理および／またはシステムを通過する信号のルーティングに負荷分散技術を適用することができ、ユーザＩＤおよび／またはデバイスＩＤを、ネットワークアドレス、アプリケーション識別子、またはその他のデータ要素に基づいて明示的に（前述したとおり）、または暗黙に交換することができ、当技術分野で周知の方法を使用して外部ファイル群および／またはデータベース群からユーザデータをインポートするための備えを設けることができる。
【００３２】
別の実施形態では、エクスポートされる構成ファイルは、サーバ上に格納される（またはリアルタイムで作成される）が、ブラウザプラグインまたは他のエージェントを使用して要求が行われると、クライアント上で実行される。そのようなユーザエージェントは、しばしば、所与のユーザ環境にネイティブで存在しない追加の入出力能力および／または処理能力を提供し、本発明で活用して、前述したスクリプト読み取りの実施形態に関連してクライアントデバイスからリソース負荷のいくらかを移転させることができる。
【００３３】
さらに別の実施形態では、作成済みのアプリケーション間でデータを交換することができる。例えば、図５を参照すると、「アドレス帳」アプリケーション２３２をＡＰＰＧＥＮサーバ２３０上の「製品出荷」アプリケーション２３４とリンクすることができる。製品出荷アプリケーション２３４を使用して作成されたインボイスおよび出荷ラベルが、アドレス帳アプリケーション２３２から現在の名前およびアドレスの情報を取り出すことができ、同様に、アドレス帳２３２は、例えば、特定の連絡先への最新の出荷に関するデータを表示することができる。
【００３４】
さらに別の実施形態では、図１を参照すると、ＡＰＰＧＥＮサーバ３０が、ユーザによって現在、制御されていないクライアントデバイス群６０が使用するための「Ｗｅｂサービス」インタフェースを提示することが可能である。クライアントデバイス上のアプリケーション間における自動化されたデータ交換は、当技術分野で周知の技術を使用する自動化されたデータ交換、およびその他のＷｅｂサービス方法を介して、ユーザの介入なしに維持することができる。
【００３５】
本明細書で引用するすべての刊行物、先行する出願、およびその他の文献は、あたかもそれぞれが個々に参照により組み込まれ、完全に記載されているかのように参照により全体が本明細書に組み込まれている。
【００３６】
本発明を図面および以上の説明で例示し、詳細に説明しているが、これらは、例示的であり、制限する性格のものではないと見なされるべきであり、好ましい実施形態だけが示され、説明されており、当業者が思い付くようなすべての変更形態および変形形態が保護されることが所望されているものと理解されたい。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態によるリモートアクセス可能なアプリケーション作成−使用システムを示すブロック図である。
【図２】本発明の一実施形態による代表的なクライアント内部、アプリケーションジェネレータサーバ内部、およびデータベースサーバ内部のコンポーネント群を示すブロック図である。
【図３】本発明の一実施形態による代表的なクライアントデバイスとアプリケーションジェネレータサーバの間における通信の信号マップを示す図である。
【図４】本発明の一実施形態によるアプリケーションジェネレータサーバの動作を示す流れ図である。
【図５】１つまたは複数の作成済みアプリケーションと連携してホストされた生産性アプリケーション群をリモートで使用するためのシステムを示すブロック図である。
【図１】
2005526334.tif 000003
【図２】
2005526334.tif 000004
【図３】
2005526334.tif 000005
【図４】
2005526334.tif 000006
【図５】
2005526334.tif 000007
【国際調査報告】
2005526334.tif 000008