【DO!BOOK・ページリンク】
migaro_tech2012   78 / 100

BOOKをみる

10秒後にBOOKのページに移動します


76 よいのである。これは、OS/400 のバー ジョンアップやDelphi/400 運用版ミド ルウェアのバージョンアップをより容易 にするだろう。 2.DataSnapとは  こういったメリットを持つ3 層アプリ ケーションだが、あまり利用されていな いのはなぜだろうか。それは、アプリケー ションサーバとクライアントPC との間 の通信を実装する手順が容易ではないか らである。  技術的には「CORBA」と呼ばれる分 散オブジェクト技術の仕様があるのだ が、これをアプリケーションに導入しよ うとすると、どうしてもCORBA に関 する専門知識が不可欠となる。つまり、 実現は可能だが敷居が高いというのが本 音だろう。  ところが、Delphi/400には、「DataSnap」 と呼ばれる多層型アプリケーションを構 築するためのフレームワークが搭載され ている。このDataSnap を利用すれば、 Delphi/400 のスキルだけで3 層アプリ ケーションが構築できるのである。  DataSnap を使用して構築する3 層ア プリケーションは、図2 のような構成と なる【図2】。一見すると複雑そうなイ メージではあるが、これらは、通常のア プリケーション同様、コンポーネントを 使用したビジュアル開発で作成可能であ る。  特に、Delphi/400 VersionXE では、 便利なウィザードが使用できるため、よ り容易に作成できるようになっている。 今回は、このDataSnap を使用した3 層 アプリケーションの構築技法を紹介しよ うと思う。  なお、今回作成するサンプルプログラ ムは、ソース1 のDDS より生成された 「得意先マスタ(ファイル名:DTMSCP)」 を使用する。【ソース1】 3. DataSnapサーバ プログラム作成手順  アプリケーションサーバに配置する、 DataSnap サーバプログラムの作成手順を 見ていこう。  まずDelphi/400 を起動したら、[ファ イル|新規作成|その他]より新規作成 メニューを開き、「DataSnap Server」を 選択する。【図3】  するとウィザードが始まるので、次の とおり指定していこう。 @ 第1 画面の「プロジェクトの種類」で は通常の「VCL フォームアプリケー ション」を選択する。今回はサーバプ ログラムも通常のフォームアプリケー ションとして作成する。【図4】 A 第2 画面目の「サーバの機能」画面では、 使用するサーバ機能を選択する。ここ では初期値のまま「プロトコル-TCP/ IP」「サーバメソッドクラス」にチェッ クを付けておこう。もし通信手段にH TTPを使用する場合は、ここで選択 すればよい。【図5】 B 第3 画面目は、通信に使用するポート を選択する。ここも通常は初期値であ る「211」を指定しておけばよいだろう。 もし同じサーバ上に複数のDataSnap サーバプログラムを配置するような場 合には、それぞれのプログラムで異な るポート番号を指定すればよい。【図6】 C 最後の第4 画面目の「サーバメソッド クラスの上位クラス」では、メソッド 等を定義する親クラスを指定する。通 常ここではTDSServerModule を選択 しよう。これを選択すると、2 層アプ リケーション開発においても多用する データモジュールと同様の開発手順が 可能となる。【図7】  以上で、設定が完了である。  ウィザードが完了すると、次の3 つの ユニットを持つプロジェクトが生成され る。 (1) ServerControllerUnit1.pas(DataSnap 本体) (2) ServerMethodsUnit1.pas(サーバ実 装用モジュール) (3)Unit1.pas(メインフォーム)  プロジェクトが生成されたら、ビ ジネスロジックにあたる処理を (2) のServerMethodsUnit1.pas にある TServerMethods1 に作成すればよい。こ こでは、得意先マスタの内容を取得でき るサーバを作成していこう。  ServerMethodsUnit1.pas のデザイ ナを立ち上げ、TSQLConnection、 TSQLTable、TDataSetProvider を貼り 付けて、データベース接続設定を行って みよう。なお、この手順は、データモジュー ルにdbExpress 接続のデータベースアプ リケーションを作成するのと同じである ことも分かるであろう。【図8】  ところで、設定が完了したら、一度 tblDTMSCP のActive プロパティを True に変更して、データベースに正しく 接続できるか確認しておくとよい。無事 に接続確認ができたら、いったん SQLConnection1のConnectedプロパティ をFalseに戻して、接続を切断しておこう。  これだけで、DataSnap サーバプログラ ムの作成は完了である。  完了したらプロジェクトに名前を付け て保存してからコンパイルのうえ、完成 したExe ファイルを実行してみよう。す ると、フォームが1 つ立ち上がるアプリ ケーションが実行されるだろう。実は、 このプログラムが、DataSnap を使用した アプリケーションサーバとなっているの である。  では、このサーバプログラムを立ち上 げた状態のまま、次項からクライアント プログラムを作成していこう。 4. DataSnapクライアント プログラム作成手順  クライアントプログラムは、VCL フォームアプリケーションとして作成し よう。  新規作成後、生成されたForm1 に TClientDataSet、TDataSource、 TDBGrid およびTDBNavigator を貼 り付けて、各コンポーネントの紐付けを 行う。この手順も、dbExpress 接続ア プリケーションで、お馴染みであろう。 ● TSQLConnection コンポーネント  次に、TSQLConnection コンポーネン トを貼り付け、ConnectionName プロパ ティにDataSanpCONNECTION を選 択しよう。実はDataSnap クライアント プログラムは、dbExpress 接続プログ ラム同様、TSQLConneciton で接続を 行うのである。Driver プロパティには サーバ情報を指定すればよい。【図9】