アプリケーションの進化または今後の展開

記事を「応用情報システムの進化とそのアーキテクチャ開発の展望」と呼ぶのは学術的すぎて、結局のところ、実際の実際の経験から非常に短い絞り込みがあり、そのニーズとソリューションを引き起こした技術の開発のための可能なオプションがあります。 この記事が、応用IPに関連するさまざまなタスクを一般化し、再考するのに役立つことを願っています。これらの用語の意味をすぐに明確にしたいと思います。 IP-データの処理、送信、保存を提供するシステム。 これはすべてプログラミングではありませんが、最近では、IPはWebおよびモバイルアプリケーションに関連付けられることがほとんどですが、それらは完全には一致しません。 質問をできる限り広く見て、コメント欄で議論に参加してください。 それでも、私は意図的にフレームワークとテクノロジーの名前を使用して不要なホリバーを避け、一般的に受け入れられているアーキテクチャ、標準、プロトコルの名前に限定します。







画像

技術の分岐は歴史の中で何度も起こりましたが、不必要な期間は常に、持続可能な開発の段階に続きます。重要でない分岐が影になり、関連する機能が最も実行可能なハイブリッドに結合されます。 まず、IPが最初からどのように進化したかを簡単に説明します。 思い出があふれるには、わずか9行と写真が必要です。









建築 主な機能 交換
#0データファイル すべてのデータをさまざまな未知の形式のファイルに保存しました ファイル
#1ファイルサーバー アプリケーションと同じプロセスで動作するデータベースエンジン ファイル
#2ローカルDB DBMSは別のプロセスで際立っています-DBMSサーバー IPC
#3クライアントサーバー DBMSはさまざまなタイプのワークステーション(クライアントワークステーション)のLANで利用可能 RPC
#4 3層 アプリケーションサーバーレイヤー、3リンク、リモートオフィスからの作業が際立っていた RPC
#5 Webクライアント シンクライアントがWebブラウザからデータにアクセスするように見える HTTP
#6 Web 2.0 AJAX、Comet、SSEを介した要素の部分的なインタラクティブな再読み込み アヤックス
#7 SPA / WebApp ページをリロードしないフル機能のブラウザーアプリケーション アヤックス
#8 PWAおよびモバイル プログレッシブWebアプリケーションとモバイルアプリケーション Https






リストされたソリューションのほとんどすべてがニッチに並行して存在するため、アーキテクチャの存在時間を示しませんでした。 最新のIPの場合、一般的な技術は依然として5番です。 リンク(シンクライアント)およびサーバー上のすべてのロジックによる再読み込みを伴う通常のWebページ。 多くのタスクでは、これ以上は必要ありません。 #8の最前線では、Webアプリケーションとモバイルアプリケーションがアーキテクチャ的に統合されましたが、テクノロジーと実装には多くの違いがあります。 次は? トレンドの概要は既に説明されています。サーバーはAPI、クライアント上のデータベース、クライアントでのレンダリング、リッチGUI、オフライン作業、高負荷、多くのユーザーです。 しかし、技術的には、これらのニーズは非常に多くの異なるプラットフォームで満たされているため、分岐が発生しています。 これは、Webアプリケーションとモバイルアプリケーションにも当てはまります。 デスクトップアプリケーションの場合、いくつかの注意事項があり、状況も一致していると言わなければなりませんが、現在は傾向がなく、次の4つの開発オプションを一般的に適用IPに適用できることを意味します。















