Upload
takashi-ito
View
199
Download
0
Embed Size (px)
Citation preview
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
JavaOne San Francisco 2016 フィードバック
2016年11月11日 日本オラクル株式会社 クラウド・テクノロジー事業統括 Fusion Middleware事業本部 伊藤 敬
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
JavaOne San Francisco 2016 – 18th to 22th Sep.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
JavaOne San Francisco 2016 – 18th to 22th Sep.
•主要なキーノートスピーカー
6
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ファクトリー・オートメーションにおけるJava活用事例:
マツダ株式会社
ITソリューション本部 主幹
吉岡 正博 様
7
Java標準仕様 / Java EEのロードマップ発表へのエンドースメント(登場順):
富士通株式会社 様
株式会社日立製作所 様
日本電気株式会社 様
Javaによるレガシーマイグレーション事例紹介とJava EEロードマップ発表 へのエンドースメント:
損害保険ジャパン日本興亜株式会社 取締役常務執行役員 浦川 伸一 様
JavaOne 2016 Keynote – 過去最多の日本からの登壇者
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Keynote Speakers – Community Keynote
8
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 9
HeapStats: 2016 Duke’s Choice Award 受賞!!
https://www.flickr.com/photos/skrb/29799433494/in/album-72157671770671603/
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 10
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java SE Update Georges Saab Vice President Java Platform Development
@gsaab
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE (with some slides from breakout sessions)
Anil Gaur Group Vice President Java EE and Application Servers Development
@anilgaur
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE – オンプレとクラウドの両方で活用
11/15/2016 Confidential – Oracle Internal/Restricted/Highly Restricted 14
クラウド
オンプレミス
WebSphere WebLogic
Red Hat JBoss
14 Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
多彩な 選択肢
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EEのAPI群 – 市場のリードするオープンソースプロジェクトの主要な要素
15
Java EE Containers
Microservices Web Containers
Web Frameworks
PaaS REST
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE – What’s Next?
16
クラウドとマイクロサービスのための 新しいアプリケーション開発のスタイル
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 17
コミュニティからの要望に基づいて構成
Java EE 8 - Java EE 8コミュニティ・サーベイ 2014
JSONB 14%
Security Simplificaton
11%
JCache 9%
Security Interceptors
8%
MVC 8%
Config JSR 8%
Mgt/Monitoring API
7%
Embedded 7%
SSE 7%
Cloud 7%
Logging 6%
EJB Timer 4%
Pruning 4%
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java EE 8
• Java EE 8 Platform and Web Profile • Contexts and Dependency Injection 2.0 (CDI) • Java API for JSON Binding 1.0 (JSON-B) • Java Message Service 2.1 (JMS) • Java Servlet 4.0 • Java API for RESTful Web Services 2.1 (JAX-RS) • Model-View-Controller 1.0 (MVC) • JavaServer Faces 2.3 (JSF) • Java EE Management API 2.0 • Java API for JSON Processing 1.1 (JSON-P) • Java EE Security API 1.0 • Bean Validation 2.0
JSRs
18
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19
開発者が直面している新たなチャレンジ
• 過度なビジネス要件が増加
• アジリティとフレキシビリティを求めて クラウドへ移行
• 物理的なインフラから仮想環境へ移行
• マイクロサービスかモノリシックか
• アプリケーションとランタイムを パッケージ化
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
クラウド・アプリケーション開発
異種クライアントの共存
• Mobile, REST, HTML5
スレートレス・サービスの主流化 • 個別の管理運用とスケール
多彩なデータソース
• Relational, non-relational
User profile service
Order service
Partner service
Catalog service
Notification service
Import service
HTTP/2 REST JSON XHR
Event JAX-RS/JSON Notifications JAX-WS
RDBMS NoSQL DB TSDB Data Streams
Time Series Events Key Value JDBC
20
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Java Platform, Enterprise Edition への提案仕様
• クラウド、マイクロサービス向けの新しいアプリケーション開発を想定
• 実績あるテクノロジーで構成
• 包括的な構成
– プログラミング・モデル、 パッケージング、ポータビリティ
• 標準ベース
– 本内容は提案仕様
– JCPプロセスに沿ってコミュニティとともに検討を進める
21
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
“Java EE Application as Independent Services”
23
Config
Eventing Persistence(KV) API Catalog Logging/Telemetry
State
Persistence (RDBMS)
Cloud Platform Services
Java EE Service APIs Security
Data Change Notification
Administrator Web
Patient Web
Physician Web
Chat Service
Patient Service
Physician Service
Statistics Service
Notification Service
Record Service
Application Admin (Browser)
Patient Users (Browser)
Physician Users (Browser)
Statistics Service Statistics
Service
HTTP/2 HTTP/2 HTTP/2 HTTP/2 HTTP/2 HTTP/2
Event Event JAX-RS/JSON JAX-RS/JSON JAX-RS/JSON
JAX-RS/JSON
JAX-RS/JSON
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
ロケーションの透過性と回復性(Resiliency)
• Configuration
–サービスのパッケージング・実行と属性管理の分割
–統一化したConfiguration APIの定義
• ステート管理
–ステート管理APIの定義
– NoSQLのサポートとベンダ製品機能 への対応
– CQRS対応
• 回復性(Resiliency) –サーキットブレーカの導入 –ヘルスチェック機能の標準化
24
Reliability, Monitoring
Container Management
Scheduling & Elastic Scaling
Key Value
Database
Logging
Config
State
Security
Notification
User profile service
Order service
Catalog service
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Configuration API 主要機能
25
Configuration API
XML JSON prop
DB web
Application
•標準API
• XMLおよびJSONフォーマットのプロパティ・ファイル
• Configuration外部化
•複数のCofigurationを利用できる
•階層もしくはグループ化
• Optional configuration schema
• Polling and Dynamic Properties
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Read and Write operations performed on the same model
26
Read and Write operations are segregated
CRUD vs. CQRS (Command Query Responsibility Segregation)
Data Store Read / Write Model
Writes
Reads Presentation Layer
Data Store
Presentation Layer
Write Model
Read Model
Reads
Writes
Query
Command
Data Store
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• リモートのサービス呼び出しにおける障害発生
をコントロールするための一般的な方法
• リモートサービスのコールをモニターすることで
システムリソースの浪費を防ぐ
– ある決められた回数のエラーが発生したら、
その後は呼び出しを終了してすぐにエラーを返す
• エラーをトリガーできるいくつかのHTTP
プロパティ
– TCP level: connect error, connect timeout, connection
timeout, ..
– HTTP level: status code, …
27
サーキットブレーカ
Closed Open
Half Open
fail count reached
Reset timeout
fail
success
success or fail
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
パッケージングの変更・追加 • パッケージング – Dockerモデルの採用
– アプリケーション、ランタイムをコンテナにパッケージ
– サービス・パッケージとコンフィグレーション機能を分離
– スタンドアロン型のイミュータブルな実行バイナリ
– Java SE 9ベースの実行モジュールに対応
• マルチテナントへの対応
– リソース活用の効率化
– テナント・ベースのルーティングとデプロイ
• Serverlessアーキテクチャの導入
– 新仕様 – インタフェース、パッケージ・フォーマット マニフェスト
– Ephemeral instantiation(ごく短命なインスタンスの生成)
28
App
Server
Order service
App
Server
Catalog service
App
Server
User profile service
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
A Next Generation Application Runtime - Idea
29
Any JVM
YourApp.jar Packager
Java SE
Runtime
Key Java EE APIs
Your Code
Java EE 9
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
アジリティ、スケーラビリティ、セキュリティを組み込む
• プログラミング・モデル
– リアクティブ・プログラミングを実現
– 統合化イベントモデルと新しいEvent Messaging API
– Non Blocking I/O - JAX-RS, HTTP/2, JSON-B, …
• Eventual consistency(結果整合性)
– 分散されたデータの更新を確実に実行、更新前後のアクセス を的確に処理する仕組みを実装
• Key value/ドキュメント・ストア
– Key Valueとドキュメント型DB向けの永続性とクエリーI/Fを組み込む
• セキュリティ – 国際標準に準拠した機密管理機能
– OAuth/OpenID のサポート
30
App
App
App
App
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Eventing API for Cloud
• Handle very large quantities of messages driven by events, throughput is the dominant concern
• No Transaction – different from JMS
• Annotation based, easy to use
• Use Cases:
– Website activity tracking
– Metrics, Log data aggregation
– Gaming data feed
– Etc.
• Apache Kafka, Amazon Kinesis
31
Event Messaging System
broker broker broker
producer (frontend)
producer (services)
producer (adapters)
producer (other)
consumer (frontend)
consumer (services)
consumer (adapter)
consumer (other)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Event API Proposal for Java EE 9 • A Simple Event API
– Producer and Consumer as top level injectable resources, for example @Inject EventPublisher(“mytopic”) publisher;
@Inject EventConsumer(“mytopic”) consumer
– declarative message listeners - any POJO as event listener, for example @EventListener(“mytopic”)
public void onMyEvent(MyEvent event) { //do something }
• Able to plugin different cloud messaging systems in Java EE for eventing
32
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Recent Java EE 7 compatibility updates: Congratulations! テクノロジーのフォーカスエリア:サマリー
リアクティブ・プログラミングの導入
Unified event model
Event messaging API
JAX-RS, HTTP/2, Lambda, JSON-B, ...
Programming Model
外部化されたState管理へストアするAPI
State
データストラクチャの変更時に自動的にイベントを発生させる
Eventual Consistency
クライアント側のサーキットブレーカのサポート
回復用コマンド
クライアント側のヘルス・レポートのフォーマットを標準化
Resiliency
新仕様 – インタフェース、パッケージングフォーマット、マニフェスト
ごく短命なインスタンス
Serverless
機密管理
OAuth
OpenID
Security アプリケーションとランタイムをサービスとしてパッケージ
スタンドアロン型のイミュータブル実行バイナリ
多様な形態のアーカイブ
Packaging 集約性の向上
テナントベースのルーティングとデプロイ
Multitenancy
コンフィグレーションを外だしにする
コンフィグレーションへアクセスする統一化API
Configuration
key valueとDocument DBのための永続性とクエリ・インタフェース
Key Value/Doc Store
33
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
提案プラットフォームアーキテクチャ (~Java EE 9)
Java EE Packaging, Serverless, Multitenancy
OS / Hypervisor
Container Runtime
Java SE Runtime
Java EE Runtime
Load Balancer
API Gateway
HTTP/2
JSON Binding
Event API
REST API
Security API State API Config API
Eventual Consistency
Resiliency Key Value Store API
34
NoSQL
RDBMS
Logging
Config
State
Security
Notification
Reliab
ility, Mo
nito
ring
Man
agemen
t and
Orch
estratio
n
Sched
ulin
g and
Elastic Scaling
Service Discovery
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 35
Java EE 7
Connector JAXB JSP Debugging
Managed Beans JSP Concurrency EE Interceptors JAX-WS WebSocket
Bean Validation JASPIC Servlet JMS JTA Deployment
Batch JACC Dependency Injection JAXR JSTL Management
CDI EJB JAX-RPC Web Services JSF JPA
JSON-P Common Annotations EL JAX-RS Web Services
Metadata JavaMail
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
変更提案の根拠、理由
36
新たに追加を提案する機能
• クラウドアプリは多くのリモートRESTコールを行う。そのため、JAX-RSにク
ライアント側のサーキットブレーカ機能を追加する必要がある
• 情報の機密性などの情報セキュリティ機能は国際標準に準拠する
• 現在のクラウド環境ではOauthおよびOpenIDへの対応 は必須である
• アプリの実行環境を変更できるように 外部化されたコンフィグレーション管理の仕組みが必要である
• 複合的なアプリの高集約化を実現するためにマルチテナントを実装する
• Javaアプリケーションにヘルスチェック機能を持たせる
取り下げを提案する機能
• クラウドにおいて、JMSはこれ以上の機能強化を必要としていない(JMS 2.0を標準としてとどめておくことを提案する)
• クラウドアプリは技術の変化・進化が早く、かつシンプルな構成を持つことも多いため、 MVC は多くの場合適切ではない
• 現状の Management JSR は一般的に利用されていない
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
修整版 Java EE 8 プロポーザル
37
No Change to Plan Propose to Drop Propose to Add
JSON <-> object mapping
JSON-B 1.0 (JSR 367) Flexible JMS MDBs
Improved XA support
JMS 2.1 (JSR 368)
HTTP/2 support
Servlet 4.0 (JSR 369) Reactive enhancements Server-sent events Non-blocking I/O Client-side circuit breakers
JAX-RS 2.1 (JSR 370) Action-based MVC framework
MVC 1.0 (JSR 371)
Small-scale new features
Community-driven improvements
JSF 2.3 (JSR 372) REST-based APIs
Management 2.0 (JSR 373) JSON Pointer and Patch
Java Lambda support
JSON-P 1.1 (JSR 374)
Authentication/authorization APIs OAuth, OpenID support Secret management
Security 1.0 (JSR 375) Standard for externalizing application
configuration
Configuration
Standard for client-side health reporting
Health Checking
Bootstrap API for Java SE Async events Observer ordering
CDI 2.0 (JSR 365)
Collection constraints Date/Time support Community-requested features
Bean Validation 2.0 (JSR 380)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 38
Java EE 8 (Revised Proposal, 2016)
Connector JAXB JSP Debugging
Managed Beans JSP Concurrency EE Interceptors JAX-WS WebSocket
Bean Validation JASPIC Servlet JMS JTA Deployment
Batch JACC Dependency Injection JAXR JSTL Management
CDI EJB JAX-RPC Web Services JSF JPA
Common Annotations EL JAX-RS Web Services
Metadata JavaMail
CDI
JSON-B Security
Bean Validation
JSF
JAX-RS JSON-P
Servlet
Health Check Configuration
JSP
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 39
Java EE Communityとの協力 • サーベイからフィードバック • Java EE Next JSRsの策定
2016 Java EE 8 • Specs, RI, TCK の提供 • マイクロサービス・サポート (イニシャル)
• Java EE 9 策定 • Java EE 9インプリメンテーションの Early Access版提供
Java EE 9 • Specs, RI, TCK の提供 • モジュラー Java EEランタイム • マイクロサービス・サポート (エンハンスド)
Java EE Roadmap
2017
2018
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Next Steps
• Send technical comments to – [email protected]
• Join the JCP – https://jcp.org/en/participation/membership_drive
• Join or track the JSRs as they progress – https://java.net/projects/javaee-spec/pages/Specifications
• Adopt-a-JSR – https://community.oracle.com/community/java/jcp/adopt-a-jsr
Give us your feedback
40
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 41
オラクルの新しい技術ポータル:Oracle Developer Gateway https://developer.oracle.com/index.html