多くの企業では、生成した大量の電子データをさまざまな目的でアーカイブしています。たとえば、監査用にトランザクション・データをアーカイブする、オンライン運用しているデータベースを管理しやすいサイズに保つなどの例が挙げられます。また、企業は規制に対応するために、電子データのアーカイブを求められることもあります。IBM Optim Data Growth Solution を使用すると、時系列のトランザクション・レコードをアーカイブし、圧縮されたアーカイブ・ファイルとして安全かつコスト効率よく保管できます。アクティブ・データとアーカイブ・データの両方を表示および検索するとき、最初に、アーカイブされたファイルをアクティブ・データが存在するシステムに復元しなければならないのでは不便です。この記事では、オンライン・データおよび Optim アーカイブ・データをそれぞれのネイティブ・リポジトリーから取り出し、マッシュアップを使用して結合する代替手法について説明します。
IBM Mashup Center は、この代替手法のための新しいアプリケーションを構築する単純なプロセスを提供します。組み込みのフィード・ジェネレーターを使用すると、企業のアクティブ・データにアクセスし、必要性が生じたときにこれをアーカイブ・データと結合することができます。この記事では、アクティブなオーダー情報をトラッキングするよう構築されたマッシュアップ・アプリケーションを簡単な方法で拡張し、アーカイブされたオーダー情報も含めるようにする例を紹介します。この情報は、Optim を使用したデータのアーカイブ、および IBM Mashup Center を使用したリレーショナル・フィードの生成とデータ・マッシュアップの作成にある程度習熟したユーザーにたいへん役に立つでしょう。
この記事では、まず、DB2 データ・ソースからサンプル・アプリケーションを構築する方法を簡単に説明します。次に、アクティブ・データと Optim アーカイブ・データを結合して、このアプリケーションを再利用する方法について詳述します。この例では、企業データはリレーショナル DB2 データ・ソースに保存されていて、アーカイブ・データは、ファイル・システムにある IBM Optim の圧縮アーカイブ・ファイル形式で保存されています。図 1 を参照してください。
図 1. システムの概要
DB2 データ・ソースのデータベースと表を図 2 に示します。実動システムのトランザクションは時とともに増加するため、このシステムでは過去 2 年間のオーダーだけを維持するようルールが定義されています。それよりも古いオーダーは、IBM Optim アーカイブに移動されます。このデータベースと表は、IBM Optim Data Growth Solution のインストールとともに提供されます。
図 2. データベース・スキーマ
アクティブ・オーダーをトラッキングするマッシュアップ・アプリケーション
IBM Mashup Center を使用して作成したサンプルのレポート・ページを図 3 に示します。このページは、リレーショナル・データベースに存在するアクティブ・データに基づいて、営業担当者ごとにパフォーマンスをレビューするために使用されます。このセクションでは、レポートの構成について説明します。次のセクションでは、このレポートを変更し、IBM Optim でアーカイブされた昨年以前のデータを組み込む簡単な方法について説明します。
図 3. 現在のオーダー
レポート・ページには、次の 2 つのウィジェットがあります。
- 営業担当者の名前と、その担当地域を表示するデータ・ビューアー・ウィジェット。
- 選択された営業担当者の年間売上データを表示するグラフ・ウィジェット。数値は 2006 年 10 月から 2008 年 10 月までのアクティブ・オーダーから計算されています。グラフ・ウィジェットへの入力は、Mashup Center が生成する「
/mashuphub/client/plugin/generate/entryid/400/pluginid/10?salesmanId=NC005」というフィードから得られます。このフィードには、1 つの照会パラメーターsalesmanIdが含まれていることに注目してください。
データ・ビューアー・ウィジェットで行をクリックすると、選択された営業担当者の売上を表示するようグラフ・ウィジェットが変わります。この動作は、データ・ビューアー・ウィジェットをグラフ・ウィジェットにワイヤリングすることで実現されています。このワイヤリングによって、行が選択されたときに、営業担当者 ID がグラフ・ウィジェットに送信されるように指定されています。グラフ・ウィジェットは、渡された値で URL の salesmanId パラメーターを置換します。その後、この値は対応する年間売上を取り出すために使用されます。ワイヤリングを図 4 に示します。
図 4. ウィジェットのワイヤリング
データ・ビューアー・ウィジェットは、営業担当者リレーショナル表から生成されたフィードを使用して作成されます。リレーショナル・フィードを作成するには、次の手順を実行します。
- Mashup Center カタログ・ページで「作成」>「新規フィード」を選択します。
- データベースの接続情報を入力します。表のリストが表示されます。
- チェック・ボックスをクリックして表を選択します。列のリストを含むリスト・ボックスが右側に表示されます。たとえば、「
*」が付いた列を選択することにより、すべての列を選択します。図 5 を参照してください。
図 5. 営業担当者の表
- グラフ・ウィジェット用に年間売上の合計を含むフィードを生成するには、アクティブ・データベースからオーダー情報を取り出します。図 5 に示すように、オーダー表の各行を、詳細表の複数のレコードに結び付けることができます。各オーダーの金額は、対応する詳細レコードの金額列を足し合わせることによって計算されます。リスト 1 に示すように、必要な SQL はかなり複雑です。リレーショナル・フィードを作成するときに、これらの SQL ステートメントを「詳細」ウィンドウで指定することもできます。
リスト 1. SQL ステートメント
select o.order_id, o.cust_id, o.order_date,
rtrim(o.order_salesman) sales_id, d.amount
from (select i.order_id order_id, sum(i.item_quantity*i.detail_unit_price) amount
from db2admin.details i group by i.order_id) d,
db2admin.orders o
where d.order_id=o.order_id |
- データ・マッシュアップを使用して、オーダー情報フィードをグラフ・ウィジェットに必要なフォーマットに変換します (図 6 参照)。
図 6. 年間売上を計算するデータ・マッシュアップ
データ・マッシュアップは、相互に連結された一連の演算子で構成されている点に注目してください。各演算子は、変換プロセスの 1 つのステップを表します。各ステップの詳細は以下のとおりです。
- オーダー金額のフィードから、「フィルター」演算子を使用して、指定された営業担当者に対応するオーダー・セット金額 (set-of-order amount) を選択します。
- 「グループ」演算子を使用して、すべての年別オーダー (order-by-year) をグループ化します。
- 「変換」演算子を使用して、1 年以内のすべてのオーダー金額を合計します。
- 「ソート」演算子を使用して、出力を年ごとの昇順にソートします。
- 「パブリッシュ」演算子を使用して、グラフ・ウィジェットが表示できる XML 形式で結果フィードを生成します。
既存のマッシュアップ・アプリケーションに関するクイック・ツアーは、これで終わります。
アクティブ・オーダーおよびアーカイブ・オーダーの両方をトラッキングするようマッシュアップ・アプリケーションを編集する
IBM Optim 用に IBM Mashup Center をセットアップする
Mashup Center の Optim アーカイブ・フィード・ジェネレーターは Attunity Connect シン・クライアントを使用します。Attunity Connect によって、JDBC バージョン 2 用の タイプ III JDBC ドライバーが提供されます。これは、Optim サーバーをインストールしたときに、Java ライブラリー内のセットとしてインストールされます。JAR のセットには、次のものが含まれています。
- nvjdbc2.jar
- nvapispy2.jar
- nvlog2.jar
これらの JAR を「{install-folder}/Hub/installedApps/Mashup
Hub.ear/mashuphub-enterprise.war/WEB-INF/lib」にある Mashup Center のインストール・フォルダーにコピーし、サーバーを再起動します。
最近 2 年間のアクティブ・オーダーからではなく、会社の創業以来の営業担当者のオーダー履歴を表示するようサンプル・レポートの拡張が必要な状況を想定します。IBM Optim Archive にアクティブでないオーダー・データが格納されているときに、アーカイブされたオーダーを組み込むようにサンプルのマッシュアップ・レポート・アプリケーションを拡張する方法を以下の手順で示します。
- 「IBM Optim Archive」フィード・ジェネレーターを選択します。
- アーカイブされたオーダーを取り出すために、IBM Optim Archive の接続情報を入力します。
- アクティブ・オーダーとアーカイブ・オーダーをマージするマッシュアップを作成します。
- 指定された営業担当者の年間売上を計算するデータ・マッシュアップに、「新規として編集」を選択します。
- 2 つの新規フィードを使用するように、レポート・マッシュアップのグラフ・ウィジェットを変更します。
IBM Mashup Center 製品で利用できるフィード・ジェネレーターのリストを図 7 に示します。これらの中に、前のセクションで使用した「Relational Database Query (SQL)」フィード・ジェネレーターおよび「IBM Optim Archive」フィード・ジェネレーターが含まれています。
図 7. ハブ・フィード・ジェネレーターのリスト
IBM Optim アーカイブに接続するために必要な情報を図 8 に示します。このウィンドウは、「Relational Database Query」フィード・ジェネレーターのウィンドウに非常によく似ています。このウィンドウでは、次の情報が必要です。
- アーカイブの名前 (例:
DEMOAF) - サーバー・ホストの名前 (例:
demoserver) - ポート番号 (
2552) - 認証情報 (ユーザー名とパスワード)
図 8. IBM Optim Archive の接続情報
「IBM Optim Archive」フィード・ジェネレーターには、単一のアーカイブ表と列のセットからフィードを作成するシンプルな GUI があります。また、複雑な SQL ステートメントを入力する入力ボックスも用意されています。アーカイブはアクティブ・データと同じスキーマで作成されているため、ここでは、前のセクションと同じ SQL ステートメントを使用して、オーダー金額を取り出すことができます。
アクティブ・オーダーと Optim アーカイブ・オーダーの 2 つのソースを結合するマッシュアップの構築方法を図 9 に示します。「結合」演算子を使用して、両方のフィードのコンテンツを結合し、1 つのフィードにします。
図 9. アクティブ・オーダー・フィードとアーカイブ・オーダー・フィードを結合するデータ・マッシュアップ
IBM Mashup Center のカタログで、フィードおよびデータ・マッシュアップのリストを表示できます。「新規として編集」を選択すると、データ・マッシュアップを編集またはコピーできます。この記事のサンプルでは、年間売上の数値を計算するマッシュアップのコピーを作成します (図 10 参照)。結合されたオーダー・フィード (combined-orders-feed) の要素はアクティブ・オーダー・フィード (active-orders-feed) の要素に似ているため、同じロジックを再利用できます。つまり、「ソース」演算子を変更し、アクティブ・オーダーと Optim アーカイブ・オーダーを結合するマッシュアップからの出力を使用します。
図 10. データ・マッシュアップのコピー
最後のステップとして、マッシュアップ・レポート・ページを最初から作成するのではなく、レポート・ページのコピーを作成し (図 11 参照)、このコピーを次の手順で変更します。
- レポート・ページをカタログにパブリッシュします。「ページ」オブジェクトのエントリーが作成されます。
- カタログに移動し、新たに作成したこのエントリーの「詳細の表示」ウィンドウに移動します。
- 「マッシュアップ・ビルダーに追加」をクリックし、レポート・ページのコピーを作成します。
- マッシュアップ・ビルダーに追加するときに、コピーしたページを「Combine Orders」に名前変更します。
- マッシュアップ・ビルダーのビューを更新し、「Combine Orders」ウィンドウを選択します。
- アクティブ・データおよび Optim アーカイブ・データの両方から年間売上高 (yearly-sales-numbers) を計算するデータ・マッシュアップを使用するようグラフの URL を変更します。
図 11. コピーを再利用した新規マッシュアップの作成
サンプル・プロセスの最終結果を図 12 に示します。売上高が 2006 年ではなく 2004 年から示されるようになりました。
図 12. アクティブ・オーダーとアーカイブ・オーダー
IBM Mashup Center は、さまざまなソースから簡単にデータをマッシュアップするプラットフォームを提供します。企業データの管理では、アクティブ・データとアーカイブ・データの両方にアクセスすることが必要な場合があります。IBM Mashup Center の変換機能およびプレゼンテーション機能を使用すると、両方のソースからのデータを結合し、統合されたデータから新たな洞察を得ることができます。
学ぶために
- Learn more about IBM Mashup Center from their
wiki.
- Read Solution development using DB2 and
InfoSphere MashupHub (developerWorks, April 2009) for a
step-by-step guide to creating DB2 database feeds.
- Refer to IBM Mashup Center application use
cases, Part 1: Defect tracking and management mashup, and IBM Mashup Center applications use
cases, Part 2: Defect management mashup application construction,
(developerWorks, August 2008), which provide a detailed introduction to
building mashups.
- Go to the Integrated Data Management
community space to learn about IBM Optim capabilities.
- Find Access Optim archive file data
using Cognos for step-by-step instructions for connecting to and
reporting on archived data using Cognos as the reporting framework.
- Browse the Mix and Mash
Blog to get in touch with news on IBM Mashup Center.
- Learn more about Information Management at
the developerWorks Information
Management zone. Find technical documentation, how-to articles,
education, downloads, product information, and more.
- Stay current with developerWorks technical events
and webcasts.
製品や技術を入手するために
- Check out the IBM Lotus Greenhouse to try a
hosted Mashup Center server.
- Build your next
development project with IBM trial software, available
for download directly from developerWorks.
議論するために
- ディスカッション・フォーラムに参加してください。
- Participate in more discussion forums
for Optim for Lotus, UNIX®, and
Windows® and Optim for z/OS®.
- Check out the developerWorks blogs and get
involved in the developerWorks community.
Thanh Pham is a Solution Architect for InfoSphere MashupHub. His focus is to build a community around enterprise mashups. Before this role, he was an architect for the ECM/Filenet Business Process Framework product. Thanh has spent the past two decades in software development working on projects in many diverse areas, including real-time kernel, high-speed switching systems, networking protocols, terabit routers, multimedia, digital conferencing, small footprint database, electronic commerce, messaging transaction tracking, business process, and SOA.