42
Red Hat Red Hat JBoss JBoss 미들웨어 및 미들웨어 및 JBoss Remoting JBoss Remoting 프로젝트 소개 프로젝트 소개 이희승 [email protected] 레드햇 코리아

JBoss Middleware 및 Remoting 프로젝트 소개

Embed Size (px)

DESCRIPTION

'Introduction to JBoss Middleware and Remoting project' - presented at Korea Open Source Conference, hosted by JCO (13 October 2007)

Citation preview

Page 1: JBoss Middleware 및 Remoting 프로젝트 소개

Red HatRed Hat의의 JBoss JBoss 미들웨어 및미들웨어 및JBoss Remoting JBoss Remoting 프로젝트 소개프로젝트 소개

이희승[email protected]

레드햇 코리아

Page 2: JBoss Middleware 및 Remoting 프로젝트 소개

2

목차 JBoss 소개

회사

제품군

JBossAS

JBoss Remoting 소개 개요 예제 메커니즘 기능

JBoss Remoting 3

Page 3: JBoss Middleware 및 Remoting 프로젝트 소개

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

Page 4: JBoss Middleware 및 Remoting 프로젝트 소개

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, ...

Page 5: JBoss Middleware 및 Remoting 프로젝트 소개

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 분야에 역량 집중

Page 6: JBoss Middleware 및 Remoting 프로젝트 소개

6

JBoss 개요 – SOASOA Redefined: Simple, Open, Affordable

Page 7: JBoss Middleware 및 Remoting 프로젝트 소개

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

기업환경 변화에 민첩하게 대응하기 위한 표준기반의 솔루션군으로 개발 및 구축 기간 및 비용 절감

Page 8: JBoss Middleware 및 Remoting 프로젝트 소개

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

제품에 대한 지원을 합니다.

• 지원 횟수에는 제한이 없습니다.

Page 9: JBoss Middleware 및 Remoting 프로젝트 소개

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 컴포넌트

Page 10: JBoss Middleware 및 Remoting 프로젝트 소개

10

JBossAS – 시장 평가JBoss AS는 2005년 12월 BZ Research 조사에 의하면 북미 WAS 시장 점유율 1위를 달리고 있으며, TCO 절감 차원에서 가

장 선호하는 솔루션으로 평가받고 있습니다.

북미 WAS 시장 점유율

Page 11: JBoss Middleware 및 Remoting 프로젝트 소개

11

JBossAS – Gartner 평가JBoss AS는 2005년 4월, 2006년 8월 Gartner에서 발표한 ”Enterprise Application Server Magic Quadrant” 에서 2년 연속

leader group에 위치하고 있으며 회사 규모 및 제품 완성도 측면에서 시장 선도 제품으로 평가받고 있습니다.

Gartner Magic Quadrant 2005 ~ 2006

Page 12: JBoss Middleware 및 Remoting 프로젝트 소개

12

JBossAS – 성능 평가JBoss AS는 2006년 10월 세계 TOP 10 WAS 제품을 대상으로 테스트를 시행한 EDC (Evans Data Corp.)의 조사 결과를 보

면 상용 WAS 대비 우수한 성능을 제공하는 것으로 나타나 있습니다.

성능 비교

Page 13: JBoss Middleware 및 Remoting 프로젝트 소개

13

JBossAS – 성능 평가중국 화웨이 (http://www.huawei.com/) 에서 실시한 벤치마크 자료

Page 14: JBoss Middleware 및 Remoting 프로젝트 소개

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기능

Page 15: JBoss Middleware 및 Remoting 프로젝트 소개

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기능

Page 16: JBoss Middleware 및 Remoting 프로젝트 소개

16

JBossAS - 구축사례JBoss 서브스크립션 고객들은 JBoss AS 환경을 모니터링하고 관리하기 위해서 JBoss Operations Network (JBoss ON)에 접

근할 수 있습니다. JBoss ON은 고객이 어플리케이션을 디자인하고 개발하는 시점부터 그것을 테스트, 배포하는데 까지 고

객의 어플리케이션을 지속적으로 관리하고 모니터링 할 수 있도록 도와줍니다.

JBoss AS 국내외 구축사례

국내 사례해외 사례

Page 17: JBoss Middleware 및 Remoting 프로젝트 소개

17

Remoting – 개요네트워크 기반 호출에 대한 단일 API 제공

Page 18: JBoss Middleware 및 Remoting 프로젝트 소개

18

Remoting – 개요 (계속)

고객 EJB 2.x – JBossAS 4.2 & 5.0

EJB 3

JBoss Messaging

JBossWS

JBoss ESB

기타 JBoss 외부 프로젝트

Page 19: JBoss Middleware 및 Remoting 프로젝트 소개

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);

