SlideShare a Scribd company logo
1 of 41
#natsumiB4
© 2013 IBM Corporation
エンタープライズJava環境における
マイクロサービス・アーキテクチャーの必要性
2015/7/29
⽇日本アイ・ビー・エム株式会社
IBM  Systems  アプリケーションプラットフォーム
テクニカル・セールス  ⽥田中  孝清
#natsumiB4 © 2015 IBM Corporation
2
Microservices  Architecture
#natsumiB4 © 2015 IBM Corporation
Microservices  Architecture(MSA)とは
§ きっかけ
– ソフトウェア・
アーキテクチャーの⼤大家
マーティン・ファウラーの
2014年年3⽉月の
Blogエントリー
3
http://martinfowler.com/articles/microservices.html
#natsumiB4 © 2015 IBM Corporation
Microservices  Architectureの基本思想
§ 技術⾯面:分散配置と統合
– サービスによるコンポーネント化
– スマートなエンドポイントと単純なパイプ処理理
– 分散データマネジメント
– インフラの⾃自動化
– フェイルを前提とした設計
§ ⽂文化⾯面:持続性と分権
– ビジネスケイパビリティに基づく組織化
– プロジェクトではなくプロダクト
– 分散ガバナンス
– 進化的な設計
4
グロースエクスパートナーズ(株)鈴鈴⽊木雄介⽒氏
「マイクロサービスアーキテクチャとは何か」より
http://www.slideshare.net/yusuke/msa-share-02
#natsumiB4 © 2015 IBM Corporation
Microservices  Architectureアプリケーション
§ 単⼀一の(モノリシックな)アプリとして実装するのではなく,
複数のサービスの統合として実装する
– 変更更の影響範囲を極⼩小化
– 機能の再利利⽤用を促進
5 http://martinfowler.com/articles/microservices.html
#natsumiB4 © 2015 IBM Corporation
どこかで聞き覚えが・・・
§ SOA:Service  Oriented  Architecture
6
2004〜~
IBM,Gartner他
#natsumiB4 © 2015 IBM Corporation
Microservices  ArchitectureはSOAの進化型
§ モノリシック・アプリケーション
– 全体を単⼀一のコードとして実装
§ SOA(サービス指向アーキテクチャー)
– サブシステムごとに独⽴立立して実装/依存関係が可視化
§ MSA(マイクロサービス・アーキテクチャー)
– システムを構成する機能(ファンクション)単位でサービス化
7
Monolithic App SOA Micro-services
#natsumiB4 © 2015 IBM Corporation
粒粒度度を細かくして機能単位のスケールアウトを実現
§ ⼩小さなサービス単位でプロセスを起動することで
負荷に応じた柔軟なスケールアウト(拡張)が可能に
8
http://martinfowler.com/articles/microservices.html
#natsumiB4 © 2015 IBM Corporation
結局Microservice  Architectureとは
§   SOAを追求し,改善を続けていったらMSAになった
– SOAからのいくつかの改良良
• サービスの粒粒度度は「企業の組織単位」ではなく「業務の機能単位」で
• 通信経路路は⾼高機能なSOAP通信ではなく単純なREST通信も活⽤用
• ESBは必須ではなくメッシュ型の直接呼び出しもOK
§ 「新しく考え出された理理想論論」ではなく
多くの成功したWebシステムのに共通する
「観測された現実解」に名前をつけたもの
9
#natsumiB4 © 2015 IBM Corporation
SOA  /  MSA導⼊入の⽬目的
§ 変化への対応を早く
10
オペレーションのスピード  
ミッション・クリティカルな
アプリケーションの管理理、運⽤用
Systems  of  Record
マラソンランナー
q  サービスレベル重視
q  ウォーターフォール開発
q  ⻑⾧長期に渡るシステム構築
¦ 数ヶ⽉月〜~数年年
イノベーションのスピード
成⻑⾧長機会のための
探索索、開発、デプロイ
Systems  of  Engagement
スプリンター
q  スピード開発
q  試⾏行行錯誤、継続的デプロイ
q  早期のシステム構築/改修
¦ 数⽇日〜~数週間
#natsumiB4 © 2015 IBM Corporation
11
MSAを必要とする「変化」とは
#natsumiB4 © 2015 IBM Corporation
企業のITシステムが直⾯面する⼤大きな変化
§ クライアント・ブラウザの進化
§ モバイルへの対応
§ 外部システム連携・APIエコシステム
12
#natsumiB4 © 2015 IBM Corporation
企業のITシステムが直⾯面する⼤大きな変化(1)
§ クライアント・ブラウザの進化
§ モバイルへの対応
§ 外部システム連携・APIエコシステム
13
#natsumiB4 © 2015 IBM Corporation
クライアント・ブラウザの変化
§ MSIE  6  全盛期(2000年年代〜~)
– Windows  XP+MSIE  6をターゲットにすればよかった
– HTML4によるフォーム型Webアプリケーション
§ マルチ・ブラウザ時代(2010年年代〜~)
– Firefox  /  Google  Chrome  /  Safariなどモダンブラウザの台頭
– MSIEが7から11まで進化  /  Windows  10ではEdgeが標準に
– HTML5によるSPA型Webアプリケーション
14
+
#natsumiB4 © 2015 IBM Corporation
今まで以上にPLとBLの分離離が必要に
§ プレゼンテーション・ロジック(PL)の変化と
ビジネス・ロジック(BL)の変化の速度度の⼤大きな不不⼀一致
– 頻繁な変更更を要求されるプレゼンテーションロジック
– ⻑⾧長期にわたって使⽤用されるビジネスロジック
§ 独⽴立立したシステムとして構築するメリットが増⼤大
– PLとBLをサービスとして連携
15
ビジネス
ロジック	
プレゼンテーション
ロジック
#natsumiB4 © 2015 IBM Corporation
Webアプリケーションの実装スタイルの変化
§ 「サーバーサイドMVC」から「クライアントMVC」へ
16
Web Browser
Application Server
Application
HTTP
Request
HTML/JS
Controller Session
Data
View
Business
LogicModel
DomainDomain
Web Browser
Application Server
Application
View
HTML/JS
Controller
Data
Store
Model
Model
DomainDomain
RESTful or
WebSocket
JSON
Business Logic
#natsumiB4 © 2015 IBM Corporation
企業のITシステムが直⾯面する⼤大きな変化(2)
§ クライアント・ブラウザの進化
§ モバイルへの対応
§ 外部システム連携・APIエコシステム
17
#natsumiB4 © 2015 IBM Corporation
モバイル機器の急速な普及
18
Source: Wikipedia  http://en.wikipedia.org/wiki/Mobile_operating_system
世界 スマートフォン売り上げ台数(単位:千)
#natsumiB4 © 2015 IBM Corporation
Webからモバイルアプリケーションへ
§ モバイル対応の第⼀一段階
– Webアプリケーションの画⾯面をモバイル⽤用にカスタマイズ
§ 本格的なモバイル対応
– モバイル・アプリケーションの実装
• モバイル環境に最適化されたUI
• GPSやカメラなどの機能の活⽤用
• オフライン処理理
19
#natsumiB4 © 2015 IBM Corporation
モバイルアプリケーションのバックエンド連携
§ モバイルアプリケーションは(多くの場合MEAP経由で)
バックエンドシステムをサービスとして利利⽤用
– 必然的にSOA  /  MSAになる
20
MEAP製品!
!
Mobile!
Enterprise!
Application!
Platform!
ESB製品!
SOAP / HTTP!
REST! 基幹システムや

