서비스 정규화 패턴

Service normalization pattern

서비스 정규화는 서비스 지향 설계 패러다임 내에서 적용되는 설계 패턴으로, 동일한 서비스[2] 인벤토리의 일부인 서비스에 중복 [3]기능이 포함되지 않도록 하는 애플리케이션입니다[1].이러한 디자인 패턴은 정규화된 서비스를 만드는 것에 중점을 두고 있습니다.테이블의 모든 속성이 테이블에 의해 설명된 엔터티에만 관련되고 엔터티와 직접 관련되지 않은 모든 속성이 새 테이블이나 해당 속성의 컨텍스트에 더 잘 맞는 기존 테이블에 배치되는 데이터베이스에서 정규화된 테이블을 만드는 것과 비슷합니다.

이론적 근거

서로 다른 팀이 다양한 비즈니스 프로세스 자동화의 일환으로 여러 서비스를 제공하는 경우 이러한 서비스 중 일부가 중복되는 기능을 가질 수 있습니다.예를 들어, 동일한 레거시 시스템과 메시지를 교환해야 하는 두 개의 서로 다른 비즈니스 프로세스가 두 개의 서로 다른 버전의 래퍼 서비스로 자동화되어 서비스와 메시지를 교환할 수 있습니다.이러한 기능의 중복으로 인해 특정 기능의 제공 및 중복 서비스의 유지보수를 위해 어떤 서비스를 공식적인 서비스로 홍보할지와 같은 다른 문제가 발생할 수 있습니다.

중복 기능이 없는 동일한 서비스 인벤토리의 일부로 서비스를 제공하려면 각 서비스의 기능 경계를 신중하게 설정하여 다른 서비스와 충돌하지 않도록 해야 합니다.서비스 표준화[4] 설계 패턴은 기능 [5]중복 없이 간소화된 서비스를 포함하는 서비스 인벤토리를 생성하기 위한 지침을 제공합니다.정규화된 서비스를 생성함으로써 잠재적인 [6]소비자에게도 서비스의 목적이 명확해집니다.

사용.

Diagram A
다이어그램 A
서비스 인벤토리 Blueprint가 없는 상황에서 비즈니스 프로세스 2의 자동화로 인해 비즈니스 프로세스 1을 자동화하면서 이전에 생성된 빨간색 서비스와 대부분의 기능을 공유하는 빨간색 서비스가 생성되었습니다.
Diagram B
도표 B
서비스 인벤토리 Blueprint가 생성되면 두 빨간색 서비스가 하나의 빨간색 서비스로 병합되고 빨간색 서비스의 컨텍스트에 속하지 않는 모든 기능이 새 주황색 서비스에 추가됩니다.

이 설계 패턴을 적용하려면 모든 서비스의 기능 컨텍스트에 대한 지식이 필요합니다. 그래야 서비스에 중복되는 기능이 포함되지 않는다는 것을 보장할 수 있기 때문입니다.이는 서비스 모델, 즉 실제 서비스 계약 없이 서비스가 제공할 기능에 대한 높은 수준의 세부 정보를 제공함으로써 달성됩니다.서비스 모델을 만들려면 다음 작업을 수행해야 합니다.

  1. 비즈니스 프로세스를 특정 서비스 인벤토리의 범위 내에 있는 개별 단계로 분해합니다.
  2. 각 단계를 서비스의 개별 기능에 할당
  3. 위의 기능이 다른 서비스에 의해 제공되지 않았는지 확인합니다.
  4. 서비스가 새로운 필수 기능의 일부를 제공하더라도, 새로운 서비스를 완전히 새로 만드는 대신, 추가되는 기능의 기능 컨텍스트가 기존 서비스의 기능 컨텍스트와 일치하는 한 새로운 기능을 기존 서비스에 추가해야 합니다.

서비스 인벤토리의 범위 내에 있는 각 비즈니스 프로세스에 동일한 프로세스를 적용해야 합니다.

서비스 표준화 설계 패턴의 지침을 따르면 서비스 인벤토리 내의 총 서비스 수도 감소합니다.중복 서비스의 개발을 방지하여 서비스 인벤토리의 거버넌스 오버헤드를 줄이는 데 더욱 도움이 되기 때문입니다.이 설계 패턴의 적용은 로직 중앙 집중화 및 서비스 리팩터링 설계 패턴의 적용을 추가로 지원합니다.이는 서비스에 중복 기능이 포함되어 있지 않기 때문에 단일 서비스에서 특정 비즈니스 프로세스와 관련되지 않은 논리를 유지하고 종속성을 유지하지 않고 서비스를 발전시킬 수 있기 때문입니다.

고려 사항.

이러한 설계 패턴을 적용하려면 하향식 서비스[7] 제공 프로세스를 따라야 하며, 실제 서비스가 제공되기 전에 상당한 사전 분석이 필요합니다.이를 위해서는 인력과 시간 측면에서 추가적인 리소스가 필요합니다.이 문제는 전체 서비스[9] 인벤토리 Blueprint를 생성할 때까지 기다리지 않고 충분한 서비스를 모델링한 후 서비스 제공 프로세스를 시작할 수 있는 중간[8] 규모의 서비스 제공 프로세스를 채택함으로써 해결될 수 있습니다.

점점 더 많은 비즈니스 프로세스가 자동화됨에 따라 기존의 정규화된 서비스에 대한 지속적인 거버넌스가 필요합니다.이는 새로운 비즈니스 프로세스의 자동화로 인해 기존의 정규화된 서비스에 기능이 추가될 수 있으며 이러한 서비스가 계속 정규화되도록 하려면 나머지 서비스를 분석해야 하기 때문입니다.

레퍼런스

  1. ^ 서비스
  2. ^ 서비스 재고
  3. ^ 카누 트리파티.WS-Atomic Transaction을 사용하지 않는 서비스 트랜잭션 처리 [온라인]액세스 날짜: 2010년 4월 25일.
  4. ^ 토마스 에를, 헤르비외른 빌헬름센.서비스 표준화 설계 패턴 [온라인].액세스 날짜: 2010년 4월 6일.
  5. ^ 토마스 얼.SOA 설계 패턴[온라인] 소개.액세스 날짜: 2010년 4월 6일.
  6. ^ 예핌 V.나티스, 마시모 페지니일반적인 SOA 실수 12가지와 이를 피하는 방법 [온라인].액세스 날짜: 2010년 4월 25일.
  7. ^ 하향식 서비스 제공 프로세스 2010년 5월 9일 Wayback Machine에서 보관
  8. ^ 중간 서비스 제공
  9. ^ 서비스 인벤토리

진일보한 내용

  • Erlet et al., (2009).SOA 설계 패턴.프렌티스 홀. ISBN0-13-613516-1
  • 마우로 등.서비스 지향 장치 통합 – SOA 설계 패턴 분석.[Online], pp. 1–10, 2010 제43회 하와이 국제 시스템 과학 컨퍼런스, 2010.액세스 날짜: 2010년 4월 4일.
  • 매튜 데일리.소프트웨어 아키텍처 설계 서비스 지향 아키텍처(Part II)[온라인]액세스 날짜: 2010년 4월 22일.

외부 링크