• 검색 결과가 없습니다.

Java 2 Enterprise Edition(J2EE)는 기업 어플리케이션 환경이 복잡해지면서 트랜잭션이 폭발적으로 증가하고 대용량의 데이터를 다루어야 하는 현실에서 그 해결책으로 제시된 Java 기반의 엔터프라이즈 어플리케이션(Enterprise Application)개발 환경이다.

J2EE는 멀티 티어 상에 위치 가능한 엔터프라이즈 어플리케이션을 개발하기 위한 표준을 일컫는다. 엔터프라이즈 어플리케이션은 표준화되고 모듈화된 컴 포넌트로 구성된다. J2EE는 이러한 컴포넌트에 완벽한 서비스 군을 제공함으 로서, 개발자에게 복잡한 개발 과정 없이 해당 컴포넌트를 자동적으로 처리해 주는 환경을 제공한다. J2EE는 코드의 이동성, 데이터베이스 연동을 위한 JDBC API, 현존하는 엔터프라이즈 자원과의 연동을 위한 CORBA 기술, 인터 넷상의 데이터조차도 보호할 수 있는 보안 모델 등 Java의 장점을 엔터프라 이즈 환경으로 극대화 하였다. 또한, 이를 기반으로 EJB 컴포넌트, Servlet API, JSP와 XML 기술을 지원한다. J2EE은 현재 J2EE 표준을 준수하는 시스 템에 위치한 어플리케이션의 이동성을 보장하기 위하여 표준 규약과 호환성 테스트를 내재하고 있다.(SUN, 2002)

<그림 2-7> J2EE Standard Enterprise Services

J2EE의 엔터프라이즈 어플리케이션 모델은 그림 2-7과 같이 Client-Side Presentaton, Server-Side Presentation, Server-Side Business Logic, Enterprise Information System으로 구성되어 있다.

<그림 2-8> J2EE Enterprise Application Model

Client-Side Presentation 계층은 client단에서 표현되는 컨텐츠를 의미하며 정적 HTML이나 Java 애플릿 등이 이에 해당한다.

Server-Side Presentation 계층은 비즈니스 로직 계층을 통해 처리된 데이터 를 JSP 및 Servlet으로 처리하여 client에 넘겨주는 역할을 한다.

Server-Side Business Logic 계층은 어플리케이션의 핵심인 로직을 담고 있 으며 다른 어플리케이션이나 데이터베이스와 연동해 요청된 비즈니스 로직을 처리하는 부분이다.

Enterprise Information System은 ERP나 사내 정보시스템 같은 개별 어플리 케이션 혹은 데이터베이스를 나타낸다.

(1) Enterprise Java Beans(EJB)

SUN(2002)에 따르면 EJB는 컴퍼넌트 기반의 분산 객체 컴퓨팅의 아키텍춰

이며 분산 처리 지향(distributed transaction-oriented)엔터프라이즈 어플리 케이션의 컴퍼넌트로 정의한다.

즉, 분산 객체 컴퓨팅 환경에서 트랜잭션의 처리를 위한 Java Bean 컴퍼넌트 를 EJB라고 부르는 것이다.

EJB의 특징은 기존의 Transaction Processing Monitor의 역할인 트랜잭션 컨트롤뿐만 아니라 보안, 지속성, 자원관리를 자동으로 해주는 컴포넌트 트랜 잭션 모니터(Component Transaction Monitor : CTM)역할을 한다.

또 한 가지의 특징은 RMI(Remote Methode Invocation) 프로토콜을 이용한 분산 객체 아키텍처라는 것이다. EJB는 RMI 프로토콜을 기반으로 STUB - SKELETON - Server Object로 구성되어 있다.

<그림 2-9> EJB 호출 메커니즘

Stub은 클라이언트 단에서 RMI 프로토콜을 이용해 클라이언트를 호출하는 역할을 하며 Skeleton은 서버 단에서 특정 IP 주소 및 포트에 대기하고 있으 며 클라이언트의 호출을 받아 Server Object에 연결시키는 역할을 한다.

EJB는 역할과 형태에 따라 엔터티 빈(Entity Bean)과 세션 빈(Session Bean)으로 나눌 수 있다.

