21
JBoss Application Server / Enterprise Application Platform Kj Nam

[사내 세미나] JBoss 1st

  • Upload
    -

  • View
    67

  • Download
    1

Embed Size (px)

Citation preview

Page 1: [사내 세미나] JBoss 1st

JBoss Application Server /Enterprise Application Platform

Kj Nam

Page 2: [사내 세미나] JBoss 1st

E. J. B. O. S. S. ?

Page 3: [사내 세미나] JBoss 1st

E. J. B. O. S. S. Enterprise Java Beans Open Source Software

• 1999년 EJB 컨테이너를 오픈 소스로 개발하기 위해 시작된 프로젝트- SUN과의 상표권 문제로 앞의 E를 빼고 JBoss 라고 이름 변경

• 자바를 기반으로 하는 오픈소스 미들웨어의 총칭- 40개 이상의 다양한 프로젝트. - 대표적으로 Java EE 스펙을 지원하는 A.S.

• 2006년 Redhat이 인수

Page 4: [사내 세미나] JBoss 1st

JBoss Enterprise Middleware 제품군

http://www.techweekeurope.it/workspace/red-hat-aggiorna-la-propria-offerta-middleware-33238

JBOSS ProjectEnterprise Application Platform(EAP) - enhances JBoss Application Server to provide a complete solution for Java applications.기업용 JBoss...돈주고 사는거

Enterprise Web Platform(EW) - a lightweight platform for building light and rich Java applicationsEAP의 서브셋으로 구성되어 있고 개발컴포넌트(하이버네이트같은)들이 포함 되어 있음EJB Profile은 제거 되어 있음

Enterprise Web Server(EWS) - a single solution for large scale websites and simple web applications.(Apache+Tomcat으로 서블릿만 운영하는 중소규모 사이트용 like Sun Web Servertomcat은 클러스터를 제거하여 제공된다.)https://access.redhat.com/site/articles/111723

정리 :EAP는 Full 버젼, 돈되는고객,EW은 EJB불필요 + EAP 보다는 작으나 물리적 3Tier구성을 요구하는 중형, (거의 비지니스 없는듯)EWS는 EJB불필요 + 로지컬 3Tier이나 WAS별도 구성보다는 대규모 단순트레픽 대응 용

Enterprise Communications Platform - a development platform for the telecommunications industry.https://access.redhat.com/site/documentation/en-US/JBoss_Communications_Platform/The JBoss Communications Platform (JBCP) is an open source VoIP platform certifiedfor JAIN SLEE 1.1 and SIP Servlets 1.1 compliance.뭐임....VOIP 서버도 있음????

Enterprise Portal Platform - to build and deploy portals for SOA user interaction and personalized presentation.말그대로 표준을 따라서 만드는 포탈...우리나라 사람들은 맘대로 만드는거 좋아하니...표준따라 만든 생산성있는 포탈보다안 예쁘면 쓰레기 취급이므로 기업기간시스템 아니면 적용하기 어렵고웬만큼 큰 기업 아니면 단독으로 사업하기란 안되는게 맞을것 같음

SOA Platform - integrates applications and orchestrates services to automate business processes in a service-oriented architecture.ESB, jBPM, Drools,EAP, MQ, 등등...기업내부 데이터통합을 위한 모든 단위 솔루션을 뭉뜽그려놓은 제품아래것들은 엔진수준으로 이해함

Business Rules Management System (BRMS) - enables business policy and rules development, access, and change management.BPM등에서 이벤트 발생시 이벤트를 미리정의된 정책을 기반으로 처리하기위해 별도 고안됨BRMS(Bisiness rule management system) 정책기반관리시스템BRE(Business Rule Engine) 정책관리를 위해 사용되는 엔진룰엔진 : RHEL Drools

Data Services - a management system to work with data across diverse systems옛날에 DB Middleware와 유사한..다양한 레거시DB와 연결하여 표준화된 스키마제공이 목적

JBoss Hibernate - industry-leading[citation needed] O/R mapping and persistence개발 프레임워크, 좋다고 말은 많지만 쓰는곳 한번도 못본...우리는 스프링+iBatis+Dbcache에 편중된 환경이라....이미 사용중인 프레임워크변경은 문화를 바꾸는수준으로 보아야할듯...

JBoss Seam - for simplifying web 2.0 application developmentJBoss Web Framework Kit - for building light and rich Java applicationsJBoss RichFaces - adding Ajax capabilities to the JavaServer Faces web application framework.제품이라고 하기에는...프로그레밍모델, 울나라 개발자들 스프링에 종신계약했듯이 이거쓰면 RHEL하고

