可能な限り、JakartaEEについてできれば理解を深めたいという格好です。
Jakarta EE とは何か。
Java に触れていた10数年前の当時、よくわからないが何やらよく耳にするキーワードランキング第2位に君臨していた Jakarta EE。
(なお1位は Java Beans。不動)
Jakarta EE とは何か
Jakarta EEは、Javaで実装されたアプリケーションサーバの標準規格及びそのAPIを定めたもの。Java Platform, Standard Edition (Java SE) の拡張機能の形で提供される。
Java SE を機能拡張したものであるということで、エンタープライズ Java 開発において利用されるキーワードであると理解しました。
つまり、J2EE
主に小規模?大規模サーバーシステムの標準仕様として、動的HTTPサーバ機能、自動トランザクション管理機能、データベース接続機能、メッセージング機能、各種通信プロトコル機能がAPIとして定められている。
Java にてWebアプリケーションを開発/実装する際に必要となるであろう機能一式が提供されている、それが Jakarta EE。
DB接続機能なんて特にそういうことですよね。
Java EEの権利はサン・マイクロシステムズを買収したオラクル)が保有してきたが、同社は2017年にJava EEをEclipse Foundationに寄贈してオープンソース化をすることを発表。Java EEの商標については引き続きオラクルが保有するため、Java EE 9以後はJakarta EEの名で開発が進められる事が発表された。
なるほど、もとは J2EE だがオープンソース化に伴い Eclipse コミュニティに移管したということで。
Jakarta EEの機能を用いたアプリケーションを動作させるには、Jakarta EEの仕様を実装した実行環境やライブラリが必要である。Jakarta EE SDKには、Jakarta EEに準拠したオープンソースのアプリケーションサーバであるGlassFish Open Source Editionが同梱されている。
Jakarta EE 準拠のエンタープライズアプリケーションを動作させるには、その仕様に応じたアプリケーションサーバ上で動作させる必要がある。
Java のアプリケーションサーバといえば当方 Apache Tomcat なイメージでしたが、たしかに GlassFish というキーワードも当時よく耳にしました。GlassFish は Java のアプリケーションサーバだったんですね。しかも Jakarta EE の標準であると。
インフラエンジニアとして良い感じに稼働していた時代がありましたが、その時は Java アプリケーションサーバといえば Tomcat 一択ではあったんですよね。。
となると、Tomcat と GlassFish との違いはどんなだ? という疑問。
Tomcat では Jakarta EE 準拠のアプリケーションは動作するのか? とかとか。
さらに言うと、Java におけるエンタープライズアプリケーションの環境は、漏れなく Jakarta EE が標準なんだろうか。
オープンソース化されているのであれば、エンタープライズJavaにおいて、アプリケーションサーバ環境にてその他のディストリビューションというかフォークがあるような気がしてならない。
Tomcat と Jakarta EE(J2EE)
Apache Tomcat(アパッチ トムキャット)は、Java ServletやJavaServer Pages (JSP) を実行するためのWebコンテナ(サーブレットコンテナ、サーブレットエンジン)である。
という文脈。
Tomcat は Servlet や JSP を動かすためのソフトウェアであると。そもそもが J2EE 準拠で開発・誕生しているということですね。機能の差異はあれど、言い換えれば GlassFish で動くエンタープライズJavaアプリケーションを、Tomcat へ移植することは比較的容易と言えるかもしれません。
Webコンテナ(サーブレットコンテナ、サーブレットエンジン)という人
コンテナといえば Docker という具合です。現状。
たしかに Java のWebアプリ開発においてコンテナというキーワードは良く聞いてた気がします。コンテナというとすごく抽象的な表現な気がしてならないですね。Jakarta EE におけるWebコンテナの実態はどういったものか。理解しよう。(以前に業務で Tomcat の構築を行ったことがあり、その時の記憶も頼りに考察含む)
- Java の文脈ではサーブレットコンテナとも。
- サーブレットコンテナ、イコール Tomcat などとも。
- Java のアプリケーションサーバ、イコール、サーブレットコンテナとも。
- サーブレットコンテナ(ニアリーイコール Tomcat と仮定して)は、リクエストに対しセッション管理や、プロセス(Java なのでスレッド単位であるとも)のライフサイクル管理、MVC モデルで言うところの Controller(== Java Servlet) からのレスポンスをリクエスト元にレスポンスする、などの役割を担う人
- Servlet へのリクエストをロギングしたりもするのでは、と考察
- J2EE アプリケーションへの、ヒープメモリの確保やハードウェアリソースのチューニングも行えたりすると考察
つまりですが、J2EE アプリケーションにおける便利ツールなのではサーブレットコンテナの御方は、と一旦理解しました。なんか少しスッキリしました。
となると、Tomcat や GlassFish を代表するサーブレットコンテナは各所存在していて、それらがどうなのかとかどう差別化が成されているのかとか、疑問になります。ソフトウェア製品として有償であるとか無償であるとか。オープンソースなのかそうでないのか、とかの差異は想像がつきます。
Jakarta EE 準拠で動作するサーブレットコンテナは Tomcat や GlassFish 以外に他に何がある
パッと思いつくのは WAS, JBoss。Oracle の Web Logic もサーブレットコンテナだったのですね。
その他国産メーカーからも有償製品として J2EE 準拠のサーブレットコンテナがリリースされている。
終わりに
Jakarta EE とは、で始まった本タイトルですが、おおよその理解は出来た気がします。
次回は Java アプリケーション開発における IDE について掘り下げ理解いきます。
以上。
まずは Java への入り口理解をリスタートしてみるというお話し
タイトルのとおり、Java という技術キーワードからだいぶ遠ざかってしまっている現状ですので、過去の拙い知識知見を元に、まずはということで、Java の入り口理解のリスタートをしてみます。
(小声: 筆者は10数年前に SJC-P を取得した程度の Java Beginner です。)
一旦ですが、個人的に把握を行いたいトピックに絞ってみます。
千里の道も一歩から。。
Java SE
Java SE ってなんでしたっけ、、というレベルからリスタートです。
EE とかも確かあったよなと。SE/EE の違いは何だったっけ、など。
Java SE Development Kit 19.0.2 downloads
最新バージョンでは19。自分が触って頃は Java SE 8 とかでしたので、クラスや機能はだいぶ増えたということですよね。
EE はサーバサイド Java のパッケージも含まれる開発キットということで、つまりは SE はサーバサイド関連のパッケージが含まれないエディション、ということですか。
Java 開発キットの基本は、Java コンパイラ(たしか javac ...)と、バイトコード(中間コード?)を実行するための処理系(java.exe で合ってるのか)が含まれた開発キット/ツールの集合という理解。
なので、この Java SE に JDK が含まれるということ。だよな。
そうだ、J2SE なんていう呼ばれ方してましたよね当時。
Java EE
Enterprise Edition。
サーバサイド Java によるアプリケーション開発のパッケージを含むエディション、と理解。
エンタープライズ Java、なんていう表現もありましたでしょうか。
サーバサイド Java アプリケーション開発とはなんだ、というところですが、Servlet と JSP によるサーバサイドアプリの実装、なイメージです。
当時このあたり多少触れたことはありましたが、そもそもなんなのかについてさっぱり理解できてなく、改めて調べてみよう。
Java Servlet
Servlet は、MVC モデルにおける Controller を担うクラスを提供する、とあります。
- ユーザーからの入力を受けて処理をModelに振り分けたり出力のViewに返したりするJavaServletのController
なるほど、MVC のコントローラーだったんですね Servlet って。
少し昔に Ruby on Rails で簡単な Web アプリケーションを作ったことがありまして、なんとなくですが MVC についての理解はありました。
JSP
- 入出力を担当するJSPで作るView
では JSP は、ですがこれは View とのこと。ほう、MVC の V ですね。
MVC モデルにおける View は、個人的にはイコールでテンプレートエンジンの印象を持ってます。
Rails で言うところの ERB でしょうか。
となると、残る Model 部分のソフトウェアはサーバサイド Java アプリケーション開発において何があるのか。
調べたところ、Java Beans なるキーワードが!
当時 Beans のキーワードを目にする機会があったのですが、用途・目的がさっぱりでしたね。
ようやくふんわりな理解に至りました。
OpenJDK
そのままの理解でいけば、JDK 開発のオープンソースコミュニティですよね。
Java って当時はサン・マイクロシステムズにて開発が進められていて、その時点ではまだプロプライエタリなソフトウェアであったと記憶してます。
それがどこかのタイミングでオープンソースに移行したということなのか。
2006年11月13日、サンはJava仮想マシンであるHotSpotとJavaコンパイラを GNU General Public License のフリーソフトウェアとしてリリースし、JDKの残りの部分(Javaランタイム環境など)も2007年3月までにGPLでリリースする予定だが、
オープンソース化はこのタイミングだったんですね。
オープンソース化されたことで、Linux (Linuxカーネル/GNUソフトウェア群)のように、各所のベンダやコミュニティによるディストリビューション展開がなされること想像つきますね。
神様みたいな記事がありました。ありがたやありがたや~。。
この神様記事の最終更新は2020年と数年経過はしていますが、OpenJDK ディストリビューションにおけるポイントをいくつかピックしてみます。
- OpenJDK は、あくまでソースコードを成果物とするため、OpenJDK の実装をアプリケーションとして利用するには自前でビルドする必要あり
- ビルド済みのバイナリを利用する場合、他ディストリビューションから入手できる
- ディストリビューションごとの差異として、サポート期間(EOL)、拡張機能(JavaFX 等)の提供など、特色が異なる
ディストリビューションはまだ他にありますが、さすが巨大ソフトウェアである、、といったところでしょうか。
当方これまで Linux を扱った仕事をそれなりに結構まあまあやってきたこともあり、Java も同様に、オープンソースプロジェクトからディストリビューション展開されている流れはすんなり理解出来ましたね。
最後に

