2013-04-29 3 views
0

SOA 기반의 프로젝트에서 WCF를 사용하도록 요청 받았습니다. WCF (작성 및 사용)로 손을 뻗었으나 결코 SOA를 사용하지 않았습니다. 하나의 서비스가 일반적인 서비스 레이어, 비즈니스 레이어 및 데이터 액세스 레이어 (필요한 경우)를 갖출 것이라고 말하면서 옳은가요? 서비스 계층은 메소드를 공개합니다.SOA 아키텍처 이해

Can 서비스 A 참조 서비스 B 및 서비스 B 참조 서비스 A?

그런 다음 UI가 참조를 통해 이러한 서비스에 액세스 할 수 있습니다. 이것이 본질적으로 SOA입니까? 나는 최신의 최신 튜토리얼 (Youtube)과 온라인으로 볼 수있는 '가이드'를 찾기 위해 싸우고있다.

+0

WCF는 SOA와 다양한 WS- * 사양을 구현했습니다. 이 서비스는 비즈니스 로직을 캡슐화하므로 비즈니스 계층과 선택적으로 DAL을 갖습니다. 이 서비스는 UI 또는 다른 서비스에 의해 소비 될 수 있습니다. – aquaraga

+0

예, 서비스 A는 서비스 B를 사용할 수 있으며 반대의 경우도 가능합니다. 디자인은 매우 의심 스럽지만. – aquaraga

+0

Wikipedia 항목은 꽤 분명하다고 생각합니까? http://en.wikipedia.org/wiki/Service-oriented_architecture – Belogix

답변

2

Wikipedia entry은 꽤 분명하다고 생각합니까?

간단한 예를 들어 보겠습니다. 책을 체크 인 및 체크 아웃 할 수있는 도서관 응용 프로그램이 있다고 가정 해보십시오.

"전통적인"비 SOA 방식으로 n 계층 시스템에 접근하는 경우 MyService이라는 서비스가 있는데 여기에는 CheckOutBook과 같은 메서드가 있습니다. 이것은 사라지고 내부적으로 서적 클래스와 사람 클래스를 가지며 수행 할 코드는 Book.IsAvailable = FalsePerson.NumberOfBooks입니다.

괜찮 았지만 이제는 People과 함께 작업하려는 다른 응용 프로그램이 있다고 가정 해보십시오. 논리가 사용자가 수행하는 작업, 즉 라이브러리 트랜잭션과 밀접하게 결합되어 있기 때문에 위의 서비스를 사용할 수 없습니다. 대신 코드를 새로운 서비스 "BookShop"에 복사/붙여 넣기해야합니다.

SOA의 경우 서적 서비스 및 사람 서비스가 있습니다. Person 서비스는 최소한과 같이 최소한을하기에 충분히 간단하기 때문에 Library와 BookShop 모두 변경할 필요없이 사용할 수 있습니다. 그런 다음 필요한 서비스를 호출하여 필요한 업무를 수행합니다. 이는 다양한 서비스를 수정할 필요없이 재사용 할 수 있음을 의미합니다.

이것은 매우 단순하지만 잘하면 건축상의 차이점을 보여주고 갈 수 있습니까?

1

저는 SOA에 관한 질문을 건너 뛰었습니다. 각 질문은 SOA (Service Oriented Architecture)가 무엇이든간에 SOA를 호출 할 수 있기 때문입니다. 내 말은, 서비스를 사용하여 SOA를 호출 할 수 있습니다 각 아키텍처 ... 기술적 인 측면에서

, 나는 다음의 방법으로 그것을 만들 것입니다 : IMO

을 스스로 서비스는 가능한 한 적은 논리로해야한다 (외관 패턴과 같은) 모든 로직은 비즈니스 로직으로 이동해야합니다.

서비스 A는 ServiceA.BusinessLogic을 사용하여 서비스 B를 호출합니다 (서비스 B의 프록시는 ServiceA.BL에 사용할 수 있음). 이 양면의 문제없이, 당신에게 양방향 통신을 줄 것이다 서비스 A.

를 호출 서비스 B에 대한 동일

(깨진 콜백을, ...).

UI도 UI.BusinessLogic을 사용하여 서비스에 액세스해야합니다 (나는 보통 통신 데이터 액세스 레이어의 일종으로 서비스 통신에 대해 생각합니다).