WEBにまるわる技術の紹介 ⑤Webアプリケーションとは
こんにちは。
関東では土日は雨模様になっていますが、久しぶりに雨のにおいを嗅いで若干センチメンタルな気分です。
さて、今日の記事はWeb技術紹介の最終回、「Webアプリケーション」です。
Webサーバの紹介記事で静的コンテンツと動的コンテンツの違いを説明しましたが、動的コンテンツを作成するのがWebアプリケーションの役割です。
サーバサイドとフロントエンドの違い
ちょっと開発者っぽい言葉ですね。
下図はWeb技術シリーズの最初の記事で載せた全体構成図ですが、⑤Webアプリケーションが2か所出てきています。
左側のブラウザ側で動くWebアプリケーションを「フロントサイド」のWebアプリケーションと言い、右側のWebサーバ側で動く方を「サーバサイド」のWebアプリケーションと言います。
「サーバサイド」は前回のWebサーバの時に紹介した内容と同一で、動的コンテンツをWebサーバに送信します。
実は「フロントサイド」で動くWebアプリケーションもあるのです。
多くの場合、JavaScriptと呼ばれるプログラミング言語を使って開発するのですが、ブラウザでレンダリング(※前回記事参照)する際に、JavaScriptを使って処理を動かすことができます。
それによって、WebサーバにHTTPリクエストを送らなくても、”ある程度”の処理がブラウザ側で実行できるのです。
それによって、HTTPの通信回数が減り、よりサクサク動くようになります。
ただ、”ある程度”という意味は、データベースにアクセスしないような処理はどうしてもWebサーバで処理を行う必要があります。
具体的には、ユーザ登録画面を例にとると、カナ入力の所で英数字を入力されたときにエラーメッセージを赤字で表示さえることはフロントエンドのWebアプリケーションで実行できますが、入力されたメールアドレスが登録済みかどうかのチェックはデータベースにあるユーザ情報をチェックしないといけないのでサーバサイドのWebアプリケーションで実行されます。
Webアプリケーション開発のためのフレームワーク
Webアプリケーションは複雑な処理や、大規模な処理をプログラミングする場合には、巨大な量のプログラムになります。
業務システムになると、1つのサブシステム(商品マスタシステム、会計システム等)でも数十~数百万ステップ数となり得ます。
複数人数で手分けして、開発を効率的に行うために、開発フレームワークというものが世の中にはあります。
ITベンダーが有償で提供しているものや、有志が無償で提供しているもの、オープンソースなもの、など様々あります。
また、技術の変遷によってフレームワークも生まれては廃れていくといったことを繰り返しています。
説明は省きますが、以下リンク集ですのでよろしければご一読ください。
※1開発者向けの記事です。
※2サーバサイドではなく、バックエンドという言葉が使われています。ほぼ同じ意味です。