ITシステムの形態(アーキテクチャ)は時代と共に変化してきました。その変化は集中と分散の繰り返しのように見えながらもスパイラルに進化しているのかも知れません。
メインフレーム
大昔まだコンピュータが非常に高価だった時代、メインフレームを中心に、そこにたくさんの文字のみ入力・表示できる端末(ダム端末)を接続したシステムが作られていました。
私自身はこのようなシステムに関わった経験はありませんが、昔は空港の手続きカウンター等にはダム端末が置いてあり、(たぶん訓練を受けた)係員が操作してチケットの確認などを行っていました。
データやプログラムは、当然メインフレーム(サーバー)の中にありました。
クライアント・サーバー
PCが誕生し、Windows、Mac OSのようなGUIが使えるOSも登場し、LAN(Local Area Network)で接続されるようになると。PC上でVB(Visual Basic)やDelphi等でGUIベースのアプリを作り、サーバーにあるRDB(Relational Database)にアクセスするクライアント・サーバーシステムが主流になって行きました。
企業内の情報システムを中心に、通常の社員が操作出来るシステムがたくさん構築されました。 アプリケーション・プログラムはPC上にあるので使い易いアプリが構築できました。
しかし、OSやライブラリー(DLL)のバージョンの微妙な違いでトラブルが発生したり、古いバージョンのアプリを使い続けられていたり等のトラブルも起きました。
Web
インターネットの時代になりWebが生まれ、スタティックなコンテンツだけでなくサーバー上のプログラムと連携出来るようになり、ネット上にいろいろなサービスが誕生しました。
プログラムはサーバー上で動き、PC上にはブラウザーのみインストールすれば良く、その後現れたi-mode等の携帯電話でもブラウザーが動き、この形態は瞬く間に広がりました。
企業内の情報システムも、プログラムはサーバー上にありPCにアプリをインスールしなくて良くクライアント・サーバーで起きたようなPC側でのトラブルが起きにくいこの形態のシステムが増えて行きました。
ただし、クライアント・サーバーに比べると使い勝手は劣っていました。しかし、2000年代にブラウザー上のJavaScriptを使うAJAXが再発見され使い勝手は(少し)改善され、現在一番使われているアーキテクチャではないでしょうか。
SPA
AJAXがさらに進化し、UI周りのコードは全てクライアント(PC、スマフォのブラウザー)側で動くSPA(Single Page Application)です。UI周りのコードはクライアントにあるので良い使い勝手を提供できます。
サーバー側にはデータベースやロジック部分はありますが、クライアントからのリクエストに応えるAPIサーバーになりUI周りの煩雑なコードは無くなりシンプルになります。場合によってはサーバーインフラを作らずにFirebaseのようなBaaS(Backend as a Service)の利用も容易になります。
また Web をスマフォアプリと同じ位置付けに出来るのも大きなメリットです。
まとめ
このようにITシステムのアーキテクチャは 集中と分散の繰り返していますが、SPAは新しいアーキテクチャ、または Web アーキテクチャの進化形ではないのかなと私は思います。