クラウド・サービス	
基幹システムや

クラウド・サービス	
基幹システムや

クラウド・サービス
#natsumiB4 © 2015 IBM Corporation
企業ITシステムが直⾯面する⼤大きな変化(3)
§ クライアント・ブラウザの進化
§ モバイルへの対応
§ 外部システム連携・APIエコシステム
21
#natsumiB4 © 2015 IBM Corporation
APIの提供や活⽤用による効果
22
APIの提供 APIの活⽤用
•  Assembly
•  Transformation
•  Rationalization
•  Discovery
•  Composition
•  Deployment
Assets &
Services
Application End
Points
新たなチャネルによ
る収益の増⼤大
今までにない新しい
顧客体験の実現
外部 APIs
パートナー APIs
社内 APIs
#natsumiB4 © 2015 IBM Corporation
実例例:SNSアカウントをつかったログイン
§ メリット
– 利利⽤用者を煩雑なユーザー登録処理理から解放
– 万が⼀一の情報漏漏洩発⽣生時のリスクを軽減
– SNS上のバイラル(⼝口コミ)マーケティングの促進
§ デメリット
– 頻発する外部システムの
仕様変更更への追随
23
#natsumiB4 © 2015 IBM Corporation
24
アプリケーション・アーキテクチャーの刷新
#natsumiB4 © 2015 IBM Corporation
変⾰革期を迎えているエンタープライズJava
§ 2000年年代に多くの企業で
Javaを使⽤用した業務アプリケーションのWeb化を実施
– J2EEアーキテクチャー
– Struts  /  Spring  /  Hibernate  などのOSSフレームワークの活⽤用
§ 更更新と改良良をつづけてきたアプリケーションの中には
現⾏行行アーキテクチャーの限界がみえてきたものも多い
– Strutsなどのサポート終了了とセキュリティ脆弱性問題
– 旧APIのみを使⽤用したアプリを互換性モードで稼働
– 最新の要件への対応ができない
§ ⼤大きく進歩したJava  EE  7の登場
25
#natsumiB4 © 2015 IBM Corporation
式年年遷宮と増改築
§ 数年年に⼀一度度,
いちから作り直す神社
26
あなたのITシステムは
「増築を重ねた温泉旅館」になってませんか?
§ 増築と改築を重ねた
温泉旅館
#natsumiB4 © 2015 IBM Corporation
ITシステムの「式年年遷宮」のすすめ
§ ⼀一定期間毎に,新しいアーキテクチャーで再実装する効果
– 使⽤用しているH/Wやミドルウェアの陳腐化の影響を排除
– 新しいアプリケーション・アーキテクチャーの取り⼊入れ
– 世代を超えてシステムの構築スキル・構成知識識を継承
§ システムの寿命を超えて使い続けると・・・
– ⻑⾧長期延⻑⾧長保守のための⾼高額なサポート費⽤用
– 時代のニーズを満たせない旧式のアプリケーション
– 構築した技術者の引退とともにシステムがブラックボックス化
27
#natsumiB4 © 2015 IBM Corporation
次世代をみすえ最新のアーキテクチャーへの移⾏行行を
§ アプリケーション・アーキテクチャ
– モバイル・HTML5クライアントへの対応
– Microservices  Architectureの採⽤用
– APIエコシステムの構築
§ アプリケーション開発体制
– Agile開発・継続的インテグレーション
– DevOpsの実現
§ アプリケーション実⾏行行基盤
– クラウド環境の利利⽤用
– 構築の⾃自動化・Immutable  Infrastructure
28
#natsumiB4 © 2015 IBM Corporation
29
Java  EE  7とWAS  Libertyプロファイル
#natsumiB4 © 2015 IBM Corporation
2013年年に正式版となった最新仕様:Java EE 7
§ Java EE 7の三つのゴール
– HTML5環境への対応
– 開発⽣生産性の向上
– エンタープライズ・ニーズへの対応
30
⼤大幅な機能拡張
#natsumiB4 © 2015 IBM Corporation
Java EE 7 の主なAPI群
§ JSR 342: Java Platform, Enterprise Edition 7
– HTML5環境への対応
•  JSR 344: JavaServer Faces (JSF) 2.2
•  JSR 353: Java API for JSON Processing (JSONP) 1.0
•  JSR 356: Java API for WebSocket 1.0
•  JSR 339: Java API for RESTful Web Services (JAX-RS) 2.0
– 開発生産性の向上
•  JSR 345: Enterprise JavaBeans (EJB) 3.2
•  JSR 346: Contexts and Dependency Injection
for Java EE (CDI) 1.1
•  JSR 907: Java Transaction API (JTA) 1.2
•  JSR 349: Bean Validation 1.1
– エンタープライズ・ニーズへの対応
•  JSR 343: Java Message Service (JMS) 2.0
•  JSR 338: Java Persistence API (JPA) 2.1
•  JSR 236: Concurrency Utilities for Java EE 1.0
•  JSR 352: Batch Applications for the Java Platform 1.0
31
#natsumiB4 © 2015 IBM Corporation
JAX-‐‑‒RS  2.0:JavaでRESTfulなWebサービスを実現
§ アノテーションベースでRESTfulなWebサービスを実装
§ JAX-‐‑‒RS  2.0の新機能
– クライアント⽤用のAPI
– ⾮非同期クライアント・⾮非同期サーバー
– メッセージ・フィルタ
およびエンティティ・インターセプター
•  ヘッダやコンテンツを操作するインターセプター
32
Response response = ClientBuilder.newClient()

