TOP比較データ> 電子政府と企業システムのトレンド 〜EA〜
企業システムにおけるPHP5の可能性
徹底比較!! PHP & Java

第6回:企業システムにおけるPHP5の可能性

著者:ワイズノット  土橋 芳孝   2004/12/24
1   2  次のページ
電子政府と企業システムのトレンド 〜EA〜

   2001年1月、日本政府の「高度情報通信ネットワーク社会推進戦略本部(IT戦略本部)」によってe-Japan戦略が策定されました。この中では、日本が5年以内に世界最先端のIT国家となることを目指し、超高速インターネット網の整備、電子商取引ルールの整備、電子政府の実現などを重点政策として定めています。

   電子政府の基本的な考え方は行政内部や、行政と国民・企業との間をオンライン化することによって行政の簡素化・効率化を図るとともに、国民・企業の負担を軽減することにあります。つまり行政のIT化によって誰もが国や地方公共団体が提供するサービスを時間的・地理的な制約をうけることなく活用することを可能とし、国民生活や産業活動の活性化を図ることが電子政府実現の目的となっています。

   この電子政府実現のためのガイドラインとして「Enterprise Architecture(EA)」があります。EAの目的は、組織内の各業務で別々にシステムが開発されることにより発生する無駄をなくし、業務システム全体を見据えた全体最適を実現することにあります。そのためには長期的な観点で組織全体の業務を分析・可視化し、重複している業務を統合する必要があります。このEAによって組織や業務はスリム化され、無駄なコストを削減することが可能となります。

   このように当初は電子政府実現のためのガイドラインとして位置付けられていたEAですが、現在では企業システムにも普及しつつあります。現在の企業にとって企業システムは生命線であり、競争力の源泉ともなっています。この企業システムが各業務で個別に最適化されているようでは企業は多くの無駄を抱え競争力を維持できません。そこでEAを導入することにより企業システムの”全体最適”を図り、競争力を維持・発展させていこうとする動きが加速しています。


EAとオブジェクト指向

   EAは業務とシステムの現在と未来、その移行の過程を利用部門にも分かりやすく示すための手法です。EAは以下4つの分類体系に整理されています。


  • 政策・業務体系(Business Architecture)
    各業務の構造やプロセスを把握するために、業務全体を分析して可視化する。

  • データ体系(Data Architecture)
    各業務システムで利用するデータを統合するために、データ形式を標準化する。

  • 適用処理体系(Application Architecture)
    基盤となるアプリケーションを定義するために、各業務の構造やプロセスをモデル化し、業務間の相互接続性を確立するためのソリューションを検討する。

  • 技術体系(Technology Architecture)
    効率的な開発を実現するために、基盤となるアプリケーションに適合する標準技術と開発手順を整理する。

   EAが目指すものは企業システムのライフサイクル全体を視野に入れた全体最適です。つまり、企業システム全体を資産として捉え標準化を図ることで機能の再利用や拡張を容易にし、無駄のない長期的な企業システムの利用を実現することです。

   このEAを実現するために適した考え方としてオブジェクト指向があります。オブジェクト指向は対象領域をモノとして捉えることで対象領域の構造を可視化し、直感的で分かりやすいモデリングを可能とします。また、オブジェクト指向の特徴である継承やポリモフィズムによって、対象領域における再利用や拡張の考え方までも可視化しモデリングすることが可能となっています。

   現在、EAに適用する技術の中心はJava/J2EEとXMLといった標準的なWeb技術だといわれています。いち早くインターネットとの親和性とオブジェクト指向機能を取り込んだ開発言語であるJavaは、既に広く世間に普及し標準的なWeb技術としてのポジションを確立しています。

   J2EEのリリースより5年を経過した今年、本格的なオブジェクト指向機能を備えたPHP5がリリースされました。PHP5はEAの導入が進む現在の企業システムにおいて、どこまでJavaに迫れるのでしょうか。


PHP5とJavaの開発生産性比較

   PHP5はJavaと比較して、パフォーマンスの面では圧倒的に遅れをとりました。オブジェクト指向機能についてもPHP5は今ひとつJavaにはおよびません。しかし、PHP最大の利点はパフォーマンスやオブジェクト指向機能ではなく開発生産性の高さです。まずは下記をご覧ください。

本連載で掲載したソースコードの行数
  PHP5 Java
5000までの素数をWebブラウザーに表示する 28行 34行
5000までの素数を画面に表示する(バッチ) 28行 32行
データベースへの接続を繰り返す 88行 122行
Singletonパターン 57行 58行
例外処理 122行 97行
合計 323行 343行

   上記は本連載で掲載したソースコードについて行数をまとめたものです。いずれも小さなプログラムですが、例外処理を除いてPHP5の方が少ない行数となっています。

   その理由はPHP5の言語仕様にあります。PHP5はJavaと比較して変数のデータ型をそれほど意識する必要がありません。またオブジェクト指向によって高度に部品化されたJavaのAPIと比較してPHP5のAPIは操作が簡単です。それらがソースコードの行数の少なさとしてあらわれ、PHP5の開発生産性の高さを実現しています。

   唯一、例外処理はJavaと比較してPHP5の行数が多くなっています。これはPHP5のtry〜catch構文にfinally節がなく、ファイルをクローズするコードが重複しているためです。この点は世界中のPHP開発者が問題視していますので、近日中にPHP開発コミュニティによってfinally節がサポートされることを期待できます。それまではfinally節が存在しないことによるコードの重複を削減できるような工夫が必要となります。

   また、「『LAMP構成(Linux、Apache、MySQL、PHP)』によりJavaの半分の開発費でWebアプリケーション開発を請け負う」というサービスを開始したシステム開発会社があるという事例からも、PHPの開発生産性の高さがうかがえます。

1   2  次のページ



著者プロフィール
株式会社ワイズノット  土橋 芳孝
以前はJavaを利用したWebアプリケーション開発とオブジェクト指向設計を得意としていたが、ワイズノットに入社以来、PHPの魅力にとりつかれる。現在はワイズノットのプロジェクトマネージャーとして、PHPをはじめとしたオープンソースの普及に力を注いでいる。


INDEX
第6回:企業システムにおけるPHP5の可能性
電子政府と企業システムのトレンド 〜EA〜
  企業システムにおけるPHP5とJavaの適用分野