Delphi / C++Builder / Senchaで実現する変化に強い情報システム
第35回 エンバカデロ・デベロッパーキャンプ

エンバカデロ・テクノロジーズ
日本法人代表 藤井 等

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

今日のトピックの出発点
従来型のアプリケーション••••

Windows PCで使用
RDBMSに接続あるいはローカルストレージにデータを保管
基幹業務の一端を担う

このアプリケーションに対してさまざまな新しい環境が関わりを必要としています。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

2

アプリケーションと外の世界のつながり
従来であれば…

現在は…

• ファイルによるデータ交換• 夜間バッチ• データ転送：• テザリング• アプリ間連携• クラウド：本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

3

簡単な拡張例
 アプリケーションテザリング• 既存アプリケーションにテザリング機能を追加• モバイルデバイスと通信してデータを直接交換

スマートフォンとWindowsアプリケーションが直接通信本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

4

どのような拡張があるか？
 次のような機能が多くの企業で要求されています

モバイルデバイスの利用

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

クラウドサービスとの連携

Ｗebインターフェイス

5PCと直接つなげない場合はどうするか？
 間接的に接続する手立てを考えます

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

6

必要な道具は？

②

多様な接続性をサポートするフレームワーク①

FireDAC

マルチデバイス対応のクライアントアプリケーション構築環境
VCL

FireMonkey

Sencha

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

Enterprise Connectors③

中間層を構築するためのミドルウェア
RAD Server

7

DEMO

同じビジュアルRADの開発パラダイムで多様な選択肢を用意
言語

プラットフォーム
••DelphiC++

WindowsVCL Windowsアプリケーション•••
WindowsmacOSiOS
Android

DelphiC++
FireMonkeyマルチデバイス
アプリケーション

JavaScript
Sencha Ext JS
Webアプリケーション

デスクトップ
タブレット
モバイル（主要なブラウザ、プラットフォームを網羅）

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

••
•

•
••

特性

接続性

Windowsのフル機能を活用可能
Windowsデスクトップだけでなくタブレットにも対応可能
Windows 10に適合したアプリケー
ションを構築可能
旧バージョンのWindowsにも対応

dbExpress
FireDAC

マルチデバイス向けに単一コードベー
スで開発可能センサーなどデバイス機能の活用も可
ローカルストレージの利用も可
セキュアなシステム、オフラインでの利用などに最適

FireDAC

多様なブラウザで動作するモダンなWebアプリケーションを構築可能
高機能なコンポーネントにより、従来のデスクトップアプリで提供していた機能の多くも実装可能
スマートフォン、タブレットにも対応

REST/JSON8ビジュアルRADによって得られるメリット
 適材適所でツール／フレームワーク特性を活かした開発• いずれのフレームワークを用いても、コンポーネントによるビジュアルRADの開発パラダイムを適用可能• ツールの生産性、効率性を最大限発揮

 求められる結果をすばやく獲得• 迅速な開発により動くアプリケーションを短時間で提供• 動くプロトタイプにより、ユーザーのフィードバックを得ながらのアジャイル開発を実践可能

 高い品質とメンテナンス効率を実現• コンポーネントを用いることで、開発効率、品質、メンテナンス効率を劇的に向上

多様なデバイス環境に対して、目的／用途ごとに選択肢があるがいずれもビジュアルRADによる生産性を享受
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

9

DEMO

FireDACによる広範な接続性
FireDAC
データアクセスコンポーネント

VCL Windows
アプリケーション

エンタープライズデータベース

TFDConnection
TFDTableand more…

TFDQuery
FireMonkeyマルチデバイス
アプリケーション

TFDStoredProc

エンタープライズサービス／クラウドサービス

TFDUpdateSQLTFDMemTableTFDBatchMove

RAD Server
アプリケーションTFDLocalSQL：

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

10Delphi / C++におけるFireDACの価値
 多様なデータソースに対する共通のアクセス性を提供• 主要なエンタープライズデータベースを網羅• Teradata、MongoDBなどにも対応• 90以上のエンタープライズサービスへの接続をサポート（Enterprise Connectors）

 従来のDelphi / C++Builderアプリケーションのデータハンドリングの方式をそのまま踏襲可能• TDataSet、TFieldによるデータセットの操作• DB対応VCLコンポーネント、LiveBindingsによる
VCL / FireMonkeyコンポーネントへのデータバインド• サードパーティコンポーネント、レポートツールでも利用可能

FireDACを用いることで、多様なデータソースに同じ方式でアクセスできるため、データソースに対する柔軟性が生まれます
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

11

DEMO

RAD Serverで中間層を構築
エンタープライズデータベース

VCL Windows
アプリケーション

FireMonkeyマルチデバイス
アプリケーション

RAD Server
REST APIEMSパッケージ

EMSパッケージ…

…

EMSリソース

EMSリソース

EMSリソース

EMSリソース

EMS DB• ユーザー管理• グループ情報• 登録デバイス情報

クラウドサービス

IoTデバイス• エッジモジュール情報• プッシュ通知メッセージ

Sencha Ext JS
Webアプリケーション

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

12

エンバカデロが考える中間層の構築
 コンポーネントによるビジュアル開発• サーバーサイドの開発においても非ビジュアルのコンポーネントにより構築手順を効率化• FireDACおよびリモート接続用のコンポーネントを利用可能• データモジュールを使ってドラッグ＆ドロップ開発• コーディング量を最小化しメンテナンス効率をアップ

 フレームワークの機能を利用し配置を容易に• EMSパッケージを配置するだけでREST APIとして公開可能• コネクションプール、認証、ユーザー管理、デバイス管理などのエンタープライズ機能を即利用可能

