自社開発に使えるWebアプリフレームワーク Adobe ColdFusionの真価を理解する

インソース開発の課題を解決するAdobe ColdFusion

多くの企業において、社内で利用する業務アプリケーション、あるいは外部にサービスを提供するためのWebアプリケーションを開発する際に、外部のシステムインテグレーターなどへ開発を委託することが当たり前になっています。アプリケーション開発に求められるスキルやノウハウを蓄積するのは困難であることから、自社で開発するよりも外部に委託した方が効率的であるという判断でしょう。

ただ一方で、要件定義が不十分で必要となる機能がすべて網羅されていない、あるいはその都度コストが発生するため機能追加などが行いにくいなどといった不満を感じているユーザー企業が多いのも事実です。そこで近年のトレンドとなりつつあるのが、自社で必要なアプリケーションを開発するインソース開発です。自社開発であれば、認識の齟齬によって必要な機能が網羅されていないといったミスも起こりにくく、また現場の意見に応じたアップデートや機能追加も柔軟に行えるといったメリットがあるためです。

ただ自社開発を行うということになれば、JavaやC#といった言語を覚えたり、あるいはアプリケーション開発のためのフレームワークの知識を蓄積したりする必要があり、これが大きな障壁となっていました。この壁を乗り越えるために活用したいのが、アドビシステムズの「Adobe ColdFusion」です。

HTMLに似た言語体系で習得が容易なCFML

ColdFusionの大きな特徴として、HTMLと同じタグ言語である「CFMLColdFusion Markup Language⁠」を使ってプログラミングを行えることが挙げられます。多くの人にとってなじみのあるHTMLに似た言語体系であることから、HTMLを理解している人であればCFMLの考え方にすんなりなじむことができるでしょう。これは、HTMLと比較して独特な表記でプログラミングを行う、JavaやC#、あるいは各種LL言語を使うWebアプリケーションフレームワークに対するアドバンテージだと言えます。

多様なタグや関数が用意されており、複雑な記述をすることなく高度な機能が利用できる点も、ColdFusionの大きな強みになっています。たとえば以下のサンプルコードです。

<cfquery name="クエリ名" datasource="dsn">
SELECT * FROM PRODUCT
<c/fquery>

このサンプルでは、<cfquery>というタグを使ってデータベースにアクセスし、その中で「SELECT * FROM PRODUCT」というSQL文を発行しています。SQLの知識は求められますが、JavaやC#よりも圧倒的に手軽かつ少ないコード量でデータベースから必要なデータを取得するためのコードを記述することができます。

さらにColdFusionではCFMLとHTMLを混在して書くことが可能であり、CFMLで処理した内容をHTMLで整形して出力するといったことを1つのファイル内で記述できます。つまりサーバーサイドとフロントサイドを意識せず、Webアプリケーションのプログラミングが行えるというわけです。これも利点の1つでしょう。

グラフやPDF出力もタグで簡単に実現

データベースの接続以外にも、ColdFusionには高度な処理を手軽に実現できるタグおよび関数が多数用意されています。たとえば電子メールを送受信するための<cfmail>や<cfpop>、グラフを表示する<cfchart>、表計算ソフトのExcelで作成したファイルの入出力を可能にする<cfspreadsheet>などがあります。

cfmailでメールを受信(送信)しているサンプルコード
メール送信

<cfmail subject="メール件名" from="差出人メールアドレス"
    to="送信先メールアドレス"> 
メール本文
</cfmail>
メール受信
<cfpop action="getAll" server="接続先のPOPサーバー"
    username="POPユーザー" password="パスワード"
    name="qGetMailData">

アプリケーションを開発する際、処理した内容をメールで送信して履歴として残す、あるいはデータベースから取り込んだ数値をグラフ化するなどといった要件は珍しくないでしょう。また開発するアプリケーションの内容によっては、データの入力や確認は普段から使っているExcelで行いたいといった要望を受けることもあります。ColdFusionであれば、手間をかけずにこれらのリクエストに応えられるというわけです。

Excelファイルの取り込み(書き出し)のサンプルコード
Excelファイルからデータを取り込む

<cfspreadsheet action="read" src="読み込むXLSまたはXLSXファイル"  
  query="qSheetData" headerrow="1" excludeHeaderRow="yes" />
Excelファイルにデータを書き出す
<cfspreadsheet action="write" filename="保存するxlsまたはxlsx"
overwrite="yes" query="qSheetData" />

ColdFusionが提供する機能の中で、特に見逃せないものとしてはPDF出力機能があります。<cfdocument>というタグで括った内容をPDFとして出力するという機能で、ColdFusionの機能を使ってデータベースからデータを取得し、それを整形してPDFに出力するといった仕組みを簡単に実装することができます。売上データを集計してレポートを作成する、あるいは見積書や請求書、経費精算のための伝票など、帳票を出力したいといった場面で便利でしょう。

