今日、情報産業の急速な発展に伴い、企業間の競争はさらに激化していくことになります。ビジネスの規模が継続的に拡大し、継続的に更新されているため、企業は複雑な異種環境を管理し、さまざまなハードウェア デバイス、ソフトウェア システム、ネットワーク環境、データベース システム間の完全な統合を実現するための完全な分散ソリューションを緊急に必要としています。
人間のコンピュータの発展の歴史を通じて、情報産業は 10 ~ 15 年ごとに周期的な変化を遂げます。1950 年から 1970 年にかけて、企業は主にメインフレーム ターミナル アーキテクチャを採用し、エンタープライズ アプリケーション システムはユーザーに単一のリソース共有サービスを提供しました。 、集中的な方法。 1980 年代初頭、オープン システムとリレーショナル データベース管理システムは企業に広く採用され、集中型システムとは異なり、アプリケーション ロジックはマスター エンドとスレーブ エンドの間に分散されました。 Windows の普及により、1990 年代はグラフィカル アプリケーションの時代となり、クライアント/サーバー アーキテクチャも広く採用されました。 1990 年代後半、分散オブジェクト技術が情報産業に登場しました。アプリケーションはさまざまなシステム プラットフォームに分散でき、異種プラットフォーム間でのオブジェクトの相互通信は分散技術を通じて実現できます。既存のエンタープライズ システムを分散システムに統合すると、エンタープライズ アプリケーション システムの拡張性が大幅に向上します。 1990 年代後半の多層分散アプリケーションの出現は、企業がアプリケーション システムの開発をさらに簡素化する道を示しました。
従来のクライアント/サーバー構造では、通常、アプリケーション ロジックはクライアントとサーバーの間で分散され、クライアントはデータ リソースへのアクセス要求を発行し、サーバーは結果をクライアントに返します。クライアント/サーバー構造の欠点は、クライアントの数が増加すると、負荷分散が実行できないため、サーバーのパフォーマンスが大幅に低下することです。 アプリケーションの要件が変わると、クライアント アプリケーションとサーバー アプリケーションの両方を変更する必要があり、アプリケーションのメンテナンスやアップグレードに大きな不便が生じ、大量のデータの送信によりネットワークの負荷も増加します。クライアント/サーバーの問題を解決するには、企業は多層分散アプリケーションに移行するしかありません。
多層分散アプリケーションでは、クライアントとサーバーの間に 1 つ以上のアプリケーション サービス プログラムを追加できます。このプログラムは「アプリケーション サーバー」と呼ばれます。開発者は、エンタープライズ アプリケーションのビジネス ロジックをクライアントではなく中間層サーバーに配置することで、アプリケーションのビジネス ロジックをユーザー インターフェイスから分離し、クライアントの機能を確保しながらユーザーにシン (シン) アプリケーションを提供できます。 )インターフェース。これは、アプリケーション コードを変更する必要がある場合、何千ものクライアント アプリケーションではなく、1 か所 (中間層サーバー上) で変更できることを意味します。 これにより、開発者はアプリケーション システムのコア ビジネス ロジックの分析、設計、開発に集中できるようになり、エンタープライズ システムの開発、更新、アップグレードが簡素化され、エンタープライズ アプリケーションの拡張性と柔軟性が大幅に向上します。
企業が Web ベースの商用アプリケーション システムを確立する必要がある場合、多層分散アーキテクチャは強力な利点も提供し、Web ベースの商用アプリケーションに「シン クライアント」アーキテクチャを提供し、ブラウザ ベースの顧客がイントラネット リソースと効果的に通信できるようにします。クライアント側で複雑なアプリケーション構成作業を必要とせずに対話を行うことができます。多層分散ソリューションは、異種プラットフォーム間のブリッジを構築し、Web ベースのビジネス アプリケーションを既存のエンタープライズ システムと統合できるようにします。
現在、我が国の多くの企業は依然としてクライアント/サーバー アーキテクチャを採用していますが、西側先進国では、企業が従来のアプリケーション システムから多層分散アプリケーション システムに移行することが業界の主流となっています。わが国では、多層分散システムがさらに普及すると考えられています。
多層分散アプリケーションによってもたらされる課題
マルチレイヤー分散アーキテクチャは企業に大きな利点をもたらしますが、マルチレイヤー分散アプリケーションの開発は従来のクライアント/サーバー アプローチよりも難しく、開発者に新たな技術的課題をもたらします。これには主に次の 3 つの側面が含まれます。
1. 分散オブジェクト規格の多様化
企業が多層分散システムを構築したい場合は、分散業界標準に準拠する必要があります。その標準は、エンタープライズ アプリケーション システムのオープン性とスケーラビリティに直接影響します。現在、分散オブジェクトには 3 つの主要な標準があります。Microsoft の DCOM、Sun Microsystems の Enterprise JavaBeans/RMI、OMG (Object Management Group) の CORBA (Common Object Request Broker Architecture) です。 DCOMはWindows環境をベースとした分散オブジェクト規格のため、対応プラットフォームの種類が限られます。 RMI と Enterprise JavaBean は Java 言語に基づく分散オブジェクト アーキテクチャであり、大企業のクロスプラットフォームのニーズに適しています。ただし、実際のアプリケーション システム環境は通常、複数の異なるプログラミング言語によって構築され、1 つのプログラミング言語のみに依存します。エンタープライズアプリケーションはまれです。 CORBA は、800 社を超える大規模なソフトウェアおよびハードウェア企業の参加を得て OMG 組織によって開発された分散オブジェクト標準であり、IBM、Sun Microsystems、Oracle、Sybase、Novell、Netscape などの大企業によってサポートされています。異なるプラットフォーム間の通信とオブジェクトの相互運用性 ソフトウェア ベンダーがアプリケーション オブジェクトと ORB 間の通信に IDL (インターフェイス定義言語) に従っている限り、開発者はオブジェクトの形式でサービスを提供または取得できます。異種プラットフォームを考慮する必要がなくなり、異なる通信プロトコルや異なるプログラミング言語によって差異が生じ、アプリケーション ロジックの開発に集中できます。 CORBA は、企業が多層分散アプリケーション システムを構築するのに適した、オープンで柔軟な分散標準を提供していることがわかります。
2. 多層分散アプリケーションの開発は非常に複雑です
マルチレイヤー分散アプリケーションを従来の方法で開発する場合、開発者はコンピューター システム レベルの深い知識と、同時実行性、セキュリティ、スケーラビリティ、トランザクション処理などのさまざまな側面に関する習得した知識を必要とします。さらに、スレッド、メモリ、データベース接続、ネットワーク接続の管理など、システム リソースへのアクセスを効果的に管理する必要があります。これらの複雑なタスクは開発者のエネルギーを大幅に消費し、開発作業の進行を制限します。エンタープライズ アプリケーション システムの開発では、開発者はシステム レベルの開発に多くの時間を費やすのではなく、ビジネス ロジックの開発に重点を置く必要があります。
3. 分散アプリケーションの配布と管理も課題
ほとんどの分散アプリケーションは数百または数千のコンポーネントで構成されており、各コンポーネントには配布中に構成する必要があるプロパティがあります。通常、コンポーネントのプロパティを構成する方法は、コンポーネントが配置されているプラットフォームによって異なります。 そのため、アプリケーションを配布した後、配布されたコンポーネントをどのように管理するかが課題となります。管理者は、アプリケーション コンポーネントが正しく実行できること、企業ネットワーク内の任意のマシンに配置できること、処理エラー (システム エラー、ネットワーク中断、アプリケーション エラーなどを含む) を適時に検出できることを確認する必要があります。
従来のネットワーク システム管理 (SNMP など) は、ホストの状態を分析することによってのみアプリケーションの実行状態を取得できます。しかし、分散アプリケーション システムでは、アプリケーションは特定のホスト上で実行されるわけではありません。ネットワーク全体のステータスを管理する必要があり、これには適切なツールのサポートが必要です。
多層分散アプリケーションの要件
エンタープライズ多層分散アプリケーションを開発するには、通常、次のものが必要です。
開発が簡単
マルチレイヤー分散アーキテクチャは、基礎としてコンピュータ システム レベルの深い知識 (データベース、トランザクション処理、ネットワーク セキュリティ、CORBA テクノロジなど) を必要としますが、IT 開発者にとっては、基礎となるものについての深い理解は必要ありません。テクノロジーを利用すると、使いやすいビジュアル統合開発環境 (IDE) で、強力なマルチレイヤー分散アプリケーション システムを迅速かつ簡単に開発できます。
配布・管理作業を簡素化
開発者は、統合開発環境で分散アプリケーションをテストおよび変更してアプリケーションのパフォーマンスを向上させ、同じ環境でアプリケーションの配布と管理を実現できる必要があります。多くのアプリケーションには企業全体に分散された何千ものコンポーネントが含まれているため、分散アプリケーションを管理および制御し、エラー検出および修正機能を実装するには集中管理ツールが必要です。
エンタープライズ アプリケーションの堅牢性要件
完全なエンタープライズ分散多層アプリケーションは、トランザクション処理、セキュリティ管理、フォールト トレランス、ロード バランシング、スケーラビリティ、およびハイ パフォーマンスの要件を満たしている必要があります。
オープンな業界標準ベースのアーキテクチャを特徴とします
企業が必要としているのは、他の標準に準拠したシステムと対話できる、オープンな業界標準ベースのソリューションです。
さまざまなデータベースや既存システムと統合可能
エンタープライズ分散アプリケーションはエンタープライズ データ リソースにアクセスできる必要があり、エンタープライズ データは通常、現在普及している大規模データベース (Oracle、Sybase など) に保存されるか、TP モニター (IBM CICS、BEA Tuxedo など) を介してアクセスされます。 ) なので、これが必要です。 エンタープライズ分散システムは、データベースや既存のシステムと統合できます。
さまざまなプラットフォーム環境をサポート
エンタープライズ多層分散アプリケーションは、さまざまなプラットフォーム環境をサポートする必要があり、サーバー側は Windows NT または UNIX プラットフォームをサポートする必要があり、さまざまなプラットフォーム上の顧客は、HTML、Java アプレット、Java アプリケーション、ダイナミック HTML、C++ などのサーバー上のアプリケーションにアクセスできます。アプリケーションなど
エンタープライズ アプリケーション サーバー
上記の理由に基づいて、企業が多層分散アプリケーションに移行する場合、さまざまなアプリケーション テクノロジを統合して、多層分散アプリケーションの開発、配布、管理を容易にするために、アプリケーション サーバーのサポートが必要になります。より簡単に。現在、多くの企業がアプリケーション サーバー テクノロジを使用しており、これによりエンタープライズ アプリケーションのパフォーマンスが大幅に向上しています。しかし、現在我が国で使用されているアプリケーション サーバー テクノロジは、多層分散アプリケーションを構築する企業のニーズを完全には満たすことができません。これらのアプリケーション サーバーは、主に次の 2 つのカテゴリに分類されます。
Webベースのアプリケーションサーバー
Web ベースのアプリケーション サーバーは通常、Web ベースのインターネット アプリケーションの開発環境を提供し、Web ベースのクライアント/サーバー アプリケーション システムの構築に適しています。このシステムでは、通常、Web アプリケーション サーバーは Web サーバー上で実行され、クライアントの要求を処理します。通常、データベースへの接続には ODBC と JDBC が使用されます。このタイプのアプリケーション サーバーは一般に使いやすく、EJB (Enterprise JavaBeans) に基づくサーバー アプリケーション開発をサポートします。ただし、この種のアプリケーション サーバーには、トランザクション処理をサポートしていない、セキュリティが不十分である、既存の取引システムのサポートが限定的である、パフォーマンスが低いなどの欠点があります。
ミドルウェアベースのアプリケーションサーバー
ミドルウェア ベースのアプリケーション サーバーは、既存のシステム (TP モニターなど) と統合することで、トランザクション処理、セキュリティ管理、フォールト トレランス、ロード バランシングなどのより強力な機能を企業に提供できますが、ほとんどのソリューションはクライアント/サーバーに基づいています。このアーキテクチャ、または 3 層アーキテクチャに限定されたものは、分散 Web アプリケーションの構築には適しておらず、効果的な開発および管理環境がありません。
注: 負荷分散は、対称的な方法で複数のサーバーで構成される一連のサーバーであり、各サーバーは同等のステータスを持ち、他のサーバーの支援なしで独立して外部サービスを提供できます。何らかの負荷分散技術により、外部から送信されたリクエストを対称構造の特定のサーバーに均等に分散し、リクエストを受け取ったサーバーが独立して顧客のリクエストに応答します。バランスの取れた負荷により、顧客のリクエストをサーバー アレイに均等に分散できるため、重要なデータへの高速アクセスが提供され、多数の同時アクセス サービスの問題が解決されます。このクラスター技術により、最小限の投資でメインフレームに近いパフォーマンスを実現できます。ネットワーク負荷分散の利点: 第 1 に、ネットワーク負荷分散テクノロジーにより、負荷が高くてもサーバーが迅速に応答できるようになります。第 2 に、ネットワーク負荷分散では IP アドレス (またはドメイン名) を外部に提供するだけで済みます。または、ネットワーク負荷分散内の複数のサーバーが利用できない場合でも、サービスは中断されません。ネットワーク負荷分散は、サーバーが利用できないことを自動的に検出し、残りのサーバー間でクライアント トラフィックを迅速に再分散できます。この保護手段は、主要なビジネス プログラムに中断のないサービスを提供するのに役立ち、ネットワーク アクセスの増加に応じてネットワーク負荷分散サーバーの数を増やすことができます。第 4 に、ネットワーク負荷分散は通常のコンピュータに実装できます。
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx