2011-03-22 4 views
1

저는 C# .NET/OpenRasta 웹 서비스를 계속 추가하고 있습니다.Inter-Webservice 통신을위한 좋은 프레임 워크/패턴/등이 있습니까?

새 서비스가 추가되면 이미 다른 웹 서비스를 사용하고있는 응용 프로그램에서 필요하기 때문에 추가 된 경우가 종종 있습니다 ... 때로는 명백한 시너지 효과가있는 경우입니다 새로운 서비스와 기존 서비스 사이에서 우리는 하나를 호출 한 다음 반환 된 결과에서 다른 하나를 호출 할 수 있음을 의미합니다.

이 서비스는 단일 C# Visual Studio 프로젝트에 있습니다 (좋든 나쁘 든간에, 이것은 내 결정이 아닙니다).

내가 찾고있는 것은 기존 API/라이브러리 또는 패턴 또는 소프트웨어입니다 (또는 "OpenRasta는 out-the-box를 할 수 있습니다"라는 말에서 약간의 뉘앙스). 결과를 반환하기 전에 내 서비스가 매우 느슨하고 역동적 인 방식으로 서로 상호 작용할 수 있도록 허용합니다.

예 : 내 서비스 중 하나는 사용자 상태/데이터 저장소이고 다른 하나는 지역 데이터입니다. 응용 프로그램은 사용자 서비스에서 사용자를 끌어 올 수 있으며 지오 데이터 서비스를 사용하여 IP를 보았지만 응용 프로그램에서 2 회의 서비스 호출이 필요합니다.

또는 제품에 대한 자세한 정보와 현재 재고 및 재주문 금액 등을 제공하는 창고 재고 수준 서비스를 제공하는 재고 데이터 서비스가 있다고합시다. 하지만 재고 설명 및 우리가 현재 보유하고있는 금액은 신청서에서 두 번 전화해야합니다.

무엇 .. 내가 전화 (같은) 수있는 프레임 워크의 어떤 종류를 얻을 수있는 경우입니다 좋은 것

http://www.foo.com/user?id=8890823123&ip=county:geo|country|fromIp 

다시 그것으로 와서 내 사용자 JSON 객체는 필드로 대체 IP 주소입니다/geo/country/fromIp 서비스 메소드에 ip 주소를 매개 변수로 전달하여 해결 된 "국가"라고합니다. 또는 내가 좋아하는 주식 서비스를 호출 할 수 있다면 :

GET 
http://www.bar.com/product 
{"desc": "/product?id=92236262", "stock":"/stock?id=92236262"} 

및 { "내림차순"처럼 보였다 JSON 개체 돌아가 "갈색 가죽 신발, 크기 9 1/2", "주식을": "7 "}

저는 한 서비스에 대한 지식을 다른 서비스에 하드 코딩하지 않고이 작업을 수행 할 수 있기를 정말로 바랍니다. 새로운 서비스가 추가되면 기존 서비스 중 하나를 사용하여 조회 등을 수행 할 수 있습니다.

나 자신을 코딩 할 필요가 있거나 그러한 것들이 이미 존재합니까?

답변

0

OData 친구들은 당신이 설명하는 종류의 URI 구성을하려고합니다. 나는 그들이 실제로 아직 구현을 가지고 있다고 생각하지 않는다.

나는 그것이 좋은 생각이나 필요하다고 생각하지 않는다. 그러나 그건 내 의견이다. 리소스를 작성하려면 아키텍처에서 합성 된 리소스를 명시 적으로 노출하는 레이어를 만듭니다. URI를 통해 연결하는 것은 커플 링 및 성능 문제에 대한 공개 초청입니다.

관련 문제