| 毎週発行されているパートナーNewsより選り抜きの記事をご紹介! |
|
第十三回 『セキュリティポリシー:システム構築』
|
● アプリケーション構築手法(その3)
|
■ セキュリティポリシー:システム構築
企業内におけるIT化は隅々にまで浸透しつつあり、価値発現が高度に行われようとしています。その中核部分はソフトウェアであり、企業内全体の生産性を高める上で、導入し利用、構築するソフトウェアの選定は重要な要素を占めると言えます。ソフトウェア開発はセキュリティの項目とは、直接関係しないが、IT担当部門が評価、検証し推奨するソフトウェアを全社的に利用して貰う事は、セキュリティの脆弱性を排除する上で重要です。
利用者が安心し信頼して利用できるソフトウェア環境の提供とアプリケーションを構築するための選択肢の提供をIT担当部門の責務として行い、導入ソフトウェアのスタンダード化による管理コストの低減と最適なソフトウェアの導入による企業内全体の生産性の向上を図るために、アプリケーション構築手法を規定する必要があります。
今回は、前回解説したWebアプリケーションの構成の違いを詳細に解説していきます。
● 2階層型構成
2階層型構成は構築が簡易である反面、Webブラウザからの要求が集中するとWebサーバ内でまとめて処理を実行するため、サーバに掛かる負荷が大きくなります。
2階層型構成には、CGI(Common Gateway Interface)、ASP、PHP、Microsoft.NETがあります。
a.CGI
CGIとは、Webサーバがバックエンドプログラムを呼び出して実行するタイプを指します。CGIの特徴をメリット/デメリットに分けて以下に記します。
<メリット>
・ 動作させるためのWebサーバ環境構築に掛かる工数が少なくてすむ。
・ HTMLベースのため、HTMLとの整合性が良い。
・ 静的コンテンツにCGIを付加させるだけで、動的コンテンツの作成ができる。
・ コンテンツデザイン(HTML)、ロジック(CGI)部分を分離して開発を分担して進められる。
<デメリット>
・ Webブラウザからの要求の都度、Webサーバがプロセスを起動するため、リソースを消費 しパフォーマンスが低下する。
・ Webブラウザからの要求の都度、データベースとの接続、切断を繰り返すためサーバへの 負荷が大きい。
CGIは以上のことから、トランザクション数が少ない軽度な処理に適用します。CGIプログラムの種類を以下に記します。
【 Perl 】
オープンソースのスクリプト言語(インタプリタ型)で、CGIの主流として使用されてきました。テキストの検索や抽出、レポート作成など、文字処理機能に適しています。
今後のアプリケーションの構築はWebアプリケーションを第一候補として検討する必要があります。
【 PHP(Hypertext Preprocessor) 】
オープンソースのスクリプト言語(インタプリタ型)で、XMLのサポートやデータベースとの連携に優れています(直接SQL言語を記述)
また、Apacheに組み込まれて動作するため、マルチスレッドに対応したプログラム実行が可能なため、現在CGIの主流として採用されています。
【 Ruby 】
オープンソースのスクリプト言語(インタプリタ型)で、UNIX、Windows、MacOS、など各プラットフォーム上で動作可能です。
個人で開発しているオープンソースのため、保守の面からも企業でのシステム開発では採用は難しいです。
【 Python 】
オープンソースのスクリプト言語(インタプリタ型)で、プログラムコードの記述が簡易で可読性に優れていますが、言語自体の機能は最小限に押さえられていることから(C/C++ による拡張が必要)企業でのシステム開発での採用は難しいです。
【 C/C++ 】
コンパイル型の言語で、ネイティブコードに変換する必要が無いため、処理速度が速く、開発実績が多数で、非常に強力な機能を備えている利点があります。
但し、動作するサーバと同一環境を備えた開発サーバを用意(コンパイルするために)する必要があり、全ての処理を1から記述する必要があります。よって、大規模で複雑(業務、場所、などに特化)なシステム開発でのに適しています。
b.ASP(Active Server Pages)
ASPは、HTMLソースコード中にJavaScriptやVBScriptなどを記述してサーバ側で処理し、結果のみをWebブラウザに送信します。
Microsoft社のIISで動作することから、プラットフォームはWindows限定となります。
また、Visual Basic開発経験者が比較的取り掛かり易い言語となっています。
ASPは、ワークグループでの採用の他、プロトタイプ(デモプログラム)作成など生産効率を向上するような場合に採用します。
c.Microsoft.NET(.NET)
.NETは、Microsoft社独自の技術でプラットフォームもWindows2000または、Windows Server 2003に限定されています。
Microsoftの様々な製品や技術を総括し、カバー範囲が非常に広いことから、Microsoft製品とのシステム間連携をとるシステムでの開発向きです。
.NETに対応したプログラム言語には、
【 ASP.NET 】
ASPの後継にあたるスクリプト言語
【 VB.NET 】
Visual Basicの後継で、グラフィカルなオブジェクト指向言語
【 C++.NET 】
Visual C++の後継で、C#.NETが利用可能となったため今後の活用は減少する。
【 C#.NET 】
C/C++を発展させ、Javaに対抗する「.NET」環境下の中心的開発言語。
【 Jscript.NET 】
スクリプト言語のJScriptの後継。
があります。
また、開発ツールとして、Microsoft社から、「Visual Studio.NET」、「.NET Framework SDK」(無償)が提されています。
● 3階層型構成
3階層型構成は、Webブラウザからの要求をプレゼンテーション層のWebサーバが対応し、実際の処理はビジネスロジック層のAPサーバによって処理されるためサーバの負荷を分散化することができます。
更に、Webサーバ、APサーバを同一サーバ(筐体)上で動作させたり、必要に応じてWebサーバとAPサーバを別サーバ(筐体)に、APサーバで行う機能単位にサーバ(筐体)を分散させたりと、サーバ構築の自由度も高くなります。
また、3階層型構成を実現するAPサーバアプリケーションは1つのプロセスにマルチスレッドで動作することが可能なためリソースの消費を抑えることができます。
一度呼び出されたプログラムはメモリ上に常駐するため、高速処理が行え、サーバに組み込まれた拡張機能からAPI(Application Program Interface)が提供されており、目的に応じてAPIを組合せることで容易にプログラムを作成することができます。
よって、3階層型構成は、大規模、高負荷となるエンタープライズ向け処理に採用することができます。3階層型構成を実現する開発プラットフォームには「J2EE」を採用します。「Java」はWindows、UNIX、Linux、など異なるプラットフォームに対応しており、J2EEアプリケーションではスクリプト言語のJSP(Java Server Pages)と、Javaサーブレット及びDBとの接続を司るEJB(Enterprise Java beans)で構成されています。
【 JSP 】
JSPは、HTMLソースコード中にJavaプログラムを埋め込んでサーバ側で処理し、結果のみをWebブラウザに送信します。
また、特殊なスクリプト言語を覚えることなく、Java言語をそのまま使えるという利点があります。
Javaアプレットと同様にJavaVMがインストールされていれば機種が限定されません。
【 Javaサーブレット 】
JavaサーブレットはWebサーバ上のJ2EE(Java 2 Enterprise Edition)の動作環境(プラットフォーム)下で実行されるモジュール(部品)化されたプログラムです。
JSPと組合せてJavaサーブレットに業務ロジック、JSPに画面表示部分(HTML)と処理を分離し、開発環境に様々な機能を提供するJava API(クラスライブラリ)を使用することで開発における生産性、メンテナンス性が優れています。
【EJB(Enterprise Java Beans)】
EJBとは、JavaBeansの仕様に、分散オブジェクト技術を追加した仕様の事です。JavaBeansとは、Javaで作成したプログラムをコンポーネント化することで、プログラムの再利用を可能にする技術です。
EJBを利用することで、ネットワークを介してJavaコンポーネントを相互利用することが可能になります。EJBの実行環境は、EJBサーバとEJBコンテナによって提供されます。
EJBサーバは、EJBコンテナを管理し、Enterprise Bean(EJBの仕様に従って作成されたコンポーネント)の機能を提供するサービスを行います。
EnterpriseBeanは他のEnterpriseBeanと連携して処理を行うことが出来、複数サーバ上のEnterpriseBeanと連携し1つの業務処理を行うことが可能となります。
EJBでは他のコンピュータ上のEJBコンポーネントを利用することで、アプリケーションソフトの開発効率の向上と負荷分散によってシステム全体の処理能力向上を図ることが出来ます。
Java対応のAPサーバー、開発ツールは各ベンダーから多数提供されています。
<APサーバー>
・WebSphere
日本IBM社が提供するWebシステムでの統合開発環境プラットフォームを充実させたAPサーバ。
・BEA Weblogic Server
日本BEAシステムズ社が提供するサーバサイドJava アプリケーションの構築、統合、セキュリティ、および管理をトータルサポートするAPサーバ。
・Oracle10g Application Server
ORACLE社が提供するWebシステムに関するあらゆる機能および基盤を提供する、包括的で統合されたAPサーバ
・Tomcat
オープンソフトで、Apacheライセンスの下で開発された最も古いAPサーバ。
<主な開発ツール>
・Java2 SDK
Sun Microsystems社が提供するテキストベースの無償開発セット。
・Jbuilder
Borland社が提供するGUI環境を用意した開発ツール
JBuilder 9 Personalは無償でダウンロードすることができます。
・Jdeveloper
ORACLE社が提供する設計−開発−デバッグ−配布−管理といった開発ライフサイクルをトータルでサポートする製品。
|
|
|
|