[사내 세미나] JBoss 1st

Post on 15-Apr-2017

67 views 1 download

Transcript of [사내 세미나] JBoss 1st

JBoss Application Server /Enterprise Application Platform

Kj Nam

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

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

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

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

• 2006년 Redhat이 인수

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 코헤런스 제품과 유사

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

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

이름 변경

JBoss AS Release Schedule

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

http://redhat.com

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

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

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로 빈을 날려줌.

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

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

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

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

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

JBoss EAP 6Enterprise Application Platform

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

JBoss EAP 디렉터리 구조

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

JBoss EAP 운영모드

머신 #1 머신 #2

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

Standalone Mode

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

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

ex) datasource, mail …

• Lifecycle 관리가 없음

JBoss EAP 운영모드

Domain Mode

머신 #1

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

콘솔

서버1

서버2

서버3

서버4

호스트컨트롤러

프로세스컨트롤러

호스트컨트롤러

프로세스컨트롤러

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

• 멀티 JVM, 멀티 Server 모델

• 설정을 중앙에서 관리

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

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

JBoss EAP 관리도구

Management Console (관리콘솔)

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

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

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

CLI (Management Command Line Interface)

• 명령행 형식의 관리도구

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

JBoss EAP 애플리케이션 배포

배포 방식

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

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

ARCHIVEEXPLODED

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

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

$ JBOSS_HOME/standalone/configuration/standalone.xml

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

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

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) 파일 여부

3) 관리콘솔에서 배포

참고자료

• 거침 없이 배우는 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