저희 회사는 고객에게 음악 서비스를 임대합니다. 이 제품은 자동화 된 mp3 플레이어와 매일 자신의 컴퓨터에 다운로드 된 costumers 음악 라이브러리 (mp3 노래)의 갱신/업데이트로 구성됩니다. 지금까지 우리는 GBridge를 사용하여 서버 및 클라이언트 폴더를 동기화하여 mp3 업데이트에 대한 추악한 솔루션을 사용합니다. 이것은 우리가 고객이 우리 음악 라이브러리 (현재 25.000 곡)를 다운로드하도록 강요하는 반면 대부분은 음악 카테고리 (팝, 록 등)의 모든 곡을 재생하지 않을 것이기 때문에 분명히 단점입니다. 가장 중요한 점은 경쟁사가 저렴한 가격으로 카테고리별로 패킷을 제공하면서 구독 패킷 (전체 뮤직 라이브러리)을 하나만 제공 할 수 있다는 것입니다. 이러한 이유로 우리는 WCF로 전환하기로 결정했습니다.내 서비스에 대해 신뢰할 수있는 세션이 실제로 필요합니까? (내 설명)
이 서비스는 PerCall 인스턴스 모드를 사용하며 고전적인 요청 - 응답 패턴을 사용하여 winform 클라이언트 응용 프로그램에서 호출되는 두 가지 작업을 구현합니다.
첫 번째 작업은 클라이언트가 다운로드 할 수있는 범주 (요청)를 데이터베이스에서 검색하고 클라이언트에이 범주 목록 (회신)을 다시 보냅니다.
두 번째 작업은 다운로드에 사용됩니다. 클라이언트는 먼저 xml 버전의 서버 데이터베이스를 다운로드합니다. 비슷한 XML이 클라이언트 측에 있습니다. 클라이언트 응용 프로그램은 첫 번째 작업에서 반환 된 각 범주에서 서버 xml 파일과 비교하여 자신의 xml에없는 노래를 확인합니다. 누락 된 파일 (XML에있는 요소)이 있으면 누락 된 파일을 한 번에 하나씩 다운로드합니다. 각 다운로드 후에 클라이언트는 자신의 XML을 업데이트하고 모든 파일 (요소)이 2 xml에서 일치 할 때까지 동일한 비교를 다시 수행합니다.
서비스의 인스 턴싱 모드가 처리량상의 이유로 PerCall이고 메모리 소비를 낮게 유지하고 내 작업 모두에서 요청 - 응답 패턴을 사용한다는 점을 고려하면 간단합니다. 이는 응답 메시지가 클라이언트로 다시 전송됨을 의미합니다 서비스의 각 응답과 함께 연결에 문제가 있거나 클라이언트가 서비스에 연결할 수없는 경우 클라이언트에서 CommunicationObjectFaultedException을 잡을 수 있습니다. 프록시를 재구성하고 재 시도하면 신뢰할 수있는 세션이 필요하다고 생각합니까? 서비스 구현? 방금 설명한 작업에서 신뢰할 수있는 세션이없는 경우 어떤 문제가 발생할 수 있습니까?
나는 아직 보안 문제를 다루지 않았지만 솔직히 말해서 WCF는 아직 공부하고 배우기에 새로운 브랜드입니다. BasicHttpBinding의 기본 보안 프로필로 내 서비스가 충분하다고 생각합니까? – Pantelis
@Pantelis 답변을 업데이트했습니다.BasicHttpBinding은 널리 사용 가능한 HTTPS를 사용하여 보안을 설정할 수 있으므로 내 최고의 선택입니다. – Aliostad
답장을 보내 주셔서 감사합니다. 이렇게하면 파일을 버퍼링하는 대신 스트리밍 할 수 있으므로 작업이 단순 해 지므로 서버 리소스 소비가 최소화됩니다. – Pantelis