2006. 10. 30. 13:08

J2EE는 서비스 지향개발이 힘들다?

http://kin.naver.com/db/detail.php?d1id=1&dir_id=10201&eid=eC7+qVgiqawA4qhg1UXjXdzikKVINNkq&qb=wKW8rbrxvbogtNzAzyBXU0RM

네이버 지식인에서 보니.. MS의 Indigo에 해당 하는 내용중에..
다음과 같은 내용의 글이 있네요. ( 번역본이기는 하지만. )

--------------------------------------------------------------------------------------

J2EE는 EJB를 기반으로 하는 일반적인 분산 개체 아키텍처 방식을 바탕으로 하고 있습니다. 이 아키텍처는 인터넷 및 엔터프라이즈 규모의 비즈니스 통합 시나리오에 사용하기에는 복잡하고 불안정한 것으로 밝혀졌습니다. 서비스 지향 개발은 기본적으로 연결된 시스템을 구축하기 위한 뛰어난 방법입니다. 그러나 J2EE와 분산 개체 아키텍처는 서비스 지향 개발을 위한 것이 아닙니다. Indigo는 웹 서비스에 대한 .NET의 최신 지원을 기반으로 만들어지며 연결된 시스템의 구축 및 운영을 위한 완벽한 서비스 지향 프로그래밍 모델 및 통합된 통신 인프라를 생산적이며 신뢰할 수 있는 방식으로 제공합니다.

--------------------------------------------------------------------------------------

이런 내용이 있군요.

J2EE의 EJB기반은 서비스 지향 개발이 아니다? 흠~~~~
독특한 시야를 가지고 있군요.

ㅡㅡ;

이 이야기를 들으면... SOA에 맞는 플랫폼이나 형태는.. 마이크로소프트사의 제품밖에 없네요.
쩝~~~~

설마 이 이야기를 다 믿지는 않겠죠?
2006. 10. 30. 13:07

서버를 JAVA로 개발하고 Delphi로 클라이언트로 구축한 경험담..


서버OS : AIX
DB : Oracle
서버 프레임웍 : Spring ( or EJB ), iBatis

구체적인 목표를 달성하기 위해서는 서버사이드의 비즈니스 오브젝트를 자바로 구축하고
해당 자바객체는 Axis를 활용하여 WebService화 시킵니다.
이 부분은 서버영역에서 다양하게 개발되어 질 수 있으므로..
그렇게 중요하지는 않습니다.

다만.. SOAP Server형식으로 개발된다는 점만 주목하면 됩니다.

여기서...
전체적인 개발속도 향상을 위하여 SOAP Server로 구축되어질
서버의 Front 영역에 MOM으로 JMS와 유사한 서비스를 구축하여
Event Call방식으로 서버의 비즈니스 오브젝트를 구축하도록
하는 프레임웍들을 보통 사용합니다.

이 부분은 꼬옥 Rich Client를 사용하는 방식이 아니라고 하더라도
흔히들 사용하는 방식입니다.

이 방식을 사용하면..
서버의 영역은 필요한 프레임웍을 생성한 다음 해당 업무의 오브젝트들을
정해진 규칙에 따라 작업하고, 필요한 인터페이스 부분만 결정하면
서버의 개발에는 커다란 영향을 주는 부분이 존재하지 않게 됩니다.

클라이언트를 델파이로 선택하는 경우에는..
델파이의 UI의 기능을 적극적으로 활용하는 방법이 필요한데.

두가지의 가정을 두어야 합니다.

하나는 클라이언트에서 필요한 SQL문장이 존재하면서 서버사이드의 데이터 추출
을 통하여 처리하는 단순 구조를 처리하는 구조

둘, 클라이언트는 정말 단순한 프리젠테이션 역활을 하면서 데이터 조작에는
최소한 참여하는것.

가장 중요한 포인트는 클라이언트에서 서버로 접속하는 방식입니다.
간단하게 처리하는 방법은 SOAP Interface를 사용하는 방식입니다.
자바로 SOAP Server를 구성하고 WSDL을 클라이언트 측에 전달하여
연계하는 방식이죠.

생각보다 쉽고 간단합니다.

비즈니스 전반적으로 사용하는 방식으로도 괜찮습니다.

그러면, 보통 델파이를 사용하는 클라이언트에서는 데이터 처리를 어떻게 하는
것이 좋을까요?
가장 간단한 방식은 클라이언트에서는 SQL문장을 사용하여 DB에 접속하는 방식으로
비동기식으로 DB에 연결되었다라고 생각하고 프로그램을 구성하면 무방합니다.

보통 업무용 프로그램의 경우에는 데이터를 입/출력하는 경우가 대다수이니.
이 부분을 처리하는 방식이 가장 간단하죠.

델파이 내의 MIDAS나 SOAP, Snap등의 다양한 방법도 있고.

사용솔루션으로는
RamObjects, ASTA, kbmMW라는 제품군들로 다양하게 존재합니다.
다만, 서버의 OS가 Windows와 linux에 국한되어 있기 때문에.
국내의 비즈니스 환경이나 공공환경과 어울리지 않는다는 점이죠.

국내의 비즈니스 환경에서는 현재 서버 Side는 모두 자바로 구축되어 지고 있기때문에.
이 자바와 연계하는 방법에만 주목하면 됩니다.

개발하여보았던 방식은 두가지입니다.

1. EJB Component를 개발하고 WebService로 전환하여 WSDL을 통하여
델파이 Rich Client를 구축하여 프로그램을 구동하는 방법

2. Spring JAVA Component를 Axis기반하에 개발하고 Business Object를 컴포넌트하고
유스케이스와 이벤트 ID로 구분시킨후 단일 WSDL을 사용하여
Front를 통일 시킨 델파이 Rich Client를 구축하는 방법

3. 델파이의 TDataSet구조를 확장하여 서버사이드에 Spring기반의 프레임웍위에서
SQL과 SP를 직접 제어할 수 있는 비동기식 데이터 컨트롤 셋을 구현하여
델파이 Rich Client에서 손쉽게 SQL문장을 사용하여 업무를 구현하는 방법

이 방법들은 차근 차근 풀어보겠습니다.