.target("http://www.foo.com/book")

.request(MediaType.TEXT_PLAIN)

.get();
@Path("repository")
public class TestRepositoryService {
@Path("version")
@GET
@Produces("text/plain; charset=UTF-8")
public String getVersion() {

return "Test Service version 1.0";

}
#natsumiB4 © 2015 IBM Corporation
CDIによるアプリケーション内のPL  /  BLの分離離
§ 画⾯面デザイン
– JSF  /  EL  /  Servlet  /  JSP
§ 外部連携
– JAX-‐‑‒RS  /  WebSocket
– JAX-‐‑‒WS
33
§ 依存性注⼊入・ビジネスロジック
– CDI  /  EJB  /  JTA
§ DB連携・ORマッピング
– JPA
JSF
JSP / EL
JAX-RS
WebSocket
CDI                    .
EJB / JTA
JPA Database
#natsumiB4 © 2015 IBM Corporation
CDI使⽤用のメリット
§ 外部接続のパラメーターのハードコーディングの防⽌止
– ネーミングサービス利利⽤用からアノテーション指定へ
§ コンポーネント間の依存性の除去
– モックやスタブを利利⽤用したテストが容易易に
34
@Inject

Service s;
実際の
サービス実装
テスト⽤用の
スタブ
業務DB
ダミーデータ
本番環境で
インジェクション
テスト環境で
インジェクション
#natsumiB4 © 2015 IBM Corporation
WebSphere  Application  Server  Java  EE7対応
§ IBMのWAS  Libertyプロファイルは6⽉月25⽇日出荷の
V8.5.5.6でJava  EE  7のFull  Platformに対応
35
http://www.ibm.com/jp/press/2015/06/1601.html
#natsumiB4 © 2015 IBM Corporation
36
WASの新しいランタイム:Libertyプロファイル
WAS V8.5.5 Liberty & WDT
Java EE 7準拠
Java EE 7のFull Platform標準に
準拠したアプリを完全サポート
JAX-WS, JAX-RS, JMSもサポート
Unzipによる導⼊入とデプロイ
パッケージをした
サーバー  + アプリ  + 構成情報を
Unzipでデプロイ可能
簡単な構成と動的変更更
最低限必要な構成ファイルは
server.xmlひとつだけ
デフォルトベースで簡単構成
構成変更更は再起動なしに反映
軽量量ランタイム
メモリー使⽤用量量が⼩小さい: 60MB程度度〜~
ディスク使⽤用量量も100MB以下
起動が速い
起動時間: 5秒程度度
統合ツール(WDT)
⾼高機能なEclipse⽤用の連携ツールを無償で提供
Eclipseから簡単に使⽤用可能
⾃自動化ツールとの連携
多くのOSSツールに
無償でプラグインを提供
#natsumiB4 © 2015 IBM Corporation
API・サーバー機能をFeatureとして定義
§  必要なものだけを構成  
–  設定されたものだけがメモリにロード・初期化される
→  最⼩小限の起動時間・メモリー使⽤用
ServletJSPJDBCSSL
JAX-RS
sessionDatabase
<featureManager>	
  
	
  	
  	
  	
  <feature>jsp-­‐2.3</feature>	
  
	
  	
  	
  	
  <feature>jdbc-­‐4.1</feature>	
  
	
  	
  	
  	
  <feature>jaxrs-­‐2.0</feature>	
  
	
  	
  	
  	
  <feature>sessionDatabase-­‐1.0</feature>	
  
	
  	
  	
  	
  <feature>ssl-­‐1.0</feature>	
  
</featureManager>	
  
構成ファイル server.xml	
依存関係も

自動的に解決	
JSON
#natsumiB4 © 2015 IBM Corporation
Libertyプロファイルで提供されているFeature(抜粋)
38
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zosConnect-1.0
zosLocalAdapters-1.0
scalingController-1.0
scalingMember-1.0
dynamicRouting-1.0
collectiveController-1.0 clusterMember-1.0
mongodb-2.0wsSecurity-1.1
wmqJmsClient-1.1
wasJmsServer-1.0
jmsMdb-3.1
wasJmsClient-1.1jaxws-2.2
jaxb-2.2
wasJmsSecurity-1.0 jca-1.6couchdb-1.0
jcaInboundSecurity-1.6mdb-3.1
jms-1.1
zOS
ND
webProfile-6.0wab-1.0
concurrent-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
blueprint-1.0
adminCenter-1.0
openid-2.0
openidConnectServer-1.0
openidConnectClient-1.0
serverStatus-1.0 spnego-1.0
osgiAppIntegration-1.0Core
servlet-3.0
jsp-2.2
jsf-2.0
ejbLite-3.1 jdbc-4.0
jndi-1.0
appSecurity-2.0
managedBeans-1.0
ssl-1.0
beanValidation-1.0
cdi-1.0
jpa-2.0 jsp-2.3
el-3.0
websocket-1.1
jdbc-4.1
servlet-3.1
websocket-1.0
jsonp-1.0
Base
spnego-1.0
osgiAppIntegration-1.0
jsp-2.3
el-3.0
websocket-1.1
jdbc-4.1
zosConnect-1.0
zosLocalAdapters-1.0
scalingController-1.0
scalingMember-1.0
dynamicRouting-1.0
couchdb-1.0
openid-2.0
openidConnectServer-1.0
openidConnectClient-1.0
servlet-3.1
websocket-1.0
jsonp-1.0
New in
1Q15
New in
4Q14
#natsumiB4 © 2015 IBM Corporation
パッケージ作成による複数環境の導⼊入
§ 開発環境でテストしたアプリケーションだけでなく
製品の構成・Fixpackレベルまでふくめて
そのまま本番環境へ移⾏行行することが可能
– サービス単位でZIPを作成
– 使⽤用するFeatureだけパッケージされるので最⼩小サイズのZIPに
– 必要に応じて展開・実⾏行行することで容易易にスケールアウト
39
開発環境
Java SDK
Liberty Profile
サーバー構成
アプリ
①インストール
ディスク	
②サーバー構成
③アプリ開発
テスト・本番環境
Java SDK
Liberty Profile
サーバー構成
アプリ
ディスク	
ZIPファイル	
④パッケージ ⑤展開
#natsumiB4 © 2015 IBM Corporation
Libertyとマイクロサービスの記事を公開中
§ JAX-‐‑‒RS/CDIのサポートで
マイクロサービスの
開発も容易易に
〜~Java  EE  7正式対応で
  ⼤大幅強化された
  「WebSphere  Application
    Server  Liberty  Core」
§ Codezine  マイクロサービス
で検索索
40
http://codezine.jp/article/detail/8834
#natsumiB4 © 2015 IBM Corporation
41

More Related Content

What's hot

いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21Takakiyo Tanaka
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 
Preparation to Start the Microservice for Java EE developers
Preparation to Start the Microservice for Java EE developersPreparation to Start the Microservice for Java EE developers
Preparation to Start the Microservice for Java EE developersYoshio Terada
 
20200610 マイクロサービス勉強会
20200610 マイクロサービス勉強会20200610 マイクロサービス勉強会
20200610 マイクロサービス勉強会Naoki Yoshitake
 
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきことMicroservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきことTakashi Abe
 
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01Kazuhiko Tsuchiya
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Toru Makabe
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeKazuki Takai
 
Micro Service for Autonomous Infrastructure
Micro Service for Autonomous InfrastructureMicro Service for Autonomous Infrastructure
Micro Service for Autonomous InfrastructureYoshimi Tominaga
 
Application Development Vision
Application Development VisionApplication Development Vision
Application Development VisionYoshio Terada
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.jsルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.jsYOSHITAKA NAKAHARA
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018Yusuke Suzuki
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化Takeshi Fukuhara
 
SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由softlayerjp
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...Takakiyo Tanaka
 
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DeNA
 
【JJUG LT 大会】Zulu Open JDK
【JJUG LT 大会】Zulu Open JDK【JJUG LT 大会】Zulu Open JDK
【JJUG LT 大会】Zulu Open JDKShigeru Tatsuta
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Takuya Iwatsuka
 
Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)Yoshio Terada
 

