SOAのアーキテクチャを実装する

私は、理論的な観点からクライアントを構築するサービス指向アーキテクチャ(SOA)、Webサービス、およびAjaxを使用してトピックに触れ、私はどのようにSOAアーキテクチャを実装するための実用的な詳細を掘り下げていない。記事のこの祭りでは、どのようにSOAアーキテクチャWebサービスとAjaxを使って実装するためのカバー。この問題を解決する方法もSOAのアーキテクチャには既に、既存のアーキテクチャをアップグレードするの問題に対処します。この資料には、次のとおりです:

  

•設計の具象状態転送(RESTの)ベースのURLには、セットとして記載されてコンテンツへ

•すべてのオリジナルの建築をスローすることなく、新しいSOAのアーキテクチャを作成する

•検証およびテストaWebサービス

•ピッキング以外のデータ

•ベースのWebサービスは、RESTの実装

•HTMLの

•はReally Simple Syndication(のRSS)

•アトムの各形式が、ユニークされているフォーマット内のコンテンツの構造は同じです。プログラミングの観点から、ソリューションビューモデルを含むとコントローラの再設計、アプリケーションは1つだけのURLと1つのデータ形式は、アトムがので、URLの背後にあるコードは、フォーマットのためだけにコンテンツを生成する必要があります。再度の場合は、設計、アプリケーションは、Atom形式でaWebサービスと見なされ、これの背後にある普遍的なフォーマットは、幅広い視聴者に理解を示すことであるという。そして、もしエンドデバイスは、その形式を理解していないそれを参照してデバイスにそれを把握することです。もちろん、エンドデバイスを求めて過酷に聞こえるかもしれないの形式を把握するため、それは実際にするたびに、HTTPプロトコルを使用してHTML生成している場合は、エンドデバイスを求めているどのようにデータを表示するを把握する。

場合、HTMLやHTTP、ほぼ普遍的なもの、理由がうまく生成されたHTMLの構造とは、Atomエンドデバイスが把握できる?その答えは、非常にスムーズにとして機能していません。 HTMLは普遍的にすべてのデバイス間で理解されていないユーザインタフェース技術です。おそらくフォーマットの構造当て推量がアトムエンドデバイスは、おそらく、汗や苦痛は、すべてのデバイス上に表示できるHTMLコードを書くに関連付けられて知っている。aWebサービスではベースAtomフォーマットの場合は、データが何であるかを表す明確に理解している。起動すると、aWebサービスについては、サーバーには、"ここのデータをどのように表示する図は言う。"もし、エンドデバイスAtomリーダーですが、どのようなデータとは何を理解するのは簡単だけれども、エンドデバイスがaWebブラウザの場合は、チャレンジしている。ほとんどの新しいブラウザアトムのWebサービスを理解していますが、別のオプションを具体的には、XMLHttpRequestオブジェクトは、要求がWebサービスの呼び出しを生成することができます支援するためにAjaxでハンドを持っています。 Webサービスにして、XMLHttpRequestオブジェクトによって処理されるデータ、というのも、Webサービスの大半は、XMLベースのデータは、Webサービスによって配信の形式を見出すことは簡単ですが実現します。作成の作業を委任することによりGUIを離れて、サーバーから、そこの役割を明確に分離されているクライアントとサーバーのゲーム。としては、サーバー開発者は、パフォーマンス、スケーラビリティ、堅牢性にフォーカスし、ストレージことながら、クライアントの使いやすさに焦点を当てることができますこのように分離は確実に、極めて重要であり、視覚的な美しさとわかりやすさ。デザイナーとプログラマーの2つの非常に異なるスキルセットを持って、彼らは互いに干渉してはならない。

サーバーの実装

変更されたアーキテクチャ、および2つのデータベースを処理している2つのプロセスは、データベースの同期メカニズムを使用して接続されます。ユーザーは、開発者の観点から、管理者は、各アプリケーションは独自のデータベースを使用します。2つのデータベースを処理し、正確に同じテーブル、ビューを管理するストアドプロシージャには、この新しいアーキテクチャは、同じテーブル、ビューを使用することが想定されると、ストアドプロシージャが、これは、新しいアプリケーションは、通常、テーブル、カラムの追加を含み、データは実際には常にこのケースではありません。この問題を解決するには、ビュー、ストアドプロシージャを使用。データベースの同期が可能ですデータベースのカプセル化を使用することは絶対最小値に複雑さを低減します。データベースの同期を使用する理由は、データの整合性を失うことなく2つのアプリケーションを分離するプロセスを開始することですが、新しいアーキテクチャの略として、wp_authorsとwp_usersテーブルを元のデータベースにのみ依存関係です。したがって、データベースの同期が定義され、唯一のwp_authorsとwp_usersテーブルが同期されます。任意の他のテーブルは元のブログのアーキテクチャで使用し、したがって、新しいアプリケーションのアーキテクチャには影響しませんが同期されていません。