JBoss Operations Network - a customizable management-platform for JBoss deploymentsJBoss가 설치된 팜에서 WAS를 모니터링하기 위한 솔루션, 배포나 스넵샷등은 긍정적이나 모니터링성능은 고려필요국산 EMS업체나 제니퍼와같이 전문 APM과는 비교어렵다.

JBoss Developer Studio - offers developers an environment for building rich web applications, transactional enterprise applications, and SOA-based integration applications.이클립스기반 IDE...돈주고 사는사람은 없을듯

JBoss Fuse Service Works 6ESB와 프레임워크통합 솔루션, 메시징 기반 데이터 교환의 확장형태

Red Hat JBoss Data Virtualization 6

Red Hat JBoss Data Grid 6.2VM가상화, 세션및 데이터케싱등...오라클 FusionMiddleware 코헤런스 제품과 유사

Page 5: [사내 세미나] JBoss 1st

JBoss AS Timeline

JSE

JEE

JBoss CE

JBoss EAP

2004 2006 2008 2010 2012 2014 2016

J2SE 5.02004-11

Java EE 52006-05

AS 52008-12

EAP 52009-11

Java SE 62006-11

Java SE 72011-07

Java SE 82014-03

Java EE 62009-12

Java EE 72013-05

AS 62010-12

AS 72011-07

EAP 62012-12

Wildfly 82014-02

Wildfly 92015-06

Wildfly102016-01

EAP 7 (beta)2015-12

Red Hat이JBoss, Inc 인수

2006-04

상용제품과혼돈 피하기 위해

이름 변경

Page 6: [사내 세미나] JBoss 1st

JBoss AS Release Schedule

• AS버전의 버그, 보안업데이트, 안정성과 품질 테스트를 거쳐 EAP 버전 출시

http://redhat.com

Page 7: [사내 세미나] JBoss 1st

2014 Top Java EE Application Server Report- http://blog.arungupta.me/jboss-wildfly-top-javaee-appserver-zeroturnaround-report/

Page 8: [사내 세미나] JBoss 1st

JAVA EE

자바 플랫폼, 엔터프라이즈 에디션(Java Platform, Enterprise Edition; Java EE)은 자바를 이용한 서버측 개발을 위한 플랫폼이다. Java EE 플랫폼은 PC에서 동작하는 표준 플랫폼인Java SE에 부가하여, 웹 애플리케이션 서버에서 동작하는 장애복구 및 분산 멀티티어를 제공하는 자바 소프트웨어의 기능을 추가한 서버를 위한 플랫폼이다. 이전에는 J2EE라 불리었으나 버전 5.0 이후로 Java EE로 개칭되었다.- Wikipedia

https://steveschols.wordpress.com/2013/12/11/devoxx-2013-java-ee-7/

Java EE 7 Technologies• Java Servlet• Java Server Pages• JDBC

.

.

• EJB (Enterprise Java Beans)• JNDI (Java Naming and Directory Interface)• JMS (Java Message service)• JTA (Java Transaction API)

등 엔터프라이즈를 위한 API

Web Application Technologies

Java API for WebSocketJava API for JSON ProcessingJava Servlet 3.1JavaServer Faces 2.2Expression Language 3.0JavaServer Pages 2.3Standard Tag Library for JavaServer Pages (JSTL) 1.2

Page 9: [사내 세미나] JBoss 1st

EJB

엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리

케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.- Wikipedia

EJB의 종류

• 세션 빈 (Session Bean) : DB 연동이 필요 없음• 엔티티 빈 (Entity Bean)

– 데이터베이스의 데이터를 관리하는 객체– Insert(삽입), Update(수정), Delete(삭제), select(조회)– DB 관련쿼리는 자동으로 만들어지고 개발자는 고급 업무처리에집중할 수 있음– DB가 수정되면 코드 수정 없이 다시 배포(설정 문서 만들어서 복사)

• 메시지 구동 빈 (Message-driven Bean) : JMS로 빈을 날려줌.

Page 10: [사내 세미나] JBoss 1st

일반적인 Java EE 구축https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2coj7/index.html

Page 11: [사내 세미나] JBoss 1st

• 지나치게 복잡하고 무거워진 Java EE & EJB

• 경량 프레임워크의 인기 (Spring, Play and more)

• Java EE 풀스펙을 지원하는 WAS 불필요

- 경량화 된 서블릿 컨테이너 Tomcat 인기

Page 12: [사내 세미나] JBoss 1st

JBoss EAP 6Enterprise Application Platform

