2007. 1. 3. 11:10

하이브리드 타입.. H-Tier

새로운 개념?

우연찮게 아이디어를 착안한 것인데..

N-Tier와 2-Tier를 조화롭게 혼용할 수 있는 구조가 생각났습니다.
콜롬부스의 달갈이랄까..

클라이언트에 데이터베이스 관련 SQL문장들.. DML과 관련된 영역들을 모두 암호화해서..
보관하게 하고..
이 부분들을 통해서 서버와 송수신하면서 문장들의 수행을 서버의 리소스를 사용하여 동작하다가
긴급상황이 발생하거나..
필수불가결하게 사용이 필요할때에..

2-Tier와 N-Tier를 혼용하여 동작하게 하는 구조입니다.

내부적으로 서버 컴포넌트와 클라이언트 컴포넌트를 복합적으로 사용하는 것입니다.

물론..
시스템의 분석, 설계 과정에서..
이러한 것들이 내포되어야 겠죠.

다양한 기법들을 활용하여 사용할 수 있겠더군요.

특히..
Was서버의 용량부분이라던지..
데이터베이스의 적극적인 활용등을 혼용하여 사용하는 구조입니다.

내부적으로 해당 아키텍쳐에 대한 그림들을 적당하게 그려볼 생각입니다.

이름을 하이브리드?

H-Tier라고 하면 어떨까요? ㅎㅎ~~

필요시에 적절한 리소스를 사용하니까요.

가장 핵심은.. 데이터처리에 대한 처리방안에 대한 구조가 그 핵심이 될듯~

기본적으로..

델파이의 TClientDataSet을 개량해서 웹서비스 호출이 가능한 구조로 재설계하고.. 구현하고..
서버는 WebLogic상에서.. MOM방식으로 DML을 처리하는 서버모듈을 만들고..
기본적으로는.. 3 Tier구조를 취하는 방식으로 개발하였습니다.

그리고..

델파이의 소스에 DML영역을 별도로 구분하여 SQL문장을 사용하여 2 Tier스타일로 구사합니다.
필요한 SP는 적정 수준에서 Dbms에 구사하구요.

외부 시스템과의 연계는 WebService를 사용하는 Weblogic의 인스탄스를 별도로 하고..
각각의 업무 성격에 맞도록..
구분하여 구사합니다.

일반 개발자들은..

2Tier와 유사한 구조로 구현하지만..
내부적으로는 3 Tier형식의 설계방식으로 구현되어 있으므로..

실제 구현은 3 Tier방식으로 동작합니다.

WAS에 문제가 발생하거나 요동치는 상황이 발생하면..
DBMS에 직접 연결하는 구조로도 동작을 하고..
특정 DBMS의 단독 기능이 필수적으로 필요할 ??에는..
나름대로 DBMS에 직접 연결되어 동작합니다.

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문장을 사용하여 업무를 구현하는 방법

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