What's hot (20)

いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
Preparation to Start the Microservice for Java EE developers
Preparation to Start the Microservice for Java EE developersPreparation to Start the Microservice for Java EE developers
Preparation to Start the Microservice for Java EE developers
 
20200610 マイクロサービス勉強会
20200610 マイクロサービス勉強会20200610 マイクロサービス勉強会
20200610 マイクロサービス勉強会
 
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきことMicroservicesを実現するために、インフラエンジニアと開発者がすべきこと
Microservicesを実現するために、インフラエンジニアと開発者がすべきこと
 
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
ウェブディレクターのための Web A11Y 勉強会 (Season 2) #01
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法Azure Blueprints - 企業で期待される背景と特徴、活用方法
Azure Blueprints - 企業で期待される背景と特徴、活用方法
 
Insight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & ScopeInsight into Azure Active Directory - Azure AD Custom Role & Scope
Insight into Azure Active Directory - Azure AD Custom Role & Scope
 
Micro Service for Autonomous Infrastructure
Micro Service for Autonomous InfrastructureMicro Service for Autonomous Infrastructure
Micro Service for Autonomous Infrastructure
 
Application Development Vision
Application Development VisionApplication Development Vision
Application Development Vision
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.jsルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
ルーメン・テクノロジーズ エッジプラットフォーム Varnish・Node.js
 
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
マイクロサービス化デザインパターン - #AWSDevDay Tokyo 2018
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化
 
SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由SoftLayerが CAMSSとゲーム配信 に適する技術的理由
SoftLayerが CAMSSとゲーム配信 に適する技術的理由
 
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
JJUG CCC 2015 Spring: Liberty Profile Technical Deepdive:IBMの新しいアプリケーションサーバーの...
 
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
 
【JJUG LT 大会】Zulu Open JDK
【JJUG LT 大会】Zulu Open JDK【JJUG LT 大会】Zulu Open JDK
【JJUG LT 大会】Zulu Open JDK
 
Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報Spring Security 5.0 解剖速報
Spring Security 5.0 解剖速報
 
Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)Istio on k8s on Azure (AKS)
Istio on k8s on Azure (AKS)
 

Viewers also liked

Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageDerek Collison
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?Takakiyo Tanaka
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016都元ダイスケ Miyamoto
 
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」Naoyuki Kataoka
 
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみたフロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみたKei Yagi
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかAmazon Web Services Japan
 
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5はじめてのASP.NET MVC5
はじめてのASP.NET MVC5Tomo Mizoe
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発 daisuke-a-matsui
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、ReactのベストプラクティスとバッドプラクティスKohei Asai
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)Rakuten Group, Inc.
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?Edward Burns
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)Pavel Bucek
 
FiNCとマイクロサービス
FiNCとマイクロサービスFiNCとマイクロサービス
FiNCとマイクロサービスFumiya Shinozuka
 
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?Yuki Ishikawa
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかYoichi Toyota
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 
AWS Black Belt Techシリーズ AWS re:Invent 2014 最新情報のアップデート
AWS Black Belt Techシリーズ  AWS re:Invent 2014 最新情報のアップデートAWS Black Belt Techシリーズ  AWS re:Invent 2014 最新情報のアップデート
AWS Black Belt Techシリーズ AWS re:Invent 2014 最新情報のアップデートAmazon Web Services Japan
 
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringTakuya Hattori
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解都元ダイスケ Miyamoto
 
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016Yusuke Suzuki
 

Viewers also liked (20)

Apcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go languageApcera Case Study: The selection of the Go language
Apcera Case Study: The selection of the Go language
 
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
クラウド、クラウドというけれどJavaのシステムにとってクラウドってメリットあるの?
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
 
SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
 
フロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみたフロントエンド初学者がSPAに手を出してみた
フロントエンド初学者がSPAに手を出してみた
 
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
 
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティスコンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
 
JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?JavaOne 2014 BOF4241 What's Next for JSF?
JavaOne 2014 BOF4241 What's Next for JSF?
 
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
 
