2014-01-28 3 views
2

Web Api에 구축 된 서비스 지향 시스템의 몇 가지 예를 들려 줄 수 있습니까? 현재 내가 생각하고 약 2 접근 방법 :ASP.NET 웹 Api 제안이있는 SOA 스타일 아키텍처

  • 먼저 단순하고 간단합니다 - 자신의 웹 응용 프로그램의 각 서비스를 가지고는, 서로 IIS에서 독립적으로 개최했다. 내가 좋아하지 않는 몇 가지 이유가 있습니다. 모든 개발자는 Web API 프로젝트를 만들고 IIS에 자체적으로 배포하고 중앙 집중식 보안 메커니즘이 없으며 중앙 집중식 보안 메커니즘 등을 배포해야합니다.

  • 두 번째 것은 더 나은 내가 생각하지만, 또한 쓴 복잡한 - 단 하나의 서비스 끝점을 가지고, 내가 게이트웨이 호출, 모든 서비스 호출이 끝점을 통과하고 특정 폴더에 "플러그인"스타일 시스템을 가지고이 "플러그인 폴더", 각각의 새로운 서비스는이 폴더에 dll -s의 무리로 배포되며,이 폴더에서 Web Api의 IAssemblyResolver으로 모든 컨트롤러 (다른 서비스/프로젝트의 경우 물론)를 읽습니다. 내가 두 번째 방법을 선택하는 경우

나는 다음과 같은 장점이 있습니다 내 팀의 각 개발자는 "플러그인 폴더"에 자신의 프로젝트의 DLL -s 복사, WebApi을 건드리지 않고 자신의 서비스를 "게시"할 수 있습니다. 라우팅 및 API 발견은이 경우 매우 쉽습니다 (샘플 라우팅 - {Application/ServiceName}/{version}/{controller}/{action}/{id}). 시스템 및 기타 방법에 대한 중앙 집중식 보안 통제가 있습니다.

제안이나 샘플 및 자습서를 제공해 주시면 감사하겠습니다.

SOA가 플랫폼과 기술에 독립적이라는 것을 알고 있지만 더 나은 제목을 생각하지 않았습니다.

답변

1

별도의 웹 응용 프로그램으로 서비스를 호스팅 할 때 장점은 독립적으로 확장 할 수 있고 다른 릴리스주기에있을 수 있다는 것입니다. 서비스에 아약스 요청을하는 경우 교차 도메인 문제가 있지만 다른 고려 사항이 있습니다. 호스트가 개별적으로 호스팅되는 경우 다른 도메인에 있으므로 CORS, JSONP 또는 역방향 프록시와 같은 작업을 수행해야 브라우저에서 아약스 요청을받을 수 있습니다.

0

ASP.NET 웹 API를 사용하여 SOA를 설명하는 웹에서 기사를 너무 많이 찾을 수는 없습니다. 웹 API와 WCF를 비교해 보면 (WCF의 REST 측면을 제외하고는 그렇지만 이러한 경우에는 웹 API를 사용해야하는 이유). 좋은 토론은 WCF와 관련하여 ASP.NET Core에서 진행되고 있습니다 (https://github.com/dotnet/wcf/issues/1200). 향후 .NET 릴리스 및 WCF 구현 기능에 대해 시장 상황에 상관없이 열어 두십시오.

SOA 환경에서 서비스를 호스팅하고 싶거나 필요가 있는지 스스로에게 물어야한다고 생각합니다. 보험 회사와 같이 API를 공유하고 방화벽 뒤에서 그렇게하는 대기업은 일반적으로 SOA를 사용합니다. 응용 프로그램 서버에있는 서비스를 호출하기 위해 프록시가 필요하지 않은 경우 복잡한 아키텍처가 필요하지 않을 수 있습니다. 이 경우 ASP.NET 웹 API는 아마도 완벽한 솔루션 일 것입니다. 일반적인 SOA 환경에서 개발할 계획이라면 WCF와 .NET 4.6.2를 WCF를 지원하는 향후 .NET 릴리스와 함께 사용하는 것이 좋습니다.