読書備忘。新テーマです。
---------------
■経緯のはなし
会社の先輩と同期と勉強会をやっています。
今年度下期のテーマを私が出すことになり、苦し紛れに
『JavaEEだけ(StrutsやiBatisやSpringを使わない)でアプリケーションフレームワークをつくろう』
と提案したのが、このテーマを立てることになったきっかけです。
仕事(BtoBの新規システム開発をやってます)では、Spring、iBatis(とSwing)を使ってるのだけれども、
どうやら、JavaEEだけでDIもORMもできる、らしい、ということをその先輩と同期に聞いたので、
当方、調べて、先月簡単なプレゼンをしました。
さあ、じゃぁ次は実際つくるぞ、となるわけですが、素地がないので、またまなび。
ここには、その備忘を書いていくつもりです。
なるべく誠実に書くつもりですが、力量不足からくる記事の正確性の欠如等は
ご容赦ください。
---------------
■ネタ本のはなし
しばらく、
ここ
▼ThinkIT様
http://thinkit.co.jp/book/2010/01/08/619
やここ
▼CodeZine様
http://codezine.jp/article/corner/409
を見ていたのですが、情報がたりません。
これがいい、というので、先週の日曜日に買ってきました。
(そして即日、章ごとに切り裂いて、ホッチキスで14分冊にしました。)
▼Bignning JavaEE6(翔泳社)
http://books.shoeisha.co.jp/book/b92647.html
会社の行き帰りに読んで、かえって時間があれば、このブログを書こうと思います。
しばらく、三国志の読書はお休み。
代わりに(?)こんなのを毎日2頁読んでます。
▼ヒルティ『眠られぬ夜のために』
http://www.iwanami.co.jp/cgi-bin/isearch?isbn=ISBN4-00-336381-S
---------------
■JavaEEてなんだ
「エンタープライズアプリケーション開発のために必要な機能をまとめた一連の仕様」
「仕様」なんですね。
「仕様」。国語辞典を引いてもピンとこないので、自分なりに超訳すると、
仕様=外部からの入力に対し、どのような出力をするか定めたもの(内部構造はとわない)。
というところでしょうか。
具体的にJavaEE6では約30の仕様がJSR(Java Specification Request)として内含されています。
それでは「エンタープライズアプリケーション開発のために必要な機能」てなんだ。
以下、JavaEE6の新機能・キーワードとともに考えてみようと思います。
--------------
■データの永続化=データベースアクセス
□キーワード:JPA(Java Persistence API)
誰かが、今のエンタープライズアプリケーションの大部分は、
「DB周りにぺっとGUIはっただけの代物」などと
言っていましたが、確かにそんな気もします。
そういう意味で、データ永続化はエンタープライズアプリケーション開発で必須。
しかしながら、RDBとオブジェクトを操作するJavaではデータを取り扱う考え方が違うため、
その間をつなぐ必要があります。
その間をつなぐのがORM(Object Relation Mapping)という考え方。
JavaEE6では、JPAを、ORMの標準APIにしています。
※ちなみに私の今の仕事ではiBatisをつかってます。
--------------
■トランザクション管理
□キーワード:JTA(JavaTransactionAPI)
データ永続化に関連しますが、データは一貫性を保持するため、ひとつのまとまりで
更新・削除・登録をおこなわねばなりません。
そのひとまとまりがトランザクションであり、その管理をするのがJTA(らしい)。
※今の仕事ではSpringでトランザクション境界を設定しているのですが、
これも、標準でできるようです。
--------------
■依存性注入(DI:Dependency Injection)
うまく説明できませんが。おいおい。
Springでできてたところが標準仕様になったらしい。
--------------
■ユーザーインターフェイス
□JSF(JavaSeverFaces)
JSPに代わる、プレゼンテーション層の仕様のようです。
いまSwingなのですが、ぽとぺたとかできるツールあるのかな…。
こう書いてみて、とても書ききれないことに気付いて……。
その、じつはEJBってよく分かってないのですが、これを機会に勉強したいと思います。
『Bignning』の柱はJPA・EJB・JSF・別システムとの相互連携(Webサービスなど)の4本。
まず、JPA・EJB・JSFの3本をざっと通覧しようと思います。
-------------
■閑話。(Javaと周王朝)
Javaの標準化史をみて、中国史に似てると思ったりしました。
とくに、いろんなフレームワーク(Spring・Struts・Hibernate etc)ができて、
それが標準仕様に取り込まれるあたり。
Strutsは袁紹であり、Springは曹操であり、Hibernateは孫権であり、標準仕様JSRは献帝?
むしろ、春秋時代っぽく、まず力をつけ覇を争うのは諸侯(さまざまなFW)で
最終的に勝ち残ったSpring桓公が、JSR周王朝を擁して、それが権威を持つ、みたいな。
封建制というゆるい支配体制をもつ周王朝が700年続いたように、
仕様として提示されるというゆるい紐帯で結びつくJavaも今後長く続いていくのだろうか。
そんな閑話で、第1回は終了いたしたく候。