Reflection Math Logging Versioning Collections Management Preference API Ref Objects Instrumentation Regular Expression Concurrency Utility JNI Zip lang and utils Beans JMX Date and Time Security XML JAXP Input / Output Serialization Networking Internationalization Extension Mechanism Override Mechanism IDL JDBC JNDI RMI / RMI-IIOP Scripting JAR GUI toolkit /User Interface Tools & Tool APIs Java SE APIs Java SE Runtime Environment (JRE) Java SE Development Kit (JDK) Java の実⾏・開発環境の 基本をさだめた仕様群
⾔語仕様 – The Java Language Specification, Java SE 17 Edition n JVM(Java仮想マシン)仕様 – The Java Virtual Machine Specification, Java SE 17 Edition n 標準API仕様 – Java® Platform, Standard Edition & Java Development Kit Version 17 API Specification n 関連ツール – Java® Development Kit Version 17 Tool Specifications n その他 – JAR File Specification – Java AWT Native Interface Specification and Guide – Java Debug Wire Protocol – Java Native Interface (JNI) Specification – Java Object Serialization Specification – ・・・ 7
with several foundations to discuss our proposal. We appreciate the time they have invested with us, and the feedback and input they offered. After careful review, we have selected the Eclipse Foundation as the foundation that we will work with going forward to make the above a reality. The Eclipse Foundation has strong experience and involvement with Java EE and related technologies. This will help us transition Java EE rapidly, create community-friendly processes for evolving the platform, and leverage complementary projects such as MicroProfile. We look forward to this collaboration. https://orablogs-jp.blogspot.com/2017/09/opening-up-java-ee-update.html Java EE仕様策定を Eclipse財団に 移管することに
– Jakarta EE最初のバージョン – Eclipse Foundationでのコミュニティプロセスをまわすためのバージョン – 技術的には,Java EE 8.0と全く同じ – 仕様名の名前の付け⽅がバラバラだったものが,統⼀性のある名前に変更になった(変なアクロニム多過ぎ問題が改善) n 2020年11⽉Jakarta EE 9.0 – 名前空間(パッケージ名)をjavaxからjakartaに変更 – いくつかの仕様の削除(旧JAX-RPC, JAX-R, Java EE Management, Java EE Deploymentなど) n 2021年5⽉ Jakarta EE 9.1 – Java SE 11仕様への対応 n 2022年6⽉(予定・遅延中)Jakarta EE 10 – 新しい機能やAPIの追加 17
Container (Framework) – Java Servlet / Jakarta Servlet – Java Server Pages / Jakarta Server Pages n Enterprise Beans Container (Framework) – Enterprise Java Beans / Jakarta Enterprise Beans n 各種サービス(Library/⼀部Framework) – CDI – JPA / Jakarta Persistence – JTA / Jakarta Transaction – JMS / Jakarta Messaging – JCA / Jakarta Connector – JAX-RS / Jakarta RESTful Web Services – JAX-WS / Jakarta XML Web Services – Concurrency Utility for Java EE / Jakarta Concurrency などなど 20
n が,実際には,Java EE 8やJakarta EE 8 / 9では, Web Profileのみの認定を受けている実装はない n Jakarta EE 9.1では,Apache TomEEのみ n Java EE 6 Web Profileのころは,結構あった – SAP NetWeaver Cloud – Caucho Resin – Apache TomEE – JOnAS – TongTech TongWeb Application Server – Siwpas n Web Profile限定でも実装は⼤変・・・ 22
Beans n Enterprise Java Beans / Jakarta Enterprise Beans – ビジネスロジックをパッケージし,呼び出しやトランザクション,セキュリティの制御を⾃動化するFramework • Stateless Session Bean︓ステート(状態)を持たない処理 • Stateful Session Bean︓ステートを持ち,複数のリクエストから構成される処理を実⾏する • Message Driven Bean︓メッセージングをトリガーに処理を起動する – Jakarta EE 11でDeprecatedになるかも n EJB lite / Jakarta Enterprise Beans lite – RMI/IIOPによるリモート呼び出し機能を省いたEJBの簡易版 n Interceptor – EJBの処理にさまざまな割り込みをおこなう n Common Annotation for Java / Jakarta Annotation – EJBなどで使⽤されるアノテーションを定義 26
Jakarta Persistence – JavaのオブジェクトとRDBMSのレコードをマッピングする n JDBC (Java Database Connectivity) Java SE標準 n JMS (Java Message Service) / Jakarta Messaging n JCA (Java Connector Architecture) / Jakarta Connector – それぞれ,RDBMS(リレーショナルデータベース),MOM(メッセージ指向ミドルウェア), EIS(エンタープライズ情報システム)などの外部リソースに接続する n JTA (Java Transaction API) / Jakarta Transaction – 外部リソースのトランザクションをコーディネートする n Java Mail / Jakarta Mail n JAF(JavaBeans Activation Framework)/ Jakarta Activation – メールを送受信する 27
JAX-RS(Java API for RESTful Web Services) / Jakarta RESTful Web Services – RESTfulな呼び出しを介したシステム間連携の機能を提供するFramework n JSONB / Jakarta JSON Binding n JSONP / Jakarta JSON Processing – JavaでJSON形式の情報を扱うための⼿段を提供する 29
JAX-WS(Java API for XML-based Web Services) / Jakarta XML Web Services – XMLベースのプロトコル(SOAP)を介したシステム間連携の機能を提供するFramework n JAXB(Java Architecture for XML Binding)/ Jakarta XML Binding n JAXP(Java Architecture for XML Processing)Java SE標準 – JavaでXML形式の情報を扱うための⼿段を提供 n Enterprise Web Service / Jakarta Enterprise Web Services – アプリケーションサーバーでWebサービスをデプロイし実⾏するパッケージングを定義し相互運⽤性を保証する n JWS(Java Web Services Metadata)/ Jakarta Web Services Metadata – Webサービスを記述し⽣成する⼿段を提供 n SAAJ(SOAP with Attachments API for Java)/ Jakarta SOAP with Attachments – SOAPにデータを添付するための仕様 n 全てOptionalあつかいになっていて,実装していなくてもJakarta EE認定は受けられる 30
Jakarta Security n JASPIC(Java Authentication Service Provider Interface for Containers) / Jakarta Authentication n JACC(Java Authorization Contract for Containers) / Jakarta Authorization – Java EE/Jakarta EEアプリケーションの認証・認可およびアクセス制御の仕組みを提供する 31
Faces – WebアプリケーションのFramework – ページで扱う情報をバッキングビーンとして定義するなど,様々なスコープでデータを扱う⼿段を提供する n Bean Validation / Jakarta Bean Validation – ⼊⼒するデータの形式を定義し,妥当性検査をおこなう n Concurrency Utility for Java EE / Jakarta Concurrency – 新規のスレッド作成が制限されているWebコンテナ・EJBコンテナで,安全にスレッドを利⽤する n Java Batch / Jakarta Batch – バッチ系の処理を実⾏する基盤を提供するFramework n WebSocket / Jakarta WebSocket – ブラウザなどとのWebSocketをつかった双⽅向通信を提供 32
MicroProfileからの逆輸⼊ – アプリケーションで各種構成ソースから統⼀された⼿法で構成情報を取得する⽅法を定義 n Jakarta MVC – JSFとはことなる,WebアプリケーションFrameworkを提供する – いわゆるStruts的なアプリケーションの実装を可能にする n Jakarta NoSQL – NoSQLデータベースの利⽤ n Jakarta RPC – gRPCの利⽤ 33
Liberty (EPL: Eclipse Public License) – https://openliberty.io/start/#runtime_releases – Version 21.0.0.12(2021年12⽉版)以降で,Jakarta EE 9.1/8, Java EE 8/7が利⽤可能 n Eclipse GlassFish (EPL : Eclipse Public License ) – https://glassfish.org/download – Jakarta EE 9以降はVersion 6.xを,Jakarta EE 8以前はVersion 5.xを選択 n Payara Platform Community Edition (CDDL: Common Development and Distribution License ) – https://www.payara.fish/downloads/payara-platform-community-edition/ – Jakarta EE 9以降はVersion 6.xを,Jakarta EE 8以前はVersion 5.xを選択 n Wildfly(LGPL: GNU Lesser General Public License) – https://www.wildfly.org/downloads/ – Jakarta EE 9はVersion 26.xのWildfly Previewを,Jakarta EE 8以前は通常のVersion 26.xを選択 36
(1)︓Cloud Nativeの世界でもJava EEを使える︕ OSSの実⾏環境 Open Liberty https://ibm-developer.connpass.com/event/250329/ – Liberty Dojo (2)︓Libertyの基本的な構成⽅法 https://ibm-developer.connpass.com/event/252221/ n イベントページから,資料ならびにセッション動画が参照できます 39
4コマ n 内容 –Jakarta EEまたはMicroProfileに関係するセッション n 応募締め切り –2022年8⽉9⽇(⽕) 23:59まで n 応募 –JakartaOne Live Stream Japanページより︓ https://jakartaone.org/jp/2022/japan/ 42