엔터티 빈은 일관적인 데이터(Persistent Data)를 표현한다. 대부분의 경우에 서 엔터티 빈의 필드는 관계형 데이터베이스의 필드와 매핑(mapping)되며 어 플리케이션의 처리 결과로 인한 필드 생성이 발생하기도 한다. 엔터티 빈은 형태에 따라 BMP(Bean-Managed Persistence)와 CMP (Container-Managed Persistence)로 나눠진다. BMP는 데이터 유지 기능을

개발자가 직접 EJB 내부에 구현해야 하는 형식이며 CMP는 데이터 유지 기 능을 컨테이너(Container)가 대신 해 주는 형태이다. CMP의 경우는 데이터 유지에 관련된 기능을 컨테이너가 해 주기 때문에 개발자는 비즈니스 로직만 구현하면 되는 편리한 점을 가지고 있다.

세션 빈은 특정 클라이언트의 요청시 생성되며 클라이언트에 의해 소멸하는 특징을 갖는다. 엔터티 빈이 데이터 저장 공간상의 데이터를 대표하는 개념인 데 반해 세션 빈은 데이터를 저장 하거나 로드하지 않으며 단순한 클라이언트 의 확장이라는 개념이다.

(2) Servlet

Servlet은 Java를 이용해 동적인 웹 컨텐츠를 작성하기 위해 개발된 서버측 언어(Server-Side Language)이다. Servlet은 Servlet Container를 통해 작 동되며 웹 클라이언트의 요청을 Servlet Container가 받아서 Servlet을 가동 시키는 형태로 동작된다.

<그림 2-10> Servlet 작동 경로

Servlet은 다음과 같은 절차로 수행 된다.

① 클라이언트 브라우저는 서버에게 서비스 요청을 보낸다.

② 서버는 Servlet에게 클라이언트로부터 전달된 서비스 수행 요청에 대한 정 보를 전달한다.

③ Servlet은 전달된 수행 요청 내용에 따라 동적으로 응답 내용을 작성하여 서버에게 전달하게 되는데, 이 때 필요에 따라 데이터베이스와 액세스가 이루어지기도 한다.

④ 서버는 Servlet이 처리한 메시지를 클라이언트에게 전송한다.

Servlet은 기능적으로 CGI(Common Gateway Interface) 스크립트와 비슷 한 구조를 가지지만 CGI 스크립트와 다른 점은 첫째, Java 기반이기 때문에

Java의 가장 큰 특징인 플랫폼 독립적이라는 특징이다. Servlet은 웹 서버 컨

<그림 2-11> Servlet Programming

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class CMemberTest extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=EUC_KR");

PrintWriter out = response.getWriter();

out.println("<HTML><HEAD><TITLE>세션 테스트</TITLE></HEAD></HTML>");

out.println("<BODY>");

(3)JSP(Java Server Page)

JSP는 마크업(HTML 또는 XML)같은 웹 문서를 동적으로 생성할 수 있는 쉽 고 강력한 방법을 제공한다. Java 2 Enterprise Edition(J2EE) API의 한 부 분으로서, JSP 기술은 웹 기반의 어플리케이션을 빨리 개발할 수 있게 해주 며, 특정 웹 서버나 플랫폼에 독립적인 서비스를 제공한다.

JSP 기술을 사용하는 웹 개발자는 기존에 사용하던 동적 웹 페이지 개발 툴 이나 인터페이스를 그대로 사용할 수 있다. 또한 어플리케이션 로직(비즈니스 로직)은 서버 상의 자원( JavaBeans 컴포넌트 또는 EJB 컴포넌트 등 )으로 제공하고, 웹 문서에서는 JSP 태그를 사용하여 해당 어플리케이션 컴포넌트 를 접근할 수 있다. 이렇게 웹 페이지 설계와 어플리케이션 로직을 분리함으 로써 재사용 가능한 컴포넌트 기반의 설계를 할 수 있으며, JSP 기술은 그것 을 기존의 웹 어플리케이션 개발방식에 비해 훨씬 쉽고 빠르게 개발할 수 있 는 환경을 제공한다.

