ColdFusion MX and the J2EE Architecture ホワイトペーパー

ColdFusion MX + J2EE Architecture
ホワイトペーパー
© 2003 Macromedia, Inc. All rights reserved.
本ドキュメントに記載される内容は、本ドキュメント作成時点での本件に関する Macromedia の見解を示したもの
です。Macromdeia は、市場状況の変化に対応する必要がありますが、それは Macromedia の義務と解釈されるも
のではなく、作成日以後の本ドキュメント情報の正確性に関しては、Macromedia の保証するところではありませ
ん。
本ホワイトペーパーは、情報の提供のみを目的としたものであり、Macromeida では、本ドキュメントにおいて一
切の保証、明示、示唆を行っておりません。
Macromedia®、Macromedia ColdFusion®、Macromedia Dreamweaver®、Macromedia Fireworks®、
Macromedia Freehand®、および Macromedia Flash・ は米国または他国における Macromeida, Inc の商標または
登録商標です。本ドキュメントに記載されるその他の社名、製品名は、各所有者の商標です。
Macromedia, Inc.
600 Townsend Street
San Francisco, CA 94103
415・252・2000
マクロメディア株式会社
東京都港区赤坂 2-17-22 赤坂ツインタワー本館 13F
 2002 Macromedia Inc. All rights reserved.
目次
J2EE プラットフォームの利点と弱点 ..................................................................................... 4
J2EE : パワフルなアプリケーションプラットフォーム ...................................................... 4
迅速な Web 開発を実現するプラットフォームとしての J2EE .......................................... 5
まとめ .................................................................................................................................... 7
ColdFusion MX と J2EE プラットフォーム .......................................................................... 8
ColdFusion MX : J2EE 上での迅速な Web 開発 ............................................................... 8
ColdFusion MX : エンタープライズ IT のニーズにお応えする製品.................................... 9
まとめ .................................................................................................................................. 10
ColdFusion MX : テクニカルオーバービュー .........................................................................11
ColdFusion MX アーキテクチャ..........................................................................................11
ColdFusion アプリケーションの開発 ................................................................................ 13
ColdFusion の外部アプリケーションとの統合.................................................................. 14
まとめ ...................................................................................................................................16
ColdFusion MX による 投資効率 (ROI) の向上 .....................................................................17
開発チームの有効活用 ..........................................................................................................17
オープンスタンダードの活用 ...............................................................................................17
J2EE インフラの拡張 ..........................................................................................................17
 2002 Macromedia Inc. All rights reserved.
