2013-11-15 3 views
1

저는 여러 번 보았습니다. 솔루션에서 ASP.NET 웹 사이트가 있고 WCF는 해당 웹 사이트에서만 사용되는 곳입니까? 웹 사이트에 데이터베이스를 직접 액세스하는 것보다 웹 서비스를 추가하는 것의 이점은 무엇입니까? 웹 사이트는 웹 서비스가하는 모든 것을 할 수 있습니다. 중복되지는 않습니까?하나의 웹 사이트에서 웹 서비스를 사용하는 이유는 무엇입니까?

+0

"웹 사이트는 웹 서비스의 모든 작업을 수행 할 수 있습니다."- 실제로는 아니요 – Dismissile

+0

@ Dismissile은 좀 더 구체적 일 수 있습니까? –

+0

내가 생각할 수있는 한 가지 예는 여러 바인딩을 설정하는 것입니다. WCF에는 여러 바인딩이 있습니다. 그것이 하나의 이유 일뿐입니다. 앤드류는 몇 가지 다른 좋은 이유들로 대답했다. – Dismissile

답변

2

엄청난 주제이기 때문에 원하는 내용에 달려 있습니다. 우리는 프리젠 테이션과 비즈니스 로직/데이터 레이어 간의 관심사를 분리하여 유지하고자하는 WCF를 사용하는 경향이 있습니다. 또한 웹 사이트 호스팅과는 다른 서버에서 서비스를 호스팅 할 수 있다는 것을 의미합니다. 이는 보안 및 성능 측면에서 편리합니다.

보안 현명한 WCF는 트래픽 암호화를 처리하는 데 훨씬 뛰어나며 wsHttp 프로토콜을 사용하여 실제 작업없이 수행 할 수 있습니다.

아주 단순한 웹 사이트라면 WCF 서비스가 과도하게 필요하지만 더 복잡해질수록 특히 데이터베이스 데이터가 관련되어 있으면 더욱 매력적입니다.

+0

"우리 프리젠 테이션과 비즈니스 로직/데이터 레이어 사이의 관심사 분리"- 좋은 지적이지만, MVC와 같은 패턴을 사용하여 웹 사이트의 디자인으로 할 수 있다고 생각합니다. –

+0

"웹 사이트 호스팅과 다른 서버에서 서비스를 호스팅하십시오."- 어디서나 서비스를 호스팅 할 수 있지만, 내가 본 경우 동일한 서버 또는 동일한 내부 네트워크에 있습니다. 가장 중요한 연결은 데이터베이스 서버에 대한 연결이라고 생각합니다. –

+0

글쎄, 나는 조금은 무의미한 것으로 인정해야한다. 왜냐하면 그것은 새롭고 반짝이며 어떠한 실제적인 이유도없이 항상 사람들이 물건을 사용한다는 것을 알게 될 것이다. 저는 MVC를 사용하지 않았기 때문에 성능에 대해서는 언급 할 수 없지만 웹 사이트와는 별도의 물리적 서버에 항상 데이터 계층을 가지고 있으며 항상 우리를 위해 일하고 있습니다. – Andrew

2

사이트와 서비스가 동일한 컴퓨터에서 호스팅되는 경우 확실히 지나치게 복잡한 아키텍처처럼 보입니다.

웹 서비스가 일종의 상태/캐시를 유지하거나 웹 사이트의 응용 프로그램 풀이 재활용 될 때 중단하고 싶지 않은 백그라운드 작업을하는 경우 가능한 한 가지 이유가 있습니다.

하지만 일반적으로 나쁜 디자인/아키텍처처럼 보입니다.

0

SOA가 장점입니다. http://en.wikipedia.org/wiki/Service-oriented_architecture

이 예제를 고려하십시오. 귀하의 웹 사이트는 userservice1, userservice2 및 userservice3과 같은 3 가지 서비스를 제공하고 있습니다. 각 서비스에는 데이터베이스와 상호 작용하기위한 다음 단계가 포함됩니다. userservice1 : login, connectionconfig, servicedataexchange1. userservice2 : login, connectionconfig, servicedataexchange2. userservice3 : login, connectionconfig, servicedataexchange3. 유 중복 작성해야 웹 서비스없이이 3 개 서비스를 구현하기위한 지금 CON1 dataexch0

: CON1, dataexch1, dataexch0 servicedataexchange2 : CON2, dataexch1, dataexch2, dataexch0 servicedataexchange3 및 servicedataexchange은 다목적 활동이나 행동 같은 servicedataexchange1를 포함 여분의 방법을 가진 프로그램. 그 이유는 내 친구 가이 중복을 피하기 위해 webservice를 구현합니다.

로그인 mehod 또는 하나의 con1 메소드 등을 작성해야하며 각 서비스는 필요할 때마다이를 사용할 수 있습니다.

noboday가 미래를 보았습니다. 다른 서버에서 네트워크를 사용하거나 호스트하는 서비스가 거의 없다면 어쨌든이 아키텍처를 구현해야합니다.

관련 문제