모든 것이 버스를 통과합니까?


2

우리는 조직에 서비스 버스로 BizTalk를 도입했으며 새로운 웹 GUI를 수많은 기존 백엔드 시스템에 연결합니다. 우리는 기존 시스템을 서비스 (WCF)로 포장하여 BUS에 연결했습니다.

기존 시스템 GUI를 새 웹 GUI로 대체 (기존 기능을 복제 함)하지만 BUS를 통해 모든 기존 서비스/API를 노출해야하는지, 직접 연결할지 또는 궁금한 점이 있는지 궁금합니다. 다르게 작성하고 버스를 통해 노출하십시오. 예를 들어 고객 관리 시스템에 api, Search, Add, Retrieve, Update, Set Billing Details 등 5 개의 기존 서비스가 있다고 가정 해 보겠습니다.

이러한 각 서비스를 BUS를 통해 노출하는 것이 의미가 있습니까 (지연 시간이 추가된다는 주장이 있음)? 또는 BUS가 검색, 추가, 검색 & 업데이트와 같이 거친 서비스만을 노출해야합니까? GUI가 세분화 된 서비스에 직접 연결해야합니까?

저는 이상적인 SOA/ESB에서 업데이트 및 결제 세부 정보를 하나의 거친 서비스로 작성한다는 인상하에 있습니다. 맞습니까?

저는 SOA/ESB 패러다임에 충실하고 싶습니다. 누군가 제게 밝혀 줄 수 있었습니까?

4

ESB는 "복합"응용 프로그램을 구축하는 데 가장 적합합니다.

먼저 많은 개별 응용 프로그램에서 많은 세분화 된 서비스를 노출해야합니다.

이것은 복합 응용 프로그램을 빌드하기위한 단계를 설정합니다.

요점은 단일 응용 프로그램에 존재하지 않는 복합 서비스를 만드는 것입니다. 이러한 서비스는 ESB에만 존재합니다. 이들은 세분화 된 서비스로 구축됩니다.

복합체는 모두 세분화 된 서비스에 의존하며 둘 다 ESB에 살기 때문에 세분화 된 서비스 찾기 및 실행과 관련된 오버 헤드가 줄어 듭니다. 그러나 실제 작업은 외부 응용 프로그램에 의해 수행되기 때문에 약간의 오버 헤드가 발생합니다.

성능이 뛰어난 ESB 기반 응용 프로그램은 다른 대기열 방식과 완전히 상충되므로 "대기 시간"이상으로 손을 뻗어두면 즉각적인 직접 통합을 통해 큰 승리를 얻지 못할 수 있습니다.


0

종종 이것을 볼 수있는 여러 가지 방법이 있습니다. 단순히 버스의 관점에서 볼 때 (완전히 좋아하지는 않습니다) - 비 집계/합성을 위해 BizTalk 사용 서비스는 매우 작은 가치를 지니고 있습니다. (언급 한 바와 같이) 대기 시간 등을 추가 할 수 있습니다. 물론이 경우에도 BizTalk가 모니터링, 관리, 확장 성 등의 모든 서비스를 제공 할 수 있지만, 전체 시나리오를 모른 채 이들이 얼마나 적절한 지 판단하기는 어렵습니다.

그러나 BizTalk는 또한 통합 엔진을 주로 사용하며 (주로 일부는 통합 엔진을 주장 할 것임) 서비스 구현에서 소비자를 숨기기 위해 자주 사용됩니다.

SOA를 가능하게하는 서비스를 래핑하는 기존 앱이 있습니다. 다시 한 번, 귀하의 사례에 해당되는지, 어느 정도까지 알지 못합니다. 18 개월 후 대체 서비스 구현이 끝났지 만 다른 인터페이스를 사용합니다 (더 많은 기능을 포함하고 있습니다) - 중간에 BizTalk가 있으면 호출자가 제공 한 이전 형식을 의도적으로 매핑 할 수있는 계층이 있습니다. 서비스가 요구하는 새로운 형식과 그 반대로 응답합니다. 이것은 모든 클라이언트 응용 프로그램을 변경할 필요가 없음을 의미합니다 (어쨌든).

그래서 대답은 추측됩니다.