2014-07-21 2 views
0

SOAP 및 XML로 구현 된 ZF2 및 SOA를 사용하여 PHP 웹 기반 응용 프로그램을 작성합니다. 따라서 개발자는 SOAP에서 모든 단일 기능을 구현하고 외부 시스템에서이 API/웹 서비스를 사용하는 것처럼 관련 컨트롤러에서 호출합니다. 우리가 옳은 일을하는지, 아니면 비누를 거치지 않고 직접 컨트롤러에 요청을 보내기보다는 웹 서비스를 호출해서는 안되는이 앱의 웹 서비스 개발자이기도합니다.SOA 아키텍처

가장 좋은 방법은 무엇입니까?

답변

0

물론 이에 대한 대답은 "의존적"입니다.

외부 API 레이어를 사용하여 애플리케이션을 빌드하면 몇 가지 실질적인 이점이 있습니다. 레이어의 유효성을 검사하여 API가 완전한지 확인합니다. 또한 응용 프로그램의 계층을 분리하는 등의 작업을 수행 할 수 있으므로 여러 계층을 훨씬 쉽게 확장 할 수 있습니다.

궁극적으로 나는 불행하게도 모든 경우와 마찬가지로 비용이 많이 든다. 그 비용은 대개 성과입니다. SOAP 직렬화/직렬화를 거치는 것은 일반적으로 중요한 성능 저하이며, deserialization/serialization 요청/응답주기를 거치지 않고 비즈니스 논리에 바인딩하여 성능을 두 배로 늘릴 수 있다는 사실을 알게되면 일반적으로 중단됩니다. 내 평범한 타협은 webservice API가 노출하는 것과 동일한 API를 사용하는 것이지만 직접 바인딩 클라이언트를 사용하는 것입니다.

이 비용은 귀하의 응용 프로그램과 전혀 관련이 없습니다. API를 매우 거칠게 유지하고 호출 횟수를 최소화하는 경우 SOAP 메시징 비용이 눈에 띄지 않을만큼 낮을 수 있습니다. 성능에 대한 모든 우려와 마찬가지로 가정하지 말고 측정하십시오. 당신이 생각하기에 당신을 둔화시키는 것은 다른 구성 요소 나 계층에 완전히 포함될 수 있습니다.

+0

위대한 답변입니다. 직접 바인딩 클라이언트를 만들고 사용할 수있는 방법을 고맙습니다. ZF2를 사용하고 있습니다. – Skafi