 |
|
난이도 : 초급 Peter Y. Xu, Consulting I/T Specialist, IBM
2006 년 9 월 18 일 2006 년 10 월 23 일 수정 IBM WebSphere 플랫폼을 Eclipse 리치 클라이언트는 매력적인 결합입니다. 리치 클라이언트 기술과 WebSphere 플랫폼에 대한 기본적인 이해가 필요합니다.
IBM WebSphere Developer Technical Journal 발췌.
머리말
Eclipse와 WebSphere에 대해서는 잘 알고 있을 것이다. Eclipse는 툴이자 클라이언트 플랫폼 기술이고, WebSphere는 서버 측 미들웨어 플랫폼에 가깝다. 이 두 기술을 사용하여 엔드투엔드 솔루션을 개발하면 놀라운 일을 경험할 수 있을 것이다.
리치 클라이언트를 사용하는 이유?
리치 클라이언트 애플리케이션(Rich-client application)은 데스크탑 기반 애플리케이션을 의미하고, 씬 클라이언트 애플리케이션(thin-client application)은 웹 기반 애플리케이션을 지칭한다. 리치 클라이언트는 전개와 관리가 어렵다. 한편, 씬 클라이언트는 리치 클라이언트만큼 UI가 많거나 반응적이지 않다.
기술이 진화하면서 새로운 세대의 플랫폼과 프레임웍이 생겨났다. Asynchronous JavaScript and XML (AJAX), Rich Internet Application (RIA), Rich Client Platform (RCP), Flash 기술로 훨씬 더 풍부한 사용자 인터페이스와 놀라운 반응성을 갖춘 엔드 유저 애플리케이션을 개발할 수 있다. 이는 주로 클라이언트 측 프로세싱을 사용하여 이루어진다. 동시에, RCP 기술은 개발과 관리를 훨씬 더 많이 지원한다.
따라서 두 개의 기술이 같은 개발자들에게 VIE 하게 되었다. 웹 애플리케이션은 여전히 큰 장점을 갖추고 있고 AJAX와 Web 2.0 같은 기술과 함께 향상되었다. 동시에 리치 클라이언트 프론트엔드는 일부 애플리케이션에 더 잘 맞다. 그 예로, Bank Teller 애플리케이션이나 Call Center 애플리케이션이 있다. 이와 같은 경우, 애플리케이션은 일반적으로 다음과 같은 특징이 있다:
- 대부분 수 백, 수 천명의 사용자들을 타겟으로 한 내부 인트라넷 애플리케이션이다.
- 폰트, 칼러, 위젯 등 UI에 대한 엄격한 룩앤필 요구사항이 있다.
- 파워유저가 사용하는 것이기 때문에 단축기를 사용한 빠른 반응을 필요로 한다.
- 이러한 애플리케이션들은 매우 큰 데이터 세트를 갖고 있고 스크린에 많은 정보를 디스플레이 한다. 클라이언트 측에 큰 세션 데이터를 관리하여 퍼포먼스를 높인다.
- 데스크탑과 다른 데스크탑 애플리케이션과 통합한다.
- 일반적으로 워크플로우 유형 또는 협업 유형의 애플리케이션이고 오프라인에서 작업할 수 있는 기능과 태스크 변환 기능이 매우 중요하다.
이와 같은 경우에, 리치 웹 프론트-엔드를 구현하는 것이 해답은 아니다. 리치 및 씩(thick) 클라이언트가 있기는 하지만, 한 연구 결과에 따르면 데스크탑 클라이언트의 채택률이 증가하고 있다고 한다. Giga 그룹 리포트에 따르면 "Return of the Rich Clients" (참고자료)는 향후 3년 안에 브라우저-리치 클라이언트가 350%, 독립 클라이언트가 250% 성장하고, HTML은 50% 감소할 것이라고 예견했다.
Eclipse 리치 클라이언트 플랫폼
일단 여러분이 RIA 열망에서 벗어나서 실질적인 씩 클라이언트 솔루션을 선택한다면, 이제 어떻게 할 것인가? 작업을 핸들 할 RCP를 선택한다. 특히, RCP 개념은 웹 프레임웍이 J2EE/Java EE에 그랬던 것처럼 프레임웍을 자바 데스크탑 애플리케이션에 가져왔다. 자바에 익숙하다면 Eclipse의 명성에 대해 알고 있을 것이고 Eclipse Rich Client Platform (RCP)가 자바 데스크탑 클라이언트를 위한 프레임웍이 되고 있다는 것도 알 것이다.
Eclipse RCP?
Eclipse 플랫폼은 오픈 툴 플랫폼으로서 설계된 반면 아키텍처에서는 컴포넌트와 함께 클라이언트 애플리케이션을 구현할 수 있다. 리치 클라이언트 애플리케이션 구현에 필요했던 최소한의 플러그인 세트를 Rich Client Platform이라고 한다. 그림 1의 Eclipse 리치 클라이언트 플랫폼은 다음과 같이 구성된다. Eclipse Runtime과 OSGi (Open Services Gateway Initiative), SWT (Standard Widget Toolkit), JFace, workbench UI.
그림 1. Eclipse Rich Client Platform
Eclipse RCP는 작은 풋프린트 런타임을 사용한다. 최신 Eclipse 3.2 RCP 런타임은 9MB이다.
작지만 차세대 데스크탑 애플리케이션을 구현할 수 있는 좋은 기능들이 많이 있다.
Eclipse RCP를 사용하는 이유
Eclipse RCP을 사용하면 많은 이점들이 있다:
자연스러운 룩앤필:
SWT 기술 덕택에 자연스러운 룩앤필을 가진 애플리케이션을 빠르게 구현할 수 있다.
일반적인 애플리케이션 서비스:
Eclipse RCP 개발자들은 RCP 형식이 고급이고, 적극적으로 관리되며, 오픈 소스라는 것을 알고 있다. 많은 Eclipse 컴포넌트들(Help UI, Update Manager, Cheat Sheets, Intro 등)을 재사용 할 수 있다는 사실도 RCP를 채택한 후에 알게 된다.
확장성:
Eclipse는 상용 제품뿐만 아니라 오픈 플랫폼에서도 구현이 가능하다.
통합 포인트로서 Eclipse RCP
Eclipse에서 완전히 독립적인 컴포넌트들을 통합하기는 쉽다. 독립 컴포넌트들의 뷰들은 워크스페이스를 쉽게 공유할 수 있다. 그렇기 때문에 Eclipse를 사용하는 것이다.
Eclipse RCP는 클라이언트 측 애플리케이션 통합 플랫폼을 갖고 있다. 여기에서 SWT, WEB, Swing, Visual Basic, ActiveX, 애플리케이션들이 모두 공존할 수 있다.
Eclipse RCP의 애드-온 프레임웍
Eclipse RCP는 리치 클라이언트 애플리케이션을 구현할 수 있는 견고한 토대를 제공한다. 하지만 고급 데스크탑 애플리케이션에 필요한 중요한 기능은 다루지 않는다. 예를 들어, 보안(인증과 권한 포함), 오프라인 기능, 전개 등이 있다. 따라서 IBM이 관리하는 클라이언트 미들웨어 기술이 필요하다.
IBM 클라이언트 기술 스택
그림 2: 클라이언트 컨테이너
그림 2를 보면, 관리 클라이언트 서비스는 OSGi와 서비스 관리 프레임웍(SMF)에 기반하여 JVM 내의 서비스와 애플리케이션을 관리하고 있다. 플랫폼 관리가 그 위에 구현되고 SyncML 프로토콜을 사용하여 수동적 배포부터 지능적이고 능동적인 관리까지 온 디맨드 애플리케이션 관리가 수행된다.
액세스 서비스 레이어는 백엔드 프로그래밍 모델과 API를 클라이언트로 확장한다. 따라서 웹 애플리케이션, 데이터베이스 애플리케이션, 웹 서비스, 클라이언트 컨테이너를 호스팅 할 수 있다. e-비즈니스 애플리케이션, 서비스, 데이터로 액세스가 가능하다. 연결/비연결 작동을 지원한다.
인터랙션 서비스는 다양한 유형의 클라이언트를 지원한다: 브라우저 기반의 HTML, WML, JSPs/Servlets/Portlet, SWT 또는 Swing 같은 GUI 클라이언트.
협업 서비스는 고급 실시간 협업 애플리케이션을 구현하는 프레임웍이다.
제품 지원
제품 관점에서 보면, Windows와 리눅스용 WebSphere Everyplace Deployment(이후, WebSphere Everyplace Deployment)는 솔루션 애플리케이션을 개발할 때 필요한 모든 것을 제공하고, 모든 인터랙션 서비스, 액세스 서비스, 코어 클라이언트 서비스, 플랫폼 관리 등이 포함되어 있다. IBM Workplace Managed Client (Workplace Managed Client) 는 WebSphere Everyplace Deployment에 구현되고 협업 기능을 추가했다.
따라서, Eclipse RCP 애플리케이션을 개발한다면 세 가지 스택(기본 Eclipse RCP, IBM WebSphere Everyplace Deployment, IBM Workplace Managed Client) 중에서 선택할 수 있다.
IBM RCP 스택에 구현된 리치 클라이언트 애플리케이션
Eclipse RCP, WebSphere Everyplace Deployment, Workplace Managed Client는 IBM의 데스크탑 애플리케이션 전략이다. 이것은 차세대 클라이언트 소프트웨어의 토대가 된다. 몇몇 IBM 소프트웨어 제품들은 이미 클라이언트 미들웨어 스택을 사용하고 있다.
Lotus Sametime Connect 7.5: Instant Messaging (그림 3)
그림 3. Lotus Sametime Connect
Hannover: 차기 IBM Lotus Notes 릴리스 (그림 4)
그림 4. Notes 차기 릴리스
WebSphere 플랫폼 개요
WebSphere 플랫폼에 새로운 애플리케이션을 개발할 때 사용할 수 있는 클라이언트 측 프레임웍에 대해 이야기 했다. WebSphere 플랫폼이 정확히 무엇인가?
미들웨어 플랫폼:
WebSphere는 IBM의 통합 소프트웨어 플랫폼이다. 전체 미들웨어 인프라가 포함되어 있다.
일반적으로 WebSphere에 대해 이야기할 때 WebSphere Application Server를 의미하는데, 이는 Java EE 표준 API와 스팩에 기반한 자바 애플리케이션 서버 플랫폼이다. 하지만 WebSphere는 웹 서비스, BPEL, SCA, SDO 같은 오픈 표준에 기반한 통합 플랫폼이 되고 있다. WebSphere Application Server와 WebSphere Enterprise Service Bus에 기반한 WebSphere Process Server는 서비스 지향의 모듈식 애플리케이션을 제공하고 비즈니스 규칙 애플리케이션을 지원하여 비즈니스 프로세스를 지원하는 애플리케이션을 구동한다.
소비형 서비스와 리소스
WebSphere Application Server는 모든 오픈 표준 프로그래밍 인터페이스를 지원한다. J2EE 관점에서 볼 때, WebSphere Application Server는 J2EE 1.4 API를 전적으로 지원한다:
- JDK 1.4, EJB 2.1, Servlet 2.4, JSP 2.0, JMS 1.1, JDBC 3.0
- JAX-RPC, SAAJ, Web Services for J2EE, JAXR
- Java Authorization Contract for Containers
- J2EE Management (JMX) 1.0, J2EE Deployment 1.1
- J2EE Connectors 1.5
오픈 표준 지원에 더하여 WebSphere Application Server와 WebSphere Process Server는 고급 애플리케이션에 대한 API 확장이 있고 SOA용 오픈 표준도 갖추었다:
- 비동기식 빈, 작업 영역, 동적 캐시, ObjectGrid를 포함한 프로그래밍 모델 확장
- WebSphere 플랫폼 메시징: WebSphere Application Server는 JMS 프로바이더와 관련 메시징 시스템을 사용하여 비동기식 메시징을 지원한다. IBM WebSphere Application Server의 서비스 통합 기술은 디폴트 메시징을 통해 액세스 된 서비스 통합 버스를 설정할 때 메시징 시스템으로서 작동할 수 있다.
- Service Component Architecture (SCA): SCA는 비즈니스 기능의 관점에서 정의된 IT 서비스를 구현할 때 개방된, 기술 중립적인 모델을 제공하고 애플리케이션 개발자들이 보다 접근하기 쉬운 미들웨어 기능을 만든다. SCA는 액세스 메소드와 보안 같은 솔루션 제어를 사용하여 개별 서비스들의 컬렉션에서 비즈니스 솔루션의 어셈블리를 위한 모델을 제공한다.
- Service Data Object (SDO): SDO는 다양한 종류의 데이터에 액세스 할 수 있는 공통 방식을 제공하여 SCA를 보완한다.
클라이언트 애플리케이션 관점에서, WebSphere Application Server와 WebSphere Process Server는 다양한 컴포넌트와 리소스를 호스팅 한다:
- Web Services
- Servlet/JavaServer™ Pages (JSP™)
- Portlets
- Enterprise JavaBeans™ (EJB)
- SCA Components
- Service Integration Bus Messaging Resource
- Messaging Resources
- Data Access Resources
- BPEL Processes
위 서비스들은 다양한 프로토콜과 전송을 통해 액세스 할 수 있다. 우리는 다음과 같은 전송 프로토콜에 초점을 맞추겠다. 위 서비스들은 다양한 프로토콜과 전송을 통해 액세스 할 수 있다. 우리는 다음과 같은 전송 프로토콜에 초점을 맞추겠다:
- HTTP,
- SOAP/HTTP, SOAP/JMS
- RMI, RMI-IIOP
- TCP
Eclipse 리치 클라이언트와 WebSphere를 함께 사용하기
전통적으로, WebSphere 플랫폼 클라이언트 애플리케이션은 WebSphere나 다른 애플리케이션 서버 내부에서 실행되는 웹 기반 애플리케이션이었다. 이들은 주로 서블릿, JSP, 또는 포틀릿 기반이다. 여러 사용자 시나리오와 요구 사항에 알맞다. 하지만 이전 섹션에서 언급했듯이, 몇 가지 유형의 애플리케이션들은 웹 애플리케이션만큼 잘 작동하지 않는다. 어떤 종류의 웹 기술이 사용되더라도 말이다. 따라서 WebSphere 플랫폼 서비스는 독립 애플리케이션에 맞게 커스터마이징 되어야 한다.
더욱이 잘 구축된 서버 플랫폼을 보고 있다면 대부분이 IBM Domino, Window Server 또는 SAP 플랫폼이든, 리치 데스크탑 클라이언트 플랫폼과 긴밀하게 통합되어 있다.
Eclipse RCP의 출현으로 인해 RCP 프론트-엔드와 J2EE 미들웨어 백엔드를 갖춘 엔터프라이즈 애플리케이션들은 보다 매력적인 결합처럼 보인다. 실제로 이러한 아키텍처에 기반하여 몇 가지 상용 제품들을 보기 시작했다. 한 가지 예가 IBM Sales Center for WebSphere Commerce(이후 Sales Center)이다.
IBM Sales Center for WebSphere Commerce:
그림 5에서 보듯, Sales Center는 백엔드 WebSphere Commerce Server와 통신하는 클라이언트 애플리케이션으로서 작동한다. 이는 WebSphere Application Server에 구현된다. 통신 프로토콜은 SOAP/HTTP이다.
그림 5. Sales Center Client/Server Architecture
Eclipse 리치 클라이언트 인터페이스를 사용할 때의 이점
Sales Center는 카탈로그, 주문 관리, 프로모션, 상품화 계획 등을 활용하여 고객 서비스에 필요한 기능들을 갖춘 연락 센터를 제공한다. 생산성과 멀티 태스킹을 위해 설계된 커스터마이징 가능한 고성능 사용자 인터페이스를 통해 많은 연락 센터에 필요한 속도와 생산성을 실현한다.
그림 6. WebSphere Commerce용 IBM Sales Center
핵심 기능:
- 리치 클라이언트, 고성능 사용자 인터페이스.
- Eclipse-기반 솔루션을 통한 쉬운 커스터마이징.
- WebSphere Everyplace Deployment for Windows and Linux 활용.
- 클라이언트 머신에 전체 애플리케이션 설치
- 중앙화 된 클라이언트 관리, 전개, 업데이트
RCP JNDI 애플리케이션 샘플
전에 WebSphere Application Server로 작업했다면 애플리케이션 서버에 JNDI 네이밍 리파지토리가 얼마나 중요한 지도 알 것이다. 많은 경우, 애플리케이션을 파악하거나 애플리케이션 문제를 해결하기 위해 JNDI 이름 트리를 검색해야 한다. WebSphere Application Server에는 명령행 네임스페이스 덤프 유틸리티가 있지만 나는 보다 그래픽 요소가 강하고 사용자 친화적인 인터페이스가 필요했다. 바로 이것 때문에 RCP 애플리케이션을 작성하여 JNDI 트리를 검색하기로 한 이유이다. 이것은 Eclipse RCP 프레임웍만 사용한다. JNDIExplorer라는 한 가지 뷰만 갖고 있다. (그림 7). 하지만 이 프레임웍에서는 많은 룩앤필 커스터마이징이 가능하다. Eclipse 플러그인 아키텍처 덕택이다. 내부적으로, 이것은 JNDI API를 사용하여 WebSphere Application Server 네이밍 서비스와 통신하여 정보를 검색한다.
많은 상황에서 사용할 수 있는 작은 유틸리티이다. 웹 서버 없이도, 웹 서버에 설치하지 않고도 독립적으로 실행할 수 있다. 많은 엔드 유저에 전개할 필요도 없다. 따라서 이는 데스크탑-클라이언트 애플리케이션에 좋은 유스 케이스라 할 수 있다.
그림 7. RCP 애플리케이션 샘플
맺음말
WebSphere 플랫폼 클라이언트 애플리케이션을 개발할 때 Eclipse RCP가 매력적인 옵션인지를 설명했다. WebSphere 플랫폼은 입증된 서버 측 기술인 반면, Eclipse RCP는 대중적인 클라이언트 측 프레임웍이다. WebSphere 서버에 호스팅 된 엔터프라이즈 서비스들을 Eclipse RCP 클라이언트에 맞게 바꾸면 퍼포먼스, 인터랙션 등의 효과를 볼 수 있다.
기사의 원문보기
참고자료
필자소개  | |  | Peter Xu는 IBM Software Service for WebSphere의 IT 컨설팅 전문가이다. |
기사에 대한 평가
|