システムアーキテクチャデザインノート(78)-アプリケーションサーバーテクノロジー

Webアプリケーションの開発は、おおまかに3つの段階を経ています。

最初の段階では、誰もがWebサーバーによって提供されるサーバー拡張インターフェイスを使用して、C GI、APIなどのCまたはPerl言語で開発します。この方法により、開発者はさまざまなWeb要求を自由に処理し、応答ページを動的に生成し、さまざまな複雑なWebシステム要件を実現できます。ただし、この開発方法の主な問題は、高品質の開発者が必要なことです。多くの場合、基礎となるプログラミング方法を理解し、HTTPプロトコルを理解する必要があります。また、このシステムのデバッグも非常に困難です。

第2段階では、主にASP、PHP、Livewireなどを含む、サーバー側のスクリプト言語を開発に使用し始めました。実装方法は、基本的に、さまざまなスクリプト言語ファイルの解釈を担当するユニバーサルスクリプト言語インタープリターをWebサーバーに配置することです。この方法の主な利点は、開発プロセスを簡素化することです。これにより、Webシステムの開発はもはやコンピューターの専門家の仕事ではなくなります。さらに、これらの言語は一般にHTMLにスクリプトを埋め込む方法を採用しているため、実際の開発のアーティストとプログラマーが段階的に協力するのは便利です。一部の言語では、複数のプラットフォームでのインタープリターが提供されているため、アプリケーションシステムには特定のクロスプラットフォームの感覚があります。ただし、この開発方法の主な問題は、システムのスケーラビリティが十分でないことです。システムがビジーになると、拡張するための効果的な手段が不足します。さらに、気難しい人の観点からは、このアプローチはさまざまなパフォーマンス向上アルゴリズムの実装に役立たず、高可用性効果を提供できず、統合効果は比較的低くなります。

これらの問題を解決するために、新しいWebアプリケーション開発方式、つまりアプリケーションサーバー方式が登場しました。現在、アプリケーションサーバーは、eコマースアプリケーションにおいて非常に重要なミドルウェアテクノロジーになっています。現在、主要なソフトウェアベンダーは、IBMのWebsphere、Oracleのインターネットアプリケーションサーバー、Sybaseのエンタープライズアプリケーションサーバーなど、eコマースプラットフォームの基盤としてアプリケーションサーバーを使用しています。

1アプリケーションサーバーの概念

アプリケーションサーバーは、今日のインターネット上でのエンタープライズレベルのアプリケーションの急速な発展と、eコマースアプリケーションの出現と急速な拡大の下で生み出された新しいテクノロジーです。これにより、企業の事業活動をインターネット上で安全かつ効果的に実装し、eコマースを実現できます。 。これは、従来の意味でのソフトウェアではなく、インターネットを介してeコマースを提供できるプラットフォームです。コンポーネントおよびサーバー側のプログラミングに基づく分散型の多層構造およびエンタープライズレベルのアプリケーション開発では、開発、展開、運用、管理、および保守のためのプラットフォームを提供します。ソフトウェア「クラスター」の機能を提供できるため、複数の異なる異種サーバーが連携して相互にバックアップし、エンタープライズレベルのアプリケーションに必要な可用性、高性能、信頼性、およびスケーラビリティを実現できます。したがって、ある意味で、アプリケーションサーバーは「エンタープライズレベルのアプリケーションオペレーティングシステム」を提供します。

J2EE仕様を実装するアプリケーションサーバーは、J2EEアプリケーションサーバーと呼ばれます。現代社会におけるビジネスチャンスは一瞬であり、eコマースアプリケーションは強力なシステムの迅速な開発を必要とします。アプリケーションサーバーは、企業がインターネットベースのeコマースシステムを迅速に構築するのに役立ち、非常に高い安定性、スケーラビリティ、およびセキュリティを備えています。できる:

(1)より合理的な分業とエンタープライズレベルのアプリケーション開発、アプリケーション開発のスピードアップ、およびアプリケーション開発の削減

アプリケーションサーバーは、システム機能をビジネス機能から分離し、プログラマーがビジネス機能に集中できるようにします。システムに構築/展開されるコンポーネントはますます増えており、分散アーキテクチャの場合、システム機能はますます重要になります。より複雑になりますが、同時に、信頼性(負荷分散、障害耐性、および障害回復)に対する要求も高まります。開発者はコーディングビジネスの機能にのみ焦点を合わせており、システムレベルの機能にはほとんど関心がありません。システムレベルの低レベル機能の実現には一般に非常に複雑な専門スキルが必要であるため、機能実現を合理的に分離することでスキルの最適化が可能になります。

