Top Programming 5日間でマスターするJava速習講座 このセクションの概要とサーバサイドJava

Lecture 72:

このセクションの概要とサーバサイドJava

Instructor: 井上 博樹

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の次にサーブレットという、あらかじめコンパイルしたクラスファイルをサーバーサイドで実行させる仕組みについて見ていきます。

それでは次のレクチャーで、サーバーのプログラムのインストールから始めていきましょう。

Related Courses

2D、3D、VRゲームも作れる!Unity実践基礎講座
PRO COURSE

2D、3D、VRゲームも作れる!Unity実践基礎講座

5h 11m Video Course
Instructor: 浅井 良一
26
$95.99
誰でもわかる!Java基礎 & Javaオブジェクト指向
PRO COURSE

誰でもわかる!Java基礎 & Javaオブジェクト指向

7h 44m Video Course
Instructor: 荒川 栄一郎
$107.99
Java実践講座 実践基礎編
PRO COURSE

Java実践講座 実践基礎編

4h 2m Video Course
Instructor: 浅井 良一
24
$144.99
全53時間! ITスタートアップの全て -Web・アプリプログミングから起業まで-
PRO COURSE

全53時間! ITスタートアップの全て -Web・アプリプログミングから起業まで-

53h 56m Video Course
Instructor: Masaaki Hatano
58
$355.35
現役エンジニアが教えるAndroidアプリ開発入門
PRO COURSE

現役エンジニアが教えるAndroidアプリ開発入門

5h 31m Video Course
Instructor: 井上 博樹
28
$96.99
1週間で完全マスター! 0から学ぶ売れるiPhoneアプリの作り方-iOS9,Swift2
PRO COURSE

1週間で完全マスター! 0から学ぶ売れるiPhoneアプリの作り方-iOS9,Swift2

17h 3m Video Course
Instructor: BeSomebody
140
$85.99
Androidアプリ開発 実践基礎講座
PRO COURSE

Androidアプリ開発 実践基礎講座

1h 54m Video Course
Instructor: 浅井 良一
21
$48.99
The Complete iOS 9 and Xcode 7 Guide - Make 20 Applications
PRO COURSE

The Complete iOS 9 and Xcode 7 Guide - Make 20 Applications

32h 29m Video Course
Instructor: Aaron Caines
$149.99
【iOS12対応】未経験者がiPhoneアプリ開発者になるための全て
PRO COURSE

【iOS12対応】未経験者がiPhoneアプリ開発者になるための全て

17h 50m Video Course
Instructor: 藤井 悠太
11
$199.99
The Complete Objective-C Guide for iOS 8 and Xcode 6
PRO COURSE

The Complete Objective-C Guide for iOS 8 and Xcode 6

11h 5m Video Course
Instructor: Aaron Caines
$49.99
ミミプロ 〜耳で覚えるプログラミング〜 - 音声 + 映像セット版
PRO COURSE

ミミプロ 〜耳で覚えるプログラミング〜 - 音声 + 映像セット版

2h 45m Video Course
Instructor: BeSomebody
4
$355.99
Android App Development: Create a Spotify Clone
PRO COURSE

Android App Development: Create a Spotify Clone

5h 43m Video Course
Instructor: Grant Klimaytys
$19.98