Lecture 72:
このセクションの概要とサーバサイドJava
Lecture Content
このセクションでは、サーバーサイドのJavaプログラミングについて学びます。以下の4つです。
・サーバーとは何を指すのか
・サーバーサイドプログラムの動作の仕組み
・代表的なサーバーサイドのJavaプログラミングの手法である「JSP」とサーブレットについての簡単なプログラムを書く。
・実践的なプログラムを書く上で必要なフレームワークの考え方について
まず「サーバーとは何なのか」について説明します。
インターネットに常時接続されているコンピューターのことを「サーバー」もしくは「サーバーコンピューター」と呼んでいます。サーバーコンピューターには様々なものがありますが、例えば皆さんの会社のサーバールームや、データセンターなどに配置されている大規模なサーバーがあります。
また最近ではIOT〜Internet Of Things (モノのインターネット) と呼ばれるような、手のひらサイズの「Raspberry Pi (ラズベリーパイ)」というコンピューターや、名刺サイズの「Arduino (アルデュイーノ)」というコンピューターを使って、様々な気象データやセンサーなどから送信される情報を蓄積したり、分析をして環境改善などに活かそうという研究も盛んに行われています。
次に「サーバープログラムとは何なのか」について説明します。
まず左側が皆さんの使用してるパソコンやまたスマートフォンなどになります。これまでのセクションでは、皆さんの手元にあるコンピューター上で動くクライアントアプリケーションと呼ばれるプログラムを書いてきました。それに対してサーバープログラムはこのクライアントから「リクエスト」という何らかの処理の要望や、もしくは加工して欲しいデータを送信する、というリクエストをインターネットを経由して送信します。そしてこのリクエストが、サーバーサイドのコンピューターに送信され、そこでデータを加工したり計算したり、というプログラムを実行処理を行っていきます。
この処理が完了したら、今度は「レスポンス」という形で、先ほど処理を依頼したコンピューターに結果を送信します。
このように「リクエスト」と「レスポンス」をセットで様々な処理を行ってきます。
そして、リクエストをしてサーバーがで処理をし、実行結果を「レスポンス」としてクライアントに返して、最後に結果を表示します。この一連の流れの中で、サーバーサイドの処理をするプログラムのことを「サーバーサイドプログラム」と呼んでいます。
このセクションでは、このサーバーサイドの処理をJava言語で作成する方法について学んできます。サーバーサイドのプログラムの例としては、
・Web サーバー
会社のWebページや、様々なホームページを運用するために使われる仕組み。
・会社で資料などを共有するためのファイルサーバー
・メールの送受信を行うためのメールサーバー
・ Youtube やニコニコ動画などの動画を配信するサーバー
・LINE や Facebook などでメッセージを送受信したり、Twitterに投稿したツイートを処理するようなアプリのバックエンドサーバー
テキストだけではなく、例えばInstagramのように画像を扱って静止画を加工したり、動画を最適なサイズに変換したりといった処理をサーバー側で行うこともたくさんあります。
先ほどラズベリーパイの写真がありましたが、センサーネットワークのデータを集めて中央サーバーに送信したり、もしくは制御の情報をスマホやコンピューターから送って異なる場所にある装置を動かしたり、カメラを制御したり…こうした処理をする場合にサーバープログラムが活躍します。
このセクションではサーバーサイドの処理をJava言語で処理をする方法について学んでいきますが、サーバーサイドのJavaプログラミングにはいくつかの仕組みがあります。
特によく使われるのがJSP〜Java Server Pages、またサーブレットなどの仕組みがあります。
最近ではフレームワークと呼ばれるページの表示処理や、データベースへのアクセスなど様々な処理をライブラリとして持っているもの。 例えばSpring Frameworkなどが非常によく使われています。
またサーバーサイドプログラムはJavaだけではなく、よく使われる言語としては
・PHP
・Ruby
・Python
・Go言語
・Scala
が挙げられます。
特に日本では、PHPが代表的です。CakePHP、FuelPHPなどの、フレームワークと呼ばれるページの表示処理やサーバーサイド処理のライブラリーが豊富なものがあります。
Rubyの場合にはRuby on Railsが非常によく使われています。
Pythonの場合には、Djangoなどのフレーム枠と呼ばれるアプリケーションを簡単に作るためのライブラリが用意されています。
次にサーバーサイドJavaの特徴について見ていきます。
一番目はサーバーサイドJavaといいますが、単体でそのプログラムが動作するのではなく、スマホやパソコンなどから送られるリクエストを受け付け、それをサーバーサイドのJavaプログラムに渡すというサーバープログラムと連携して動作をします。
このセクションではサーバープログラムに「Tomcat」というサーバープログラムを使います。
クライアントアプリケーションとの違いとして、JavaのEnterprise EditionというJavaの実行環境を使います。これはJava SEと言われるJavaのスタンダードエディションに、サーバーサイドで処理をするのに必要なクラスライブラリを追加したものです。
3番目の特徴としてサーバーサイドJavaは、一種類ではなく様々な実装の仕組みがあります。
4番目の特徴として特にWebアプリケーションで使えるケースが増えていますので、HTMLと密接に連携していますことが挙げられます。
この講座ではHTMLについては詳しく扱いませんが、皆さんがもしも実践的なWebサービスやサーバープログラムを書きたい場合には、HTMLやCSSスタイルシートです。
JavaScriptなどの知識も勉強されるとより実用的なロケーションを作ることができると思います。
このセッションでは主にJSP (JSP というのは一斉メールファイルの中に Java のプログラムを埋め込むことができるという仕組み)を使用したプログラム作成について解説します。タブレットよりは低速なんですが非常に高速に開発をすることが可能になります。
そして JSPの次にサーブレットという、あらかじめコンパイルしたクラスファイルをサーバーサイドで実行させる仕組みについて見ていきます。
それでは次のレクチャーで、サーバーのプログラムのインストールから始めていきましょう。