
Javaでのサーバサイド開発|サーバサイド開発の注意点5つ
目次
Javaとは
Javaは、サンマイクロシステムズが開発したオブジェクト指向プログラミング言語です。
Javaはオブジェクト指向プログラミングを前提として過去の言語の仕様を受け継がず、ネットワーク環境での利用を意識した設計を行っています。その結果、Javaは基本的にコンピュータ機種やOSに依存せずに動作するのが特徴です。
現在はサンマイクロシステムズを買収したオラクル社が開発を引き継いでいます。
サーバとは
サーバとは、ホームページを表示するのに必要な情報を格納する場所のことです。
サーバから情報を受け取る側のコンピュータまたはソフトウェアをクライアントと言います。サーバはクライアントからのリクエストに応じてhtml・画像・音楽・映像ファイルの提供を行い、クライアントは指定したホームページを表示します。
サーバサイド
サーバサイドはWebサーバ上で動作するプログラムです。
サーバサイドはクライアント側で持っていない情報を参照する場合にプログラムを実行します。その結果、クライアントの環境に依存せずに開発・管理がしやすいのと、html・画像・音楽・映像ファイルをサーバ側のデータベースで一元管理可能な事に利点があります。
代表的なプログラミング言語として、Java・PHP・Ruby・Pythonがあります。
クライアントサイド
クライアントサイドはWebブラウザ上で動くプログラムです。
クライアント側がサーバにリクエストすると、Webサーバにあるサーバサイドプログラムがリクエストした内容を返信します。
返信した内容を基に、クライアント側のWebブラウザ上でプログラムが実行します。この様に動作するプログラムはクライアントサイドと言い、代表的なプログラミング言語として、JavaScript・CSSがあります。
サーバサイドプログラミングでできること
サーバサイドプログラミングは、サーバ上で動的Webサイトを実行するコードを作る事です。
静的なWebサイトはサーバサイドがクライアントサイドからの要求に対して一定のコンテンツを返すのに対し、動的なWebサイトはサーバサイドがユーザー毎に異なるデータを返します。
動的Webサイトを実現するにはサーバ上で仕組みを作るコードが必要で、このコード作成をサーバサイドプログラミングと言います。
情報の保管・提供
サーバサイドプログラミングによって、サーバの負荷やデータ量を減らします。
オンラインストアで商品をWebで表示する場合、商品毎に静的なページを送るとデータ量が膨大になるので、サーバサイドプログラミングではデータベースにデータを格納して動的なページを作ります。
そして、HTML・XML・PDF・画像を送り返してクライアントサイドのフレーム処理に任せます。その結果、サーバーの負荷を低減します。
データの分析・改善
サーバサイドプログラミングはクライアントの情報を活用してユーザーの使い勝手を改善する事が可能です。
サーバはクライアントの情報を保管しています。サーバサイドプログラミングはこの情報を活用して、販売サイトにおいてユーザーがクレジットカードカードを再入力する手間を省く事が可能です。
また、Googleマップにおいては、ユーザーの現在地から経路情報の提供や、検索からお勧め情報の案内が可能です。
データへのアクセス制限
サーバーサイドプログラミングでは、認証ユーザーがデータへアクセスを制限する事が可能です。
サーバサイドプログラミングでアクセス制限を行う事で、認証ユーザーは特定のコンテンツへのアクセスは可能でも、別ユーザーに対しては制限をかける事ができます。
SNSで自分のデータには全てアクセス出来るが、それ以外の人が閲覧しかできない例は、サーバサイドプログラミングによるサービスです。
Javaでサーバサイド開発をするにあたっての注意点 5つ
サーバサイド開発には、プログラミング言語のみならず、サーバの種類・HTMLの理解が必要です。
サーバサイド開発において多く使われているプログラミング言語はJavaです。JavaはOSやユーザー環境に依存しない利点があるので、Webアプリケーションにおいて多く使われています。
Javaの文法以外にも、利用するサーバの種類やHTML・XMLといったマークアップ言語、データベースの理解も必要です。
注意点1:通常のJavaを理解する
Javaで開発するにはJDKのインストール・プログラムのコンパイルが必要です。
Javaでプログラムを作るにあたって必要なのが、Java SE Development Kit(JDK)です。JDKはオラクル社が提供するOpenJDKをダウンロードしてPCにインストールします。
Javaでプログラムを作成したら、Python・Rubyと異なり、コンパイルしてクラスファイルを作成する必要があります。
注意点2:サーバに関する知識が必要
開発者は使うサーバの種類を把握する必要があります。
サーバには共用・専用・VPS・クラウドなどがあります。共用・専用は物理サーバですが、VPS・クラウドは仮想サーバです。
物理サーバは実体のあるサーバで、仮想サーバは1台の物理サーバを複数台に分割して、あたかも独立したサーバとして利用します。サーバは設定・他ユーザーからの影響を考慮して選ぶ必要があります。
注意点3:マークアップ言語の理解は必須
開発者はHTML・XMLを理解する必要があります。
マークアップ言語とはコンピュータによって処理される言語の一つで、データ中に特定の記法を用いて何らかの情報を埋め込みます。これにより、文字列の一部を見出し・段落処理・文字色や強調が可能です。
HTML・XMLはマークアップ言語で、Webアプリケーションの表示に関連するので、サーバサイド開発においてはマークアップ言語の理解は必須です。
注意点4:データベースシステムの知識が必要
サーバサイド開発ではデータベースとのやり取りが発生するので、必要な知識です。
ECサイトのような動的Webサイトは顧客情報・商品情報がデータベースに格納されています。サーバサイド開発においては、クライアント側からのリクエストでデータベースから情報の抽出や更新処理を実装する必要があります。
Webアプリケーションではデータベースを使うので、データベースの知識やSQLのスキルが必要です。
注意点5:JavaとJavaScriptを混同しない
JavaとJavaScriptは別物です。
JavaScriptはクライアントサイドのプログラム言語として使われていますが、””Node.js””によってサーバサイドでも使用可能になりました。両者に””Java””が付くので混同しやすいですが、両者は生い立ちが異なるので、文法が違います。
特にデータ型(Javaは最初に定義するが、JavaScriptは適時変更可能)やコンパイルの有無で違いがあります。
サーバサイド開発で使われるプログラミング言語の例 3つ
サーバサイド開発はJava以外のプログラミング言語でも可能です。
サーバサイド開発に使用するプログラミング言語はJava以外にも、JavaScript(Node.js)・Ruby・Pythonでも可能です。この内JavaScriptはクライアントサイドのプログラミング言語で有名ですが、Node.jsを用いればサーバサイドでの開発が可能です。
JavaScript以外の言語3つを以下で紹介します。
例1:Python
AI・機械学習に関するWebアプリは、サーバサイドでもPythonを使います。
PythonはAI・機械学習、データ分析に用いられるプログラミング言語で、これらに関するクライアントサイドのWebアプリはPythonで記述されています。この関係で、サーバサイドの開発に用いるプログラミング言語もPythonです。
近年、Pythonを用いたサーバサイド開発が増えています。
例2:Ruby
Rubyは国産プログラミング言語で、簡単かつ豊富な機能を実現します。Rubyは日本人が開発した国産プログラミング言語です。
Rubyは簡単かつ高機能さが特徴で、コーディングのしやすさやソースコードが読みやすいのが特徴です。TwitterやクックパッドのサーバーサイドはRubyを使用しています。
例3:PHP
PHPは数多くのサーバーサイドの現場で使われています。PHPは、動的なWebサイトを実現する為によく使用されているプログラミング言語です。
PHPはWeb開発の為に設計された軽量なプログラミング言語なので、大手企業が運営するWebサービスに実装されている事が多く、サーバサイドプログラミングの中でも特に代表的な言語です。
Javaを使ってサーバサイドの開発に挑戦してみよう
サーバサイド開発のプログラミング言語はJavaが多いので、習得する価値があります。
JavaはWebアプリ・Androidアプリ開発や金融システムにも使われているので、応用がききます。Javaは文法やコンパイルの面で難しいですが、Javaを使ったサーバエンジニアの求人は結構あるので、勉強してスキルを上げましょう。