TFDTableAdapter
TFDSchemaAdapter
TFDBatchMoveJSONWriter
TFDStanStorageJSONLink：

サーバーサイドで必要とされる機能を非ビジュアルコンポーネントとして提供することで、ビジュアル開発のメリットを享受可能に本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

13

Delphi / C++Builder + Senchaで実現できること
80以上の広範なエンタープライズサービス／クラウドサービスに接続

IoTデバイス
多様なIoTデバイスの情報を収集し、情報システムで活用

Windows 10対応のモダンなGUIアプリケーション

エンタープライズサービス／クラウドサービス
デスクトップ

多様なエンタープライズ
データベースにも接続可能
デバイス機能を100%活かせる
ネイティブモバイルアプリ

モバイル

RDBMS
and more…

HTML5ベースのモダンなWebインターフェイス

基幹システムWebクライアント

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

モバイルを含む多様なデバイス向けに企業システムへのアクセス性を提供

従来から稼働している既存の基幹システムを統合

and more…

14時系列で配置してみると…
フェーズ１：現状のシステムと改修検討のためのロードマップ

従来からのWindows
アプリケーション

デスクトップ

Windows 10への対応、あるいは現状システムは塩漬け①

現状はRDBMSとしてOracleを利用

RDBMS

将来的にはRDBMSを変更したい、あるいは複数種類を混在させたい

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

15

時系列で配置してみると…
フェーズ２：中間サーバー層の構築

従来からのWindows
アプリケーション②

既存のデータアクセス部分を中間層に移行するとともにリニューアル
デスクトップ

現状はRDBMSとしてOracleを利用

RDBMS

中間層を構築してデータアクセスを抽象
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

16

時系列で配置してみると…
フェーズ３：モバイルの導入

従来からのWindows
アプリケーション

デスクトップ

現状はRDBMSとしてOracleを利用
モバイルデバイスで一部機能を利用可能に

モバイル

③

RDBMS

社内のモバイル活用の要求に対応

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

中間層を構築してデータアクセスを抽象
17

時系列で配置してみると…
フェーズ４：社内の既存システム資産との連携

従来からのWindows
アプリケーション

デスクトップ

現状はRDBMSとしてOracleを利用
モバイルデバイスで一部機能を利用可能に

モバイル

RDBMS

④

従来から稼働している既存の基幹システムとの連携を実現

基幹システム中間層を構築してデータアクセスを抽象
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

既存システムと連携し業務を効率化
18時系列で配置してみると…
フェーズ５：Webアプリケーションの導入

従来からのWindows
アプリケーション

デスクトップ

現状はRDBMSとしてOracleを利用

モバイル

モバイルデバイスで一部機能を利用可能に

Webブラウザからシステムを利用可能に⑤

Webクライアント

ブラウザからのアクセス要求に対応
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

RDBMS
従来から稼働している既存の基幹システムとの連携を実現

基幹システム中間層を構築してデータアクセスを抽象
19

時系列で配置してみると…
フェーズ６：RDBMSの変更

従来からのWindows
アプリケーション

モバイルデバイスで一部機能を利用可能に⑥

デスクトップクライアント層に影響を与えることなくデータベースの切り替えが可能

モバイル

SQL Serverを新たに導入

RDBMS
従来から稼働している既存の基幹システムとの連携を実現

Webブラウザからシステムを利用可能に

基幹システムWebクライアント

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

中間層を構築してデータアクセスを抽象
20

時系列で配置してみると…
フェーズ７：クラウドサービスの利用

従来からのWindows
アプリケーション

モバイルデバイスで一部機能を利用可能にデスクトップ⑦

クラウドサービスを利用した動的なシステム連携へ
新たに利用開始したクラウドサービスとも統合

モバイル

SQL Serverを新たに導入

RDBMS
従来から稼働している既存の基幹システムとの連携を実現

Webブラウザからシステムを利用可能に

基幹システムWebクライアント

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

中間層を構築してデータアクセスを抽象
21

クライアントサイドで得られる柔軟性
 適材適所のアプリケーション構築技術の適用• Delphi / C++を用いるべきところと、そうでないところの切り分け、割り切りが容易に• ある部分に異なる言語を採用しても、すべてを切り替える必要なし

 既存システム資産を活かした拡張、改良が可能• 「そのまま残す（塩漬け）」という選択から、「残しながら活かす（モダナイズ）」という選択へ• 従来からのアーキテクチャに新しい技術を付加するかたち
での段階的な拡張が可能

既存アプリケーション資産やスキルを活かしながら最新技術やトレンドの要求に対応していくことができます
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

22

サーバーサイドで得られる柔軟性
 任意のクライアントへ接続可能• Delphi、C++、Senchaに加え、Java、.NET、他のWeb技術など• 標準の接続方式で「機能」を利用可能な状態に 多様なシステムに接続できるハブとしての役割• レガシーシステム、クラウドなど多様なシステムをつなぐ役割

 バックエンドシステムの変更に柔軟に対応可能• クライアントには抽象化された「機能」を公開• どのようにそれを実現しているかはブラックボックス化が可能• サーバーサイドの構成や設置場所にも柔軟性が移行プロジェクトや既存システム資産の段階的なリプレースにも有効な手段となります
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

23

BUILDING A FUTURE TOGETHER
未来をともに…
エンバカデロでは「過去を捨てずに未来へ」をモットーに、開発者の皆さんに新しい技術をキャッチアップできる環境の提供に努めています。皆さんのシステム構築を、より円滑に将来にわたってサポートできることを願っています。

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。

24

THANKS!
www.embarcadero.com/jp
第35回 エンバカデロ・デベロッパーキャンプ

本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。