2. WAS infrastructure 의 현황과 시장의 트렌드
개발자 지향 WAS - IBM WebSphere Liberty Server
– Liberty Server 를 통한 개발자 경험 향상
데모
Q&A
3. 애플리케이션 인프라 트렌드
빠른 애플리케이션 개발과 전달을 위하여 개발 및 운영 라이프사이클에 대한
통합, 자동화, 단순화를 요구
모바일, 소셜, 클라우드 애플리케이션의 폭발적 증가에 따라 미들웨어 인프라에
대한 추가적인 요구사항 증가
엄청난 양의 데이터에 대항하여 거대한 트랜잭션 볼륨 지원 및 대기시간 최소화를
위해 탄력적인 캐싱 기술이 요구
다양한 폼 팩터와 접속 방법에 따라서 탄력성과 확장성, 멀티-테넌시, 컨텍스트
등을 제공하기 위하여 클라우드 전달 모델의 사용
4. WAS 에 대한 고객의 지속적인 변화 요구
WAS의 향상과 변화에 대해서 고객과 분석가들은 지속적으로 많은 요구사항을 전달
개발자의 생산성 향상
“Low-End” 애플리케이션 환경을 보다 단순화
“Low-End” 와 “High-End” WAS 환경 사이의 플랫폼 정확성(Fidelity)
미션 크리티컬 애플리케이션을 위한 보다 높은 레벨의 복원력(Resiliency)
작업 제어의 향상
엔드 유저 만족도에 대한 지속적인 향상
애플리케이션 환경에 대해 비용 절감
6. WAS infrastructure 의 현황과 시장의 트렌드
개발자 지향 WAS - IBM WebSphere Liberty Server
– Liberty Server 를 통한 개발자 경험 향상
데모
Q&A
7. IBM WebSphere Application Server 의 인식
“IBM 영어 매뉴얼만 많고,
너무~ 어려워요.”
“안정적이고 기능은 좋은데,
너무~ 비싸요.”
“기능이 많아서 그런가,
너무~ 느려요.”
8. 개발자가 원하는 것 - 경량화된 IBM WAS Liberty Server
IBM 이 제공하고자 했던 것
개발자가 원하는 건…
개발에 편리한 가볍고 빠른 WAS
IBM WebSphere Liberty Server
사진 출처 : http://www.slideshare.net/stephanj/ejb-31-by-bert-ertman
9. 손쉬워진 설치
개발자와 ISV 에게는 IBM WAS Liberty Server 런
타임과 eclipse 연계 도구 모두 별도의 비용 없이 무
상으로 사용 가능함
개발 도구는 Eclipse 추가 기능으로 설치됨
50MB zip 정도의 작은 다운로드 사이즈
– Unzip 을 통한 설치나
IBM Installation Manager 를 통해 설치 가능
2 분만에 아무것도 없는 상태에서 설치 완료
가능 :
1. Eclipse 추가 기능으로 IBM WAS 개발자 도구 설치
2. 해당 도구를 이용해서 IBM WAS Liberty Server 를
다운로드 하거나 WASdev.net 에서 바로 다운로드
가능
www.wasdev.net
10. 단순화된 서버 설정 – 단 하나의 server.xml 파일로 모든 설정 관리 가능
<server>
<featureManager>
서버에 설치되어 있는 번들에 대한 기능
제어 가능
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
</featureManager>
로깅과 같이 런타임 서비스를 위하여
'singleton' 설정 가능
<logging traceSpecification=”webcontainer=all=enabled:*=info=enabled” />
<application name="tradelite" location="tradelite.war" />
애플리케이션이나
데이터소스 정의와 같은
여러 자원에 대한
'instance' 설정 가능
<dataSource jndiName="jdbc/TradeDataSource">
<properties.derby.embedded databaseName="${server.config.dir}/tradedb"/>
</dataSource>
</server>
이러한 어떤 설정이라도 ‘master’ 설정에
‘included’ 하여 분리된 별도의 xml 파일
형태로 관리 가능(팀 개발에 용이)
11. 단순화된 서버 설정 - 하나의 server.xml 파일/Eclipse 연동
WAS v8.5.5 Liberty 는 모든 설정이 하나의 server.xml 파일로 구성 가능하며 이를
통해서 공유/버전 관리가 용이(Eclipse 도구에 연동된 위자드 제공)
가장 단순한 케이스 : 모든 서버
의 설정이 하나의 XML 파일로
가능
Eclipse 도구에 연동된 설정 위
자드를 통한 손쉬운 설정
관리 콘솔이나 wsadmin 등이
더 이상 필요 없음
12. 경량화 – 빠른 시작 시간/적은 풋프린트/높은 처리량
경량화된 개발 환경에 대한 이슈를 IBM WebSphere에서 직접 해결할 수 있으며 경량화된
서버에서 완전한 운영환경 서버의 속도로 서비스 요청 처리 가능
Liberty Server 의 시작 시간 & 풋프
린트가 Tomcat과 거의 동등함
Liberty Server 는 JBoss Web
Profile 시작 시간의 절반만 소요
Liberty Profile은 JBoss 에 비해서는
최대 20%, Tomcat에 비해서는 25%
이상의 높은 성능을 보여줌
Throughput Comparison of
various lightweight servers
Startup & Footprint Comparison
of various lightweight servers
120%
120
8.0
100
93
7.0
6.0
80
5.3
5.0
60
4.0
46
3.0
2.0
34
2.3
40
1.7
20
1.0
0.0
0
Tomcat 7.0.12 JBoss 7.0 Web GlassFish 3.1 Liberty Profile
Profile
Web Profile
Startup time
Footprint
100%
100%
104
Relative Throughput (higher is better)
7.8
Footprint in MB (Lower is Better)
Startup time in seconds (Lower is Better)
9.0
90%
80%
80%
83%
60%
40%
20%
0%
Tomcat 7.0.12 JBoss 7.0 Web GlassFish 3.1 Liberty Profile
Profile
Web Profile
14. 애플리케이션의 기능 집합을 동적 적용 가능
운영환경
……
EJB-Lite 3.1
jpa-2.0
CDI 1.0
blueprint-1.0
jsp-2.2
osgi-jpa-1.0
jsf-2.0
servlet-3.0
jaxrs-1.1
wab-1.0
IBM WebSphere Liberty Server
Web/Mobile 애플리케이션
OSGi 애플리케이션
Java EE 6.0 Web Profile 애플리케이션
트랜잭션이나 보안과 같이 연관된 서비스
15. Java EE Web Profile 지원(EJB 3.1 Lite 지원)
Java EE Web Profile 은 경량화 Web 애플리케이션 개발에 집중하여 해당 개발을
가능하게 하는 Java EE 표준에 대하여 적합한 부분집합을 제공
Web 애플리케이션 개발을 위하여 베스트 프랙티스로써 경량화되고 표준화된 런타임을 가능하게 함
EJB 3.1
Lite
Web profile 표준 : 하단의 기능을 전부 가용하게 함
–
–
–
–
–
–
–
–
–
–
Servlet 3.0
JavaServer Pages (JSP) 2.2
Expression Language (EL) 2.2
Debugging Support for Other Languages (JSR-45) 1.0
Standard Tag Library for JavaServer Pages (JSTL) 1.2
JavaServer Faces (JSF) 2.0
Common Annotations for Java Platform (JSR-250) 1.1
Java Transaction API (JTA) 1.1
Java Persistence API (JPA) 2.0
Bean Validation 1.0
– Enterprise JavaBeans (EJB) 3.1 Lite + Interceptors 1.1:
– Managed Beans 1.0:
– Contexts and Dependency Injection: JSR-299 1.0 and JSR-330 1.0
Java EE Web Profile 표준에서 EJB 3.1 Lite 가 Key 컴포넌트임
EJB 3.1 표준에서 세션 빈과 로컬 인터페이스에 집중한 부분집합
EJB 구현을 작고 가볍게 유지
Session Beans (stateful,
stateless, singleton)
✔
Message Driven Beans
Full EJB
3.1
✔
✔
2.x/1.x CMP/BMP Entity
✔
Java Persistence 2.0
✔
✔
Local/No Interface
✔
✔
3.0 Remote
✔
2.x Remote
Home/Component
✔
JAX-WS web services
✔
JAX-RPC web services
✔
EJB Timer Service
✔
Async Bean Invocation
Interceptors
✔
✔
RMI-IIOP interop
✔
✔
Container managed
transactions / Bean
managed transactions
✔
✔
Declarative Programmatic
Security
✔
✔
Embeddable API
✔
✔
18. OSGi 의 특징
OSGi 기술은 Java 에서 동적 컴포넌트를 정의한 스펙이며 보다 강화된 모듈화, 버전 관리, 동적인 플
랫폼 제공을 가능하게 합니다.
Java VM
rt
jce
jsse
plugin
sunjce_prov.
dnsns
..
marketing
workeffort
ebay
minerva
minilang
guiapp
accounting
Begin
Here
Java EE의
클래스패스
구조 이슈
party
assetmaint
hhfacility
pos.
content
manufact.
product
bi
workflow
ecommerce
oagis
…
googlebase
ofbiz
order
common
catalina
base
datafile
entity
widget
…
rome
jpos18
jcl
barcode4j
freemarker
serializer
jython
naming
resolver
mail
jenks
jakarta
log4j
httpunit
mx4j
batik
fop
tomcat
poi
lucene
jdom
derby
commons
EAR 2
Module A
Module C
Isolation
Module G
Module C
Class
Not
Found
Exception
Module A
Module B
xerces
xmlapis
xmlrpc
xmlgraphics
OSGi v4.2 Framework
Java EE App Server
EAR 1
axis
ezmorph
servlets
jetty
looks
jdbm
bsf
bsh
velocity
ws-commons
geronimo
..
json
wsdl4j
xalan
Everything isolated
Sharing
Everything shared
22. SPI 를 통한 IBM WebSphere Liberty Server 확장
Liberty 확장 System Programming Interface(SPI) 를 통해 전체 어플리케이션
라이프사이클을 지원하는 커스텀 기능을 추가할 수 있도록 지원합니다.
OSGi 번들을 통해 새로운 Liberty 기능을 추가할 수 있습니다.
– 웹 어플리케이션 번들 또한 지원 가능.
Liberty 런타임과 개발 도구에 3rd 파티 툴을 완벽히 통합할 수 있습니다.
샘플 시나리오:
– OSGi 어플리케이션 프로그래밍 모델 확장
– 새로운 인프라스트럭쳐 제공
(예: Custom User Registry)
23. 더 경량화도 가능
jaxb
wsSecurity
jaxws
설치 : 필요한 기능만 설치하여
디스크 풋프린트 최소화
– 모듈화된 “Archive Install” 또는
– 단일 Installation Manager 저장소
wmqJmsCli
wasJmsSec
jmsMdb
ent
urity
wasJmsClie
wasJmsSer
nt
ver
collective
Member
cdi
ejblite
ldapRegist
webCache
ry
managed
Beans
beanvalid
localConn
jaxrs
osgi.jpa
ation
ector
restConne
blueprint
ssl
ctor
appSecuri
jsf
wab
json
ty
sessionDa
jsp
monitor
tabase
servlet
jpa
jndi
jdbc
Applicatio
Feature
HTTP
n
Manager
Transport
Manager
oauth
Liberty extended
30MB
시작 : Liberty 커널에 의해 설정된 기능들만 시작 됨.
메모리 풋프린트 최소화
패키지 : 필요한 기능만 패키징하여
패키징 서버 크기 최소화
server –package serverName --include=minify
Liberty runtime
50MB
(Java EE Web Profile)
24. 개발자를 위한 다양한 자료 및 샘플 제공
The Liberty Repository
Liberty 플랫폼 확장을 위한 온라인 저장소 제
공
포함되는 컨텐츠:
– Open source project integration
– Individual Liberty features
– Samples
On www.wasdev.net
_ ______ __________ __ _______
• 국내 전자정부 표준 프레임워크 호환성
______ ________ __________
• ______ ________
___ ______ _______ ___________
_________ ______ ________
http://www.egovframe.go.kr/EgovCompatibility.jsp?menu=5&submenu=3
______
• ______ ____ ____ _______
26. 대규모의 IBM WebSphere Liberty Server 도 관리 가능
관리를 위하여 IBM WebSphere Liberty Server 그룹을 집단화 할 수 있는 관리 모델
제공
–
–
–
–
Agent 가 필요 없는 방식의 관리
Liberty 토폴로지 배치
애플리케이션과 서버 배치/업데이트
Java, Jython, Jconsol clients 를 통한 JMX API
jython
Controlle
r Collective
설정 :
컨트롤러
•
jconsole
•
•
•
•
•
고확장성 : 1000 대 이상의 JVM 확장이 가능
운영 레지스트리
제공
컨트롤러를 통해
모든 멤버가 접근
고가용성
보안, 확장성
Agentless
중앙 집중 설정이
없음
Liberty
Server
Liberty
(Collective
Server
멤버)
(Collective
멤버)
•
•
Java
•
•
collective 에 멤버로
합류가능
클러스터에 대한 자가
인지
단순한 설정 업데이트
쉽게
reversed, reconfigured
Liberty 클러스터 B
– 관리되는 서버 :
- Liberty Server, WAS Base, WAS ND
고가용성
Liberty
Server
Liberty
(Collective
Server
멤버)
(Collective
멤버)
Liberty 클러스터 A
Liberty Collective 관리 인프라
27. IMDB 솔루션인 WXS 를 연계 활용
A
App
App
App
App
In-Memory Data Grid 솔루션을 활용해서 DB I/O
를 최소화하는 구조를 위하여 데이터를 메모리에
상주시킬 수 있기 때문에 반복적인 조회작업이 많
은 업무에 사용되는 경우 성능 극대화 가능
WAS
IMDG
Grid Client
업무 애플리케이션
데이터 조회/변경
1 Grid Query
A
App
In-Memory DataGrid
In-Memory DataGrid 솔루션인 WebSphere
eXtreme Scale과 연계하여 Session cluster 구축
가능
EIS
P3
R1
R4
P2
R5
B A’
C D’
5배 증가된
캐쉬!
4배 증가된
캐쉬!
D C’
캐쉬 클러스터는
애플리케이션과 같이
위치하거나 같은 단계
내에서 수행될 수 있음
Insert/Update/Delete
If 데이터
Insert 발생
P0
A B’
2 변경 데이터 동기화
DB Grid
동기화 모듈 (실시간/시간주기/건수별)
업무 데이터
R3
Database
28. Cloud 에 대한 준비
Cloud Foundry
•개발자를 위한 IBM WebSphere Liberty Server
Buildpack 을 공개/자유롭게 사용 가능
•https://github.com/cloudfoundry/ibmwebsphere-liberty-buildpack
Chef for
OpenStack
•IBM WebSphere Liberty Server 의 설치 및
관리를 위한 Chef cookbook 공개하여
손쉽게 활용 가능
•https://github.com/WASdev/ci.chef.wlp
WW 개발자 커뮤니티 : http://wasdev.net
한국 WebSphere User Group : http://websphere.pe.kr
29. 요약 : 경량화된 IBM WAS Liberty Server
IBM 이 제공하고자 했던 것
위주에서 탈피하여
개발자/사용자가 원하는 것을
제공하기 위한 변화
IBM WebSphere Liberty 가
제공하는 건…
• 개발자들을 위한 도구와 런타임을 무료
제공 및 쉽게 다운로드
• 애플리케이션과 설정된 서버를 위한 Unzip
방식의 배치
• 애플리케이션 서버를 위한 아주 빠른 시작
• 작거나 모듈화된 런타임 환경
IBM WebSphere
Liberty Server
• 운영환경에 빠른 적용을 위한 단순 설정
30. WAS infrastructure 의 현황과 시장의 트렌드
개발자 지향 WAS - IBM WebSphere Liberty Server
– Liberty Server 를 통한 개발자 경험 향상
데모
Q&A
31. 데모 : 개발환경 및 커스텀 기능 구성
개발 환경 구성
Eclipse 플러그인 설치
Liberty 설치
커스텀 기능 구성
UserFeature
패키징
32. 데모 : 개발 환경 구성
이클립스를 이용한 개발 환경 구성
1. Marketpalce 를 이용하여 Liberty 개발도구 설치
2. Servers Runtime Environment 에 Liberty 설정
33. 데모 : 커스텀 기능 구성
OSGi 를 이용한 UserFeature 개발
1. OSGi Bundle Project 생성 ( UserFeatureBudle )
2. Liberty Feature Project 생성 ( UserFeature )
3. 생성된 Feature Liberty 서버에 설치
③
②
①
상세한 UserFeature 생성 방법은 아래의 문서를 확인바랍니다.
https://www.ibmdw.net/wasdev/docs/create_your_own_simple_hello_world_user_feature/
34. 데모 : 패키징
최소화 패키징을 통한 배포 용이성
1. 추가된 Custom Feature 와 함께 필요한 기능만 패키징
2. 압추파일 형태로 패키징 되며 옵션을 통해 최소화 패키징 가능
②
①
③