これ購入しました!読み込みます!
Azureを取り巻く市場分析およびクラウドシェア
概要
- Azure の各所市場分析を行う
- プロダクト推進のターゲットとして Azure でよいのか? の根拠を持つためにも。
Azure でよいのか? ゆるい市場調査
各所の考察
なぜ AWS は横ばいとなっているのか
- Azure 推しを強めるためのカウンタートピック
- AWS が横ばいなのは Azure が伸びているからである、という逆説的な考察にもなりうるかと。
- 詳しくは後述
Azure が成長/追い上げている?
Windows Server 2008 の EOS 施策
パートナー戦略
MS はこれまで Windows/Office 製品にて広範囲にパートナーを拡大していた。
いざ Azure を売ろうとする時に、抱えてるパートナー社の地盤が相当強い
良い意味での多勢に無勢
一方 Amazon は強いパートナーに絞り少数精鋭で展開する方向性、との文献もよく目にする。
その差が徐々に結果として表れているのでは、という以下参考文献による見解
AWSのパートナー戦略は強いパートナーに絞り、少数精鋭型の展開をしています。実際に足切りなども実施しています。一方でAzureはWindowsやOffice製品などの間接販売を長年培ってきた経験もあり、広範囲に手厚いパートナー支援をしています。私はこの差が大きいと思います。結果的に多勢に無勢でAzureのシェアが伸びてきており、今後もこの傾向が続くと予想しています。
一般企業(非コア市場)への浸透
- コア市場では先進的なクラウドサービスである AWS に着目し積極利用をしていた。
- 今後は先進的ではない非コア市場である一般企業によるクラウド利用が増えていく見込み。というより実際に増え始めていると。
- こういった企業では「クラウドでインフラを使う」よりも、「Windows/Office 等のアプリケーションをクラウドで使いたい」の思考なのではと。
- Azure は SaaS の性質で、これを求めるユーザにフィットしやすい、という文脈は個人的にはしっくりきます。
- となると、非コア市場のクラウドサービス浸透により Azure/Microsoft 365 がシェアを伸ばしていくのでは、という考え方も併せてしっくりくる。
サービスパフォーマンスの拮抗
Microsoft 365(inc: Office 365)/Windows 365 を抱える MS
後発に強い MS !?
- これまでなんかありましたっけ、と。
- 後発で MS が市場を席巻した分野/プロダクトなど。
パソコンOSの王者が Windows であり続ける限り、MS プロダクトを推進するという判断は妥当か。
- Windows/Office のコンビが向こう十数年、衰退することは考えにくいであろうと判断。
- Chromebook/Google Spreadsheet の組み合わせが猛追する未来はあるのか。。
まとめ
Azureブログはじめました。
グローディア株式会社と申します。 Azure を取り巻く情報や考察などを発信したく、ブログを立ち上げてみましたの巻です。
まずは週1ぐらいで情報発信できればと初回から弱気でスタートしてみます。 何とぞよろしくお願いします。

