JP5649171B2 - クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム - Google Patents

クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム Download PDF

Info

Publication number
JP5649171B2
JP5649171B2 JP2010266585A JP2010266585A JP5649171B2 JP 5649171 B2 JP5649171 B2 JP 5649171B2 JP 2010266585 A JP2010266585 A JP 2010266585A JP 2010266585 A JP2010266585 A JP 2010266585A JP 5649171 B2 JP5649171 B2 JP 5649171B2
Authority
JP
Japan
Prior art keywords
client
environment
server
clone
information
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.)
Active
Application number
JP2010266585A
Other languages
English (en)
Other versions
JP2012118674A (ja
Inventor
芳雄 堀内
芳雄 堀内
正樹 若尾
正樹 若尾
健二 内田
健二 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010266585A priority Critical patent/JP5649171B2/ja
Priority to US13/304,290 priority patent/US10659522B2/en
Publication of JP2012118674A publication Critical patent/JP2012118674A/ja
Application granted granted Critical
Publication of JP5649171B2 publication Critical patent/JP5649171B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、複数のクライアント・コンピュータからコンテンツを共同で編集し又は閲覧をすることを可能にする技法に関し、特にはクライアント・コンピュータ上で実行されるアプリケーションのローカル環境のクローンをサーバ・コンピュータ上に構築する技法に関する。
ペア・プログラミングは、複数の開発者(例えば二人の開発者)が同一のプログラムの開発作業を協力して行うエクストリーム・プログラミング(eXtreme Programming(XPとも呼ばれる))のプラクティスのひとつである。ペア・プログラミングでは、開発者が物理的に同じ場所で(例えば隣の席同士で)開発作業をする。ペア・プログラミングは特に、コード品質を向上させるなどの面で利点がある。しかし、開発者のペアは動的であり、例えば、午前中にペアになっていた開発者が、午後には別の開発者とペアを組んでいる場合もある。
下記特許文献1は、開発者および/または他のユーザのチームによって開発中の特定のソフトウェアアプリケーションに関するリアルタイムのアクティブメタモデル情報をストアするために中央データベースまたは他の情報ストアを使用するシステムを提供することを記載する(段落0010)。中央データベースは開発者のチームによって使用中のソフトウェア開発アプリケーションによってアクセスされ、チームがアクティブメタモデル情報にアクセスできるようにする(段落0010)。この情報にアクセスできるようにすると、開発者は、他の人々のチームによって開発中のアプリケーションのアクティブステートに関するリアルタイムの関連情報を得ることができる(段落0010)。
特開2010−522397号公報
近年の分散開発環境において、各開発者のスケジュールが異なる場合が多い。そのために、ペア・プログラミングを実践するためには開発者間でまとまった時間の調整が必要である。しかし、その調整は困難であることが多い。また、時間の調整が困難であるために、開発に要する作業時間が増大しがちである。さらに、各開発者が離れた空間又は距離にいる場合もあり、ペア・プログラミングを実践するために開発者が同じ場所に集まることは困難である。そこで、開発者がペア・プログラミングを必要とする時に、共有可能な開発環境上でペア・プログラミングを可能にする技法が望まれている。
また、プログラミング開発は、各開発者のローカル環境で行われている。しかし、各開発者は、このローカル環境を他の開発者によって変更又は破壊されることを望まない。そこで、クライアントのローカル環境を維持したまま、共有可能な開発環境上でペア・プログラミングを可能にする技法が求められている。
また、ペア・プログラミングにおいて、ペア・プログラミングの必要なドキュメント又はコードのみを各クライアントのユーザが編集対象とする技法が望まれる。
本発明は、少なくとも2のクライアント・コンピュータ(以下、クライアントともいう)と当該クライアントにネットワークを介して接続されうるサーバ・コンピュータ(以下、サーバともいう)とを備えうるコンピューティング環境において、当該少なくとも2のクライアントのうちの1つのクライアント(以下、第1のクライアントという)上で実行されるアプリケーションのローカル環境(以下、第1のクライアントのローカル環境ともいう)のクローン(以下、クローン環境ともいう)をサーバ上に構築する技法を提供する。各クライアントのユーザは、当該クローン環境を使用して、オンデマンドでコンテンツの編集又は閲覧をすることが可能である。
本発明の実施態様において、アプリケーションのローカル環境は、例えば、統合開発環境(Integrated Development Environment,以下、IDEともいう)、オフィス・アプリケーション環境、及び教育支援環境を包含する。アプリケーションのローカル環境は、特にはアプリケーション開発のローカル環境である。
本発明の実施態様において、クローン環境は、クライアントのローカル環境と同等の環境を、サーバ上の分散開発環境上に作成したものである。サーバ上の分散開発環境は例えば、開発に必要な情報(例えば、障害報告、又はタスクなどの変更管理情報)を備えうる。クローン環境は、作業終了後においても、例えば、検証の為にサーバ上に保存しておくことが可能である。
本発明の実施態様において、コンテンツは、例えば、ドキュメント、コード、オフィス・アプリケーション・データ、及び教育支援ファイルを包含する。ドキュメントは、例えば、プログラム開発において使用されるファイルである。コードは、例えば、ソフトウェア開発におけるソースファイルである。オフィス・アプリケーション・データは、例えば、文書データ、表計算データ、プレゼンテーション・データ及び描画データを包含する。教育支援ファイルは、例えば、生徒と教師との間で、又は、生徒と教育支援アプリケーションとの間で使用されうるデータである。
本発明は、第1のクライアントのローカル環境のクローン(クローン環境)をサーバ上に構築する第1の方法を提供する。当該第1の方法は、
上記第1のクライアントのユーザからの上記クローン環境の構築の要請に応じて、上記第1のクライアントと異なる少なくとも1つの他のクライアント(以下、第2のクライアントという)から、上記クローン環境に参加する通知を受信するステップと、
上記第1のクライアントが保持する上記ローカル環境についての情報を使用して、上記クローン環境を当該サーバ上に構築するステップと、
上記第1のクライアント及び上記クローン環境に参加する通知を送信した第2のクライアントが上記クローン環境上でコンテンツを編集し又は閲覧することを可能にするステップと
を含む。
本発明の1つの実施態様において、上記第1の方法は、上記参加する通知の受信に応答して、上記参加する通知を上記第1のクライアントに送信した第2のクライアント又は当該第2のクライアントに関連付けられたユーザが上記クローン環境に参加することの許否を、上記第1のクライアントに問い合わせるステップをさらに含む。そして、上記参加する通知を送信した第2のクライアント又は当該第2のクライアントに関連付けられたユーザが上記クローン環境に参加することの承認を上記第1のクライアントから受信することに応じて、上記クローン環境が当該サーバ上に構築される。
本発明の1つの実施態様において、上記第1の方法は、上記クローン環境の構築の要請に応じて、クライアントに上記クローン環境に参加するかどうかを問い合わせるステップをさらに含む。
本発明は、第1のクライアントのローカル環境のクローン(クローン環境)をサーバ上に構築する第2の方法を提供する。当該第2の方法は、
上記第1のクライアントのユーザからの上記クローン環境の構築の要請に応じて、上記第1のクライアントが保持する上記ローカル環境についての情報を使用して、上記クローン環境を当該サーバ上に構築するステップと、
上記第1のクライアントと異なる少なくとも1つの他のクライアント(第2のクライアント)から、上記サーバ上に構築された上記クローン環境に参加する通知を受信するステップと、
上記第1のクライアント及び上記クローン環境に参加する通知を送信した第2のクライアントが上記クローン環境上でコンテンツを編集し又は閲覧することを可能にするステップと
を含む。
本発明の1つの実施態様において、上記第2の方法は、上記参加する通知の受信に応答して、上記参加する通知を上記第1のクライアントに送信した第2のクライアント又は当該第2のクライアントに関連付けられたユーザが上記クローン環境に参加することの許否を、上記第1のクライアントに問い合わせるステップをさらに含む。そして、上記参加する通知を送信した第2のクライアント又は当該第2のクライアントに関連付けられたユーザが上記クローン環境に参加することの承認を上記第1のクライアントから受信することに応じて、上記コンテンツを編集し又は閲覧することが可能になる。
本発明の1つの実施態様において、クローン環境を上記サーバ上に構築するステップは、
上記ローカル環境についての情報を使用して、当該情報に基づいて上記クローン環境を構築するための環境(例えば、開発環境)の構成要素を当該サーバに関連付けられたレポジトリ(例えば、ソフトウェア構成管理(SCM:Software Configuration Management)サーバ)、又は、クライアント環境の構成要素を保持するデータベースから取り出すステップと、
上記取り出された構成要素に、上記第1のクライアントが保持する上記アプリケーションのローカル環境の構成要素をマージするステップと
を含む。
本発明の1つの実施態様において、コンテンツの編集を可能にするステップは、
当該サーバ上でファイルの編集が開始されることに応じて、当該ファイル名に関連付けられた情報が上記第1のクライアントから送信されてきているかどうかをチェックするステップと、
上記ファイル名に関連付けられた情報が上記第1のクライアントに送信されてきていないことに応じて、
上記ファイル名を上記第1のクライアントに送信するステップと、
上記送信したファイル名に関連付けられた情報を上記第1のクライアントから取得するステップと、
上記取得された情報に対応するパラメータを当該サーバ上にあるレジストリから取り出すステップと、
上記ファイル名に関連付けられた情報が上記第1のクライアントに送信されてきていることに応じて、
上記記ファイル名に関連付けられた情報に対応するパラメータを当該サーバ上にあるレジストリから取り出すステップと、
上記取り出されたパラメータに、上記第1のクライアントが保持する上記アプリケーションのローカル環境のパラメータをマージするステップと
を含む。
本発明の1つの実施態様において、クローン環境上でコンテンツを編集し又は閲覧することを可能にすることが、上記第1のクライアントの画面上のローカル環境を上記サーバ上のクローン環境に当該第1のクライアントに切り替えさせること、又は、上記第1のクライアントの画面上に上記サーバ上のクローン環境のウィンドウを当該第1のクライアントに表示させることによって実現される。
また、本発明は、サーバに、上記方法の各ステップを実行させるコンピュータ・プログラムを提供する。
また、本発明は、第1のクライアントのローカル環境のクローン(クローン環境)をサーバ上に構築するサーバを提供する。当該サーバは、
上記第1のクライアントと異なる少なくとも1つの他のクライアント(第2のクライアント)から、上記クローン環境に参加する通知を受信する受信手段と、
上記第1のクライアントが保持する上記ローカル環境についての情報を使用して、上記クローン環境を当該サーバ上に構築する構築手段と、
上記第1のクライアント及び上記クローン環境に参加する通知を送信した第2のクライアントが上記クローン環境上でコンテンツを編集し又は閲覧することを可能にするクローン処理手段と
を備えている。
本発明の実施態様に従うと、クローン環境を使用して、複数のユーザが同時に、クライアント・コンピュータ上で編集されうるコンテンツを編集し又は閲覧することが可能である。また、各クライアントのユーザによるコンテンツの編集又は閲覧においてクローン環境を使用することから、クライアントのローカル環境が変更又は破壊されることがない。また、当該クローン環境はクライアントのユーザ要求に応じてオンデマンドで生成されることから、当該ユーザの必要なときにコンテンツの編集又は閲覧をサーバ上で開始することが可能である。
本発明の実施態様におけるコンピュータ・ハードウェアの基本的なブロック図を示す。 図1に示すコンピュータ・ハードウェアの機能を有し、本発明の実施態様に従うサーバ及びクライアントの機能ブロック図を示す。 本発明の実施態様に従う、コンピューティング環境の概要図である。 本発明の第1の実施態様に従う、クローン環境をサーバ上に構築するプロセスのフローチャートを示す。 本発明の第2の実施態様に従う、クローン環境をサーバ上に構築するプロセスのフローチャートを示す。 本発明の実施態様に従う、サーバ上にクローン環境を構築するために、クライアントのローカル環境についての情報をクライアントからサーバに転送するプロセスのフローチャートを示す。 本発明の実施態様に従う、サーバ上にクローン環境を構築するプロセスのフローチャートを示す。 本発明の実施態様に従う、サーバ上に構築されたクローン環境に参加するかどうかの通知を送信するプロセスのフローチャートを示す。 本発明の実施態様に従う、サーバ上に構築されたクローン環境の補完をするプロセスのフローチャートを示す。 本発明の実施態様に従う、ペア・プログラミングを終了するプロセスのフローチャートを示す。 本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境をサーバ上に構築することを要請する画面の例を示す。 本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でペア・プログラミングを行う相手を許可する画面の例を示す。 本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でコンテンツを編集又は閲覧するための画面(ローカル環境の画面と置換されている)の例を示す。 本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でコンテンツを編集又は閲覧するための画面(別ウィンドウで表示されている)の例を示す。 本発明の実施態様に従う、第2のクライアント(エンジニアB)におけるクローン環境への参加の募集通知の画面の例を示す。 本発明の実施態様に従う、第2のクライアント(エンジニアB)におけるクローン環境上でコンテンツを編集又は閲覧するための画面の例を示す。 本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でのペア・プログラミングを終了するための画面の例を示す。
本発明の実施態様を、以下に図面に従って説明する。以下の図を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施態様は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
図1は、本発明の実施態様におけるコンピュータ・ハードウェアの基本的なブロック図を示す。
コンピュータ(101)は、CPU(102)とメイン・メモリ(103)とを備えており、これらはバス(104)に接続されている。CPU(102)は好ましくは、32ビット又は64ビットのアーキテクチャに基づくものであり、例えば、インテル社のCore i(商標)シリーズ、Core 2(商標)シリーズ、Atom(商標)シリーズ、Xeon(商標)シリーズ、Pentium(登録商標)シリーズ、Celeron(登録商標)シリーズ、AMD社のPhenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(商標)シリーズ又はSempron(商標)が使用されうる。バス(104)には、ディスプレイ・コントローラ(105)を介して、ディスプレイ(106)、例えば液晶ディスプレイ(LCD)が接続されうる。ディスプレイ(106)は、コンピュータの管理のために、通信回線を介してネットワークに接続されたコンピュータについての情報と、そのコンピュータ上で動作中のソフトウェアについての情報を、適当なグラフィック・インタフェースで表示するために使用される。バス(104)にはまた、SATA又はIDEコントローラ(107)を介して、記憶装置(108)、例えばハードディスク又はソリッド・ステート・ドライブと、ドライブ(109)、例えばCD、DVD又はBDドライブとが接続されうる。バス(104)にはさらに、キーボード・マウスコントローラ(110)又はUSBバス(図示せず)を介して、キーボード(111)及びマウス(112)が接続されうる。
ディスク(108)には、オペレーティング・システム、J2EEなどのJava(登録商標)処理環境、Java(登録商標)アプリケーション、Java(登録商標)仮想マシン(JVM)、Java(登録商標)実行時(JIT)コンパイラを提供するプログラム、その他のプログラム、及びデータが、メイン・メモリにロード可能に記憶されている。
ドライブ(109)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラムをディスク(108)にインストールするために使用される。
通信インタフェース(114)は、例えばイーサネット(登録商標)・プロトコルに従う。通信インタフェース(114)は、通信コントローラ(113)を介してバス(104)に接続され、コンピュータ(101)を通信回線(115)に物理的に接続する役割を担い、コンピュータ(101)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は、有線LAN環境、又は例えばIEEE802.11a/b/g/nなどの無線LAN接続規格に基づく無線LAN環境であってもよい。
図2は、図1に示すコンピュータ(101)のハードウェア機能を有し、本発明の実施態様に従うサーバ及びクライアントの機能ブロック図を示す。
サーバ(201)は、複数のクライアント(202−1〜202−n)とネットワーク(205)を介して接続されている。サーバ(201)及び各クライアント(202−1〜202−n)とネットワーク(205)との接続は、有線又は無線のいずれであってもよい。
また、サーバ(201)は、1又は複数のソフトウェア構成管理(SCM)サーバ(203)とネットワーク(205)を介して接続されうる。なお、別の態様として、サーバ(201)それ自体が、ソフトウェア構成管理サーバ(203)の機能を併せ持つように構成されうる。例えば、サーバ(201)は複数の仮想論理区画を備えており、そのうちの少なくとも1つの仮想論理区画がSCMサーバの機能を備えうる。
サーバ(201)、複数のクライアント(202−1〜202−n)、及びネットワーク(205)が、本発明の実施態様でいうコンピューティング環境を構成する。当該コンピューティング環境は、例えば統合開発環境、オフィス・アプリケーション・コラボレーション環境、及び教育支援コラボレーション環境でありうる。統合開発環境は、例えばコラボレーション・フレームワークである。コラボレーション・フレームワークは、例えばJazz(IBMの商標である)でありうる。Jazzは、コラボレーティブ・ソフトウェア・デリバリーのためのIBM(商標) Rationalの新しいテクノロジー・プラットフォームである。
サーバ(201)は、図1に示す例えばCPU(102)、メイン・メモリ(103)及び記憶装置(108)に加えて、クローン環境構築手段(211)、受信手段(212)及びクローン環境処理手段(213)を備えている。また、コンピュータ(201)は、さらにレジストリ(221)を備えうる。なお、記憶装置(108)がレジストリ(221)の機能を持ち合わせていてもよい。
クローン環境構築手段(211)は、クローン環境の構築を要請するユーザに関連付けられたクライアント(第1のクライアント)が保持するローカル環境に対するクローン環境をサーバ(201)上に構築する。当該クローン環境の構築は、例えば、第1のクライアント(202−1)からの当該クローン環境の構築の要請を受信することに応じて、又は、第1のクライアント(202−1)と異なる少なくとも1つの他のクライアント(第2のクライアント)からの当該クローン環境に参加する通知を受信することに応じて行われる。
また、クローン環境構築手段(211)は、クローン環境の構築の要請に応じて、当該クローン環境に参加するかどうかを、所定のクライアントに問い合わせる。クローン環境構築手段(211)は、第2のクライアントから送信された参加する通知の受信に応答して、第2のクライアント又は当該第2のクライアントに関連付けられたユーザがクローン環境に参加することの許否を、第1のクライアント(202−1)に問い合わせる。
また、クローン環境構築手段(211)は、第1のクライアント(202−1)が保持するローカル環境についての情報を使用して、当該情報に基づいてクローン環境を構築するための開発環境の構成要素をサーバ(201)に関連付けられたSCMサーバ(203)、又は、クライアント環境の構成要素を保持するデータベース(図示せず)から取り出し、当該取り出された構成要素に、第1のクライアント(202−1)が保持するアプリケーションのローカル環境の構成要素をマージする。
また、クローン環境構築手段(211)は、サーバ(201)上でファイルの編集が開始されることに応じて、当該ファイルのファイル名を第1のクライアント(202−1)に送信し、当該送信したファイル名に関連付けられた情報を第1のクライアント(202−1)から取得し、当該取得された情報に対応するパラメータをサーバ(201)上にあるレジストリから取り出し、当該取り出されたパラメータに、第1のクライアント(202−1)が保持するアプリケーションのローカル環境のパラメータをマージする。
受信手段(212)は、クローン環境の構築の要請を第1のクライアント(202−1)から受信する。また、受信手段は、第2のクライアントからの当該クローン環境に参加する通知を受信する。
クローン環境処理手段(213)は、上記クローン環境がサーバ(201)上に構築された後に、第1のクライアント(202−1)及び第2のクライアントが当該クローン環境上でコンテンツを編集し又は閲覧することを可能にする。また、クローン環境処理手段(213)は、第1のクライアント(202−1)及び第2のクライアントによる編集操作のログを記録する。コンテンツの同時編集は、例えばColaを使用して行いうる。また、第1のクライアント(202−1)のユーザと第2のクライアントのユーザとは、音声通話又は共有ホワイトボードなどのコラボレーション環境でコミュニケーションを互いに行うことが可能である。
また、クローン環境処理手段(213)は、第1のクライアント(202−1)の画面上のローカル環境をサーバ(201)上のクローン環境に当該第1のクライアント(202−1)に切り替えさせること、又は、第1のクライアント(202−1)の画面上にサーバ(201)上のクローン環境のウィンドウを当該第1のクライアント(202−1)に表示させることによって実現される。
レジストリ(221)は、第1のクライアント(202−1)が保持するローカル環境についての情報に対応するクローン環境情報パラメータを格納する。
各クライアント(202−1〜202−n)は、図1に示す例えばCPU(102)、メイン・メモリ(103)及び記憶装置(108)に加えて、クローン環境構築要請手段(231)、情報セット生成手段(232)、情報セット送信手段(233)、編集/閲覧手段(234)及びローカル環境情報レジストリ(235)を備えている。なお、記憶装置(108)がローカル環境情報レジストリ(235)の機能を持ち合わせていてもよい。
各クライアント(202−1〜202−n)は、1つの実施態様として、そのローカル環境上で、アプリケーションを実行しうる。または、各クライアント(202−1〜202−n)は、他の実施態様として、開発用サーバ(図示せず)にネットワークを介して接続し、当該開発用サーバ上でアプリケーションをローカル環境と同様に実行しうる。本発明において、「クライアント上で実行されるアプリケーションのローカル環境」という場合、上記2つの態様を包含する。アプリケーションは、例えば、統合開発環境アプリケーション、オフィス・アプリケーション、及び教育支援アプリケーションを包含する。
クローン環境構築要請手段(231)は、サーバ(201)上に当該クライアントのローカル環境のクローン(クローン環境)を構築することを当該サーバ(201)に要請する。クライアントのローカル環境が例えばIDE環境である場合、当該クローン環境の構築の要請は例えばペア・プログラミングの要請である。クライアントのローカル環境が例えばオフィス・アプリケーション環境である場合、当該クローン環境の構築の要請は例えば文書の共同編集又は校正の要請でありうる。クライアントのローカル環境が例えば教育支援環境である場合、当該クローン環境の構築の要請は例えば個別授業又は指導の要請でありうる。
情報セット生成手段(232)は、サーバ(201)に転送する情報セットを格納する領域を当該クライアント(202−1)のメモリ中に作成する。また、情報セット生成手段(232)は、当該クライアント(202−1)のローカル環境(例えば、クライアントの統合開発環境)から、サーバ(201)に転送すべき情報を取得する。
情報セット送信手段(233)は、情報セット生成手段(232)によって作成された情報セットをサーバ(201)に送信する。
編集/閲覧手段(234)は、クライアントのローカル環境において、アプリケーションの編集又は閲覧を可能にする。また、編集/閲覧手段(234)は、サーバ(201)上に構築されたクローン環境において、クライアントからのアプリケーションの編集又は閲覧を可能にする。
ローカル環境情報レジストリ(235)は、ローカル環境についての情報を格納しうる。
ソフトウェア構成管理(SCM)サーバ(203)は、ソフトウェア開発プロジェクトをその成果物を通して、制御及び管理するサーバである。SCMは、ドキュメント又はコードなどの成果物の変更履歴を管理し、製品のバージョン又はリビジョンに個々の成果物のどのバージョンが対応しているかを識別し、任意のバージョンの製品を再現可能にする。
図3は、本発明の実施態様に従う、コンピューティング環境の概要図である。
下記に本発明の実施態様を概略的に説明する。
サーバ(201)は、クライアント(202−1〜202−4)とネットワーク(図示せず)を介して接続されている。クライアント(202−1〜202−4)の数は例示であり、これに制限されるものでない。また、サーバ(201)は、SCMサーバ(203)とネットワーク(図示せず)を介して接続されている。
図3では、クライアント(202−1)がクローン環境の構築を要請するクライアント(すなわち、第1のクライアント)であり、クライアント(202−2、202−3、202−4)が、上記要請に応じてサーバ(201)上に構築されるクローン環境に参加しうるクライアント(すなわち、第2のクライアント)であるとする。クローン環境の構築の要請は、例えばペア・プログラミングの募集、オフィス・アプリケーションの共同編集の依頼、又は教育支援の開始の依頼である。
クローン環境の構築の要請がペア・プログラミングの募集である場合、各クライアントのユーザは例えば、エンジニアA〜Dでありうる。クローン環境の構築の要請がオフィス・アプリケーションの共同編集である場合、第1のクライアント(202−1)のユーザが例えば部下であり、第2のクライアントのユーザが例えば上司でありうる。クローン環境の構築の要請が教育支援の開始の依頼の場合、第1のクライアント(202−1)のユーザが例えば生徒であり、第2のクライアントのユーザが例えば先生でありうる。
以下では、クローン環境の構築の要請がペア・プログラミングの募集である場合を例として説明をするが、クローン環境の構築の要請がオフィス・アプリケーションの共同編集の依頼、教育支援の開始の依頼など、その他の場面においても適用しうることは当業者に明白である。
第1のクライアント(202−1)のエンジニアAは、当該第1のクライアント(202−1)のローカル環境上でプログラミング開発を行っている。第1のクライアント(202−1)は、当該クライアント上のローカル環境上の画面(311)を表示装置上に表示する。
エンジニアAが、ペア・プログラミングをしたいと考えており、当該サーバ(201)にクローン環境の構築を要請する(301)。当該要請は、ペア・プログラミングのペア募集でもある。なお、募集するペアの人数は一人に限定されない。当該要請において、第1のクライアント(202−1)からサーバ(201)に送信される情報は、ペア・プログラミングの場合、例えば、タスクの概要、又は障害報告である。
サーバ(201)は、第2のクライアント(202−2、202−3、202−4)(すなわち、エンジニアB〜D)に対してエンジニアAからのペア募集に対して参加するかどうかのペア募集を通知しうる(302)。または、第1のクライアント(202−1)が統合開発環境を使用して、当該統合開発環境に接続された第2のクライアントに対してエンジニアAからのペア募集に対して参加するかどうかのペア募集を直接的に通知しうる(図示せず)。
第1のクライアント(202−1)は、サーバ(201)上でクローン環境を構築するために必要とされるローカル環境についての情報(例えば、統合開発環境情報)を当該サーバ(201)上にアップロードする(303)。統合開発環境情報は、例えば、ベースライン情報、未チェックイン・ファイルである。
サーバ(201)は、第1のクライアント(202−1)からの開発環境情報に基づいてクローン環境を構築するための開発環境の構成要素をSCMサーバ(203)(レポジトリ)又は当該サーバ(201)上にあるレジストリから取り出して、クローン環境を構築する(304)。開発環境の構成要素は、例えば、ソースファイル、バイナリのライブラリ・ファイル、ビルドパスの設定情報である。
第1のクライアント(202−1)は、サーバ(201)上に構築されたクローン環境にペア・プログラミングをするために参加する(305)。また、第2のクライアント(202−2、202−3、202−4)のうち、ペア募集の通知に対して、ペア参加又はオブザーバ参加することをサーバ(201)に通知し且つ第1のクライアント(202−1)によってその参加が認められた第2のクライアントが、サーバ(201)上に構築されたクローン環境にペア・プログラミングをするために又はオブサーバとして参加する(306)。第1のクライアント(202−1)及び、ペア・プログラミング又はオブザーバ参加をしている第2のクライアントはそれぞれ、サーバ(201)上のクローン環境上の画面(312)を表示装置上に表示する。
ペア・プログラミングが終了することに応じて、サーバ(201)は、クローン環境上での変更セットをSCMサーバ(203)に保存する。または、サーバ(201)は、必要に応じて、クローン環境上での変更セットを第1のクライアント(202−1)に送付する。第1のクライアント(202−1)は、サーバ(201)から送信されてきた変更セットをそのローカル環境上のデータとマージする。
図4は、本発明の第1の実施態様に従う、クローン環境をサーバ上に構築するプロセスのフローチャートを示す。
ステップ401では、第1のクライアント(202−1)は、サーバ(201)上でクローン環境を構築するというユーザ命令を待つ。
ステップ402では、エンジニアAがペア・プログラミングを開始することを第1のクライアント(202−1)の画面を通じて入力する(図11を参照)。当該入力に応じて、第1のクライアント(202−1)は、サーバ(201)上でクローン環境を構築することを当該サーバ(201)に要請する。エンジニアAは、当該要請をするに際して、タスク番号(Defect ID#など)、編集対象であるファイル名、ソースコードの部分を指定しうる(図11の画面を参照)。また、第1のクライアント(202−1)は、サーバ上で構築されうるクローニング環境に参加要請するエンジニアの名前をユーザが指定できるようにしうる。第1のクライアント(202−1)は、上記要請に付随して、ユーザによって指定されたタスク番号、編集対象であるファイル名、ソースコードの部分、及び/又は参加要請するエンジニアの名前を送信しうる。編集対象であるファイル名は、例えば、ペア・プログラミングの対象のソースファイル名、及び当該ソースファイルのパスを包含する。ソースコードの部分は、例えば行、段落、チャプター、関数名及びブロック名を包含する。参加要請するエンジニアの名前は、例えば、当該エンジニアの識別ID、並びに当該エンジニアが使用するクライアントのID及びIPアドレスを包含する。
ステップ403では、サーバ(201)は、チーム・メンバーであるエンジニアB〜Dの各クライアントに対してペア・プログラミングに参加をするかどうかの問い合わせをする。または、第1のクライアント(202−1)は、サーバ(201)を経由せずに、当該第1のクライアント(202−1)の統合開発環境を使用して、当該統合開発環境に接続されている他のクライアント(202−2、202−3、202−4)に直接的に参加するかどうかの問い合わせを送付するようにしうる。当該問い合わせにおいて、各クライアントの統合開発環境が、第1のクライアント(202−1)と第2のクライアント(202−2、202−3、202−4)との接続のために使用されている。
チーム・メンバーは、例えば、第1のクライアント(202−1)から指定されたメンバー、同じプロジェクトに所属するメンバー、同じ組織に所属するメンバー、サーバ(201)に予め登録されたメンバー、所定のIPアドレスを有するメンバー、ユーザからのタスク番号に関連付けられたメンバー、又はサーバ(201)に接続されたメンバー全てとしうる。上記問い合わせは、例えば、各エンジニアの画面上(例えば、統合開発環境の画面)上に例えばダイアログを表示したり(例えば図15を参照)、各エンジニアのメール・アドレスに参加の要請を送信したり、例えば各エンジニアが共有しうる電子掲示板(例えば、Lotus(IBMの商標である) Notes上の掲示板)上で告知したりすることによって行われうる。サーバ(201)から上記参加要請を受信したチーム・メンバーの各クライアントは上記参加要請を受諾する場合に、参加する通知をサーバ(201)に送信する。
ステップ404では、サーバ(201)は、上記参加要請を受諾したクライアントから上記参加する通知を受信する。
ステップ405では、サーバ(201)は、上記参加要請を受諾したクライアントがあることに応じて、第1のクライアント(202−1)に、当該第1のクライアント(202−1)のローカル環境についての情報を送信する要求を送信する。第1のクライアント(202−1)は、サーバ(201)からの上記要請に応じて、ローカル環境についての上記情報をサーバ(201)に送信しうる。または、第1のクライアント(202−1)がステップ402の要請をしたことに応じて自発的に、ローカル環境についての上記情報をサーバ(201)に送信しうる。サーバ(201)は、第1のクライアント(202−1)から、ローカル環境についての上記情報を受信する。
ステップ406では、サーバ(201)は、ローカル環境についての情報に対応するクローン環境構築パラメータを当該サーバ(201)上にあるレジスタから取り出す。サーバ(201)は、当該取り出したクローン環境構築パラメータを使用して、クローン環境を構築する。
当該クローン環境が構築されることに応じて、第1のクライアント(202−1)及び参加要請を受諾したクライアントは、サーバ(201)上に構築されたクローン環境を使用してペア・プログラミングを開始する準備ができる。当該ペア・プログラミングの開始前に、第1のクライアント(202−1)は、上記参加要請を受諾したクライアントがペア・プログラミングに参加又は閲覧することを許可するかどうかを決定しうる。当該決定は、ユーザによって個々に判断されてもよいし、第1のクライアント(202−1)に予め格納された許可テーブルの内容から判断されてもよい。または、当該決定は、開発プロジェクトのリーダはデフォルトで参加が許可されるように、プロジェクト管理サーバにおいて自動的に判断されるようにしうる。
ステップ407では、サーバ(201)は、編集対象であるファイルについて作業をするために、クローニング環境上で実行環境の補完が必要であるかどうかを判断する。実行環境の補完が必要である場合とは、例えば、エンジニアAが編集しているファイルが依存するファイルを有しており、当該依存するファイルがサーバにまだ送信されてない場合である。実行環境の補完が必要ない場合、サーバ(201)はステップ408の処理に進む。一方、実行環境の補完が必要である場合、サーバ(201)はステップ409の処理に進む。
ステップ408では、サーバ(201)は、第1のクライアント(202−1)及び当該第1のクライアント(202−1)によって参加を許可された第2のクライアント(以下、参加中の第2のクライアントともいう)がクローン環境上でコンテンツを編集し又は閲覧することを許す。第1のクライアント(202−1)は、編集が終わると、ペア・プログラミングを終了することをサーバ(201)に伝える。または、参加中の第2のクライアントは、編集が終わると、ペア・プログラミングを終了することをサーバ(201)に伝える。
ステップ409では、サーバ(201)は、実行環境の補完に必要な情報を第1のクライアント(202−1)又はサーバ(201)上のレジストリから入手する。
ステップ410では、サーバ(201)は、第1のクライアント(202−1)又は参加中の第2のクライアントからのペア・プログラミングの終了の通知を受信したかどうかを判断する。サーバ(201)が、ペア・プログラミングの終了の通知を受信することに応じて、処理はステップ411に進む。一方、サーバ(201)は、第1のクライアント(202−1)及び参加中の第2のクライアントからのペア・プログラミングの終了の通知を受信していない場合、ステップ408に戻る。
ステップ411では、エンジニアAがペア・プログラミングを終了することを第1のクライアント(202−1)の画面を通じて入力する(図17を参照)。第1のクライアント(202−1)からのペア・プログラミングの終了の通知を受信することに応じて、サーバ(201)は、ペア・プログラミングを終了(すなわち完了)する。
または、ステップ411では、参加中の第2のクライアントのエンジニアがペア・プログラミングを終了することを当該第2のクライアント画面を通じて入力する(図16を参照)。参加中の第2のクライアントからのペア・プログラミングの終了の通知を受信することに応じて、サーバ(201)は、ペア・プログラミングを終了する。
サーバ(201)は、クローン環境で行われた操作を変更セットとして記録する。変更セットは、例えば、操作ログである。また、サーバ(201)は、クローン環境で行われた操作に関連する情報を記録する。当該操作に関連する情報は、例えば、ペア・プログラミングに参加したクライアントの情報(例えばIPアドレス)、ユーザ名、作業の開始又は終了時間を包含する。サーバ(201)は、変更セットをSCMサーバ(203)に登録する。また、サーバ(201)は、必要に応じて、変更セットを第1のクライアント(202−1)に送信する。第1のクライアント(202−1)は、上記変更セットをサーバ(201)から受信し、ローカル環境の対応するデータにマージしうる。
図5は、本発明の第2の実施態様に従う、クローン環境をサーバ上に構築するプロセスのフローチャートを示す。
図5は、図4のステップ403〜404とステップ405〜406との順番が入れ替わった実施態様(ステップ503〜506)である。
ステップ501〜502及びステップ507〜511それぞれは、ステップ401〜402及びステップ407〜411に対応する。
ステップ501はステップ401に対応するので、ここではそれらの説明を省略する。
ステップ502では、第1のクライアント(202−1)は、サーバ(201)上でクローン環境を構築することを当該サーバ(201)に要請する。第1のクライアント(202−1)は、上記要請に付随して、ユーザによって指定されたタスク番号、編集対象であるファイル名、ソースコードの部分、及び/又は参加要請するエンジニアの名前を送信しうる。
ステップ503では、サーバ(201)は、上記参加要請を受信することに応じて、第1のクライアント(202−1)に、当該第1のクライアント(202−1)のローカル環境についての情報を送信する要求を送信する。第1のクライアント(202−1)は、サーバ(201)からの上記要請に応じて、ローカル環境についての上記情報をサーバ(201)に送信しうる。または、第1のクライアント(202−1)がステップ402の要請をしたことに応じて自発的に、ローカル環境についての上記情報をサーバ(201)に送信しうる。サーバ(201)は、第1のクライアント(202−1)から、ローカル環境についての上記情報を受信する。
ステップ504では、サーバ(201)は、ローカル環境についての情報に対応するクローン環境構築パラメータを当該サーバ(201)上にあるレジスタから取り出す。サーバ(201)は、当該取り出したクローン環境構築パラメータを使用して、第1のクライアント(202−1)のローカル環境のクローン環境を構築する。
ステップ505では、サーバ(201)は、当該サーバ(201)上にクローン環境が構築されることに応じて、チーム・メンバーであるエンジニアB〜Cの各クライアントに対してペア・プログラミングに参加をするかどうかの問い合わせをする。サーバ(201)から上記参加要請を受信したチーム・メンバーの各クライアントは上記参加要請を受諾する場合に、参加する通知をサーバ(201)に送信する。
ステップ506では、サーバ(201)は、上記参加要請を受諾したクライアントから上記参加する通知を受信する。
ステップ507〜ステップ511それぞれはステップ407〜411に対応するので、ここではそれらの説明を省略する。
図6は、本発明の実施態様に従う、サーバ上にクローン環境を構築するために、クライアントのローカル環境についての情報をクライアントからサーバに転送するプロセスのフローチャートを示す。
図6のフローチャートは、図4のステップ405及び図5のステップ503のステップの内容を詳しく説明したフローチャートである。
ステップ601は、図4のステップ404又は図5のステップ502が終了することに応じて開始される。
ステップ602では、クライアント(202−1)の情報セット生成手段(232)は、サーバ(201)に転送する情報セットを格納する領域を当該クライアント(202−1)のメモリ中に作成する。当該格納する領域は、例えばリストでありうる。
ステップ603では、情報セット生成手段(232)は、当該クライアントのローカル環境(例えば、クライアントの統合開発環境)から、サーバ(201)に転送すべきローカル環境についての情報(以下、ローカル環境についての情報ともいう)を取得する。ローカル環境についての情報は、例えば、エンジニアAの統合開発環境から取得しうる。ローカル環境についての情報は、例えば、統合開発環境のランタイム情報、アプリケーションにおいて使用するファイル、ドキュメント又はコードのベースライン情報、及びプライベート・ファイル情報を包含する。統合開発環境のランタイム情報は、例えば、統合開発環境の種類、仮想マシン(例えばJVM)のバージョン、及びSCMサーバ名を包含する。アプリケーションにおいて使用するファイル、ドキュメント又はコードのベースライン情報は、例えば、ペア・プログラミングの対象であるファイル、ドキュメント又はコードのバージョン管理情報を包含する。また、当該ベースライン情報は、例えば、SCMのベースライン情報である。プライベート・ファイル情報は、エンジニアAの統合開発環境において、指定された部分(例えば、ソースコードの行、関数、ブロックのように特定された部分である)に含まれるプライベート・ファイル情報、及び当該指定された部分に関連するプライベート・ファイル情報を包含する。プライベート・ファイル情報は、例えば、コラボレーション・フレームワーク・サーバに存在しないファイル情報、例えばSCMサーバ(203)に新しく追加されてまだチェックインしていないファイル情報である。また、プライベート・ファイル情報は、エンジニアAの統合開発環境におけるソース又はライブラリ等のうち、ユーザによって指定されたタスク又はソースの部分に関連するソース又はライブラリ等を包含する。
ステップ604では、情報セット生成手段(232)は、上記取得したローカル環境についての情報を、ステップ602で作成した領域に追加する。
ステップ605では、情報セット送信手段(233)は、上記領域に格納された情報をサーバ(201)に転送する。
ステップ606では、クライアント(202−1)は、上記転送が終了することに応じて、ローカル環境についての情報を転送する上記プロセスを終了する。
図7は、本発明の実施態様に従う、サーバ上にクローン環境を構築するプロセスのフローチャートを示す。
図7のフローチャートは、図4のステップ406及び図5のステップ504のステップの内容を詳しく説明したフローチャートである。
ステップ701は、図6のステップ606の「終了」に応じて開始される。
ステップ702では、サーバ(201)の受信手段(212)は、図6に示すフローチャートに従い、第1のクライアント(202−1)から転送されたローカル環境についての情報を取得する。
ステップ703では、サーバ(201)のクローン環境構築手段(211)は、転送されたローカル環境についての情報のうち、統合開発環境のランタイム情報に基づいて、当該サーバ(201)上の作業領域に統合開発環境を用意する。代替の実施態様として、サーバ(201)は、例えば、クラウドにより仮想マシンを使用して統合開発環境を使用しうる。
ステップ704では、クローン環境構築手段(211)は、転送されたローカル環境についての情報のうち、SCM及びベースライン情報に基づいて、使用するファイル群をSCMサーバ(203)又はソースファイル若しくはドキュメントを管理するサーバ(図示せず)から取得する。当該使用するファイル群は、例えば、ソースファイル、ドキュメント、及びバイナリのライブラリ・ファイルを包含する。
ステップ705では、クローン環境構築手段(211)は、SCMサーバ(203)から取得したファイル群をサーバ(201)の上記作業領域に用意された統合開発環境に登録する。
ステップ706では、クローン環境構築手段(211)は、転送されたローカル環境についての情報のうち、プライベート・ファイル情報に基づいて、必要なソース又はライブラリをSCMサーバ(203)から取得し、当該取得したソース又はライブラリをサーバ(201)上の統合開発環境に上書きする。上書きするファイルがSCMサーバ(203)において管理されている場合、必要に応じてチェックアウトする。
ステップ707では、サーバ(201)は、当該サーバ(201)上にクローン環境を構築するプロセスを終了する。
図8は、本発明の実施態様に従う、サーバ上に構築されたクローン環境に参加するかどうかの通知を送信するプロセスのフローチャートを示す。
図8のフローチャートは、図4のステップ403及び図5のステップ505のステップの内容を詳しく説明したフローチャートである。
ステップ801では、サーバ(201)は、当該サーバ(201)上に構築されたクローン環境に参加するかどうかの通知を送信するプロセスを開始する。または、第1のクライアント(202−1)が、上記クローン環境に参加するかどうかの通知を送信するプロセスを統合開発環境を使用して開始しうる。
ステップ802では、サーバ(201)は、当該サーバ(201)上に構築されたクローン環境に参加するかどうかの通知をする相手であるチーム・メンバーのリストを取得する。当該リストは、第1のクライアント(202−1)から提供されてもよく、又はサーバ(201)が第1のクライアント(202−1)用のチーム・メンバーのリストを予め有していてもよい。
ステップ803では、第1のクライアント(202−1)のユーザであるエンジニアAがペア・プログラミングをするチーム・メンバーを指定した場合、サーバ(201)は、当該指定されたメンバーをステップ802のチーム・メンバーのリストに記録する。
ステップ804では、サーバ(201)は、ステップ802のチーム・メンバーのリストから又はステップ803で指定されたチーム・メンバーから、メンバーを一人取得する。チーム・メンバーのリストにおいてメンバーに優先順位が関連付けられている場合、サーバ(201)は、当該優先順位に従いメンバーを取得する。チーム・メンバーのリストにおいてメンバーに優先順位が関連付けられていない場合、サーバ(201)は、例えば、メンバー名のアルファベット順、組織名のアルファベット順、グループ名のアルファベット順を利用して、メンバーを取得する。
ステップ805では、サーバ(201)は、取得したメンバーがエンジニアAにより指定された又はエンジニアAに関連性があるかどうかを判定する。関連性は、例えば、エンジニアAとプロジェクト上関連しているか、又はエンジニアAと指定した情報(例えばタスク)と関連するかで判断されうる。取得したメンバーがエンジニアAにより指定された又はエンジニアAに関連性がある場合、サーバ(201)はステップ806の処理に進む。一方、取得したメンバーがエンジニアAにより指定されていず且つエンジニアAに関連性がない場合、サーバ(201)はステップ807の処理に進む。
ステップ806では、サーバ(201)は、当該メンバーに、当該サーバ(201)上に構築された又は構築されうるクローン環境に参加するかどうかの通知をメンバーに通知する。
ステップ807では、サーバ(201)は、ステップ802のチーム・メンバーのリストのメンバー全て、又は、ステップ803で指定されたチーム・メンバーの全てを処理したかどうかを判定する。当該全てのメンバーが処理されているいる場合、サーバ(201)はステップ808の処理に進む。当該全てのメンバーが処理されていない場合、サーバ(201)はステップ804の処理に戻る。
ステップ808では、サーバ(201)は、当該サーバ(201)上に構築されたクローン環境に参加するかどうかの通知を送信するプロセスを終了する。
図8では、サーバ(201)がチーム・メンバーに対して個別に通知する実施態様を説明した。その他の実施態様としてサーバ(201)は、チーム・メンバー全員に対して一斉に、特定の範囲のIPアドレス毎に、特定の組織(例えば、会社組織)毎に、又は特定のグループ(例えば、チーム、プロジェクト)毎に通知するようにしうる。
図9は、本発明の実施態様に従う、サーバ上に構築されたクローン環境の補完をするプロセスのフローチャートを示す。
図9のフローチャートは、図4のステップ407及び図5のステップ507のステップの内容を詳しく説明したフローチャートである。コンテンツの新規編集又はコンテンツの編集中において、図7のフローチャートに従い構築されたクローン環境に組み込まれなかったファイルなどが当該編集において必要になった場合に、当該クローン環境の補完が行われうる。
ステップ901では、サーバ(201)のクローン環境構築手段(211)は、当該サーバ(201)上に構築されたクローン環境の補完をするプロセスを開始する。
ステップ902では、第1のクライアント(202−1)又は当該第1のクライアント(202−1)によって参加を許可された第2のクライアントがクローン環境上でコンテンツ、例えばファイルの編集を新規に開始する。なお、ファイルの編集が開始された場合であって、クローン環境の補完が必要な場合、ステップ907のクローン環境の補完のプロセスが終了するまで、当該編集はペンディング状態となる。なお、クローン環境の補完が必要でない場合、クローン環境の補完をするプロセスは終了するか、又は当該プロセスはクローン環境の補完が必要になるまでサーバ(201)のバックグラウンドで待機する。
ステップ903では、クローン環境構築手段(211)は、エンジニアAのローカル環境(すなわち、第1のクライアント(202−1)のローカル環境)に、新規に編集が開始されたファイル名を送信する。
ステップ904では、第1のクライアント(202−1)は、サーバ(201)から送信されたファイル名に関連付けられた情報を、当該第1のクライアント(202−1)のローカル環境において列挙する。第1のクライアント(202−1)は、当該関連付けられた情報を、例えば、当該第1のクライアント(202−1)のレジストリから取得する。第1のクライアント(202−1)は、当該関連付けられた情報が第1のクライアント(202−1)のローカル環境上で変更されているかどうかをチェックする。ローカル環境上で変更されているとは、例えば、ベースラインで特定されるファイルのバージョンに変更が加えられている場合である。当該関連付けられた情報が変更されている場合、当該プロセスはステップ904に進む。一方、当該関連付けられた情報が変更されていない場合、クローン環境の補完をするプロセスは終了するか、又は当該プロセスはクローン環境の補完が必要になるまでサーバ(201)のバックグラウンドで待機する。これは、第1のクライアント(202−1)のローカル環境で変更がないので、第1のクライアント(202−1)から上記関連付けられた情報がサーバ(201)に送信されていなくても、第1のクライアント(202−1)の当該関連付けられた情報は、サーバ(201)がSCMサーバ(203)から取得した情報と同じであるからである。
ステップ905では、第1のクライアント(202−1)は、エンジニアAのローカル環境で変更が加えられていて且つサーバ(201)に転送されていない上記情報をサーバ(201)に転送する。このような条件を有する情報をサーバに転送する理由は、サーバ(201)上において最初にクローン環境を構築する際に、エンジニアAのローカル環境上で変更中の全ての情報がサーバ(201)に転送されているとは限らないからである。サーバ(201)に転送されていない情報は、例えば、サーバ(201)上で編集を開始したファイルがエンジニアAのローカル環境上で変更中のファイルである場合は、その編集を開始したファイル若しくはその差分、又は当該ファイルに関係するファイルである。関係ファイルとは、上記編集を開始したファイルと他のファイルとの依存関係を記述したファイル(例えば、ビルドのためのMakeFile)に依存しうる。
ステップ906では、受信手段(212)は第1のクライアント(202−1)からの上記情報を受信する。クローン環境構築手段(211)は、当該受信した情報又は当該受信した情報で指定されている情報をサーバ(201)上のクローン環境のレジストリから取得する。クローン環境構築手段(211)は、当該受信した情報又は当該取得した情報を当該サーバ(201)上に用意された統合開発環境に上書きして、クローン環境を更新する。当該更新によって、サーバ上に構築されたクローン環境が、上記新規に編集が開始されたコンテンツの編集が可能になるように補完される。
ステップ907では、サーバ(201)は、当該サーバ(201)上に構築されたクローン環境の補完をするプロセスを終了する。当該プロセスの終了によって、第1のクライアント(202−1)及び当該第1のクライアント(202−1)によって参加を許可された第2のクライアントがクローン環境上でコンテンツの同時編集を行うことが可能になる。
図10は、本発明の実施態様に従う、ペア・プログラミングを終了するプロセスのフローチャートを示す。
図10のフローチャートは、図4のステップ410及び図5のステップ510のステップの内容を詳しく説明したフローチャートである。
ステップ1001では、サーバ(201)は、ペア・プログラミングを終了するプロセスを開始する。当該プロセスは、例えば、エンジニアAが第1のクライアント(202−1)の画面上に表示される「ペア終了」のボタンをマウス等でクリックすることによって開始される(図13の1322、図14の1422、図17の1322を参照)。または、当該プロセスは、エンジニアBが第2のクライアント(202−2)の画面上に表示される「ペア終了」のボタンをマウス等でクリックすることによって開始される(図16の1522を参照)。
ステップ1002では、第1のクライアント(202−1)は、エンジニアAからコンテンツの編集又は閲覧の終了の指示を受信する。当該受信に応じて、第1のクライアント(202−1)は、サーバ(201)にコンテンツの編集又は閲覧を終了する指示を渡す。また、当該終了において、当該コンテンツの編集又は閲覧に参加している他のエンジニアの同意が必要であるようにしうる。係る場合、サーバ(201)は、コンテンツの編集又は閲覧を終了する指示を第1のクライアント(202−1)から受信すると、クローン環境に参加している第2のクライアントに、コンテンツの編集又は閲覧の終了をする指示がエンジニアAからあったことを伝えるようにしうる。
ステップ1003では、第1のクライアント(202−1)は、エンジニアAからクローン環境上での変更セットのマージ先の提示を受信する。マージ先は、複数指定されてもよい。当該マージ先の受信に応じて、第1のクライアント(202−1)は、サーバ(201)にマージ先を伝える。なお、ステップ1003のマージ先の提示は、ステップ1002の指示と同時に行われてもよい。すなわち、第1のクライアント(202−1)が、エンジニアAからコンテンツの編集又は閲覧の終了の指示と、上記変更セットのマージ先の提示とを同時に受信するようにしうる。係る場合、上記指示及び上記マージ先の提示の受信に応じて、第1のクライアント(202−1)は、サーバ(201)にコンテンツの編集又は閲覧を終了する指示及びマージ先を伝える。
ステップ1004では、サーバ(201)は、当該サーバ(201)上のクローン環境である統合開発環境から変更セットを取得して、マージ先に転送する。
ステップ1005では、転送先において、変更セットがマージされる。マージ先が第1のクライアント(202−1)である場合、第1のクライアント(202−1)は、当該変更セットをローカル環境のデータ(例えば、ソース・ファイル)とマージしうる。マージ先がSCMサーバ(203)である場合、SCMサーバ(203)が、必要に応じて、チェックアウト、マージ、チェックイン等を行うようにしうる。
ステップ1006では、サーバ(201)は、タスク(例えば、CMタスク)に、編集作業に関する情報を追加する。編集に関する情報は、例えば、参加者の識別子(ID)(例えば、第2のクライアント又はそのユーザの名前若しくは管理番号)、及び作業の開始時間及び終了時間を包含する。
ステップ1007では、サーバ(201)は、ペア・プログラミングを終了するプロセスを終了する。サーバ(201)上のクローン環境は、ペア・プログラミングの作業終了後においても、各クライアントによる変更の経過を検証するために保存しておくことが可能である。係る場合、サーバ(201)は、第1のクライアント(202−1)のローカル環境と適宜同期を取ることが可能である。
また、ペア・プログラミングの終了に応じて、第1のクライアント(202−1)の画面は、クローン環境の画面(例えば下記図13を参照)からローカル環境の画面(例えば下記図11を参照)に自動的に切り替わる。または、当該終了に応じて、第1のクライアント(202−1)の画面から、クローン環境のウィンドウ(例えば下記図14を参照)が消える。
図11は、本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境をサーバ上に構築することを要請する画面の例を示す。
図11は、エンジニアAのクライアント(202−1)の画面(1101)を示す。画面(1101)は、IDEアプリケーションの編集画面を示す。エンジニアAは、ペア・プログラミングの募集(サーバ上でのクローン環境の構築の要請)をしたいとする。エンジニアAは、画面(1101)上のボタン「ペア募集」(1121)をマウス等でクリックする。それに応じて、ペア募集ダイアログのウィンドウ(1131)が画面(1101)上に表示される。ペア募集ダイアログのウィンドウ(1131)は、例えば、IDEアプリケーションのタスク番号を指定するためのダイアログ・ボックス(1132)、編集するファイルを選択するためのダイアログ・ボックス(1133〜1134)、ペア候補を指定するためのダイアログ・ボックス(1135〜1137)、ペア開始時期を指定するためのダイアログ・ボックス(1138)、並びに「OK」ボタン(1139)及び「キャンセル」ボタン(1140)を有する。エンジニアAは、タスク番号をダイアログ・ボックス(1132)に指定可能である。また、エンジニアAは、ペア・プログラミングを行う編集対象であるファイルをダイアログ・ボックス(1133)に入力又は指定可能である。また、例えば、ソースコードの行の指定は、例えば、ソースファイルをブラウズするダイアログで行うようにすることができる。また、エンジニアAは、ペア・プログラミングを行うペア候補を入力又は指定可能である。なお、入力又は指定において、エンジニアの各名前を直接入力するだけでなく、チーム名、グループ名又は組織名が選択可能なようにしうる。また、エンジニアAは、ペア開始時期を指定しうる。なお、エンジニアAは、ペア開始時期を、別途、統合開発環境のスケジュール管理機能又はカレンダ機能を使用して指定しうる。タスク番号、編集するファイル、ペア候補、及び/又はペア開始時期が入力又は指定された後に、エンジニアAが、「OK」ボタンを押すことによって、エンジニアAのクライアント(202−1)から、サーバ(201)にペア募集の通知が送信される。そして、サーバ(201)上に、クライアント(202−1)の現在のワークスペースと同等のクローン環境が構築される。当該クローン環境の構築において、クライアント(202−1)の現在のワークスペースで使用されているベースラインと、編集するファイル一覧で指定されたファイル情報とが使用されうる。
図12は、本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でペア・プログラミングを行う相手を許可する画面の例を示す。
図12は、エンジニアAのクライアント(202−1)の画面(1101)を示す。当該画面(1101)は、ペア応募者ダイアログ(1231)を有する。ここで、エンジニアAのペア募集に対して、エンジニアB(202−2)、エンジニアC(202−3)及びエンジニアD(202−4)が応募したとする。ペア応募者ダイアログ(1231)は、エンジニアAに対して、エンジニアB(202−2)、エンジニアC(202−3)及びエンジニアD(202−4)のうちの誰とペア・プログラミングをするかの選択を許すためのダイアログ・ボックス(1233、1234及び1235)を表示する。エンジニアAは、応募者の全て又は一部(例えばエンジニアBさんとエンジニアDさん)とペア・プログラミングすることを許可することも可能であり、又は応募者の全てとのペア・プログラミングを拒否することも可能である。エンジニアAがエンジニアBとのペア・プログラミングを希望したとする。エンジニアAがダイアログ・ボックス(1233)をマウス等でクリックし、「OK」ボタンを押すことによって、エンジニアAのクライアント(202−1)から、サーバ(201)に許可された(すなわち、ペア・プログラミングを行う)相手がエンジニアBである情報が送信される。そして、サーバ(201)は、エンジニアBに関連付けられたコンピュータ(202−2)に、ペア開始可能であることを伝える。一方、エンジニアAによって選択されなかったエンジニアC及びDについては、エンジニアC及びDにそれぞれ関連付けられたコンピュータ(202−3及び202−4)に、ペア開始が拒否されたことを伝える。
図13は、本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でコンテンツを編集又は閲覧するための画面(ローカル環境の画面と置換されている)の例を示す。
図13は、エンジニアAのクライアント(202−1)の画面を示す。当該画面では、ローカルのIDEアプリケーションの編集画面(以下、ローカル環境における編集画面ともいう)(1101)が、サーバ(201)上に構築されたクローン環境におけるIDEアプリケーションの編集画面(以下、クローン環境における編集画面ともいう)(1301)に置き換わっている例を示す。クローン環境における編集画面(1301)であることをエンジニアAに示すために、クローン環境における編集画面(1301)はクローンであることを示す表示(1322)を有しうる。または、クローン環境における編集画面(1301)の背景色をローカル環境における編集画面(1101)の背景色と異なる色に設定し、エンジニアAに対してクローン環境における編集画面(1301)であることを示すことが可能である。
また、クローン環境における編集画面(1301)は、ペア・プログラミングを実行中であること、その編集対象であるタスクが「123」であること、及びペア・プログラミングを行っているエンジニアの名称を表示しうる(1314a)。
ペア・プログラミングにおいて、コードに対する変更は変更作業をしたクライアントからサーバ(201)に送信される。サーバ(201)は、各クライアントから送信された変更内容を編集ログとして保存する。
図14は、本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でコンテンツを編集又は閲覧するための画面(別ウィンドウで表示されている)の例を示す。
図14は、エンジニアAのクライアント(202−1)の画面を示す。当該画面では、エンジニアAのローカルにおけるIDEアプリケーションの編集画面(ローカル環境における編集画面)のウィンドウ(1101)上に、サーバ(201)上に構築されたクローン環境におけるIDEアプリケーションの編集画面(クローン環境における編集画面)のウィンドウ(1401)が別に表示されている。クローン環境における編集画面(1401)のウィンドウであることをエンジニアAに示すために、クローン環境における編集画面はクローンであることを示す表示(1423)を有しうる。または、クローン環境における編集画面(1401)の背景色をローカル環境における編集画面の背景色と異なる色に設定し、エンジニアAに対していずれの画面であるかを示すことが可能である。
また、クローン環境における編集画面は、ペア・プログラミングを実行中であること、その編集対象であるタスクが「123」であること、及びペア・プログラミングを行っているエンジニアの名称を表示しうる(1414)。
また、クライアント(202−1)は、クローン環境における編集画面のウィンドウ(1401)が消去されるまで、ローカル環境における編集画面のウィンドウ(1101)をアクティブにできないように設定しうる。すなわち、クライアント(202−1)は、ペア・プログラミングが終了することに応じて、クローン環境における編集画面のウィンドウ(1401)を消去するとともに、ローカル環境における編集画面のウィンドウ(1101)をアクティブにしうる。
図15は、本発明の実施態様に従う、第2のクライアント(エンジニアB)におけるクローン環境への参加の募集通知の画面の例を示す。
図15は、エンジニアAとペア・プログラミングを行う相手であるエンジニアBのクライアント(202−2)の画面(1501)を示す。画面(1501)は、エンジニアAからのペア参加ダイアログ(1531)を表示する。ペア参加の募集は、例えば、エンジニアBのクライアント(202−2)の統合開発環境、ダッシュボード、又はメール若しくはインスタント・メッセンジャを通じてエンジニアBに通知されうる。ペア参加ダイアログ(1531)は、例えば、ペア要請者の名前、「今すぐ参加」可能であること又は後に参加可能であること(例えば「下記予定で参加」)を知らせるためのダイアログ・ボックス(1533、1534)を有する。エンジニアBが「今すぐ参加」のダイアログ・ボックス(1533)を選択し、「OK」ボタンを押すことによって、今すぐにペア参加可能であることがサーバ(201)に伝えられる。また、エンジニアBが今すぐにペア参加せずに参加可能である予定日付及び必要に応じて時間を指定した場合、その参加可能である予定日付及び時間がサーバ(201)に伝えられる。また、ペア参加ダイアログ(1531)、コンテンツの編集又は閲覧のいずれを行うかを選択可能なチェックボックスを有しうる(図示せず)。
図16は、本発明の実施態様に従う、第2のクライアント(エンジニアB)におけるクローン環境上でコンテンツを編集又は閲覧するための画面の例を示す。
図16は、エンジニアBのクライアント(202−2)の画面(1501)を示す。当該画面(1501)は、サーバ(201)上に構築されたクローン環境におけるIDEアプリケーションの編集又は閲覧画面を有する(1611、1612、1613、1614)。また、画面(1501)は、ペア・プログラミングを実行中であること、その編集対象であるタスクが「123」であること、及びペア・プログラミングを行っているエンジニアの名前を表示しうる(1614)。
図17は、本発明の実施態様に従う、第1のクライアント(エンジニアA)におけるクローン環境上でのペア・プログラミングを終了するための画面の例を示す。
図17は、エンジニアAの第1のクライアント(202−1)の画面(1301)を示す。エンジニアAはペア・プログラミングの終了をしたいとする。エンジニアAは、画面(1301)上のボタン「ペア終了」(1322)をマウス等でクリックする。それに応じて、ペア終了ダイアログのウィンドウ(1731)が画面(1301)上に表示される。ペア終了ダイアログのウィンドウ(1731)は、現在編集中のタスク番号を示すボックス(1732)、コメントを記載するためのボックス(1733)、及び編集結果をマージするマージ先候補のダイアログ・ボックス(1734、1735、1736)、並びに「OK」ボタン(1737)及び「キャンセル」ボタン(1738)を有する。エンジニアAは、マージ先をダイアログ・ボックス(1734、1735、1736)から選択可能である。マージ先は、例えば、第1のクライアント(202−1)(1734)及びSCMサーバ(203)(1735)である。エンジニアAは、1又は複数のマージ先を指定し、必要に応じてコメントを記入して、「OK」ボタンを押す。当該「OK」ボタンが押されることに応じて、ペア・プログラミングが終了する。また、ペア・プログラミング中の編集結果が、指定されたマージ先に格納される。また、ペア・プログラミングが終了することに応じて、エンジニアAのクライアント(202−1)の画面(1301)は、ローカル環境の画面に切り替わる。

Claims (18)

  1. 少なくとも2のクライアント・コンピュータ(以下、クライアントという)と当該クライアントにネットワークを介して接続されうるサーバ・コンピュータ(以下、サーバという)とを備えるコンピューティング環境において、前記少なくとも2のクライアントのうちの1つのクライアント(以下、第1のクライアントという)上で実行されるアプリケーションのローカル環境を共有可能にする方法であって、前記サーバが、
    前記第1のクライアントのユーザからの前記ローカル環境のクローン(以下、クローン環境という)の構築の要請に応じて、前記第1のクライアントと異なる少なくとも1つの他のクライアント(以下、第2のクライアントという)から、前記クローン環境に参加する通知を受信するステップと、
    前記第1のクライアントが保持する前記ローカル環境についての情報を使用して、前記クローン環境を当該サーバ上に構築するステップと、
    前記第1のクライアント及び前記クローン環境に参加する通知を送信した第2のクライアントが前記クローン環境上でコンテンツを編集し又は閲覧することを可能にするステップと
    を実行すること含む、前記方法。
  2. 前記構築するステップが、
    前記ローカル環境についての情報を使用して、当該情報に基づいて前記クローン環境を構築するための環境の構成要素を当該サーバに関連付けられたレポジトリから取り出すステップと、
    前記取り出された構成要素に、前記第1のクライアントが保持する前記アプリケーションのローカル環境の構成要素をマージするステップと
    を含む、請求項1に記載の方法。
  3. 前記クローン環境上でコンテンツを編集し又は閲覧することを可能にすることが、前記第1のクライアントに、当該第1のクライアントの画面上のローカル環境を前記クローン環境に切り替えさせること、又は、前記第1のクライアントに、当該第1のクライアントの画面上に前記クローン環境のウィンドウを表示させることによって実現される、請求項1に記載の方法。
  4. 前記サーバが、
    前記参加する通知の受信に応答して、前記第2のクライアント又は当該第2のクライアントに関連付けられたユーザが前記クローン環境に参加することの許否を、前記第1のクライアントに問い合わせるステップ
    を実行することさらに含み、
    前記第2のクライアント又は当該第2のクライアントに関連付けられたユーザが前記クローン環境に参加することの承認を前記第1のクライアントから受信することに応じて、前記構築するステップが実行される、請求項1に記載の方法。
  5. 前記サーバが、前記クローン環境で行われた編集又は閲覧の操作ログである変更セットを、当該サーバに関連付けられた記憶装置内に保存するステップ、又は前記第1のクライアントに送信するステップを実行することをさらに含む、請求項1に記載の方法。
  6. 前記サーバが、前記クローン環境での参加者の識別子、又は、作業の開始時間及び終了時間を当該サーバに関連付けられた記憶装置内に保存するステップを実行することをさらに含む、請求項1に記載の方法。
  7. 前記ローカル環境についての情報が、開発環境のランタイム情報、前記アプリケーションにおいて使用するファイル、ドキュメント又はコードのベースライン情報、又はプライベート・ファイル情報である、請求項1に記載の方法。
  8. 前記開発環境のランタイム情報が、統合開発環境の種類、仮想マシンのバージョン、又はソフトウェア構成管理サーバ名である、請求項に記載の方法。
  9. 前記ベースライン情報が、ファイル、ドキュメント又はコードのバージョン管理情報である、請求項に記載の方法。
  10. 前記プライベート・ファイル情報が、編集対象であるコンテンツに関連付けられたソース又はライブラリである、請求項に記載の方法。
  11. 前記構築するステップが、前記ローカル環境についての情報及び前記ローカル環境の構成要素を前記第1のクライアントから受信するステップをさらに含む、請求項2に記載の方法。
  12. 前記アプリケーションのローカル環境が、統合開発環境、オフィス・アプリケーション環境又は教育支援環境である、請求項1〜11のいずれか一項に記載の方法。
  13. 前記コンテンツが、ドキュメント、コード、オフィス・アプリケーション・データ又は教育支援ファイルである、請求項1〜12のいずれか一項に記載の方法。
  14. 少なくとも2のクライアント・コンピュータ(以下、クライアントという)と当該クライアントにネットワークを介して接続されうるサーバ・コンピュータ(以下、サーバという)とを備えるコンピューティング環境において、前記少なくとも2のクライアントのうちの1つのクライアント(以下、第1のクライアントという)上で実行されるアプリケーションのローカル環境を共有可能にする方法であって、前記サーバが、
    前記第1のクライアントのユーザからの前記ローカル環境のクローン(以下、クローン環境という)の構築の要請に応じて、前記第1のクライアントが保持する前記ローカル環境についての情報を使用して、前記クローン環境を当該サーバ上に構築するステップと、
    前記第1のクライアントと異なる少なくとも1つの他のクライアント(以下、第2のクライアントという)から、前記クローン環境に参加する通知を受信するステップと、
    前記第1のクライアント及び前記クローン環境に参加する通知を送信した第2のクライアントが前記クローン環境上でコンテンツを編集し又は閲覧することを可能にするステップと
    を実行すること含む、前記方法。
  15. 前記サーバが、
    前記参加する通知の受信に応答して、前記参加する通知を送信した第2のクライアント又は当該第2のクライアントに関連付けられたユーザが前記クローン環境に参加することの許否を、前記第1のクライアントに問い合わせるステップ
    を実行することさらに含み、
    前記参加する通知を送信した第2のクライアント又は当該第2のクライアントに関連付けられたユーザが前記クローン環境に参加することの承認を前記第1のクライアントから受信することに応じて、前記編集し又は閲覧することを可能にするステップが実行される、請求項14に記載の方法。
  16. 少なくとも2のクライアント・コンピュータ(以下、クライアントという)と当該クライアントにネットワークを介して接続されうるサーバ・コンピュータ(以下、サーバという)とを備えるコンピューティング環境において、前記少なくとも2のクライアントのうちの1つのクライアント(以下、第1のクライアントという)上で実行されるアプリケーションのローカル環境を共有可能にするサーバであって、
    前記第1のクライアントのユーザからの前記ローカル環境のクローン(以下、クローン環境という)の構築の要請に応じて、前記第1のクライアントと異なる少なくとも1つの他のクライアント(以下、第2のクライアントという)から、前記クローン環境に参加する通知を受信する受信手段と、
    前記第1のクライアントが保持する前記ローカル環境についての情報を使用して、前記クローン環境を当該サーバ上に構築する構築手段と、
    前記第1のクライアント及び前記ローカル環境に参加する通知を送信した第2のクライアントが前記クローン環境上でコンテンツを編集し又は閲覧することを可能にするクローン処理手段と
    を備えている、前記サーバ。
  17. 少なくとも2のクライアント・コンピュータ(以下、クライアントという)と当該クライアントにネットワークを介して接続されうるサーバ・コンピュータ(以下、サーバという)とを備えるコンピューティング環境において、前記少なくとも2のクライアントのうちの1つのクライアント(以下、第1のクライアントという)上で実行されるアプリケーションのローカル環境を共有可能にするサーバであって、
    前記第1のクライアントのユーザからの前記ローカル環境のクローン(以下、クローン環境という)の構築の要請に応じて、前記第1のクライアントが保持する前記ローカル環境についての情報を使用して、前記クローン環境を当該サーバ上に構築する構築手段と、
    前記第1のクライアントと異なる少なくとも1つの他のクライアント(以下、第2のクライアントという)から、前記クローン環境に参加する通知を受信する受信手段と、
    前記第1のクライアント及び前記ローカル環境に参加する通知を送信した第2のクライアントが前記クローン環境上でコンテンツを編集し又は閲覧することを可能にするクローン処理手段と
    を備えている、前記サーバ。
  18. 少なくとも2のクライアント・コンピュータ(以下、クライアントという)と当該クライアントにネットワークを介して接続されうるサーバ・コンピュータ(以下、サーバという)とを備えるコンピューティング環境において、前記少なくとも2のクライアントのうちの1つのクライアント(以下、第1のクライアントという)上で実行されるアプリケーションのローカル環境を共有可能にするサーバに、請求項1〜1のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
JP2010266585A 2010-11-30 2010-11-30 クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム Active JP5649171B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010266585A JP5649171B2 (ja) 2010-11-30 2010-11-30 クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム
US13/304,290 US10659522B2 (en) 2010-11-30 2011-11-23 Sharing application local environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010266585A JP5649171B2 (ja) 2010-11-30 2010-11-30 クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2012118674A JP2012118674A (ja) 2012-06-21
JP5649171B2 true JP5649171B2 (ja) 2015-01-07

Family

ID=46127354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010266585A Active JP5649171B2 (ja) 2010-11-30 2010-11-30 クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム

Country Status (2)

Country Link
US (1) US10659522B2 (ja)
JP (1) JP5649171B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213515B2 (en) * 2012-09-24 2015-12-15 At&T Intellectual Property I, L.P. On-demand multi-screen computing
JP6048957B2 (ja) 2012-12-21 2016-12-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び情報処理方法
WO2014112089A1 (ja) * 2013-01-17 2014-07-24 株式会社日立製作所 計算機システム、及びプログラム
CN103268246B (zh) * 2013-05-20 2016-01-20 南京师范大学 一种分布式结对编程交流中的自动干预方法及其装置
WO2014209348A1 (en) * 2013-06-28 2014-12-31 Empire Technology Development Llc Task management on computing platforms
US9483261B2 (en) * 2014-07-10 2016-11-01 International Business Machines Corporation Software documentation generation with automated sample inclusion
JP6029117B2 (ja) 2014-07-31 2016-11-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソースコードの共有を支援する装置及び方法
US10013273B1 (en) * 2016-06-22 2018-07-03 Amazon Technologies, Inc. Virtual machine termination management
WO2020142565A1 (en) * 2018-12-31 2020-07-09 Ultimate Knowledge Corporation Opendash system for managing a plurality of software services including within a cyber range

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002140278A (ja) * 2000-10-31 2002-05-17 Sony Corp 情報処理装置および方法、並びに記録媒体
JP4203657B2 (ja) 2004-02-27 2009-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーション コラボレーションサーバ、コラボレーションシステム、その方法及びプログラム
JP5002975B2 (ja) 2006-02-08 2012-08-15 富士電機株式会社 プログラム開発支援システム
JP2007226287A (ja) * 2006-02-21 2007-09-06 Yokogawa Electric Corp システム環境再現方法およびシステム環境修正方法
KR100796374B1 (ko) 2006-04-21 2008-01-21 (주) 디엠디 네트워크 기반의 정보기술 솔루션 개발관리 시스템 및 그방법
US20070288884A1 (en) * 2006-06-13 2007-12-13 Vince Carl Brunssen Managing non-essential formatting elements peculiar to individual program developers in source code in a system for shared computer program development
US8464209B2 (en) 2007-03-19 2013-06-11 Microsoft Corporation Using collaborative development information in a team environment
US20080244418A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Distributed multi-party software construction for a collaborative work environment
US20090228576A1 (en) * 2008-03-06 2009-09-10 Rosenan Avner System and method for testing software
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
WO2010028395A1 (en) * 2008-09-08 2010-03-11 Credit Suisse Securities (Usa) Llc Apparatuses, methods and systems for providing a virtual development and deployment environment including real and synthetic data
US8190569B2 (en) * 2009-04-03 2012-05-29 Wishlist Holdings Limited System and method for site cloning
US8204908B2 (en) * 2009-11-24 2012-06-19 Sap Ag Team support in change recording and versioning systems

Also Published As

Publication number Publication date
US10659522B2 (en) 2020-05-19
JP2012118674A (ja) 2012-06-21
US20120136925A1 (en) 2012-05-31

Similar Documents

Publication Publication Date Title
JP5649171B2 (ja) クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム
US8132092B2 (en) Automated management of internet and/or web site content
JP4268093B2 (ja) 会議遷移制御方法、会議遷移制御サーバおよび会議遷移制御プログラム
US7814030B2 (en) Systems and methods for managing enterprise IT support planning
US8701083B2 (en) Systems and methods for varying software build properties using primary and supplemental build files
JPWO2009116163A1 (ja) アプリケーション開発支援装置、プログラム及び記録媒体
US20140129585A1 (en) Information management systems and methods
JP2009181329A (ja) アプリケーション開発支援装置及びプログラム
US8788313B2 (en) Decentralised audit system in collaborative workflow environment
US8984001B2 (en) System and method for digital assistance agents in product lifecycle management
JP2006195833A (ja) ワークフローシステム、そのプログラム
JP2011192078A (ja) タスク管理装置及びタスク管理プログラム
JP4714199B2 (ja) アプリケーション開発支援装置及びプログラム
JP4997886B2 (ja) ワークフロー連携プログラムおよびワークフロー管理システム
JP7277877B2 (ja) 看板基盤の業務処理装置及び業務処理方法
JP2000215244A (ja) ワ―クプロセス管理装置
JP4262655B2 (ja) ワークフローシステム及びワークフローシステムの管理方法
JP2023110808A (ja) スマートタグ基盤の業務処理装置及び業務処理方法
JP7039903B2 (ja) 情報処理システム、情報処理装置、プログラム及び画面共有端末制御方法
JP3939904B2 (ja) ワークフローシステム、文書承認方法および記憶媒体
KR20030004838A (ko) 기업 업무 관리 시스템 및 그 제어방법
JP5691516B2 (ja) 画面情報提供プログラムおよび画面情報提供方法
JP7095478B2 (ja) 情報処理装置及びプログラム
JP2012137995A (ja) リソース提供システム、アクセス制御プログラム及びアクセス制御方法
JP4470900B2 (ja) コミュニティ参加型の情報共有システムおよび情報共有方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140701

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141020

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20141020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141107

R150 Certificate of patent or registration of utility model

Ref document number: 5649171

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150