JSP 명세서는 Sun Microsystems이 주도하는 Web산업 전반의 주도적인 제 품이 될 것이다. Sun은 모든 웹서버와 어플리케이션 서버가 JSP 인터페이스 를 지원하게 하는 목표를 가지고, JSP 명세서를 개발자들이 무료로 사용할 수 있게 했다. 보다 많은 산업계의 벤더들이 JSP 기술을 자신들의 제품에서 지원 함으로서, 웹을 도입하는 조직들은 개발 툴과 플랫폼 선정에서 자유롭고, 웹 기반의 사용자 인터페이스 설계 시 산업표준(HTML, XML)을 사용할 수 있 다.

<그림 2-12> JSP Life cycle

JSP 페이지는 Java 기술의 "Write Once, Run Anywhere" 특징을 갖으며, JSP 기술은 Java 2 Platform, Enterprise Edition 기술들의 웹 확장성을 지 원하는 핵심 기술이다.

JSP의 작동 순서는 클라이언트에서 요청하는 웹 리소스를 서버에서 파싱 - 컴파일 과정을 통해 서블릿 형태의 클래스로 변환한 후 클라이언트 측에 보내 게 된다.

JSP 사용시의 장점은 첫째, 웹 페이지 생성이 간단하다는 점이다.

HTML관련 태그와 Java 언어로 작성한 스크립렛(Scriptlet)은 웹 페이지의 컨 텐츠 생성 로직을 인캡슐레이션(Encapsulation) 했다. 표준 HTML 또는 XML 태그 포맷과 설계를 처리한다. 웹 페이지 디자인을 데이터를 생성하는 어플리 케이션 로직과 분리시켜, JSP는 기업들이 어플리케이션 기능들을 Java 컴포 넌트들로 잘 나누고, JSP 명세에서 지원하는 태그를 통해 재사용 하거나 공유 하기 쉽다.

둘째, 재사용 가능한 S/W 컴포넌트와 Tag 라이브러리 지원이다.

JSP는 JavaBeans 컴포넌트, EJB 컴포넌트, Tag 라이브러리 등 재사용 가능 한 S/W컴포넌트를 사용할 수 있어서 개발시간을 단축시킬 수 있고 잘 설계된 컴포넌트들을 웹 어플리케이션 개발에 활용할 수 있다.

<그림 2-13> JSP With JavaBeans

셋째, 멀티 티어(Multi-tier) 기업형 어플리케이션 아키텍처를 지원한다.

JSP 기술은 Java 2 Platform Enterprise Edition(J2EE)의 웹 관련 핵심 컴포

넌트 기술로서 엔터프라이즈 컴퓨팅 환경의 자바 기술을 웹으로 확장한다.

JSP 기술을 사용하여, 웹 사이트를 개발하는 조직들은 현재의 자바 플랫폼 전 문 기술들은 레벨화 하고, 엔터프라이즈 어플리케이션들을 고도로 확장하여 웹으로 서비스 할 수 있다.

넷째, 플랫폼과 서버에 독립적이다.

JSP 명세는 산업계의 다양한 요구를 흡수하고, 다양한 웹서버와 어플리케이션 서버를 지원한다. Sun Microsystems은 JSP 명세서의 개방성과 이식성의 지 원 의지를 보이고 있다.

제 3 장 웹 기반 컨텐츠 관리 시스템 설계 및 구현

제 1 절 설계의 기본 방향

본 연구는 웹 컨텐츠의 효과적인 관리를 위한 웹 기반의 컨텐츠 관리 시스템 을 구현하는데 있어 다음과 같은 요소를 고려한다.

첫째, JSP 및 Servlet 기술로 제작하여 어떠한 플랫폼에서도 작동 가능하도 록 개발한다.

둘째, JDBC 표준을 지원하는 데이터베이스 및 ODBC 데이터베이스에서도 연동이 가능하도록 표준을 준수한다.

셋째, 시스템 대상 기업인 중소기업 및 일반 제조기업의 웹 사이트의 개발 및 관리에 있어 포함되는 컨텐츠를 손쉽게 생성 및 관리할 수 있는 기능을 구 현 한다.

관련 문서