アプリケーションサーバーの開発で採用されたモジュラーアプローチは、多数の再利用可能なモジュールを提供します。いくつかの既存のフレームワークとモジュール、および特定の開発を組み合わせることにより、新しいシステムを迅速に完成させることができます。新しく開発されたコードは、将来再利用するためのモジュールとして使用できます。これは、開発コストを削減し、開発速度を上げるために非常に重要です。

さらに、開発を容易にするために、一部のアプリケーションサーバーは、さまざまなデバッグタスク用のサーバーの開発バージョンも提供します。アプリケーションサーバーは通常、ローカル編集、アップロード、プロジェクト管理、およびデバッグツールを統合する統合開発環境も提供するため、開発作業は1つのインターフェイスで完了します。開発と管理を同時に行うために、バックエンドシステムの開発環境を同時に提供する開発環境もいくつかあります。さらに、一部の製品には、ORM(Object Relation Mapping、Object-Relation Mapping)などの自動コードジェネレーターやデータベース設計支援機能などが組み込まれており、開発速度を効果的に向上させ、アプリケーション開発の量を削減します。

(2)アプリケーションの設計、開発、展開、運用、管理、および保守のためのプラットフォーム

アプリケーションサーバーは、プレゼンテーションレイヤー、アプリケーションレイヤー、データレイヤーの設計モードやプログラミング環境など、アプリケーション開発のプラットフォームであるだけでなく、多層構造アプリケーションの展開および運用プラットフォームでもあり、多層構造アプリケーションの構成、起動、監視、調整を行います。 、そして開発のさまざまな段階でさまざまな責任を負います。

設計:アプリケーションサーバーは、低レベルの通信とサービスを完了し、複雑な低レベルの技術的な詳細を保護し、ユーザーがビジネスロジックの設計に集中できるように、シンプルな構造と完全な機能を備えたプログラミングインターフェイスをユーザーに提供します。

開発:アプリケーションサーバーは完全にオープンなプログラミング言語とアプリケーションインターフェイスを提供し、ユーザーは慣れ親しんだ開発ツールを使用できます。さらに、アプリケーションサーバー自体も、ユーザーが開発効率を向上させるのに役立つ迅速な開発のためのツールと手段を提供します。

展開:アプリケーションサーバーは、任意のハードウェアプラットフォーム、任意のオペレーティングシステムに展開でき、異種ネットワークに分散できます。アプリケーションサーバーは、ユーザーが複雑なネットワーク環境でシステムパラメータを構成して、システムのパフォーマンスを最大化し、最高の状態にするのに役立ちます。安定していて信頼できます。

操作:アプリケーションサーバーは、完全な標準実装を提供する、つまりシステム操作環境を提供するオープンな技術標準を採用しており、同じ標準に基づくシステムはすべてこの環境で適切に実行できます。動作中は、アプリケーションシステムの名前解決、ルーティング、負荷分散、トランザクション制御などのサービスを提供し、システムの障害耐性、修復、移行、アップグレード、拡張などの機能を提供します。管理:アプリケーションサーバーを使用すると、ユーザーはグラフィカルインターフェイスを介して自分のリソースを便利に管理でき、システムの実行中にそれらを動的に監視および管理できます。

(3)アプリケーションを基盤となるプラットフォームから独立させ、ビジネスロジックの実現と拡張を促進します

優れたアプリケーションサーバーは、オペレーティングシステム/データベースプラットフォームの広範なサポートを提供するか、J2EEなどのプラットフォームに依存しないテクノロジを採用することにより、アプリケーションをオペレーティングシステム/データベースプラットフォームから独立させることができます。明らかに、エンタープライズアプリケーションの移植性が高く、アプリケーションと開発スキルへの企業の投資を保護できます。一方、熾烈な市場競争の下では、企業のビジネスロジックは変わらず、生産・運営の拡大に伴い、既存のビジネスシステムをオンデマンドで便利に拡張することが第一の課題です。そしてアップグレードします。アプリケーションサーバーテクノロジーは、3層構造システムを採用しているため、この問題をうまく解決できます。アプリケーションサーバーは、ビジネスプロセスを単一のレイヤーと見なし、顧客は独自のビジネスロジックに従ってこのレイヤーの設計に集中できます。アプリケーションサーバーはこの設計機能を提供できます。顧客がビジネスを拡大する場合、中間層の設計の改善に集中するだけで、元のシステムをスムーズかつ便利にアップグレードできます。