Page 20: JBoss Middleware 및 Remoting 프로젝트 소개

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();

Page 21: JBoss Middleware 및 Remoting 프로젝트 소개

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) { … }

}

Page 22: JBoss Middleware 및 Remoting 프로젝트 소개

22

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Invocation

Payload

InvokerRegistry

Page 23: JBoss Middleware 및 Remoting 프로젝트 소개

23

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

InvokerRegistry

Page 24: JBoss Middleware 및 Remoting 프로젝트 소개

24

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

InvokerRegistry

Page 25: JBoss Middleware 및 Remoting 프로젝트 소개

25

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Socket

InvokerRegistry

Page 26: JBoss Middleware 및 Remoting 프로젝트 소개

26

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Socket

InvokerRegistry

Page 27: JBoss Middleware 및 Remoting 프로젝트 소개

27

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Socket

100110

InvokerRegistry

Page 28: JBoss Middleware 및 Remoting 프로젝트 소개

28

Remoting – 메커니즘

Remoting

Client

Socket

Client

Remoting Server

Server

Invoker

(transport)

Marshaller

UnMarshaller10

0110

InvocationHandler

Page 29: JBoss Middleware 및 Remoting 프로젝트 소개

29

Remoting – 메커니즘

Remoting

Client

Socket

Client

Remoting Server

Server

Invoker

(transport)

Marshaller

UnMarshaller InvocationHandler

Page 30: JBoss Middleware 및 Remoting 프로젝트 소개

30

Remoting – 메커니즘

Remoting

Client

Socket

Client

Remoting Server

Server

Invoker

(transport)

Marshaller

UnMarshaller InvocationHandler

Page 31: JBoss Middleware 및 Remoting 프로젝트 소개

31

Remoting – 메커니즘

Remoting

Client

Socket

Client

Remoting Server

Server

Invoker

(transport)

Marshaller

UnMarshaller InvocationHandler

Page 32: JBoss Middleware 및 Remoting 프로젝트 소개

32

Remoting – 메커니즘

Remoting

Client

Socket

Client

Remoting Server

Server

Invoker

(transport)

Marshaller

UnMarshaller InvocationHandler

Page 33: JBoss Middleware 및 Remoting 프로젝트 소개

33

Remoting – 메커니즘

Remoting

Client

Socket

Client

Remoting Server

Server

Invoker

(transport)

Marshaller

UnMarshaller InvocationHandler

1011

Page 34: JBoss Middleware 및 Remoting 프로젝트 소개

34

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Socket

1011

InvokerRegistry

Page 35: JBoss Middleware 및 Remoting 프로젝트 소개

35

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Socket

InvokerRegistry

Page 36: JBoss Middleware 및 Remoting 프로젝트 소개

36

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

InvokerRegistry

Page 37: JBoss Middleware 및 Remoting 프로젝트 소개

37

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

InvokerRegistry

Page 38: JBoss Middleware 및 Remoting 프로젝트 소개

38

Remoting – 메커니즘

Client

Remoting Client

Client

Invoker

(transport)

Marshaller

UnMarshaller

Response

InvokerRegistry

Page 39: JBoss Middleware 및 Remoting 프로젝트 소개

39

Remoting – 기능

다양한 트랜스포트 지원 (+ SSL) Socket / Bisocket

HTTP / Servlet

RMI

다양한 Marshaller Serializing – Default & JBoss

Compressing

Encrypting

Page 40: JBoss Middleware 및 Remoting 프로젝트 소개

40

Remoting 3

Remoting 2의 차세대 버전 (rewrite) Apache MINA 적극 활용 사용자 의견 취합중

단방향 메시징

스트리밍

Local transport

JCA 통합

Page 41: JBoss Middleware 및 Remoting 프로젝트 소개

41

Remoting 3

Page 42: JBoss Middleware 및 Remoting 프로젝트 소개

http://labs.jboss.com/http://labs.jboss.com/

Q & A