FiNCとマイクロサービス
FiNCとマイクロサービスFiNCとマイクロサービス
FiNCとマイクロサービス
 
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
 
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのかなぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 
AWS Black Belt Techシリーズ AWS re:Invent 2014 最新情報のアップデート
AWS Black Belt Techシリーズ  AWS re:Invent 2014 最新情報のアップデートAWS Black Belt Techシリーズ  AWS re:Invent 2014 最新情報のアップデート
AWS Black Belt Techシリーズ AWS re:Invent 2014 最新情報のアップデート
 
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
 

Similar to エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4

サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介Yuta Matsumura
 
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 Takakiyo Tanaka
 
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例Yutaro Ono
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternTakekazu Omi
 
NiFi amateur struggled story
NiFi amateur struggled storyNiFi amateur struggled story
NiFi amateur struggled storyJun Ichinose
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーTsukasa Kato
 
AWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイントAWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイントKeisuke Nishitani
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要Takekazu Omi
 
NGINX Solution for Digital Government Architecture
NGINX Solution for Digital Government ArchitectureNGINX Solution for Digital Government Architecture
NGINX Solution for Digital Government ArchitectureNGINX, Inc.
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割Yusuke Oi
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかYusuke Suzuki
 
マイクロサービスとは.pptx
マイクロサービスとは.pptxマイクロサービスとは.pptx
マイクロサービスとは.pptxssuserdd7ea9
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践de:code 2017
 
Microsoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionMicrosoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionTakeshi Fukuhara
 
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonightAmazon Web Services Japan
 
第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ
第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ
第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツDaiyu Hatakeyama
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~Akira Inoue
 
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術日本マイクロソフト株式会社
 
Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報Yasuhiro Kobayashi
 

Similar to エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4 (20)

サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
 
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発 夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
 
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
JAWS-UG広島 - 2019-07-12 - 金融ビッグデータを守るリソースポリシー実例
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design Pattern
 
NiFi amateur struggled story
NiFi amateur struggled storyNiFi amateur struggled story
NiFi amateur struggled story
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャー
 
AWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイントAWSで実現するクラウドネイティブなアプリ開発のポイント
AWSで実現するクラウドネイティブなアプリ開発のポイント
 
祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要祝GA、 Service Fabric 概要
祝GA、 Service Fabric 概要
 
Dev campjpn day2session3
Dev campjpn day2session3Dev campjpn day2session3
Dev campjpn day2session3
 
NGINX Solution for Digital Government Architecture
NGINX Solution for Digital Government ArchitectureNGINX Solution for Digital Government Architecture
NGINX Solution for Digital Government Architecture
 
クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割クラウド時代にこそ求められるIt部門の役割
クラウド時代にこそ求められるIt部門の役割
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
マイクロサービスとは.pptx
マイクロサービスとは.pptxマイクロサービスとは.pptx
マイクロサービスとは.pptx
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
 
Microsoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses versionMicrosoft Azure Overview - Japanses version
Microsoft Azure Overview - Japanses version
 
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
[CTO Night & Day 2019] グローバルのサービス展開に向けたマルチリージョンアーキテクチャ- #ctonight
 
第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ
第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ
第36回BAクリエイターズサロン - デジタル時代に クリエータの皆さんが知っておきたい AIと付き合うためのコツ
 
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
One ASP.NET ~ 今、ASP.NET に何が起こっているのか? ~
 
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
【de:code 2020】 SaaS で迅速に IoT を実現 - Azure IoT Central 最新アップデートと活用術
 
Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報Microsoft Azure で実現するAIとIoT最新情報
Microsoft Azure で実現するAIとIoT最新情報
 

More from Takakiyo Tanaka

Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyTakakiyo Tanaka
 
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」Takakiyo Tanaka
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyTakakiyo Tanaka
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM JavaについてTakakiyo Tanaka
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築Takakiyo Tanaka
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyTakakiyo Tanaka
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-Takakiyo Tanaka
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発Takakiyo Tanaka
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57Takakiyo Tanaka
 
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51Takakiyo Tanaka
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Takakiyo Tanaka
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-Takakiyo Tanaka
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Takakiyo Tanaka
 

More from Takakiyo Tanaka (14)

Open Liberty / WebSphere Liberty
Open Liberty / WebSphere LibertyOpen Liberty / WebSphere Liberty
Open Liberty / WebSphere Liberty
 
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
JJUGナイトセミナー OpenJDK祭り「OpenJ9+OpenJDK」
 
OutOfMemoryErrorとは
OutOfMemoryErrorとは OutOfMemoryErrorとは
OutOfMemoryErrorとは
 
MicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open LibertyMicroProfile Starterで簡単スタート Open Liberty
MicroProfile Starterで簡単スタート Open Liberty
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
 
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
自分のDocker/Kubernetes環境を手に入れる ICP Community Editionで簡単構築
 
Open Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere LibertyOpen Liberty: オープンソースになったWebSphere Liberty
Open Liberty: オープンソースになったWebSphere Liberty
 
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
 
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
JJUG CCC 2014 Spring IBM SDK for Java 8の全貌 #jjug_ccc #ccc_r57
 
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51WebSphere Application Server V8.5.5Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
WebSphere Application Server V8.5.5 Libertyプロファイルのご紹介 #jjug_ccc #ccc_r51
 
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
Eclipse と Liberty プロファイルで始める Java EE 開発ハンズオン #jjug_ccc #ccc_r51
 
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
IBMが新しいJava EEコンテナを作っているらしい -Libertyプロファイルとは-
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 

