1. ホーム
  2. web-services

[解決済み] Web開発におけるフロントエンド、バックエンド、ミドルウェアの違い

2023-08-18 07:55:59

質問

フロントエンド、バックエンド、ミドルウェア(ミドルエンド)の違いを簡潔に比較・対比できる人がいたら教えてほしいのですが。

これらが重なるケースはあるのでしょうか? また、必ず重なり、フロントエンドとバックエンドを分けることができないケースもあるのでしょうか? ボトルネックという点では、どのエンドがどのようなボトルネックと関連しているのでしょうか?

どのように解決するのですか?

1つの内訳を紹介します。

フロントエンド層 -> 通常、HTML、Javascript、CSS、Flash、およびASP.Net、クラシックASP、PHPなどのさまざまなサーバー側コードの組み合わせからなるユーザーインターフェイス層です。 コードの点から見て、ユーザーに最も近いところにあるとお考えください。

ミドルウェア、中層 -> 1つ後ろの層で、一般にシステムのquot;plumbing"部分と呼ばれる。 UIとデータの間の接着剤と見なすことができ、WebサービスやWCFコンポーネント、または他のSOAコンポーネントである可能性があります。

バックエンド層 -> データベースや他のデータストアは、一般的にこのレベルにあります。 Oracle、MS-SQL、MySQL、SAP、およびさまざまな市販のソフトウェアが、データの最終処理であるこの部分のソフトウェアとして思い浮かびます。

Javascript を生成する内蔵の AJAX 機能を使用する ASP.Net ウェブサイトのように、すべてを 1 つの層に注ぎ込むことができる一方で、背後のコードにはデータベース コマンドが含まれ、ミドルエンドとバックエンドの両方の層を含むことができるため、これらの層間に重複が存在する可能性があります。 また、VBScript を使用して、ADO オブジェクトを使用してすべての層として機能させ、3 つの層すべてを 1 つに統合することも可能です。

同様に、ミドルウェアとフロントエンドまたはバックエンドのどちらかを取ることは、いくつかのケースで組み合わせることができます。

ボトルネックには一般的にいくつかのレベルがあります。

1) データベースまたはバックエンド処理 -> これは、給与計算や販売など、データベースへのスループットが物事を停滞させているタスクによって異なります。

2) ミドルウェアのボトルネック -> これは、あるWebサービスが容量を超過している場合ですが、フロントエンドとバックエンドはより多くのトラフィックを処理するための帯域幅を持っています。 あるいは、Biztalk や MSMQ のようなものを使用してボトルネックとなる、UI 部分や生データではないシステムの一部であるサーバーがあるかもしれません。

3) フロントエンドのボトルネック -> これは、クライアントまたはサーバー側の問題かもしれません。 たとえば、ローエンドのPCで、大量のデータをダウンロードするWebページを読み込ませた場合、クライアントがボトルネックになっている可能性があります。 同様に、Amazon.com やその他の高トラフィックの Web サイトが時々受けるような要求が殺到している場合、サーバーは要求をキューに入れることができます。

これは解釈の余地があるため、決して完璧ではありませんし、YMMVです。


編集: 考慮すべき点は、システムによっては複数のフロントエンドやバックエンドを持つことができるということです。 たとえば、コンテンツ管理システムには、サイト訪問者がコンテンツを表示する方法があり、それはフロントエンドですが、コンテンツ編集者がサイト上のデータを変更する方法はどうでしょうか。 このデータを引き出す機能は、UIコンポーネントであるためフロントエンドと見なすこともできますし、一般ユーザーがサイトを閲覧するのではなく、内部ユーザーが使用するためバックエンドと見なすこともできます。 このように、ここでは文脈について言わなければならないことがあるのです。