![]() ![]() ![]() ![]() |
この章では、コミュニティ フレームワークを構成する概念と機能、およびポータル フレームワークがコミュニティを表示するのに使用するロジックを説明します。
この節では、コミュニティ フレームワークにおける概念と機能を説明します。
コミュニティ テンプレートとは、コミュニティを構築できるリソースのプリパッケージ セットです。コミュニティ テンプレートは、データベース内にコンポーネントが存在する WebLogic Portal Administration Console で定義され、ビジネス ユーザがコーディングなしでコミュニティ アプリケーションを作成できるようにします。
.community ファイルは、開発環境の .portal ファイルと同じですが、ファイル拡張子が異なります。.community は、ブック、ページ、ポートレット、ルック アンド フィール リソース、および最終的にコミュニティになるその他のコンポーネントの集合です。ポータル管理者は、コミュニティ テンプレートを使用しなくても、直接 .community ファイルを使って、コミュニティを作成できます。
.community ファイルと .portal ファイルのもう 1 つの違いは、PortalServlet には .portal ファイルをファイルベースのポータルとして表示する方法があることです。一方、すべてのコミュニティは、ファイル システムではなくデータベースから表示する必要があるので、.community ファイルはファイルとして表示できません。このため、PortalServlet には .community ファイルを表示する方法がありません。
.ctmeta ファイルは、コミュニティ開発者に、コミュニティの作成に必要な .community ファイル、登録およびエラー ページ、およびコミュニティ有効期限のようなコミュニティ プロパティを、あらかじめコンフィグレーションさせるための XML ファイルです。.ctmeta ファイルにより、ポータル管理者は、コミュニティ コンフィグレーションに関して技術的な詳細を知らなくても、ポータル テンプレートを非常に簡単に作成できます。
ユーザがコミュニティに参加すると (メンバーになると)、情報は、ユーザをコミュニティに関連付けるデータベースに格納されます。さらに、メンバーは、コミュニティ内のロール、または機能 (所有者、寄稿者、表示者など) に割り当てられ、それはメンバーがコミュニティへの参加を招待されるときに割り当てられます。
コミュニティのメンバーになると、メンバーは、開発者がコミュニティ内でのそのユーザに関するメンバシップ情報を設定および入手するのに利用する CommunityUserContext を、所有することになります。
登録は、ユーザがコミュニティに参加し、メンバーになるプロセスです。登録機能は、ランディング Web ページまたはポータルに表示され、それには、認証、コミュニティ ユーザ名およびパスワードのユーザによる作成、およびメンバーがアクセスできるコミュニティの表示のような操作が含まれます。
コミュニティでは登録を要求する必要はありません。コミュニティには、パブリックにアクセスできます。ただし、コミュニティに対して登録ページまたはランディング ページが常に必要です。
WebLogic Portal 訪問者ツールにより、ユーザはポータル デスクトップの表示をカスタマイズでき、そこにはコミュニティ内で使用されるコミュニティ ツールのセットも含まれています。コミュニティ ツールは、コミュニティ管理と作成機能だけでなく、コミュニティのセキュリティ機能により制御される特定のツールと機能へもアクセスできるようにします。
招待は、ユーザがコミュニティに参加するように招待されていることをユーザに知らせる手段です。コミュニティ フレームワークは、JavaMail を使った電子メールを介して招待を送信する手段だけでなく、インスタント メッセージングのような書式を使用する招待へ拡張する機能も提供します。
通知は、コミュニティ内でユーザが互いに通信するための手段、またはコミュニティ内で発生するイベントに対して警告するための手段です。通知 API により、ユーザ コミュニティ内の通知機能を開発できます。
通知には限定有効期間があり、通知は他のユーザ、Web アプリケーションまたはフレームワーク自体から送信されます。通知が送信されると、その通知は利用または表示されるまで、コミュニティ フレームワークによりデータベース内に保存されます。
コミュニティは、共通の興味や目的があるユーザのグループを満足させるように設計されているので、各コミュニティには、そのユーザのセットに対する範囲が設定され、独自の特性があります。コミュニティ コンテキストは、メンバシップ情報を含むコミュニティ情報の集合で、コミュニティ フレームワーク API に表示されます。コミュニティ開発者は、コミュニティ コンテキストを使用して、コミュニティ特定の機能を作成できます。
ユーザ (コミュニティ メンバー) にもコミュニティ内のコンテキストがあり、それにはコミュニティ開発者もアクセスして利用できます。CommunityUserContext API により、メンバー情報の入手と設定や、さまざまなタイプのコミュニティ管理タスクの実行が可能です。
コミュニティ開発では、機能またはロール (あるいはその両方) を使用して、コミュニティ リソースおよび特定の機能へのアクセスを制御するオプションがあります。
コミュニティでは、機能と呼ばれるものが提供されます。たとえば、コミュニティに対するデフォルトの機能には、「作成者」、「所有者」、「寄稿者」、および「メンバー」があります。機能はコミュニティ メンバーに適用されるテキスト ラベルで、データベース内のメンバーのレコード内に格納されます。(メンバーは各コミュニティで異なる機能を持つことができます)。機能を使用する唯一のデフォルトのセキュリティ機能としては、コミュニティ「作成者」によるコミュニティ削除、およびコミュニティ「所有者」によるコミュニティ管理がある。そのような 2 つの行動を除き、機能は単なるラベルです。機能を使ってコミュニティ リソースと機能へのアクセスを制御するには、CommunityUserContext
または ICommunityMemberManager
からメンバーに対する機能を入手して、戻り値にセキュリティ ロジックを設定する必要があります。
たとえば、コミュニティの「所有者」ロール内でのみページ上にボタンを表示するには、現在のメンバーの機能を CommunityUserContext
または ICommunityMemberManager
から入手し、次に「所有者」に対してのみボタンを表示し、それ以外の人には非表示にする条件付きコードを入手します。
ロールは WebLogic Portal で幅広く使用されます。これは管理ツールやポータル リソースに対するユーザ アクセスを管理するためのメカニズムを提供します。WebLogic Server によりグローバル セキュリティ ロールを作成でき、WebLogic Portal により、訪問者の資格と委託管理ロールを作成できます。たとえば、ポータル デスクトップを作成して、グローバル「admin」ロールまたは「manager」訪問者資格ロールのユーザのみが表示できるように指定できます。
さらに、ロールは監査用に公開され、コード内で単に isUserInRole
メソッドまたは JSP タグを使って、コンテンツやアクションへのユーザ アクセスを制限できます。
コミュニティに対しては、WebLogic Portal Administraion Console により、コミュニティ特定のロールのデフォルトのセットを作成するブートストラップ メカニズムが提供されます。デフォルトのコミュニティ ロールは、アプリケーションの META-INF/communities-config.xml
ファイル内で定義されるコミュニティ機能にマップされます。コミュニティ リソースをそのロールを使って保護する場合は、単に isUserInRole
メソッドまたは JSP タグを使ってコミュニティ リソースを保護できます。
コミュニティ リソースの保護にコミュニティ ロールを使用しない場合、つまり別のメカニズムを使用する場合、機能を使用できます。
コミュニティ開発では、コミュニティ リソースおよび機能へのアクセスを制御するのに、機能のみ、ロールのみ、またはそれら両方を使用するかどうかを決める必要があります。
次に、ポータル フレームワークにより、どのようにコミュニティが表示されるかを説明します。
Is the community public?
Yes: Is the community active?
Yes: Render the community.
No: Redirect to the error page with error COMMUNITY_DEACTIVATED
No: Is a user logged in and do they have a membership
in the community?
Yes: Is their community member record active?
Yes: Is their community membership record active?
Yes: Is the community active?
Yes: Render community.
No: Redirect to error page with
error COMMUNITY_DEACTIVATED
No: Redirect to error page with
error MEMBERSHIP_DEACTIVATED
No: Redirect to error page with error MEMBER_DEACTIVATED
No: Is public registration enabled?
Yes: Is a user logged in and do they have a community member record?
Yes: Is the member record active?
Yes: Redirect to registration page.
No: Redirect to error page with
error MEMBER_DEACTIVATED
No: Redirect to registration page.
No: Is a user logged in and do they have an invitation
to this community?
Yes: Redirect to registration page.
No: Redirect to error page with error NO_PUBLIC_ACCESS
![]() ![]() ![]() |