ソーシャルアプリケーションプラットフォーム



Liferay Portalは、WebアプリケーションやWebサイトやポータルを作るための優れたプラットフォームを提供しますが、それに留まらず"ソーシャルアプリケーション"と呼ばれる新しいカテゴリのWebアプリケーションを使うこともできます。ソーシャルアプリケーションの定義は単純です。それはWebアプリケーションの一種で特にソーシャルアイデンティティやデータやサービス等を追加的に利用することができるものをいいます。
図では、水色の四角は標準のWebアプリケーションの定義を表し、濃い青の四角は追加のソーシャルアスペクトを表します。
標準のWebアプリケーションの仕組みは次のようになっています。
・中央を見ると、アプリケーションロジックにアクセスするユーザインターフェイスによって構成されていることがわかります。
・左側を見ると、Webアプリケーションはフォーマルアイデンティティのポリシーにより影響を受けることがわかります。
・下側を見ると、Webアプリケーションは自分が格納しているデータや、現在ログインしているユーザ固有のデータにアクセスすることができることがわかります。
・右側を見ると、Webアプリケーションは外部サービスへのインタフェースを持っており、外部システムをビジネスロジックの一部として利用できることがかわります。

近年ではどのWebアプリケーションもソーシャルアプリケーションとして構築されており、ユーザの生産性を向上させています。Liferayには、ソーシャルアプリケーション実装にとって重要な機能が備わっています。

フォーマルアイデンティティに付加したソーシャルアイデンティティの活用


エンタープライズではアクセス管理を容易にするようなエンタープライズレベルでのシステムアーキテクチャの実装が求められます。アプリケーションは中央のリポジトリを通じてユーザのアイデンティティへアクセスすし、アイデンティティ情報はアイデンティティマネジメントソフトウェアにより更新されます。このタイプのアーキテクチャは、大規模かつ数の変動が大きいユーザ管理およびアプリケーションへのアクセスを簡単に管理することを可能にします。また監査・コンプライアンス機能により、すべてのアカウントを中央で管理し、すべてのアクセスを中央で監査するようにできます。

図は、Bob Smithのフォーマルアイデンティティ(トップダウンで定義された公式の役割)とソーシャルアイデンティティ(ソーシャルな関係の網の目上での所属)がどのように特定されるかを説明しています。Bob Smithは彼がEngineering OrganizationやCore Engineering、Team Project X Groupの一員であることを証明するフォーマルアイデンティティ情報を持っています。また彼はマネージャーとしての役割も追加的に持っています。このフォーマルアイデンティティは、ポリシーによって定義され、管理者により実装され、また通常SOXコンプライアンスにより統制されています。


標準のWebアプリケーションでは、フォーマルアイデンティティをいくつかの方法(例:シンプルなアクセス制御、特定ノードへのアクセス制御、ロールベースのコンテンツ配信、ワークフローアクセス)で利用することができます。しかしトップダウンで定義されるフォーマルなアイデンティティ以外に、ソーシャルアイデンティティによりユーザを特定することもできます。"ソーシャルアイデンティティ"はユーザが承認したフレンド、グループ、コミュニティのなどに付与された定義です。またソーシャルアプリケーションは、ユーザのソーシャルアイデンティティ情報をいくつかの方法(例:アクティビティストリーム、サブグループ化、アクセスの許可、アクセスの制限、委任)で利用します。左の図では、Bobはソーシャルコラボレーションサイトにアクセスできます。SteveやJoeはBobとはまた違うフレンドネットワークを形成しています。Bobは、Bobのフレンドネットワーク内のユーザに対してアクティビティやアプリケーションへのアクセスを許可することができます。コミュニティそのものもソーシャルアプリケーションの一種ですし、コミュニティ内で利用可能なアプリケーションもまたデータスコープによってはソーシャルアプリケーションとなります(下記を参照)。

データスコープの拡張によるソーシャルデータの活用


ソーシャルアプリケーションには通常、データスコープがあります。データスコープにはグローバルなスコープや、ユーザのソーシャルアイデンティティ情報に基づいて制限されたスコープがあります。表では、左が標準のWebアプリケーションで右がソーシャルアプリケーションを表しています。標準のWebアプリケーションにはアプリケーションデータがあるものですが、Bobは彼自身のアプリケーションデータしか見ることができません。たとえば、カレンダーアプリケーションでBobがイベントを作成したとすると、SteveはBobが作ったイベントを見ることはできませんし、その逆もまた同様です。

一方、Bobがソーシャルアプリケーションにアクセスした場合は、彼に固有のデータだけでなくProject Yのメンバーすべての情報を見ることができます。たとえば、チームのカレンダーではメンバー全員がイベントを作成することができ、各メンバは他のメンバが作成したイベントを見ることもできます。データスコープを拡大拡張すれば、ユーザが独自に定義したグループ(チームや、複数のユーザ)に対してアプリケーションの利用を許可することができます。

ソーシャルアプリケーションにおける既存のソーシャル機能とサービスの活用


ソーシャルアプリケーションは、ソーシャルアプリケーションプラットフォームで利用可能な既存のソーシャル機能やサービスを使って開発できます。例えば、ソーシャルアプリケーションには既存の共有ドキュメントライブラリやRSS登録サービス、Wikiなどを含められます。Liferayはコラボレーション機能を持った数多くのアプリケーションや機能を提供しているので、自分でアプリケーションを開発する場合にユースケースに組み込むことができます。
利用可能なサービスは表のようにカテゴライズできます。リンクを追加するのよりも簡単に、ソーシャルアプリケーション内でサービスを登録することができます。ポータルでは、モジュールの組み合わせからアプリケーションを作ることができるので、継続的に発生するアプリケーションの機能追加を簡単にしつつ、アプリケーションのカスタマイズも容易にします。

OpenSocialコンテナとしてのLiferay


ソーシャルアプリケーションはいずれも、独自のソーシャルリポジトリを実装したりソーシャルアイデンティティ用の専用リポジトリを活用することができるものです。 Liferay 6.0ではOpenSocialを実装しています。OpenSocialはソーシャルアイデンティティ情報の格納やアクセスを行う一般的なメソッド以外に、ガジェットおよびウィジェットを実行するためのメソッド定義しています。これによりエンタープライズはLiferayをソーシャルアイデンティティ情報のためのソースとして利用することができます。エンタープライズ全体でLiferayを1つインストールすれば、ユーザはプロフィールページを作成したり、フレンドネットワークを広げたり、新しくコミュニティを作成して管理したり、他のコミュニティへ参加することができるようになります。このソーシャルデータのリポジトリは、同じLiferay Portal内にインストールされた他のアプリケーションでも使用することができます。

ソーシャルアイデンティティ情報の中央リポジトリとしてのLiferay


またLiferayはOpenSocialスタンダードをサポートしており、かつフレンドネットワークの定義を外部化しているため、Liferayを一つ実装すれば、図のようにソーシャルネットワークデータのためのマスタリポジトリとして利用することができます。エンタープライズは、ソーシャルデータのための単一IdMリポジトリを開発してコラボレーション定義および監査を単一のソースから行えるようになります。

※ ページ中の図はLiferayサイト( http://www.liferay.com/ )からの転用です。