J2EE プラットフォームの利点と弱点
J2EE : パワフルなアプリケーションプラットフォーム
1995 年に Java™ テクノロジーが初めてリリースされたときには、企業 IT やハイテク業界にこれ程大きな影響を与える
ものになることを予測した人はあまりいませんでした。8 年以上に渡る開発期間を経て、Java は Web の新技術から、
世界中の IT 部門を支える戦略的テクノロジーへと発展を遂げました。たとえば、Giga Information Group の最近の調査
で、75% 近くの大企業が Java 2 Enterprise Edition (J2EE) を戦略的なテクノロジープラットフォームと見なしている
1
ことが明らかになりました。
J2EE をアプリケーション開発のための戦略的なプラットフォームとして採用する企業が増加している背景にはさまざま
な理由がありますが、代表的な理由として以下のものが挙げられます。
Java プログラミング言語
オブジェクト指向 (OO : object-oriented) のプログラミング言語である Java は、複雑なアプリケーションを構築するた
めのパワフルなツールを提供しています。また、Java では、C++ や Smalltalk のような初期のオブジェクト指向言語か
ら採用されたコンストラクトのいくつかが簡素化されているため、より短期間で習得でき、ミスの少ないプログラムを作
成できるようになっています。
豊富なランタイムサービス
J2EE プラットフォームを構築するデベロッパーは、アプリケーションをサポートする一連のランタイムサービスにアク
セスできます。それらの中には、スレッド管理やデータベースアクセスのようなローレベルのサービスから、セキュリテ
ィやトランザクションサポートのようなハイレベルの機能までが含まれています。J2EE プラットフォームが提供する共
通のインフラサービスによって、多くの企業がコスト削減とインテグレーションの簡素化を達成しました。標準のインフ
ラを利用することで、企業はサーバーへの投資を一元化し、管理コストを低減できます。さらに、共通の API とコンポ
ーネントインターフェイスを使用して、多様なアプリケーションをさらに容易に統合することが可能になります。
マルチベンダーによるサポート
Java を開発した Sun に加え、BEA、Hewlett Packard、IBM、Macromedia、Oracle、Sun、Sybase を始めとする数
多くのベンダーが Java テクノロジーをサポートする製品を発表しています。同時に、これらの企業は Java プラットフ
ォームの発展にも寄与しており、Java Community Process に機能改訂を提案し、さらに次期以降のバージョンのスペ
ックにそれらの機能改訂を採用するかどうかの投票をするといった活動を行っています。
このように多くの企業がサポートし、オープンな進化が行われていることから、J2EE プラットフォームに投資する企業
は、テクノロジー市場や特定のテクノロジーベンダーの動向による影響を最小限に抑えることができます。加えて、広く
採用されている標準をベースにしてアプリケーション開発を行うことで、いくつもの製品やテクノロジーとの組み合わせ
がきくという大きなメリットを手に入れることになります。
1
2002 年 4 月 Giga Information Group “IT Trends 2002, Midyear Update: Software Infrastructure for Application
Integration and Development”.
Macromedia ColdFusion MX
5
迅速な Web 開発を実現するプラットフォームとしての J2EE
J2EE プラットフォームが今日のさまざまなアプリケーション開発に使用できる汎用的な基盤としての役割を果たす一方
で、Web アプリケーションの開発チームは、プロジェクトやそこで使用されるテクノロジーのタイプによって必要とな
る追加的な要件を抱えています。次のセクションでは、ある架空の (しかしながら、現実のケースに酷似した) イントラ
ネット開発のシナリオを例に、これらの相違点のいくつかを取り上げていきます。
Canton Stewart 社 - あるイントラネット開発のシナリオ
Canton Stewart 社 (架空の会社) は、米国中西部にある製造業の企業に総合的な物流サービスを提供しています。この会
社では、4,000 人以上の従業員が 40 箇所に点在するオフィスで働いていて、オフィス間の通信、さらに荷物の集荷、
保管、配送といった業務に IT インフラをフルに活用しています。
IT インフラは会社の継続的な発展を左右する重要な要素であるという認識から、Canton Steward 社は最近、J2EE を
標準のプラットフォームとして採用しました。IT 部門の責任者は、この決定により同社のアプリケーションポートフォ
リオを再構築するためのオープンインフラが確立され、急速に発展するビジネスにより適切に対応できるようになると確
信しています。この決定は、全システムを会社の標準プラットフォームに移行する作業を必要とします。
同社で重要なシステムの 1 つがイントラネットです。イントラネットのチームは、小規模チームにもかかわらず、ビジネ
スに求められる新しいアプリケーションの開発に成功を収めてきました。それらのアプリケーションの中には、全社的に
広く使われているコーポレートポータルサイト、出荷データへのリアルタイムのアクセスを可能にするカスタマーサービ
スアプリケーション、さらには新入社員向けのオンライントレーニングシステムなども含まれています。こういったプロ
ジェクトの成功は、チームがビジネスのニーズに迅速に対応できたことにあります。このチームの平均的なプロジェクト
期間は 4 ヶ月以内です。
イントラネットチームのマネージャである Bob は、クライアントサーバーと Web、両方のシステム開発プロジェクト
において幅広い経験を持っています。チームには他に 2 人のデベロッパーと、主に Web ページのデザインとレイアウト
を担当するメンバーが 1 人います。デベロッパーはどちらもコンピュータサイエンスを学んだわけではありあせんが、
ASP、ColdFusion、Perl、CGI などのスクリプティングテクノロジーを使用した数多くの Web プロジェクトに実際に
携わってきました。
今回、全社的に J2EE が標準として採用されたことで、Bob のチームは難題に直面することになりました。J2EE への
統合によって、会社のバックエンドシステムへの統合が容易になるというメリットがもたらされるものの、チームのどの
メンバーにも Java アプリケーション開発の経験を持ったものがいなかったためです。チームのデベロッパーにトレーニ
ングを受けさせるための予算を申請することは可能ですが、このテクノロジーの習得には長い時間を要するのではないか
という懸念がありました。さらに、セールスチーム用の新しいレポートシステム、オペレーション部門用の出張申請シス
テム、さらには輸送車両管理部門用の在庫管理システムを開発する仕事も抱えています。
こういった移行そのものによる問題に加え、最大の懸念は、J2EE への移行によってその後チームの開発速度が落ちてし
まうのではないかという点です。Java、JSP、サーブレットは開発するアプリケーションのパワフルな基盤にはなりま
すが、今までのプロジェクトで慣れ親しんできたスクリプティングテクノロジーよりもローレベルのコーディングをかな
り多く必要とします。この問題に対応するため、Bob はチームのメンバーに、今までの高い生産性を維持するために必
要となる追加的なツールやテクノロジーについて調査するよう指示しました。
迅速なアプリケーション開発のサポート
Canton Stewart のシナリオが示すとおり、J2EE プラットフォームはすべての開発現場のニーズを必ず満たすというも
のではありません。多くのチームにとって、生産性の維持は極めて重要な課題です。Bob のチームは、特に厳しい経済
環境のためにリソースがこれまで以上に制限されるという状況下で、数ヶ月単位ではなく数週間以内で新しいアプリケー
ションを開発しなければなりません。迅速なアプリケーション開発 (RAD : rapid application development) をサポート
するテクノロジーを採用することによってのみ、IT 部門はビジネスフローの自動化に貢献する新しいアプリケーション
を求める声に応えることができるのです。
J2EE プラットフォームは堅牢なイントラネットアプリケーションの基盤としての機能を提供しますが、それだけで
Bob のチームが必要とするような RAD 開発をサポートできるということではありません。これは主に、ローレベルの
API と Java プログラミング言語に依存していることによるものです。C++ に比べれば習得しやすいとは言え、Java は
やはりシステムプログラミング言語、あるいは第 3 世代言語 (3GL : third-generation language) と呼ばれている言語で
す。クライアントサーバーツールでは前世代から利用されている RAD 機能を持ち合わせていないのです。
クライアントサーバー時代の第 4 世代言語 (4GL : fourth-generation language) は、2 つの方法で迅速な開発を可能にし
ました。ハイレベルのスクリプティング言語の中に共通の開発タスクをカプセル化する方法と、定型的な開発タスクを自
動化してくれる開発ツールを密接に統合して利用する方法です。企業がインターネットアプリケーションによってもたら
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
6
されるさまざまな機会を存分に活用するためには、パワフルな J2EE インフラの利点を十分に活かせ、同時にハイレベ
ルのツールと言語を使用して迅速にインターネットのプロジェクトを進めることを可能にする追加的な開発パラダイムが
必要となります。
高度なサービスの提供
Bob のチームが開発しているようなアプリケーション (ポータル、レポート、オンライントレーニング) は、Web 開発
における別の重要な要素を浮き彫りにしています。データアクセス、基本的な I/O、エラー処理といった、どのような開
発プラットフォームにも求められる一般的な要件に加え、Web アプリケーションの開発には、インターネットドメイン
特有の側面がいくつもあります。
たとえば、インターネットのサイトやアプリケーションでは、より高度なサービスが次々と一般的になってきました。ほ
とんどの Web サイトが検索用のインターフェイスを提供しており、ユーザーはそれを使って必要なデータに素早くたど
り着くことができます。また、ブラウザーベースのビジネスアプリケーションでは、データビジュアライゼーション (チ
ャート、グラフなど) が急速に普及してきています。
また、最近は Macromedia Flash のようなリッチなプレゼンテーションテクノロジーを用いて、動的なデータとバック
エンドのビジネスロジックを統合することも求められるようになってきました。リッチなユーザーインターフェイスを提
供することで、デベロッパーはよりレスポンスのよい使いやすいアプリケーションを作成できます。このような特徴は、
特に e- ラーニングのような指導用アプリケーションに有効ですが、ビジネス指向のアプリケーションのバリエーション
を広げるためにも利用できます。
この種のさらに高度なサービスは、J2EE プラットフォームでは提供されていません。いくつかのベンダーの製品を組み
合わせることによって、また、特別に開発することによってこういった機能を構成することは可能ですが、開発コストが
かかり、開発そのものも複雑になります。生産性の維持と、コストの抑制を同時に実現するためには、こういったサービ
スが統合された環境が必要になります。
さまざまなタイプのデベロッパーによる開発
最後に、Canton Stewart のシナリオを例にとって、管理面での重要な問題について考察します。管理を容易にするとい
う観点から、多くの企業の IT 部門がアプリケーションインフラの標準化に動き出しています。多くの企業が J2EE プラ
ットフォームを標準として採用しつつありますが、複雑な Java プラットフォームの習得に必要なトレーニングを、すべ
てのデベロッパーに受けさせるための相当な時間と予算を確保できる企業は少ないでしょう。Gartner Group の調査に
よると、スキルのある Visual Basic のデベロッパーが Java を習得するための期間は最大で 10 ヶ月で、この間、コスト
2
はデベロッパー 1 人あたりの直接コストと生産性低下分の損失を合算して 52,000 米ドル以上に達します。
特に、オンラインパブリッシング、データベースレポート作成、データ入力アプリケーションなど、それほど複雑ではな
いアプリケーションを構築していたデベロッパーにとっては、Java プラットフォームの習得に要するコストと時間は簡
単に容認できるものではありません。このようなチームに必要なのは、余分なコストとかけることなく生産性を向上させ、
すぐに成果をもたらしてくれる開発テクノロジーです。同時に、これらのテクノロジーは発展が見込めるもので、デベロ
ッパーがさらにスキルを向上させることで一段と複雑なプロジェクトのニーズにも対応できるものでなければなりません。
2
2002 年 5 月 Gartner Group “The Cost and Risk of Application Development Decisions”
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
7
まとめ
J2EE プラットフォームは、さまざまなタイプのアプリケーションのパワフルで汎用的な基盤となるものの、Web 開発
チームが抱えるすべてのニーズに応えるものではありません。Web 開発において生産性を確保するためには、専用の開
発プラットフォームが必要となります。このようなプラットフォームは、アプリケーションを構築するデベロッパーのス
キルとニーズに合わせてカスタマイズされたものであり、また、Web アプリケーションのための高度なサービスを提供
することで Web 開発固有の要件をサポートするものでなければなりません。さらに、新しいソリューションをタイムリ
ーかつコスト効率よく提供することによってビジネスをサポートする IT 部門であり続けるという IT 管理者のニーズを満
たすことも要求されます。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
8
ColdFusion MX と J2EE プラットフォーム
ColdFusion MX のリリースによって、Macromedia は、J2EE テクノロジープラットフォームを標準とした企業が必要
とする Web 開発ソリューションを提供することになりました。初めて、デベロッパーは、ColdFusion の最大の特徴で
もある高い生産性とさまざまなビルトインサービスの恩恵を受けながら、同時に、J2EE プラットフォームのパワーと柔
軟性をフルに活用できるようになったのです。
ColdFusion MX : J2EE 上での迅速な Web 開発
Macromedia ColdFusion は迅速な Web アプリケーション開発の分野をリードする、実績ある製品です。Fortune 100
社のうち、75 社が ColdFusion を利用しており、最近の調査では、今日企業が使用している Web 開発テクノロジー上
3
位 2 つうちの 1 つとなっています。 Allied Office Products、Bank of America、Boeing、Fodors、Hertz、Jaguar、
Simon & Schuster といった企業が、ColdFusion を使用して、カスタマーサービスアプリケーション、オンラインパブ
リッシュシステム、e ラーニングソリューション、ビジネスレポート作成アプリケーション、B-to-B のエクストラネッ
トなどを構築しています。
ColdFusion MX のリリースによって、J2EE プラットフォームを標準としている企業はすべて、同じ恩恵を受けること
ができるようになりました。J2EE プラットフォームとしては、Macromedia JRun、IBM WebSphere、BEA
WebLogic のいずれでも構いません。ColdFusion MX を導入すると、J2EE サーバー環境に ColdFusion アプリケーシ
ョンの開発およびデプロイメントを行う機能が追加されるため、企業は既存の Java サーバーをさらに拡張することがで
きます。
ColdFusion MX によって、企業は迅速な Web アプリケーション開発の恩恵を受け、さらに、サーバーインフラの統合
と集約も容易になります。その結果、開発・管理コストの削除、柔軟性と対応力の向上がもたらされ、より高い投資効果
を実現することができます。
高速のサーバースクリプティング
ColdFusion MX を利用するデベロッパーは、ColdFusion マークアップ言語 (CFML=ColdFusion Markup Language)
を使ってアプリケーションを構築できます。CFML は、Web 開発用に設計された高度に進化したスクリプティング言語
です。CFML は、タグベースのハイレベルな言語で、頻繁に使われる共通の Web プログラミングタスクをカプセル化
しています。これにより、デベロッパーは、アウトプットループの作成、下位の Web プロトコルへの対応、セッション
やフォームを使った作業など、Web プログラミングに伴う反復的で単純なタスクから解放されます。この結果、デベロ
ッパーが記述するコードの量は少なくなり、作業時間の大半をローレベルの機能構築ではなくアプリケーションのビジネ
スロジック構築にあてることができます。
CFML とあわせて迅速な開発を実現するのは、業界をリードする Web 開発ツールの Macromedia Dreamweaver MX
です。Dreamweaver MX は ColdFusion MX と緊密に連携して、優れたページデザイン機能と、堅牢なコード編集やア
プリケーション開発機能を結び付けます。Dreamweaver MX を利用することで、ColdFusion のデベロッパーはアプリ
ケーションの開発とデバッグを迅速に進め、サーバーの再利用可能なコンポーネントや Web サービスに容易にアクセス
できます。
統合されたサービス
ColdFusion のスクリプティング環境に加え、ColdFusion MX は Web アプリケーション特有のニーズに対応するため
に統合されたサービスを提供しています。たとえば、ColdFusion MX を利用するデベロッパーは、Verity™ フルテキス
トサーチ (全文検索) エンジンを統合して、ドキュメントとデータベース、両方のコンテンツに対するハイパフォーマン
スの検索を実現できます。さらに、ビルトインのチャートおよびグラフ作成エンジンを利用して、プロの使用に耐える優
れた品質を持つビジネスチャートをオンデマンドあるいはスケジュールベースで生成することもできます。各インターネ
ットプロトコルの下位における詳細な処理に時間を費やしたり、手動でサードパーティコンポーネントを統合したりする
手間を省くことができます。
ColdFusion には、サーバーサイド HTTP リクエスト、電子メールの送受信、XML のパースと生成、Web サービスの
利用などのインターネット標準プロトコルに対するサポートも統合されています。これらのプロトコルに対してハイレベ
ルのインターフェイスを提供しているため、リモートシステムとのデータ交換や情報の転送が容易です。
3
2001 年 10 月 Yankee Group “Application Infrastructure Report”
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
9
さらに、ColdFusion には、リッチインターネットアプリケーションの構築を可能にする画期的な新テクノロジーである
Macromedia Flash Remoting へのサポートが組み込まれています。Flash Remoting を使用すると、Macromedia
Flash コンテンツやデスクトップアプリケーションを構築するデベロッパーは、データの要求や ColdFusion サーバー上
の業務コンポーネントの呼び出しを簡単に実行できます。そのため、ColdFusion MX によって、インターネットのメリ
ットを活用し、さらに、デスクトップのリッチなクライアントサイドロジックを利用したアプリケーションを簡単に作成
できます。
このような統合された数々のサービスによって、強いインパクトを持つ Web アプリケーションを迅速に構築するための
パワフルな基礎となります。そして、基盤となる J2EE プラットフォームの利点を活用でき、Web アプリケーション固
有のニーズに対応する革新的な機能も利用できるアプリケーションの制作が可能になるのです。
容易な習得と拡張性
ColdFusion MX はハイレベルのスクリプティング言語を採用しているため、JavaScript、PHP、ASP、VisualBasic な
どのプログラミング言語あるいはスクリプティング言語の知識を持つユーザーであれば、短期間で ColdFusion を習得し、
J2EE プラットフォームで稼動するアプリケーションの構築を始められます。平均的なデベロッパーであれば、1 週間程
度で ColdFusion の基礎を習得し、2 ヶ月以内に使いこなせるようになります。
習得は簡単でありながら、ColdFusion は、再利用可能なアプリケーションオブジェクト作成のためのコンポーネントモ
デル、カスタムエラー処理のための機能、さらには、ロールベースのセキュリティフレームワークなど、上級デベロッパ
ー向けのパワフルなプログラミング機能を提供しています。また、Java サーブレット、JSP、EJB を使用して
ColdFusion 環境を容易に拡張することもでき、Web サービス、COM オブジェクト、CORBA コンポーネントなどと
密接に統合することも可能です。
習得しやすさと生産性の高いスクリプティング環境であるという特徴に加え、さらにパワフルなサービスが組み込まれて
いる ColdFusion MX は、J2EE をプラットフォームとした迅速な Web 開発機能を探している企業にとって理想的な環
境であると言えるでしょう。
ColdFusion MX : エンタープライズ IT のニーズにお応えする製品
開発段階での多くの利点に加え、ColdFusion MX は、企業がアプリケーションに求めるパフォーマンス、管理性、セキ
ュリティを提供しています。ColdFusion MX は企業の既存のインフラにシームレスに統合できるため、既存の資産に投
資することによって新たなアプリケーションを構築することができます。
エンタープライズシステムとの統合
ColdFusion MX は、J2EE 規格に完全準拠するアプリケーションサーバーの Macromedia JRun 4、またはサードパー
ティー製の主要サーバー上にデプロイすることができ、既存インフラに対しておこなってきた投資を無駄にすることはあ
りません。また ColdFusion MX は、Windows、Unix、Linux、といったさまざまなエンタープライズ用オペレーティン
グシステムをサポートしています。
ColdFusion MX はビルトインの接続機能を提供しているので、電子メール、FTP、ファイルサーバーだけでなく、エン
タープライズデータベース、Web サーバー、LDAP ディレクトリといったさまざまなバックエンドシステムとの接続も
可能です。レガシーアプリケーションやパッケージアプリケーションとの統合を目的として、ColdFusion MX は、主要
なコンポーネントインターフェイス (COM、JavaBeans、CORBA) をサポートしており、Java や C++ によるカスタム
拡張機能の開発のための API も提供しています。ColdFusion はまた、インストールされているアプリケーションサーバ
ーの一部として統合されているレガシーサービスを活用できます。このように、ColdFusion を使用するデベロッパーは、
さまざまなバックエンドシステムに容易にアクセスでき、ユーザーが必要とするあらゆるデータや機能を実現できます。
高いパフォーマンスと可用性の実現
スクリプティング機能を使用してアプリケーションを開発する場合にしばしば問題となるのが、パフォーマンスです。
ASP、Perl、PHP、Tcl のようなスクリプティング言語の多くは、実行時に解釈されるため、相当のオーバーヘッドが
発生します。しかし、これは ColdFusion には当てはまりません。
一度デプロイメントが完了してしまえば、ColdFusion で開発されたアプリケーションは Java ですべて開発したアプリ
ケーションと同様、Java のバイトコードにコンパイルされます。このため、ColdFusion は、Sun の HotSpot™ テクノ
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
10
ロジーや IBM を始めとする会社が提供しているハイパフォーマンスの JVM のような最新の Java 仮想マシン (JVM :
Java virtual machine) で利用可能な最適化された機能をフルに活用しています。
基盤となるインフラを補完するために、ColdFusion MX は、クエリやページのキャッシュ機能、インメモリクエリのサ
ポート、コードのプロファイル処理、ボトルネックの特定など、パフォーマンス向上のための機能を提供しています。
J2EE プラットフォーム向けに最適化が行われた結果、ColdFusion MX は ColdFusion のこれまでのバージョンと比較
して顕著なパフォーマンス向上を実現しました。Macromedia の内部ベンチマークによると、ColdFusion MX は、実に
ColdFusion 5 の 150% にあたる高性能を実現しています。
さらに、ColdFusion MX は標準の J2EE コンテナの中にデプロイされるため、ColdFusion 環境全体が、メモリスペー
スやプロセッサなどのサーバーリソースへのアクセスを制御、アプリケーションの起動や停止を行う権限を持つアプリケ
ーションサーバー管理者の制御下に置かれます。また ColdFusion MX は、アプリケーションをそれぞれ独自のサーバー
プロセスとして分離することや、各サーバープロセス間または物理サーバー間のロードバランシング、といったアプリケ
ーションサーバーに内蔵されている高可用性のための機能を利用することができます。
アプリケーションセキュリティの実現
ColdFusion MX には、アプリケーションに対して適切なレベルのセキュリティを実現するためのパワフルなリソースが
含まれています。ColdFusion はサーバー間、さらにはサーバーとクライアント間での SSL 暗号化をフルにサポートし
ており、ネットワークを行き来するセンシティブなデータの保護が可能です。さらに、ColdFusion MX が提供する柔軟
なロールベースのセキュリティフレームワークによって、デベロッパーはユーザーがアプリケーションにアクセスする前
に既存のデータベースや LDAP ディレクトリを使用してユーザーの認証と承認を行うことができます。さらには、
ColdFusion には、サーバーサンドボックス機能が統合されており、管理者は 1 つの ColdFusion サーバー上で複数のア
プリケーションを扱うことができ、さらには、アプリケーションから他のリソースへのアクセスを制限することも可能で
す。サンドボックスによって、データベース、ディレクトリ、ポート、さらには個々の言語要素やタグなど、実質的には
あらゆるサーバーリソースへのアクセスを制限できます。
まとめ
高い生産性と容易な習得性を誇るスクリプティング環境、統合された開発ツール、そして豊富なビルトインサービス、こ
れらすべてを堅牢性に優れた J2EE プラットフォーム上に提供する ColdFusion MX は、Web アプリケーション開発の
ためのパワフルなベースです。また、ColdFusion MX を利用すれば、今日のアプリケーションに求められている高いセ
キュリティ、パフォーマンス、信頼性のいずれを妥協することもなく、J2EE プラットフォーム上の Web 開発をスピー
ドアップできます。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
11
ColdFusion MX : テクニカルオーバービュー
以下のセクションでは、ColdFusion MX を J2EE 構成でデプロイした場合の技術的な概要を紹介します。まず初めに、
ColdFusion MX が J2EE アプリケーションサーバー上にどのようにデプロイされるかを説明し、さらにその後のセクシ
ョンでは、Java、COM コンポーネント、XML データ、Web サービスなどの外部アセットとの統合のために利用でき
る機能や、ColdFusion アプリケーションの内部アーキテクチャについても解説します。
ColdFusion MX アーキテクチャ
J2EE サーバーへの ColdFusion MX のデプロイ
ColdFusion MX は、J2EE 規格に準拠する J2EE アプリケーションです。ColdFusion MX をサーバーコンフィギュレ
ーションでデプロイした場合、ColdFusion MX には J2EE ランタイムが含まれています。このコンフィギュレーション
は、J2EE 環境のメリットを受けながら、容易なインストール、管理作業を実現するものです。
しかし、ColdFusion MX アーキテクチャーに秘められたパワーを最大限に引き出すには、ColdFusion MX を J2EE コ
ンフィギュレーションで使用する必要があります。J2EE コンフィギュレーションを使用した場合、J2EE アーキテクチ
ャーのメリットだけでなく、ColdFusion MX がインストールされている Java アプリケーションサーバーの提供するラ
ンタイムサービスも活用することができます (図 1 参照)。
図 1. ColdFusion MX は、他の Java アプリケーション同様にアプリケーションサーバーのリソースを利用するこ
とができます。
具体的には、ColdFusion MX を J2EE コンフィギュレーションで利用する場合、サーバー管理者は単一のサーバー上で
複数の ColdFusion インスタンスを作成することができ、各アプリケーションをそれぞれのサーバープロセスとして処理
することができます。したがって、一つのアプリケーションで発生したエラーが他のアプリケーションにまで影響を及ぼ
さないようになります。また、セキュリティに関しても大きなメリットがあり、アクセス権のないアプリケーション上で
処理されているデータに対して、他のデベロッパーがアクセスするというようなことが防げます。
ColdFusion MX エンタープライズ版には、J2EE 規格に完全準拠する Java アプリケーションサーバー、Macromedia
JRun のフルライセンスが含まれており、J2EE コンフィギュレーションで ColdFusion MX を利用するためのすべてが
含まれています。また ColdFusion MX は、IBM WebSphere や BEA WebLogic、Sun ONE などといったサードパー
ティー製アプリケーションサーバー上にデプロイすることも可能です。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
12
ColdFusion MX ランタイムサービス
図 2 は、ColdFusion MX のランタイム環境の内部アーキテクチャを表したものです。ここで中核となっているのが、
ColdFusion 言語ランタイムです。サーバーインフラのこの部分が ColdFusion アプリケーションを Java バイトコード
にコンパイルし、その実行を管理するランタイムサービスも提供します。また、HTTP、SMTP、POP、FTP、などの
一般的なインターネットプロトコルとの交信や、データの変形処理および並べ替えといったサービスも、ColdFusion ラ
ンタイムが提供しています。
図 2. ColdFusion MX に含まれる ColdFusion 言語ランタイムが、Web およびリッチインターネットアプリケー
ションにおいて頻繁に使用されるいくつかのビルトインサービス、および ColdFusion アプリケーションを Java
バイトコードにコンパイルします。
ColdFusion 言語ランタイムが提供するローレベルサービスに加え、ColdFusion MX 環境には、ColdFusion アプリケー
ションをサポートするためのハイレベルサービスも多数含まれています。これらの中には、チャートやグラフエンジン、
8
Verity K2 のフルテキストサーチ (全文検索)、Apache Axis ベースの埋め込み Web サービスエンジン が含まれます。
これらのサービスに対しては、ColdFusion スクリプティング環境から、ハイレベルのタグインターフェイスを使ってア
クセスできます。タグインターフェイスは、いずれの ColdFusion アプリケーションの中でも簡単に利用できるものです。
さらに、ColdFusion MX には使いやすいブラウザーベースの管理機能が含まれています。このユーティリティを使えば、
権限を持つユーザーは、セキュリティ設定の調整、新しいデータソースの作成9、アプリケーションのアーカイブ、アプ
リケーションのモニタリング設定など、ColdFusion ランタイム環境そのものを構成できます。ColdFusion 管理者は、
Java サーバー管理者が管理する構成の設定に対するインターフェイスは行いません。
ColdFusion MX アプリケーションのデプロイメント
Web サイトや Java Web アプリケーションと同様、ColdFusion アプリケーションはサーバー上の特定のいくつかのデ
ィレクトリに保存されている 1 つあるいは複数のファイルから構成されています。新しいアプリケーションのデプロイメ
ントや既存のアプリケーションの更新は、ファイルを適切なサーバーディレクトリに配置するだけです。ColdFusion
MX 環境は、新しいファイルを自動的に検知し、変更または新たに追加されたページやコンポーネントを自動的にコンパ
イルします。
ユーザーが ColdFusion アプリケーションの一部である Web ページをリクエストすると、Web サーバーはそのリクエ
ストを ColdFusion ランタイムが含まれている Web コンテナに渡します。このやり取りは、JavaServer Page (JSP)
や Active Server Page (ASP) によって構築されたアプリケーションでの処理と全く同じです。
8
Macromedia は、SOAP (Simple Object Access Protocol) を利用して構築されたオープンソース Web サービスエ
ンジンである Apache Axis プロジェクトの主要なコントリビューターです。
9
ColdFusion 管理者は、デベロッパーがビルトインタイプの IV JDBC ドライバーを使ってデータソースを作成、変更、
削除できるように権限を与えることができます。ColdFusion のアプリケーションからも、アプリケーションサーバー管
理者が作成したデータソースにアクセスできますが、それらのデータソースを ColdFusion 管理者が変更することはでき
ません。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
13
図 3. HTTP リクエストは Web サーバーによって ColdFusion MX が稼動している J2EE Web コンテナに送られ
ます。最初のリクエストが発生すると、対応するテンプレートあるいはコンポーネントが Java バイトコードにコ
ンパイルされ、後続のリクエストが使用するためにメモリとディスクにキャッシュされます。
図 3 に示したように、最初のリクエストが発生すると、ColdFusion ページが Java バイトコードにコンパイルされてか
10
ら実行され、さらにメモリとディスクにキャッシュされます。 そのページに対する後続のリクエストは、ページが変
更されて再コンパイルが発生する場合を除き、キャッシュにあるバイトコードを使って処理されます。
ColdFusion アプリケーションの開発
物理的アーキテクチャの観点から見ると、ColdFusion アプリケーションは Web サイト、あるいは JSP アプリケーシ
ョンに似ています。デベロッパーはアプリケーションをファイルとしてサーバー上に保存し、ユーザーは URL を使って
そのファイルにアクセスします。さらに、JSP と同様、ColdFusion アプリケーションがデプロイされる場合、ファイル
は Java バイトコードにコンパイルされ、実行されます。それに対して、PHP アプリケーションでは、ページはサーバ
ーからリクエストされるたびに解釈されます。
ColdFusion アプリケーションのソースファイルを作成するためにどのようなテキストエディタを使うことも可能ですが、
Macromedia Dreamweaver MX は ColdFusion アプリケーションの構築に理想的な開発環境です。Dreamweaver MX
は、堅牢なコードエディタとしての機能とパワフルなビジュアルデザインツールとしての機能を兼ね備えています。さら
に、Dreamweaver は、コード作成、プロパティインスペクタ、タグエディタ、コンポーネントブラウザ、統合されたデ
バッグ機能、ビルトインのヘルプなど、ColdFusion の開発に必要な機能をすべてサポートしています。
ColdFusion テンプレートと ColdFusion コンポーネント
ColdFusion アプリケーションには、2 つのタイプの主なファイルがあります。ColdFusion テンプレートとページ (拡張
子が *.cfm) は、通常、プレゼンテーションレイヤー用に使用され、一般的には CFML と HTML の両方を含みます。
HTML はフォーマット設定のために、CFML はデータベースクエリーの結果のような動的なアウトプットを生成するた
めに使用されます。
さらに、デベロッパーは CFML を使用して ColdFusion コンポーネント (拡張子が *.cfc) を作成できます。他の言語と
同様、ColdFusion コンポーネントはアプリケーションロジックをカプセル化し、ハイレベルメソッドに対して自らを公
開します。ColdFusion コンポーネントは、他の ColdFusion テンプレートやコンポーネントから呼び出すことができ、
そのメソッドに対しては Web サービスや Macromedia Flash Remoting を使ってアクセスすることができます。コンポ
ーネントと SOAP プロトコルの間は、ColdFusion ランタイムがプロキシーを生成することによって、これらの間のデ
ータマーシャリングを自動的に処理します。サーブレットや EJB と同様、ColdFusion コンポーネントは一般的にアプ
10
アプリケーションをデプロイするときにそのアプリケーションに含まれるすべてのページとコンポーネントを
Macromedia が提供しているバッチユーティリティを使ってあらかじめコンパイルしておくことも可能です。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
14
リケーションのビジネスロジックにレイヤーを設けるために使われるもので、アプリケーションの中や異なるアプリケー
11
ション間でアプリケーションロジックを再利用するためのパワフルなツールです。
ColdFusion のテンプレートとコンポーネントは、使い易いものでありながら、Web アプリケーションの迅速な開発の
ためのパワフルなフレームワークでもあります。経験が浅いデベロッパーであってもシンプルなアプリケーションであれ
ば簡単に作成を始められますが、同時に、上級プログラマーが使用する複雑なインフラも提供しており、堅牢で管理しや
すいデザインを持った複雑なアプリケーションを作成することも可能です。たとえば、図 4 は、ColdFusion MX を使用
して MVC (MVC : Model-View-Controller) モデルを導入する方法を表しています。
図 4. ColdFusion への MVC アーキテクチャの導入 - ユーザーが、コントローラとして働く ColdFusion テンプレ
ート (CFM) にリクエストを送ります (1)。コントローラが、アプリケーションのコンポーネントに対する適切なメ
ソッドを呼び出します。このコンポーネントは、モデルレイヤーに代わって基礎となるデータレイヤーからコント
ローラを分離します (2)。このアクションが完了すると、コントローラはもう 1 つのテンプレートに制御を渡しま
す (3)。この View テンプレートが次に適当なアウトプット (HTML、XML、Macromedia Flash など) を生成する
ので、ユーザーはこの結果を確認できます (4)。
ColdFusion の外部アプリケーションとの統合
Web アプリケーション全体の開発に必要な要素すべてを完備した環境として ColdFusion MX を利用することもできま
すが、Java、COM、CORBA コンポーネント、XML などの外部システムやコンポーネント、さらには Web サービス
と統合するための多くのメカニズムも用意されています。
ColdFusion Application の JSP およびサーブレットとの統合
前述のとおり、ColdFusion MX アプリケーションは J2EE Web コンテナの内部で実行されます。そのため、
ColdFusion アプリケーションを JSP やサーブレットと緊密に統合させて、サーブレットや JSP と ColdFusion ページ
やコンポーネントを組み合わせたハイブリッドなアプリケーションを簡単に制作できます。
たとえば、ある ColdFusion ページにサーブレットや JSP を組み込む、あるいは、JSP やサーブレットにリクエストを
転送するということも可能です。同様に、サーブレットや JSP に CFML ページを組み組む、リクエストの制御を転送
するということも可能です。この機能を使用すれば、デベロッパーは既存の資産を再利用する、サイトの別のセクション
11
コンポーネント以外にも、カスタムタグやユーザー定義関数を利用して ColdFusion を拡張することができます。カス
タムタグやユーザー定義関数は、通常よりきめ細かいユーティリティ機能が必要な場合に使用します。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
15
には異なるテクノロジーを使用するということも可能です。さらには、アプリケーションデータ (フォーム変数や、リク
エスト、セッション、アプリケーションスコープに含まれるデータなど) を簡単に共有できます。
Java タグライブラリには、ColdFusion を Java で開発された資産と統合するためのメソッドも含まれています。
ColdFusion のカスタムタグと同様、Java タグライブラリもハイレベルのタグインターフェイスの中にカスタムロジッ
クをカプセル化する手段を提供しています。ColdFusion MX 自身も Java アプリケーションであるため、デベロッパー
は Java タグライブラリを ColdFusion MX に読み込み、再利用することができます。そのため、デベロッパーは Java
コミュニティが提供している多くのフリーのライブラリを利用することもでき、Java デベロッパーが協力して JTL イン
ターフェイスを再利用可能なコンポーネントやサービスとして作成することも可能です。
Java、COM、CORBA コンポーネントとの統合
Web テクノロジーとの統合に加え、ColdFusion MX は、さらにハイレベルのコンポーネントとの優れたな接続機能を
提供しています。デベロッパーは、1 つのタグベースインターフェイスを使用して、JavaBeans、Enterprise
JavaBeans、COM コンポーネント、CORBA オブジェクトをアプリケーションに統合することができます。さらに、
ColdFusion の中で、アプリケーションスコープやセッションスコープの中にオブジェクトを保存する、さらには、オブ
ジェクトのインスタンスを作成する、プロパティを取得し設定する、メソッドを呼び出すといったことが可能です。
XML データの使用
コンポーネントインターフェイスを使用することで既存のアセットとの緊密な統合が可能でありながら、一方では、
ColdFusion は特定の XML や Web サービスを使ったより疎に統合する方法もサポートしています。これらのテクノロ
ジーは企業間のデータ交換だけでなく、異なる複数システムを統合するための標準メカニズムとして急速に台頭してきて
います。
ColdFusion MX は、XML データの使用に対する堅牢なサポートを提供しています。ColdFusion MX に組み込まれてい
る XML パーサーは、XML を自動的に処理し、ネイティブの ColdFusion オブジェクトに変換するので、デベロッパー
は XML データを ColdFusion の中で他の複雑なデータタイプと同じように使用できます。そのため、XML ドキュメン
トから特定の情報を検索する、XML データを HTML や Macromedia Flash で表示する、XSL スタイルシートをベース
にデータを編成するといったことが可能です。さらに、ColdFusion MX は XPath をネイティブにサポートしているため、
デベロッパーは複雑な XML データを迅速に検索し、特定の情報を取り出せます。
ColdFusion MX では、簡単に XML アウトプットを生成できます。XML ドキュメントを他のプログラミング環境を使っ
て構築する場合、一般的にはドキュメントオブジェクトモデル (DOM) とそれに関連する API の知識が必要です。デベ
ロッパーは、複数の関数をコールをすることで、ノードを作成する、値をセットする、オブジェクトを順番に並べて
XML ストリングを生成するといった作業を行う必要があります。それに対して、ColdFusion MX では 1 つのタグを使う
だけでテキスト、アプリケーション変数、ボディに埋め込まれた CFML コードのアウトプットから有効な XML ドキュ
メントを自動的に生成できます。そのため、デベロッパーは標準ベースの XML を使用して迅速かつ簡単に他のアプリケ
ーションとのデータ交換を行うことができます。
Web サービスの使用
XML の成功に伴って、Web サービスは企業の内部、あるいはビジネスパートナ間でのアプリケーション統合の手段と
して急速に採用されてきています。ColdFusion MX では、アプリケーションロジックを Web サービスとして、あるい
は他のテクノロジーを使って作成された Web サービスを呼び出すものとして公開できます。前述のとおり、
ColdFusion コンポーネントに対するいずれのメソッドも、単にパラメータを設定するだけで Web サービスとして公開
できます。ColdFusion ランタイムは Web サービスクライアントが必要とする WSDL を自動的にパブリッシュし、
ColdFusion と SOAP プロトコル間のデータのマーシャリングをすべて行います。
ColdFusion の内部からの Web サービスの呼び出しも同様に直接行われます。デベロッパーは、単純に WSDL 記述の
場所と必要なメソッドの名前と引数を指定するだけです。表面下で ColdFusion はクライアントプロキシを生成し、デー
タの整列と SOAP プロトコルとのやり取りを行います。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
16
まとめ
ColdFusion MX は柔軟で高い生産性を提供し、企業インフラとの緊密な統合を可能にします。ColdFusion Markup
Language (CFML) と統合サービスによって迅速に Web 開発を行うことができます。これは、ローレベルの詳細機能を
ハイレベルのスクリプティングシンタックスを使ってカプセル化していること、フルテキストサーチ (全文検索)、チャー
ト作成、Macromedia Flash Remoting のようなパワフルなサービスに簡単にアクセスできることによるものです。また、
同時に、ColdFusion MX は基盤となる J2EE プラットフォームが持つ機能をフルに活用しています。それによって、カ
スタムタグ、コンポーネント、JSP およびサーブレット、EJB、COM コンポーネント、Web サービス、XML を使用
できる優れた拡張性、さらには、高いパフォーマンスや信頼性を提供しています。
 2002 Macromedia Inc. All rights reserved.
