...

DB2 Everyplace

by user

on
Category: Documents
17

views

Report

Comments

Transcript

DB2 Everyplace
DB2 Everyplace を使用したモバイル・プロジェクトの
セットアップおよび実行方法
Walter Mayer
DM BP Support EMEA、ドイツ
[email protected]
Joachim G. Stumpf
DB2 Technical Presales Support、ドイツ
[email protected]
2002 年 10 月
-1-
商標について
以下は、IBM Corporation の米国およびその他の国における登録商標または商標です。
DataPropagator
DB2
DB2 Universal Database
Domino
Everyplace
Informix
Lotus
Mobile Notes
Notes
Tivoli
WebSphere
WorkPad
Java および Java ベースの商標は、Sun Microsystems, Inc.の米国およびその他の国における商標で
す。
Microsoft、Windows、Win32、および Windows NT は、Microsoft Corporation の米国およびその他
の国における登録商標です。
UNIX は、The Open Group の米国およびその他の国における登録商標です。
他の会社名、製品名、およびサービス名は、それぞれ各社の商標またはサービス・マークです。
本書の提供は、IBM 特許権についての実施権、使用権等の許諾を意味するものではありません。
IBM の製品、プログラム、またはサービスに関する本書の言及は、IBM が事業を営むすべての国
でこれらの内容が利用できることを意味するものではありません。
本書に記載した情報には、いかなる製品保証も含まれていません。本書で示されるいかなる記述
も、製品保証として解釈されるべきではありません。
© Copyright International Business Machines Corporation 2002. All rights reserved.
-2-
目次
1 概要 ..............................................................................................................................................................6
2 IBM® モバイル・ソリューション ..........................................................................................................7
2.1 Lotus モバイル・ソリューション .........................................................................................................7
2.2 IBM Websphere Everyplace Access ..........................................................................................................8
2.3 DB2 UDB サテライト機能 ...................................................................................................................10
2.4 DB2 Everyplace.......................................................................................................................................10
2.5 モバイル・ソリューションの選択 .....................................................................................................11
3 DB2 Everyplace の概要............................................................................................................................13
3.1 Everyplace データベース.......................................................................................................................13
3.2 DB2 Everyplace 同期サーバー ..............................................................................................................15
3.3 Mobile Application Builder(MAB) ....................................................................................................17
3.4 DB2 Everyplace V8.................................................................................................................................18
4 サンプル・シナリオ ................................................................................................................................20
4.1 顧客発注用のモバイル・システム .....................................................................................................20
4.2 営業支援システム .................................................................................................................................21
5 情報交換 ....................................................................................................................................................22
5.1 概要 .........................................................................................................................................................22
5.2 サブスクリプションのタイプ .............................................................................................................23
5.3 フィルター操作 .....................................................................................................................................26
5.4 競合処理 .................................................................................................................................................27
6 管理とモニター ........................................................................................................................................29
6.1 管理のセットアップ .............................................................................................................................29
-3-
6.2 通常の管理用タスク .............................................................................................................................29
6.3 モニター .................................................................................................................................................30
6.4 トラブルシューティング .....................................................................................................................32
6.5 競合情報 .................................................................................................................................................33
6.6 DB2 Everyplace の再インストールまたはコピー ..............................................................................33
7 プログラミング ........................................................................................................................................36
7.1 C++ アプリケーション .........................................................................................................................36
7.2 Java アプリケーション .........................................................................................................................38
7.3 Mobile Application Builder(MAB) ....................................................................................................39
7.4 MAB の適用 - 在宅看護システム ........................................................................................................41
8 スケーラビリティーと可用性 ................................................................................................................43
8.1 Websphere................................................................................................................................................43
8.2 同期サーバー・サーブレット .............................................................................................................43
8.3 スケーラビリティーの第 1 レベル......................................................................................................43
8.4 スケーラビリティーの 2 次レベル......................................................................................................44
8.5 可用性 .....................................................................................................................................................44
9 ソフトウェア配布 ....................................................................................................................................46
9.1 サーバー .................................................................................................................................................46
9.2 クライアント .........................................................................................................................................47
10 セキュリティー問題 ..............................................................................................................................48
10.1 デバイス ...............................................................................................................................................48
10.2 トランスポート層 ...............................................................................................................................49
A.0 フレームワーク ....................................................................................................................................49
-4-
A.1 探求フェーズ ........................................................................................................................................50
A1.1 明らかにすべき質問 ..........................................................................................................................50
A1.2 ストラテジー ......................................................................................................................................54
A1.3 顧客のプロジェクト ..........................................................................................................................57
A.2 計画フェーズ ........................................................................................................................................58
A2.1 開発環境 ..............................................................................................................................................58
A2.2 アーキテクチャーとサイジング.......................................................................................................59
A2.3 ロールアウト/インプリメンテーション・ステップ...................................................................61
A.3 セットアップ・フェーズ ....................................................................................................................62
A3.1 インストール ......................................................................................................................................62
A3.2 DB2 Everyplace のオブジェクト .......................................................................................................63
A3.3 WebSphere における同期サーバー・サーブレット........................................................................64
A3.4 データベースとデータベース・マネージャー・パラメーター...................................................64
A.4 テスト・フェーズ ................................................................................................................................67
B.0 結論 ........................................................................................................................................................69
参考文献 .......................................................................................................................................................71
-5-
1. 概要
この文書は、DB2® EveryplaceTM を使用したモバイル・プロジェクトを計画、セットアップ、お
よび実行するプロジェクトに関わる人々を対象にしています。この文書は、モバイル・プロジェ
クト入門者向けの DB2 Everyplace Workshop に参加したユーザーの要請によって生まれました。
この文書の目的は、DB2 Everyplace を使用したモバイル・プロジェクトのライフサイクルを説明
することにより、開発への取り組みを容易にし、プロジェクト・コストを削減することにありま
す。ここに記載するヒントや助言は、DB2 Everyplace バージョン 7.2 および 7.2.1 を使用した、各
種モバイル・プロジェクト現場での個人的な経験に基づいています。
本書の第 1 部では、DB2 Everyplace バージョン 7.2 および 8.1 をはじめとする、IBM のモバイ
ル・ソリューションの技術的な概要について説明します。DB2 DataPropagatorTM と JDBCTM を使
用した、いくつかのサンプル・モバイル・シナリオと使用可能な同期化手法について説明しま
す。
以下の事項について説明します。
・
管理とモニター
・
一般のプログラミング
・
Mobile Application Builder(MAB)によるプログラミング
・
競合解決
・
フィルター操作
・
スケーラビリティー
・
可用性
・
ソフトウェア配布
・
セキュリティー問題
本書の第 2 部では、モバイル・プロジェクトのセットアップ・フレームワークについて説明しま
す。このフレームワークは、DB2 Everyplace によるモバイル・プロジェクトの設計および実行に
使用できます。このフレームワークの章では、DB2 Everyplace の諸機能について十分に理解して
いることが前提条件となります。必要な技術的知識を持つユーザーは、このフレームワークの章
から読み始めることができます。フレームワークの章は以下の項で構成されています。
・
探求フェーズ
・
計画フェーズ
・
セットアップ・フェーズ
・
テスト・フェーズ
-6-
2. IBM® モバイル・ソリューション
IBM のモバイル・コンピューティング製品の目的は、モバイル・ワーカーがポータブル・デバイ
スを使用して企業のデータやアプリケーションにアクセスできるようにすることです。大規模な
組織では、IT 部門以外のすべてのコンピューティングをモバイルと見なすことができます。
モバイル時代には、ユーザーがそれぞれ必要とする情報を得られるようにするモバイル・ソ
リューションが求められます。モバイル情報アクセスに対するユーザーのニーズは、ビジネス、
レジャーを問わずあらゆる分野に及んでいます。たとえば、多くの人々が場所を問わず望んだと
きに映画の席を予約できればと考えています。これを実現するには、映画レコードの確認と席の
予約を行う映画館用のアプリケーションがモバイル・デバイスに必要です。さらに、情報を同期
させる同期サーバー(DB2 Everyplace 同期サーバー)が必要となります。こうした例は無数にあ
ります。その一端をこれから紹介します。
以下の IBM モバイル製品とモバイル・ソリューションについて簡単に説明します。
・
Lotus® モバイル・ソリューション
・
IBM WebSphere® Everyplace Access
・
DB2 UDB サテライト機能
・
DB2 Everyplace
DB2 Everyplace は WebSphere Everyplace Access に組み込まれており、DB2 Everyplace の一部は
Lotus モバイル・ソリューションに組み込まれています。ただし、それぞれの製品またはソ
リューションは、異なるモバイル・エンド・ユーザー・グループに対応します。
2.1 Lotus モバイル・ソリューション
DominoTM Everyplace と Mobile NotesTM を使用すると、Notes®および Domino ユーザーは、すべて
のワイヤレス・デバイスとハンドヘルド・デバイスから Domino ベースの情報にアクセスできま
す。以下の表は、既存の Lotus モバイル・ソリューションの概要を示しています。
-7-
Domino との統合
のタイプ
データ・フロー 機能
EasySync® Pro クライアント
スタンドアロン
(DLL)
同期
PDA と Domino 間での
PIM データの同期
Domino
Everyplace
Access
サーバー
サーブレット
オンライン
WAP デバイスでの
Domino データベースの
使用
Domino
Everyplace
Enterprise
サーバー
サーブレット
同期
PDA の Notes クライア
ント、Domino アプリ
ケーションをこのクラ
イアントに移動させる
ツール
Sametime®
Everyplace
サーバー
サーブレット
オンライン
ワイヤレス・デバイス
と Sametime の統合
Domino
Everyplace
SMS
サーバー
アドイン・タスク オンライン
ワイヤレス・デバイス
への短いメッセージの
ルーティング
クライアント・
ベースまたはサー
バー・ベース
表 1. Lotus モバイル・ソリューション
Domino Everyplace を使用すると、Domino ベースのアプリケーションをバックエンド・サーバー
と同期させることができます。Domino Everyplace には、DB2 Everyplace の同期クライアントと
DB2 Everyplace 同期サーバーの一部が Mobile Notes ソリューション用に組み込まれています。
Domino Everyplace Enterprise オファリングには、Mobile Notes クライアント・ソフトウェアが組
み込まれています。
Lotus Mobile Notes と Domino Everyplace を使用すると、電子メール、カレンダー、ディレクト
リーおよび Domino ベースのソリューションに、WAP 対応電話や PDA などのワイヤレス・デバ
イスからアクセスできます。Mobile Notes は、Lotus Domino のメッセージ機能やコラボレーショ
ン機能を提供するエンド・ユーザー向けのクライアント製品です。これらの機能には、モバイ
ル・アプリケーション文書の表示、作成、変更、削除、同期などがあります。これらの製品の詳
細については、Web サイト(http://www-3.ibm.com/pvc/media/demos/mobile_notes/final.html)にあ
るデモを参照してください。
2.2 IBM Websphere Everyplace Access
WebSphere Everyplace Access は、複数のアプリケーションで複数のデバイス・タイプと通信する
際の問題に対処します。さらに、インテリジェント同期サービスを通じて、接続に関する根本的
で予測不能な問題に対処します。
-8-
図 1. WebSphere Everyplace Access バージョン 4.1 環境
IBM WebSphere Everyplace Access は、セキュアな無線および有線の通信を広範なネットワークで
サポートしています。
以下のアプリケーションとデータの同期が可能です。
・
Lotus Notes PIM と電子メール
・
Microsoft® Exchange PIM と電子メール
・
Domino アプリケーションとデータ
・
JDBCTM 対応のすべてのリレーショナル・データベースのデータ
Everyplace Access で は 、 モ バ イ ル ・ デ バ イ ス に イ ン ス ト ー ル さ れ る ク ラ イ ア ン ト ( IBM
Everyplace クライアント)も提供されます。これにより、同期要求を開始するための共通イン
ターフェースを利用できます。Everyplace Access は、多くのコンポーネントとサポート・コン
ポーネントで構成されています。
Everyplace Access を構成する全コンポーネントの完全な製品名リストを次に示します。
・ DB2 Universal DatabaseTM
・
DB2 Everyplace
・
Everyplace 同期サーバー
・
IBM Everyplace クライアント
・
Everyplace Toolkit
・
IBM HTTP Server
-9-
・
Lotus Domino
・
Lotus Domino Everyplace Enterprise Server
・
Lotus Mobile Notes
・
SecureWay® Directory、LDAP
・
Tivoli® Device Manager
・
トランスコーディング・テクノロジー
・
WebSphere Application Server Advanced Edition
・
WebSphere Everyplace Access
・
WebSphere Personalization
・
WebSphere Portal for Multiplatforms
・
WebSphere Studio Site Developer Advanced
これらの製品は各種機能を提供します。たとえば、IBM WebSphere Transcoding Publisher はデータ
を適切な形式に自動変換し、データの送信先のデバイスで読み取れるようにします。
2.3 DB2 UDB サテライト機能
DB2 UDB サーバーは、移動中、オフィス内を問わず、従業員が企業の情報に適宜アクセスし
て、顧客との直接のビジネスを容易にします。DB2 Universal Database Personal Edition および
Workgroup Edition では、DB2 Universal Database の全機能をラップトップやワークステーションで
利用できます。DB2 V7 FP3 では、Personal Edition と Workgroup Edition の両方にサテライト機能
が組み込まれています。サテライト機能は、多数の DB2 サーバーを中央の管理サイトで管理で
きる環境です。
完全なサテライトのシナリオは、スクリプトとその実行情報がすべて保管されている中央管理
サーバーと多数のサテライト(DB2 サーバー)で構成されます。これにより、多数の PC または
サーバーで実行可能なタスクのスクリプトを一元的にセットアップできます。各クライアント
は、中央管理サーバーと同期してスクリプトを取得できます。
タスクのスクリプトには、データベースやデータベース・オブジェクトの作成、リモート・デー
タベースのカタログ作成、モバイル・レプリケーションの実行などがあります。これらのスクリ
プトはパラメーター化できます。パラメーターは自動的に解決後、サテライトで実行されます。
実行ログは、問題の判別と分析に備えて一元的に格納されます。
2.4 DB2 Everyplace
DB2 Everyplace は、非常時接続のモバイル・ユーザーを対象としています。非常時接続により、
信頼性と経済性が向上します。また、各種の分散アプリケーションに常時接続している場合より
も高速になります。さらに、ローカル・データにオフラインでアクセスするアプリケーションを
実行できます。常時接続では柔軟性が向上しますが、ネットワークと通信事業者に大きく依存す
- 10 -
ることになります。常時接続では通信範囲が信頼できない場合が多く、低速なうえ高コストにな
りがちです。
DB2 Everyplace は、DB2 のエンタープライズ・データのパワーを、携帯情報端末(PDA)、ハン
ドヘルド PC(HPC)、携帯電話などのハンドヘルド・デバイスへ拡げます。DB2 Everyplace は、
DB2 UDB の機能限定バージョンではありません。PDA デバイスまたはハンドヘルド・デバイス
向けに設計および作成されたソフトウェアであり、必要なメモリーは 180∼220KB で済みます
(プラットフォームやインストール形態によって異なります)。フラット・ファイルではなくリ
レーショナル・データベースを使用してモバイル・データにアクセスするため、データの照会や
結合など、リレーショナル・データベースが持つ豊富な機能を利用できるメリットがあります。
さらに、企業アプリケーションで使われているデータをモバイル・デバイスに同期および複製さ
せ、使用および更新してから同期させて企業の DB2 サーバーに再度複製することができます。
完全な DB2 Everyplace のシナリオは、モバイル・デバイス上の DB2 Everyplace データベース、
DB2 UDB V7.2 による DB2 Everyplace 同期サーバー(ミラー・データベースのエンジン)、およ
びターゲット・データベースで構成されます。ターゲットには、DB2 UDB データベースを使用
することも、その他の JDBC 対応データベースを使用することもできます。
2.5 モバイル・ソリューションの選択
以下に、モバイル・ソリューションを選択する際の考慮事項を示します。
・
オンライン/オフライン作業の要件
・
アーキテクチャー
・
ユーザーのニーズ
・
管理、モニター
・
ディスプレイ・サイズなどのユーザビリティー
・
使用と管理の容易さ
・
機能
・
アプリケーションの開発と配布
・
PIM データの同期
・
Domino ベースの情報へのアクセス
・
価格、コスト
Domino ベースの情報や PIM データが必要な場合は、Domino Everyplace と Mobile Notes を使用す
る必要があります。これにより、Notes および Domino ユーザーは Domino ベースの情報にアクセ
スできます。
e-business アプリケーションやインターネット・コンテンツを伴う完全なソリューションを必要
とする場合は、IBM WebSphere Everyplace Access を使用します。
- 11 -
ソリューションをラップトップで実行できる場合は、DB2 UDB サテライト機能を利用します。
このソリューションの利点は、多数の分散 PC または 1 台のサーバーで実行されるタスクのスク
リプトを、サテライト機能によって一元的にセットアップできることです。
DB2 Everyplace を使用すると、ファイル、DB2 データ、JDBC インターフェースを備えたその他
のデータベースを同期させることができます。オープン・アーキテクチャーにより、開発者はそ
の他のデータ・ソースにアクセスするアダプターを作成できます。DB2 Everyplace は、メモリ・
リソースが少ないモバイル・デバイス用にフットプリントの小さいリレーショナル・データベー
ス(180∼220KB)を備えています。さらに DB2 Everyplace は、使いやすく、アプリケーション
の作成や、既存のエンタープライズ・アプリケーションの配置が簡単で、拡張性と相互運用性を
持ち、管理も容易です。
- 12 -
3. DB2 Everyplace の概要
この章では、DB2 Everyplace の主なコンポーネントと、それらのコンポーネントがどのように連
携して機能するかについて説明します。
DB2 Everyplace は、モバイル業界のリレーショナル・データベースのフットプリント当たり、最
も多くの機能を備えています。DB2 Everyplace Mobile Application Builder (MAB) for Palm OS®を使
用すると、コードの記述を伴わないアプリケーション開発をすみやかに開始できます。
図 2 に示す完全な DB2 Everyplace のシナリオは、モバイル・デバイス上の DB2 Everyplace データ
ベース、DB2 UDB による DB2 Everyplace 同期サーバー(ミラー・データベースのエンジン)、お
よびターゲット・データベースで構成されています。モバイル・デバイスのデータは、DB2
Everyplace 同期サーバーによって同期されます。モバイル・デバイスの同期クライアントは DB2
Everyplace 同期サーバーと通信し、同期サーバーはソース・サーバーのエンタープライズ・デー
タベースと通信します。
図 2. モバイル・ソリューションのコンポーネント
以降のページで、以下の DB2 Everyplace コンポーネントについて詳しく説明します。
・
モバイル・デバイスにインストールした DB2 Everyplace データベース
・
中間層システムに位置する、モバイル・デバイス管理センター(MDAC)を同梱した同期
サーバー
・
迅速なプロトタイプ化を行う Mobile Application Builder
3.1 Everyplace データベース
DB2 Everyplace のエンジンは、モバイルおよび組み込みアプリケーション環境向けに特別に設計
されたもので、最小限のストレージ要件を備えています。最小のリソースで最大の機能を得るた
- 13 -
めに、モバイル・データベースに最も関連した機能だけを搭載しています。大容量のデータ・ス
トレージのために、DB2 Everyplace では、IBM マイクロドライブなどのコンパクトなフラッ
シュ・ストレージ・デバイスをサポートしています。
ユーザーは、モバイル・デバイス上の DB2 Everyplace を管理する必要はありません。
DB2 Everyplace では、SQL99 標準、DB2 コール・レベル・インターフェース(CLI)、Open
Database Connectivity(ODBC)、および JavaTM Database Connectivity(JDBC)のサブセットがイン
プリメントされています。JDBC は、Java テクノロジ対応のすべてのプラットフォームでサポー
トされています。
DB2 Everyplace のデータベース・エンジンは、JOIN、GROUP BY、ORDER BY などの関係演算
をサポートしています。このエンジンはまた、複数列の主キーおよび外部キー、式関数、集約関
数、および制約をサポートしています。拡張索引付けによって、中・大規模の DB2 Everyplace 表
における照会パフォーマンスが著しく向上しています。また、両方向スクロール・カーソルによ
り、アプリケーション・データを容易に操作できます。
モバイル・デバイスの IBM 同期クライアントには、拡張可能なアーキテクチャーが採用されて
います。同期クライアントは、データ・ソースにアクセスするためにクライアント・データ・ア
ダプターで拡張された、小規模な同期エンジンに基づいて構築されています。オープン・アーキ
テクチャーにより、任意のデータ・ソースにアクセスするアダプターを作成できます。現行バー
ジョンには、JDBC、ファイル、DataPropagator の各アダプター、およびデータ・ソースとリアル
タイムで直接対話するストアード・プロシージャー呼び出し用のエージェント・アダプターがあ
ります。
現在、IBM 同期クライアントでは、同期サーバーとの通信に HTTP over TCP/IP が使用されてい
ます。
同期クライアントのデータベース・エンジンは、1 バイト文字セット(SBCS)、2 バイト文字
セット(DBCS)、および UNICODE(利用可能な場合)をサポートしています。DB2 Everyplace
データベースは、Palm OS、Windows® CE/Pocket PC、Symbian V6、Java 2 Micro Edition、Linux、
組み込み Linux、QNX Neutrino、および Windows の 32 ビット・プラットフォームで利用できま
す。このデータベースは、英語、スペイン語、フランス語、ドイツ語、イタリア語、日本語、韓
国語、中国語(繁体字)
、中国語(簡体字)など、世界の主要言語に翻訳されています。
以下に、現行データベースの機能の概要を示します。
・
CREATE TABLE(暗号化を搭載したリリース 8.1 以降)、DROP TABLE、CREATE INDEX、
DROP INDEX
・ CHECK 制約、DEFAULT VALUE
・ 複数列の主キー、外部キー、および双方向索引
- 14 -
・
INSERT、副選択を伴う INSERT、DELETE、および UPDATE(レコード)
・
SELECT(レコード)、両方向スクロール・カーソル、JOIN、LENGTH、RTRIM、IN リス
ト、GROUP BY、ORDER BY
・
基本トランザクション、表現関数および集約関数
・
32 ビット Windows プラットフォームでの読み取り専用メディアのサポート
・
IBM マイクロドライブ
TM
をはじめとする、拡張カードのサポート(340MB∼1GB のスト
レージ)
・
Palm OS をはじめとする、すべてのプラットフォームでの DBCS のサポート
・
Palm OS と EPOC R5 におけるインポートとエクスポート(サンプル・プログラムを含む)
・
Win32®(Windows 95/98、Windows NT®、Windows 2000)における UNICODE のサポート
最近、データベースに対して以下の機能が拡張されました。
・
リリース 7.2.1 および 8.1 でのコマンド行プロセッサーのコマンド追加
ƒ
CONNECT TO
ƒ
AUTOCOMMIT ON
ƒ
AUTOCOMMIT OFF
ƒ
ROLLBACK WORK または ROLLBACK
ƒ
COMMIT WORK または COMMIT
ƒ
BLASTDB(データベースの表をすべてドロップ)
ƒ
VERSION
・ リリース 7.2.1 での拡張 SQL の追加
・
ƒ
SQL Explain
ƒ
SQL REORG TABLE
ƒ
SQL ステートメント長の 64k への拡張
ONLINE REORG(データベースの自動再編成を行い、削除された行を再利用してデータ
ベースをクリーンアップ)
・
表ごとに 128 列までを除去(利用可能なメモリーによって決定)。
接続当たりのステートメント・ハンドル数が 20 に増加
3.2 DB2 Everyplace 同期サーバー
DB2 Everyplace 同期サーバーでは、サポートしているデバイスと企業の DB2 サーバーのバックエ
ンド・データ・ソースを双方向に同期させることができます。
- 15 -
図 3. 同期化処理
クライアント・デバイスのユーザー・インターフェースを通じて、ユーザーは同期させるデータ
(サブスクリプション・セット)を決定できます。同期エンジンはアダプターによって情報を抽
出し、トランスポート API を呼び出してデータを送信します。サーバー・サイドでは、サーブ
レットが要求の取得とクライアントの認証を行い、同期エンジンが競合の解決とデータの比較を
行って、変更したデータをミラー・データベースに配置します。サーブレットによって開始され
たレプリケーション処理では、ソース・データベースのサブスクリプションの定義に基づいて
データが交換されます。同期サーバーは、モバイル・デバイスの同期クライアント・ソフトウェ
アとソース・サーバーのデータベースを結ぶ媒介として機能します。
HTTP ベースの同期化は、有線と無線の両ネットワークに適しています。DB2 Everyplace の同期
化は、次の 2 つのステップで説明できます。
1.
最初に、クライアントがそのデータを同期サーバーのミラー・データベースと同期させま
す。同期関数は要求時に呼び出すことも、プログラムに統合することもできます。
2.
次に、サーブレットがミラー・データベースを伴う同期サーバーと企業のデータ・サーバー
間でレプリケーションを作成します。これは時限ベースで実行され、サブスクリプションの
インプリメンテーション時に定義されます。
モバイル・デバイス管理センター(MDAC)は、集中管理を可能にする同期サーバー用のグラ
フィカルな管理ツールです。MDAC を使用すると、すべてのモバイル・デバイスとユーザーを
一元的に管理できるため、DB2 UDB コントロール・センターと類似した方法で多数の個別のデ
バイスを容易にサポートできるようになります。これにより、ユーザー、ユーザー・グループ、
およびデータ・アクセスのセットアップと管理が可能になり、各ユーザーのレプリケーション定
- 16 -
義を必要に応じて調整できます。MDAC を使用して、ユーザーのグループがアクセスできるよ
うに、データとファイルのサブセットを定義することができます。クライアントがデータの同期
を要求するたびに、同期サーバーはこの管理情報にアクセスします。
以下に、DB2 Everyplace 同期サーバーの機能の概要を示します。
・
効率的な両方向の同期化
ƒ
すべてのプラットフォームおよび JDBC ソースでの DB2 Universal Database との同期
ƒ
リモート・ストアード・プロシージャーのサポートによる、モバイル・アプリケーショ
ンとデータ・ソースとのリアルタイムでの直接対話
・
集中管理
ƒ
ユーザーのグループ化と管理およびデータ・サブスクリプションのグループ化の促進
ƒ
データベースの定義、制約、および索引の管理(デバイスでの管理は不要)
ƒ
垂直方向と水平方向のデータ区分化、結合、およびユーザーのフィルター操作のサポー
ト
・
ƒ
完全なロギングを伴う、同期進行のリアルタイムでのモニター
ƒ
データ、ファイル、およびアプリケーションの配布の処理
ƒ
挿入、更新、削除の各特権に基づく、デバイス・ユーザーのアクセス制御のサポート
ƒ
競合管理のためのユーザー出口拡張機能のサポート
相互運用と拡張が可能なオープン・アーキテクチャー
ƒ
SyncML に基づくデータ交換
ƒ
公開された API の使用
ƒ
要求時レプリケーションのサポート
ƒ
カスタマイズされたタイムアウト API および GUI(Palm OS のみ)のサポート(API 呼
び出しによる同期タイムアウトの設定が可能)
・
メッセージのエンコードとデコードにおける WAP WBXML の使用
・
すべての通信での 56 ビットおよび 128 ビット暗号化のサポート
・
WebSphere などの Java アプリケーション・サーバー使用によるクライアントとの通信と接続
能力の調整
3.3 Mobile Application Builder(MAB)
MAB 開発ツールを使用すると、Java 仮想マシン(JVM)エンジンを搭載したすべてのデバイス
(Nokia® 9210 Communicator など)と PalmTM デバイスのアプリケーション開発を迅速に行うこ
とができます。MAB は、DB2 Everyplace Software Development Kit(SDK)に収録されています。
MAB ツールを使用すれば、コードを一切記述しないで Palm OS または JVM 対応のデバイスのア
プリケーションを開発できます。サンプル・アプリケーションと MAB プロジェクト・ファイル
- 17 -
がソース・コードに添付されています。XML/XSL に基づく拡張可能な設計によって、他のプ
ラットフォームでのアプリケーション開発が将来可能になります。
3.4 DB2 Everyplace V8
2002 年 8 月リリースの DB2 Everyplace V8 には、新機能がいくつか盛り込まれています。その主
な拡張機能を以下に示します。
・
データベースのパフォーマンスが向上しました。一方、データベースのフットプリントは約
180KB とそのまま維持されています。
・
モバイル・デバイスにデータ暗号化が加えられたことでセキュリティーが強化されました。
この新機能は非常に重要です。なぜなら、これによりモバイル・デバイスの盗難時や紛失時
にもデータ・レコードが保護されるからです。
・
同期クライアントに Java API が追加されました。V7.2 では、同期クライアント API は
C/C++だけでした。V8 では JNI ベース(Palm ではトラップ・ベース)の Java API が追加さ
れたため、開発者は JDBC を使用して Java アプリケーションを開発できます。Java インター
フェースを使用すれば、データベースと同期の機能を統合することができます。
・ クライアントによるユーザー・リセット(リセット・ボタン)が追加されました。デバイス
のデータが失われたり壊れたりした場合でも、モバイル・ユーザーは、管理者の介入なしに
完全なリフレッシュを自動的に要求できます。
・ 1 つのデバイスを複数のサーバーと連続して同期させる機能が追加されました。サブスクリ
プションごとにサーバーを指定することもできます。したがって、顧客は、複数の場所で複
数のサブスクリプションに対して複数のサーバーを使用することができます。ただし、同じ
データを異なるサーバーと同期させることはできません。
・ 主キーのフィルター操作が追加されました。同期サーバーの MDAC では、管理者は主
キー・フィールドをアンサブスクライブできません(垂直区分化)。現在では、ユーザーは
複数の主キーを備えた表の主キー・フィールドをアンサブスクライブ(垂直にフィルター操
作)できます。これにより、主キーを同期させないようにして、新規データのこのフィール
ドでデフォルト値を使用するように指定できます。
・ Java 2 Platform Microedition(J2ME)MIDP のアプリケーション作成をサポートする J2ME
MIDP 同期クライアントが新規に加わりました。この同期クライアントは、アプリケーショ
ンで用いる MIDP ファイル・システムのサブスクリプションを同期させることができます。
注:J2ME は Java 言語とその実行環境のサブセットを提供し、量販市場向けのコンピュー
ティング・デバイス用に特別に設計されています。これらのコンピューティング・デバイス
には、携帯電話、PDA、双方向ポケットベル、組み込みサーバー、ホーム・ゲートウェイな
- 18 -
どがあります。J2ME MIDP は、メモリーと CPU の能力が非常に制限されている無線通信デ
バイス向けに特別に設計された、J2ME ファミリー内の「プロファイル」です。MIDP は、
標準のユーザー・インターフェース、ネットワーキング、および MIDP 対応の全デバイスで
共通の永続的なストレージ API を開発者に提供します。
J2ME、とりわけ MIDP は、こうした標準環境を各種デバイスに提供する最初のプラット
フォームです。J2ME MIDP は、Motorola®、Nokia、RIM®、SharpTM、SonyTM など、主要な
デバイス・メーカーによってサポートされています。
・
コマンド行ツールとスクリプトを使用して同期サーバーのオブジェクトと構成を自動的に管
理する、XML ベースのスクリプト記述ツールが追加されました。このツールを使用する
と、テスト・システムから本番システムに移行するなど、あるサーバーの構成を他の複数の
サーバーに容易にコピーできます。
・
同期サーバーの可用性、ロード・バランシング、スケーラビリティーが強化されました。
WebSphere Application Server グループを利用すると、複数サーバーにわたるユーザー・ロー
ドを 1 台のサーバーで動的に管理できます。さらにこの構成は、アクティブ・サーバーがダ
ウンした場合に備えて別のサーバーへのフェイルオーバーをサポートしています。各サー
バーは、別々のマシンまたは HA クラスターにある共通のコントロール・データベースとミ
ラー・データベースを共有することになります。
・ MAB は、Java アプリケーションの開発をサポートします。新しい Java API では、開発者は
MAB を使用してアプリケーションを開発し、DB2 Everyplace データベースで実行させ、
バックエンドの JDBC データ・サーバーと同期させることができます。
- 19 -
4. サンプル・シナリオ
データベースには、あらゆる種類の情報を格納できます。DB2 Everyplace ソリューションでは、
場所を問わず同期および更新できる、非常時接続のモバイル・デバイスで情報とビジネス・オペ
レーションを利用できます。FFA(Field Force Automation)
、保険、健康管理、小売り、金融サー
ビスなど、各種分野で多くのソリューションが実現可能です。以下に、モバイル・ソリューショ
ンの主な利点を示します。
・
オフィスの最新情報を保持できる(電子メール、カレンダー、PIM)
・ タスクを自動化できる(事務処理)
・ 同僚や専門家にアクセスできる(ヘルプ、情報、共有)
・ ビジネス情報にアクセスできる(在庫、出荷、料金)
・ アラートを受信できる
・ Web プレゼンスを拡張して、製品、価格、入札に関する要求された情報や、他の選択肢(飛
行機の便や在庫品など)を提供できる
・ パートナーやサプライヤーにコミュニケーションを拡張できる
以降のシナリオでは、DB2 および DB2 Everyplace を使用して実現可能なモバイル・ソリューショ
ンの例を 2 つ示します。
4.1 顧客発注用のモバイル・システム
企業は、発注システムを顧客に提供したいと考えています。企業が求める発注システムは、当該
の製品またはサービスが利用可能かどうかを場所を問わず顧客が確認でき、利用可能な場合はそ
れらの製品またはサービスを発注または予約できる、自動化されたサービスです。
こうしたソリューションに適している製品やサービスとして、劇場のチケット、レストランの予
約、歯医者の予約、タイヤ、修理部品、計器などの自動車の部品その他が考えられます。発注完
了後は、以降の処理をすべて自動化できます。たとえば、配送サービス会社は、配送する製品と
その日時に関する情報を自社のモバイル・システムを通じて受信します。製品の在庫がなくなる
と、製品の受注が自動的に行われ、顧客の口座から代金が自動的に引き落とされます。各モバイ
ル・デバイスの所有者は、DB2 Everyplace 同期サーバーでアプリケーションに対して登録される
一意のパスワードを持つ 1 人のユーザーに限定されるので、トランザクションは安全に実行され
ます。
- 20 -
映画のチケットの予約も対象となります。ある晩、町に着いたミラー夫妻が映画を見に行くとし
ます。ミラー夫妻は、DB2 Everyplace の映画館用アプリケーションをハンドヘルド・デバイスで
使用して現地の映画館データと同期させます。何時にどの映画を見に行くかを決めたら、DB2
Everyplace アプリケーションの次のパネルで映画館の空席を確認し、座る席を選ぶことができま
す。次にミラー夫妻は、ストアード・プロシージャー呼び出しでリアルタイムにインプリメント
された予約内容をデータ・ソースに送信します。モバイル・デバイスの次のパネル(たとえば予
約状況パネル)で、予約が取れたかどうかを確認することもできます。モバイル・デバイスの赤
外線インターフェースを使用すれば、自動支払いと映画館の入場を完全に自動化することができ
ます。
今後、音声認識システムの向上によって、携帯電話による汎用の発注、情報要求、入力システム
の実現が見込まれます。
4.2 営業支援システム
巡回販売員のいる会社は、モバイル・ソリューションの有力候補です。販売員はそれぞれの顧客
を訪問して接触を保ち、新たな商談をまとめます。販売員は、次の機能を必要としています。
・
すぐに購入可能な製品の情報にアクセスできること
・
注文を受けてその調達業務を直接処理できること
・
顧客の日頃の支払い習慣を事前にチェックできること
そのため、販売員は、顧客を訪問する前に DB2 Everyplace データベースを中央データベースと同
期させます。ローカル・データベースには、実際の発注状況、新しい特別提供品、アカウント情
報などが格納されます。販売員は、これら情報を活用して顧客訪問を準備できます。客先では、
配送状況や新しい特別提供品について顧客に伝えることができます。
顧客が発注を望めば、販売員はその場で受注できます。訪問後、販売員はモバイル・デバイスを
同期サーバーと同期させます。これにより、受注内容は配送のためにシステムに入力されます。
- 21 -
5. 情報交換
5.1 概要
この章では、DB2 Everyplace 同期サーバーのテクノロジーによって情報が交換される仕組みにつ
いて概説します。同期化処理に関するその他の事項については、フィルター操作および競合の項
で後述します。
図 4. DB2 Everyplace 同期化ソリューションのプロセス
DB2 Everyplace による情報交換は、モバイル・デバイスと DB2 Everyplace 同期サーバーとの同
期、および DB2 Everyplace 同期サーバーとソース・システム・データベース間でのレプリケー
ションという 2 つのステップで実行されます。
1.
モバイル・ユーザーまたはクライアントは、最後の同期化以降にソース・データのローカ
ル・コピーに加えた変更を処理依頼します。DB2 Everyplace 同期サーバーは、これらのメッ
セージを受信し、そのデータをミラー・データベースのステージング表に格納します。その
後、最後の同期化以降にソース・データに加えられた変更がメッセージとしてモバイル・デ
バイスにすべて送信されます。
2.
ミラー・データベースとソース・データベース間のレプリケーションは時間ベースで行わ
れ、サーブレットによって制御されます。その間隔はミラー・データベースに依存します。
このステップ中にクライアントが配信した変更は、ミラー・データベースの表に格納され、
次いでソース・データベースに格納されます。発生した競合は、クライアントのためにス
テージング表に格納されます。
- 22 -
同期とレプリケーションが合体して、完全な同期サイクルを形成します。
モバイル・デバイス管理センター(MDAC)は、モバイル環境全体を管理する中核的な GUI
ツールで、ユーザー、グループ、サブスクリプション・セット、サブスクリプション、アダプ
ター、およびログの同期オブジェクトで構成されます。1 人のユーザーは 1 つのグループにのみ
属することができます。1 つのグループは複数のサブスクリプション・セットを所有でき、1 つ
のサブスクリプションは複数のサブスクリプション・セットに属することができます。サブスク
リプションとは、ソース・データベースの情報がターゲット・データベースにどのように複製さ
れるかを指定したものです。サブスクリプションによって、ソース・データベースとの間でコ
ピー可能にするデータおよびファイルのサブセットを定義できます。
次の項で、サブスクリプションの各種タイプについて詳述します。
5.2 サブスクリプションのタイプ
同期化ソリューションでは、複数の方法で情報を交換できます。この場合の情報とは、データ
ベース表に格納されているデータまたはファイルです。データまたはファイルの交換の定義がサ
ブスクリプションです。ファイル・サブスクリプション、表サブスクリプション、カスタム・サ
ブスクリプションの 3 種類を作成できます。
5.2.1 ファイル・サブスクリプション
ファイル・サブスクリプションは、クライアント・アプリケーションをクライアントに自動転送
するときなどに必要となります。この場合のファイルはユーザーのアプリケーションです。この
処理に対してファイル・サブスクリプションという用語を使用します。
5.2.2 カスタム・サブスクリプション
カ ス タ ム ・ サ ブ ス ク リ プ シ ョ ン は 、 ス ト ア ー ド ・ プ ロ シ ー ジ ャ ー で 使 用 で き ま す 。 DB2
Everyplace には、リモート照会とストアード・プロシージャーのアダプターが組み込まれていま
す。このアダプターにより、DB2 Everyplace は、同期サーバー・アーキテクチャーを用いてリ
モート・データ・ソースにあるストアード・プロシージャーを同期化なしに呼び出すことができ
ます。ストアード・プロシージャーの結果は、バイス上のアプリケーションに直接戻されます。
ストアード・プロシージャーを使用すると、ネットワーク送信が減少します。これは、ストアー
ド・プロシージャーが DB2 ソース・サーバーでローカルに実行されるためです。ストアード・
プロシージャーには、さらに次のような利点があります。
・
クライアント・システムの処理ロードが減少する
・
クライアント・システムのコード保守が単純化される
・
データベース関連でないタスクも実行できる
- 23 -
機密データを扱うときは、リモート・ストアード・プロシージャー呼び出しを使用できます。こ
の場合は、結果セットを一時表として配信するストアード・プロシージャーを呼び出します。結
果セットは、そのアプリケーションでのみ利用できます。アプリケーションが終了すると、デー
タは利用できなくなります。
5.2.3 データ・サブスクリプション
表データをサブスクリプションで交換するには、DataPropagator または JDBC サブスクリプショ
ンなどのレプリケーション機構を使用します。この処理では、中間層のデータベースとして常に
ミラー・データベースを操作します。アップロードは特殊なデータ・サブスクリプションです。
挿入 SQL ステートメントで変更されたデータ行だけがターゲット/ソース・データベースに対
して同期されます。
5.2.3.1 アップロード・サブスクリプション
アップロード・サブスクリプションは、モバイル・デバイスからソース・データベースにデータ
送信のみを行う場合に使用するようにします。他のプログラムからソース・データベースに変更
を加える場合には使用できません。アップロード・サブスクリプション用のミラー・データベー
スは存在しませんが、一部の情報は中間層システムの DSYCTLDB コントロール・データベース
に書き込まれます。データはソース・データベースに直接挿入されます。更新または削除の SQL
ステートメントによってデバイスで変更されたデータ行は同期しません。アップロード・サブス
クリプションは、スーパーマーケットのバーコード・リーダー・システムで使用して、ソース・
データベースに情報を送信できます。
5.2.3.2 JDBC サブスクリプション
次の図は、JDBC サブスクリプションのインプリメントの概要を示しています。
図 5. JDBC サブスクリプション
- 24 -
JDBC サブスクリプションでは、トリガー(更新/挿入/削除)を使用して、ソース・データ
ベースまたはミラー・データベースの変更に関する情報が取得されます。トリガーは、特定のイ
ベントに対して定義された一連のアクションであり、定義されたイベントが発生すると実行され
ます。JDBC サブスクリプションでは、データ・ソースとして DB2、Oracle®、Microsoft SQL
Server、Sybase®、Informix®、またはトリガーをサポートしている JDBC 対応の全データベース
を使用できます。同期サーバー・サーブレットは、サブスクリプションの時間設定に基づいて
JDBC Apply 処理を呼び出し、ミラー・データベースとソース・データベースの間でデータを交
換します。
5.2.3.3 DataPropagator サブスクリプション
トリガーはトランザクションの一部なので、トリガーよりもデータ伝搬技法を用いたほうが適切
な場合もあります。DataPropagator は分散プラットフォーム(Windows および UNIX®)上の DB2
に 組 み 込 ま れ て い ま す 。 S/390 DataPropagator は 、 割 増 料 金 で 提 供 さ れ る 機 能 で す 。 DB2
Everyplace 同期サーバーは、定評ある方法を使用して、ソース・データベースとミラー・データ
ベ ー ス の 間 で デ ー タ を 複 製 し ま す 。 こ の 環 境 で は 、 DataPropagator の 特 殊 な 構 成 ( Update
Anywhere)が使用されます。ソース表は、この処理の基本表またはマスター表となります。サブ
スクリプション定義中にミラー・データベース側で作成された表は、レプリカとして扱われま
す。
DataPropagator サブスクリプションを作成する前に、データベース表を DB2 Everyplace のレプリ
ケーション・ソースとして DB2 コントロール・センターで登録する必要があります。モバイ
ル・データの同期中、ミラー・データベースとリモート・データベースは両方、ソース・データ
ベースとターゲット・データベースとして機能することができます。DataPropagator は、ミ
ラー・データベースからリモート・データベースへクライアントの変更を複製し、同様にリモー
ト ・ デ ー タ ベ ー ス か ら ミ ラ ー ・ デ ー タ ベ ー ス へ 変 更 を 複 製 し ま す 。 こ の 処 理 は 、 DB2
DataPropagator の Capture および Apply プログラムで実行されます。Capture はソース側で実行さ
れます。ミラー・データベースでの Capture および Apply 処理は、同期サーバー・サーブレット
によって呼び出されます。
- 25 -
図 6. DataPropagator サブスクリプション
5.3 フィルター操作
DB2 Everyplace 同期サーバーには、水平、垂直、およびユーザー・ベースのフィルター方式に対
する複数のフィルター・オプションがあります。サーバーのデータをフィルター操作すること
は、クライアントで利用可能なデータを制御するうえで重要です。また、特定のクライアントに
必要な最小限のデータを同期させることにより、フィルター操作はクライアントのデータベー
ス・サイズの制御にも役立ちます。
フィルター操作は、サブスクリプション、グループ、またはユーザーのレベルで実行できます。
これらのレベル間には従属性があります。ユーザー・レベルのフィルターはグループ・レベルの
フィルターを必要とし、グループ・レベルのフィルターはサブスクリプション・レベルでのエン
トリーを必要とします。
図 7. フィルター操作
- 26 -
5.3.1 垂直フィルター操作
垂直フィルター操作では、ミラー・データベースに複製されるデータ量が減少することでパ
フォーマンスが向上します。垂直フィルター操作では、ユーザー・デバイスと同期させるデータ
量も定義に応じて減少します。
垂直フィルター操作は、列をアンサブスクライブすることにより、サブスクリプション定義時に
定義されます。アンサブスクライブされた列は、複製されているが、ユーザーとは同期していな
い列です。クライアントからデータ・ソースに挿入されたデータは、クライアント上のデータの
列とグループで定義されたデフォルト列値の組み合わせで構成され、データ・ソースに挿入され
たデータの行を完成します。
さらに、特定の列の使用を特定のユーザーに制限することにより、セキュリティー機構として垂
直フィルター操作を使用することもできます。
5.3.2 水平フィルター操作
水平フィルター操作は、サブスクリプション、グループ、またはユーザーの各レベルで実行でき
ます。水平フィルター操作では、ソース・データからデータを選択する際に SQL の WHERE 文
節を使用します。WHERE 分節を使用すると、たとえば、Name 列の値が「Charles」の行だけを
特定のユーザーのデバイスと同期できます(例:SELECT name, medicine FROM patient WHERE
name = 'Charles')。値を提供するために、デフォルト値のデータ・フィルター・パラメーターがグ
ループで使用されます。
5.3.3 結合フィルター操作
結合フィルター操作では、複製された別の表にアクセスする副照会を含む WHERE 分節を使用し
ます。
5.4 競合処理
可能な場合は、モバイル・ソリューションの設計時に競合を回避します。中間層システムの DB2
Everyplace 同 期 サー バー は 、各 レプ リ ケー ショ ン ・サ イク ル 中に 競合 を 処理 しま す 。DB2
Everyplace では、競合が行レベルで処理または検出されます。競合は、2 つのクライアントが同
じ行を同時に更新または挿入しようとしたときに発生します。同期サーバーへ先に到達した変更
は成功し、他の変更は競合を引き起こします。したがって、変更はソース表とミラー表のいずれ
にも反映されません。競合を引き起こしているトランザクションは、必要なすべての情報ととも
にステージング表に格納されます。レプリケーションは、ユーザー出口プログラムを呼び出しま
す(使用している場合)。エラー・コードのアクションを定義するプロパティー・ファイル
DSYUserExits.properties を使用できます。
- 27 -
クライアントによる変更がリジェクトされても、次の同期サイクルまでそのリジェクトはクライ
アントに知らされません。クライアントによる変更が古いレコードに基づいている場合は、その
レコードの正しいバージョンがオリジナルの同期要求で戻されます。更新がリジェクトされたク
ライアントは、リジェクトのメッセージと、同期のためにサブミットした元のデータの両方を受
信します。
各クライアントは、各クライアントの各表との最後の同期のレコード・バージョンを維持するた
めに同様に追跡されます。この情報によって、同期サーバーは、クライアントが古いバージョン
の行データに基づいてその行を更新しようとしているのかを判別できます。リジェクトされた行
は、クライアントが再度同期するまでの間だけステージング表に留まります。
- 28 -
6. 管理とモニター
DB2 Everyplace 環境での管理に関する基本概念は、クライアントでの管理を必要としないという
ことです。この章では、DB2 Everyplace 環境のインプリメントを計画する際の考慮事項について
説明します。環境をセットアップし、中間層サーバーで管理用タスクをいくつか実行する必要が
あります。さらに、モニターとトラブルシューティングに関するヒントを示し、DB2 Everyplace
環境を別のコンピューターにコピーする方法について説明します。
6.1 管理のセットアップ
主要な管理用タスクには、モバイル・デバイス管理センター(MDAC)を主に使用します。
MDAC は大部分の定義を行う GUI ツールです。一部の例外では、添付のスクリプトを使用でき
ます。ユーザー管理ではスクリプト dsyimportusers.bat を使用します。このスクリプト・ファイル
は、1 カ所変更を加えてユーザーID をフラット・ファイルで提供して実行します。管理のセット
アップの詳細については、A3 章も参照してください。
6.2 通常の管理用タスク
データの量は時間とともに増加し、データベースに問題が発生した場合にはリカバリー可能でな
ければならないため、管理用タスクを定期的に実行する必要があります。以下に、主な管理用タ
スクを示します。
・
RUNSTATS/REORGCHK/REORG
これらのタスクは、データベース管理者がパフォーマンス向上のために広く実行するもので
す。DB2 のオプティマイザーは、アクセス・パスの決定時に適切な判断を下すために一定の
統計を必要とします。データの変更頻度が高くなると、行の順序が乱れる傾向があります。
その場合は、表を再編成して、目的のキーで行を順序付けなければならないこともありま
す。REORG の必要性は REORGCHK で適宜チェックできます。RUNSTATS を実行すると、
カタログ表の統計を更新できます。これらのタスクは定期的なスケジュールが可能です。
・ BACKUP/RESTORE
リカバリー方針の計画は慎重に行う必要があります。インストール当初の DB2 では、トラ
ンザクション・レベルでのリカバリーだけが実行されます。サーバーがクラッシュした場
合、この機能は役立ちません。その場合は、バックアップとログ・ファイルがリカバリーで
必要になります。DB2 には検討対象のリカバリー方針が複数用意されており、各自のニーズ
を満たし、受け入れ可能なダウン時間で機能する方針を選択することができます。ダウン時
間を許容できない場合は、第 7 章の高可用性ソリューションを参照してください。
- 29 -
6.3 モニター
DB2 Everyplace で基本モニターを実行するには、コントロール・データベース DSYCTLDB の表
DSY.LOG に特定のイベントを書き込みます。このデータベースは、DB2 Everyplace Enterprise エ
ディションの同期サーバーをインストールすると作成されます。以下のイベントがこのログ表に
書き込まれます。
・
レプリケーション・サイクルの開始と終了
・
クライアントごとの同期ステップの開始と終了
基本モニターを行う場合は MDAC を使用します。MDAC には、同期オブジェクト Logs がありま
す。Logs オブジェクトは、表 DSY.LOG に書き込まれた内容をすべて示します。また、任意のレ
ポートを作成するために、SQL を使用してコントロール・データベースの表に対する照会を作成
することもできます。これらのレポートは、以下のような質問に回答できます。
ƒ
特定のサブスクリプションに対するレプリケーションが最後に行われたのはいつか?
ƒ
どのユーザーがどのサブスクリプションと同期したか? その同期が最後に設定されたの
はいつか?
ƒ
今日、特定のユーザーが同期を行ったか?
以下に示すのは、最後の質問の回答を得る変数スクリプトの例です。
次に、さらに詳細な情報源を示します。
- 30 -
・
表 DSY.SESSIONMONITOR:
この表はデータベース DSYCTLDB にあります。この表のエントリーは、クライアントおよ
びデータベース・サブスクリプション当たり 1 つだけです。このエントリーには、現在クラ
イアントが対象としている、またはごく最近まで対象としていたサブスクリプションが常に
示されます。この情報は、同期サーバー・サーブレットを再始動すると失われます。
・
ファイル・システム:
重要情報が格納されている、コントロール・データベース外の場所についても知っておく必
要があります。
ƒ
サーブレットは、例外とその他のトレース情報を 2 つのファイルに書き込みます。この
フ ァ イ ル は 、 DSY.0.trace と syncadapterinit.log で す 。 こ れ ら の フ ァ イ ル は 、 <DB2
Everyplace path>\SyncServer\Server にあります。
ƒ
同期サーバーがインストールされているファイル・システムに、サブスクリプションお
よびクライアントごとにフォルダーが作成されます。クライアント向けのメッセージ
は、一時的にこのフォルダーにすべて格納されます。ファイル・システムで
「deviceids」および「subscriptionids」の数値、「<DB2 Everyplace path
>\SyncServer\Server\SyncServ\....」をチェックします。次に、デバイス ID「m100」と、
その後のドット(.)に続く数値列からなる subscriptionid で構成されるファイル・サブスク
リプションのサンプル文字列を示します。
CONFIGSYNC.OUT.1_m100.20020622182457825082000000
表 DSY.SUBSCRIPTIONS からデータを選択するときに、この数値が表示されます。DB2
Everyplace バージョン 8 では、deviceid を含むフォルダーだけが表示されます。この
フォルダーは、<DB2 Everypace path>\server\MESSAGES\にあります。
・ Web アプリケーションと HTTP サーバー:
ユーザー数が多い環境では、アプリケーション・サーバーを追加して、同期サーバー・サー
ブレットのホストとして機能させる必要があります。このアプリケーション・サーバーは
HTTP サーバーを伴います。たとえば、Websphere を使用している場合は、IBM HTTP サー
バーが同梱されています。
ƒ
IBM HTTP サーバーは独自のログを備えています。このログには、クライアントに関す
る情報も記録されます(<IBM HTTP server>\logs\Access.log を参照)。
ƒ
Websphere ア プ リ ケ ー シ ョ ン ・ サ ー バ ー 自 体 も デ ィ レ ク ト リ ー
<websphere>\appserver\logs\にログ・ファイルを書き込みます。Websphere はまた、ユー
ティリティー(サブディレクトリー...\bin の SHOWLOG)を提供し、さらに読みやすい
形式で情報を抽出します。
- 31 -
6.4 トラブルシューティング
この項では、問題発生時の対処方法について説明します。
6.4.1 データベースの問題
db2diag.log は DB2 のエラー、DIAGLEVEL に応じた警告および情報メッセージを記録します。
db2diag.log は ASCII ファイルで、DIAGPATH データベース・マネージャー構成パラメーターで指
定されたディレクトリーに格納されます。
6.4.2 サーブレットの問題
サーブレットで問題が発生すると、以下の 2 つのファイルにその原因に関する情報が示されま
す。
・
DSY.0.Trace
・
Syncadapterinit.log
さらに詳細なトレース情報が必要な場合は、DSYTRACE ユーティリティーを呼び出します。コ
マンド DSYTRACE 1 を実行すると、トレース・ユーティリティーがオンになります。トレー
ス・メッセージは、*.trace ファイルおよびコンソール・ウィンドウにすべてログ記録されます。
6.4.3 クライアント・アクセス
同期中にクライアントで問題が発生した場合は、最初に次の事項をチェックします。
・
クライアントはサーバーに到達していたか?
ƒ
クライアント・デバイスでエラー・メッセージを確認します。「6XX」エラーという
メッセージが表示されている場合は、通信障害が起きています。エラー・メッセージを
書き留めて以降の調査で使用します。
ƒ
サーブレットが実行中なのを確かめます。この確認は、Web ブラウザーでアドレス
「http://<Serverip:port>/db2e/db2erdb」を入力して行います。サーブレットが応答するは
ずです。応答する場合はサーブレットが実行中であり、とりあえずこの調査を終了でき
ます。応答しない場合はサーバーにアクセスし、MDAC を使用して次のステップに進
む必要があります。
ƒ
MDAC で同期オブジェクト「Logs」のエントリーをチェックします。同期時間と一致
する時間枠にクライアントのエントリーがある場合は、次の項目をスキップできます。
・
ユーザーID は存在するか? 存在する場合、その ID は使用可能なグループに属しているか?
- 32 -
ƒ
MDAC の「Users」オブジェクトにクライアントが本当に存在するかチェックします。
ƒ
ユーザーがグループに属しているかチェックします。
ƒ
ユーザーが使用可能であるかチェックします。この確認は「Users」オブジェクトの列
で行えます。デバイス・タイプについても確認します。
ƒ
グループが使用可能であるかチェックします。この確認は「Groups」オブジェクトで行
えます。問題が解決しない場合は、次の項目に進みます。
・
クライアントの状況は何か?
ƒ
DB2 コントロール・センターを開いて、表 DSY.SESSIONMONITORS のサンプル・コン
テンツを確認し、クライアントの実際の状況とクライアントが同期しているサブスクリ
プションをチェックします。SQL を使用してこの表のデータにアクセスし、データを分
析することもできます。
ƒ
場合によっては、ファイル同期中の問題についてファイル・システムをチェックする必
要があります。こうした問題は前述の表に記録されていないからです。
通信障害の原因がクライアント・デバイスとサーバー間の不安定なトランスポート層にある場合
は、拡張設定パネルにあるクライアント・デバイスのタイムアウト・パラメーターの値を増やす
と通信障害を解決できることがあります。
6.5 競合情報
競合が発生するたびに、エラー・メッセージがクライアントに表示されます。同期に対してサブ
スクライブしている表ごとに、同期のために複数の表がシステムにより作成されます。重要な表
はミラー・データベースに置かれ、ST(ステージング表)の接頭部が付きます。さらに、表ごと
に一意の数値が接尾部として付きます。
ステージング表は、特定のミラー表におけるすべてのクライアント更新の最初の停止箇所です。
ステージング表の行はレプリケーション処理時に変更され、更新の受け入れまたはリジェクト
(競合)を示します。
6.6 DB2 Everyplace の再インストールまたはコピー
スクリプトを使用すると、インストールされている DB2 Everyplace を迅速かつ容易にコピーでき
ます。以下に、作業の開始に役立つヒントをいくつか示します。
・
DB2 は、応答ファイルでインストールできます。応答ファイルには、事前の設定が必要な環
境変数も組み込まれています。db2set コマンドを含むファイルを生成すると、このプロセス
は DB2 環境変数の設定にも使用されます。
- 33 -
・
DSYCTLDB の デ ー タ ベ ー ス ・ ス キ ー マ が 提 供 さ れ ま す 。 こ の ス キ ー マ は フ ァ イ ル 名
dsyctldb.ddl で検索できます。
・
インプリメントされた既存システムの表 GROUP、GROUP_PROPERTIES、CLIENT、および
CLIENT_PROPERTIES からデータをエクスポートします。既存システムからこれらの表をエ
クスポートして新しいシステムにインポートすれば、すべてのデバイス・ユーザーを
MDAC で再定義する手間が省けます。この定義には、すべてのフィルター設定も含まれま
す。
・
白紙の状態から開始する場合は、ソース・データベースから DDL スクリプトを生成すると
有用です。このスクリプトは DB2LOOK ユーティリティーで生成できます。
・
ミラー・データベースを作成するスクリプトを記述し、DB および DBM パラメーターを設
定します。
このスクリプトには、たとえば以下のコマンドが含まれます。
このスクリプトは、次のようなバッチ・ファイルで呼び出すことができます。
DB2CMD -c db2 -tf .\<examplescript>
・
Websphere を使用している場合は、ユーティリティーXMLConfig で構成をファイルにエクス
ポートして、その情報を XML で保管できます。その後、このユーティリティーを使用して
構成を再度インポートしたり、データベースのバックアップのためにアプリケーション・
サーバーを始動したり停止したりできます(このユーティリティーでは大文字小文字が区別
されます)。
場合によっては、定義がすべて完了した後にデータベース全部をバックアップして、システムの
再インストール時に使用可能なイメージを作成することもできます。しかし、この手法は注意を
要します。サブスクリプションの定義でソース・データベースやミラー・データベース、表を操
作し、その環境に固有のその他の表を作成するからです。データベースのすべてのバックアップ
は同期している必要があります。すなわち、これらのバックアップはオフラインで同時に行う必
- 34 -
要があります。または、追加のログ・ファイルによってある時点にリカバリー可能である必要が
あります。
- 35 -
7. プログラミング
DB2 Everyplace は、C/C++または Java で作成されたアプリケーションをサポートしています。対
応しているプラットフォームは、Palm OS、Symbian OS Version 6.0TM 、Windows CE for Pocket
PC、Win32®、QNX® Neutrino®、Linux、および組み込み Linux です。デバイス・エミュレー
ターでアプリケーションをテストできます。通常、デバイス・エミュレーターは開発キットに添
付されています。
DB2 Everyplace では、SQL 99 標準、DB2 コール・レベル・インターフェース(CLI)、Open
Database Connectivity(ODBC)、および Java Database Connectivity(JDBC)のサブセットがインプ
リメントされています。JDBC は、Java テクノロジー対応のすべてのプラットフォームでサポー
トされています。モバイル・デバイスの IBM 同期クライアントが提供する API により、デバイ
スのプログラムから同期機能に直接アクセスできます。
DB2 Everyplace Mobile Application Builder (MAB) for Palm OS を使用すると、コードの記述を一切
伴わないアプリケーション開発をすみやかに開始できます。DB2 Everyplace V8 では、Java 仮想
マシンを利用できるすべてのモバイル・プラットフォーム(Windows CE、Symbian など)で使用
可能な Java アプリケーションを MAB で開発することもできます。
アプリケーション開発の各方法について説明します。
7.1 C++ アプリケーション
以下に、DB2 Everyplace C++アプリケーション開発の基本ステップを示します。
1.
最初に、開発ワークステーションに DB2 Everyplace をインストールします。
2.
アプリケーションとそのデータの要件を定義します。
3.
エンド・ユーザーが確認または変更する必要があるデータを判別し、DB2 Everyplace データ
ベースでそのデータをどのように検索、格納、更新するかを決定します。
4.
DB2 CLI/ODBC インターフェースについて理解し、アプリケーションで使用する DB2
CLI/ODBC 関数を決定します。
5.
DB2 Everyplace でサポートされている DB2 CLI/ODBC 関数を使用して、C/C++アプリケー
ション・プログラムを作成します。
6.
アプリケーション・コードを作成およびコンパイルし、DB2 Everyplace のヘッダー・ファイ
ルとプラットフォーム・ライブラリーにリンクします。
- 36 -
7.
エミュレーターまたはデバイスでアプリケーションをテストします。
C++アプリケーションを作成する際は、次のモバイル・プラットフォームで以下のツールを使用
できます。
1.
2.
Palm OS(IBM Workpad®など)
ƒ
DB2 Everyplace Mobile Application Builder
ƒ
GNU Software Developer Kit
ƒ
Metrowerks® Codewarrior for Palm Computing Platform
Symbian OS Version 6.0(Nokia 9210 など)
ƒ
EPOC または Symbian Version 6.0 C++ Software Developer's Kit(SDK)と組み合わせた、
Microsoft Visual C++TM バージョン 6
3.
Windows CE(Compaq® iPaq Pocket PC など)
ƒ
4.
Win32(Microsoft Windows NT または Windows 2000)
ƒ
5.
Microsoft Visual C++
QNX Neutrino
ƒ
6.
Microsoft eMbedded Visual Tools 3.0
Metrowerks Codewarrior for QNX Neutrino または QNX Neutrino Software Development Kit
Linux および組み込み Linux(Compaq iPaq など)
ƒ
Embedded Linux ディストリビューションのクロス・プラットフォーム開発ツール。組み
込み Linux のカーネルでは、ELF(Extended Link Format)バイナリーのサポートが実現
しています。組み込み Linux は、家電業界における最新の組み込み OS ソリューション
です。
次の図は、DB2 Everyplace の C++コマンドライン・インターフェース(CLI)処理の概要を示し
ています。
- 37 -
図 8. C/C++アプリケーションの CLI 処理の概要
7.2 Java アプリケーション
DB2 Everyplace は、SunTM Java Developer's Kit で提供されている JDBC メソッドのサブセットをサ
ポートしています。DB2 Everyplace V8 では、同期クライアント用の Java API も利用できます。
OTI/IBM Visual Age Micro Edition for Java は、Palm OS、Windows CE、QNX、および組込み Linux
の Software Development Kit の J9 JVM をサポートしています。Java を使用して DB2 Everyplace ア
プリケーションを開発するには、DB2 Everyplace の Java 用 JDBC インターフェースと一緒に Java
SDK を使用します。以下に、Java による DB2 Everyplace アプリケーション開発の基本ステップ
を示します。
1.
適切な Java パッケージとクラス(java.sql.*)をインポートし、Java アプリケーションに
DB2 Everyplace JDBC ドライバー・クラス(com.ibm.db2e.jdbc.app.DB2eDriver)をロードしま
す。
2.
URL でロケーションを指定してデータベースに接続します(URL は Sun の JDBC 仕様で定
義されています。DB2 Everyplace サブプロトコルを使用します)。
3.
SQL ステートメントをデータベースに渡して結果を受け取り、接続を閉じます。
4.
プログラムを作成したら、他の Java プログラムと同様にコンパイルします。特別な事前コ
ンパイルやバインドのステップは不要です。
- 38 -
7.3 Mobile Application Builder(MAB)
Mobile Application Builder(MAB)は、Palm OS デバイス、または Java アプリケーションが実行
可能なその他のデバイスを対象とする、迅速でグラフィカルなアプリケーション開発ツールで
す。MAB は、フォーム作成ウィザードと完全なビジュアル・オーサリング・ツールを特徴とし
ています。MAB は、コードの記述を伴わないモバイル・データベース・アプリケーションのイ
ンプリメントを実現します。以下に、MAB のサポート対象を具体的に示します。
・
各種デバイスのフォームの視覚的な構築
・
デバイス上の DB2 Everyplace データベース
・
ユーザー定義ロジックのスクリプト記述機能
・
2 バイト文字セット
・
アプリケーションのテストとデバッグにおける他のツールとの統合
迅速なプロトタイピング・ツールとして、MAB は、DB2 Everyplace 表にアクセスする C または
Java のスタンドアロン・アプリケーションを生成します(開発者がコードを書く必要はありませ
ん)。MAB は、データベース結合などのリレーショナル・データベース演算を完全にサポートし
ています。さらに、データベース表定義から直接行う自動フォーム作成をサポートし、パレット
からコントロールを選択して視覚的にフォームを編集することができます。MAB は、ボタン 1
つによるコード生成、グローバル・スクリプト記述、およびカスタム関数のサポートを備えてい
ます。MAB は、アプリケーションのコンパイル、テスト、およびデバッグのために Palm OS お
よび GNU ツールと統合されています。ランタイム・インタープリターが不要なため、ユーザー
はランタイムのパフォーマンス・ペナルティから解放されます。
現在、MAB で利用可能なコントロールのリストは以下のとおりです。
フォーム・ビットマップ
フォーム上のビットマップ・イメージを表示します
ボタン
イベントを実行します
チェックボックス
チェックとクリアの 2 つの状態を示すブール・コントロールです
フィールド
データのエントリーを表示または許可します
グラフィティー・シフト
上方向にペン・ストロークすることでデータ入力中にテキストの大
文字/小文字の変更ができます
インク
BLOB データ型としてシグニチャーを保存する際に使用します
ラベル
1 行の読み取り専用のテキスト・ラベルです
リスト
統計表情報を表示します
ポップアップ・トリガー
ペンでコントロールに触れたときに表示されるドロップダウン・リ
ストの複数の選択肢からの選択が可能です
押しボタン
同じグループ ID を持つ押しボタンの中から 1 つ選択できます
リピート・ボタン
ペンが離れるまでペン・ダウン・イベントで繰返し選択されます
スクロール・バー
フィールドまたはリストで使用します
- 39 -
セレクター・トリガー
長方形のフレームで縁取られたラベルを表示します。表示されたテ
キストの変更を可能にする実行スクリプト・イベントを呼び出しま
す
表 2. MAB で利用可能なコントロール
V7.2.1 以降、いくつかの領域で機能強化が図られています。たとえば、Windows XP で Mobile
Application Builder をインストールして実行することができます。さらに、標準の Palm 時刻/日
付ピッカーおよびカラーとカラー・ビットマップがサポートされています。バーコード・スキャ
ンが実現可能になり、印刷が強化されています。印刷関数によって、Stevens Creek Software の
PalmPrint ソリューションを使用した、ラベルやテキスト・フィールドのコントロールを含む
フォームの印刷が可能になりました(サポートされているプリンターとテクノロジーについては
http://www.stevenscreek.com を参照)。
以下に、MAB V8 の主な拡張機能を示します。
・
MAB が Java 言語のアプリケーション開発をサポートするようになりました。
・
前提となるツールのパスがインストール時に MAB 内で設定されます(変更可能)
。
・
プロジェクト名に新しい接頭部が付きます。
・
MAB インストール・ディレクトリーの構造が新しくなりました。
・ 「File(ファイル)」メニューから最近のプロジェクトを開けるようになりました。
・
物理的削除のオプションが DELETE アクションで利用できます。クライアント(モバイ
ル)データベースに対してのみレコード削除を行うオプションを DELETE レコード・アク
ションに追加できます。
MAB でソリューションを開発する際は、最初にアプリケーションを生成し、次にそのアプリ
ケーションをテストします。アプリケーション、セキュリティー、および同期機能に関するテス
トに成功したら、そのシステムは実稼働に移行できます。
- 40 -
7.4 MAB の適用 - 在宅看護システム
図 9. 在宅看護システムにおける Mobile Application Builder
Mobile Application Builder で設計したこの看護アプリケーションは、在宅の患者を訪問する看護
師が使用するものです。DB2 Everyplace アプリケーションを使用すると、看護婦は以下の機能を
利用できます。
・
名前、住所、電話番号、病状など、患者の一般情報にアクセスできます
・
血圧、脈拍数、体温、体重など、患者の健康状態データを収集できます
・
新しい医療記録に日時のスタンプを自動的に取得できます
・
緊急連絡先のリストにアクセスできます
・
患者情報の新規作成後、グラフィティー画面でユーザーの署名を行うことができます
・
1 日の終わりにモバイル・デバイスのデータを中央データベースと同期させ、モバイル・デ
バイスの患者の状況データで中央データベースを更新し、翌日訪問する患者のリストを取得
します
技術面から見ると、このサンプル・システムは以下の 4 つの表を使用しています。
・
看護師の予約
・
患者のデータと緊急連絡先
・
患者の日々の診療記録
・
患者の緊急連絡先
- 41 -
最初の表では、患者 ID、日付、時刻などの情報を利用できます。2 番目の表は、名前、社会保障
番号、住所、電話番号などの情報で構成されます。3 番目の表は血圧、脈拍数、体温などで構成
され、最後の表は緊急連絡先名とその患者との関係など、患者の詳細情報で構成されます。
- 42 -
8. スケーラビリティーと可用性
モバイル・ソリューションの開発を計画する際は、スケーラビリティーと可用性について考慮
する必要があります。スケーラビリティーと可用性で中核的な役割を果たすのが中間層サー
バーです。
8.1 Websphere
IBM WebSphere Application Server は、トランザクション管理、セキュリティー、クラスタリン
グ、ハイパフォーマンス、可用性、接続性、スケーラビリティーなど、アプリケーション・サー
ビスの完全セットを備えた、多機能な e-business アプリケーション開発環境を提供します。
Websphere を使用すると、サーブレットを統合してその管理機能と調整機能を強化できます。
8.2 同期サーバー・サーブレット
DB2 Everyplace 同期サーバー・サーブレットは、WebSphere サーブレット・エンジン抽出に組み
込まれたサーブレットです。このサーブレットは、クライアントからの要求を待つリスナーを開
始します。さらにこのサーブレットは、中間層サーバーのミラー・データベースからバックエン
ドのデータ・ソースへのレプリケーション、およびその逆方向のレプリケーションを制御しま
す。WebSphere Application Server(WAS)での同期サーバー・サーブレットの構成は、サーブ
レット・エンジン抽出から完全に独立しています。
同期サーバー・データベース DSYCTLDB は 2 台のサーバー間で共有できますが、同時使用はで
きません。現在、DB2 Everyplace 同期サーバー・サーブレットは、WAS 3.5.4 Standard Edition と
Advanced Edition のほか、WAS 4.0 Advanced Edition でも稼働します。V8 では、WAS4.0 で稼働し
ます。WebSphere でインストールされるパッケージには、IBM HTTP Server(Apache server)が含
まれています。
8.3 スケーラビリティーの第 1 レベル
DB2 Everyplace V7.2 の IBM 担当者によるパフォーマンス測定によると、DB2 Everyplace 同期
サーバー・サーブレットは、WebSphere の制御下で、60 人を超えるユーザーが同時に同期を実行
しているときに最高のパフォーマンスを発揮します。この数値は、プロセッサー数、メモリー
量、フィルター基準数、受入済み応答時間などが管理された状態でのベンチマーク・テストで判
定されたものです。この測定はまた、同時クライアントごと、サブスクリプション数ごとのリ
ソース消費や同期データのサイズあたりのリソース消費が WebSphere のフル使用によって減少し
ていることを示しています。
そのため、応答時間を短縮したい場合は、プロセッサーやメモリーのようなリソースの追加投資
を検討する必要があります。したがって、クライアントの実稼働環境が 60 ユーザーに満たない
- 43 -
場合でも、WebSphere とのフル同期実行を検討する必要があります。プロセッサーやメモリーを
追加して、サポート対象の総ユーザー数を増やすこともできます。
8.4 スケーラビリティーの 2 次レベル
1 台の中心的な中間層サーバーの能力を強化するのではなく、アーキテクチャー全体について考
えます。スケールする方法の 1 つに、中間層サーバーの追加があります。DB2 Everyplace V7.2 で
は、中間層サーバーを多数のアプリケーション・サーバーに分割して、1 台のコントロール・
データベース・サーバーと連携させることはできません。ただし、この方式は DB2 Everyplace
V8 ではサポートされています。
V7.2 で実現可能なのは、複数の中間層サーバーをインプリメントし、各サーバーでクライアン
トのサブセットだけをサポートすることです。このシナリオの場合、中間層サーバー当たりの
同時ユーザー数は減少しますが、異なる同期サーバー間での競合解決がなくなる点に留意して
ください。
この方式は、たとえば販売チームが地域別に編成されている場合などに実践できます。各チーム
は、そのチームのローカル・データだけを格納したそれぞれの中間層サーバーを実行できます。
したがって、複数のサーバーに負荷が分散され、各チームは別個のデータで作業するため、競合
解決が回避されます。
8.5 可用性
DB2 Everyplace 環境では、中間層サーバーは利用可能であることが必須の主要リソースです。以
下に、中間層サーバーの可用性の問題に対するアプローチをいくつか示します。
・
同じサーブレットを共有している DB2 Everyplace V8 で実行する WebSphere のインスタンス
を増やします。この場合は、ドメイン・ネーム・サーバーのルーティングまたは Websphere
Edge Server のインプリメントが必要になります。次の図のシナリオは、WebSphere を使用し
た高可用性ソリューションを示しています。
- 44 -
図 10. WebSphere クラスター
同期サーバーのロード・バランシングをサポートするために、WebSphere 4.0 サーバー類縁性、
Network Dispatcher CBR/WET、または Network Dispatcher を使用できます。ユーザビリティーの
点で最適なのは、WebSphere 4.0 サーバー類縁性です。ただし、ユーザーが WebSphere 3.5 のみを
所有している場合は、代わりに Network Dispatcher CBR/WET または NetWork Dispatcher(イント
ラネットに推奨、プロキシー不使用のため)を使用する必要があります。
1 つの Web サーバー、2 つのアプリケーション・サーバー、1 つのデータベース・サーバーが物
理的に独立している 4 台のマシン(マシン B、マシン C、マシン D、マシン E)にそれぞれイン
ストールされます。マシン C と D はサーバーのクラスターを形成します。マシン B の Web サー
バーで受信された同期クライアントからの要求は、WebSphere のコンポーネントである Web サー
バー・プラグインによって、処理のためにアプリケーション・サーバーのクラスターへリダイレ
クトされます。マシン C と D は、それぞれのリソースを管理する管理サーバーを必要としま
す。管理サーバーは、マシン E にあるリポジトリーを使用します。
・
Windows で稼働する Microsoft Cluster Server、AIX で稼働する HACMP のようなクラスター・
ソフトウェアを使用してデータベースの可用性を高めます。上の図では、データベースがマ
シン E に配置されています。クラスター・ソフトウェアを使用すると、マシン C と D に
DB2 を配置し、マシン C または D で実行されるイメージのインスタンスを構成することが
できます。このインスタンスはクラスター管理者が定義します。このインスタンスには、上
の図にあるデータベースがすべて含まれている必要があります。このノードに障害が発生す
ると、DB2 は、アプリケーションに透過的に他のノードを開始します。これらのアプリケー
ションは再接続する必要があります。
- 45 -
9. ソフトウェア配布
この章では、DB2 Everyplace ソフトウェアの配布と構成で使用される方法について説明します。
DB2 Everyplace シナリオの実行に必要な基本ソフトウェアまたはスクリプトを配置する際は、以
下の 2 つのターゲットを区別します。
・
DB2 Everyplace 同期サーバー、WebSphere、および DB2 が配置されるサーバー
・
DB2 Everyplace データベースと同期クライアントが配置されるクライアント
9.1 サーバー
サーバー側では、以下のタスクについて考慮します。
・
DB2、WebSphere などのソフトウェアの配布
・
定義と構成の配布(インスタンス、データベースとその構成、表などのデータベース・オブ
ジェクト、WebSphere 構成など)
サブスクリプションおよびサブスクリプション・セットの定義のように、定義ファイルでは実行
できないタスクもあります。これらの定義では、モバイル・デバイス管理センター(MDAC)を
使用する必要があります。V8 では、MDAC で実行可能な操作をすべて行える XML ベースのス
クリプト記述ツールも使用できます。
Windows 環境における SMS、混合環境における Tivoli Software Distribution など、ソフトウェア配
布では各種機構を利用できます。これらの機構では、スクリプトを配布して以下の作業を行うこ
ともできます。
・
ミラー・データベースの作成
・
データベースとデータベース・マネージャーの構成
・
WebSphere の構成(XMLConfig -import <file> -adminNodeName ...)
重要なポイントは同期の定義です。同期の定義は、ソース、ミラー、コントロールの各データ
ベースに及びます。これらの定義のうちスクリプトで実行可能なのは、バッチ・ファイル
dsyimportusers.bat を使用してユーザーをファイルからインポートすることだけです。
サブスクリプションとサブスクリプション・セットを含むサブスクリプション定義は、通常、
MDAC で行います。DB2 データベースとレプリケーションについて熟知している場合は、サブ
スクリプション定義のスクリプトを記述できます。
DB2 Everyplace バージョン 8 では、XML を使用して定義をエクスポートおよびインポートする
ことも可能です。
- 46 -
9.2 クライアント
クライアント側では、利用可能なソフトウェア配布機構はデバイスのプラットフォームによって
異なります。Palm デバイス用の HotSync®または WinCE 用の MS ActiveSync®のような同期ソフ
トウェアを使用すると、ファイルをデバイスにコピーできます。または、ハードウェア・ベン
ダーが提供するハードウェア・バックアップ・モジュールを使用することもできます。いずれの
場合も、後でクライアントを同期用にカスタマイズする必要があります。
DB2 Everyplace V8 では、各クライアントにそれぞれのコードの更新を配布するために自動配置
等の追加機能を利用できます。したがって、上記のようなコードの配置が必要なのは一度だけで
す。コードに加えられたすべての変更は同期化によって配信されます。
Windows クライアントの場合は、コードを含むデータベースを ZIP で圧縮して送信したり、FTP
転送したりできます。構成は、内部的に個別設定してから提供する必要があります。そうしない
場合は、クライアントで設定が必要になります。事前に個別設定する際は、最初のデータ追加時
に同期させて、その後 ZIP でそのデータを圧縮できます。DB2 Everyplace のアプリケーション
は、DB2 Everyplace 同期機構を使用したファイル・サブスクリプションによって提供することが
できます。
- 47 -
10. セキュリティー問題
データ・セキュリティーはモバイル業界の重要課題です。許可されていないアクセスからデータ
を保護する必要があります。データベース管理者には、モバイル・ユーザーがモバイル・デバイ
スで表示または変更できるデータを制御する能力が必要です。
DB2 Everyplace を使用した有線または無線のモバイル・ソリューションでは、デバイス、トラン
スポート、同期サーバー、ソース・サーバーの 4 つのポイントについてセキュリティー問題を考
慮する必要があります。同期サーバーまたは同期サーバーとデータベース・ソース・サーバー間
のセキュリティー問題は、ここでは考慮しません。2 台の DB2 サーバー間でのデータ処理とデー
タ転送は、DB2 のセキュリティー機構で制御されるからです。したがって、ここではデバイスと
トランスポート層のセキュリティー問題についてのみ詳しく説明します。
10.1 デバイス
ローカル・データベースへのアクセス制御では、以下の 3 つの要因について考慮します。
・
モバイル・デバイスのデータにアクセスするのは誰か
・
アクセス対象のデータは何か
・
許可されているアクセス・タイプは何か
通常、1 つのデバイスは 1 人のモバイル・ユーザーに属します。紛失または盗難にあったデバイ
スのデータは、ネイティブ・デバイス・セキュリティー機能(ユーザー名、パスワード)に
よって保護されます。データへのアクセスは、各ユーザーのユーザー名とパスワードで保護さ
れます。
グループおよびユーザーのアクセスは、同期サーバーの MDAC ツールによって制御されます。
同期サーバーのユーザーは、各自に割り当てられ、受信を許可されたデータ・サブスクリプショ
ンにのみアクセスできます。モバイル・デバイス管理センターを使用すると、アプリケーション
とデータへの共通のアクセス・ニーズをもつユーザー・グループに対して同期サブスクリプショ
ン・セットを定義できます。
同期サーバーの MDAC ツールでは、ユーザー・グループを定義して、異なるアプリケーション
およびデータ・レコードへのアクセス権をグループのセキュリティー・レベルに応じて各グルー
プに付与できます。さらに、ユーザー・グループ別のデータ・アクセスをフィルター技法で指定
できます。サブスクリプション・オブジェクトで定義された、データ表の挿入、更新、削除に関
するユーザー特権に基づいて、グループおよびユーザーごとに変更が行われます。
たとえばデータベース管理者が、ユーザーXYZ がアクセス許可をもつデータを当人だけに提供
する場合、ユーザーXYZ は自分に対して明確に定義されていない情報にはアクセスできませ
ん。したがって、侵入者も同期サーバーから機密データベースにアクセスできなくなります。
- 48 -
同期サーバーに対するクライアントのすべての同期要求は、メッセージ・ダイジェスト MD5 ア
ルゴリズムによって認証されます。最初にクライアント要求は、新しい nonce(期間限定のパス
チケットのようなもの)をサーバーから取得します。後続のすべてのクライアント要求では、
'user:password:nonce'の MD5 ハッシュが認証のために同期サーバーへ送信されます。nonce は、
セッション終了時に無効となります。
追 加 の 保 護 は モ バ イ ル ・ デ バ イ ス を 対 象 と し 、 ロ ー カ ル 表 の デ ー タ 暗 号 化 に よ っ て DB2
Everyplace V8 で実行されます。
10.2 トランスポート層
デバイスとサーバー間のデータ通信は、セキュアなメッセージングとキューイングによって保護
されます。同期サーバーは、対称(共有秘密)鍵暗号化アルゴリズムの DES(Data Encryption
Standard)ソリューションを使用した、ワイヤーを介してのデータ暗号化をサポートしていま
す。暗号化レベルには、56 ビットまたは 128 ビットのデータ暗号化規格を使用できます。
暗号化レベルは、同期サーバーの MDAC ツールでサブスクリプション・オブジェクトを作成す
るときに定義され、モバイル・デバイス上のローカル構成データベースに保管されます。DB2
Everyplace では、同期時のデータ移送に HTTP を使用します。そのため、同期のためにファイア
ウォールと専用のポートをセットアップできます。
このデータ通信は既存のネットワーク・ファイアウォールおよびセキュリティー・テクノロ
ジー・ソリューションと互換性をもつため、Point-to-Point Tunneling Protocol(PPTP)または仮想
プライベート・ネットワーク(VPN)接続によって通信チャネルをさらに保護することができま
す。VPN で採用されている高度な暗号化およびトンネリングによって、組織は、インターネッ
トやエクストラネットのようなサード・パーティーのネットワークによる、セキュアなエンド
ツーエンドの私設ネットワーク接続を確立できます。
A.0 フレームワーク
以下のフレームワークの目的は、DB2 Everyplace を使用したモバイル・プロジェクトを計画、実
行、制御するための実証済みのストラテジーと実践的なアプローチを ISV とプロジェクト・リー
ダーに提供することにあります。
顧客が以下の結果を期待しているプロジェクトでは、さらに DB2 Everyplace の専門家と連絡を
とり、設計内容が現行の DB2 Everyplace リリースで正しく機能することを確認する必要があり
ます。
・
非常に短い同期時間
・
多数のユーザーの並列同期要件
・
デバイス当たり 1 回の同期ステップにおける大容量データの転送
- 49 -
・
データ移送における新テクノロジー(UMTS など)の使用、または市販されている最新モバ
イル・デバイスの使用
以下に示す技法とストラテジーを使用すれば、モバイル・プロジェクトが単純なものであれ複雑
なものであれ、ほとんどの場合顧客の要件を満たすことができます。その主旨は、モバイル・プ
ロジェクトを最初は単純な形で開始して、少しずつ機能を拡張していくことにあります。
DB2 Everyplace のモバイル・プロジェクトを実行するためのこのフレームワークは、以下の章で
構成されます。
・
探求フェーズ
・
計画フェーズ
・
セットアップ・フェーズ
・
テスト・フェーズ
A.1 探求フェーズ
探求フェーズが必要とされるのは、顧客が期待する内容をモバイル・プロジェクトのプロジェク
ト・リーダーが十分に理解して、顧客の期待に応えるモバイル・ソリューションを計画および設
計できるようにするためです。探求フェーズの結果によっては、現行の DB2 Everyplace リリース
では顧客の要件や期待に応えられないことが判明する場合もあることを承知しておいてくださ
い。もちろん、一番良いのはこのフェーズの開始前にそれを認識することです。
たとえば、競馬アプリケーションで、レースの結果をワイヤレスで 5 秒以内に得ることを顧客が
要求したことがありました。現行のワイヤレス・デバイス、その帯域幅、顧客が求めたデバイス
当たり 1 回の同期ステップで交換するデータ量において、DB2 Everyplace V7.2 を使用したワイヤ
レスでは応答時間の要件を満たすことはできませんでした。
モバイル・プロジェクト初期の探求フェーズでは、次項の質問について考察することをお勧めし
ます。モバイル・プロジェクトの設計に着手する前に、回答をできるだけ多く見つけるようにし
てください。下記の質問に対する回答を得てもプロジェクトの要件が特定できない場合は、基本
的な要件が不明瞭な状態でプロジェクトを開始することになります。すなわち、リスクの高いプ
ロジェクトに着手することになります。要件が不明瞭なままプロジェクトを開始すると、何らか
の点でプロジェクトが失敗したり、不十分な結果に終わったりする可能性が増すことを認識して
おく必要があります。
A1.1 明らかにすべき質問
・
顧客の業務、およびモバイル・ソリューションで重要な顧客のデータ・ワークフローについ
て理解していますか?
- 50 -
例:たとえば保険会社の場合は、保険業務分野のモバイル従業員が確認、変更、同期を必要
とするデータは何か、またそのデータは保険業務にとってなぜ重要なのかについて理解する
ようにします。
・
DB2 Everyplace 同期サーバーと同期させるデバイスの総数はいくつですか?
例:600 デバイス
・
アプリケーションのサブスクリプション・セット当たりの最大許容同期時間は何分ですか?
例:3 分
・ 通常、DB2 Everyplace 同期サーバーに接続して同時に同期するユーザー数は何人ですか?
例:最大 50 ユーザーが 1 つのサブスクリプション・セットに対して同時に IBM 同期を実行
します。
・ ソース・データベースの合計サイズはどれくらいですか?
例:300 MB
・
フィルター操作後のミラー・データベースの合計サイズはどれくらいですか?
例:100 MB
・ 複製するすべての表のレプリケーション・サイクルごとに見込まれる、表の数、行のサイ
ズ、行の最大数、およびデルタ情報量はどれくらいですか? デバイス上の索引数とデバイス
上の表の列で作成された索引数は、同期時間の短縮に大きく影響します。
例:
50 表
CLIENTS - 行当たり 4K - 10000 行 - 0.1%
SUPPLIERS - 行当たり 3K - 500 行 - 0.1%
STOCK - 行当たり 1K - 1500 行 - 50%
PRODUCTS - 行当たり 15K - 1500 行 - 10%
ORDERS - 行当たり 4K - 100 行- 100%
NEWCLIENTS - 行当たり 4K - 10 行- 100%
MESSAGES - 行当たりサイズ 5K - 30 行 - 100%
.........................
・
ユーザー当たりの同期ステップで交換される平均の最大合計データ・サイズはどれくらいで
すか?
- 51 -
例:
PRODUCT 表と ORDERS 表だけが頻繁に変更されるものと仮定します。
PRODUCTS - ユーザー当たりソースで 10 行変更
ORDERS - ユーザー当たりデバイスで 100 行変更
4K*100 + 15K*10 = 400K + 150K = 550K
同期サイクルでの平均の最大データ・サイズは 550K になります。
・
サブスクリプションはいくつ使用しますか? サブスクリプション当たりいくつの表が使用さ
れますか? 使用されるサブスクリプションのタイプは何ですか?
例:
サブスクリプション合計:3
JDBC サブスクリプション
45 表(CLIENTS、SUPPLIERS、STOCK、...、PRODUCTS)
アップロード・サブスクリプション
1 表(ORDERS)
アップロード・サブスクリプション
2 表(NEWCLIENTS、MESSAGES)
・
水平または垂直フィルター技法を使用できる表はどれですか?
例:
PRODUCTS - 2 列除去
ORDERS - 1 列除去し、水平ユーザー・フィルターを作成
STOCK - 3 列除去し、水平グループ・フィルターを作成
CLIENTS - 1 列除去し、(ユーザーまたはグループではなく)水平ミラー・フィルター
を作成
・
どのくらいの頻度でレプリケーションを行いますか?
例:毎日夜 11 時にレプリケーションを行います。
・
サーバーへのデバイスの接続にどのタイプのネットワーク接続を使用しますか?(同期時間
に影響)
例:クレードル、シリアル・ケーブル、USB、ワイヤレス・モデム、赤外線
・
どのタイプのネットワークを使用しますか? 複数のタイプを使用する場合は、すべてのタイ
プとそのトポロジーを明記します。
- 52 -
例:
ƒ 簡易:10Mbps ケーブルによる TCP/IP とクレードル
ƒ 複合:TCP/IP 100Mbps(サーバーから外部ルーター)、GSM プロバイダーへの標準
のインターネット・ルーティングと GSM ネットワーク(WAP スタック)、デバイス
に接続されたワイヤレス・モデム。
・
どのタイプのデバイスを使用しますか?
例:
Palm、Symbian、WinCE、Pocket PC など
・
クライアントにおけるネットワークの最大帯域幅はどれくらいですか?
例:デバイスに接続しているモデムのダウンロード速度は 56Kbps、アップロード速度は
21Kbps です。
・ サーバーにおけるネットワークの最大帯域幅はどれくらいですか?
例:
ƒ 契約している ISP プロバイダーでは、ダウンロード速度 1.5Mbps、アップロード速度
500Kbps でしかインターネットにサーバーを接続できません。
ƒ 会社の内部ネットワークを使用し、すべてのユーザーがクレードルに接続している
ため、通常の最大帯域幅は 100Mbps(アップロード/ダウンロード)です。
・
ネットワークの最小および最大の待ち時間はどれくらいですか?
これは、TCP/IP パケットがデバイスからサーバーへ、およびサーバーからデバイスへ転送され
るのに要する時間です。
例:
ƒ (ローカル・ネットワーク)1.356ms
ƒ (会社の標準的なインターネット)240ms
ƒ (GSM + TCP 形式プロバイダー + 会社のローカル・ネットワーク)平均 15 秒
質問によっては、計画フェーズまたはセットアップ・フェーズまで回答が得られない場合もあり
ますが、これらの問題を最初から認識しておくことは非常に重要です。以降の項では、エンド・
ユーザーが迅速な同期応答時間を必要としているモバイル・ソリューションや、クライアントと
ソース間で大量のデータを転送しなければならないモバイル・ソリューションを設計または調整
する際に指針とするストラテジーの概要を示します。
- 53 -
その後で、実際の顧客のプロジェクトで顧客のパフォーマンス要件を満たすために使用したスト
ラテジーの例を示します。
以下の概念のいくつかは、計画およびセットアップの章でさらに詳しく説明します。これらの章
は、説明したストラテジーの中から設計に適用するものを決める際に役立ちます。たとえば、
ソースとクライアント間で転送するデータ量が少ない場合は、同期サーバーとソース・データ
ベースを別々のマシンにインストールしたり、マルチプロセッサー・マシンを使用したり、DB2
のパフォーマンス調整に配慮したりする必要はありません。
A1.2 ストラテジー
同期時間を最小化し、クライアント・デバイス、ミラー・データベース、ターゲット・データ
ベース間での大量データの転送を処理するためのストラテジーを以下にいくつか示します。
・
区分化やフィルター操作を使用して、最小限のデータをエンド・ユーザーに配信します。こ
れにより、エンド・ユーザーは過度のデータ転送によるオーバーヘッドを回避できます。区
分化とフィルターを使用すると、サーバーとクライアント間で転送されるデータ量が減少し
ます。
・
モバイル・デバイス管理センターを使用して、ユーザーをユーザー・グループに分割しま
す。この方法は、データの特定部分の確認と処理を必要とするユーザーの論理グループがあ
る場合に利用できます。たとえば、保険業務分野の従業員が生命保険契約のグループや年金
契約のグループなどを必要としている場合です。
・
複数のコンピューターに同期サーバーをインストールします。これらのすべての同期サー
バーは、1 つのソース・データベースに基づいて複製を行います。このストラテジーは、非
常に大規模なミラー・データベースを使用し、頻繁な並列同期を必要とする場合に適用でき
ます。注:この場合、同期サーバー間の競合解決はなくなります。すなわち、この方法を利
用できるのは、それぞれ異なるデータの確認と変更を必要とする各論理グループにモバイ
ル・ユーザーを分割可能な場合に限られます。
・
ユーザー・グループ当たりのサブスクリプション・セット数をできるだけ少なくします。
・
サブスクリプション・セット当たりのサブスクリプション数をできるだけ少なくします。
・
1 つのサブスクリプションに複数の表を組み込んでパフォーマンスの向上を図ります。
・
読み取り専用データ(モバイル・ユーザーが変更しないデータ)を読み取り専用の表とサブ
スクリプションにまとめてプールします。
- 54 -
・
小規模なミラー・データベースにはサブスクリプション・タイミング・ウィンドウで短いレ
プリケーション・サイクルを使用し、大規模なミラー・データベースには長いレプリケー
ション・サイクルを使用します。
・
同期時間の高速化が見込まれる場合は、クライアント・デバイスのメモリーを増設します。
・
Websphere Application Server を使用してスケーラビリティーを確保します。
・
同期サーバーとデータ・ソースは、別々のマシンにインストールします。
・
同期サーバーをマルチプロセッサー・マシンにインストールし、データベース・マネー
ジャーの構成値 INTRA _PARALLEL を「YES」に設定します。
・
同期サーバーを高位メモリーのコンピューターにインストールして、ページングを回避しま
す。
・
同期マシンでは、他のプログラムを一度にたくさん実行しないようにします。
・
可能な場合は、並列同期を実行するエンド・ユーザー数が増えすぎないようにします。
・
ソリューション設計に起因するユーザー間の競合を回避するようにします。
・
暗号化は一定のオーバーヘッドを伴うため、不要な場合は暗号化を使用しないようにしま
す。
・
最高限度のボー・レートを使用して、デバイスと同期サーバー間でデータを転送します
(GSM を使用している場合など)。
・
高可用性とロード・バランシングを実現するには、WebSphere 4.0 サーバー類縁性、Network
Dispatcher を使用します。
・
パフォーマンスが多少向上するため、DataPropagator サブスクリプションではなく JDBC サ
ブスクリプションを使用します。
・
ソース表、ミラー表、および内部の DB2 Everyplace 表に対しても DB2 ユーティリティ
RUNSTATS、REORGCHK、REORG を使用してパフォーマンスの向上を図ります。
・
ソース・データベースやミラー・データベースの大量データに対しては、以下のインスタン
スまたはデータベース構成パラメーターを調整します。
ƒ
データベース・ヒープ・サイズ
ƒ
バッファー・プール・サイズ
ƒ
アプリケーション・ヒープ・サイズ
- 55 -
ƒ
ロック・リストの最大ストレージ
ƒ
アプリケーションごとの最大ロック
ƒ
ログ・ファイル・サイズ
ƒ
循環ロギング(1 次および 2 次ログ・ファイル)
ƒ
Logretain アーカイブ・ロギング(1 次ログ・ファイルのみ)
・ Configure Performance データベース・ウィザードを使用して、パフォーマンス関連データ
ベースとデータベース・マネージャー構成パラメーターの使用に役立てます。
アプリケーション開発
・ 列の索引を作成し、相対的な演算定数として列を使用します。たとえば、'SELECT ... FROM
T1, T2 WHERE T1.c1 = T2.c2'のようになります。T2.c2 での索引作成は重要です。索引作成に
適した他の候補を以下に示します。
・
ƒ
外部キー列
ƒ
結合列(多くの場合、主キー/外部キー列)
ƒ
順序付けの列
ƒ
フィルター操作の列
索引は必ず保守してください。アプリケーションで UPDATE 演算を使用する代わりに
DELETE および INSERT 演算を多用すると、同期時間が増大します。
・
複数のハンドルで同じ表を参照して、同じ表に対する読み取り/書き込みの競合を回避しま
す。
・
ワイルドカード文字「*」を指定して SQL ステートメントを使用するのではなく、列名を指
定します。
・ 不要になった接続やハンドルは、オープンのまま放置しないようにします。
・ SQL ステートメントを数回必要とする場合は、ExecDirect SQL ステートメントを使用しま
す。ExecDirect の機能は、事実上 PREPARE+EXECUTE と同じです。PREPARE フェーズは
SQL ステートメントをコンパイルし、実行計画を作成します。EXECUTE フェーズは照会計
画を実行します。照会または照会形式を頻繁に実行する場合は、照会実行を PREPARE と
EXECUTE に分けることをお勧めします。たとえば、複数の行を表に挿入するときは、
ExecDirect ではなく PREPARE+EXECUTE を使用するとよいでしょう。同様に、主キー
( "SELECT ... from t WHERE pk = ?" ) で 頻 繁 に 行 を ル ッ ク ア ッ プ す る 場 合 に も
PREPARE+EXECUTE を使用できます。
- 56 -
A1.3 顧客のプロジェクト
この項では、実際に関与した顧客のプロジェクトについて紹介します。顧客の要件、および顧客
の要件を満たすために採用したストラテジーについて説明します。
最初に、顧客の要件と条件を示します。
・
370 ユーザー、最大 50 ユーザーによる並列同期の実行
・
ユーザー当たり 1 日 3 回の同期
・
39 表、最大の表は 48MB
・
6 DataPropagator サブスクリプション、6 サブスクリプション・セット
・
レプリケーション時間は 400 秒
・
1 日当たり 46KB のデータ交換、デバイスで 5KB、ソース・データベースで 30KB
・
デバイス上に 1MB の DB2 Everyplace データベース
・ ソース・データベースのサイズは 200MB
・ ユーザーごとに「ワークプレース」番号フィルターを使用
・ 8MB メモリーの Handspring Visor デバイス、Palm OS、9600bps、GSM によるワイヤレス
・
512MB のメモリー、1 個のプロセッサーを搭載した 1 台の同期サーバー
・
読み取り専用に設定された表なし
この顧客は、バックレベルの DB2 Everyplace リリースを使用していました。デバイス・ユーザー
は、すべてのサブスクリプション・セットの完全同期にユーザー当たり 5 分、25 ユーザーによる
並列同期に 12 分を必要としていました。顧客にとって、この速度はまったく容認できないもの
でした。
さらに、パネル/アクションにおける PDA デバイスのオフラインでのパフォーマンスに 18 秒を
要し、こちらも容認できないものでした。顧客の要件は、受入可能な同期時間として、ユーザー
当たりの同期時間を 1 分以内、25 ユーザーによる並列同期時間を 3 分以内にすることでした。さ
らに顧客は、次のパネルへの移動など、デバイス・アプリケーションのアクションに要する時間
を 4 秒以内に短縮するように要求しました。顧客の要件は、以下の処置によって満たされまし
た。
・ メモリーを 1GB 搭載し、プロセッサー速度を高速化した新しい 4 プロセッサー・マシンを
インストールし、DBM 構成パラメーターINTRA_PARALLEL を「YES」に設定しました。
・
最新の DB2 Everyplace バージョン(7.2.1)をインストールしました。
・
バッファー、ロック・リストなどの DB2 パラメーターを調整し、ロック関連パラメーター
DB2_RR_RS を「YES」に設定しました。
- 57 -
・
Websphere Application Server をインストールし、Websphere で実行する DB2 Everyplace 同期
サーバーをインストールしました。
・
サブスクリプションとサブスクリプション・セットの数を 6 から 3 に減らし、読み取り専用
のすべての表を 1 つのサブスクリプション・セットにまとめました。
・
DataPropagator サブスクリプションを JDBC サブスクリプションに変更しました。
・
同期時間の要件に応じて、3 種類のサブスクリプション・セットに表を分割しました。ある
サブスクリプションは 1 カ月に 1 回、別のサブスクリプションは毎月曜の朝に同期させ、1
つのサブスクリプションのみ毎日数回同期させました。
・
さらに、デバイス・アプリケーションを最適化し、前項で示したアプリケーションの開発ス
トラテジーに関する提案に従いました。たとえば、データベース接続はアプリケーションご
とに 1 回だけにしました。これにより、1 回のデータベース接続でデバイス上のフォームを
多数使用できました。
A.2 計画フェーズ
探求フェーズを完了し、DB2 Everyplace によるプロジェクトの開始を決定したら、次のステップ
はソリューションの計画です。このフェーズでは以下の事項を決定します。
・
開発環境
・
アーキテクチャー
・
推定されるサイジング
・
ロールアウト/インプリメンテーション計画
プロジェクトの開始時には、以下の DB2 Everyplace のインフラストラクチャー・モデルとデー
タ・モデルについて十分に認識しておく必要があります。
・
すべてのデータを配布および収集するデータ・サーバー
・
同期サーバーが配置される中間層サーバー
以降の項では、これらの事項について詳しく説明します。
A2.1 開発環境
前出の章で説明したとおり、DB2 Everyplace には開発環境が組み込まれています。これにより、
柔軟性については制限されます。そのため、スキルおよびターゲットのクライアント・プラット
フォームに応じて適切な開発プラットフォームを選択する必要があります。
- 58 -
A2.2 アーキテクチャーとサイジング
この項では、DB2 Everyplace の機能について詳述するとともに、設計判断が以降のパフォーマン
スに影響を及ぼす領域について説明します。
A2.2.1 グループ数について
グループは管理センターで使用されるオブジェクトの 1 つです。グループは、同じデータ(また
は同じデータのサブセット)とサブスクリプションを共有するユーザーの論理編成でなければな
りません。グループ内の各メンバーは、グループ・フィルター基準で定義されたデータのサブ
セットだけが異なります。
そのため、サンプルの章で示した販売の例では、ある地域の販売員全員がその地域データのサブ
セットを必要としています。この要件は、1 つのサブスクリプションと個別のフィルター基準、
またはより限定されたグループと個別のサブスクリプションで満たすことができます。
クライアント当たりの変更データ量、サブスクリプション数、および同時クライアント数によっ
ては、プロセッサー数やサーバー数の増加が必要になることもあります。環境が複雑なときや
ピーク時の場合、1 個のサーバー・プロセッサーがサポートするユーザー数は制限されます。イ
ンプリメントしたシステムの実際の制限について、パイロット・フェーズでテストする必要があ
ります。
A2.2.2 サーバー数について
この問題には、いくつかの要素が含まれています。各部門のユーザーは自分たちのデータだけを
サーバーに置くことを望んでいるため、各部門がそれぞれのサーバーを持つことを希望している
のかもしれません。あるいは、ユーザーが独立性を求めているため、1 つの地域に 1 台のサー
バーが必要になるかもしれません。この問題は、妥協案として、2 つの地域で 1 つのサーバーを
共有することによって解決可能です。その場合は、1 台のサーバーにユーザー・グループを複数
作成します。
以下に示すのはパフォーマンス関連の問題です。
・
必要とされるレプリケーション間隔
・
クライアントで使用される個々のフィルター
・
サブスクリプションの数
・
並列同期クライアントの数
含まれる要素について知ると、最初のサイジングが大まかな見積もりに過ぎないことがわかりま
す。パイロットの実施をお勧めします。このパイロット・フェーズ時に、ベンチマーク・ソフト
ウェア・ツールを使用した負荷テストを実行できます。
- 59 -
A2.2.3 サブスクリプション数について
サブスクリプション数はデータ・モデルによって異なります。参照保全(RI)関係にあるすべて
の表を 1 つのサブスクリプションに組み込みます。これが最低限の要件です。
データについては、すべての領域でフィルター操作を使用できます。フィルターを設計する際
は、以下の質問を行います。
・
すべての列を必要としますか? データを転送しなければ、トラフィックも生じません。
・
すべての列をクライアントに配布する必要がありますか? クライアント側の表の更新を必要
とする場合でも、すべての列の更新を必要としないときは、すべての列をサブスクライブし
ますが、クライアントへのすべての列の複製は行いません。
・
サーバーのデータのサブセットだけを必要としますか? グローバル・フィルターを設定し、
ソース・データベースからミラー・データベースにサブセットだけを送信すれば、データ量
を削減できます。
・
各クライアントは、各クライアントに複製されるデータのサブセットだけを必要とします
か? その場合は、グループ・レベルでフィルター変数を個別に設定する必要があります。こ
の値は個々のユーザーの値で上書きできます。
販売の例では、地域別の販売チームがその地域の顧客をすべて取得します。これが最初のフィル
ターです。グループ・フィルターには広範な地域の郵便番号を使用することができます。この
フィルターは、範囲をより限定した個別の郵便番号値に置き換えることができます。
A2.2.4 サブスクリプション・セット数について
ユーザーには常にいくつかの選択肢が与えられるべきであることを認識しておく必要がありま
す。変更頻度の高い情報もあれば、特定のデータのみ同期可能にしたい場合もあるはずです。
デバイス・ユーザーは、常にサブスクリプション・セット・レベルで同期を行います。データの
スキップ、リフレッシュ、または同期を、デバイス・ユーザーがこのレベルで決定できます。
A2.2.5 レプリケーションのタイミングについて
レプリケーションのタイミングはいつでも変更できるため、この要因はほとんど計画に影響を及
ぼしません。ただし、レプリケーションの回数を増やすと、サーバーの能力の大部分が消費され
る可能性があります。タイミング値は、ミラー・データベースにつき 1 つだけです。
A2.2.6 ヒント
以下に、覚えておくべきヒントをさらに示します。
- 60 -
・
適切な場合は、読み取り専用のサブスクリプションを使用します。これにより、通信量が減
少します。
・
Put サブスクリプションは一種の JDBC サブスクリプションであり、クライアント・デバイ
スに入力データしかないことを前提としています。このタイプのサブスクリプションでは、
遅延時間とオーバーヘッドが減少します。なぜなら、このサブスクリプションには、中間層
サーバーからクライアントに送信しなければならないデータや情報が存在しないからです。
この技法により、通信上のオーバーヘッドも減少します。もう 1 つのメリットは、レプリ
ケーションの遅延がないことです。データはターゲット表に直接挿入されます。この場合、
複数のユーザーが複数の接続を通じてターゲット表を同時に処理すると、ロッキング競合が
発生する可能性があります。
・
サブスクリプションの数は、必要とするだけの数に抑えます。サブスクリプション・セット
の各サブスクリプションによって、通信のオーバーヘッドが生じます。
・
ソースからミラーへのレプリケーション・フェーズ時におけるフィルター使用は、同期
フェーズ時におけるフィルター使用よりも常に効果的です。一方、フィルターによって、ク
ライアントに送信されるデータ量は減少します。
セットアップの項で説明した、環境やデータベース関連のその他の問題があります。主なハード
ウェアの問題はプロセッサーとメモリーです。大まかに言って、プロセッサー当たり 512MB の
メモリーで開始します。可能な場合は必要と思われるメモリーを増設し、調整を行えるようにし
ます。
A2.2.7 同期時間のチェック
推定される同期時間をチェックします。
上記のすべてのステップが必要になります。分析と注意を要するもう 1 つの環境が、クライアン
トと同期サーバーを結ぶネットワークです。このネットワークは、探求フェーズでチェックしま
す。探求フェーズでチェックしない場合は、ここで行います。これにより、顧客に誤った期待を
持たせずに済みます。
この時点までに収集したすべての情報によって、クライアントに転送されるデータ量がわかりま
す。ネットワークで最も遅いコンポーネントの転送速度を使用すれば、合計の同期時間を推定で
きます。
A2.3 ロールアウト/インプリメンテーション・ステップ
プロジェクト計画は、以下の主要ステップで構成されます。
- 61 -
・
機能テスト:このテストは、データベース設計とアプリケーションの機能に重点が置かれて
います。ここでは、競合とパフォーマンスの問題を回避するために示したすべてのヒントを
検討します。
・
サ イ ジ ン グ ・ テ ス ト : HTTP の 負 荷 を シ ミ ュ レ ー ト で き る 、 Mercury Interactive 社 の
LoadRunner のような市販ツールを利用できます。DB2 Everyplace ラボは、DB2 Everyplace 同
期サーバーの実際の負荷で負荷テストを実施する、他のベンダーのツールと類似したツール
を提供します。
・
パイロット・ロールアウト:このフェーズでは、ユーザーのサブセットを導入して受諾と負
荷のテストを行います。最適化のために、ユーザーの意見は最初から考慮されているため、
このフェーズでユーザーが初めてプロジェクトに関わるわけではありません。
・
インフラストラクチャー・ロールアウト:このフェーズでは、追加のサーバーがセットアッ
プされ、追加のクライアント・デバイスが準備されます。
A.3 セットアップ・フェーズ
この章では、既存環境に基づくセットアップについて説明します。以下の処理の実行時に必要な
詳細事項について説明します。
・
製品のインストール
・
すべてのオブジェクトの定義
・
WebSphere の構成
・
データベースとデータベース・インスタンスの構成
A3.1 インストール
以下の製品を順番にインストールする必要があります。
1.
DB2
DB2 Workgroup Edition は、DB2 Everyplace Enterprise エディションに同梱されています。DB2
Workgroup Edition は、サブディレクトリー.\udbwe に格納されています。
インストール後、いくつかの DB2 環境変数をハードウェアに応じて設定できます。RAID シ
ステムを実行する場合は、DB2_STRIPED_CONTAINERS=ON および DB2_PARALLELl_IO=*
を設定します。
2.
DB2 Everyplace
DB2 Everyplace のインストールでは、デバイスに必要なすべてのファイルも取得します。
DB2 Everyplace は、中間層サーバーに必要なオペレーティング・システムで稼働するマシン
- 62 -
にインストールする必要があります。このサーバーからモバイル・デバイス用のファイルを
配布します。このファイル配布を行うには、Palm 用の HotSync または WinCE 用の MS
ActiveSync®のような同期ソフトウェアを使用するか、ファイルを選択して赤外線技術でそ
れらのファイルをデバイスに転送します。初めて配布を行う場合は、同期ソフトウェアを使
用したほうが容易です。
3.
DB2 Everyplace 同期サーバー
コントロール・データベース DSYCTLDB を作成し、サーブレット、MDAC、必要な他のす
べてのユーティリティーをインストールします。
4.
WebSphere および HTTP サーバー
WebSphere のインストール時には、Web サーバーもインストールする必要があります。
WebSphere に は 、 Web サ ー バ ー と し て IBM HTTP サ ー バ ー が 組 み 込 ま れ て い ま す 。
WebSphere では、WAS という DB2 データベースも作成されます。
これらの製品は、必ず上記の順序でインストールします。前提条件として他の製品を必要とする
製品もあるからです。
A3.2 DB2 Everyplace のオブジェクト
MDAC オブジェクトが計画フェーズ時に定義されている場合は、以下の順序でオブジェクトを
初めてインプリメントできます。
1.
サブスクリプションの作成
2.
サブスクリプション・セットの作成
3.
ユーザーの作成
4.
グループの作成と他のすべてのオブジェクトの追加および有効化
5.
マルチサーバー環境での新規サーバーの指定
多数のユーザーのユーザーID を ASCII ファイルで提供している場合は、ユーティリティー
dsyimportusers.bat を使用してユーザーID をインポートできます。バッチ・ファイルを編集して、
インポート・プログラムが受け入れる変数の数をチェックします(2 つ以上あるはずです)。先
にグループを作成してからユーザーをインポートします。
フィルター操作はどのステップでも実行できます。第 4 章の説明を参照してください。
サーブレットを開始すると、サブスクリプション・オブジェクトの定義がすべてチェックされま
す。問題がない場合はサーブレットが実行されます。
- 63 -
A3.3 WebSphere における同期サーバー・サーブレット
WebSphere における同期サーバーの統合では、ホスト・ノードの管理コンソールに以下の定義が
必要です。
・
ノードでのアプリケーション・サーバーの作成
この定義には、クラスを保持するすべての JAR ファイルのパスと同期サーバーの作業ディ
レクトリーの定義が含まれます。
ƒ
-classpath c:\sqllib\cc\com.jar;c:\sqllib\cc\common.jar;c:\sqllib\cc\db2_udb.jar;
c:\sqllib\cc\navigator.jar;c:\sqllib\cc\repl.jar;c:\sqllib\cc;c:\sqllib\java\db2java.zip;
・
ServletEngine の作成
アプリケーション・サーバーごとに、サーブレット・エンジンが 1 つあります。各サーブ
レット・エンジンは、個別の Java 仮想マシン(JVM)を実行します。ServletEngine は、Web
アプリケーションのグループを実行します。すべてのパスを定義する必要があります。
・
サーブレット・エンジンの下での WebApplication の作成
WebApplication には、サーブレットで使用されるクラスの情報がすべて含まれます。
・
ƒ
C:\DB2Everyplace\SyncServer\Server\classes
ƒ
C:\DB2Everyplace\SyncServer\Server\dsysync.jar
ƒ
C:\DB2Everyplace\SyncServer\Server\jars\xml4j.jar
サーブレットの作成
同期サーバー・サーブレットはここで定義されます。定義にはクラスの名前が含まれます。
IBM WebSphere Application Server(WAS)で使用する同期サーバーのインストールと構成につい
ては、DB2 Everyplace のリリース情報に説明があります。DB2 Everyplace の以下の Web サイト
で、最新のリリース情報をオンラインで参照できます。
・
http://www-3.ibm.com/software/data/db2/everyplace/library.html
リリース情報は、常に最新バージョンを使用してください。
A3.4 データベースとデータベース・マネージャー・パラメーター
インスタンスとデータベースは、デフォルトのパラメーターで作成されます。これらのパラメー
ターがユーザー固有の環境で適切に設定されない場合は、何らかの理由があるものと思われま
- 64 -
す。PAGESIZE などのパラメーターは、事前に設定しておく必要があります。BUFFERPOOL、
LOGFILE、LOGFILESIZE などのパラメーターはいつでも変更できます。
A3.4.1 設計関連のパラメーター
ソース・データベースを独自に作成する際は、以下のパラメーターの基本事項について考慮しま
す。
・
PAGESIZE
このパラメーターは事前に指定する必要があります。4K のデフォルト値を使用しない場合
は、バッファー・プール、表スペース、および一時表スペースを定義するときに PAGESIZE
を指定する必要があります。PAGESIZE を適切に設定すると、入出力が減少します。ペー
ジ・サイズを決定する際は、表の行の長さについて考慮します。
・
EXTENTSIZE
このパラメーターを適切に設定すると、データをより大きなブロックで格納できるため、同
様に入出力が減少します。行サイズをエクステントの倍数に適合させる必要があります。
・
表スペース当たりの表数
その後の調整をどの程度まで細分化するか決定します。各表スペースは、バッファー・プー
ルをそれぞれ保持できます。
これは、データ・モデルに関連して実行可能な、データベース・チューニングの基本サブ
セットに過ぎません。
A3.4.2 パフォーマンス関連のデータベース・パラメーター
以下のデータベース・パラメーターは、パフォーマンス上の理由から値を増やす必要がありま
す。
・
バッファー・プール・サイズ
通常、この値はすべてのデータベースで調整が必要になります。サンプル・データによるテ
ストを除き、デフォルト値はデータベース作業では不十分なことが多いからです。
・
デフォルトのプリフェッチ・サイズ
この値を適切に調整すると、入出力を減少できます。
・
ロック・リスト
データベースのすべてのロックが格納されるメモリー領域です。このサイズが不足すると、
ロック・エスカレーションが発生します。
- 65 -
・
MAXLOCKS
このパラメーターはロック・エスカレーションの発生数を減らします。
A3.4.3 アプリケーション関連のデータベース・パラメーター
アプリケーションのパフォーマンスを最適化するには、以下のパラメーターを調整する必要があ
ります。
・
データベース・ヒープ・サイズの増加(DBHEAP)
・
アプリケーション・ヒープ・サイズの増加(APPLHEAPSZ)
・
アクティブ・アプリケーションの最大数の増加(MAXAPPLS)
これらのパラメーターを使用すると、接続するクライアント・アプリケーションを増やして、
データベースで同時に作業を行うことができます。
以下のパラメーターはデータベースのロギングに属しています。ロギングは常に必要とされるの
で注意してください。ロギングにおける唯一の違いはタイプです。データベースをいつでもリカ
バリー可能にするには、LOGRETAIN リカバリーを使用します。この場合、オープン・トランザ
クションは、次の 2 つのパラメーターで定義された配列に組み込まれます。
・
ログ・ファイル・サイズ(LOGFILSZ)
・
割り当てられたログ・ファイル数(LOGPRIMARY)
A3.4.4 DBM パラメーター
データベース・マネージャー・パラメーターまたはインスタンス関連パラメーターには、以下に
示すように確認が必要なものもあります。
・
MAXAGENTS
・
MAXCAGENTS
データベースを使用する同時クライアント数に影響を及ぼす値です。
・
INTRA_PARALLEL
マルチプロセッサー・マシンでは、このパラメーターを「YES」に設定します。これにより、
DB2 は照会を分割し(可能な場合)
、より速く応答を得ることができます。
DB2 UDB コントロール・センターでも、チューニング・パラメーターを補助するデータベー
ス・レベルのオプションを利用できます。このウィザードでは対象が一部想定されており、アプ
リケーションに関する質問が行われます。このウィザードは、これらの構成パラメーターの適切
な値を指定する際に役立ちます。
- 66 -
A.4 テスト・フェーズ
モバイル・ソリューションのテスト・フェーズを開始する前に、以下のテスト項目について記載
したテスト文書を作成します。
・
テスト目標の明確化
・
テスト・スケジュールの決定
・
テストの従属関係と責任の決定
・
テストの開始/終了基準の決定
・
テストのリソース要件の決定
・
テスト・トラッキング機構と状況レポート機構の設定
テスト計画の目的は、顧客とすべてのプロジェクト・メンバーに、テストの目標、方法論、スケ
ジュール、従属関係、基準、および要件に関する情報を提供することです。発生の可能性がある
不適合のタイプについては、特に注意してください。以下に、その例をいくつか示します。
・
コードの配信日が(テスト期間の%、2 週間、特定の日付)以上外れています。
・
テスト・ケースが計画されていた環境で、現時点では新しいテクノロジーをサポートできな
いことが後日判明しました。テスト・ケースは、この事実の判明前には実行されませんでし
た。
・
指定された機能が撤回されたため、その関連テストを正しく実行できません。
計画の変更または逸脱によってテストの終了日が変更されたり承認された計画が変更されたりし
た場合、このテスト計画は元の承認者全員から再承認される必要があります。変更の規模が小さ
い場合、再承認は必要ありません。
DB2 Everyplace を使用したモバイル・ソリューションのテスト計画では、たとえば次のような主
要項目が考えられます。
・
同期のパフォーマンスを向上させます。
・
モバイル通信用グローバル・システム(GSM)ネットワークによる継続的なトランスポート
層を取得します。ある顧客のプロジェクトでは、ドイツの通信会社が参加することでこの目
標が実現しました。
・ コードの問題を検出し、できるだけ早くフィックスを入手します。
・
すべてのコンポーネントを 1 つにまとめ、システム全体をテストします。これらのコンポー
ネントには、データベース、モバイル・アプリケーション、モバイル・デバイス、DB2
Everyplace、IBM WebSphere、DB2、ハードウェアなどがあります。
- 67 -
・
機能、ユーザビリティー、安定性、およびパフォーマンスを重点的に扱います。
・
モバイル・デバイス・ユーザーの立場で製品を使用します。
・
信頼性、可用性、保守性について検証します。
ƒ
信頼性とは、エンド・ユーザーが認識したり影響を受けたりするエラーおよび障害の発
生頻度のことです。
ƒ
可用性とは、ユーザーのジョブの迅速な実行でユーザーをサポートするシステムの能
力、およびシステムのアクセスと管理の容易さを意味します。
ƒ
保守性とは、エラーを検出して分離し、レポートする製品の能力のことです。保守性は
また、保守によりユーザーの混乱を招かずにエラーを修正できる製品の能力も意味しま
す。
・
添付のマニュアルを用いて顧客が製品をインストールして使用できるかどうか確認します。
・
大容量で長期間実行するストレス・テストを実行します。
・
顧客のシナリオを実行し、製品間の互換性をテストします。
・
各種製品の相互運用性についてテストします。
顧客のモバイル・プロジェクトのパフォーマンス・テスト結果を踏まえて、パフォーマンスにお
ける顧客の要件を満たすために以下の措置を実行しました。
・
垂直区分化と 2 つの水平フィルターをインプリメントして、サーバーとクライアント間の
データ転送量を削減しました。
・
読取り専用の表をいくつか指定しました。
・
1 つのサブスクリプションに複数の表を組み込んでパフォーマンスの向上を図りました。
以下に、テスト・フェーズ時に考慮すべき要点を示します。
・
デバイス・エミュレーターでアプリケーションをテストしてから、モバイル・デバイスをテ
ストするようにします。実際のモバイル・シナリオをシミュレートするには、異なる PC 上
にある複数のエミュレーターから同期を開始して、IBM 同期サーバーに対して同時に同期を
実行します。
・
可能な場合は、最初に MochaSoft でデバイスを試行します。Mocha W32 PPP を使用すると、
シリアル・ケーブルまたは Hot-Sync アダプターを介して PalmPilot または CE デバイスを
- 68 -
Windows 95/98 に直接接続して、ローカル PC 上のネットワーク(インターネット)に直接
アクセスできます。
・
最初に少数の表やサブスクリプションでテストし、その後、顧客の実際の要件にシミュレー
ションを拡大します。
・
最初にローカル・データベースをテストしてから、3 層ソリューション(デバイス-同期サー
バー-ソース・サーバー)をインプリメントします。
・
常に各種コンポーネント間の接続をテストしてから、アプリケーションのテストを開始する
ようにします。
B.0 結論
インフラストラクチャーとビジネス・アプリケーションにおけるモバイル関連(音声とデータ)
の IT サービス市場は、2004 年までに 350 億ドルを超えると業界アナリストは予測しています。
2001 年の全世界におけるモバイル・コンピューティング・デバイス市場の成長率は、およそ
43%でした。2004 年までに、これらのモバイル・デバイスの 50%以上で無線通信が可能になると
アナリストは述べています。
DB2 Everyplace を使用すれば、販売員、調査員、監査員、フィールド・サービス・エンジニア、
医師、不動産業者、保険査定員、その他多くのモバイル環境で働く専門家は、自分たちがどこに
居ても、また目的のデータがどこに保管されていても、それぞれが必要とする重要データと常に
接触を保つことができます。具体的には、企業が DB2 の自社データをモバイル・デバイスや組
込みデバイスに配信することができるようになりました。
DB2 Everyplace を使用すると、モバイル・デバイスからデータベースにアクセスして更新を行う
ことができます。DB2 Everyplace 同期サーバーによって、モバイル・デバイスのデータと社内の
他のデータ・ソースとの同期が可能になります。
さらに DB2 Everyplace は、構造化されたクリーンで完全なデータの収集に一役買います。デー
タ・ウェアハウジングでは必要とされる統合も不要です。機能の追加が必要な場合は、Mobile
Application Builder でモバイル・アプリケーションを容易に作成または拡張することができます。
本書の第 1 部では、DB2 Everyplace の技術的な概要について説明しました。本書の第 2 部では、
ヒントや助言を交えながら、モバイル・プロジェクトを計画、セットアップ、およびテストする
方法のフレームワークについて説明しました。DB2 Everyplace でモバイル・ソリューションを今
すぐ始めてください。理由は以下のとおりです。
・
モバイル・コンピューティング・テクノロジーは、エンタープライズ・アプリケーションで
必要とされるパフォーマンスとキャパシティーのレベルに達しています。
- 69 -
・
ストレージは 512KB から 16MB へ、そしてさらなる大容量へと進化しています(IBM
Microdrive では、ハンドヘルドで 1GB を超えるストレージを実現しています)。
・
デバイスのコストが低下しています。
・
複数のモバイル・デバイス・メーカーがデバイス市場の拡大を積極的に推進しています
(Palm、Handspring、Compaq、HP、Phillips、Psion、Sharp、Nokia、Ericsson、Motorola な
ど)。
・
無線アクセスの増大によって、モバイル・デバイスから企業データへさらに柔軟にアクセス
できます。全世界の無線加入者は 10 億人を超えています。
- 70 -
参考文献
[1] IBM DB2 Everyplace のホームページ:http://www.ibm.com/software/data/db2/everyplace/
[2] 『IBM DB2 Everyplace 同期サーバー 管理ガイド』
、『IBM DB2 Everyplace アプリケーション
開発ガイド』
、『IBM DB2 Everyplace インストールおよびユーザーズ・ガイド』
http://www.ibm.com/software/data/db2/everyplace/library.html
[3] DB2 Everyplace Mobile Application Builder の Web サイト
http://www.ibm.com/software/data/db2/everyplace/mabinfo.html
[4] DB2 Everyplace Forum:
http://netdata.boulder.ibm.com/cgi-bin/db2www/db2everyplacegforum.mac/main
[5] DB2 Everyplace 製品&サービスの FAQ Web ページ
http://www-4.ibm.com/software/data/db2/everyplace/support.html
[6] DB2 Everyplace のメーリング・リスト [email protected]
購読申込先:http://groups.yahoo.com/group/db2everyplace
- 71 -
Fly UP