(57)【要約】  本発明は、ウェブポータル上でのアプリケーション開発のシステム及び方法に関する。１つの実施形態では、ユーザがウェブポータルへログオンすると、アプリケーションを書くこと、アプリケーションをコンパイルすること、そしてアプリケーションをテストすることを選択する様々なツールが提供される。アプリケーションの開発プロセスが完了した後、ユーザは、ウェブポータル上にアプリケーションを格納し、ウェブポータルのサービスを利用するか、自分のコンピュータにアプリケーションをダウンロードするかの何れかを選択することができる。ユーザはまた、多数のクライアントのためにサービスするサーバとして使用されるウェブポータルからアプリケーションを展開させるオプションも与えられる。これによって、展開中は、サーバリソースを使用し、インフラストラクチャの高コストを避けることができる。
2008533549.tif 000002
【特許請求の範囲】
【請求項１】
クライアント計算システムを用いて、ウェブポータル上において意図した機能のためのアプリケーションを開発するステップと、
少なくとも１つの予め定義した構成を備えるランタイムエンジンのコピーを前記クライアント計算システム上にダウンロードするステップであって、前記クライアント計算システムは、前記ランタイムエンジンを受け取り、リッチクライアント計算システムになる、ステップと、
前記リッチクライアント計算システムを用いて、前記ウェブポータル上において前記意図した機能のためのアプリケーションを実行するステップと、
前記アプリケーションをローカルに実行するため、前記ウェブポータルと通信し、前記リッチクライアント計算システムによって要求されるデータを取得するステップと、
前記リッチクライアント計算システム上においてローカルに実行ができない前記アプリケーションの一部を前記ウェブポータル上において実行するステップと
を含む、前記リッチクライアント計算システムが、最小のネットワーク帯域幅とサーバリソースの使用を可能にする、アプリケーション開発及び実行にウェブポータルを使用する方法。
【請求項２】
モバイルデバイス又はパーソナルデジタルアシスタントのようなデバイスを用いてアプリケーションを開発するために使用される請求項１に記載の方法。
【請求項３】
前記開発するステップは、前記意図した機能のためのアプリケーションのビジネスロジック又はソースコードをウェブポータル上に書き込むステップを更に含む請求項１に記載の方法。
【請求項４】
ユーザは、複数の所有者及びサードパーティがライセンスを受けた典型ビジネスロジック開発可能ツールを含む開発ツールが提供される請求項３に記載の方法。
【請求項５】
前記ソースコードは、前記アプリケーションのソースコードを誤使用から保護するため、ユーザ選択された暗号化機能を用いて、暗号化され安全にされる請求項３に記載の方法。
【請求項６】
ユーザに、前記意図した機能のためのアプリケーションをテストするため、複数の所有者及びサードパーティがライセンスを受けたテストツールが提供される請求項３に記載の方法。
【請求項７】
前記ランタイムエンジンをダウンロードするステップは、前記アプリケーション開発及び実行の間、前記ランタイムエンジンが前記ウェブポータル上で更新されるまで１度だけ要求される請求項１に記載の方法。
【請求項８】
前記アプリケーションを実行するステップは、
前記ウェブポータルに存在するランタイムエンジンを用いて、前記意図した機能のためのアプリケーションのコンポーネントをコンパイルするステップであって、前記コンパイルするステップは、前記ウェブポータルから前記リッチクライアント計算システムへコンポーネント特有のパラメータ情報を送信することを更に含むステップと、
前記送信されたコンポーネントパラメータ情報を、前記リッチクライアント計算システムにおいて、予め定義した構成にリンクさせ、スクリプト特有の予め定義した構成を提供するステップであって、前記予め定義した構成は、要求されたコンポーネントの意図した機能に対応する意図した機能を有するステップと、
前記スクリプト特有の予め定義した構成を実行し、前記コンポーネントを実行するステップと
を更に含む請求項１に記載の方法。
【請求項９】
前記通信するステップは、前記ウェブポータルから要求されるあらゆる追加のコンポーネント特有のパラメータ情報を、前記リッチクライアント計算システムへ送信するステップを更に備える請求項１に記載の方法。
【請求項１０】
前記アプリケーションの一部を実行するステップは、前記アプリケーションによって要求される少なくとも１つの計算を前記ウェブポータルにおいて実行するステップを更に含み、前記計算は、前記リッチクライアント計算システム上に存在しないが、前記ウェブポータル上に存在するデータベース又は追加データを必要とする請求項１に記載の方法。
【請求項１１】
前記ウェブポータルはユーザ認証を与える請求項１に記載の方法。
【請求項１２】
前記認証は、当該認証に基づいて、複数のツールと、データと、サービスとに様々なレベルのアクセスを提供するステップを更に含む請求項１１に記載の方法。
【請求項１３】
前記ウェブポータルは、前記認証に基づいて、前記ウェブポータルにログインする毎に、ユーザによって残されたウェブポータルの前の状態を再生成する機能を有する請求項１２に記載の方法。
【請求項１４】
前記アプリケーションは、前記ウェブポータル上、又はユーザ選択されたその他任意の計算システム上に格納される請求項１に記載の方法。
【請求項１５】
前記ウェブポータルは、少なくとも１つのヘルプサービスを提供し、前記ヘルプサービスは、チャットサービスと、質問を書き込むためのフォームと、アプリケーションを開発しながらユーザをガイドするための質問回答サービスとを有する請求項１に記載の方法。
【請求項１６】
前記ウェブポータルは、アプリケーション開発に含まれる段階のために、所有者及びサードパーティがライセンスを受けたツールを提供し、前記段階は、要求分析と、設計と、アプリケーションプログラミングと、テストと、アプリケーション展開とを有する請求項１に記載の方法。
【請求項１７】
前記ウェブポータルは、アプリケーション開発のプロセス中に生成されたデータと、実行中に前記アプリケーションによって生成されたデータと、ユーザ特有データとのコピーを格納するためのバックアップ記憶機能を提供する請求項１に記載の方法。
【請求項１８】
前記アプリケーションのソースコードを誤使用から保護するため、ユーザ選択された暗号化機能を用いて、ソースコードが暗号化され安全にされる請求項１に記載の方法。
【請求項１９】
前記アプリケーションを開発するユーザは、費やされたタイプ時間を有する予め定めた請求方法を用いて課金される請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、アプリケーション開発環境の分野に関する。特に、最小のウェブポータル及びネットワークリソースを用いてウェブポータル上においてアプリケーションを書き込み、コンパイルし、テストし、展開するシステム及び方法に関する。
【背景技術】
【０００２】
クライアント−サーバ環境と、スタンドアロン環境との両方においてアプリケーションを開発するために使用される幾つかの方法及びシステムが存在する。これら全ては、例えば、リソース利用性、アプリケーション開発のために異なるツールを使用する柔軟性、バックアップインフラストラクチャ、他の問題のような幾つかの欠点を有する。
【０００３】
技術の進展により、世界では、情報の普及及び共有が絶対的に重要であるユニポーラなコミュニティへ急激に変わりつつある。世界中のビジネスは、自分たちに限定されるニーズに最も効率的な方法で応じる機能及びソフトウェアを構築することによって、自分たちの収益を最大化することに注目している。エンタープライズリソースプランニング（ＥＲＰ）及びカスタマリレーションシップマネジメント（ＣＲＭ）は、そのようなアプリケーションを例示する。アプリケーション開発用のインフラストラクチャは、様々なソフトウェアリソース及びハードウェアリソースを要求する。ソフトウェアリソースは、自動化するためのツール及びユーティリティ、又はＳＤＬＣプロセスの多くを含む。ハードウェアリソースは、１つの形式、あるいはＤｕｍｂ端子、ＬＡＮ、ＷＡＮ、無線等の他の形式によって相互に接続された１つ以上のコンピュータを含む。
【０００４】
アプリケーション開発は、このように、大きな重要性を担っている。効果的なアプリケーション開発環境は、顧客満足を高め、効率を改善し、操作コストを低減することにより、企業の投資効率を大いに改善する。アプリケーションが、マルチタスクを実行する商業ベースにのったソフトウェアパッケージを作り出すように統合される場合、アプリケーション開発は重要性を担い、企業の付加価値となる。
【０００５】
ウェブ及びｅビジネスの発展は、開発者にジレンマをもたらした。今や、開発者は、より少ない時間で、より複雑なアプリケーションを開発することが要求されている。そして、これは、自分たちの専門のニッチ領域を有するまとまった開発チームからなる協力的なアプリケーション開発環境を必要とする。これは、ソフトウェアを所有及び操作し、サーバを維持し、インターネットを経由したブラウザによって、あるいは、ある種のシンクライアントによって顧客に対してアプリケーションを利用可能にするアプリケーションサービスプロバイダの必然性を説明する。シンクライアントは、一般に、サーバ中心の計算モデルで動作する廉価な計算デバイスである。一般に、シンクライアントは、中央サーバ又はネットワークからアプリケーションにアクセスするため、最先端技術と、強力なプロセッサと、大量のメモリとを必要としない。アプリケーションサービスプロバイダは、低い加入コスト、極端に短いセットアップ時間、インストールしなければならない専用ソフトウェアのヘッドカウントや高い費用の省略により、小規模なビジネスや企業に対して特に魅力的である。
【０００６】
しかしながら、現在のアプリケーションサービスプロバイダの欠点は、アプリケーションテスト機能と展開機能の欠如である。これは、自己のカスタマイズされたアプリケーションの開発を望むが、タスクを実行するためのインフラストラクチャを有さない企業にとって重大である。開発者は、２つの選択肢を有し、プログラミングを行うために、個別の環境を使用することができる。アプリケーション開発の種類によって、スタンドアロン計算機、又は協力的な環境を用いて遂行される。
【０００７】
協力的なアプリケーション開発環境に対する必要性は、非常に望ましく、かつポピュラーなプラットフォームとして、インターネットを大いに普及させた。ＳｏｕｒｃｅＦｏｒｇｅやＦｒｅｓｈｍｅａｔのようなウェブポータルは、協力的アプリケーション開発のために様々なサービスを提供する。ユーザ及びプロジェクトグループは、ＳｏｕｒｃｅＦｏｒｇｅによって提供されるツールを用いてアプリケーションを開発するため、ポータル上にスペースが割り当てられる。しかしながら、ＳｏｕｒｃｅＦｏｒｇｅの欠点は、好みの言語及びツールを用いてウェブポータル上にプログラムするための柔軟性をユーザに与える、例えば、Ｖｉｓｕａｌ  Ｃ＋＋、Ｏｒａｃｌｅ開発ツール、Ｊａｖａ（登録商標）開発ツールのようなライセンスを受けたサードパーティツールが無いことである。更に、アプリケーション展開ツールやテストツールを備えていない。協力的アプリケーション開発ポータルは、コミュニティのために協力し、かつ、アプリケーションを開発するために、ユーザを呼び集める。
【０００８】
一般に、エンドユーザは、組織内の情報技術チームを有する。大型汎用計算機の時代には、同じ計算機上で開発と展開を行った。エンドユーザと開発者とが単一の計算機に接続されていた。リソース管理は、中央位置において取り扱われ、開発者とエンドユーザとは、ダム端末の助けを借りて接続される。
【０００９】
カスタムアプリケーションに関する開発は、専門のソフトウェア開発組織に外部委託された。しかしながら、デスクトップとサーバの到来により、開発者は、リソースを保持し、かつ、最終的な実行可能バージョンをエンドユーザに送る柔軟性を有する。柔軟性に加えて、リソースを管理する複雑さが加わった。また、アプリケーション開発者とエンドユーザとの間には、明確な境界がある。エンドユーザは、通常、完全に開発された包装製品を買ったユーザである。エンドユーザによって要求されるあらゆる変更、又は、アプリケーションのためのカスタマイズのあらゆる形態は、ベンダによって行われる。
【００１０】
しかしながら、ＳＡＰ、ＰｅｏｐｌｅＳｏｆｔのような幾つかの会社は、予め構築されたコンポーネントを与え、エンドユーザは、自分たちのアプリケーションを自分たちの場所でカスタマイズする柔軟性を有する。
【００１１】
ソフトウェアＺＯＰＥを有するＺｏｐｅ  Ｃｏｒｐｏｒａｔｉｏｎは、メンバが、例えばポータルのような動的なウェブアプリケーションと、イントラネットサイトとを、ウェブインタフェースを介して作成及び管理することを可能にする。しかしながら、Ｐｙｔｈｏｎに新たなＺｏｐｅアドオンを書き込むことによって、新たなオブジェクトのみを作成することができる。それは、ユーザが選択した言語又は開発ツールを用いてプログラムする柔軟性がユーザに与えられた成熟した産業レベルのアプリケーション開発環境を提供しない。
【００１２】
今日では、利用可能な技術は、上述したようにアプリケーション開発分野における幾つかの欠点に対処する。しかしながら、アプリケーション開発、アプリケーションコンパイル、及びアプリケーションテストのためにサードパーティがライセンスを受けたツールを提供するウェブポータルに対する必要性が未だに存在する。例えば、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ、Ｊ  Ｂｕｉｌｄｅｒのような統合開発環境では、ユーザは、市場から全てのソフトウェアツールを購入又はライセンスを受けなければならない各ユーザよりも、必要ベースで、低コストで使用することができる。
【００１３】
また、アプリケーションを開発し、その後に、このアプリケーションをウェブポータル自体で展開させることを望む会社のために、インフラストラクチャ、リソース、セキュリティ、バックアップ機能、アプリケーションメンテナンスの容易さ等を提供する必要性も存在する。
【００１４】
本発明の目的及び長所の多くは、以下の詳細説明及び添付図面を検討した後、当業者によって明らかになる。
【発明を実施するための最良の形態】
【００１５】
本発明は、いくつかの形式、構成、及び方式で具体化される。以下に示す説明及び図面は、クライアント−サーバ環境における本発明の典型的な実施形態を示す。当業者であれば、本発明は、スタンドアロン環境を含む以下に示されていない他の形式、構成、及び方式でも具体化されることを認識する。本発明は、請求項の全範囲を有し、かつ、以下に示す実施形態によって限定されないものとする。
【００１６】
本発明は、サーバコンピュータにホストされたウェブポータル上でアプリケーションを開発するシステム及び方法に関する。幾つかの会社や個人は、市場で利用可能であるツールを用いてアプリケーションを開発することを望んでいる。しかし、彼らのニーズを満たすのに必要なインフラストラクチャ及びリソースを有さない。開発者でもあるユーザは、しばしば、別の目的のために様々なツールを必要とする。それらは例えば、アプリケーション開発用の別のツールであったり、アプリケーションをテストするためのものであったり、結果として、アプリケーションを展開するための計算システムであったりする。この目的のために、ソフトウェアベンダから各ソフトウェアツールのライセンスを取得、あるいはアプリケーションの開発を必要とする各ソフトウェアツールを購入する必要がある。ユーザ／開発者は、経験豊かなコンピュータプログラマではないことがあり、ビジネスロジックを書き込むことによって、自分のニーズのための小規模なアプリケーションの開発を望むかもしれない。開発者は、自分のアプリケーションを開発するために、ＰＤＡ、モバイル電話、あるいは、最小のリソースを備えたその他任意のデバイスの使用を望むかもしれない。従来技術から明らかなように、最小のネットワーク帯域幅とサーバリソースとを利用し、ウェブポータル上でカスタムアプリケーション、又は企業レベルのアプリケーションを開発することをユーザに提供するようなシステムが存在しない。
【００１７】
これは、本発明により可能になる。１つの実施形態では、ユーザはウェブポータルからランタイムエンジンをダウンロードし、これによって、リッチクライアント計算システムになることができる。ランタイムエンジンは、予め定義された構成を備える。予め定義された構成（ＰＤＳ）は、幾つかのコンポーネントタイプのうちの１つの意図された機能で作成される構成である。したがって、例えば、フォームのためのＰＤＳは、ユーザインタフェース、フィールド、ボタン、相互関係、及び表現の意図した機能を含む一般的な構成を含む。
【００１８】
ユーザ／開発者は、様々なソフトウェアベンダからライセンスを受けたツールを提供するウェブポータルにログオンするか、あるいは、予め定義された構成を有するランタイムエンジンをダウンロードすることができる。これによって、アプリケーションを開発するために任意のソフトウェアを使用する柔軟性をユーザ／開発者に与えることができる。ユーザは、自分のコンピュータに何れのアプリケーションをインストールすることも要求されず、ウェブブラウザや、サーバ端末等をエミュレートするウィンドウのような端末エミュレータを用いてこれらサービスにアクセスすることができる。つまりユーザ／開発者は、シンクライアントとして振舞い、したがって、必要に応じて、例えばプロセッサ、ハードディスク、メモリ等のリソースを、自分自身のものではなく、ウェブポータルのものを利用することができる。
【００１９】
ポータルはまた、アプリケーションのメンテナンスやエラーからの復元のためのバックアップ機能に加えて、ユーザプライバシを維持し、海賊行為等を回避するために、一定のセキュリティ手段及び暗号化手段を提供する。アプリケーションが一旦開発されると、多くのクライアントが接続して利用したり、あるいは自分のコンピュータにアプリケーションをダウンロードする中央サーバとしてウェブポータルを使用して、ウェブポータル自体からアプリケーションを展開するオプションがユーザに与えられる。
【００２０】
図１は、クライアント−サーバ環境における本発明の１つの実施形態を示す。各クライアント１１５、１２０及び１２５はそれぞれ、ウェブポータルをホストするウェブサーバのようなサーバ１０５と、通信ネットワーク１１０とを経由して通信している。通信ネットワーク１１０は、例えば、インターネットのような広域ネットワーク、ローカルエリアネットワーク、又は基地局と移動局を含む無線ネットワークである。１つの実施形態では、ユーザ／開発者は、アプリケーションを開発し、かつ、多くのユーザがウェブポータル１０５に接続することを可能にする。ウェブポータル１０５では、アプリケーションによって提供される機能及びサービスを利用するためにアプリケーションが展開される。例えば、小さな宅配会社は、従業員の行き先に加えて、配達された荷物及び郵便物のログを保持することを望むが、そのようなサービスを提供するために必要なインフラストラクチャを有さないかもしれない。この宅配会社は、ポータルによって提供されるサービスを利用して、ウェブポータル上でアプリケーションを開発し、提供されている様々なテストユーティリティを用いてアプリケーションの実行可能性をテストし、このアプリケーションを展開することができる。本発明の好ましい実施形態として、この宅配会社には、予め定義した構成を有するラインタイムエンジンを、この宅配会社の従業員によって操作される各ハンドヘルドデバイス上にダウンロードするオプションが与えられる。これら従業員は、ウェブポータルの最小のリソースを利用しながら、ウェブポータルと連続的に通信し、最新版を取得し、変更等を行うことができる。
【００２１】
図２及び図３は、ウェブポータル２０５及びクライアントコンピュータ２４５上のコンポーネントの実施形態のブロック図を示す。図２に示すように、ウェブポータル２０５は、クライアントコンピュータ２４５が要求するサービスを提供するサーバコンピュータにホストされる。１つの実施形態では、図７に示すように、ウェブポータル２０５は、サービスマネージャ７０５と、機能マネージャ７１０と、実行マネージャ７１５と、契約マネージャ７２０とから構成される。好ましい実施形態では、ウェブポータル２０５の長期メモリ２２５は、予め定義した構成２３５を備えたランタイムエンジン２４０をも備える。ユーザ／開発者が、例えば、クライアントコンピュータに格納されたウェブブラウザや端末エミュレータ等を介してウェブポータル２０５にアクセスする場合、必要とするサービスに関するオプションが与えられる。例えば、Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｅｎｖｉｒｏｎｍｅｎｔｓ、エディタ、及び、アプリケーションを書くために必要な他のツールのような様々なツールから選択することを求められる。１つの実施形態では、ユーザ／開発者は、予め定義した構成２３５を有するランタイムエンジン２４０を選択するオプションが与えられる。このランタイムエンジン２４０は、リンカ２３０と、予め定義した構成２３５とを備える。サービスマネージャ７０５は、この全プロセスを制御し、かつ、ユーザ設定を受け付けるようにプログラムされる。１つの実施形態では、サービスマネージャ７０５は、ある所定の条件に基づいて費用を自動的に定めるか、あるいは、ウェブポータル２０５の所有者がユーザ設定を評価し推定値を提供することを待つことができる。
【００２２】
ユーザが料金を一旦受け取ってアプリケーション開発のために必要なツールを選択すると、ウェブポータル２０５上の機能マネージャ７１０が制御を行う。１つの実施形態では、機能マネージャ７１０は、リソースの割り当てを取り扱うことに加えて、ユーザによって要求されるワークスペースを作成し、かつ、ユーザ設定に応じてツールをロードすることに責任を有する。予め定義した構成を有するランタイムエンジンを用いてアプリケーションを開発することをユーザが選択した場合、機能マネージャ７１０は、ユーザが、予め定義した構成２３５を有するランタイムエンジン２４０のコピーをダウンロードすることを可能にする。そのようにして、クライアント計算システムは、リッチクライアント計算システムになる。図３に示すように、クライアント計算システム及びウェブポータルは、同じランタイムエンジン、及び予め定義した構成を備える。ランタイムエンジン及び予め定義した構成を有するクライアントは、リッチクライアント計算システムと呼ばれる。
【００２３】
図４に示すように、開発プロセスの開始前に、ユーザ／開発者には多くのオプションが与えられる。ユーザ／開発者は、ウェブポータルへログオンし、必要とするツール、機能等を選択する。好ましい実施形態では、ユーザは、予め定義した構成を有するランタイムエンジンをダウンロードし、ランタイムエンジンに備えられた技術に基づいてアプリケーションを開発する。ウェブポータル機能が作成され、異なるプロジェクトで作業している多くの異種のユーザ／開発者が同時にアプリケーションを開発することができる。サービスマネージャ７０５はまず、ユーザ設定を受け取り、ユーザによって入力されたデータを、機能マネージャ７１０に与えることに責任を有する。機能マネージャ７１０は、サーバ上のハードディスク空間を割り当て、かつ、例えばユーザ／開発者によって設定されたスケジュールのようなユーザ設定に基づいてトリガされるあるイベントをスケジュールする。１つの実施形態では、ユーザ／開発者が、予め定義した構成を有するランタイムエンジンを使用すると決定した場合、機能マネージャ７１０は、ユーザが自分のタスクを行うための特定のソフトウェアをロードする。ランタイムエンジンは、ユーザ／開発者にとって有益ないくつかの機能を示す。ランタイムエンジンは、主として、複数の予め定義した構成（ＰＤＳ）及びリンカを備える。
【００２４】
開発された全てのプログラムは、意図された同じ機能を有する多くのコンポーネントから構成される。例えば、フォームコンポーネントを有するプログラムは、グラフィックユーザインタフェース、データ入力用フィールド、フォームを他のフォーム又はコンポーネントにリンクさせるボタン、フォームに入力されたデータが、他のフォーム又はコンポーネントにどのように影響するかを示す相互関係情報、及び、式を計算する式解答能力を有する機能を有する。例えば、メニューコンポーネントタイプは、特定のグラフィックディスプレイを示し、かつ、実行時に他の様々なコンポーネントタイプにリンクするためのドロップダウンメニュー及びドロップダウンメニュー選択を含む。
【００２５】
従って、作成されたＰＤＳは、幾つかのコンポーネントタイプのうちの１つと同じ意図された機能を有する。当業者は、他の意図された機能を有する他のコンポーネントタイプが存在し、これら他のコンポーネントタイプが本発明の範囲内にあることを認識する。ユーザ設定に基づいて、ウェブポータルのサービスプロバイダは、意図した機能のためのアプリケーションを開発しながら、ユーザ／開発者による用途の予め定義した構成を生成するか、あるいは、ユーザ／開発者に対して、自分の用途のために予め定義した構成を作成することを許可することができる。
【００２６】
ユーザ／開発者はまた、アプリケーション開発のプロセス中のユーザ／開発者を支援するヘルプ機能が提供される。例えば、提供されるヘルプサービスは、ウェブポータルの所有者によって利用可能とされ、かつ、ユーザ／開発者が、他の開発者又は経験のあるプログラマと話すことができるチャットウィンドウを含み、出くわした問題に関する質問を尋ねたり、あるいは、チャットをしていない他のユーザ／経験のあるプログラマが、書き込まれた質問に対して後で回答できるように、質問を書き込むためのフォームが提供される。
【００２７】
ユーザ／開発者が、アプリケーションを開発するプロセスにある場合、機能マネージャ７１０は、ウェブポータルの制御全体に責任を有する。１つの実施形態では、機能マネージャ７１０は、ユーザによって利用されたワークスペースのログを保持し、ユーザが最後に操作したときのワークスペースと同じ外観及び感覚をユーザに提供する。これは、ユーザ／開発者が、自分のニーズに応じてあるツールを再設定し、ログオンする毎に、選択されたアイテムをアレンジしたり、あるいは自分の好みに応じてワークスペースを再生成する時間を節約する。機能マネージャ７１０は更に、ユーザ特権及び認証の作成に責任を有する。ユーザ／開発者が、アプリケーションを開発したい場合、機能マネージャ７１０は更に、クライアントを認証することに責任を有し、これによって、特権を確立したユーザ／開発者に基づいて、ツール及び機能に対するアクセスを提供する。例えば、開発者は、開発サイクルのカレンダーをスケジュールするためのアクセスが与えられず、機能マネージャ７１０は、開発者に、フルアクセスを与えないかもしれない。
【００２８】
ステップ毎に、契約マネージャ７２０は、アプリケーション開発が完了した場合、ユーザに手数料が与えられるようにユーザによって利用されるツールに加えて、時間のログを保持するようにプログラムされている。契約マネージャ７２０は、クライアント（ユーザ）とウェブポータルの所有者との間の合意に基づいてコストを更新するように予めプログラムされる。例えば、料金が、利用時間ベースである場合、契約マネージャ７２０は、ユーザ／開発者がウェブポータル上で費やした時間長さのログを保持し、それに従って料金を更新する。
【００２９】
好ましい実施形態では、クライアントが、ランタイムエンジンをダウンロードし、リッチクライアント計算システムになる。ランタイムエンジンは、予め定義した構成を備える。ランタイムエンジンをダウンロードする場合、リッチクライアント計算システムは、ランタイムエンジンの技術を用いて、アプリケーションを開発するために備えられる。
【００３０】
図５は、ランタイムエンジンを用いて、ユーザ／開発者によって開発されるアプリケーションの開発及び実行プロセスを示す。ステップ５０５において、クライアントが、ビジネスロジックを用いて、あるいはソースコードを書き込んで、ウェブポータル上でアプリケーションを開発すると、実行マネージャ７１５が制御を行う。ステップ５１０では、ユーザには、ユーザのニーズのためにアプリケーションを展開させるためにサーバコンピュータによって提供されるリソースを使用するオプションが与えられ、相互に合意した費用で行うオプションが与えられ、実行マネージャ７１５に制御が与えられ、プロセスが監視される。実行マネージャ７１５は、契約マネージャ７２０と協調して動作し、アプリケーションを展開する際にユーザによって費やされた時間のタブが維持され、これにより、費用を更新することができる。ユーザはまた、サーバコンピュータ上の他のコンポーネントを利用することによって、実行中ベースでアプリケーションを微調整することができる。
【００３１】
ユーザ／開発者は、ランタイムエンジン内の予め定義した構成を用いて、ウェブポータル上でアプリケーションを開発する。また、この予め定義した構成は、リッチクライアント計算システム上にも存在し得る。ユーザ／開発者が、ウェブポータルからのアプリケーションの実行を望む場合、ステップ５１５において、アプリケーションのソースコードをコンパイルする。コンパイルされると、ステップ５２０において、ソースコードからのパラメータ情報が、クライアント計算システムに送られる。このパラメータ情報は、予め定義した構成で定義されたユーザに特有の情報である。例えば、フォームコンポーネントの予め定義した構成の場合、パラメータ情報は、フォーム名、フォームに含まれるフィールド、フォーム上の特定のボタン、フィールド及びボタンの名前等を備える。当業者は、予め定義した幾つかの構成がユーザ／開発者に提供されることを認識するものとする。コンポーネントに対応する予め定義した各構成のためのパラメータ情報は、異なっているものとする。予め定義した同じ構成もまた、ユーザ／開発者によって特定される情報に基づいて、異なるパラメータ情報を有することができる。
【００３２】
ステップ５２０では、スクリプトのパラメータ情報がクライアントに送られる。ステップ５３０では、リッチクライアント計算システムに存在するリンカが、リッチクライアント計算システムにおいて、パラメータ情報を、予め定義した構成にリンクさせ、リッチクライアント計算システムにおいて、スクリプト特有の予め定義した構成を生成することに責任を有する。その後、ランタイムエンジンは、ステップ５３５において、リッチクライアント計算システムにおいて、スクリプト特有の予め定めた構成を実行する。
【００３３】
実行プロセス中、クライアントは、ほとんどの実行を行う。アプリケーションのオリジナルのスクリプトは、ウェブポータルに存在する。ウェブポータルにおいて存在するが、リッチクライアント計算システムに存在しない追加情報が必要な場合、リッチクライアント計算システムは、ステップ５４０において、ウェブポータルに要求を送る。追加情報は更に、ウェブポータルに存在するデータベースからデータを取得することを含み得る。例えば、宅配会社の場合、その建物内に、データベースを維持するためのインフラストラクチャを有さないかもしれない。このデータベースはウェブポータルに存在し、アプリケーションのユーザ、すなわち、この宅配会社の従業員は、このデータベースからの情報を必要とするかもしれない。この場合、ステップ５５０及び５５５において、この追加情報を取得するために、ウェブポータルがコンタクトされる。更に、異なるコンポーネントを実行するために、追加パラメータ情報がスクリプトから要求される場合にも、ウェブポータルはコンタクトされる。ユーザがアプリケーションを閉じると、アプリケーション実行が終了する。
【００３４】
アプリケーション開発の全プロセスは、幾つかの段階から構成される。これら５つの主要な段階を図６に示す。本発明の１つの実施形態では、プロセスを容易にするために、アプリケーション開発及び展開の全てのレベルにおいてユーザを支援するツールが利用可能になる。含まれる段階を以下に示す。ユーザ好みのツールを選択する柔軟性をユーザに与えるため、アプリケーション開発の各段階に関連した幾つかのツールが提供される。
【００３５】
アプリケーション開発の第１段階は、十分な要求分析６０５を含む。このプロセスは、開発マネージャと、アプリケーションを開発するために開発マネージャと携わることを望むクライアントとの間の対話型セッションを含む。アプリケーションによって必要とされる機能、ユーザ数、展開中に利用可能なリソース、クライアントがクライアントサーバ環境上でのアプリケーションを好むか、あるいは、スタンドアロン環境でのアプリケーションを好むかのようなアーキテクチャ、相互運用、信頼性、再利用要求および他の同様の要求のようなクライアントの要求の詳細分析が議論され特定される。本発明は、アプリケーション開発の要求分析段階を容易にする際に、ユーザ／開発者を支援するためにライセンスを受け、ウェブポータルの所有者によって提供されるＤｏｏｒｓ、Ｒｅｑｕｉｓｉｔｅ  Ｐｒｏ、Ｐｒｏｔｅｇｅのような幾つかのツールを提供する。
【００３６】
設計段階６１０は、要求分析段階６０５の直後に始められる。上級開発者及びアプリケーション開発マネージャは、アプリケーションの設計について議論する。設計は、アプリケーションをプログラムするための青写真として役立つ。例えば、設計プロセスは、アプリケーションで実施されるクラス及び機能のためのブロック図を作成することを含み、アプリケーションの外観と感覚、グラフィックユーザインタフェース、及び他の類似のアプリケーション設計特性が特定される。Ｒａｔｉｏｎａｌ  Ｒｏｓｅ、ＴｏｇｅｔｈｅｒＪのようなツールは、これらのタスクを実行する際にユーザ／開発者を支援する。ウェブポータルの所有者は、アプリケーショ開発中にユーザ／開発者によって使用されるのと同様に、これらのツールを許可し、利用可能にすることができる。
【００３７】
開発マネージャは、上級開発者とともに、アプリケーションの設計をプログラマに説明するためにこの青写真を用いる。青写真からコードを直接的に生成するツールは、処理を容易にするために使用することができる。１つの実施形態では、ユーザがプログラマではない場合、ユーザは、コードを書くことが省略されるツールを使用するオプションが与えられる。経験を積んだプログラマの場合、統合された開発環境とその他のツールが提供され、ユーザに、自分のプログラミング言語及びツールを選択する柔軟性が与えられる。プログラマは、今や、アプリケーションを開発し３１５、このアプリケーションを実行可能にするためにコンパイルすることができる。
【００３８】
テスト段階６２０は、例えば、メモリリーク、相互運用、誤り等のためにアプリケーションをテストすることのように、アプリケーションの様々な態様をテストするためにテストツールを使用することを含む。ユーザは、誤りを正し、ワーキングアプリケーションを生成することができる。この段階は、アプリケーションの開発段階を完了させる。最終段階は、展開段階６２５であり、ここでユーザは、アプリケーションをパッケージし、ヘルプマニュアル及びその他市場に対する付随情報を生成し、このアプリケーションを展開させる。
【００３９】
ウェブポータルへのアクセスは、非同期ベースになりえる。ここでは、情報が必要とされる場合にウェブポータルがコンタクトされ、この情報が一旦受け取られると、接続を切り離すことができる。
【図面の簡単な説明】
【００４０】
【図１】クライアント−サーバアーキテクチャを示す。
【図２】クライアントがリッチクライアントになる前のウェブポータル及びクライアントのアーキテクチャのブロック図を示す。
【図３】クライアントがリッチクライアントであるウェブポータル及びクライアントのアーキテクチャのブロック図を示す。
【図４】本発明の実施形態に従ったアプリケーション開発中に含まれるステップのフロー図を示す。
【図５】本発明の実施形態に従ったアプリケーション開発中に含まれるステップのフロー図を示す。
【図６】本発明の実施形態に従ったアプリケーション開発中に含まれるステップのフロー図を示す。
【図７】本発明の実施形態に従ったウェブポータル上でのアプリケーション開発のプロセスを容易にするコンポーネントのフロー図である。
【図１】
2008533549.tif 000003
【図２】
2008533549.tif 000004
【図３】
2008533549.tif 000005
【図４】
2008533549.tif 000006
【図５】
2008533549.tif 000007
【図６】
2008533549.tif 000008
【図７】
2008533549.tif 000009
【国際調査報告】
2008533549.tif 000010
2008533549.tif 000011
2008533549.tif 000012
2008533549.tif 000013