もう一つのSRA東北

元エンジニア!今は営業マン!が学ぶJavaEE日記(第1話?)

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

 

みなさんこんにちは。

週末、大寒波が日本を襲いましたが、みなさん足元は大丈夫でしょうか(汗)
外回りの度に滑ってしまった営業戦略部の我妻裕太です。
2015-1224-04

今回はシステム開発では切っても切れないフレームワークの記事を投稿したいと思います。

タイトルはズバリ「元エンジニア!今は営業マン!が学ぶJavaEE日記」です。
learning-20-18

最近、国内産のJavaフレームワークの開発終了宣言がありました。

そんなこともあり、今後Java系のシステム開発はどのフレームワークを採用するべきか頭を悩ませる方が多いかもしれません。
learning-20-03

自分たちでメンテナンスを行っていくか、またはシステムを一新するかなど選択肢はいろいろあるかと思います。

そんなことも最近ありながら、さらにいろいろな繋がりからJavaEEに触れる機会がありましたので、JavaEEについて学んだことの一部を本コラムを通じてご紹介できればと思います。

今回は以下の内容でお時間をいただければと思います。

 

目次

1.JavaEEとは
2.メジャーなJava系のフレームワーク?
3.JavaEEの歴史

 

対象

本コラムはJavaEE入門の内容です。
以下の方を対象としており、一緒に学べればと考えております。

・Javaの経験がない
・JavaEEの経験がない
・JavaEEを調査中

私は営業なので、高度なことはできません(汗)

高度な技術内容は本コラムでは掲載予定はありませんので、あらかじめご了承ください(汗)

それでは、さっそく進めていきましょう!!

 

JavaEEとは

Java Platform, Enterprise Editionの略称で、JavaでWebアプリケーションを開発する際に使用するフレームワークです。

少し話が脱線しますが、フレームワークとは?っというところですが、
フレームワークは英単語では枠組み、骨組みを意味します。
learning-20-04
システム開発の分野ではシステムを開発する際に必要な機能や、汎用的に利用ができる機能を集約したものをフレームワークと呼ぶことが多いようです。

システムを開発する際は0からプログラムで開発するのではなく、ある程度部品や材料がそろった状態でお客様の要望を形にしていくとことが多いです。
learning-20-05

その部品や材料をまとめたものがフレームワークといったイメージでしょうか。
learning-20-17

そのフレームワークであるJavaEEを利用すると、例えば、とある企業の基幹システムやインターネット上のサイトを開発する際も必要な機能を全て開発するのではなく、JavaEEの機能を利用しながら、必要な所を開発していくことができます。

今回のJavaEEの特徴の一つとしては画面で入力されたデータをプログラムに受け渡しやすく、そして、システムの根幹となるDBへの登録も簡単にでき、扱いやすいのが特徴と感じています。

learning-20-06

もう少し技術的な内容だとこんな絵でしょうか。
learning-20-07

JavaEEは画面のプログラム、DBへアクセスするプログラム、そして、画面のプログラムとDBへアクセスするプログラムを仲介するプログラムが分かれているので、

画面の項目を修正する場合
・・・あのプログラム

データベースの登録処理を修正する場合
・・・あのプログラム

といった感じで、どんな時にどこを修正するのかが分かりやすい構造かと思います。

ほかにも便利な機能はありますが、システム開発の現場ではまず「画面→プログラム→DB」がセオリーと思い、今回はこの部分に焦点を当てていきたいと思います。

 

メジャーなJava系のフレームワーク?

さてさて、フレームワークというキーワードが出てきましたので、ここから少し余談です。

JavaEEはフレームワークと説明しましたが、世の中には他にどのようなフレームワークがあるか、少しだけ他のフレームワークのお話をします。

私が知っているJavaEE以外のメジャーなJava系のフレームワークはこんな感じです。

ApacheStruts
Seasar2
SpringFramework

英語が多いので、目が痛いですね(汗)

こんなに選択肢があると困りますよね。
でも選ぶ楽しさもあるのではないでしょうか。

私はもともと、へっぽこなエンジニアでしたが、上記の「ApacheStruts」、「Seasar2」についてはちょっと開発経験がありますので、本連載では「JavaEE」とのギャップなどをお伝えできればと考えております。

 

JavaEEの歴史

では、実際に開発する前に、まずは「触れるものの歴史を学ぶ」です。
learning-20-08

ここから、少しだけ今回使用するJavaEEと前述したフレームワークの歴史について触れたいと思います。

JavaEEは1999年にリリースされました。
当時は「Java 2 Platform, Enterprise Edition(J2EE)」と呼ばれていたそうです。
learning-20-09

が、リリースされたのはいいもののWebアプリケーションを開発するには基本的な機能は用意されていましたが、ちょっとお客様の要望を叶えようとすると汎用的な機能が少なく、苦労することもあったようです。
learning-20-10

スキルのある人は開発できるけど、私のようなエンジニアではだいぶ時間がかかる・・・そんな状況でした。

そんなJavaEEを尻目に飛躍していったのが、前述したJavaフレームワーク「ApacheStruts」です。
learning-20-11

「ApacheStruts」の詳細は割愛しますが、JavaEEで不足していた機能を補い、2000年に登場してからたくさんのシステムで採用されていきました。