エンタープライズJava環境におけるマイクロサービス・アーキテクチャーの必要性 #natsumiB4

  • 1. #natsumiB4 © 2013 IBM Corporation エンタープライズJava環境における マイクロサービス・アーキテクチャーの必要性 2015/7/29 ⽇日本アイ・ビー・エム株式会社 IBM  Systems  アプリケーションプラットフォーム テクニカル・セールス  ⽥田中  孝清
  • 2. #natsumiB4 © 2015 IBM Corporation 2 Microservices  Architecture
  • 3. #natsumiB4 © 2015 IBM Corporation Microservices  Architecture(MSA)とは § きっかけ – ソフトウェア・ アーキテクチャーの⼤大家 マーティン・ファウラーの 2014年年3⽉月の Blogエントリー 3 http://martinfowler.com/articles/microservices.html
  • 4. #natsumiB4 © 2015 IBM Corporation Microservices  Architectureの基本思想 § 技術⾯面:分散配置と統合 – サービスによるコンポーネント化 – スマートなエンドポイントと単純なパイプ処理理 – 分散データマネジメント – インフラの⾃自動化 – フェイルを前提とした設計 § ⽂文化⾯面:持続性と分権 – ビジネスケイパビリティに基づく組織化 – プロジェクトではなくプロダクト – 分散ガバナンス – 進化的な設計 4 グロースエクスパートナーズ(株)鈴鈴⽊木雄介⽒氏 「マイクロサービスアーキテクチャとは何か」より http://www.slideshare.net/yusuke/msa-share-02
  • 5. #natsumiB4 © 2015 IBM Corporation Microservices  Architectureアプリケーション § 単⼀一の(モノリシックな)アプリとして実装するのではなく, 複数のサービスの統合として実装する – 変更更の影響範囲を極⼩小化 – 機能の再利利⽤用を促進 5 http://martinfowler.com/articles/microservices.html
  • 6. #natsumiB4 © 2015 IBM Corporation どこかで聞き覚えが・・・ § SOA:Service  Oriented  Architecture 6 2004〜~ IBM,Gartner他
  • 7. #natsumiB4 © 2015 IBM Corporation Microservices  ArchitectureはSOAの進化型 § モノリシック・アプリケーション – 全体を単⼀一のコードとして実装 § SOA(サービス指向アーキテクチャー) – サブシステムごとに独⽴立立して実装/依存関係が可視化 § MSA(マイクロサービス・アーキテクチャー) – システムを構成する機能(ファンクション)単位でサービス化 7 Monolithic App SOA Micro-services
  • 8. #natsumiB4 © 2015 IBM Corporation 粒粒度度を細かくして機能単位のスケールアウトを実現 § ⼩小さなサービス単位でプロセスを起動することで 負荷に応じた柔軟なスケールアウト(拡張)が可能に 8 http://martinfowler.com/articles/microservices.html
  • 9. #natsumiB4 © 2015 IBM Corporation 結局Microservice  Architectureとは §   SOAを追求し,改善を続けていったらMSAになった – SOAからのいくつかの改良良 • サービスの粒粒度度は「企業の組織単位」ではなく「業務の機能単位」で • 通信経路路は⾼高機能なSOAP通信ではなく単純なREST通信も活⽤用 • ESBは必須ではなくメッシュ型の直接呼び出しもOK § 「新しく考え出された理理想論論」ではなく 多くの成功したWebシステムのに共通する 「観測された現実解」に名前をつけたもの 9
  • 10. #natsumiB4 © 2015 IBM Corporation SOA  /  MSA導⼊入の⽬目的 § 変化への対応を早く 10 オペレーションのスピード   ミッション・クリティカルな アプリケーションの管理理、運⽤用 Systems  of  Record マラソンランナー q  サービスレベル重視 q  ウォーターフォール開発 q  ⻑⾧長期に渡るシステム構築 ¦ 数ヶ⽉月〜~数年年 イノベーションのスピード 成⻑⾧長機会のための 探索索、開発、デプロイ Systems  of  Engagement スプリンター q  スピード開発 q  試⾏行行錯誤、継続的デプロイ q  早期のシステム構築/改修 ¦ 数⽇日〜~数週間
  • 11. #natsumiB4 © 2015 IBM Corporation 11 MSAを必要とする「変化」とは
  • 12. #natsumiB4 © 2015 IBM Corporation 企業のITシステムが直⾯面する⼤大きな変化 § クライアント・ブラウザの進化 § モバイルへの対応 § 外部システム連携・APIエコシステム 12
  • 13. #natsumiB4 © 2015 IBM Corporation 企業のITシステムが直⾯面する⼤大きな変化(1) § クライアント・ブラウザの進化 § モバイルへの対応 § 外部システム連携・APIエコシステム 13
  • 14. #natsumiB4 © 2015 IBM Corporation クライアント・ブラウザの変化 § MSIE  6  全盛期(2000年年代〜~) – Windows  XP+MSIE  6をターゲットにすればよかった – HTML4によるフォーム型Webアプリケーション § マルチ・ブラウザ時代(2010年年代〜~) – Firefox  /  Google  Chrome  /  Safariなどモダンブラウザの台頭 – MSIEが7から11まで進化  /  Windows  10ではEdgeが標準に – HTML5によるSPA型Webアプリケーション 14 +
  • 15. #natsumiB4 © 2015 IBM Corporation 今まで以上にPLとBLの分離離が必要に § プレゼンテーション・ロジック(PL)の変化と ビジネス・ロジック(BL)の変化の速度度の⼤大きな不不⼀一致 – 頻繁な変更更を要求されるプレゼンテーションロジック – ⻑⾧長期にわたって使⽤用されるビジネスロジック § 独⽴立立したシステムとして構築するメリットが増⼤大 – PLとBLをサービスとして連携 15 ビジネス ロジック プレゼンテーション ロジック
  • 16. #natsumiB4 © 2015 IBM Corporation Webアプリケーションの実装スタイルの変化 § 「サーバーサイドMVC」から「クライアントMVC」へ 16 Web Browser Application Server Application HTTP Request HTML/JS Controller Session Data View Business LogicModel DomainDomain Web Browser Application Server Application View HTML/JS Controller Data Store Model Model DomainDomain RESTful or WebSocket JSON Business Logic
  • 17. #natsumiB4 © 2015 IBM Corporation 企業のITシステムが直⾯面する⼤大きな変化(2) § クライアント・ブラウザの進化 § モバイルへの対応 § 外部システム連携・APIエコシステム 17
  • 18. #natsumiB4 © 2015 IBM Corporation モバイル機器の急速な普及 18 Source: Wikipedia  http://en.wikipedia.org/wiki/Mobile_operating_system 世界 スマートフォン売り上げ台数(単位:千)
  • 19. #natsumiB4 © 2015 IBM Corporation Webからモバイルアプリケーションへ § モバイル対応の第⼀一段階 – Webアプリケーションの画⾯面をモバイル⽤用にカスタマイズ § 本格的なモバイル対応 – モバイル・アプリケーションの実装 • モバイル環境に最適化されたUI • GPSやカメラなどの機能の活⽤用 • オフライン処理理 19
  • 20. #natsumiB4 © 2015 IBM Corporation モバイルアプリケーションのバックエンド連携 § モバイルアプリケーションは(多くの場合MEAP経由で) バックエンドシステムをサービスとして利利⽤用 – 必然的にSOA  /  MSAになる 20 MEAP製品! ! Mobile! Enterprise! Application! Platform! ESB製品! SOAP / HTTP! REST! 基幹システムや
 クラウド・サービス 基幹システムや
 クラウド・サービス 基幹システムや
 クラウド・サービス
  • 21. #natsumiB4 © 2015 IBM Corporation 企業ITシステムが直⾯面する⼤大きな変化(3) § クライアント・ブラウザの進化 § モバイルへの対応 § 外部システム連携・APIエコシステム 21
  • 22. #natsumiB4 © 2015 IBM Corporation APIの提供や活⽤用による効果 22 APIの提供 APIの活⽤用 •  Assembly •  Transformation •  Rationalization •  Discovery •  Composition •  Deployment Assets & Services Application End Points 新たなチャネルによ る収益の増⼤大 今までにない新しい 顧客体験の実現 外部 APIs パートナー APIs 社内 APIs
  • 23. #natsumiB4 © 2015 IBM Corporation 実例例:SNSアカウントをつかったログイン § メリット – 利利⽤用者を煩雑なユーザー登録処理理から解放 – 万が⼀一の情報漏漏洩発⽣生時のリスクを軽減 – SNS上のバイラル(⼝口コミ)マーケティングの促進 § デメリット – 頻発する外部システムの 仕様変更更への追随 23
  • 24. #natsumiB4 © 2015 IBM Corporation 24 アプリケーション・アーキテクチャーの刷新
  • 25. #natsumiB4 © 2015 IBM Corporation 変⾰革期を迎えているエンタープライズJava § 2000年年代に多くの企業で Javaを使⽤用した業務アプリケーションのWeb化を実施 – J2EEアーキテクチャー – Struts  /  Spring  /  Hibernate  などのOSSフレームワークの活⽤用 § 更更新と改良良をつづけてきたアプリケーションの中には 現⾏行行アーキテクチャーの限界がみえてきたものも多い – Strutsなどのサポート終了了とセキュリティ脆弱性問題 – 旧APIのみを使⽤用したアプリを互換性モードで稼働 – 最新の要件への対応ができない § ⼤大きく進歩したJava  EE  7の登場 25
  • 26. #natsumiB4 © 2015 IBM Corporation 式年年遷宮と増改築 § 数年年に⼀一度度, いちから作り直す神社 26 あなたのITシステムは 「増築を重ねた温泉旅館」になってませんか? § 増築と改築を重ねた 温泉旅館
  • 27. #natsumiB4 © 2015 IBM Corporation ITシステムの「式年年遷宮」のすすめ § ⼀一定期間毎に,新しいアーキテクチャーで再実装する効果 – 使⽤用しているH/Wやミドルウェアの陳腐化の影響を排除 – 新しいアプリケーション・アーキテクチャーの取り⼊入れ – 世代を超えてシステムの構築スキル・構成知識識を継承 § システムの寿命を超えて使い続けると・・・ – ⻑⾧長期延⻑⾧長保守のための⾼高額なサポート費⽤用 – 時代のニーズを満たせない旧式のアプリケーション – 構築した技術者の引退とともにシステムがブラックボックス化 27
  • 28. #natsumiB4 © 2015 IBM Corporation 次世代をみすえ最新のアーキテクチャーへの移⾏行行を § アプリケーション・アーキテクチャ – モバイル・HTML5クライアントへの対応 – Microservices  Architectureの採⽤用 – APIエコシステムの構築 § アプリケーション開発体制 – Agile開発・継続的インテグレーション – DevOpsの実現 § アプリケーション実⾏行行基盤 – クラウド環境の利利⽤用 – 構築の⾃自動化・Immutable  Infrastructure 28
  • 29. #natsumiB4 © 2015 IBM Corporation 29 Java  EE  7とWAS  Libertyプロファイル
  • 30. #natsumiB4 © 2015 IBM Corporation 2013年年に正式版となった最新仕様:Java EE 7 § Java EE 7の三つのゴール – HTML5環境への対応 – 開発⽣生産性の向上 – エンタープライズ・ニーズへの対応 30 ⼤大幅な機能拡張
  • 31. #natsumiB4 © 2015 IBM Corporation Java EE 7 の主なAPI群 § JSR 342: Java Platform, Enterprise Edition 7 – HTML5環境への対応 •  JSR 344: JavaServer Faces (JSF) 2.2 •  JSR 353: Java API for JSON Processing (JSONP) 1.0 •  JSR 356: Java API for WebSocket 1.0 •  JSR 339: Java API for RESTful Web Services (JAX-RS) 2.0 – 開発生産性の向上 •  JSR 345: Enterprise JavaBeans (EJB) 3.2 •  JSR 346: Contexts and Dependency Injection for Java EE (CDI) 1.1 •  JSR 907: Java Transaction API (JTA) 1.2 •  JSR 349: Bean Validation 1.1 – エンタープライズ・ニーズへの対応 •  JSR 343: Java Message Service (JMS) 2.0 •  JSR 338: Java Persistence API (JPA) 2.1 •  JSR 236: Concurrency Utilities for Java EE 1.0 •  JSR 352: Batch Applications for the Java Platform 1.0 31
  • 32. #natsumiB4 © 2015 IBM Corporation JAX-‐‑‒RS  2.0:JavaでRESTfulなWebサービスを実現 § アノテーションベースでRESTfulなWebサービスを実装 § JAX-‐‑‒RS  2.0の新機能 – クライアント⽤用のAPI – ⾮非同期クライアント・⾮非同期サーバー – メッセージ・フィルタ およびエンティティ・インターセプター •  ヘッダやコンテンツを操作するインターセプター 32 Response response = ClientBuilder.newClient()
 .target("http://www.foo.com/book")
 .request(MediaType.TEXT_PLAIN)
 .get(); @Path("repository") public class TestRepositoryService { @Path("version") @GET @Produces("text/plain; charset=UTF-8") public String getVersion() {
 return "Test Service version 1.0";
 }
  • 33. #natsumiB4 © 2015 IBM Corporation CDIによるアプリケーション内のPL  /  BLの分離離 § 画⾯面デザイン – JSF  /  EL  /  Servlet  /  JSP § 外部連携 – JAX-‐‑‒RS  /  WebSocket – JAX-‐‑‒WS 33 § 依存性注⼊入・ビジネスロジック – CDI  /  EJB  /  JTA § DB連携・ORマッピング – JPA JSF JSP / EL JAX-RS WebSocket CDI                    . EJB / JTA JPA Database
  • 34. #natsumiB4 © 2015 IBM Corporation CDI使⽤用のメリット § 外部接続のパラメーターのハードコーディングの防⽌止 – ネーミングサービス利利⽤用からアノテーション指定へ § コンポーネント間の依存性の除去 – モックやスタブを利利⽤用したテストが容易易に 34 @Inject
 Service s; 実際の サービス実装 テスト⽤用の スタブ 業務DB ダミーデータ 本番環境で インジェクション テスト環境で インジェクション
  • 35. #natsumiB4 © 2015 IBM Corporation WebSphere  Application  Server  Java  EE7対応 § IBMのWAS  Libertyプロファイルは6⽉月25⽇日出荷の V8.5.5.6でJava  EE  7のFull  Platformに対応 35 http://www.ibm.com/jp/press/2015/06/1601.html
  • 36. #natsumiB4 © 2015 IBM Corporation 36 WASの新しいランタイム:Libertyプロファイル WAS V8.5.5 Liberty & WDT Java EE 7準拠 Java EE 7のFull Platform標準に 準拠したアプリを完全サポート JAX-WS, JAX-RS, JMSもサポート Unzipによる導⼊入とデプロイ パッケージをした サーバー  + アプリ  + 構成情報を Unzipでデプロイ可能 簡単な構成と動的変更更 最低限必要な構成ファイルは server.xmlひとつだけ デフォルトベースで簡単構成 構成変更更は再起動なしに反映 軽量量ランタイム メモリー使⽤用量量が⼩小さい: 60MB程度度〜~ ディスク使⽤用量量も100MB以下 起動が速い 起動時間: 5秒程度度 統合ツール(WDT) ⾼高機能なEclipse⽤用の連携ツールを無償で提供 Eclipseから簡単に使⽤用可能 ⾃自動化ツールとの連携 多くのOSSツールに 無償でプラグインを提供
  • 37. #natsumiB4 © 2015 IBM Corporation API・サーバー機能をFeatureとして定義 §  必要なものだけを構成   –  設定されたものだけがメモリにロード・初期化される →  最⼩小限の起動時間・メモリー使⽤用 ServletJSPJDBCSSL JAX-RS sessionDatabase <featureManager>          <feature>jsp-­‐2.3</feature>          <feature>jdbc-­‐4.1</feature>          <feature>jaxrs-­‐2.0</feature>          <feature>sessionDatabase-­‐1.0</feature>          <feature>ssl-­‐1.0</feature>   </featureManager>   構成ファイル server.xml 依存関係も
 自動的に解決 JSON
  • 38. #natsumiB4 © 2015 IBM Corporation Libertyプロファイルで提供されているFeature(抜粋) 38 zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0 zosConnect-1.0 zosLocalAdapters-1.0 scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0 collectiveController-1.0 clusterMember-1.0 mongodb-2.0wsSecurity-1.1 wmqJmsClient-1.1 wasJmsServer-1.0 jmsMdb-3.1 wasJmsClient-1.1jaxws-2.2 jaxb-2.2 wasJmsSecurity-1.0 jca-1.6couchdb-1.0 jcaInboundSecurity-1.6mdb-3.1 jms-1.1 zOS ND webProfile-6.0wab-1.0 concurrent-1.0 collectiveMember-1.0 restConnector-1.0 sessionDatabase-1.0 ldapRegistry-3.0 webCache-1.0 jaxrs-1.1 distributedMap-1.0 osgiConsole-1.0 json-1.0 timedOperations-1.0monitor-1.0 oauth-2.0 blueprint-1.0 adminCenter-1.0 openid-2.0 openidConnectServer-1.0 openidConnectClient-1.0 serverStatus-1.0 spnego-1.0 osgiAppIntegration-1.0Core servlet-3.0 jsp-2.2 jsf-2.0 ejbLite-3.1 jdbc-4.0 jndi-1.0 appSecurity-2.0 managedBeans-1.0 ssl-1.0 beanValidation-1.0 cdi-1.0 jpa-2.0 jsp-2.3 el-3.0 websocket-1.1 jdbc-4.1 servlet-3.1 websocket-1.0 jsonp-1.0 Base spnego-1.0 osgiAppIntegration-1.0 jsp-2.3 el-3.0 websocket-1.1 jdbc-4.1 zosConnect-1.0 zosLocalAdapters-1.0 scalingController-1.0 scalingMember-1.0 dynamicRouting-1.0 couchdb-1.0 openid-2.0 openidConnectServer-1.0 openidConnectClient-1.0 servlet-3.1 websocket-1.0 jsonp-1.0 New in 1Q15 New in 4Q14
  • 39. #natsumiB4 © 2015 IBM Corporation パッケージ作成による複数環境の導⼊入 § 開発環境でテストしたアプリケーションだけでなく 製品の構成・Fixpackレベルまでふくめて そのまま本番環境へ移⾏行行することが可能 – サービス単位でZIPを作成 – 使⽤用するFeatureだけパッケージされるので最⼩小サイズのZIPに – 必要に応じて展開・実⾏行行することで容易易にスケールアウト 39 開発環境 Java SDK Liberty Profile サーバー構成 アプリ ①インストール ディスク ②サーバー構成 ③アプリ開発 テスト・本番環境 Java SDK Liberty Profile サーバー構成 アプリ ディスク ZIPファイル ④パッケージ ⑤展開
  • 40. #natsumiB4 © 2015 IBM Corporation Libertyとマイクロサービスの記事を公開中 § JAX-‐‑‒RS/CDIのサポートで マイクロサービスの 開発も容易易に 〜~Java  EE  7正式対応で   ⼤大幅強化された   「WebSphere  Application     Server  Liberty  Core」 § Codezine  マイクロサービス で検索索 40 http://codezine.jp/article/detail/8834
  • 41. #natsumiB4 © 2015 IBM Corporation 41