 |  |
|
난이도 : 초급 Nell Gawor, Advisory Software Engineer, IBM Lin Sun, Staff Software Engineer, IBM
2006 년 3 월 13 일 IBM® WebSphere® Application Server Community Edition은 Apache Geronimo에 기반한 오픈 소스 Java™ 2 Platform, Enterprise Edition (J2EE™) 애플리케이션 서버이다. 왜 이 제품을 사용해야 하는지, 가장 효과적인 사용 시점은 언제인지, 빠른 실행을 위해 알아야 할 것은 무엇인지, 환경 설정과 올바른 다운로드 패키지 선택에서부터 애플리케이션 전개 까지, 이 새로운 제품에 대한 모든 것을 설명한다.
IBM WebSphere Developer Technical Journal발췌.
머리말
IBM WebSphere Application Server Community Edition은, Apache Foundation이 만든 오픈 소스 애플리케이션 서버인 Apache Geronimo 상단에 구현된 Java 2 Platform, Enterprise Edition(J2EE) 애플리케이션 서버이다.
WebSphere Application Server Community Edition을 언제 사용하나?
WebSphere Application Server Community Edition을 언제 사용해야 할까? 애플리케이션을 어떻게 사용할 것인지에 따라 여러 가지 사용 시나리오가 있을 수 있다. WebSphere Application Server 제품을 사용하는 것이 더 나을 때가 있고, 또는 Apache Geronimo를 사용하는 것이 더 나을 수도 있기 마련이기 때문이다.
-
J2EE 애플리케이션을 실행할 테스트 플랫폼으로서 경량의 애플리케이션 서버가 필요하고, 비교적 안정적이고 테스트가 잘 된 세계적 수준의 지원을 갖춘 구현을 갖고 싶다면, Community Edition이 기술적으로나 경제적으로나 가장 합리적인 선택이다. 애플리케이션과 프로토타입을 실행할 정도로 충분히 안정적인 애플리케이션을 사용하고 있다면 Community Edition을 무료로 다운로드 하여 사용할 수 있다. 짧은 시간 동안 설치 및 실행하여 프로토타입을 평가 또는 데모할 수 있다. 제품을 무료로 계속 사용해도 되고, 필요할 경우 IBM 지원 옵션을 구매하거나 WebSphere Application Server 제품으로 마이그레이션 할 수 있다.
-
고가용성, 클러스터링, 페일오버가 필요한 중요한 애플리케이션을 실행할 예정이거나, J2EE 애플리케이션을 전개 및 디버깅 할 고급 관리 콘솔과 툴링이 필요하다면 IBM WebSphere Application Server 제품들을 고려해 보는 것이 좋다. Community Edition으로는 애플리케이션을 빠르게 개발하여 점증적으로 증대 시킬 수 있다. 다른 WebSphere Application Server 제품들도 생각해 봐야 한다. 빠른 개발을 위해 보다 시각적인 툴링이 필요하다면 WebSphere Application Server – Express가 더 낫다. 확장성, 엔터프라이즈 전개, 기능적 복잡성, 강력함 등이 요구되거나, 트랜잭션 양이 많거나, 또는 애플리케이션의 자율 전개, 비즈니스 목표 기반의 애플리케이션 우선순위 결정 등을 원한다면, WebSphere Application Server, WebSphere Application Server Network Deployment, WebSphere Extended Deployment를 생각해 보라.
-
애플리케이션 서버의 구현을 향상 또는 개인화 하거나, 기능을 추가하거나, 버그를 픽스하려면 Apache Geronimo를 사용하는 것이 낫다. 관련된 모든 소스 코드를 얻을 수 있고 자신만의 애플리케이션 서버를 구현할 수 있다. 게다가, 업데이트를 Apache Geronimo 커뮤니티에 기여하여 다른 사람들도 활용할 수 있도록 한다.
Community Edition의 가치
Apache Geronimo는 Apache Software Foundation이 개발한 오픈 소스 J2EE 애플리케이션 서버로서 Apache Jetty, Apache Tomcat, ActiveMQ, Tranql, OpenEJB 같은 앞선 기술들을 광범위한 오픈 소스 커뮤니티에 도입하여 J2EE 스택을 지원한다.(참고자료)
Community Edition은 Apache Geronimo Milestone 5의 상단에 구현된 경량의 J2EE 애플리케이션 서버로서, 여기에 IBM이 핵심 기능과 IBM 지원이 추가되었다. Community Edition은 Apache Geronimo M5와 IBM 제품과 조화롭게 구성되었다. Community Edition의 기본적인 특징은 다음과 같다.
- IBM Java Virtual Machine(JVM) 지원이 되는 J2EE 1.4 인증. 이는 다른 WebSphere Application Server 제품들에 포함된 것과 같은 JVM이다.
- 기본 웹 컨테이너로서의 Apache Tomcat. (Geronimo는 Jetty를 사용한다.)
- IBM Cloudscape V10.1 데이터베이스 포함. 개발 및 제품화 지원.
- DB2®, Oracle® databases, Microsoft® SQL Server, MySQL 데이터베이스 서버 지원.
- 작은 풋프린트 다운로드 패키지를 이용한 InstallShield 설치. Community Edition은 5분 이내에 설치된다. ISV 벤더들은 Community Edition을 쉽게 삽입할 수 있다.
- IBM WebSphere 제품의 룩앤필.
- Gluecode Standard Edition, Apache Geronimo, Apache Tomcat에서 Community Edition으로의 마이그레이션, 그리고 Community Edition에서 기타 WebSphere Application Server 제품들로의 마이그레이션 지원.
- IBM LDAP 통합.
- 자세하고 완벽한 문서화.
- 무료 제품 라이센스. 개발, 테스트, 전개에 Community Edition을 무료로 사용 할 수 있다.
- 1.5년간 IBM 제품 지원(Apache Geronimo 커뮤니티와 밀접하게 연관되어 있기 때문에 IBM Apache Geronimo 지원은 빈번한 업데이트가 필요하다.)
Community Edition 다운로드와 설치
Community Edition 시스템 조건
- 지원되는 운영 체계
- Windows® 플랫폼(Intel® )- 32 bit (IA-32) 프로세서
- Microsoft Windows Server 2003과 Service Pack 1 (SP1)
- Microsoft Windows XP Professional Edition과 Service Pack 2 (SP2) (개발 전용)
- Linux® 플랫폼(Intel®) - 32 bit (IA-32) 프로세서
- Red Hat Enterprise Linux Version 3 Update 5 (Work Station (WS), Entry Server (ES), or Advanced Server (AS))
- Red Hat Enterprise Linux Version 4 Update 1 (Work Station (WS), Entry Server (ES), or Advanced Server (AS))
- Novell® SuSE Linux Enterprise Server 9 Service Pack 2 (SP2)
- RedFlag Data Center 5.0
Community Edition은 다른 플랫폼 상에서도 실행되지만, 다음과 같은 환경이 지원되어야 한다.
- 자바 환경 지원
- IBM Java 2 Standard Edition (J2SE) Software Development Kit (SDK) Version 1.4.2 build cn142ifx-20051109 (142SR3+97115+97198+97199+97509) 및 이후 버전과 IBM Java ORB build orb142ifx-20051109 (142SR3+97115+97198+97199+97509) version 1420:1 및 이후 버전
- IBM Java 2 Standard Edition (J2SE) Java Runtime Environment (JRE) Version 1.4.2 build cn142ifx-20051109 (142SR3+97115+97198+97199+97509) 및 이후 버전과 IBM Java ORB build orb142ifx-20051109 (142SR3+97115+97198+97199+97509) version 1420:1 및 이후 버전
- Sun® Microsystems Java 2 Standard Edition (J2SE) Software Development Kit (SDK) Version 1.4.2 build 1.4.2_09 및 이후 버전
- Sun Microsystems Java 2 Standard Edition (J2SE) Java Runtime Environment (JRE) Version 1.4.2 build 1.4.2_09 및 이후 버전
지원되는 자바 환경이 없다면 JRE가 포함된 설치 패키지를 다운로드 할 수 있다.
다운로드와 설치
Community Edition의 다운로드와 설치는 비교적 간단하다. developerWorks에서 Community Edition 소프트웨어를 무료로 다운로드 할 수 있다. 총 4 가지 버전의 Community Edition이 있다. 각자의 플랫폼에 따라, 그리고 Java Runtime Environment (JRE)의 설치 여부에 따라 버전을 선택하면 된다. 지원되는 JRE가 없다면 "plus JRE"라는 라벨이 붙은 패키지를 선택하라.
지원되는 자바 환경이 있다면 setup-wasce 파일을 실행하여 Community Edition을 설치하라. 또는, setup-wasce 파일을 실행하기 전에, wasce10_ibm142jre 파일을 확장(untar 또는 unzip)하여 setup-ibm-jre-142를 실행하여 지원되는 JRE를 만든다.
서버 시작과 중지
시작하기
Windows 2003 또는 XP 서버의 경우, Start => Programs => IBM WebSphere => Application Server Community Edition => Start the server를 선택하여 서버를 시작한다. 기본 설치 장소인 C:\Program Files\IBM\WebSphere\AppServerCommunityEdition\bin\startServer.exe에 위치한 시작 론처가 시작될 것이다.
리눅스의 경우, 기본 설치 장소인 /opt/IBM/WebSphere/AppServerCommunityEdition/bin를 실행하여 서버를 시작한다.
그림 1은 서버가 성공적으로 시작했을 경우 디스플레이 되는 Geronimo Application Server started 메시지이다.
그림 1. Community Edition 서버 시작
중지하기
서버를 중지하려면 서버 윈도우에서 Ctrl-C 를 누른다. Server shutdown begun 메시지가 디스플레이 되고 서버가 바로 중지된다.
첫 번째 애플리케이션 전개
Community Edition을 다운로드할 때 사용할 수 있는 파일들 중 하나는 J2EE 애플리케이션 샘플을 포함하고 있는 ZIP 파일이다. 이 샘플을 사용하는 것이 가장 좋은 방법이다. 가장 간단한 Hello 샘플 애플리케이션을 전개해 보면 Community Edition에 애플리케이션을 전개하는 방법을 빠르게 이해할 수 있다. 이 샘플을 사용하고 Hello 애플리케이션을 전개하려면,
-
제품 다운로드 페이지에서 wasce10_samples.zip 파일을 다운로드 하여 알맞은 위치에 압축을 푼다.
-
샘플 디렉토리에서, hello 디렉토리에는 소스 형식과 바이너리 형식의 애플리케이션이 들어있다. src/webapp을 검색하면 이것이 매우 간단한 웹 애플리케이션이라는 것을 알게 될 것이다. 메인 파일은 ServerPages 파일인 index.jsp (Listing 1)이다.
Listing 1. index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<jsp:useBean id="datetime" class="java.util.Date" />
<title>Hello IBM WebSphere Application Server Community Edition Version 1</title>
</head>
<body>
<h2>Welcome to IBM WebSphere Application Server Community Edition Version 1</h2>
<p>Congratulations on running this very simple demo application on ${datetime}.</p>
</body>
</html>
|
Hello 애플리케이션에는 표준 J2EE 호환의 전개 디스크립터(Listing 2)가 있다. Hello 애플리케이션은 표준 웹 애플리케이션이기 때문에 Community Edition이나 기타 J2EE 애플리케이션 서버에서 실행하기 위해 변경 할 필요가 없다.
Listing 2. web.xml
<?xml version="1.0" encoding="UTF-8" ?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" />
|
-
애플리케이션을 전개하기 전에 서버를 시작한다.
-
다른 명령어 프롬프트를 열고 wasce_install 디렉토리를 검색한다.
-
다음 명령어를 실행한다.
java -jar bin\deployer.jar --user system --password manager deploy samples_home\hello\bin\hello.war |
전개 명령어가 끝나면 전개가 성공적으로 수행되었다는 메시지가 디스플레이 된다.
Deployed hello @ http://localhost:8080/hello |
-
새로운 브라우저 윈도우에서 http://localhost:8080/hello를 연다. 애플리케이션을 성공적으로 전개했다는 축하 메시지가 보인다. (그림 2)
그림 2. hello 애플리케이션
애플리케이션이 무사히 전개 및 실행되었다. 이보다 더 쉬울 수는 없다. 하지만 서버를 시작했던 윈도우를 보면 다음과 같은 메시지가 보인다.
WARN [TomcatModuleBuilder] Web application does not contain a WEB-INF/geronimo-web.xml deployment plan.
This may or may not be a problem, depending on whether you have things like resource references that
need to be resolved. You can also give the deployer a separate deployment plan file on the command line. |
이것은 추가 정보가 필요 없는 간단한 애플리케이션이기 때문에 문제될 것 없다. 보다 복잡한 애플리케이션을 전개한다면(외부 라이브러리에 의존한다거나, 리소스 레퍼런스를 실제 리소스로 매핑하는 경우) 전개 시 추가 정보를 제공해야 한다. Community Edition의 경우, 이 정보는 전개 계획의 형태로 제공된다.
Hello 애플리케이션의 컨텍스트 루트를 hello 대신 simpledemo로 바꿔보자.
-
Hello 애플리케이션을 새로운 컨텍스트 루트로 전개하기 전에 전개를 해제해야 한다. wasce_install 디렉토리에서 다음 명령어를 실행한다.
java -jar bin\deployer.jar --user system --password manager undeploy hello |
애플리케이션 전개 해제가 완료되었다는 메시지가 나온다. (애플리케이션을 포함하고 있는 모듈의 이름을 기억 나지 않으면 list-modules 명령어를 실행하여 현재 서버에 전개된 모든 모듈을 볼 수 있다.)
-
Listing 3의 코드를 hello-plan.xml 파일로 복사하여 전개 계획을 세운다.
Listing 3. hello-plan.xml
<?xml version="1.0"?>
<web-app
xmlns="http://geronimo.apache.org/xml/ns/web"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming"
configId="HelloApp">
<context-root>/simpledemo</context-root>
</web-app>
|
-
다음 명령어를 실행하여 애플리케이션을 다시 전개한다. 이번에는 전개 계획의 위치도 제공한다.
java -jar bin\deployer.jar --user system --password manager deploy samples_home\hello\bin\hello.war
path_to_hello_plan\hello-plan.xml |
전개를 완료하면 전개 성공 메시지가 나온다.
Deployed HelloApp @ http://localhost:8080/simpledemo |
컨텍스트 루트가 변경되었을 뿐만 아니라 모듈의 이름도 전개 계획 때 지정된 config ID와 같다.
문제 해결
문제가 생기면 먼저 로그부터 검사한다.
설치 로그
- Windows: 사용자의 홈 디렉토리에 wasce_install.log가 있다. (C:\Documents와 Settings\userID : userID가 로그온에 사용된 사용자 이름으로 대체된다.)
- Linux: 공통 로그 디렉토리인 /var/log에 wasce_install.log가 있다.
서버 로그
Community Edition 서버 로그는 installDir/var/log 디렉토리에 있다. installDir는 서버의 설치 디렉토리이다.
-
server.log는 서버 시작, 전개, 설정, 애플리케이션 실행, 서버 중지 데이터를 포함하고 있는 로그이다.
-
deployer.log는 서버가 실행되지 않을 때 오프라인 전개를 수행할 때의 활성 로그이다. 서버가 실행되면 전개 정보는 서버 로그로 간다.
-
client.log는 J2EE 클라이언트 컨테이너 로그이다.
디폴트 데이터베이스 로그
IBM Cloudscape Version 10.1은 디폴트 시스템 데이터베이스 이고, 이것의 로그인 derby.log는 installDir/var/log 디렉토리에 있다. installDir는 서버의 설치 디렉토리이다.
기술 옵션 지원
IBM 기술 지원 팀은 세 가지 레벨의 Community Edition용 연간 유상 지원을 제공한다. 기술 지원 오퍼링 페이지를 참조하라.
다음 단계
샘플 애플리케이션 실험
샘플 다운로드 ZIP 파일에는 샘플 애플리케이션들이 더 있다. 이러한 샘플들을 계속 공부하는 것도 바람직하다.
-
CViewer - 서블릿을 호출하는 JSP 파일로 구성된 webapp. 사용자에게는 폼과 인풋이 제공된다. 폼 제출 시, 서블릿은 클래스이름에 반영되고 결과를 사용자에게 리턴한다.
-
DBDemo1 - Derby 데이터베이스에서 WASCE_USERS 데이터베이스 테이블에 액세스 하는 webapp.
-
EMPdemo - Derby 데이터베이스에 액세스 하는 방법과 외부 Oracle 데이터베이스로의 액세스를 설정하는 방법을 설명하는 샘플 애플리케이션.
-
Daytrader - 주식 거래 스토리라인을 모방한 샘플 애플리케이션. 포트폴리오, 시세, 매매 주식 등을 볼 수 있다. JSP, 서블릿, Enterprise JavaBeans, JDBC, JMS 등 많은 J2EE 기능을 사용하는 고급 애플리케이션이다.
문서 읽기
Community Edition 제품 문서를 참조하라. 시작하기, 전략 선택하기, 개념, 태스크, 레퍼런스, FAQ 등 Community Edition에 대해 알고 싶은 거의 모든 것이 여기에 있다.
결론
지금 까지 WebSphere Application Server Community Edition의 설치와 사용에 대해 설명했다. 이 글에서 설명한 예제와 샘플을 배우고 익히기 바란다. 아래 참고자료섹션에서는 오픈 소스 관련 자료들을 수록했다. 지금 바로 WebSphere Application Server Community Edition을 다운로드 하여 사용해보기 바란다.
기사의 원문보기
참고자료 교육
제품 및 기술 얻기
필자소개  | 
|  |
Nell Gawor Advisory Software Engineer, IBM |
 | 
|  |
Lin Sun Staff Software Engineer, IBM |
기사에 대한 평가
 |
| 이 문서 북마킹 하기
|
|  |