2009-07-13 4 views
0

백그라운드에서 실행해야하는 "서비스"가 많은 Windows/.NET 3.5에서 실행되는 시스템을 계획 중입니다. 일부는 항상 활동적 일지 만 일부는 가끔 부름을 받고 필요할 때 일어날 수 있습니다.UI가없는 프로세스를 위해 Windows에서 가장 좋은 호스트

최대한 멀리 볼 수있는, 내 옵션은 다음과 같습니다 - (?)

  • Windows 서비스 항상 실행
  • IIS 뭔가 호스팅 - 수요
  • COM +/닷넷 엔터프라이즈 서비스도 호출을 - 대부분의 복잡한 옵션이지만 가장 강력합니까?

분산 트랜잭션은 필수 조건이 아니며, 트랜잭션 처리기가 아닌 주로 계산 엔진입니다.

누구나이 모든 작업에 대한 경험이 있습니까? 각 기술에 대해 &에 대한 찬성 의견을 제출할 수 있습니까?

편집

, IIS에서 WCF (아래 지적) 웹 서비스 코드를 호스팅하는 여러 가지 방법이 어떤 다른 사람이있다 생각인가? 상대적인 찬성/반대?

답변

2

WCF는 올바른 길을 가고 있다고 느낍니다. 여전히 선택할 수있는 방법이 많이 있습니다. WCF는 다양한 통신 메커니즘과 호스팅 환경을 제공합니다. WCF는 다음 기술을 하나의 API 세트 ( ASMX)로 결합합니다. WSE; Remoting; COM +; MSMQ. 예를 들어, 경우에 따라 연결된 클라이언트 또는 HTTP 전송 계층을 통한 표준 XML 인코딩 SOAP 메시지에 대해 MSMQ의 영구 메시지를 사용할 수 있습니다. HTTP를 통한 XML 또는 JSON 인코딩의 바이너리 인코딩과 같은 3.5의 새로운 기능을 사용할 수도 있습니다.

호스팅 환경은 다음과 같습니다 : WCF 서비스를 호스팅 할 콘솔 응용 프로그램을 IIS 7.0 내부와 (Windows 정품 인증 서비스)는 WAS 사용할 수있는 Windows Vista 또는 Windows Server 2008의 Windows 서비스 WCF 서비스를.

다른 호스팅 환경에는 장단점이 있습니다. MSDN에서 자세한 내용을 참조하십시오 (예 : http://msdn.microsoft.com/en-us/library/bb332338.aspx).

WCF는 많은 기능을 포함하고 있으므로 대체하는 기술 중 하나를 배우기가 어렵습니다. 나는 아직도 그것이 장기적으로 스스로를 지불한다고 생각한다.

1

소프트웨어가 수행 할 작업과 사용자 또는 시스템이 소프트웨어와 상호 작용하는 방법에 따라 다릅니다. 이러한 것들에 따라, 한 번 더, 종종 간과 할 수있는 옵션이있을 수 있습니다 : 예약 된 작업으로 설정하십시오. 이것은 소프트웨어가 특정 시간 간격 (데이터베이스의 변경 사항 확인, 변경된 데이터에 대한 작동 및 어딘가에 보내기)에 따라 작동하는 종류 인 경우 Windows 서비스에 대한 대단히 좋은 대안입니다.

다른 시스템이 소프트웨어와 직접 대화하는 경우 IIS에서 호스팅되는 WCF 응용 프로그램이 다소 힘겨운 방법 일 것이라고 생각합니다. 우리는 현재의 과제에서 두 접근법을 모두 사용합니다. 데이터 검색 및 저장을위한 WCF 서비스 및 정기적으로 실행되는 데이터 계산을위한 예약 된 작업

예약 된 작업에는 특정 필드의 다른 작업보다 한 가지 단점이 있습니다. 실행 중일 때만 시스템 자원을 사용합니다.

+0

예약 된 작업은 매일 특정 시간이 아닌 요구에 따라 처리가 이루어지기 때문에 실제 적용되지는 않을 것입니다.하지만 여기에 요청 해 주셔서 감사합니다. –

1

"주문형"프로세스 시작에 대해 말씀하셨습니다. WAS - Windows 정품 인증 서비스 또는 때로는 Windows Process Activation Servvice라고도하며 "WPAS"로 축약되지는 않지만 주문형 프로세스 정품 인증을 제공하는 Windows 내부의 것입니다. 작동 방식 - 메시지가 도착하면 WAS는 메시지 처리를 위해 작업자 프로세스를 시작할 수 있습니다. WAS는 IIS7 이전에는 IIS에 상당히 긴밀하게 통합되었습니다. 주로 ASP.NET 작업자 프로세스처럼 웹 작업을 수행하는 프로세스를 활성화하는 데 주로 사용되었습니다. IIS7을 사용하면 WAS가 일반화되어 HTTP 이외의 HTTP 및 HTTP 메시지를 기반으로 작업자 프로세스를 활성화 할 수 있습니다. WCF를 통해 메시지를 받기 위해 앱을 작성하는 경우 기본적으로 "무료"로 활성화 할 수 있습니다. 그것이 HTTP, TCP, MSMQ 인 경우 적용됩니다. SOAP 또는 기타.

이 주문형 스타트 업에서 중요한 점은 통신에 묶여 있다는 것입니다. 실제로 WAS의 프로세스 수명주기 모델은 의사 소통과도 연계되어 있습니다. 기본적으로 잠시 후에 수신 메시지가 없으면 프로세스가 WAS에 의해 종료됩니다. 그것은 당신이 원하는 것일 수도 아닐 수도 있습니다.

프로세스 호스팅 - COM +는 호스팅 환경을 제공하지만 주로 통신하는 프로세스의 호스트로 사용하기위한 것입니다. 이것은 당신에게 딱 맞는 것은 아닙니다.

계산 엔진이있는 경우 Windows 서비스 만 실행하면됩니다. 이와 같은 서비스는 관리 상 또는 프로그래밍 방식으로 시작하고 중지 할 수 있습니다. 후자의 경우 Windows 서비스를 프로그래밍 방식으로 시작하는 WAS 활성화 작업자 프로세스를 상상할 수 있습니다.

또한 메시지의 위치 (파일 시스템, 메시지 대기열 등)를 감시하는 간단한 Windows 서비스를 작성하고 해당 파일이나 메시지가 도착하면 Windows 서비스는 자체 컴퓨팅 프로세스를 시작합니다 Windows 서비스가 아니라 프로세스 일뿐입니다.

MSMQ라고하면 - 기본적으로 MSMQ 트리거와 동일한 모델입니다. 메시지가 특정 큐에 도착할 때 프로세스를 시작하도록 MSMQ를 구성 할 수 있습니다.

다양한 옵션이 있습니다.

관련 문제