우리 회사는 상당히 큰 SOA 이니셔티브를 시작하고 있습니다. 우리는 많은 일을 올바르게하고 있습니다. 의사 소통이 좋습니다. 적절한 도구 비용; 우리는 전환에 도움이되는 좋은 전문 지식을 갖추 었습니다.
우리는 그룹으로 따라갈 수있는 표준을 개발하려고 노력하고 있으며 제안 된 표준 중 하나가 나를 귀찮게합니다.
모든 오퍼레이션이 요청 오브젝트를 가져 와서 응답 오브젝트를 리턴하는 패턴을 표준화했습니다.
나는 이것이 많은 사람들에게 표준적인 접근 방법이라는 것을 알고 있지만 왜 귀찮게해야하는지 묻고있다 . (나는 지혜를 얻지 못해서 이유가 필요하다).
내가 제공 할 대부분의 서비스는 간단한 조직 메타 데이터 검색입니다. 예를 들어 특정 사용자에 대한 보안 정책을 찾으십시오. 여기에는 사용자 아이디가 필요합니다. 표준은이 요청을 객체로 포장하고 반환 된 정책을 응답 객체로 포장해야한다고 알려줍니다.
계약에서 생성 된 WSDL을 살펴보면 불안이 증폭됩니다. WCF는 요청 및 응답 메시지를 자동으로 생성하고 요청 / 응답 개체까지 래핑합니다.
복잡한 요청을하는 경우 복잡한 입력 개체가 필요하다는 것을 완전히 이해합니다. 서비스가 관여하지 않더라도 그렇게 할 것입니다.
내 질문은 다음과 같은 경우 요청과 응답을 자동으로 래핑 해야하는 이유입니다.
- 단순한 서비스를 덜 표현 적으로 만듭니다
- 어쨌든 복잡한 서비스를 위해 그것을 할 것입니다
- WCF는 어쨌든 요청 / 응답 메시지를 작성합니다.
이 접근 방식에 찬성하여 다음과 같은 주장을 발견했습니다.
선택적 매개 변수를 요청 오브젝트에 삽입 할 수 있도록하여 버전 관리를 지원합니다.
그 당시에는 꽤 많은 COM을 만들었으며 버전 관리를위한 거의 반 패턴이라고 생각합니다. 어떤 경우에는 도움이 될 것이라고 생각하지만 도움이되는 곳에서는 이미 매개 변수 객체가 있다고 생각합니다.
일반적인 데이터와 동작을 기본 클래스로 분리 할 수 있습니다.
이것은 나에게 약간의 무게를 가지고 있습니다.
사람들을 RPC 스타일의 행동에서 멀어지게하고 메시징 행동으로
Microsoft 사이트에서이 내용을 읽고 전문가로부터 들었으나 여전히 그것이 무엇을 의미하는지, 왜 가치가 있는지는 확실하지 않습니다. 자연스럽게 보이는 인터페이스는 사람들이 원격 서비스를 호출한다는 것을 잊는 경향이 있습니까?
아마도 300 가지 방법의 시그니처를 리팩토링하는 것을보고 있으므로 이것은 사소한 고통입니다. 나는 구현의 일관성에 대한 열렬한 팬이므로 고통을 기꺼이 감수하고 그것이 결국 가치가 있다는 것을 아는 데 도움이 될 것입니다.