(4)エンタープライズアプリケーション向けに、既製の安定した堅牢で柔軟で成熟したインフラストラクチャを提供します

eコマースアプリケーションの構築競争では、多くの企業がeコマースアーキテクチャシステムを冷静に「構築」する時間がありません。アプリケーションサーバーを介して、基本的なプラットフォーム、標準、アプリケーション開発ツール、およびプレハブコンポーネントを含む成熟したアーキテクチャをすぐに作成できます。一方、経済のグローバル化が加速する中、多くの企業が世界にサービスを提供しており、コンピュータビジネスシステムは24時間途切れることのないサービスを提供する必要があります。高負荷および長期運用下でのシステムの安定性は非常に重要です。 。アプリケーションサーバーは、分散システムを通じてこれを保証します。パフォーマンスは次のとおりです。システムの処理能力が十分でない場合は、ハードウェアを追加するだけで解決できます。異なるホスト間の負荷を動的に調整することで、システムリソースを最大限に活用し、単一のマシンの安定性を向上させることができます。 ;システム内のマシンに障害が発生した場合、システムの全体的な動作に影響を与えることなく、他のマシンがその作業を実行できます。つまり、単一の障害点はありません。

現在市販されているアプリケーションサーバーソリューションは、基本的にこれらの機能を備えているため、アプリケーションサーバー製品を購入する際に、企業は単純に賛否両論を判断することはできず、ニーズを十分に理解して議論する必要があります。技術的な問題については、自分に合ったソリューションを決定し、最後にこれらのソリューションを使用して独自のシステムを完成させる製品を見つけます。

2メインアプリケーションサーバー

2.1 BEA WebLogic

新世代のJavaベースのWebアプリケーションサーバーとしてのBEAWeb Logicは、Webサイトの高いパフォーマンスと信頼性の要件を満たす製品です。従来のアプリケーションサーバー機能を提供する一方で、今日のインターネットテクノロジーとJavaテクノロジーに多くの機能を提供し、最新のJava標準に準拠しています。

WebLogicのインストールは非常に簡単です。Web Logic EJB Deployer Toolは、複数のEJB .jarファイルの管理、およびWeb LogicServerの展開機能とリソースの構成を制御します。Deployer Toolは、2レベルのEJB展開の正当性テストをサポートします。機能と参照を自動的にチェックして、正しい値が含まれていることを確認し、主要なEJBに必要なクラスがEJB1.1仕様に準拠していることを確認します。

Web Logic Zero Administration Client(ZAC)Publishing Wizardと呼ばれるグラフィカルユーティリティを使用すると、ユーザーは、アプリケーション、アプリレット、またはJavaコードライブラリを含むソフトウェアパッケージを作成、公開、および管理できます。ZACを使用すると、ユーザーはクライアント側のJavaアプリケーションを開発し、これらのアプリケーションをパッケージ化して配布できます。

2.2 IBM WebSphere

IBMのWebSphereは、アプリケーション開発(Web SphereStudioおよびVisualAge for Java)、データベース(DB2)、およびメッセージングサービス(MQseries)への統合を強調しています。これらの製品は、会社の全体的なeコマース製品戦略の基礎を形成します。Web Sphereは、複数のプラットフォームをサポートし、最新のJava標準に準拠することにより、eコマースアプリケーションを開発するための信頼性の高いプラットフォームを提供します。

WebSphereのインストールはシンプルで簡単です。WebSphereサーバーとそれが実行するアプリケーションの制御は、WebSphere Advanced ManagementConsoleで実行されます。WebSphereは複数のサーバーを実行できるため、ユーザーはコンソールから個別に各サーバープロセスを開始する必要があります。システムを再起動する必要がある場合は、

Web Sphereは、それぞれの異なるサーバーの現在のステータスを記憶し、実行中のサーバーを自動的に再起動できます。IBMは、Javaベースのアプリケーションの開発用に設計されたWeb SphereStudioやVisualAge forJavaなどの他の製品を提供しています。Web Sphereのアドバンストエディションとエンタープライズエディションには、IBMのDB2データベース製品とSecureWay軽量ディレクトリアクセスプロトコルサーバーが付属しています。Enterprise Editionには、外部データベース、CICS、IMS、またはMQSeriesアプリケーションに接続するためのコンポーネントエージェントアプリケーションアダプタが含まれています。