高クラウド負荷に対応(#Aクラウド高負荷)



利点 :クラウドは、RESTの原理を使用してスケーリングの素晴らしい仕事をします。アプリケーションが状態を放棄した場合、数千万人のサブスクライバーにサービスを提供できます。 サーバープロセスは状態をメモリに保存せず、すべてのネットワークコールは独立しており、セッションをどの状態にも転送しません。







欠点 :実際のアプリケーションでは、問題を解決するために状態が必要なため、RESTから離れることがよくあります。 それは、スケーラブルではないが、多くの制限がある疑似RESTであることがわかりました。 そして最も重要なことは、ユーザーと対話的に対話したり、ユーザー間の対話を提供したりするアプリケーションにはまったく不適切です。







結論 :多くの場合、これは最適なソリューションです。コンテンツ、情報リソース、メディアのパブリッシングはクラウドで効果的に構築できますが、データベースと対話機能を備えた複雑なアプリケーションの場合、これはアーキテクチャ#8からの後退です。







アプリケーションサーバー(#Bアプリケーションサーバー)



利点 :Webサーバーはアプリケーションサーバーによって占有されています。 Webサーバーの制御下で実行されるのはアプリケーションではありませんが、Webサーバーはアプリケーションまたはアプリケーションサーバーに組み込まれています。 さらに、効率を高めるために、HTTP / HTTPSを専用のTCP / TLSプロトコルに置き換えることができます。 これは特にモバイルおよびデスクトップアプリケーションに当てはまり、RPC、イベントバス、データベースの同期を構築できます。







短所 :そのようなアプリケーションにはまだユニバーサルクラウドソリューションがありませんが、すべてがまもなく表示されるようになります。 その前に、独自の技術スタックを発明し、自分でプライベートクラウドを構築する必要があります。 維持管理が困難です。 さらに、サーバーとクライアント上のデータベースの同期は、通常は開発者の多大な努力によって、アプリケーションを介して手動で行われ、通常、このようなソリューションを再利用することはできません。







結論 :現在、この方向は、 何百万人ものユーザーにサービスを提供し 、インタラクティブなアプリケーションを作成するか、大規模ユーザー向けの同様のソリューションを準備するR&D研究所を必要とする大企業のみが利用できます。







DB中心のアプローチ(#Cデータベース中心)



利点 :データベースをアプリケーションの前に置き、データベース間の同期(部分レプリケーション)を設定することは非常に魅力的です。 したがって、アプリケーションにDBMSが組み込まれ、サーバーではなくローカルデータベースで動作します。 DBMSが長い間存在し、拡張することを学んだため、楽観的レプリケーション、運用変換、競合のないレプリケートされたデータ型など、多くの方法がすでに発明されています。







欠点 :データを介したアプリケーション間の通信のみでは、明らかに機能が制限されます。 これは、ベースで動作するすべてのものの削減です。 しかし、イベントの受け渡し、APIレベルでの統合、リモートプロシージャの呼び出しはどうでしょうか。 これはすべて、DB中心のアプローチで忘れられなければなりません。







結論 :特定のクラスのタスクでは、これは素晴らしいソリューションであり、イントロスペクションおよびスキャフォールディングUIとともに、このようなアーキテクチャは、APIを使用して統合し、プログラムで相互作用を記述するのに常に必要な、より複雑な競合他社の非常に幅広い分野を自動的に「展開」します







ピアツーピアまたはピアツーピア相互作用(#Dピアツーピア)



利点 :これにより、バインディング/ブローカー機能のみを実行するサーバーの負荷が軽減されます。 多くの場合、ユーザー間のローカルインタラクションは、特に大きなデータストリームの場合、リモートサーバーを介した場合よりも効果的です。 それは、個人データの交換の匿名性に希望を与えます。







短所 :ピアツーピアネットワークの「信頼」の問題は、まだ完全には解決されていません。 P2Pでのみ分散IPを構築することはできません。サーバーはこのスキームのままです。 これまでのところ、応用情報システムを構築するために必要な範囲での実装のための広範なプロトコル、ライブラリ、フレームワーク、およびその他のソフトウェアツールはありません。







結論 :ピアツーピアネットワークの要素は、集中型IPに組み込まれます。







トレンドの概要



これらの分野が合併した結果、どのようなハイブリッドが生まれるかはまだ明らかではありませんが、いくつかの仮定を構築し、少なくともトレンドを強調することはすでに可能です。







この段階でアーキテクチャの分岐が発生することは、アプリケーション自体にシステムコンポーネントが統合されているため、まず明らかです。

















個人的には、データ中心のアーキテクチャ(パレートの原則によれば、ニーズの80%を完全自動化でカバーする)とアプリケーションサーバー(残りの20%のAPIまたはイベントバスレベルでの統合を可能にする)を組み合わせたいと思います。 このため、IPインタラクションプロトコルは、RPC、REST、イベントバス、DB同期、バイナリストリーミングの5種類のインタラクションを同時にサポートする必要があります。 私たちのチームは現在、このような包括的なソリューションに取り組んでいます。







4つの大規模なアーキテクチャに加えて、個々の機能の組み合わせからハイブリッドを構築できます。









私たち全員が傾向を理解するために、私は質問に答えることを提案し、建設的な批判やコメントにも感謝します。








All Articles