• JAVA EE6 호환 애플리케이션 서버 (JAVA EE 풀스펙 지원)• 빠른 부팅 시간 (EAP6 이전 버전 대비 약 20배)• 모듈형 클래스 로딩• 다이어트 된 메모리 사용 (EAP6 이전 버전 대비 약 10배)• 중앙 집중화 된 설정 파일과 편리한 관리 도구

Page 13: [사내 세미나] JBoss 1st

JBoss EAP 디렉터리 구조

http://www.slideshare.net/ienvyou/j-boss6-7

Page 14: [사내 세미나] JBoss 1st

JBoss EAP 운영모드

머신 #1 머신 #2

서버1 서버2 서버1 서버2

Standalone Mode

• 전통적인 싱글 서버 모델 (단일JVM)

• 각 서버마다 모듈세팅 필요

ex) datasource, mail …

• Lifecycle 관리가 없음

Page 15: [사내 세미나] JBoss 1st

JBoss EAP 운영모드

Domain Mode

머신 #1

프로세스컨트롤러 도메인컨트롤러

콘솔

서버1

서버2

서버3

서버4

호스트컨트롤러

프로세스컨트롤러

호스트컨트롤러

프로세스컨트롤러

머신 #2 머신 #3서버 그룹

• 멀티 JVM, 멀티 Server 모델

• 설정을 중앙에서 관리

• 호스트에서 여러 서버 인스턴스(JVM) 사용

• 프로세스 컨트롤러로 Full Lifecycle 관리

Page 16: [사내 세미나] JBoss 1st

JBoss EAP 관리도구

Management Console (관리콘솔)

• 웹브라우저 기반의 관리도구

• 배포, 제거, 시작, 정지, 인스턴스 모니터링 등

• 변경할 수 있는 설정 항목은 CLI 보다 적음

CLI (Management Command Line Interface)

• 명령행 형식의 관리도구

• 관리 자원의 오퍼레이션 실행, 일반 명령 실행 등

Page 17: [사내 세미나] JBoss 1st

JBoss EAP 애플리케이션 배포

배포 방식

1) MANAGED: JBoss가 애플리케이션 배포 파일을 관리

2) UNMANAGED: 사용자가 애플리케이션 배포 파일을 관리

ARCHIVEEXPLODED

• 웹애플리케이션(.war)• EJB 애플리케이션(.jar)• Enterprise 애플리케이션(.ear)• Resource Adapter (.rar)• 웹서비스애플리케이션(.wsr)• JBoss 서비스(.sar)

Page 18: [사내 세미나] JBoss 1st

scanner path를 참조하여 배포를 수행 (서버 default 옵션)

$ JBOSS_HOME/standalone/configuration/standalone.xml

$ cp jboss-helloworld.war $JBOSS_HOME/standalone/deployments

1) 배포스캐너를 이용한 배포 (도메인모드는 불가)

Page 19: [사내 세미나] JBoss 1st

CLI 실행

$ JBOSS_HOME/bin/jboss-cli.sh --controller=서버IP:포트번호 --connect

[standalone@localhost:9999 /] /deployment=jboss-helloworld.war:add(runtime-name=“jboss-helloworld.war”, content=[{“path”=>”/home/admin/Downloads/jboss-helloworld.war”, “archive”=>false}])

2) CLI 를 통한 배포

배포

[standalone@localhost:9999 /] /deployment=jboss-helloworld.war:deploy

[standalone@localhost:9999 /] /deployment=jboss-helloworld.war:undeploy

배포중지, 삭제

[standalone@localhost:9999 /] /deployment=jboss-helloworld.war:remove

• runtime-name: 실제 배포될 이름• name: JBoss 에서 관리하는 이름• path: 실제 파일 경로• archive: 압축(war, jar or other) 파일 여부

Page 20: [사내 세미나] JBoss 1st

3) 관리콘솔에서 배포

Page 21: [사내 세미나] JBoss 1st

참고자료

• 거침 없이 배우는 JBoss. 전준식 저, 지앤선 출판. 2014.

• 주식회사 오픈소스컨설팅 - JBoss6&7 교육자료• http://www.slideshare.net/ienvyou/j-boss6-7• http://www.slideshare.net/ienvyou/session-clustering• http://www.slideshare.net/ienvyou/jboss-as7eap6-jms• http://www.slideshare.net/ienvyou/session-iij-bosseap6

• Redhat – Jboss 제품소개• https://www.redhat.com/ko/technologies/jboss-middleware/application-platform

• JBOSS 관리자 개발 가이드• http://ldg.pe.kr/framework_reference/jbossAdmin/index.html

• Introduce JBoss AS / EAP and Java EE6 • http://www.slideshare.net/dandreadis/jboss-as-eap-and-java-ee6