2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

6가지 도메인 모델과 단계적 발전 모델을 통한 SOA의 개발방법

본문스크랩 6가지 도메인 모델과 단계적 발전 모델을 통한 SOA의 .. J2EE개발 - 2008/06/04 08:50


 은채,은민아빠...할 수있는 작은엔진 3.0 | 은채아빠
 http://blog.naver.com/zooty74/10016728855
6가지 도메인 모델과 단계적 발전 모델을 통한 SOA의 개발 방법

BEA시스템즈코리아 김영주 차장 
SOA는 비즈니스 전략의 IT 구현체

SOA는 아키텍처일 뿐만 아니라 포괄적인 IT 전략이기 때문에 비용과 조직, 전략적 측면에서도 고려돼야 할 사안들이 있다. BEA시스템즈에서는 SOA를 실현함에 있어서 이런 사항을 반영해 중요한 6가지 분야를 나누고 그 구체적인 실행 방법을 정의한 6가지 도메인 모델을 갖고 있다. 6가지 도메인 모델에 따라 각 분야별로 SOA 추진 방법론을 알아보자. 
SOA는 단일 비즈니스 요구 사항에 대해서 하나의 시스템을 개발하고 끝나는 것이 아니라 비즈니스의 요구 사항을 신속하게 적용하기 위해서 어떻게 기존 시스템을 변화시키고 신규 시스템을 개발할 것이며 운영할 것인가에 대한 포괄적이고 장기적인 IT 전략이다.
비즈니스 요구를 적용하기 위해서는 단기와 장기 계획을 균형 있게 나눠서 실행하는 것이 중요하며 이를 위해 SOA의 개발은 초기부터 재정, 운영, 설계, 구축의 방식을 체계적으로 만들어감으로써 실현할 수 있다. 이번 글에서는 SOA의 성공적인 개발을 위한 단계적인 SOA 프로젝트 개발 방법과 6가지 관점에서 SOA 개발 방법에 대해서 설명하기로 한다.
SOA의 단계적 발전 모델
SOA를 기술적인 면에서 살펴보면 SOA는 각각의 로직을 업무 컴포넌트화해 업무 컴포넌트간의 흐름 연결을 통해 하나의 업무 프로세스를 구축한다는 개념이다.
즉, 각각의 업무들을 레고 블록처럼 만들고, 업무 프로세스에 따라 이 블록을 조립해서 사용하고, 업무 프로세스가 바뀌었을 경우에는 블록을 재조립해 비즈니스 요구 사항에 대한 빠른 대응을 목표로 가지고 있다.
이런 궁극적인 개념의 SOA 아키텍처를 구축하기 위해서는 먼저 각 기업 시스템들을 통합된 레고 블록으로 만들어야 하고(블록화), 블록 간의 연결 모양을 통합, 서로 어떤 블록 간에도 쉽게 연결될 수 있도록 해야 하며(유연성 추가), 마지막으로 이 블록들을 연결해 원하는 업무를 구축해야 한다(민첩성 추가).
1) 기본적인 SOA (서비스화)
SOA로 개발하기 위해서는 먼저 기존의 IT 시스템들을 서비화해야 한다. 서비스화란, 기존 업무를 비즈니스 업무 단위로 묶은 후에 통합된 인터페이스로 패키징을 하는 것을 의미한다.
기존 CBD와 같은 설계 방법론에서는 TCP 소켓 클래스(Socket Class)와 같이 기술적인 면을 구현한 컴포넌트들도 있었지만 SOA에서의 각 서비스(컴포넌트)들은 ‘타행이체’, ‘직원정보조회’와 같이 비즈니스 의미를 지닌 단위로 묶는 서비스로 재구성돼야 한다.
그리고 각 서비스들의 호출은 시스템이나 플랫폼 또는 개발 환경에 독립적인 인터페이스로 표준화돼야 한다. 이렇게 서비스화된 IT 시스템들은 표준화된 인터페이스를 통해 상호 호출이 가능해진다.
2) 네트워크 SOA (유연성)
▶ 복잡성의 문제
기본적인 SOA로 구축된 시스템은 시스템간의 통합이 가능해지지만, 기업의 부서 내 통합이나 몇몇 시스템 간의 통합에만 국한된다. 만약 시스템의 통합 범위가 넓어질 경우 각 서비스간의 연결은 거미줄처럼 복잡해질 것이며, 각 서비스 간의 종속성에 의해 하나의 서비스 내용이 바뀌면 종속된 모든 서비스를 재구축해야 하는 불편함이 발생한다.
이러한 복잡성과 종속성을 제거하기 위해 유연성(Flexibility)에 추가한다. 거미줄처럼 복잡해진 시스템을 중심에 하나의 버스(Bus)를 두고 버스를 통해 서비스 간의 연동을 통제한다. 또한 각 서비스의 기능이나 위치가 변경되더라도 버스에서 데이터 변환이나 서비스 간의 라우팅을 통한 손쉬운 해소로 SOA 시스템에 유연성을 부여할 수 있다. 이 SOA 버스가 바로 ESB(Enterprise Service Bus)다.
▶ 통제의 필요성
또한 서비스의 수가 증가함에 따라 서비스 개발 내용에 대한 통제 (기능 관리, 버전, 인터페이스 정의, 변경 관리)가 필요해지는데, 이 단계에서는 중앙에 SOA를 통제할 수 있는 조직(SOA Board)을 구축해야 한다.
3) 프로세스 지향의 SOA (민첩성)
▶ 민첩성 추가
네트워크 SOA로 구축됐다고 해도 각각의 서비스 컴포넌트를 연결해 비즈니스 프로세스를 구현하는 것은 결국 구체적인 구현(코딩)을 통해서 이뤄진다. 그렇기 때문에 비즈니스 환경이 변화했을 때 서비스 컴포넌트 재배치는 코딩을 통해 반영돼 결과적으로 비즈니스 변화에 민첩하게 대응하기가 어렵다.
그래서 BPM을 SOA에 추가할 경우 기존의 서비스 컴포넌트들을 BPM을 기반으로 코딩 없이 상호 연결만으로 업무 프로세스를 민첩하게 구현할 수 있으며, BPA(Business Process Analaysis)를 통해 비즈니스 프로세스를 구현하기 전에 업무에 대한 효율적인 분석과 시뮬레이션이 가능하다. 구현후 운영에도 BAM (Business Activity Monitoring)을 통해 BPM의 문제점을 발견, 개선하면서 비즈니스 프로세스를 최적화 할 수 있다.
6가지 도메인 모델
앞서 단계적인 SOA 도입 방법을 아키텍처 구조에 따라 살펴봤다. 초반에도 지적했듯 SOA는 아키텍처뿐만 아니라 포괄적인 IT 전략이기 때문에 비용과 조직, 전략적 측면에서도 고려돼야 할 사안들이 있다.
BEA에서는 이런 사항을 SOA를 실현함에 있어서 중요한 6가지 분야를 나누고 그 구체적인 실행 방법을 정의한 6가지 도메인 모델을 소개했다. 6가지 도메인 모델에 따라 각 분야별로 SOA 추진 방법론을 살펴보면 다음과 같다.
1) 비즈니스 전략과 프로세스
SOA를 수행할 때 가장 먼저 해야 할 일은 “무엇을 어디까지 SOA화 할까”를 결정하는 것이다. SOA는 비즈니스 전략의 IT 구현체로 생각하면 된다.
즉, SOA는 각각의 독립된 시스템이 아닌 거대화된 하나의 SOA 플랫폼 위에서 각각의 비즈니스 업무가 프로세스로 구현된 형태가 된다. 즉 비즈니스 전략을 기간별로 단계적으로 나눠서 SOA화 하는 범위와 우선순위를 지정해야 하며 때로는 SOA화하는 범위에 맞춰서 비즈니스 전략을 수립해야 한다.
이렇게 하여 성숙된 SOA 시스템은 독립된 신규 시스템으로 개발되는 것이 아니라 프로세스를 추가하는 것만으로 구축이 되고 각 프로세스는 피드백을 통해 최적화 된다. SOA를 수행하기 위해서는 SOA를 고려한 기업의 비즈니스 전략에 대한 정의가 선행돼야 한다.
2) 비용과 이익
SOA화를 통해 기업의 IT 전략을 수립할 때 비용과 ROI에 대한 계획을 함께 수립해야 하는데, SOA는 기존 IT 시스템과 다른 비용과 이익 시스템을 갖는다.
기존의 IT 시스템은 초기 구축 비용이 SOA보다 낮지만 시스템이 노후되고 업무가 확장하면서 유지보수 비용이 증가한다. 그러나 SOA의 경우 초기에 SOA에 필요한 인프라 구축과 서비스화에 소요되는 비용, 그리고 SOA에 필요한 기술 습득 비용만이 필요하다.
따라서 초기 비용이 기존 IT 시스템보다 다소 많이 소요되지만 업무의 확장에 따라 신규 업무는 기존 SOA시스템에 프로세스 형태로 추가되고 중앙 통제적인 관리 구조에 따라 유지보수 비용과 개발 비용이 낮아진다.
3) 레퍼런스 아키텍처
레퍼런스 아키텍처에서는 기업의 SOA 시스템에 대한 전체적인 아키텍처를 정의한다. 서비스의 종류와, 각 서비스를 지원하는 인프라(로깅, 보안, 디렉토리 서비스 등)를 정의하고 이에 알맞은 제품군을 정의해 SOA 시스템의 인프라를 구성한다.
4) 프로젝트와 애플리케이션
SOA 전략, 비용 계획, SOA 아키텍처가 정의된 후에는 기업에 필요한 기능과 ROI를 제공하기 위해 어떤 업무의 서비스화가 필요한지, 언제 필요한지, 그리고 배포 계획은 어떤 순서로 실행할지 등을 고려해야 한다. 이를 서비스 로드맵이라고 하는데 이 로드맵은 기존 시스템을 서비스화할 방향을 설정하고 어떤 서비스를 새롭게 개발할 것인가를 결정한다.
서비스화의 전략은 기본적으로 두 가지 모델에 의해서 수행한다. ‘위협이 적은 모델’과 ‘반복 개발 모델’을 수행된 위협이 적은 모델이란 서비스화를 수평적인 모델에서 하는 것이 아니라 수직적인 모델에서 수행한다.
즉 전체 데이터 레이어를 구축하고 컨트롤 레이어, 프레젠테이션 레이어를 각각 순차적으로 구축하는 것이 아니라, 서비스화할 업무를 정하고 해당 서비스 안에 필요한 프리젠테이션, 컨트롤, 데이터 레이어를 각각 구축하는 형식으로 업무를 하나씩 서비스화 해나가는 것을 위협이 적은 모델이라고 한다.
이렇게 하나의 업무가 서비스화됐으면 다음 서비스를 이 서비스화의 경험을 바탕으로 수행해나가고 정제화 과정을 반복하면서 업무를 점차적으로 서비스화해 나간다. 이런 반복적이고 점차적인 개발 방법을 반복 개발 모델이라고 한다.
5) 빌딩 블록
SOA 빌딩 블록은 SOA 시스템에서 재사용 가능한 소프트웨어 컴포넌트와 이를 배포 관리 하기 위한 표준, 모범사례, 관리 도구들이 포함된다.
각 소프트웨어 컴포넌트간의 개발 우선순위를 정해야 한다. 이 우선 순위를 지정하는 데 있어서는 공통적으로 사용될 수 있는 컴포넌트를 추출하여 이를 개발 순위에 반영해야 한다.
우선순위를 지정함에 있어서 각 서비스 컴포넌트를 수평적으로 분할할 수 있는데, 공유 서비스, 데이터 서비스, 비즈니스 서비스, 조합 서비스, 프리젠테이션 서비스와 같이 기능과 재사용성의 공통성으로 이를 분류할 수 있다.
또한 분류된 서비스는 업무 특성에 필요한 메시지 교환 및 호출 방식을 정의하고 추상화 레벨에 대한 정책을 정의하고 관리돼야 한다.
6) 거버넌스
SOA 프로젝트는 전체 IT 시스템을 SOA화 하기 때문에 개발 및 운영 단계에서 되는 SOA 시스템에 대한 중앙 통제 그룹과 통제 정책이 필요하다.
통제 정책을 간략하게 정리하면 다음과 같다.
· 표준 준수 : SOA 시스템 개발과 운영에 있어서 표준을 수립하고 이를 시스템에 반영
· 서비스 로드맵 계획 : 로드맵 수립 및 단계적 수행
· 시스템의 변경 관리와 계획 : 전체적인 SOA 시스템에 대한 변경 관리 및 계획
· 재사용 시행 : 기존 빌딩 블록에 대한 재사용 추진
· 조직 구조 : SOA 전략에 맞는 IT 팀 구축
· 문화 변화 : IT부서와 비즈니스 부서간의 정보 교환 및 협업 문화 개발
· 역량 개발 및 모범 사례 수집 반영 : SOA에 필요한 기술 전파
·자금 조달 모델과 책임 : SOA화에 따른 비용과 이익에 대한 검증 방식 확립을 통해 기업의 투자 결정에 도움을 줌
이런 정책을 수행하기 위해서 각각의 실행 그룹이 필요한데, 필요한 실행 그룹과 각각의 역할은 왼쪽 그림과 같다. 이런 실행 그룹을 조율하고 중앙에서 통제하는 SOA 조직을 ‘SOA 아키텍처 그룹’이라고 하며, 이 그룹은 기업의 SOA 구조에 따라서 중앙 통제형, 연합형, 계층형과 부분 연합형으로 나눌 수 있다.
  
[출처] [본문스크랩] 6가지 도메인 모델과 단계적 발전 모델을 통한 SOA의 ..|작성자 아기공룡

댓글

이 블로그의 인기 게시물

성공적인 소셜커머스를 위한 10단계 전략

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우