Macromedia ColdFusion MX
17
ColdFusion MX による 投資効率 (ROI) の向上
前セクションで説明したとおり、ColdFusion MX は、生産性の高いスクリプティング言語とパワフルなビルトインサー
ビスによって企業の Web 開発を加速します。その結果、企業は迅速な Web アプリケーション開発の恩恵を受けつつ、
パワフルな Java プラットフォームの利点を最大限に活用できるのです。
開発チームの有効活用
Java 言語と J2EE プラットフォームは多くの優れた機能を持つものではありますが、すべてのデベロッパーのニーズを
満たすものではありません。ColdFusion MX によってパワフルな J2EE インフラでの迅速な Web アプリケーション開
発機能を提供されるので、企業は自社の開発リソースをより有効に活用できます。
ColdFusion MX を使えば、優れた構造を持つ J2EE アプリケーションを作成するにあたって、Java やそれに関連する
API に対する高度な知識は必要ありません。そのため、ビジネスアプリケーションのデベロッパーの生産性は向上し、デ
ザインが優れたアプリケーションを構築できるようになります。さらに、J2EE インフラの優れたパフォーマンス、管理
性、統合性の恩恵も受けられます。つまり、デベロッパーの生産性向上だけでなく、スキルを必要とするハイエンドのア
プリケーションに優れた人材を集中させることも可能になります。
Web デベロッパーにとっては、ColdFusion MX によって大規模な開発プロジェクトに容易に参加できるという利点も
あります。J2EE アーキテクチャを使用した Web アプリケーションの開発で問題となることの 1 つが、バックエンドの
Java デベロッパーの作業とフロントエンドのデザイナーが作成するユーザーインターフェイスをどう統合させるかとい
う点です。ColdFusion MX では、バックエンドの Java リソースへのタグベースのアクセスが可能なため、フロントエ
ンドのデベロッパー自身が自分で作成したデザインをシステムレベルの Java プログラマーが開発したビジネスコンポー
ネントに統合できます。そのため、双方が少ない時間でそれぞれの作業を統合させることができ、新しい機能を作成する
ためにより多くの時間を費やせるのです。
オープンスタンダードの活用
ColdFusion MX はオープンな J2EE プラットフォーム上に構築され、データベース、ディレクトリ、COM、CORBA、
XML のようなさまざまなエンタープライズテクノロジーや Web サービスとの統合が可能です。ColdFusion がさまざ
まなバックエンドテクノロジーをサポートすることで、企業はエンタープライズテクノロジーへの既存の投資を活用する
ことができます。さらに、ColdFusion MX は広くサポートされている J2EE プラットフォーム上に構築されているため、
多くの補完的なテクノロジーを利用でき、特定のベンダーにだけ頼る必要もなくなります。
IBM や Sun を初めとする主要な J2EE ベンダーによる支持、世界中に広がる Macromedia 開発コミュニティからのサ
ポートによって、ColdFusion は J2EE プラットフォームへの投資効率 (ROI) を高める確かな方法を提供します。
J2EE インフラの拡張
使い易さと優れた生産性という利点に加え、ColdFusion MX は多くのサービスが組み込まれています。そういったサー
ビスを使うことで、Java プラットフォーム上のインターネットアプリケーション開発のコストと複雑さを低減できます。
その結果、デベロッパーはアプリケーションに必要なサービスを簡単に取り入れることができ、さまざまなサードパーテ
ィが提供するサーチテクノロジー、チャート作成、その他アドオンサービスを購入して統合する必要はありません。
さらに、複雑な Java ベースのアプリケーションと Web ベースの ColdFusion アプリケーションを 1 つの J2EE サーバ
ーで構築し、デプロイできるため、サーバーインフラを統合し、新しいハードウェアや管理のために必要となるコストを
最低限に抑えることができます。ColdFusionMX の導入によってビジネスに優れた結果がもたらされることは明らかで
す。管理するサーバーの数を減らし、管理するポイントを 1 つに集中させることができるため、企業全体のインフラコス
トを抑え、ビジネスニーズに対応する新たな方法を見つけることにリソースのより多くを活用することが可能になります。
 2002 Macromedia Inc. All rights reserved.