로직 집중화 패턴

Logic centralization pattern

논리 중앙화는 애플리케이션 설계 패러다임이며, 애플리케이션 설계 패러다임(1]에 적용할 수 있는 설계 패러다임(1]에 적용되는 설계 패턴이다.- 아니, 엑스테네요. -네.콘텍스트를 [3][4]참조해 주세요.

근거

점점 더 많은 서비스가 개발됨에 따라 중복 기능을 가진 서비스가 생성될 위험이 항상 있습니다.서비스 정규화 설계 패턴의 적용은 이러한 용장성을 배제하는 데 도움이 되지만, 정규화된 서비스 세트를 자체 보유하는 것만으로 서비스가 당초 예상대로 재사용된다는 보장은 없습니다.독립형 [5]서비스의 경우, 프로젝트 팀(팀 A)이 복잡한 스키마에 대응하는 데이터를 필요로 하는 기존 서비스를 재사용하지 않기로 결정하고 대신 작업을 수행하는 경량 서비스를 개발할 수 있기 때문에 이러한 서비스의 실제 재사용이 크게 제한될 수 있습니다.그 결과 동일한 재사용 가능한 로직이 2개의 다른 서비스에 존재하게 되었습니다.기존 서비스는 가장 적합한 기능을 포함하지 않더라도 진화해야 합니다.이 효과는 기존 서비스 내에서 기능을 찾고자 하는 다른 팀(팀 B)이 서비스의 경계에 필요한 기능이 포함되어 있기 때문에 해당 기능을 찾지 못하고 팀 A가 새로 작성한 서비스를 사용하기 시작할 때 배가됩니다.따라서 원래 독립형 서비스의 실제 재사용 가능성은 저하되고 동시에 기존 서비스와 새로운 서비스의 유지보수에 관한 한 거버넌스 문제가 발생합니다.이는 재사용 가능한 논리가 분산형 방식으로 존재하기 때문입니다.

특정 유형의 재사용 가능한 솔루션 로직이 특정 독립형 서비스에 의해서만 폐쇄되도록 하기 위해 논리 집중화 설계 패턴은 독립형 서비스를 적절히 사용하도록 강제하는 설계 표준을 확립해야 한다고 규정하고 있습니다.이를 통해 서비스 소비자는 올바른 서비스를 [6]통해 기능에 액세스하고 있다는 확신을 얻을 수 있습니다.

사용.

Diagram A
그림 A
프로젝트 팀 1은 기존의 빨간색 서비스를 사용하는 대신 새로운 용장 빨간색 서비스를 만드는 데 주력했습니다.이는 단기적인 요건에 따라 보다 간소화된 새로운 서비스를 쉽게 개발할 수 있었기 때문입니다.
Diagram A
그림 A
서비스 소비자는 전사적인 설계 표준이 존재하는 경우 프로젝트 팀 2에 의해 작성된 다중 빨간색 서비스에 접근할 수 없으며, 대신 프로젝트 팀 1에 의해 작성된 기존 빨간색 서비스를 사용해야 합니다.마찬가지로, 프로젝트 팀 3은 기능이 기존 레드 서비스에 속하는 새로운 서비스를 생성할 수 없습니다.그 결과 프로젝트 팀 3은 프로젝트 팀 1이 작성한 기존 레드 서비스를 이용/진화하고 있습니다.

이 설계 패턴의 적용에는 특정 유형의 기능성, 즉 특정 유형의 기능 영역에 속하는 기능성을 나타내는 '공식 엔드포인트'(서비스)를 설정해야 한다.동일한 기능을 제공할 수 있는 다른 서비스에 대한 액세스는 금지되며 특정 유형의 [7]기능에 대해 하나의 서비스만 액세스할 수 있습니다.다른 서비스에 대한 접근을 제한함으로써 현재 로직이 단일 서비스 내에서 제한되기 때문에 거버넌스 부담이 줄어듭니다.기존 서비스에서는 제공되지 않는 새로운 기능이 필요할 때마다 먼저 기존 서비스의 기능 컨텍스트를 체크하고 새로운 기능이 기존 서비스의 경계에 속할 경우 해당 서비스에 추가해야 합니다.이를 위해서는 로직의 중앙집중화를 강제하는 전사적 표준이 필요합니다.서비스 개발자가 서비스 경계를 확실히 인식하도록 하기 위해 메타데이터 중앙[8] 집중화 설계 패턴을 적용할 수 있습니다.이를 통해 기능 컨텍스트 및 서비스에서 제공하는 기능에 대한 정보의 중앙 집중식 저장소를 만들 수 있습니다.Logic Centralization 설계 패턴은 Contract[9] Centralization 설계 패턴과 함께 적용되면 Official[10] Endpoint 설계 패턴을 구성합니다.Logic Centralization 설계 패턴의 적용은 각 서비스가 반복적으로 구성될 있도록 올바른 유형의 재사용 가능한 기능을 포함하도록 함으로써 서비스 재사용 가능성 및 서비스 컴포지터빌리티 설계 원칙의 적용에 더욱 도움이 됩니다.

고려 사항.

이 설계 패턴을 적용하기 위해서는 전사적인 모든 프로젝트 팀이 불가지론적인 서비스의 적절한 사용을 이해하고 이에 동의하며 프로젝트의 단기적인 요건만을 충족시키는 새로운 서비스를 작성하지 않도록 해야 합니다.또, 기존의 독립형 서비스(및 이 패턴의 가이드 라인에 따라서 서비스를 진화시키기 위해서)를 사용하는 경우, 시간과 노력이 필요하게 되기 때문에, 프로젝트의 제공 시간에 영향을 줄 수도 있습니다.이는 현재 프로젝트의 서비스가 자체 설계를 변경할 때까지 독립형 서비스를 사용할 수 없기 때문입니다.

레퍼런스

  1. ^ 특정 비즈니스 프로세스에 속하지 않으므로 여러 비즈니스 프로세스를 자동화하는 데 재사용할 수 있는 논리
  2. ^ "Services". Archived from the original on 2012-05-01. Retrieved 2010-03-09.
  3. ^ 서비스에서 제공하는 기능의 유형입니다.
  4. ^ 카누 트리파티WS-AtomicTransaction을 사용하지 않는 서비스 트랜잭션 처리[온라인]접속일 : 2010년 4월 25일
  5. ^ 독립 논리를 포함하는 서비스
  6. ^ 데니스 위스노스키.미국 국방부의 원칙과 패턴 2010-09-20 Wayback Machine에 보관됨[온라인]접속일 : 2010년 4월 25일
  7. ^ 매튜 데일리.소프트웨어 아키텍처 설계 서비스 지향 아키텍처(Part II) 2011-07-24 Wayback Machine에서 아카이브됨[온라인]접속일 : 2010년 4월 25일
  8. ^ 메타데이터 집중화 패턴
  9. ^ 계약 일원화 패턴
  10. ^ 공식 엔드포인트 패턴

외부 링크