Delphi / C++BuilderアプリケーションをWebアプリケーションに拡張する

by Feb 19, 2018

既存のC/Sアプリケーションは引き続き利用したいものの、Webブラウザによるアクセスや、一部機能を社内の別システムや社外システムと連携させたいといった要求が上がることがあると思います。このようなときに、Delphi / C++Builderでは、既存アプリケーション資産を有効に活用しながら拡張する手法を選択できます。

また、新たにエンバカデロの開発ツールラインナップに加わったSenchaを用いると、効率的にモダンなWebアプリケーションを構築できるわけですが、そのバックエンドとして既存のDelphi / C++Builderアプリケーションを拡張するという手法を選択できます。

Senchaとは

まず、Webアプリケーション開発プラットフォームとしてのSenchaについて簡単に紹介しておきましょう。Senchaは、JavaScriptベースのWebアプリケーション構築フレームワークで、Sencha Ext JSと呼ばれるフレークワークがその中核です。Ext JSには、豊富なコンポーネントが用意されており、グリッドやチャートといったC/Sアプリケーションでもなじみのある高度なユーザーインターフェイスを簡単に作成できるようになっています。

ユーザーインターフェイスの構築はコードベースを行うことも可能ですが、Sencha Architectと呼ばれるビジュアルツールを用いると、DelphiやC++Builderと同じように、コンポーネントのドラッグ&ドロップ、プロパティ/イベントの設定という効率的な手法で、Webアプリケーションを構築できます。

Senchaは基本的にクライアントサイド(ブラウザ)で動作します。高度なユーザーインターフェイスは、JavaScriptとHTML5によって実現されており、主要なブラウザ、デスクトップPC、タブレット、スマートフォンなど、さまざまなデバイスで最適な動作をします。Senchaが扱うデータは、「Model」「Proxy」「Store」と呼ばれるオブジェクトによって管理します。これらオブジェクトにより、Senchaアプリケーションは、Web APIを通じてJSON形式のデータを取得し、UIに表示、編集、更新することができます。

Senchaはデータベースや企業システムからのデータ取得、更新を、こうしたオープンな仕組みによってサポートしており、特定のバックエンド実装に依存しないようになっています。

Delphi / C++Builderアプリケーションとの接続

Delphi / C++Builderも、Senchaと接続するためのWeb APIを構築できます。そこで使用するデータ形式もJSONであり、最新バージョンではSenchaでより扱いやすいJSON形式の作成もサポートしています。

既存のDelphi / C++Builderアプリケーションから見れば、Senchaアプリケーションもクライアントのひとつであり、同じようにC/Sアプリケーションの構成に組み入れることができます。ただし、Web APIはデータベースとクライアントの中間に位置する「中間サーバー」として構築する必要があり、この部分に、Delphi / C++Builderのサーバーサイドアプリケーション構築技術を用いることができます。

Delphi / C++Builderでは、REST/JSONによるWeb APIを構築/運用するための技術としてRAD Serverが提供されています。RAD Serverを用いれば、データモジュールへのドラッグ&ドロップ操作でロジックコンポーネントを配置し、プロパティ/イベントを設定する効率的なビジュアル開発の手法で、カスタムWeb APIを作成することができます。RAD Serverには、コネクションプールを用いた効率的なFireDACの使用、ユーザー認証やモバイルアクセスのサポートなど、実用的なサーバーサイドアプリケーションを構築するために必要とされる機能があらかじめ用意されています。

RAD Serverによって作成されたWeb APIによって既存システムへのアクセス性を提供すれば、SenchaによるWebアプリケーションが既存のC/SシステムのWeb拡張として機能するようになります。

具体的な手法を知るには…

Delphi / C++BuilderアプリケーションをWeb拡張するその具体的な手法を学ぶには、2018年3月15日、東京・秋葉原のUDX GALLERY NEXTで開催される「第35回 エンバカデロ・デベロッパーキャンプ」へお越しください。このイベントでは、Delphi / C++BuilderとSenchaを組み合わせた実践的な開発手法をご紹介する予定です。

「第35回 エンバカデロ・デベロッパーキャンプ」の詳細はこちら >

関連情報