Post on 02-Nov-2014
description
Red HatRed Hat의의 JBoss JBoss 미들웨어 및미들웨어 및JBoss Remoting JBoss Remoting 프로젝트 소개프로젝트 소개
이희승tlee@redhat.com
레드햇 코리아
2
목차 JBoss 소개
회사
제품군
JBossAS
JBoss Remoting 소개 개요 예제 메커니즘 기능
JBoss Remoting 3
3
JBoss, Inc.JBoss History
JBoss는 1999년 EJB 오픈소스 프로젝트를 통하여 개발되었으며, 2007년 현재 오픈소스 기반의 SOA를 구현할 수 있는 플
랫폼으로 발전하여 기업 IT 환경의 TCO 절감을 위한 솔루션으로 주목받고 있습니다.
JBoss 진화과정
• 1999 : EJB 오픈소스 프로젝트• 2000 : 교육 및 컨설팅• 2001 : 판매를 위한 문서화• 2002 : JBoss Group LLC 및 기술 지원• 2003 : 새로운 오픈소스 프로젝트 기반의 확장• 2004 : JBoss Inc 설립 및 J2EE 1.4 인증• 2005 : JEMS, JBoss Network 제공 (JBoss Enterprise Middleware System)
Small ConsultancyJBoss Group
JBoss inc Professional Open Source
2005/12003/92002/12001/62000/10
Dev
eloper
Tac
tica
l
En
terp
rise
2005/62002/9
교육
문서화
컨설팅
개발자 지원
제품 기술 지원
파트너
JEMS
JBoss Network
4
Red Hat + JBossRed Hat의 JBoss 인수
Red Hat은 2006년 오픈소스 기반 SOA 플랫폼 솔루션의 선도업체인 JBoss를 인수하여 웹 어플리케이션 개발과 구축을 위
한 비용을 획기적으로 절감할 수 있는 제품 라인업을 구축하였습니다.
JBoss 인수 효과
기업고객을 대상으로 Service Oriented Architectures 플랫폼 구축을 위한 저비용의 솔루션 라인업 제공• JBoss는 SOA를 위한 오픈소스 미들웨어의 선도업체• Red Hat과 JBoss는 어플리케이션 개발에서 구축까지 오픈소스 솔루션 제공
JBoss는 OS 플랫폼 독립적인 소프트웨어를 지속적으로 제공• Red Hat Enterprise Linux• SuSe Linux• Sun Solaris• Microsoft Windows• HP-UX• AIX, ...
5
Red Hat+JBoss=Value2
06. 10 06. 12 07. Q4
• JBoss Seam 출시
• JBoss Enterprise Application Platform
• Red Hat Developer Subscriptions
• Red Hat Developer Studio• Red Hat Application Stack 신규버전
• JBoss jBPM 출시• JBoss Rules 출시• JBoss Seam 신규버전
07. 3 07. 4 07. 6/7 07. Q3
• Red Hat Application Stack
• JBoss Hibernate 출시
• JBoss Enterprise Application Platform for Portals
• JBoss Enterprise SOA Platform
• Red Hat Messaging
Developer Solutions, Enterprise Platform 및Framework 분야에 역량 집중
6
JBoss 개요 – SOASOA Redefined: Simple, Open, Affordable
7
JBoss 개요 – 제품군JBoss 제품군은 오픈소스 기반의 SOA 플랫폼을 구축하기 위한 솔루션으로 구성되어 있으며, 오픈소스 개발 프로젝트를
통하여 지속적으로 추가 솔루션을 출시하고 있습니다.
JBoss Solution Stack
Multi-Vendor JVM, OS, Platform
JBoss Microkernel
JBos
sTr
ansa
ctio
ns
JBos
sCa
che
Apa
che
Tom
cat
#1
Hib
erna
te
#1
…JBos
sPo
rtal
JBos
sjB
PM JBos
sRu
les
JBos
sAS
#1
+Cl
uste
ring
Applications, Services, Business ProcessesPortals
ProcessesWeb ServicesApplications
기업환경 변화에 민첩하게 대응하기 위한 표준기반의 솔루션군으로 개발 및 구축 기간 및 비용 절감
8
JBoss 개요-Subscription등급에 따른 기술지원 서비스 및 범위는 Platinum, Gold, Silver로 분류되며 지원 내역은 다음과 같습니다.
Subscription 지원내역
24x7 24x7
JBoss 기술지원Developer
ProfessionalDeveloperEnterprise
ProductionStandard
ProductionPremium
지원 시간월요일 ~ 금요일9 AM ~ 5 PM
월요일 ~ 금요일9 AM ~ 5 PM
응답 시간 2 일 4 일 4 시간 1 시간
지원 방법 웹 / 전화 지원 웹 / 전화 지원 웹 / 전화 지원 웹 / 전화 지원
• JBoss Professional Support Engineer 는 모두 Java EE 전문가로 구성되어 있습니다.
• Developer Subscriptions은 JBoss Enterprise Middleware 제품군, RHEL, RHEL을 제외한 다른 Red Hat
제품에 대한 지원을 합니다.
• 지원 횟수에는 제한이 없습니다.
9
JBossASJBoss Application Server는 업계 선도의 오픈소스 J2EE 어플리케이션 서버입니다. JBoss AS는 e-Business 어플리케이션
을 개발하고 배포하기 위한 고성능의 엔터프라이즈급 플랫폼을 제공하여, 견고하면서도 유연한 아키텍처와 오픈소스 소
프트웨어 라이센스를 결합시킴으로써, 개발와 ISV 그리고 기업 고객 모두에게 단기간내에 가장 선호받는 웹 어플리케이
션 미들웨어가 될 수 있었습니다.
JBoss AS 구조
JBoss Microkernel
EJBContainers
SecurityManager
TransactionManager
ConnectionPools
MessageServer
Tomcat ServletEngine
Connectors &Invokers
EmbeddedDatabases
JBoss AS는 Single node/cluster 내에 서비스들을 임베드할 수 있음
• HTTP, DB Connection Pool, Transation Manager 등
• 서버내에 서로 다른 서비스들을 함께 통합
• 개발자를 위한 어플리케이션 프로그래밍 모델 제공 – Servlet 컴포넌트, EJB 컴포넌트
10
JBossAS – 시장 평가JBoss AS는 2005년 12월 BZ Research 조사에 의하면 북미 WAS 시장 점유율 1위를 달리고 있으며, TCO 절감 차원에서 가
장 선호하는 솔루션으로 평가받고 있습니다.
북미 WAS 시장 점유율
11
JBossAS – Gartner 평가JBoss AS는 2005년 4월, 2006년 8월 Gartner에서 발표한 ”Enterprise Application Server Magic Quadrant” 에서 2년 연속
leader group에 위치하고 있으며 회사 규모 및 제품 완성도 측면에서 시장 선도 제품으로 평가받고 있습니다.
Gartner Magic Quadrant 2005 ~ 2006
12
JBossAS – 성능 평가JBoss AS는 2006년 10월 세계 TOP 10 WAS 제품을 대상으로 테스트를 시행한 EDC (Evans Data Corp.)의 조사 결과를 보
면 상용 WAS 대비 우수한 성능을 제공하는 것으로 나타나 있습니다.
성능 비교
14
JBossAS – 기능 비교JBoss AS는 북미 시장 점유율 1위를 차지하고 있는 제품으로 이미 제품 기능 및 성능에서 안전성을 인정받고 있습니다.
상용 WAS 대비 기능과 성능에 대한 비교는 다음과 같습니다.
기능 비교
Apache, IIS, SunOne(limited)Apache 2.0.48+, IIS 5.0/6.0,
SunOne 6.0 SP1+Apache, WebToB지원 웹서버
Flexibility, CostManagement Console국산Excellent Feature
Eclipse, JBuilder, JDeveloperEclipse, JBuilder, JDeveloperWebInOne Studio, JBuilderIDE
Web, EJB 자동 failoverDatabase failover
Web, EJB 자동 failoverDatabase failover
Web, EJB 자동 failoverFailover
1.4, 5.05.01.3, 1.4, 5.0JDK 버전
Servlet/JSP, EJB, JMS, POJOServlet/JSP, EJB, JMS, JDBC
ConnectionServlet/JSP, EJBCluster 지원 component
3rd Party (AspectWerkz)
1.4
Windows 2000/2003, HP-UX 11i, AIX 5.2/5.3, SUSE 9/10, Red Hat
3.0/4.0, Solaris 8/9/10
WebLoigic 9.2
1.41.4J2EE 인증
100% Pure JavaLinux, Unix, Windows
Windows NT/2000/2003, HP-UX 11.0, AIX 4.x/5L, Linux kernel
2.4+지원 OS
JBoss AOP3rd PartyAOP
JEUS 5.0 JBoss AS 4.0기능
15
JBossAS vs. TomcatJBossAS는 JSP/Servlet 엔진으로 Tomcat을 이용하고 있으나, 기업 어플리케이션을 위한 EJB, JMS를 비롯한 모든 J2EE 기능
을 제공하고 있습니다. 또한 고가용성을 위한 다양한 클러스터링 기능을 지원하고 있습니다.
기능 비교
Not built-in
O
O
X
X
X
O
X
Not built-in (using DBCP)
O (limited)
O
Tomcat
O (clusterwide)Tomcat은 읽기 기능만을 제공JNDI
OJBoss는 Tomcat을 내장Servlet/JSP
OTomcat은 독립적인 3rd Party 제품과 연동해서 사용JMS
O JMX
OTomcat은 별도 제품을 통해 Transaction ServiceJTA
O Database
Connection Pooling
Tomcat은 별도 라이브러리를 통해 Service 가능
JBoss는 farm 디렉토리에 component를 복사/ 삭제
할 때 클러스터의 모든 서버에 deploy / undeploy 됨
Tomcat은 독립적인 3rd Party 제품과 연동해서 사용
설명
O (improved performance)Clustering
OWeb Service
OEJB
OJAAS
O (more simple, clusterwide)Hot deploy
JBoss AS기능
16
JBossAS - 구축사례JBoss 서브스크립션 고객들은 JBoss AS 환경을 모니터링하고 관리하기 위해서 JBoss Operations Network (JBoss ON)에 접
근할 수 있습니다. JBoss ON은 고객이 어플리케이션을 디자인하고 개발하는 시점부터 그것을 테스트, 배포하는데 까지 고
객의 어플리케이션을 지속적으로 관리하고 모니터링 할 수 있도록 도와줍니다.
JBoss AS 국내외 구축사례
국내 사례해외 사례
17
Remoting – 개요네트워크 기반 호출에 대한 단일 API 제공
18
Remoting – 개요 (계속)
고객 EJB 2.x – JBossAS 4.2 & 5.0
EJB 3
JBoss Messaging
JBossWS
JBoss ESB
기타 JBoss 외부 프로젝트
19
Remoting–예제(Client)
String locatorURI = “socket://localhost:5400”; InvokerLocator locator = new InvokerLocator(locatorURI);
Client remotingClient = new Client(locator); remotingClient.connect(); Object response = remotingClient.invoke("Do something");
System.out.println("Invocation response: " + response);
20
Remoting–예제(Server)
String locatorURI = “socket://localhost:5400”; InvokerLocator locator = new InvokerLocator(locatorURI); Connector connector = new Connector(locator); connector.create();
SampleInvocationHandler invocationHandler = new SampleInvocationHandler(); connector.addInvocationHandler( "sample", invocationHandler);
connector.start();
21
Remoting–예제(Server)
public class SampleInvocationHandler implements ServerInvocationHandler { public Object invoke(InvocationRequest invocation) { System.out.println( "Invocation request is: " + invocation.getParameter()); return “This is the response”; }
public void addListener( InvokerCallbackHandler callbackHandler) { … } public void removeListener( InvokerCallbackHandler callbackHandler) { … } public void setMBeanServer(MBeanServer server) { … } public void setInvoker(ServerInvoker invoker) { … }
}
22
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Invocation
Payload
InvokerRegistry
23
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
InvokerRegistry
24
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
InvokerRegistry
25
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Socket
InvokerRegistry
26
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Socket
InvokerRegistry
27
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Socket
100110
InvokerRegistry
28
Remoting – 메커니즘
Remoting
Client
Socket
Client
Remoting Server
Server
Invoker
(transport)
Marshaller
UnMarshaller10
0110
InvocationHandler
29
Remoting – 메커니즘
Remoting
Client
Socket
Client
Remoting Server
Server
Invoker
(transport)
Marshaller
UnMarshaller InvocationHandler
30
Remoting – 메커니즘
Remoting
Client
Socket
Client
Remoting Server
Server
Invoker
(transport)
Marshaller
UnMarshaller InvocationHandler
31
Remoting – 메커니즘
Remoting
Client
Socket
Client
Remoting Server
Server
Invoker
(transport)
Marshaller
UnMarshaller InvocationHandler
32
Remoting – 메커니즘
Remoting
Client
Socket
Client
Remoting Server
Server
Invoker
(transport)
Marshaller
UnMarshaller InvocationHandler
33
Remoting – 메커니즘
Remoting
Client
Socket
Client
Remoting Server
Server
Invoker
(transport)
Marshaller
UnMarshaller InvocationHandler
1011
34
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Socket
1011
InvokerRegistry
35
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Socket
InvokerRegistry
36
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
InvokerRegistry
37
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
InvokerRegistry
38
Remoting – 메커니즘
Client
Remoting Client
Client
Invoker
(transport)
Marshaller
UnMarshaller
Response
InvokerRegistry
39
Remoting – 기능
다양한 트랜스포트 지원 (+ SSL) Socket / Bisocket
HTTP / Servlet
RMI
다양한 Marshaller Serializing – Default & JBoss
Compressing
Encrypting
40
Remoting 3
Remoting 2의 차세대 버전 (rewrite) Apache MINA 적극 활용 사용자 의견 취합중
단방향 메시징
스트리밍
Local transport
JCA 통합
41
Remoting 3
http://labs.jboss.com/http://labs.jboss.com/
Q & A