시소당
Daniel L. Fox (Builder.com) |
데이터 유형이 정의되고 나면 데이터 처리 및 저장 기술에 대해 알아볼 차례다. 크게 XML, 객체, 그리고 SQL의 3가지 주요 요소로 나누어 알아볼 수 있다.
메시지 데이터 메시지 데이터는 오픈 스키마와 이종성(heterogeneity)을 요구하는 데이터므로 SOAP를 이용한 모델에 가장 최적화될 수 있다. 따라서 해당 스키마는 WSDL을 이용해 퍼블리싱 할 수 있다.
메시지 데이터의 일부 기능은 WS-*와 같은 SOAP 사양을 통해 제공되며, MS의 WSE 2.0과 같은 툴킷을 이용해 적용할 수 있다.
서
비스 내부에서 메시지 데이터는 동격 관계(idempotence)를 실행하기 위해 관계형 데이터베이스 내부에서 XML과 같은
속성을 통해 저장된다. 이는 속성에 대한 쿼리 측면에서 권장할만하며 불변성으로 인해 메시지 내용을 빈번하게 읽거나 파싱할 일은
많지 않다.
메시지를 저장하게 되면 감사 및 향후 있을 수 있는 분석 작업 등에 활용할 수 있다. 메시지 데이터는 정의상 수명이 가장 짧은 편이다.
서비스간 메시지가 송신될 때 어떤 일이 발생하는가도 메시지 데이터에 관해 고려해야 할 점이다.
독립적으로 진행되는 다수의 서비스가 메시지 구조를 사용하는 환경에서는, 서비스가 메시지를 사용하기 전에 메시지를 전환할 수 있는 표준 스키마를 만들어 두는 것이 좋다.
이런 작업을 통해 각 서비스가 동일한 탐색·비즈니스 데이터를 제각기 표시하는 문제를 방지할 수 있으며, 변형(transformation)할 일도 크게 줄일 수 있다.
탐색 데이터 탐색 데이터는 퍼블릭 속성을 갖고 오픈 스키마를 요구하기 때문에 XML처럼 모델링 돼야 한다. 여기서 선택할 수 있는 좋은 방법은 WSDL을 활용해 탐색 데이터의 스키마를 퍼블리싱 하는 것이다.
데이터베이스 측면에서 성능을 높이기 위해 탐색 데이터는 관계형 테이블에 XML로 저장될 수 있는데, 이는 검색 데이터가 단지 한 번 쓰여진 다음에는 XML로 직접 재생되기 때문이다.
덧붙여 관계형 테이블에 탐색 데이터를 저장하면 버전 작업을 쉽게 처리할 수 있다.
내부적으로 각 서비스는 현재의 탐색 데이터를 캐시에 저장, 사용자가 탐색 데이터를 요청할 때 응답시간을 단축시킬 수 있다.
프로세스 데이터 프로세스 데이터는 각 서비스에 고유한(privete) 것이므로, XSD 퍼블리싱이나 XML로 표시될 필요는 없다.
즉
프로세스 데이터는 정규화된(normalized) 관계형 데이터베이스에 저장되며, 비주얼스튜디오닷넷 ‘위드비(Whidbey)'에서
제공하는 ‘ObjectSpaces’ 프레임워크와 같은 객체 지속(object-persistence) 레이어를 통해 캡슐화된다.
이러한 접근법을 이용하면 각 서비스는 프로세스 데이터를 메모리 내에서 완전한 충실도(fidelity)를 지닌 객체로 처리할 수 있게 되며, ASP.NET 캐싱 엔진과 같은 캐시 기술의 장점을 활용할 수도 있다.
각 프로세스가 완료 또는 대기 상태에 있을 때 객체-지속 레이어를 통해 데이터베이스에 연속해 객체를 나열할 수 있다.
프로세스 데이터는 한 번의 대화동안 연속해서 업데이트되므로, 낙관적 동시성(optimistic concurrency)을 통해 액세스할 수 있다.
비즈니스 데이터 프
로세스 데이터와 마찬가지로 비즈니스 데이터는 서비스에 고유한 것이며, 따라서 그 중 일부분이 응답 메시지로 되돌려지는 경우
외에는 XML로 표현되지 않는다(이런 경우엔 각 서비스에 종속된 데이터를 다른 서비스들이 해석할 수 있도록 표준 XSD를 만들어
퍼블리싱 하면 된다).
따라서 비즈니스 데이터는 정규화된 관계형 테이블에 저장되며, 트랜잭션 과정에서 비관적
동시성(pessimistic concurrency)을 확보하기 위해 트랜잭션 매니저가 관리하는 컴포넌트를 통해 캡슐화된다.
트랜잭션 매니저에는 컴포넌트 서비스(COM+) 등이 있다.
각 컴포넌트는 높은 변동성(volatility)과 동시성을 지니고 있기 때문에 데이터에 대해 경계없는 접속을 제공한다.
비즈니스 데이터는 프로세스 데이터와 짝을 이룬 분석에서 활용되기도 한다.
 |
<그림 1> |
<그림 1>을 보면 지금까지 논의된 4가지 데이터 유형이 표현돼 있다.
이 그림을 각 기업에서 SOA 실행에 관한 고민을 시작할 때 조직의 데이터를 포개어 생각할 수 있는 '지도'로 활용할 수 있을 것이다.
그림을 살펴보면 SOA에서 활용되는 4가지 데이터 유형과, 이것들이 어떻게 표현되고 처리되는 지에 대한 해답을 얻을 수 있으리라 생각한다. @