(57)【要約】  シンクライアントソフトウエア開発環境を提供するための様々なテクノロジーおよび技術が開示される。サーバーベースのソフトウエア開発アプリケーションは、クライアントコンピュータ上のシンクライアントユーザーインタフェースの形態で表示されるよう動作可能に提供される。サーバーベースの開発アプリケーションは、サーバーベースのコンパイラを備えている。インプットは、クライアントコンピュータから受信されて、サーバーベースのソフトウエア開発アプリケーションを使用してソフトウエア開発プロジェクトと相互作用する。ソフトウエア開発プロジェクトはソフトウエア開発アプリケーションからアクセス可能なロケーションにストアされる。コンパイルされたアプリケーションは、サーバーベースのソフトウエア開発アプリケーションで生成され、クライアントコンピュータに提供される。共有機能は、ソフトウエア開発プロジェクトが異なったクライアントコンピュータから複数のユーザーによりアクセスされることを可能にしている。
2010508580.tif 000002
【特許請求の範囲】
【請求項１】
シンクライアント開発環境を提供する方法であって、前記方法は、
クライアントコンピュータにおいてシンクライアントユーザーインタフェースの形態で表示されるよう動作可能なサーバーベースのソフトウエア開発アプリケーションを提供すること（２４２）と、
サーバーベースのソフトウエア開発アプリケーションを使用して、クライアントコンピュータからのインプットを受信して、ソフトウエア開発プロジェクトと相互作用すること（２４４）と、
サーバーベースのソフトウエア開発アプリケーションを使用して、クライアントコンピュータからコンパイル選択を受信して、ソフトウエア開発プロジェクトをコンパイルすること（２５０）と、
サーバーベースのソフトウエア開発アプリケーションでコンパイルされたアプリケーションを生成すること（２５２）と、
コンパイルされたアプリケーションを目標のコンピュータに提供すること（２５４）と
を含むことを特徴とする方法。
【請求項２】
コンパイルされたアプリケーションは、ダウンロードのための少なくとも１つのファイルを作成することによって、目標のコンピュータに提供されることを特徴とする請求項１に記載の方法。
【請求項３】
少なくとも１つのファイルが実行可能プログラムを含む（２５４）ことを特徴とする請求項１に記載の方法。
【請求項４】
前記目標のコンピュータは、クライアントコンピュータである（２５４）ことを特徴とする請求項１に記載の方法。
【請求項５】
サーバーベースのソフトウエア開発アプリケーションは、複数のオペレーティングシステムプラットフォームについての開発をサポートする（２５２）ことを特徴とする請求項１に記載の方法。
【請求項６】
前記ソフトウエア開発プロジェクトは、複数のユーザーによってアクセスされ得る（２７２）ことを特徴とする請求項１に記載の方法。
【請求項７】
サーバーベースのソフトウエア開発アプリケーションは、作成されたソフトウエア開発プロジェクトが、複数のユーザーのうちのいずれのユーザーが１または複数のアクセス権を有するかをユーザーが規定できるよう動作可能である（２４８）ことを特徴とする請求項１に記載の方法。
【請求項８】
前記ソフトウエア開発プロジェクトがサーバーコンピュータにストアされるよう動作可能である（２４６）ことを特徴とする請求項１に記載の方法。
【請求項９】
前記ソフトウエア開発プロジェクトは、クライアントコンピュータにストアされるよう動作可能である（２４６）ことを特徴とする請求項１に記載の方法。
【請求項１０】
サーバーベースのソフトウエア開発アプリケーションは、サーバー上で少なくとも１ギガバイト以上のストレージ空間を占有し、複数のソフトウエア開発機能を提供する（２４２）ことを特徴とする請求項１に記載の方法。
【請求項１１】
サーバーベースのソフトウエア開発アプリケーションは、クライアントコンピュータに、コマンド完了、シンタックスカラーリング、およびパラメータヘルプからなるグループから選択される開発機能を提供する（２４２）ことを特徴とする請求項１に記載の方法。
【請求項１２】
サーバーベースのソフトウエア開発アプリケーションは、ＡＪＡＸ技術に基づいた少なくともいくらかのコマンドを使用して、シンクライアントユーザーインタフェースを提供するよう動作可能である（２４２）ことを特徴とする請求項１に記載の方法。
【請求項１３】
コンピュータに、請求項１に記載のステップを実行させるコンピュータ実行可能命令を記録したコンピュータ可読媒体。
【請求項１４】
コンピュータに、
少なくとも１つのクライアントコンピュータに、シンクライアントユーザーインタフェースの形態で表示されるよう動作可能なサーバーベースのソフトウエア開発アプリケーションを提供する（２０６）ステップであって、サーバーベースのソフトウエア開発アプリケーションは、サーバーベースのコンパイラを含む（２０８）、ステップと、
少なくとも１つのクライアントコンピュータからのインプットを受信して、シンクライアントユーザーインタフェースを使用して、サーバーベースのソフトウエア開発アプリケーションにアクセスする（２１０）ステップと、
クライアントコンピュータがサーバーベースのソフトウエア開発アプリケーションにアクセスされる場合に、クライアントコンピュータにより作成された少なくとも１つのユーザープロジェクトをストアする（２１２）ステップと
を実行させるコンピュータ実行可能命令を記録したことを特徴とするコンピュータ可読媒体。
【請求項１５】
サーバーベースのソフトウエア開発アプリケーションは、コマンド完了、シンタックスカラーリング、およびパラメータヘルプからなるグループから選択される開発機能を提供するようさらに動作可能である（２１６）ことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
サーバーベースのコンパイラを備えたサーバーベースのソフトウエア開発アプリケーションを提供するステップであって、前記ソフトウエア開発アプリケーションは、シンクライアントユーザーインタフェースを介して複数のクライアントコンピュータからアクセス可能である（２７２）、ステップと、
サーバーベースのソフトウエア開発アプリケーションを使用して、複数のクライアントコンピュータのうちの第１のクライアントコンピュータからのインプットを受信して、ソフトウエア開発プロジェクトを作成する（２７４）ステップと、
サーバーベースのソフトウエア開発アプリケーションからアクセス可能なストレージロケーションにソフトウエア開発プロジェクトをストアする（２７６）ステップと、
複数のクライアントコンピュータのうちの第２のクライアントコンピュータからのインプットを受信して、ソフトウエア開発プロジェクトにアクセスする（２７８）ステップと、
ソフトウエア開発プロジェクトを第２のクライアントコンピュータに提供する（２８０）ステップと
を含むことを特徴とする、サーバーベースのソフトウエア開発プロジェクト共有のための方法。
【請求項１７】
ソフトウエア開発プロジェクトに関連して第２のクライアントコンピュータからコマンドを受信し、コマンドはソフトウエア開発プロジェクトと共にストアされる（２８０）ことを特徴とする請求項１６に記載の方法。
【請求項１８】
サーバーベースのソフトウエア開発アプリケーションにアクセスする前に、第１のクライアントコンピュータおよび第２のクライアントコンピュータは、適正なログイン権限の提供を要求される（２７２）ことを特徴とする請求項１６に記載の方法。
【請求項１９】
サーバーベースのソフトウエア開発アプリケーションは、第１のユーザーが、複数のユーザーのいずれかのユーザーがプロジェクトへの１つまたは複数のアクセス権を有するかを規定することを可能とする（２７４）ことを特徴とする請求項１６に記載の方法。
【請求項２０】
請求項１６に記載されたステップをコンピュータに実行させるコンピュータ実行可能命令を記録した(２００)ことを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシンクライアントソフトウエア開発環境に関する。
【背景技術】
【０００２】
今日のマイクロソフト（商標）Visual Studio、Eclipseなどのソフトウエア開発環境は、シッククライアント基準に基づいている。このような環境において、開発環境が利用可能になる前にインストールするのに時間がかかり得るマルチギガバイトソフトウエアインストールは一般的である。ソフトウエア開発アプリケーションがインストールされるマシンは、編集を処理するのに十分なリソースを持たなければならず、大きなRAMおよび他のシステムリソースをしばしば必要とし得る。これは、ローカルの開発マシンには重荷となる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
さらに、そのようなソフトウエア開発環境のユーザーは、他人にプロジェクトを電子メール送信することまたはソースコードを管理するバージョンコントロールシステムを使用することにより、サードパーティのコード共有メカニズムを使用することなく、簡単に友人および／または同僚と自分の仕事を共有することができる。プロジェクトを電子メール送信することに関する１つの問題は、関与するソースコードファイルがしばしば大量であり、電子メールの受信者は、彼らのコンピュータにもインストールされたソフトエア開発アプリケーションを持たなければならないことである。バージョンコントロールシステムに関する１つの問題は、それらはしばしばシッククライアントインストールにもまた限定され、会社のセキュリティ制約のために、同じ特別な会社の同僚からのみ典型的にはアクセスされ得る。
【課題を解決するための手段】
【０００４】
さまざまなテクノロジーおよび技術がシンクライアントソフトウエア開発環境を提供することが開示される。サーバーベースのソフトウエア開発アプリケーションは、クライアントコンピュータにおけるシンクライアントユーザーインターフェースでディスプレイされるよう動作可能であるように提供される。サーバーベースの開発アプリケーションは、サーバーベースのコンパイラを備え、それは、しばしばリソース集約的であり得るコンピレーションタスクを取り扱う。インプット（入力）はクライアントコンピュータから受信されて、サーバーベースのソフトウエア開発アプリケーションを使用して、ソフトウエア開発プロジェクトと相互作用する。ソフトウエア開発プロジェクトがソフトウエア開発アプリケーションからアクセス可能なロケーションにストアされる。コンパイル選択は、クライアントコンピュータから受信されて、サーバーベースのソフトウエア開発アプリケーションを使用してソフトウエア開発プロジェクトをコンパイルする。クライアントコンピュータからのコンパイル選択に応答して、コンパイルされたアプリケーションは、サーバーベースのソフトウエア開発アプリケーションで生成され、ファイルダウンロード機能を利用して、クライアントコンピュータに提供される。
【０００５】
ある実施において、コマンド完了、シンタックスカラーリング、およびパラメータヘルプなどのさまざまな開発機能が、シンクライアントユーザーインターフェースにおいてユーザーに提供されて、いくらかの非限定的な例示を指定する。他の実施では、共有機能は、ソフトウエア開発プロジェクトが異なるコンピュータから複数のユーザーによりアクセスされて、ユーザーが修正をレビューし、および／またはプロジェクトにコメントすることを可能としている。１つまたは複数のセキュリティ設定は、１または複数のユーザーによるプロジェクトへのアクセスを制御し得る。ある実施において、プロジェクトを作成したユーザーは、そのプロジェクトにアクセスできるユーザーを制御する。
【０００６】
ここの記述は、詳細な説明において以下にさらに記述される単純化された形式でコンセプトの選択を導入するように提供される。ここの記述は、特許請求の範囲に記載された主題のキーとなる特徴または必須の特徴を識別するようには意図されておらず、特許請求の範囲に記載された主題の範囲を判断する手段として使用されることも意図されていない。
【図面の簡単な説明】
【０００７】
【図１】コンピュータシステムの一実施形態を示す図である。
【図２】図１のコンピュータシステムで動作するサーバーベースのソフトウエア開発アプリケーションの一実施形態を示す図である。
【図３】シンクライアントユーザーインタフェースでアクセスされ得るサーバーベースのソフトウエア開発アプリケーションを提供することに関与する段階を図示する、図１のシステムの一実施形態についてのプロセスフロー図である。
【図４】シンクライアントソフトウエア開発プロジェクト共有機能の使用に関与する段階を図示する、図１のシステムの一実施形態についてのプロセスフロー図である。
【図５】シンクライアントユーザーインタフェースにおいてアクセス可能なサーバーベースのソフトウエア開発アプリケーションの提供に関与するコンポーネントを図示する、図１のシステムの一実施形態を示すロジカル図である。
【図６】ユーザーがプロジェクトを作成するかまたは存在するプロジェクトを継続することを可能とするサーバーベースのソフトウエア開発アプリケーションのためのシンクライアントユーザーインタフェースを図示する、図１のシステムの一実施形態のシミュレーション画面を示す図である。
【図７】ユーザーがソースコードを記述し、ソースコードをコンパイルし、結果を見ることを可能とするサーバーベースのソフトウエア開発アプリケーションのシンクライアントユーザーインタフェースを図示する、図１のシステムの一実施形態のシミュレーション画面を示す図である。
【発明を実施するための形態】
【０００８】
本発明の原理の理解を促進する目的で、図面に表された実施形態が参照され、特定の言語が同様のものを記述するために使用される。それでも、その範囲は限定されることは意図されていないことを理解されたい。記述された実施形態におけるいずれの選択およびさらなる修正も、原理のさらなる適用も、ここで記載されたものとして当業者には解釈されるであろう。
【０００９】
システムは、一般的状況においては、ソフトウエア開発アプリケーションとして記述されるが、これらに加えて、システムは他の目的をも提供し得る。ある実施においては、ここで記述される１または複数の技術が、マイクロソフト（商標）Visual Studio、Eclipse、または１もしくは複数のオペレーティングシステムプラットフォームのソフトウエアをユーザーが作成することを可能にする、他のいずれかの種類のプログラムまたはサービスなどのソフトウエア開発プログラム内の機能として実現され得る。ある実施において、サーバーベースのソフトウエア開発アプリケーションは、シンクライアントユーザーインタフェースにおいてユーザーからアクセス可能に提供される。サーバーベースのコンパイラが編集および他のリソース集約的タスクを実行し、ユーザーのコンピュータは実行する必要がない。ある特定のユーザーのソフトウエア開発プロジェクトのファイルは、選択的に複数のユーザーで共有されることができる。
【００１０】
図１に示されるように、１または複数のシステム部分を実施するために使用する例示的コンピュータシステムは、コンピューティングデバイス１００および／または１３０などの１つ又は複数のコンピューティングシステムを含む。その一番基本的な構成では、コンピューティングデバイス１００および／または１３０は、少なくとも１つのプロセッシングユニット（それぞれ１０２と１３２）と、メモリ（それぞれ１０４と１３４）を典型的に含む。正確な構成およびコンピューティングデバイスのタイプによって、メモリ１０４または１３４は、（ＲＡＭなどの）揮発性、（ＲＯＭ、フラッシュメモリなどの）不揮発性またはこれら２つのコンビネーションであり得る。この最も基本的な構成は、図１において、境界線１０６および１３６によって図示されている。
【００１１】
さらに、デバイス１００および／または１３０は、追加的特徴／機能も備えていてもよい。例えば、デバイス１００および／または１３０は、限定されないが、磁気的または光学的なディスクまたはテープを含む（リムーバブル（取り外し可能）および／非リムーバブル（取り外し不能））の追加的なストレージを含んでいてもよい。このような追加的なストレージは、リムーバブルストレージ（それぞれ１０８および１３８）および非リムーバブルストレージ（それぞれ１１０および１４０）によって図１に図示されている。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどのストレージ情報についてのあらゆる方法または技術で実現される揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含んでいる。メモリ１０４および１３４、リムーバブルストレージ１０８および１３８、ならびに非リムーバブルストレージ１１０および１４０は、全てコンピュータストレージ媒体の例示である。コンピュータストレージ媒体は、限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＲＰＯＭ、フラッシュメモリ、またはたのメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ(digital versatile disks)または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはデバイス１００および／または１３０からアクセスされ得る所望の情報をストアするために使用され得る他の磁気ストレージデバイスを含む。このようなコンピュータストレージ媒体は、デバイス１００および／または１３０の部分からアクセスされ得る。
【００１２】
コンピューティングデバイス１００および／または１３０は、コンピューティングデバイス１００および／または１３０が、互いにおよび／または１つまたは複数のコンピューティングデバイス（それぞれ１５０、１６０および１７０）と通信することを可能にする１つまたは複数の通信接続を含んでいる。通信接続１１４および１４４は、通信媒体の例示である。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは搬送波または他の搬送メカニズムなどの変調されたデータ信号の形態の他のデータを典型的には含んでおり、いずれの情報伝送媒体をも含む。「変調されたデータ信号」との用語は、１または複数の特徴のセットを有し、または情報を信号の形態にエンコードする方法で変換された信号を意味する。例示の方法で、限定でないが、通信媒体は、有線のネットワーク又は直接接続などの有線媒体と、アコースティック、ＲＦ、赤外線、および他の無線媒体などの無線媒体とを含む。ここで使用されるコンピュータ可読媒体との用語は、ストレージ媒体および通信媒体の両方を含む。
【００１３】
ある実施において、コンピューティングデバイス１００は、通信手段１１４およびネットワークを介した通信手段１４４を使用して、サーバーコンピュータ１３０と通信するクライアントコンピュータである。この実施において、クライアントコンピューティングデバイス１００のシンクライアント（例えばブラウザ）ユーザーインタフェース１１８は、（もしあれば）ユーザソフトウエア開発プロジェクトデータ１５０、および１または複数のソフトウエア開発タスクを実行するサーバーコンピューティングデバイス１３０上のサーバーベースのソフトウエア開発アプリケーション２００にアクセスする。ユーザソフトウエア開発プロジェクトデータ１５０および／またはサーバーベースのソフトウエア開発アプリケーション２００が、同じコンピュータまたは異なるコンピュータにストアされ得るが、明確さのために同じサーバーコンピューティングデバイス１３０上に表現されていることを認められたい。ある実施において、クライアントコンピューティングデバイス１００のシンクライアントユーザーインタフェース１１８は、ブラウザベースのユーザーインタフェースであり、サーバーコンピューティングデバイス１３０はウェブサーバである。
【００１４】
コンピューティングデバイス１００および１３０は、キーボード、マウス、ペン、音声インプットデバイス、タッチ入力デバイスなどのインプットデバイス（それぞれ１１４と１３４）を備えていてもよい。ディスプレイ、スピーカー、プリンタなどのアウトプットデバイス（それぞれ１１６と１３６）もまた含まれている。これらのデバイスは、周知であり、ここで詳細に論じる余地はない。
【００１５】
図１を参照しつつ図２に転じてみると、コンピューティングデバイス１００で動作するサーバーベースのソフトウエア開発アプリケーション２００が図示されている。サーバーベースのソフトウエア開発アプリケーション２００は、コンピューティングデバイス上に存在するアプリケーションプログラムの１つである。しなしながら、サーバーベースのソフトウエア開発アプリケーション２００は、１または複数のコンピュータ上のコンピュータ実行可能命令として、および／または図１に示されるよりも異なったバリエーションで、選択的にまたは付加的に実施され得る。選択的にまたは追加的に、サーバーベースのソフトウエア開発アプリケーション２００の１または複数の部分は、システムメモリ１０４の部分、他のコンピュータおよび／またはアプリケーション１１５、またはコンピュータソフトウエア技術においてそれを引き起こす他のバリエーションであり得る。
【００１６】
サーバーベースのソフトウエア開発アプリケーション２００は、プログラムロジック２０４を含んでおり、それはここで記述する技術のいくらかまたは全てを実行する能力がある。プログラムロジック２０４は、少なくとも１つのクライアントコンピュータ上のシンクライアントユーザーインタフェースの形態で表示されるよう動作できるサーバーベースのソフトウエア開発アプリケーションを提供するロジック２０６と、開発アプリケーションの部分としてのサーバーベースのコンパイラを提供するためのロジックであって、コンパイラはコンピレーションを要求するクライアントコンピュータに基づいて１又は複数のコンパイルされたファイルを特定の目標に提供するよう動作できる、ロジック２０８と、シンクライアントユーザーインタフェースを使用して少なくとも１つのクライアントコンピュータからの入力を受け取って開発アプリケーションにアクセスするロジック２１０と、クライアントコンピュータがサーバーベースのソフトウエア開発アプリケーションにアクセスしたときに、クライアントコンピュータによって作られる少なくとも１つのユーザープロジェクトをストアするロジック２１２と、プロジェクトのセキュリティ設定の組（set）に基づいて、ユーザープロジェクトが１または複数のユーザーに利用（例えばレビュー、編集、および／またはコメント作成）可能とするロジック２１４と、コマンド完了、シンタックスカラーリング、およびパラメータヘルプなどの複数の開発機能を提供するロジック２１６と、アプリケーションを操作する他のロジック２２０とを含む。
【００１７】
図１および２を参照しつつ、図３および４に転じてみると、サーバーベースのソフトウエア開発アプリケーションの１または複数の実行を実現する段階２００は、さらに詳細に記述される。図３は、シンクライアントユーザーインタフェースにおいてアクセスされることが可能なサーバーベースのソフトウエア開発アプリケーションを提供する段階２００を図示するフローチャートである。１つの形態において、図３のプロセスは、少なくとも部分的にコンピューティングデバイス１００の動作ロジックにおいて実現される。処理手続きは、スタートポイント２０４で開始し、クライアントコンピュータ上のシンクライアントユーザーインタフェースの形態で表示されるよう動作することができるサーバーベースのソフトウエア開発アプリケーションを提供する（段階２４２）。ある実施において、シンクライアントユーザーインタフェースは、ＡＪＡＸまたは他の技術に基づくいくらかのコマンドを使用するオペレーティングシステムプラットフォームの種類のものからウェブブラウザでアクセス可能である。ある実施において、コマンド完了、シンタックスカラーリング、およびパラメータヘルプなどの開発機能が提供され、いくらかの非限定的例示を指定する（段階２４２）。選択的または追加的に、シンクライアントユーザーインタフェースが適正に機能するまえに、１又は複数のウェブコンポーネントは、サーバーベースの開発アプリケーションから特定のクライアントコンピュータに最初にダウンロードされる。サーバーベースのソフトウエア開発アプリケーションは、約１ギガバイトのサーバーストレージスペースを占有し得る（段階２４２）。
【００１８】
インプットは、クライアントコンピュータから受信され、ソフトウエア開発アプリケーションを使用して、ソフトウエア開発プロジェクトと相互作用する（段階２４４）。ソフトウエア開発プロジェクトは、（例えばサーバーコンピュータ、クライアントコンピュータなどに）ストアされ、ソフトウエア開発アプリケーションによりアクセス可能である（段階２４６）。ソフトウエア開発プロジェクトは、１または複数のユーザーが所有し得るそのプロジェクトに対するアクセス権限（読み出しのみ可能、読み書き可能、コピー保護されているなど）を規定する１または複数のセキュリティ設定を選択的に備えることができる（段階２４８）。ある実施において、プロジェクトを作成できるユーザーは、アクセス権限を制御するセキュリティ設定を修正することができる（段階２４８）。選択的または追加的に、プロジェクトマネージャーまたはネットワークアドミニストレータなどの）他のユーザーは、許可が認証され、１または複数のプロジェクトのセキュリティ設定を修正することができる。
【００１９】
コンパイル選択は、ソフトウエア開発アプリケーションを使用して、クライアントコンピュータから受信されて、ソフトウエア開発プロジェクトをコンパイルする（段階２５０）。コンパイルされたアプリケーション（または１もしくは複数のコンポーネント）がサーバーベースのコンパイラによってソフトウエア開発アプリケーションで生成される（段階２５２）。ここで使用する「コンパイル」との用語は、ＥＸＥ(executable)ファイル、ＤＬＬ(dynamic link library)、コントロール、プラグインなどの実行可能フォーマットにソースコードを変換することとして定義される。コンパイルされたアプリケーションは、（クライアントコンピュータまたは他のコンピュータなどの）目的のコンピュータに提供される、例えばダウンロードで利用可能な１または複数のファイル（実行可能ファイル、ＤＬＬ、プラグイン、コントロールなど）を作成することなどである（段階２５４）。選択的または追加的に、コンパイラによって生成されたファイルは、サーバーによって自動的に展開され得る、例えばウェブパートまたはウェブアプリケーション拡張開発は関係し、非限定的な例示を指定する。コンパイルされた１または複数のファイルについての他のファイルのダウンロードおよび／またはファイル展開のシナリオは、ソフトウエアの当業者が当然思いつくものであり得る。プロセスは終了ポイントで終了する２５６。図４は、機能を共有するシンクライアントソフトウエア開発プロジェクトを使用して、関与する段階のある実施を図示する。ひとつの形態において、図４のプロセスは、コンピュータデバイス１００の動作ロジックで少なくとも部分的に実行される。処理手順は、開始ポイント２７０において開始し、サーバーベースのコンパイラを有するサーバーベースのソフトウエア開発アプリケーションを提供する（段階２７２）。サーバーベースのソフトウエア開発アプリケーションは、（適正なログイン認証が受信された後、クライアントコンピュータアクセスを可能とするなどの）シンクライアントユーザーインタフェースを介して、複数のクライアントコンピュータからアクセス可能である（段階２７２）。サーバーベースのソフトウエア開発アプリケーションを使用して、第１のクライアントコンピュータからインプットが受信されて、ソフトウエア開発プロジェクトを作成する（および選択的にどのユーザーがプロジェクトにアクセスできるかを規定するセキュリティ設定を受信する）（段階２７４）。ソフトウエア開発プロジェクトは、（例えば同一のまたは異なるコンピュータにおける）サーバーベースのソフトウエア開発アプリケーションからアクセス可能であるストレージロケーションにストアされる（段階２７６）。インプットは、第２のクライアントコンピュータから受信されて、ソフトウエア開発プロジェクトをアクセスする（段階２７８）。ソフトウエア開発プロジェクトは、第２のクライアントコンピュータに提供される（段階２８０）。ソフトウエア開発アプリケーションは、プロジェクトとともにストアされたコメントおよび／または修正を、第２のコンピュータから選択的に受信する（段階２８０）。プロセスは終了ポイントで終了する２８２。
【００２０】
図５は、シンクライアントユーザーインタフェースにおいてアクセス可能であるサーバーベースのソフトウエア開発アプリケーションを提供すること４００（図１および２では２００）に関連するコンポーネントを図示する図１のシステムの１つの実施についてのロジカルブロック図である。クライアントコンポーネント４０２およびサーバーコンポーネント４０４が示されている。クライアントコンポーネントは、シンクライアントユーザーインタフェース４０６を含んでいる、それは例えばマイクロソフト（商標）Internet Explorer, Firefoxなどのブラウザなどである。シンクライアントユーザーインタフェース４０６は、いくらかの機能を実現するＡｔｌａｓ、または他のＡＪＡＸライブラリなどを使用することができる。サーバーコンポーネント４０４は、シンタックスカラーリング４０８と、コマンド完了４１０と、パラメータヘルプ４１２と、ウェブレイヤー４１４と、開発環境バックエンド４１６とを含んでいる。シンタックスカラーリング４０８と、コマンド完了４１０と、パラメータヘルプ４１２とは、サーバーベースのソフトウエア開発アプリケーションにより提供される開発機能の種類の非限定的な例示にすぎない。ウェブサービスレイヤーは、開発環境バックエンド４１６およびシンクライアント４０６の間に生ずる通信を可能にする機能を参照する。開発環境バックエンド４１６は、アプリケーションの機能を提供する能力があり、これは例えばプロジェクトコンテキスト（文脈）、セマンティックコンテキスト、シンタックスカラーリングなどである。
【００２１】
図６は、ユーザーがプロジェクト４３４を作成しまたは存在するプロジェクト４３２を継続することを可能とするサーバーベースのソフトウエア開発アプリケーションについてのシンクライアントユーザーインタフェースを図示する図１のシステムの１つの実施についてのシミュレーションされたスクリーン４３０である。図７は、ユーザーがソースコード４５８を記述し、組み込まれた機能４５２を使用してソースコードをコンパイルすることと、コンピレーションウインドウ４６０でコンパイル結果をみることを可能とし、サーバーベースのソフトウエア開発アプリケーションについてのシンクライアントユーザーインタフェースを図示する図１のシステムの１つの実施についてのシミュレーションされたスクリーン４５０である。プロジェクトは、保存オプション４５２を使用して保存され、他のユーザーが共有オプションを使用して他のユーザーと選択的に共有することができる。コマンド完了機能４６２は、「コンソール」との用語のあとに示されて、コマンドを完了するさまざまなオプションを示す。明確さを失わないために示さないが、シンタックスカラーリングは、異なるタイプのシンタックスのカラーに変更されて、ユーザーが容易に区別できるようにするように使用可能である。１つの非限定的な例示が、実際のコマンドとは異なる色のコメントを提供することである。パラメータヘルプは、ユーザーがその手順のコールを記述することを終了するのを助けるために、例えば所与のプロシジャーコールがどんなパラメータを受け入れるかをユーザーに示すことをもまた提供することができる。
【００２２】
構造的特徴および／または方法的行為に特有な言語で主題が記述されてきたが、添付の特許請求の範囲に記載された主題は、特有の特徴または上述した行為に限定される必要がない。むしろ、特有の特徴および上述の行為は、特許請求の範囲の実施の例示形態として開示される。ここでおよび／または添付の特許請求の範囲により記述された実施の精神の範囲内の全ての均等物、変更、または修正は保護を要求する。
【００２３】
例えば、コンピュータソフトウエア分野における当業者は、ここで議論した例示において記述された、クライアントおよび／またはサーバーの配置、ユーザーインタフェース画面の内容および／またはデータ配置は、１つまたは複数のコンピュータで異なって構成されて、実施形態で記述したよりも少ないかまたは追加のオプションまたは特徴を含むことを理解するだろう。
【図１】
2010508580.tif 000003
【図２】
2010508580.tif 000004
【図３】
2010508580.tif 000005
【図４】
2010508580.tif 000006
【図５】
2010508580.tif 000007
【図６】
2010508580.tif 000008
【図７】
2010508580.tif 000009
【国際調査報告】
2010508580.tif 000010
2010508580.tif 000011