2010-07-26 7 views
0

불규칙한 간격으로 하루에 여러 번 실행해야하는 데이터로드 응용 프로그램이 있습니다. 다운로드를 시작하고 데이터를 데이터베이스 서버로 가져 오는 서비스를 작성하려고합니다. 웹 서비스보다 표준 서비스를 사용하는 것이 유리합니까? 아니면 그 반대입니까?Windows 서비스를 통해 webservice를 사용하는 경우는 언제입니까?

+0

실행을 어떻게 트리거 할 계획입니까? 수동으로 또는 특정 조건이 적용될 때? – Goblin

+0

이상한 질문입니다. 웹 서비스는 공개적으로 서비스에 액세스 할 수 있도록하기위한 것입니다. 귀하의 상황에서 그것은 Windows 서비스 또는 스케줄러 실행 작업 사이에서 고려해야 할 것 같습니다. –

+2

웹 서비스와 Windows 서비스는 서로 전혀 관련이없는 완전히 다른 두 가지입니다. 자전거 또는 양배추를 사용하는 것이 더 나은지 묻는 것과 같습니다. –

답변

7

나는 여기에 요점을 놓치고 있다고 생각합니다.

서비스는 일반적으로 통신 또는 원격 실행 형식으로 사용됩니다. 웹 서비스에서 원격 기능을 호출하여 실행중인 시스템의 동작을 조정하거나 웹 서비스에서 데이터를 검색 할 수 있습니다.

Windows 서비스는 "로그온 한 사용자"가 필요없는 컴퓨터에서 실행되는 백그라운드 프로세스입니다. 사용자가 로그인 화면에 있거나 작업을 수행하는 동안 작업을 수행하고 작업을 수행 할 수 있습니다. 당신은 그들의 행동을 조정하거나 정보를 검색하기 위해 서비스와 대화 할 수 있지만 일반적인 목적은 웹 서비스와 다릅니다.

여기서 가장 큰 차이점은 웹 서비스를 호출해야하며 자체적으로 실행되지 않는다는 것입니다.

귀하의 응용 프로그램에 대해서는 하루에 한 번 코드를 실행할 수 있으므로 Windows (표준) 서비스를 사용하는 것이 좋습니다. 웹 서비스에 대한 호출을 자동화하는 다른 방법이 있고 실행 결과 (성공/실패/경고/etc ...)를 자세히 설명하는 서버의 응답이 필요한 경우에만 웹 서비스를 사용합니다.

1

"불규칙 간격"이 의미하는 경우, 응용 프로그램이 다른 응용 프로그램에 의해 호출됩니다, 나는 웹 서비스를 사용합니다.

작업이 예약 된 경우 Windows 서비스를 사용합니다.

SQL Server를 사용하여 작업하는 경우 (예정되어 있든 없든) SQL Server Integration Services를 고려할 것입니다.

1

또한 Windows 예약 된 작업에 의해 트리거되는 일반 (창 또는 콘솔) 응용 프로그램을 작성할 수도 있습니다. 당신이 묘사 한 것은 서비스를 필요로하는 무언가와 꼭 같다고 볼 수 없습니다.

1

소리는 Windows 서비스를 잘 사용하는 것과 같습니다. 내 머리 꼭대기에서 다음과 같은 경우 Windows 서비스를 사용합니다. 1. 작업이 백그라운드에서 예정된 일정 (정기적 또는 불규칙한 간격)으로 수행됩니다. 2. 상호 작용이 필요하지 않습니다. 작업은 백그라운드에서 수행되고 폴링 또는 다른 유형의 트리거 (대기열에서 메시지 삭제, 데이터베이스 값 트리거, 예정된 시간 초과 등)에 따라 시작됩니다. 3. 모니터링이 필요하고 (로깅과 함께 시작/중지) WMI, perfmon 및 이벤트 로그를 거의 사용하지 않고 활용할 수 있습니다.

웹 서비스는 대화식 작업 (예 :받은 요청에 따라 다운로드를 시작하려는 경우)에 더 좋습니다.

Windows 서비스와 같은 사운드는 사용자가 취해야하는 접근 방식입니다.

희망이 도움이됩니다. 행운을 빕니다!

관련 문제