前述した役割を持たせるような作りです。
learning-20-06

ただ、この「ApacheStruts」は先ほどの役割分担を表現するために画面とプログラムの組み合わせを設定ファイルに毎回書く必要があります。

システムの規模が大きくなればなるほど設定ファイルの内容は膨大になり、設定ファイルの内容が膨大になると・・・
learning-20-12

そんな「ApacheStruts」を尻目に飛躍していったのが、こちらも前述したJavaフレームワーク「Seasar2」です。
learning-20-13

「Seasar2」は設定ファイルに記載する内容が少なく、開発しやすいフレームワークです。(個人談)
そして、この「Seasar2」はなんと国内産のフレームワークなのです。
learning-20-14

「Seasar2」は国内産のフレームワークと言うこともあり、日本語のドキュメントも多く、困ったときは日本語のドキュメントを!!なんてこともでき、こちらもたくさんのシステムで採用されていきました。

(※)私の周りでは国内産の「Seasar2を採用している」とお聞きすることが多かったです。

 

・・・

 

っと、そんなこんなで7年の月日が流れました・・・
本日の主題となるJavaEEは果たしてどうなったのでしょうか。
learning-20-15

優秀なJavaフレームワーク達の活躍を尻目に本家のJavaEEは改良に次ぐ改良を重ねて再登場しました!!
再登場したのが2006年5月に登場したJavaEE5です。
learning-20-16

JavaEE5はこれまで活躍していたフレームワークに負けない機能を取りそろえたラインアップでした!!
この時から現在の名称の「Java Platform, Enterprise Edition」に変わり、略称も「JavaEE」に変わりました。

そこからさらに改良を行い、現在では2013年6月に登場した「JavaEE7」が最新版です。
learning-20-19

充実の機能ラインアップは以下のとおりです。

Java API for WebSocket
Java API for JSON Processing
Java Servlet 3.1
JavaServer Faces 2.2
JavaServer Pages 2.3
Standard Tag Library for JavaServer Pages (JSTL) 1.2
Batch Applications for the Java Platform
Concurrency Utilities for Java EE 1.0
Contexts and Dependency Injection for Java 1.1
Dependency Injection for Java 1.0
Bean Validation 1.1
Enterprise JavaBeans 3.2
Interceptors 1.2
Java EE Connector Architecture 1.7
Java Persistence 2.1
Common Annotations for the Java Platform 1.2
Java Message Service API 2.0
Java Transaction API (JTA) 1.2
JavaMail 1.5
Java API for RESTful Web Services (JAX-RS) 2.0
Implementing Enterprise Web Services 1.3
Java API for XML-Based Web Services (JAX-WS) 2.2
Web Services Metadata for the Java Platform
Java API for XML-Based RPC (JAX-RPC) 1.1 (Optional)
Java APIs for XML Messaging 1.3
Java API for XML Registries (JAXR) 1.0
Java Authentication Service Provider Interface for Containers 1.1
Java Authorization Contract for Containers 1.5
Java EE Application Deployment 1.2 (Optional)
J2EE Management 1.1
Debugging Support for Other Languages 1.0
Java Architecture for XML Binding (JAXB) 2.2
Java API for XML Processing (JAXP) 1.3
Java Database Connectivity 4.0
Java Management Extensions (JMX) 2.0
JavaBeans Activation Framework (JAF) 1.1
Streaming API for XML (StAX) 1.0
:

英語が多いですねぇ。日本語がないですねぇ・・・(汗)目が痛い・・・(汗)

少しだけJavaを経験したことがあるのでなじみの多い機能もありますが(嘘)、画面開発のための「JavaServer Faces 2.2」やDI機能の「Contexts and Dependency Injection for Java 1.1」、「Enterprise JavaBeans 3.2」などがあり、その点を学びながら他のフレームワークとの共通点を学べればと考えております。

おわりに

っということでいかがでしたでしょうか。

今回は英語が大部多くて原稿を書いている時も朦朧としていましたが、JavaEEの開発を始める前の「前準備」として本日は以下の内容を紹介しました。

1.JavaEEとは
2.メジャーなJava系のフレームワーク?
3.JavaEEの歴史

すぐに開発に入ってもいいのですが、まずは今から触るモノがどんなものかが分かると、愛着も沸いてくるかなと思い紹介させていただきました。

次回はJavaEEの開発環境の準備についてコラムを投稿予定です。
(※)評判がよくなければ、打ち切ります(笑)

今回の記事がみなさんのお役にたてれば幸いです。

今回も記事をお読みいただき、ありがとうございました。
また、次回もどうぞ、よろしくお願いいたします。

株式会社SRA東北
我妻裕太

最新コンテンツ情報をいいねしてチェック!

コンテンツを評価する

楽しい時間を過ごしていただけましたか?
少しでも楽しい時間、面白い、ためになったと感じた場合は「いいね」などページ下部のボタンをクリックしていただけますと幸いです。

みなさまからの評価を経て、コンテンツの改良を日々進めていきます。

運営・お問い合わせ

「もう一つの東北」は本当のSRA東北で運営されています:
https://www.sra-tohoku.co.jp/
お問い合わせはこちらをクリック

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る