cfdocumentでPDF出力を行っているサンプルコードと画面キャプチャ
<cfquery name="qUriage" datasource="XXXX">
月別の売上額を取得するSQL
</cfquery>

<cfdocument format="pdf" >

<html>
<head>
<title>XXXXX売上報告</title>
</head>

<body>

... 略 ...

<h4>記</h4>

<table border="1" width="250" align="left">
  <tr>
    <th>売上月</th>
    <th>売上額</th>
  </tr>
  <cfoutput query="qUriage">
    <tr>
      <td>#qUriage.URI_TUKI#</td>
      <td align="right">#LsCurrencyFormat(qUriage.M_GEN_TAN)#</td>
    </tr>
  </cfoutput>
</table>

<cfchart font="arialunicodeMS" chartwidth="450" chartheight="320"
format="jpg">
 <cfchartseries type="bar" query="qUriage" valuecolumn="M_GEN_TAN" itemcolumn="URI_TUKI" label="売上額" >
</cfchart>


</div>
</body>
</html>
</cfdocument>
画像

さらにColdFusionには、Javaのライブラリを呼び出して利用するための仕組みも用意されています。これにより、高い拡張性と柔軟性を実現していることもColdFusionの魅力です。

多くの企業がColdFusionを使い続ける理由

このColdFusionを実際に業務で活用している企業の1社がエン・ジャパン株式会社です。同社では1995年にColdFusionを導入し、現在では社内システムの約9割で活用されています。ColdFusionを使い続ける理由として挙げられたのは、システムのアップデートや改修が容易であるという点です。人材業界は成長産業であるが故に、景気変動や法制度の改正などといった外部要因により、組織・体制や業務プロセスが頻繁に変更されます。それに合わせて、現場を支える社内システムもつねにアップデートすることが求められますが、ColdFusionであれば容易に対応できるというわけです。

社内システムを開発する際、要件定義の段階でユーザーが必要とするすべての機能が明確化することはまれで、実際には開発途中やカットオーバー後も新たな機能の実装や既存機能の修正が求められることが少なくありません。このとき、開発や改修が容易なColdFusionであれば、ユーザーの希望に迅速に対応し、システムをブラッシュアップすることが可能です。

エン・ジャパン様事例資料の裏面の図
エン・ジャパン様事例資料の裏面の図

同じくColdFusionを社内システムの開発などに役立てているのが、ルネサスエンジニアリング株式会社です。同社は社内で利用するヘルプデスクシステムやワークフローシステムなどをColdFusionを使って開発しており、現場の意見をすぐに採り入れられるのでユーザーにも喜ばれていると評価します。また開発生産性が高く、他言語よりも開発工数を抑えられる点も大きなメリットだと言います。

ルネサスエンジニアリングでは、現在でもColdFusionを使ってさまざまなシステムが開発されています。最近では、電子化した書類をすばやく検索できるシステムをほぼ1人で開発したとのこと。同社において、今後もさまざまな領域でColdFusionが活用されることは間違いなさそうです。

ルネサスエンジニアリングサービス様の事例資料で掲載されている、文書検索システム
ルネサスエンジニアリングサービス様の事例資料で掲載されている、文書検索システム

無償で使えるDeveloper Editionも提供

Java EEをベースとした多くのWebアプリケーションプラットフォーム、あるいはASP.NETなどと異なり、Adobe ColdFusionは有償の製品となります。ColdFusionを利用してシステムを運用するには、大規模環境向けの「Enterprise Edition」と、機能を抑えることで低価格化した「Standard Edition」のいずれかのライセンスを購入しなければなりません。ただ、言語の習得が容易であり、開発工数も削減できることを考えれば、ColdFusionが一概に高いとは言えないでしょう。

なおColdFusionには無償で利用できるDeveloper Editionもあり、開発のためだけにライセンスを購入する必要はありません。実際にColdFusionでどういったことができるのか、まずはDeveloper Editionで試してみてはいかがでしょうか。

さて、ColdFusionのファーストバージョンがリリースされたのは1995年で、これまで着実にバージョンアップが重ねられてきました。そして2014年4月末には、最新版となる「Adobe ColdFusion 11」がリリースされています。HTML5やWebSocketなど、最新のWeb技術への対応を強化したほか、CFMLをベースにモバイル向けのWebサイト構築やアプリケーション開発を強力に支援する「Adobe ColdFusion Builder 3」を無償でバンドルするなど、さまざまなアップデートが図られています。またHTMLからPDFへ変換する際に使われるエンジンを刷新し、変換精度を高めていることも新バージョンのポイントになっています。

このようにColdFusionは、よりシンプルにWebアプリケーションを開発するためのプラットフォームとして進化し続けています。特にシステム開発を極力内製化したいと考えている企業にとっては、ColdFusionは課題解決につながるソリューションだと言えるでしょう。

協力
株式会社サムライズ

おすすめ記事

記事・ニュース一覧