2. 웹스피어 6.1 교육 2일차
2-1. Admin Console
2-1-1 Stand-alone일 경우
- 하나의 Base를 설치하면 하나의 Profile이 생성, 하나의 AppServer 생성됨.
- AppServer안에는 서블릿 컨테이너 + EJB컨테이너 + 각종 J2EE 서비스(JNDI, JMS...)
- 서블릿 컨테이너 안에는 두개의 가상 호스트가 기본적으로 생성된다.
- defaulthost : 9080
- adminhost : 9060
- adminhost secure : 9043 (처음 접속하면 9060포트로 접속하지만, 로그인을 하면 SSL이 적용되어 9043포트로 접속함)
- ex> http://localhost:9060/ibm/console
- AdminApplication
- Admin 콘솔을 통해 사용되는 프로그램
- AdminApplication은 사용자에게 공개되지 않는다.
- Cell환경에서(DMgr에 연결 순간) 노드(=profile)의 AdminApplication는 삭제된다. 따라서 DMgr의 AdminApplication을 통해서만 노드를 관리할 수 있다.
(직접 노드의 Admin을 따로 변경할 수 없도록 조치)
2-1-2 Admin Console 메뉴
- Servers : 특정 어플리케이션을 기동/종료 가능
- Application : 현재 설치되어 있는 Application을 보여주며, 새로운 Application 설치 가능
- Resources : JDBC Provider등의 자원 설정
- Security : Single-sign-on 등의 보안 설정
- Environment : 환경설정 값 변경 - ex> 경로등은 변수를 설정하여 변수 변경만으로 변경영향 최소화...
- Troubleshooting : 에러메시지등의 시스템 메시지 확인 가능
2-1-3 Admin Console 부가 기능
- System administration > Consile Preferences : Auto 리플래쉬 기능, Admin Console의 필터기능
- Guided activities : DB연결, 어플리케이션과 WAS연결등 자주 쓰는 기능 모음
- My tasks : 즐겨찾기 기능과 같이 자신이 자주 쓰는 task들만 모아 놓는 기능
- Troubleshooting information : 실행 중의 발생한 메시지 확인 가능. (SystemErr / SystemLog)
- Tivoli Performance Viewer : 성능을 확인할 수 있는 화면.
2-2 Application programming model support
2-2-1 WebSphere 6.1
- J2EE 1.4 & J2SE 5(JDK 5.x대에서는 JDK 1.3, JDK1.4에서 사용되던 API가 아예 없어져 버린 것이 있기 때문에 마이그레이션시 수정 필요)
2-2-2 J2EE 이익
- J2EE에서 기본으로 제공하는 Services 제공(트랜잭션, 보안, persistence) cf> BMT는 권장하지 않고, CMT(Container Managed Transaction)를 권장한다.
- 표준을 제공 : Components(Web Component 스팩 / EJB Component 스팩에 맞춰 개발 하면 다른 곳에서도 실행가능하다.), services, clients와 tools에 대한 표준 제공(portable)
- Distribution : 분산환경을 제공(성능, 가용성 향상)
- Component model : MVC모델 등 비지니스 로직을 다른 로직들과 분리
- J2EE 1.4에서 제공되는 것들...
- EJB 2.1, J2SE1.4, Servlet 2.4, JSP 2.0, JDBC 3.0 ...
2-2-3 J2EE 플랫폼 역할(J2EE는 역할 기반이다.)
- Application Component Provider 역할
- Application Assembler 역할
- Deployer 역할
- System Administrator 역할
2-2-3-1 Application Component Provider(컴포넌트 제공자) 역할
- HTML 문서, EJBs, JSPs 등 어플리케이션 Building blocks(어플리케이션 컴포넌트를 개발할 때는 결합을 고려해서 개발)
- Component1, Component2, Component3 ... 시스템에 필요한 컴포넌트를 제공(구입 or 직접 개발)(reuse 고려)
2-2-3-2 Application Assembler 역할
- 제공된 컴포넌트를 결합하는 역할(Component1 + Component2 + Component3)
- 로직을 만드는 역할
- 만들어진 결합 컴포넌트는 하나의 J2EE 어플리케이션이 됨.
- 비지니스 로직만을 고려
2-2-3-3 Deployer 역할
- 결합된 컴포넌트가 운영환경으로 적용될 때 필요한 구성 정보 설정(비지니스 로직을 제외한 부분(보안등) 을 고려)
2-2-3-4 System Administrator 역할
- 운영되는 어플리케이션을 모니터링
2-2-4 J2EE 1.4 어플리케이션 컴포넌트
- J2EE 어플리케이션을 EAR로 묶여진다. (J2EE 어플리케이션의 적용되는 Deployment Descriptor가 존재)
- Web Module(WAR) : java beans
- EJB Module(JAR) : session, entity, MDB
- Resource Adapter(RAR) : RA Java Classese
- Application Client Module(JAR)
- 위의 각 단계 모듈에는 반드시 Deployment Descriptor이 존재해야 한다. 그리고 각 Deployment Descriptor에 들어가는 정보는 고정되어 있다.
- 각 업체마다 표준 스팩이외에 제공되는 서비스가 다르기 때문에 서로 호환이 100% 이루어지지 않는다.
- 또한, J2EE는 하나의 스팩이기 때문에 그러한 스팩을 구현하는 방식은 각 벤더에 따르기 때문에도 100% 호환이 되지 않는다.
2-2-5 J2EE 패키징 파일(웹스피어에서 사용하는 것)
- RARs + J2EE Application EAR file + EJB Module JAR file + Web Module WAR file등 J2EE 표준 스팩 이외에 Web DD, EJB DD, IBM Bulid/Extension File 등...
- Binding관련은 벤더마다 다름.
- Web Service는 아직 J2EE에서 표준을 제공하지 않음.
- 따라서 벤더마다 다른 부분을 변경해야 다른 WAS에서 구동될 수 있다.
2-2-6 웹스피어 어플리케이션 contents
- Deployment Descriptors : J2EE 표준
- IBM Bindings : J2EE에서는 Binding 해야 한다고 정해 놓았지만, 그 방법은 정하지 않았기 때문에 각 벤더가 자체적으로 제공.
- IBM Extensions : 추가 옵션들... (엑세스 기준(Lock 여부), Web application reloading, servlet invoker)
2-2-7 Application Server Toolkit(AST)
- 이클립스 기반
- 제공 기능
- J2EE Ent App 개발 및 Config 생성 가능, 디스크립터 수정, info attributes 수정 및 바인딩
- 제이슨(Jython)을 이용한 스크립트 생성 및 디버그
- 타 모듈 import!(EAR, WAR...)
- 각 모듈마다 descriptor가 존재한다.
- context root는 어플리케이션 디스크립터에 존재한다.
- 어플리케이션 디스크립터에 Web, EJB, Application client, 리소스 adapter 등이 존재
2-2-8 Enhanced EAR
- 개발과 테스트 단계에서만 작성한다.
- 실제 운영에 적용할 때는 제외한다.
- Enhanced EAR에서 정의된 리소스는 Application 영역에 정의된다.
2-2-9 EJB 모듈 Assembly
- Session bean, BMP entity, CMP entity, MDB등...
2-2-10 Web 모듈 assembly
- Servlets, JSPs, Static HTML, 지원되는 Java code
- URL 매핑 (Servlets 와 JSPs)
2-2-11 어플리케이션 설정
- 어플리케이션 J2C 권한 지정
- JDBC Connection & data source 지정.
- 프로파일의 installableApps 폴더에 인스톨할 Application을 옮겨 놓은 후 인스톨 하길 권장. (Why? 다른 사용자와 커뮤니케이션을 위해.. installableApps가 최종버젼임을 확인)
2-2-12 Enterprise application 설치
- pre-compile JSPs : 인스톨 시 체크하면 JPs파일을 검사한다.
- EJBs deploy
- 각 모듈을 서버에 매핑등...
2-2-13 Application Start
- 어플리케이션 서버를 띄우면 해당 Application Server의 모든 Application(단, AutoStart를 Enable한 것만)을 띄운다.
- 따라서, Application 의 Loading 우선순위를 줄 수 있다. (같은 값의 우선순위는 어느 것이 먼저 뜰 지 장담 X)