IBM Rational Build Forge は、ソフトウェア開発に関係する各コンポーネントでプロセスの自動化、管理、追跡をするための適応型のプロセス実行フレームワークです。つまり Rational Build Forge は自動化されたソフトウェア・ファクトリーに向けての第一歩です。Rational Build Forge は主な開発言語、スクリプト、ツール、プラットフォームをサポートし、また IBM SmartCloud Enterprise 環境など、多くの環境に容易に統合することができます。
実際、開発を自動化する Build Forge の機能を IBM Cloudの対応範囲の広さとアプリケーション・デプロイメント機能と組み合わせると、大幅に自動化された強力なソフトウェア・アセンブリー・ラインを作り出すことができます。
この記事では、プロセス自動化のプロセス、Build Forge 技術の詳細、開発者にとって Build Forge と IBM Cloud との融合が重要となる理由、そして Build Forge と IBM Cloud との統合方法について説明します。さらに、Build Forge の使用事例の 1 つを詳細に説明し、他の用途に Build Forge を使用するアイデアも 2 つほど紹介します。
プロセスを自動化することにより、ビジネスはまったく異なるアプリケーション、人々、システムにまたがるプロセスの振る舞いを規定することができ、非効率の排除、コスト最適化、確実なコンプライアンス、生産性向上を実現することができます。Rational Build Forge は製品開発のアセンブリー・ラインにおけるプロセスを自動化、調整、管理、追跡します。Rational Build Forge は一般に、ソフトウェアのビルド・プロセスとパッケージ化プロセスの自動化のために使用されています。
このセクションでは、さまざまなプロセスを人間が行う場合のモデルを説明し、そのモデルを Build Forge の機能に対応させます。人間によるプロセス自動化モデルは、以下のようなロールで構成されています。
- 対象となる作業 (Work) はドキュメント化された一連のプロセス (Process) です。各プロセス (Process) は複数のタスク (Task) で構成されています。
- 対象となる作業 (Work) をコーディネーター (Coordinator) が「実行」します。コーディネーター (Coordinator) は実行すべきプロセス (Process) を選択し、それらのタスク (Task) を順次検証します。それぞれのタスク (Task) をどのワーカー (Workers) が実行するかは、プロセス (Process) が定義します。コーディネーター (Coordinator) はタスク (Task) をワーカー (Workers) に渡し、結果を待ちます。
- ワーカー (Workers) はプロセス (Process) の中で定義されるタスク (Task) を実行します。
先ほど触れたように、Build Forge は適応型のプロセス実行フレームワークであり、ソフトウェア開発というアセンブリー・ラインのプロセスを自動的に管理します。では Build Forge のコンポーネントをいくつか調べてみましょう。
Build Forge を使用する場合、以下のコンポーネントが必須となります。
- データベース: Build Forge は Build Forge 自身が使用するすべてのオブジェクトを格納するためにデータベースを使用します。
- Build Forge システム: データベースへのアクセス管理、UI コードの実行、ジョブの実行という作業のための一連の技術からなります。
- エージェント: 作業を実行するエージェント・ソフトウェアを各ホストにインストールする必要があります。
- Web ブラウザー: ユーザーは通常、Web ブラウザーに表示されるコンソールを通じて Build Forge にアクセスします。
IBM SmartCloud Enterprise はアジャイルなクラウド・インフラストラクチャー上に構築されており、利用者は十分なセキュリティーが施されたエンタープライズ・クラスのサーバー環境に高速アクセスできるように設計されているため、開発やテストに非常に適しています。IBM SmartCloud Enterprise というソリューションによって提供される柔軟なプロビジョニングにより、必要な IT リソースに対し、オンデマンドで、事前に設定されたコストでアクセスすることができます。IT 担当者は、開発環境やテスト環境のデプロイ、構成、保守に貴重な時間を費やす必要がなくなります。
IBM Cloud には使いやすく設計されたセルフ・サービスのテスト・プラットフォームが用意されており、そこにはサービス・リクエスト管理、自動プロビジョニング、構成管理が統合されています。そのため、オペレーティング・システム、ミドルウェア、ストレージ、ネットワーク、イメージ、データなど、IBM が提供するコンポーネントや IBM 以外から提供されるコンポーネントを含む、テスト用の物理リソースおよび仮想リソースをオンデマンドでプロビジョニングすることができます。
Build Forge と IBM Cloud とを統合することによるメリット
図 1 は Build Forge のモデルを示しています。
図 1. Build Forge のモデル
先ほどのセクションで触れた人間によるモデルは、以下のようにして Build Forge のモデルに対応させることができます。
- 作業 (Work) のプロセス (Process) は Build Forge のプロジェクト・オブジェクトの中で定義されます。各プロジェクトには 1 つ以上のステップ・オブジェクトが含まれています。プロジェクトのステップは人間によるモデルではプロセス (Process) 内のタスク (Task) に対応します。
- コーディネーター (Coordinator) は実行される Build Forge ソフトウェアに対応します。このソフトウェアにはプロセス・エンジンと呼ばれるコンポーネントが含まれています。Build Forge でプロジェクトを起動すると、プロセス・エンジンはそのプロジェクトをジョブ・オブジェクトとして実行します。ジョブというのは実行されているプロジェクトにすぎません。
- ワーカー (Workers) はホスト・マシンに対応します。Build Forge では、ワーカー (Workers) はサーバー・オブジェクトによって表現されます。ホストにはエージェントをインストールしておく必要があります。
以上は非常に単純化したモデルです。
- Build Forge
には、プロセスの自動化をサポートするオブジェクト・タイプが他にも数多く含まれています。ユーザー情報や、権限、そしてサーバーやプロジェクトをサポートするその他のオブジェクトはすべて、データベースに格納されます。UI
ウィジェットなど、Build Forge の一部もデータベースに格納されます。Build Forge を実行するためにはデータベースが稼働している必要があります。
- プロジェクトとステップをさまざまな方法で実行できるように構成することで、複雑な依存関係とワークフローを持つ複雑なプロセスをサポートすることができます。プロジェクトは他のプロジェクトから実行することも、ステップから実行することもできます。
- ステップやプロジェクトでは、サーバー定義の一部である基準データを基に、サーバーを動的に選択することができます。例えば、ステップを実行するサーバーを選択する際に、それぞれのサーバーが Windows を実行していたのか UNIX/Linux を実行していたのかを基準に選択することができます。また、サーバーはプールされるリソースとして構成することもできるため、ステップを実行するサーバーを現在の可用性や負荷を基準に選択することもできます。
IBM Cloud で Build Forge を使用してビルドを自動化すると、ビルドの結果が改善され、リスクの軽減と時間の大幅な節約が可能になります。また、プロジェクトの計画からハードウェアの要求および調達をなくすことができ、ラボ・リソースを十分に利用できるようになります。
さらに、企業は構成を簡単に設定あるいは解除することができるため、インフラストラクチャーを動的に活用できるようになります。こうした柔軟性により、大幅に時間を節約することができます。
IBM Cloud で Build Forge を活用すると、チームや組織がワークロードの追加に対処するためにさらなる処理能力が必要になった場合でも、使用されていない追加のハードウェアを短期間の用途のために急いで見つけ出す必要もたちどころになくなります。
Build Forge を他の Rational 製品と統合すると、数多くのメリットがもたらされます。ソフトウェア開発のライフサイクルで重要となる IBM Rational 製品としては、Rational Team Concert (RTC)、Rational Asset Manager (RAM)、Rational Quality Manager (RQM)、Rational Requirements Composer (RRC) などがあります。
- IBM Cloud で Build Forge を Rational Team Concert
と統合すると、開発者コミュニティーは複数のプラットフォームで同じユーティリティーを使用してソフトウェアのビルドや実行ができるという追加のメリットがあります。また、この統合によって、ビルドやサニティー・チェックのために別のツールやスクリプトに切り換える必要がなくなります。この構成では、ソフトウェア・ツールやフレームワークを複数のユーザーで最も効率的に使用することができます。また、個々のユーザーやリリース・エンジニアが同じインターフェースと同じツールを使用して同時に製品をビルドすることができ、ビルド環境をいくつも複製する必要がありません。IBM
Cloud ではバージョン 3.0.1 を使用することができます。
- Build Forge と Rational Asset Manager との統合は、クラウドに対応したいと考えている企業にとって最適の組み合わせです。Build Forge
を Rational Asset Manager と統合すると、クラウド上でイメージのプロビジョニングとデプロビジョニング (プロビジョニングの解除)
を容易に行うことができます。Rational Asset Manager はアセットの管理を支援し、Build Forge は指定されたソフトウェアを含むイメージのプロビジョニングを自動化することができます。つまりこの統合はクラウド・ソリューションの構築を全般的に支援してくれます。同じことがクラウド内のアプリケーションにも当てはまります。クラウドでは、組織や企業は割り当てられたリソースやアセットの管理を Rational Asset Manager 内で行うことができ、Build Forge を使用することでユーザーからの要求に応じてそれらのアセットを利用できるようにすることができます。また、開発者は Rational Asset Manager 内で管理されているアセットを参照してビルドを行うこともできます。つまり開発者は Rational Asset Manager 内のアセットをベースに、Build Forge を使用してビルドを作成することができます。このようにして作成されたビルドを新しいアセットとして、あらためて Rational Asset Manager に公開することもできます。
- Rational Quality Manager と統合すると、Rational Build Forge のサーバーとプロジェクトが Rational Quality
Manager の Lab Management サブシステムに表示されるようになります。ユーザーは 1
つまたは複数のラボ・リソースに対して自動プロジェクトを実行する選択をすることができます。Rational Quality Manager では、セットアップ・フェーズ、自動テスト・スイート実行フェーズ、解除フェーズを含む複雑なテスト・シナリオを作成することもできます。さらに、テスト・スタンドのセットアップと解除を Rational Build Forge の自動プロジェクトとして行うことができます。Rational Quality Manager のインターフェースは、Rational Build Forge が自動プロジェクトを実行し、その結果を待ってから次のステップに進むことを要求します。IBM Cloud では Rational Quality Manager V3.0.1 を使用することができます。
- Rational Requirements Composer は、チームが要件についての計画を立てるのを支援します。品質に対するより高い要求、効果的な管理、そして優れたプロセスによって、やり直し作業の低減、製品化に要する時間の短縮、そしてコストの削減が可能となり、全体としてより良い成果を得ることができます。Rational Requirements Composer V3.0.1 には、定義、管理、トレーサビリティー、テンプレート、履歴、レビューと承認、タスク管理、計画、フィルターやビューの共有、カスタマイズ可能なダッシュボード、レポートなどの機能が強力に組み合わされています。Rational Requirements Composer を Rational Team Concert および Rational Quality Manager と統合すると、ビューレットを介してデータを共有することや、お好みの Web ブラウザーを使用してデータにアクセスすることができるようになります。IBM Cloud では Rational Requirements Composer V3.0.1 を使用することができます。
IBM Rational Collaborative Lifecycle Management (CLM) 2011 として、IBM Cloud 内で Rational Team Concert、Rational Quality Manager、Rational Requirements Composer を使用してみてください。
このセクションでは、IBM SmartCloud Enterprise の使用事例をいくつか紹介します。使用事例について説明する前に、Build Forge のコンソールを使用してエージェントに接続する方法を理解する必要があります。
コンソールを使用して手動で Build Forge Agent を構成する
クラウド内に 2 台のマシン (Build Forge をインストールした 1 台とBuild Forge Agent をインストールした 1 台) を用意すると、その 2 台を連携させて使用することができます。
- Build Forge の管理コンソールに接続できることを確認します。それをテストするためには、ブラウザーで http://<マシンの IP アドレス> または https://<マシンの IP アドレス> にアクセスしてみます (どちらを使用するかはコンソール・サービスを実行しているマシンでセキュリティーが有効になっているかどうかによります)。アクセスできない場合には、Build Forge サービスを起動する必要があります。
- Windows の場合: 「Service (サービス)」パネルで「IBM Rational Build Forge Management Console」を選択して Build Forge サービスを起動します。
- Linux の場合: 「
<Build Forge のインストール・ディレクトリー>/rc/buildforge」を入力して Build Forge Console を起動します。
- 同様に、もう 1 台のマシンで Build Forge Agent が起動されていて実行状態にあることを確認します。
- Windows の場合: 「Service (サービス)」パネルで「IBM Rational Build Forge Agent」を選択して Build Forge Agent サービスを起動します。
- Linux の場合: 以下の内容を入力します。
telnet <machine-ip> <port on which the agent is installed> For e.g., telnet 129.35.208.53 5555 200 HELLO - BuildForge Agent v7.1.1.3-0-0034
- これでブラウザーから Build Forge Management Console に接続する準備が整いました。
- システムで何らかのプロジェクトを作成する前に、少なくとも 1 つのサーバーを定義する必要があります。サーバーを定義するためには以下の操作を行います。
- 「Servers (サーバー)」 > 「Server Auth (サーバー認証)」 > 「Add Server Authentication
(サーバー認証の追加)」の順に選択します。「Details (詳細)」タブで、エージェントを実行するサーバーに対する認証の詳細を追加します。図 2 を見てください。
図 2.
この場合、bfagentuserはエージェントを実行しているマシンへのログインに使用されるユーザーの名前です。 - 「Selectors (セレクター)」ページに進み、図 3 のようにセレクターを追加します。
図 3.
上記ではセレクターとしてCLMMACHINE-Selectorを定義し、BF_NAME変数は次のステップで定義されるサーバーの名前として設定されています。(CLM は Collaborative Lifecycle Management の略です。) - 「Servers (サーバー)」 > 「Add Server
(サーバーの追加)」の順に選択します。エージェントを実行しているサーバーの名前と、その他の詳細事項を入力します。図 4 はサーバーの名前として
CLMMACHINEを使用している例を示しています。
図 4.
- エージェントを適切に構成できたことを確認するために、「Test Connection (接続をテスト)」をクリックし、サーバー名の左側にある「Servers (サーバー)」列に緑色のアイコンが表示されることを確認します。
- 「Servers (サーバー)」 > 「Server Auth (サーバー認証)」 > 「Add Server Authentication
(サーバー認証の追加)」の順に選択します。「Details (詳細)」タブで、エージェントを実行するサーバーに対する認証の詳細を追加します。図 2 を見てください。
- エージェントを適切に構成し、エージェントが実行されていることと Console を介してエージェントが正常に接続されていることを確認できたら、そのマシンで任意のプロセスを起動することができます。例えば、任意のプロジェクトを作成し、セレクターとして CLMMACHINE-Selector を選択することができます。そのプロジェクトの中で、リモートのエージェント・マシンでアクションを実行するステップを追加することができます。これらのアクションは多様であり、単純なエコー・テストのコマンドの場合もあれば、コードをコンパイルしてビルドし、自動テストを実行するプロジェクトの場合もあります。
Build Forge Agent のクラウド・インスタンスを Build Forge のクラウド・インスタンス上で自動的に構成する
IBM Cloud から Build Forge のイメージを正常に取得できると、IBM Cloud の Web サイトから Build Forge Agent のイメージを要求することができます。
- IBM Cloud のアカウントにサインインします。
- 「Control panel (コントロール・パネル」タブで「Add instance (インスタンスの追加)」をクリックします。
- IBM Rational Build Forget Agent のイメージを選択します。
図 5. Build Forget Agent のイメージを要求する
- 「Next (次へ)」をクリックします。
- Build Forge Console イメージに関する情報を追加します。
図 6. Build Forget Agent のイメージに情報を追加する
- 「Next (次へ)」をクリックします。
- 以降のステップのシーケンスに従い、要求対象のインスタンスを追加し、要求を送信します。このプロセスにより、エージェント・マシンが Build Forge Console に自動的に追加されます。
このセクションでは、CLM (Collaborative Lifecycle Management) イメージ内の Build Forge Agent を使用してコンソールからビルドを実行する例について説明します。このシナリオでは以下のユーザーおよびロールを使用します。
- Bob は開発者です。
- Tanuj はプロジェクト・リーダーです。
- Ursula は管理者です。
以下のステップはユーザーのシナリオの概要です。
- Tanuj はさまざまな要件を調べ、どの要件に対して彼のチームが作業を行うのかを決定します。
- Tanuj は Rational Team Concert にログインしてストーリーを作成し、そのストーリーを Bob に割り当て、その作業を Iteration 1 で行うように Bob に指示します。
- 次に Tanuj は Rational Quality Manager にログインし、Iteration 1 に追加された機能をテストするためのテスト計画を作成します。
- Bob は、そのストーリーを完了するために必要な時間を見積もり、そのストーリーの作業を行い、Tanuj によるレビューを受けた後、その作業の提出処理を行います。
- Bob はその作業と並行して、Tanuj が作成した計画に関連付けられるテスト・ケースを Rational Quality Manager で作成します。
- 夜間ビルドを実行するための Build Forge プロジェクトが CLM インスタンス上のエージェントを利用して定義されます。
- 夜間ビルドを実行する Build Forge プロジェクトが起動され、テストのためのスピン (ビルド) が生成されます。
- Bob はそのビルドを利用して、彼が提出処理を行ったストーリーの品質をチェックします。
- 品質チェックを終えると、Bob は Rational Requirements Composer を利用し、その要件を「complete (完了)」とマーキングします。
では、この例を詳細に調べてみましょう。
NewIdeas のチームは銀行業の顧客からの受注に成功しました。NewIdeas のチームは、この銀行の利用者による毎日の取引を格納するソリューションを提案しなければなりません。
非常に活気に満ちた NewIdeas のチームは、IBM SmartCloud Enterprise による CLM ソリューションを採用することに決定し、それを Build Forge Agent の機能と組み合わせることにしました。Build Forge Agent を利用することで、クライアント (この場合は CLM サーバー) 上のアクティビティーを Build Forge Console から操作することができます。
Tanuj (プロジェクト・リーダー) は、このプロジェクトの作業を開始しました。彼は顧客と話し合い、この銀行システムのフレームワークの要件をまとめました。彼のチームはアジャイル開発のプロセスに従います。彼は Web クライアントを使用して Requirements Management にログインし、この顧客に対するベータ・リリースの Iteration 1 で満たすべき要件を作成します (図 7)。
図 7. Iteration 1 に対する要件
彼は次に Rational Team Concert にログインし、Bob (開発者) が行うべき作業のストーリーを作成します (図 8)。
図 8. Bob (開発者) が取り組む作業のストーリー
同時に、Tanuj は Rational Quality Manager にログインし、Iteration 1 の機能 (1 つまたは複数) をテストするためのテスト計画を作成します。この計画の所有者は Tanuj です (図 9)。
図 9. Iteration 1 の機能に対するテスト計画
次に Bob は Rational Team Concert にログインし、彼に割り当てられたタスクに取り組みます。彼はそのタスクを見積もった後、そのタスクを実装して完成させます。そのタスクが完成すると、彼はそのタスクを Tanuj にレビューしてもらってから、そのコードをチェックインします。
そのコードがチェックインされると即座に、Ursula (管理者) は、そのプロジェクトの範囲内で変更があったときに必ずトリガーされる夜間ビルドを設定します。このビルドが起動されると、品質チェックを受けられる状態になります。
図 10 に示すように、Bob がコードをチェックインすると CLM サーバーでBuild Forge のジョブが実行されたことがわかります。Build Forge のプロジェクトのステップがすべて正常に終了すると、そのビルドをテストすることができます。
図 10. ビルドをテストするための準備が整う
Ursula が CLM サーバーで Build Forge Agent を構成したことは重要ですので注意してください。Build Forge Console では、サーバーがエージェントを利用して CLM のインスタンスでビルドを実行するように構成されています。つまり Ursula は Build Forge Agent と Build Forge の自動機能を利用することによってビルドを生成することができたのです。
Bob はそのビルドを基に、Tanuj が作成した計画に関連付けられた (Rational Quality Manager で作成された) テスト・ケースの実行を始めます。何らかのバグがある場合には、Rational Team Concert にログとして記録されます。次に Bob はこれらの欠陥に対する作業を開始し、作業結果のレビューを受け、作業結果の提出処理を行います。彼の修正を反映したビルドが利用できるようになると、Bob はそのビルドを利用して再度機能をチェックします。そのビルドがすべての基準を満たすと、Rational Quality Manager の各テスト・ケースには完了のマークが付けられ、Rational Team Concert のストーリーとそれに対応する要件にも完了のマークが付けられます。
Build Forge と Build Forge Agent を使用すると、ビルドの自動化以外にも以下のようなタスクを自動化することができます。
- テストの自動化
- Fix Pack の適用
テストの自動化: ビルドを生成した後、そのビルドのサニティー・チェックをするためにテストを実行する場合がよくあります。これらのテストはビルド検証テスト (Build Verification Test) つまり BVT と呼ばれます。ほとんどの組織では手動で BVT が行われますが、BVT は容易に自動化することができます。
BVT を自動化するためには、Build Forge Agent をインストールしたマシンにビルドを格納します。すると、ビルドを生成した Build Forge Console を利用して、ビルドが格納されているエージェント・マシンに接続することができ、ビルドが適切かどうかを BVT を実行することで判断することができます。
BVT 以外にも、多くのチームは Build Forge と Build Forge Agent の技術を使用して機能検証テスト (Functional Verification Test: FVT) も実行しています。
Fix Pack の適用: 多くの企業では、WebSphere Application Server などのサーバーが多様なプラットフォームの複数のマシンにインストールされています。これはつまり、これらのサーバーに対して 2、3 ヶ月に 1 回、Fix Pack が提供される可能性があるということです。そうしたサーバーが何百台もある企業の場合、これらのマシンすべてに対して手動でアップグレードを実行するのは、うんざりするほど時間のかかる作業になります。
そうした場合、それらのマシンに Build Forge Agent をインストールすると、修正パックの適用プロセス全体を Build Forge プロジェクトを使用して自動的に行うことができます。こうすることで単調な手作業を少なくすると同時に、ユーザーの時間を節約することもできます。
この記事では、IBM Rational Build Forge Agent をバックグラウンドで実行することにより、IBM Cloud 上やクラウド環境全般で、ビルド、テスト、Fix Pack の適用をどのように自動化できるかについて説明しました。アプリケーションの開発およびデプロイメントにおけるアプリケーションのビルド、テスト、保守といったフェーズを自動化する機能は、時間と手間を減らす賢明な手段であり、クラウド環境での作業にはこうした自動ツールを活用する必要があります。
学ぶために
- IBM Rational
Build Forge インフォメーション・センターのヘルプを利用してください。
- IBM Cloud
で Rational Build Forge を評価してください。
- IBM Cloud でタスクを実行するための方法に関して、他にも以下のようなリソースがあります。
- 「IBM Cloud リリース 1.2 を使うためのヒント: Windows インスタンスとの間でのファイルのアップロードとダウンロード」
- 「IBM Cloud リリース 1.2 を使うためのヒント: Windows Server 2008 R2 に IIS Web サーバーをインストールする」
- 「Linux のコマンド・ラインを使用して IBM Cloud にインスタンスを作成する」
- 「Windows のコマンド・ラインを使用して IBM Cloud にインスタンスを作成する」
- 「Extend your corporate network with the IBM Cloud」
- 「IBM Cloud での高可用性アプリケーション」
- 「カスタム・インスタンスのクラウド・イメージをオンザフライでパラメーター化する」
- 「Windows-targeted approaches to IBM Cloud provisioning」
- 「IBM SmartCloud Enterprise についてのヒント: Rapid Deployment Service を使用して製品をデプロイする」
- 「Integrate your authentication policy using a proxy」
- 「IBM SmartCloud Enterprise についてのヒント: Linux Logical Volume Manager を構成する」
- 「IBM SmartCloud Enterprise についてのヒント: 複雑なトポロジーをデプロイする」
- 「IBM SmartCloud Enterprise についてのヒント: 別々の VLAN にまたがる: パブリック VLAN とプライベート VLAN にまたがるインスタンスをプロビジョニングし、構成する」
- 「IBM SmartCloud Enterprise についてのヒント: Android 機器からセキュアにアクセスする」
- developerWorks でクラウド開発者のためのリソースを調べてください。クラウドにデプロイするためにプロジェクトを構築しているアプリケーション開発者やサービス開発者の知識や経験を発見し、共有することができます。
- developerWorks で Rational 開発者のためのリソースを調べてください。Build Forge や Build Forge Agent などの Rational 製品に関する知識や経験を発見し、共有することができます。
- IBM
Rational Software のサイトで Build Forge と Build Forge Agent について学んでください。
- 「IBM SmartCloud
Enterprise」にアクセスする方法を学んでください。
製品や技術を入手するために
- IBM Cloud のサイトを訪れ、IBM Cloud
で提供されている製品やサービスを調べてみてください。
- IBM SmartCloud Enterprise
で利用可能な製品イメージを調べてみてください。
議論するために
- developerWorks
のクラウド・コンピューティング・グループに参加してください。
- developerWorks でクラウドに関する優れたブログを読んでください。
- developerWorks コミュニティーに加わってください。developerWorks コミュニティーは専門家のネットワークであり、接続、共有、および協力のための一連のコミュニティー・ツールを豊富に提供しています。