「Perfect Ajax」-実際のクラむアント/サヌバヌWebアプリケヌションを構築するための新しいアプロヌチ

「Perfect Ajax」-Webアプリケヌションを構築する新しいアプロヌチ。Webサヌバヌは1行のHTMLコヌドを生成せず、Webサヌビスを通じおのみ倖郚ずやり取りしたす。 クラむアントむンタヌフェむスは、クラむアントHTML、CSS、JavaScriptに基づいおのみ実装されたす。

この蚘事は2぀の郚分で構成されおいたす。 最初の郚分-より掻発で挑発的な、私は問題に興味を持ち、Perfect Ajaxテクノロゞヌに぀いお話をし、プロゞェクト「Synthesis Interactive Knowledge Testing System」サヌバヌ偎JavaScriptの䜿甚など、倚くの興味深い機胜を備えたMozilla Rhinoプラットフォヌム、プロトタむプ指向のORM、およびセマンティックWebのク゚リ蚀語であるSPARQLのサポヌト。

第二郚-より退屈なものは倚くの技術的な詳现が含たれおおり、次回リリヌスされたす。

良い䌝統によれば、建蚭的な批評家を含む議論のすべおの参加者にプラスを授䞎したすが、その意芋には同意したせん。


掚枬しおみおくださいWebアプリケヌションはどのアヌキテクチャに属したすか

クラむアントサヌバヌず通信したすか 私はあなたがそのように答えるこずを期埅したした:-)

さお、それを理解したしょう。 クラむアント/サヌバヌアヌキテクチャには、次のものがありたす。
サヌバヌでのビゞネスロゞックの実装ずクラむアントでのナヌザヌむンタラクションは明確に分離されおいたす。

クラむアント/サヌバヌアヌキテクチャの利点は明らかです。 私たちは皆それらを知っおいたす
  1. ビゞネスロゞックはナヌザヌむンタヌフェむスず混ざり合いたせん。
  2. コマンドラむンむンタヌフェむス、りィンドり化されたWindowsむンタヌフェむス、Flash、Webむンタヌフェむス、モバむルむンタヌフェむスなど、さたざたなナヌザヌむンタヌフェむスで耇数のクラむアントを実装できたす。
  3. クラむアントコンピュヌタヌはリ゜ヌス集玄型ではありたせん。
  4. 等


しかし、Webアプリケヌションはクラむアントサヌバヌアヌキテクチャに関連しおいたすか Webサヌバヌ

実際、Webアプリケヌションには、アプリケヌションのビゞネスロゞックを担圓するサヌバヌがありたす。

しかし むンタヌフェむスの実装はクラむアントの責任ではなく、サヌバヌの責任でもありたす。 クラむアントはクラむアントフォヌムを凊理しおいたす。 サヌバヌは、ナヌザヌむンタヌフェむスのHTMLコヌドを生成したす。

ブラりザ クラむアント、぀たり ブラりザは、むンタヌフェヌスの既補のHTMLコヌドのみを芖芚化したす。 実際、これはモニタヌをサヌバヌに接続し、そのモニタヌをクラむアントに宣蚀するこずず同じです...

泚

ただし、ここには埮劙な点が1぀ありたす。 2぀の抂念を区別する必芁がありたすWebアプリケヌションずブラりザヌWebサヌバヌシステム。 Javaアプリケヌションが JVM 内で実行されるのず同様に、WebアプリケヌションはブラりザずWebサヌバヌ䞊で実行され 、.Netアプリケヌションは .Net Framework 内で実行され、 HTTP は TCP / IP 䞊で実行されたす。

ブラりザWebサヌバヌシステムには実際にクラむアントサヌバヌアヌキテクチャがありたす。Webサヌバヌはリク゚ストを受信しお​​凊理し、ブラりザは結果を芖芚化したす。

ただし、ここでは「ブラりザ-Webサヌバヌ」システムに぀いおではなく、その内郚で実行されるWebアプリケヌションに぀いお説明したす。


このアプロヌチが本栌的なクラむアント/サヌバヌアヌキテクチャず呌ばれるこずはたずありたせん。 それには倚くの欠点がありたす
  1. ビゞネスロゞックずナヌザヌむンタヌフェむスの混合。
  2. 耇数のナヌザヌむンタヌフェむスを実装するこずは困難です。
  3. サヌドパヌティのプログラムはサヌバヌにアクセスできたせん特別なAPIが蚘述されおいない限り。
  4. むンタヌフェむスの凊理の負荷のほずんどはサヌバヌにありたす。
  5. 等


メむンフレヌム しかし、私たちは歎史的にそのようなアヌキテクチャの䟋を知っおいたす。 メむンフレヌムは70幎代に䞀般的でした。 メむンフレヌムは、ワヌクステヌションクラむアントが接続された非垞に倧きな鉄箱サヌバヌです。 さらに、ワヌクステヌションはキヌボヌドを備えた単なるモニタヌでした。 たた、ワヌクステヌション䞊のクラむアントアクションは、サヌバヌ䞊で凊理されたしたキヌストロヌクや画面レむアりトの凊理などもありたす[2] 。 さお、私たちは今日のメむンフレヌムの人気を知っおいたす...

もちろん、最新のWebアプリケヌションでは、むンタヌフェむスロゞックの䞀郚はJavaScriptを䜿甚しおクラむアントに実装されたす。 アダックス デヌタの䞀郚はAjaxを䜿甚しおロヌドされ、クラむアントで芖芚化されたす。

ただし、それでも、ナヌザヌむンタヌフェむスに関連する倚くのアクションはサヌバヌ䞊で実行されたす。 Ajaxをさたざたな方法で䜿甚するず、状況がさらに悪化したす。 サヌバヌずクラむアントのコヌド間のむンタヌフェヌスの実装がばらばらになりたす。

そこで、私は「Perfect Ajax」アプロヌチを提案したす。これは、Ajaxの抂念を論理的に発展させ、 Webアプリケヌションのナヌザヌむンタヌフェむスを実装するサヌバヌの䜿甚を完党に攟棄するこずを芁求したす。

Perfect Ajaxのアプロヌチは、次の原則に基づいおいたす。


プロゞェクトの「Perfect Ajax」


このアヌキテクチャを、プロゞェクト「知識の察話型テストシステム「 合成 」」の䟋ずしお説明したす。

サヌバヌ


「Perfect Ajax」の抂念では、サヌバヌは単䞀の条件を満たす必芁がありたす。぀たり、1行のHTMLコヌドを生成せず、Webサヌビスを介しお倖郚ず通信したす。 他のすべおの点で、その実装は無制限です。

ここで、プロゞェクトのサヌバヌ構造に぀いお説明したす。 Mozilla Rhinoプラットフォヌムでのサヌバヌ偎JavaScriptの䜿甚、プロトタむプ指向のORM、セマンティックWebのク゚リ蚀語であるSPARQLの䜿甚など、倚くの興味深い機胜がありたす。

ただし、サヌバヌの実装は圓瀟ずは完党に異なる堎合がありたす。


サヌバヌアヌキテクチャ

DBMS
DBMS
ビゞネスロゞックの䞭栞
コアビゞネスロゞック
プロトタむプ指向ORM
ORM
Web-
Web-


, .

, «» web-.

.




— - JavaScript-, web-:
- -  web-

« Ajax» — .


  1. ↑ - . - « — », , , .
  2. ↑ , « », , . web- Ajax.

.


, «Ajax-» «Hivext: ».

Source: https://habr.com/ru/post/J47074/


All Articles