2.3 SUNiPlanet

SUNとNetscapeの提携製品であるiPlanetが製造するiPlanetアプリケーションサーバーは、最新のJ2EE仕様の要件を満たし、J2EE証明書テストスイートのフルセットのテストに合格しています。

i Planetアプリケーションサーバーの基本的なコアサービスには、トランザクションモニター、複数の負荷分散オプション、クラスタリングとフェイルオーバーの包括的なサポート、統合されたXMLパーサーと拡張可能なフォーマットスクリプト言語変換(XLST)エンジン、および包括的な国際化が含まれます。待機する。Directory Server、Web Server、およびEAI(Enterprise Application Integration)用の他のアクセサリを含む他のiPlanet製品間の緊密な統合が達成されました。

IPlanet Application Deploymentツールは、アプリケーションの展開プロセスを通じてユーザーをガイドできるJavaベースのプログラムです。iASは、Web Gain Studio、Inspire Juilder、IBM Visual Age、Sun Forte for Java EnterpriseEditionなどのサードパーティツールと統合されたスタンドアロン製品iPlanet ApplicationBuilderを提供します。

2.4 Oracle Internet ApplicationServer

Oracleのデータベース製品が複数のプラットフォームで市場をリードする製品であることは間違いありません。この独自の利点により、Oracleのインターネットアプリケーションサーバー(iAS)は他のOracle製品と統合されています。たとえば、OracleiASを使用してOracleFormsアプリケーションに基づくOracleFormsサービスのWeb展開。

Oracleは、拡張されたApacheWebサーバーをOracleiASへのエントリポイントとして使用します。iAS Managerは、アプリケーションを構成および管理するためのツールであり、さまざまなシステム管理機能を包括的に操作するための統合インターフェイスを提供します。

Oracleは、Javaアプリケーション、Perlプログラム、PL / SQLプログラム、およびSSL上の安全なWebページを処理するためのApache用のプラグインボックスモジュールを開発しました。プラグインボックスモジュールは、プログラムロジックアクセスを実装できる共有ライブラリです。PL / SQLプラグインボックス、Jwebプラグインボックス、LiveHTMLプラグインボックス、Perlプラグインボックス、Cプラグインボックス、ODBCプラグインボックスなど、1つ以上のプラグインボックスインスタンスをプラグインボックスモジュールで実行できます。

iASは、CORBAオブジェクトに基づくアプリケーションの開発を可能にし、通信プロトコルはIIOPを採用します。iASは、CORBAアプリケーションとEJBアプリケーションの2つのアプリケーションモードをサポートしています。どちらのモードでも、さまざまなCORBAのお客様がアクセスできます。iAS EnterpriseEditionはOraclePortalで構成されています。Oracle Portalは、エンタープライズ情報ユーザーの展開に必要なツールを提供します。Oracle iASは、アプリケーションをWebにプッシュするという同社の戦略の重要なコンポーネントです。Oracleのお客様は、OracleFormsとOracleReportsをWeb上で簡単に実行できます。ただし、OracleiASはより高価でもあります。

2.5 Sybase Enterprise ApplicationServer

Sybase Enterprise Application Server(rEAServer)は、SybaseのJaguarCとPowerDynamoを緊密に統合および開発し、Webオンライントランザクション処理(Web OLTP)と動的情報公開を同時に実現するエンタープライズレベルのアプリケーションサーバープラットフォームです。さまざまな業界標準を幅広くサポートし、コンポーネントベースのマルチレイヤーアーキテクチャに準拠し、すべての主要コンポーネントモデルをサポートするアプリケーションサーバー製品であり、最新バージョンでは、PowerBuilderコンポーネントとEJBの深いサポートを強化します。このようにして、ユーザーは、提供する柔軟な開発機能を使用し、多様なコンピューティング環境を最大限に活用し、より効率的なエンタープライズWebアプリケーションシステムを構築できます。

EAServerはさまざまなコンポーネントモデルをサポートし、さまざまなコンポーネントを同じアプリケーションに組み合わせることができ、標準のスクリプト言語とあらゆる顧客タイプをサポートし、Power Site開発環境を統合して、Webアプリケーションの開発と送信を便利かつ迅速にします。優れたパフォーマンスに加えて、EAServerは複数のデータベースアクセス方法もサポートし、ユーザーに信頼できるセキュリティを提供します。


おすすめ

転載: blog.csdn.net/deniro_li/article/details/108807929