2010-08-11 6 views
0

나는 서비스 레이어가 비즈니스 로직 레이어 위에 있다는 것을 알았고 프리젠 테이션 레이어에서 서비스 레이어를 호출했다. 그러나 프로젝트에서 우리는 동일한 애플리케이션에서 정의 된 웹 또는 WCF 서비스를 호출합니까? 서비스 계층에서 모든 논리를 노출하고 비즈니스 논리 계층의 메서드가 아닌 서비스를 호출하면 성능이 저하됩니다. 나는 우리가이 일을 프로젝트에서 수행하는지 의문이다. 그러나 다른 응용 프로그램에서 정의 된 웹 또는 WCF 서비스를 호출하면 데이터 액세스 계층 또는 비즈니스 논리 계층에서도 호출 할 수 있다고 생각합니다. 나는 이것에 관해 매우 혼란 스럽다, 누군가 나에게 단서를 줄 수 있냐?SOA의 다른 레이어에 관한 질문

귀하의 회신을 기다리고 있습니다. 매우 감사합니다!

답변

4

많은 질문에 예라고 대답하고 경로에 대해 경고합니다. SOA에 대한 근본적인 것을 놓치고 있습니다. 먼저 웹 서비스 개발을하기 전에 Service Inventory가 무엇을 의미하는지 이해해야합니다.

서비스 재고는 세 가지 기본 서비스 유형 구성 할 수 있습니다

  1. 법인 서비스을 - CRUD - 서비스의 종류 데이터 관련 문제와 함께 작동합니다. 예, 데이터베이스를 쿼리합니다.

  2. 유틸리티 서비스 - 이런 종류의 수행 인프라 등 보내기 이메일, "로깅"처럼 작동

  3. 작업 서비스 -이 다른 서비스를 조정한다 (법인, 작업 및 유틸리티) 실제로 비즈니스 규칙을 수행합니다.

예를 들어, 차례 호출 다른 두 엔티티 서비스에서 비즈니스 로직을 수행하는 태스크 서비스를 호출 할 수있는 UI 응용 프로그램을 우편으로 사용자에게 알려, 다른 서비스 유형을 호출 할 수있는 다른 작업 서비스를 호출 .

하지만이 문제에 대해주의를 기울여야합니다. 연결 서비스는 인프라 연결을 의미합니다. 책으로 SoaPrinciples.com을보고 SoaSchool.com으로 이동하십시오. 품질로 서비스를 작성하기 전에 많은 것을 이해해야합니다.

저는 WCF를 사용하여 이러한 개념을 기반으로 완전히 생태계를 구현하고 있습니다. 그 중 일부는 이미 제작 중이며 성능에 전혀 문제가 없습니다. 대신 사용자는 정말 행복합니다. 그러나 그렇게 쉬운 것은 아니며 표준 프로그래밍 스타일을 중계하지는 않을 것입니다. 프로그래밍 스타일에 대한 생각이 바뀌었고 동시성 문제와 병렬 프로그래밍을 마스터해야했습니다. 내가 한 최고의 물건! 나는 아직도 내 멀티 코어 서버의 진정한 잠재력을 사용할 수 없습니다.

행운을 빈다!