開発者の前に行くことができると彼または彼女の独自のデータベース設計を破壊し、古いデータベースのデザインについて心配する必要はありません。これは、古いデータベースの設計が変更されないのは言うまでもないが、行くこのデザインは、ストアドプロシージャの作成を停止しない場合は、元のデータベース設計の可能性が潜在的にデータを破壊する。または防止するには、少なくともデータ破壊の可能性を最小限に抑えることが絶対では、データベース設計を使用する制約および検証のほとんどのSQLデータベースの制約を定義できるように重要です。バックアップステッピングモータと、このアーキテクチャを見て、あなたはそれに依存して通知する必要がありますリレーショナルデータベースの機能。ある状況では、開発者がリレーショナルデータベースを使用していないことができる。これらの状況については、私は解決策が、私は、リレーショナルデータベースを扱うにしているほとんどの一環として、および私はほとんどの読者は、同じ問題を抱えて信じるように誘惑しています。リレーショナルデータベースの機能に依存することは、データベースを理解する必要があります。オブジェクトの導入リレーショナルマッピング(ORM)ツールは、必要なSQLの知識では削減されます。たとえば、HibernateなどのORMツールを使用してビューの知識やストアドプロシージャを必要としません。 ORMツール"の"オブジェクトの階層のフォーム内のビューを作成します。 ORMツールを使用すると、同じアーキテクチャを実装することができますが、それはおそらく、ストアドプロシージャやビューを使用していないことを意味します。

ORMおよびリレーショナルデータベースを使用しての間に実質的な違いとビューのソリューションストアドプロシージャをされているコードとデータの永続性との間のカップリングのシフト。対照的に、リレーショナルデータベース層のビューを使用するとデータをやり取りするストアドプロシージャ。コーダの列とは、リレーショナルデータベースの種類について知る必要があると彼または彼女のプログラミング言語とは、SQLプログラミング言語の間のマッピングを提供しています。このような、JavaとC#、およびデータを取得しコマンドの準備の観点からの取材がかなり含ま古典的なプログラミング言語を使用する。以来、上記の言語のデータ型を宣言する必要はありませんルビー、Python、またはPHPなど、リレーショナルデータベースとの相互作用のプログラミング言語を使用して簡単です。ORMを使用して、コーダの問題彼または彼女の手を洗って置くORMレイヤーに焦点を当てる。

JavaとC#のプログラマは、ORMのは、唯一のコストは、トランザクションの制御とデータベースの操作のプログラマーの不足がされてデータベースと対話するための苦役を削除しますほとんどの場合、そのコントロールの欠如するときと比較考量受け入れられるリレーショナルデータベースのコードを記述する骨の折れる。問題は、アーキテクチャを使用すれば何ですか?個人的に、私はどんなプログラミング言語で簡単な私の時間で開発する時が使用されます。ですから、私は#、私は、ORMsを使用するときに私はPythonのコードを書いている傾向がある、JavaとC言語でコードを書くこと、私が直接リレーショナルデータベースにアクセスできます。あなたは、ORMレイヤー、どのような状況の下では、データベースの設計を決定しないようにする必要があります。データベース設計の永続化されているデータベースとデータなので、それはあなたのテーブル、ビュー、制約を理解すること、およびトリガの設計必要があることを意味決定されます。場合は、ORMはデータベースの設計を指示これは大変になるかもしれないし、非効率的なデータベースと同様の結果でした。は、任意のアプリケーションでは最も遅い部分は、データベースであることを忘れないで。データベースのレコード数百万人を介して細孔には、トランザクションを管理しており、送信してネットワーク経由でデータ。場合は、アプリケーションの設計、データベース設計の費用で、そこに魔法のように、データベースのパフォーマンスを高速化できる方法はないが効率的です。

記事は、ソニアLandeを提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、"SOAのアーキテクチャ"の自動ソフトウェアによって翻訳された実装する。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 322 users browsing the articles directory