Microsoft PowerPoint - はじめてのDataSnapアプリケーション_

Similar documents
Microsoft PowerPoint - はじめてのDataSnapアプリケーション_

「DataSnapユースケース研究」 多層技術の概要と最適化、実践テクニック

Microsoft PowerPoint - DELPHI�礔.ppt

知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 8.0

Delphi 2010 DataSnap活用ガイド

<リスト1> AD コンバータへのデータの出力例 NEC PC98 用 mov al,22h // CLK -> 1, CS -> 0, DI -> 0 out 32h,al // シリアル ポートにデータ出力 PC/AT 互換機用 mov al,00h // CLK -> 1 mov dx,3fb

20th Embarcadero Developer Camp

t1

Delphi/400 XE5 -こんなに簡単!IBM iスマートデバイスネイティブ開発-

「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

Embarcadero Developer Camp

マルチデバイスに対応した IBMi業務システム開発のポイント

開発者が知りたい実践プログラミングテクニック! ~明日から使えるテクニック集~

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

Webコンポーネントのカスタマイズ入門

WebReportCafe

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

21st Embarcadero Developer Camp T9

VFD256 サンプルプログラム

10th Developer Camp - B5

VB.NET解説

初 めての ios アプリケーション iphone Form TLabel TButton. 図. コントロールの 配 置 Button OnClick Button. 00

目次 目次 準備いただくもの 準備 SQLServer2008 R2 ExpressEdition のインストール インストールの前に インストール 設定一覧 機

1 シミュレーションとは何か?

Developer Camp

25th Developer Camp

新バージョンDelphi/400 XE7ご紹介 - マルチデバイスデザイナ機能で開発効率アップ! -


メール設定

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は

24th Embarcadero Developer Camp

C#の基本

SpringSecurity

Microsoft Word - EdgeV7_Configuration_ULB_v1.2.doc

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 目次 0 はじめに 本文中の記号について Windows Server Failover Cluster をインストールするための準備 Windows Server Failover

Delphi/400開発ノウハウお教えします 情報を守ろう!安全性を高めたWebシステムの構築

在学生向けメールサービス

一般社団法人ビジネス機械・情報システム産業協会

TestDesign for Web

intra-mart Accel Platform

WTM2019SingleSignOn

Managed Firewall NATユースケース

Oracle SOA Suite 11gコンポジットに対するSOASchedulerの構成

10 完了 をクリック 13 このサーバーは認証が必要 をチェックして 設定 をクリック Windows メール Windows Vista に標準のメールソフト Windows メール の設定方法を説明します 1 スタート から 電子メール Windows メール をクリック 11 続いて設定ファ

WebOTXマニュアル

データアダプタ概要

Delphi/400を使用したWebサービスアプリケーション

REX-C56EX FAX送信 第5.0版

メディプロ1 Javaサーブレット補足資料.ppt

Microsoft Word - プリンター登録_Windows XP Professional.doc

iSTAR-2

(1)IE6 の設定手順 (1)IE6 の設定手順 1) 信頼済みサイトの追加手順 1: ブラウザ (Internet Explorer) を起動します 手順 2: ツール / インターネットオプション / セキュリティ メニューを選択します 手順 3: セキュリティ タブの 信頼済みサイト を選択

メール設定 Outlook Express 6 の場合 (Windows 98 ~ XP) Outlook Express 6 の場合 (Windows 98 ~ XP) Windows XP に付属する Outlook Express 6 に αweb のメールアカウントを追加する方法についてご案

SFTPサーバー作成ガイド

東北インテリジェント通信株式会社 御中

28th Embarcadero Developer Camp

インストレーションガイド_WME

Micro Focus Enterprise Developer チュートリアル メインフレーム COBOL 開発 : MQ メッセージ連携 1. 目的 本チュートリアルでは CICS から入力したメッセージを MQ へ連携する方法の習得を目的としています 2. 前提 使用した OS : Red H

Outlook 2016 設定マニュアル 目次 1 POP 系の設定 初めて設定する場合 ( 追加メールアドレスの設定 ) 設定内容の確認 変更 メールアドレス変更後の設定変更 メールパスワード変更後の設定変更

Microsoft Word JA_revH.doc

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

SQL Server データベース接続設定 マニュアル

PowerPoint プレゼンテーション

改版履歴 Ver. 日付履歴初版 2014/7/10 - 目次 1. はじめに クラスター構築の流れ Windows Server Failover Cluster をインストールするための準備 OS のセットアップ時の注意... -

L N P Y F C T V W Z I X Pentomino Form Name Caption Position FormMain podesktopcenter

Windows開発者のためのFireMonkeyモバイル開発入門

IIS8でのクライアント証明書の設定方法

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Seasar.NET入門

Microsoft Edge の場合 (1) Mizdori 無料体験版ダウンロード画面の [ 体験版ダウンロード ] ボタンをクリックします (2) Edge の下部に mizdori_taiken_setup.zip について行う操作を選んでください と表示され ますので [ 開く ] をクリッ

Windows PC VPN ユーザー向け手順書 SoftEther VPN (SSL-VPN) を用いた筑波大学 VPN サービスへの接続方法 学術情報メディアセンター VPN ユーザーマニュアルから Windows PC 向けの情報だけを詳細に説明した設定手順書を作成いたしましたのでご利用くださ

モバイルアプリを Azure で作る - データを扱う Azure Storage を利 してデータを保存する 本稿では PHP と Windows Azure を使って 画像などのファイルを扱うアプリケーションを開発する方法を説明します Windows Azure Platform では データの

目次 1. はじめに ライセンス証書の受領 ライセンス証書に含まれる内容 環境前提条件 準備 インストール環境の確認 ファイル インストール インストール後の Dr

本文中の記号の意味 本文中で使用している記号の意味について以下に示します システムの操作上または処理の手続き上において 特に注意していただきたい事項を記載しています 記載内容を必ずお読みください システムの操作上または処理の手続き上において 参考にしていただきたい事項を記載しています 必要に応じてお

TFTP serverの実装

基幹システムとの連携手法をご紹介 -インターネットEDIとの連携-

[PPD ファイルの生成 ] ダイアログボックスが表示されます 保存先を指定します ( 図では PPD フォルダをHD 直下に事前に作成し指定 ) [PPD の種類 :] の設定は Mac に設定します [OK] ボタンをクリックすると PPD ファイルが 生成されます 指定した保存先に PMP65

Transcription:

第 27 回エンバカデロ デベロッパーキャンプ A2 Delphi/C++Builder テクニカルセッション はじめての DataSnap 2013 年 X 月 X 日 田中芳起 Ver.1.0.0 1 http://www.avsoft.jp DataSnap の概要 多層型のデータベースアプリケーションを構築するためのフレームワーク Delphi3 で実装された技術で Delphi5 までは MIDAS と呼ばれていたが Delphi6 からは DataSnap と名称を変更 Win32 ベースの Windows ネイティブアプリケーション開発を前提とした技術だった Delphi2009 からは COM 依存性を排除して再構築.NET クライアント からも接続可能となった Delphi 2010 からは Windows サービス /Web サービス / インターネットサーバー API/HTTP 認証等をサポート 2 http://www.avsoft.jp 1

はじめての DataSnap 作成するアプリケーションの説明 3 http://www.avsoft.jp アプリケーションの概要 これから作成する DataSnap を使ったアプリケーションは 次の通り クライアントからリクエストを送出し サーバーからの結果をクライアントに表示する プロトコルは TCP/IP を使用する Request Application (Client) Response Server 4 http://www.avsoft.jp 2

はじめての DataSnap サーバーの作成 5 http://www.avsoft.jp 新規プロジェクトを作成 ウィザードを使って新規プロジェクトを作成する [ ファイル 新規作成 その他...] メニューを選択すると 下の画面が表示される 左のペインから DataSnap Server 右のペインから DataSnap Server を選択し OK ボタンを押す 6 http://www.avsoft.jp 3

サーバー機能の選択 DataSnap サーバーに追加する機能を選択する ( 通信 ) プロトコル 認証 サーバーメソッドクラス フィルタ JavaScript ファイル モバイルコネクタ ここでは 標準設定のまま 次へ を押す 7 http://www.avsoft.jp プロジェクト種類の選択 DataSnap サーバーの種類を選択する 作成するアプリケーション タイプを次の 3 種類から選択 VCL フォームアプリケーション コンソールアプリケーション (Windows) サービスアプリケーション ここでは VCL フォームアプリケーション を選択し 次へ を押す 8 http://www.avsoft.jp 4

ポート番号の指定 クライアントからのリスニングを行うポート番号を指定する 前ページで選択した プロトコル のポート番号を指定 ここでは 標準設定のまま 次へ を押す [ ポートのテスト ] ボタンを押すと 指定のポートが使用可能かどうかを確認できる 9 http://www.avsoft.jp サーバー メソッド クラスの上位クラスを指定 サーバーメソッドクラスの上位の型を指定する TComponent TDataModule TDSServerModule ここでは TComponent を選択し 完了 を押す 10 http://www.avsoft.jp 5

サーバープログラムの自動生成 ウィザードで次の3つのユニットが自動生成される [Unit1] unit Unit1; [ServerMethodsUnit1] interface unit ServerMethodsUnit1; [ServerContainerUnit1] uses Winapi.Windows, Winapi.Messages, interface System.SysUtils, System.Variants, unit ServerContainerUnit1; System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; uses System.SysUtils, System.Classes, interface Datasnap.DSServer, Datasnap.DSAuth; type TForm1 = class(tform) type uses System.SysUtils, System.Classes, procedure FormClose(Sender: {$METHODINFO TObject; ON} var Action: TCloseAction); Datasnap.DSTCPServerTransport, private TServerMethods1 = class(tcomponent) Datasnap.DSServer, Datasnap.DSCommonServer, { private 宣言 } private Datasnap.DSAuth, IPPeerServer; public { private 宣言 } { public 宣言 } public type { public 宣言 } TServerContainer1 = class(tdatamodule) var Form1: TForm1; function EchoString(Value: DSServer1: string): TDSServer; string; function ReverseString(Value: string): string; {$METHODINFO OFF} implementation implementation {$R *.dfm} uses System.StrUtils; uses ServerContainerUnit1; function TServerMethods1.EchoString(Value: string): string; end. Result := Value; : DSTCPServerTransport1: TDSTCPServerTransport; DSServerClass1: TDSServerClass; procedure DSServerClass1GetClass(DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); private { private 宣言 } public var ServerContainer1: TServerContainer1; implementation uses Winapi.Windows, ServerMethodsUnit1; {$R *.dfm} 11 http://www.avsoft.jp サーバー コンテナユニットを見てみる (1/2) ウィザードで自動生成される ServerContainerUnit1 には 3 つ *1 のコンポーネントが配置されている TDSServer: すべての DataSnap コンポーネントを結びつけるためのメインのサーバー設定コンポーネント 必ず配置される TDSServerClass: 公開するクラスごとに必要なコンポーネント public なインターフェイスを持つクラスを参照する TDSTCPServerTransport: 転送プロトコルと使用する TCP/IP 等の設定を定義するコンポーネント *1 サーバー機能の選択 でチェックした内容によって配置されるコンポーネントが異なる 12 http://www.avsoft.jp 6

サーバー コンテナユニットを見てみる (2/2) unit ServerContainerUnit1; interface uses System.SysUtils, System.Classes, Datasnap.DSTCPServerTransport, Datasnap.DSServer, Datasnap.DSCommonServer, Datasnap.DSAuth, IPPeerServer; type TServerContainer1 = class(tdatamodule) DSServer1: TDSServer; DSTCPServerTransport1: TDSTCPServerTransport; DSServerClass1: TDSServerClass; procedure DSServerClass1GetClass(DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); private { private 宣言 } public OnGetClass が自動追加されている var ServerContainer1: TServerContainer1; implementation uses Winapi.Windows, ServerMethodsUnit1; {$R *.dfm} Server Class procedure TServerContainer1.DSServerClass1GetClass( DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); PersistentClass := ServerMethodsUnit1.TServerMethods1; end. 13 http://www.avsoft.jp TDSServer コンポーネント すべての DataSnap コンポーネントを結びつけるためのメインのサーバー設定コンポーネント プロパティ / メソッド説明 AutoStart ChannelQueueSize True: TDSServer コンポーネントがロードされたときにサーバーを自動的に起動 送信のキューに入れられるメッセージの数を指定 ChannelResponseTimeout クライアントがレスポンスを返すまで待機する時間を指定 ( 単位 : ミリ秒 ) Started True: DataSnap サーバーを開始されている Start DataSnap サーバーを開始する (AutoStart が False の場合 このメソッドを呼ぶ ) Stop DataSnap サーバーを停止する var MyDSServer: TDSServer; // DataSnap サーバーを作成 MyDSServer := TDSServer.Create(Self); // DataSnap サーバーを開始 if MyDSServer.Started then MyDSServer.Start; // DataSnap サーバーを停止し メモリを解放 MyDSServer.Stop; MyDSServer.Free; 14 http://www.avsoft.jp 7

TDSServerClass コンポーネント リモートクライアントに public メソッドを公開するために使われるサーバーサイドのクラスを定義する公開するクラスごとに必要なコンポーネント LifeCycle Server プロパティ / メソッド説明 インスタンス (Server class) のライフサイクルを指定 Session : DataSnapSession 毎にインスタンスを使用 ( 既定値 ) Server: サーバー毎にインスタンスを使用 Invocation: メソッドの呼び出し毎にインスタンスを使用 DataSnap サーバーを指定 OnGetClass サーバークラスを指定 [OnGetClass の使用例 ] procedure TServerContainer1.DSServerClass1GetClass( DSServerClass: TDSServerClass; var PersistentClass: TPersistentClass); PersistentClass := ServerMethodsUnit1.TServerMethods1; 15 http://www.avsoft.jp TDSTCPServerTransport コンポーネント DataSnap のサーバーとクライアント間の通信を担当し TCP/IP を通信プロトコルとして使用する プロパティ / メソッド説明 AuthenticationManager BufferKBSize Filters MaxThreads PoolSize 認証マネージャを指定 TCP/IPが読み / 書きするバッファサイズを指定 ( 単位 :KB) プロセス内インスタンスに対する DataSnap 通信フィルタを指定スケジューラで許されるスレッドの最大数を指定スレッドプールに割り当てられる最大数を指定 Port TCP/IP サーバーサイドポートを指定 ( デフォルトは 211) Server DataSnap サーバーを指定 16 http://www.avsoft.jp 8

サーバー メソッドユニットを見てみる ServerMethodsUnit1 には サーバー クラスとサーバーメソッドが自動的に追加されている unit ServerMethodsUnit1; interface uses System.SysUtils, System.Classes, Datasnap.DSServer, Datasnap.DSAuth; Server Class type {$METHODINFO ON} TServerMethods1 = class(tcomponent) private { private 宣言 } [ サンプルメソッド ] にチェックを付けると... public { public 宣言 } function EchoString(Value: string): string; function ReverseString(Value: string): string; {$METHODINFO OFF} implementation uses System.StrUtils; function TServerMethods1.EchoString(Value: string): string; Result := Value; function TServerMethods1.ReverseString(Value: string): string; Result := System.StrUtils.ReverseString(Value); end. 17 http://www.avsoft.jp サーバー メソッドの追加 サーバー クラス (TServerMethods1) にメソッドを追加する [ サーバー クラス ] {$METHODINFO ON} TServerMethods1 = class(tcomponent) private { private 宣言 } public { public 宣言 } function EchoString(Value: string): string; function ReverseString(Value: string): string; 追加! function Add(a, b: Double): Double; function Dic(a, b: Double): Double; function Mult(a, b: Double): Double; function Sub(a, b: Double): Double; {$METHODINFO OFF} [ 追加したサーバー メソッド ] function TServerMethods1.Add(a, b: Double): Double; Result := a + b; function TServerMethods1.Dic(a, b: Double): Double; Result := a / b; 18 http://www.avsoft.jp 9

インスタンスを停止するコードを付加する フォームを閉じる前に DataSnap サーバーのインスタンスを停止させるコードを追加する uses ServerContainerUnit1; *1 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); ServerContainer1.DSServer1.Stop; *1 uses に ServerContainerUnit1 を追加する 19 http://www.avsoft.jp はじめての DataSnap クライアントの作成 20 http://www.avsoft.jp 10

新規プロジェクトを追加 プロジェクトグループにクライアントの新規プロジェクトを作成する プロジェクト マネージャのプロジェクト グループ名を右クリックし 新規プロジェクトの追加 を選択 左のペインから Delphi プロジェクト を選択 右のペインから FireMonkey デスクトップアプリケーション を選択し OK ボタンを押す 21 http://www.avsoft.jp FireMonky アプリケーションを作成する FireMonkey アプリケーションの種類を選択する HD FireMonkey アプリケーション を選択し OK ボタンを押す 22 http://www.avsoft.jp 11

FireMonky アプリケーションを作成する コントロールを Form に配置する プロジェクトとプロジェクト グループを保存する 23 http://www.avsoft.jp DataSnap クライアント クラスの作成 重要なポイントは サーバーで実装されているすべてのインターフェースを作成すること プロジェクト グループでサーバー プログラムを選択し デバッガを使わずに実行 で起動する 24 http://www.avsoft.jp 12