2009-10-07 5 views
8

직접 데이터베이스 액세스 또는 웹 서비스 사용 중에서 선택해야 할 장단점은 무엇입니까?직접 액세스 데이터베이스 대 웹 서비스

응답 성 (< 0.5 초) 및이 webservice/DB (NB : 웹 서비스는 다른 팀에서 유지 관리)에 대한 호출이 적은 중요한 응용 프로그램에 대한 선택은 무엇입니까?

답변

18

직접 데이터베이스 액세스는 사용자를 스키마에 단단히 연결합니다. 양쪽 끝의 변경 사항은 다른 쪽 변경에 영향을줍니다. 그러나 간단하고 네트워크 홉이 적게 필요하다는 장점이 있습니다.

웹 서비스는 간접적 인 추가 레벨을 통해 더 나은 추상화와 느슨한 결합을 의미합니다. 웹 서비스는 데이터의 단일 청지기 역할을 할 수 있습니다. 앱과 마찬가지로 데이터베이스와 직접적으로 연결될 수는 없지만 다른 앱과 동일한 데이터가 필요한 경우 언젠가 스키마 변경이 필요할 가능성이 높아집니다. 이러한 변경 사항은 앱에도 영향을 미칩니다. 비용은 더 많은 대기 시간입니다.

웹 서비스는 권한 부여 및 보안을 중앙 집중화하는 데 적합 할 수 있습니다. 데이터베이스에서도 이와 같은 작업을 수행 할 수 있습니다.

+3

성능은 또 다른 고려 사항입니다. 일반적으로 데이터베이스에 직접 액세스하는 것이 더 빠를 것입니다. – Cocowalla

1

명백히 직접 데이터베이스 액세스는 간단한 시나리오에서 항상 빠릅니다. Web 서비스와

, 당신은 유연성을 얻을 :

  • 플러그인 다른 구현, 여러 응용 프로그램이 동일한 데이터에 대한 액세스를 필요로 할 때
  • , 해당 데이터에 대한 책임을 확인하고 다른 하나가 WebService를 통해 액세스하십시오. 둘 사이에는 데이터 지연이 없습니다. 데이터베이스를 사용하여 응용 프로그램간에 통신하는 대신 자주 액세스하는 데이터를 해당 응용 프로그램의 메모리에 유지할 수 있습니다. ...

응답 성의 맥락 (다른 팀의 문제가있을 수 있음)이 주어지면 여러 응용 프로그램에서 데이터를 공유해야하는 경우가 아니면 직접 데이터베이스 액세스 경로로 이동하십시오. ...

+0

어느 것이 더 좋을지 말할 수 없었습니다. 앱 컨텍스트에서 데이터베이스 액세스가 확실히 작동합니다. 그것은 전체 기업에 얼마나 유익한 서비스가 될 수 있는지에 달려 있습니다. – duffymo

+0

이 문제는 DB가 여러 응용 프로그램에서 사용될 때를 미리 알기가 어렵거나 불가능할 때가 있습니다. 이것은 또 다른 이유는 저장 프로 시저가 app 소스에있는 매개 변수화 된 쿼리보다 더 나은 투자입니다. –

0

Duffymo와 KLE는 모두 유효한 점수를 만듭니다.

추가 고려 사항은 다른 팀과의 연결 정도입니다.

서비스 계층을 사용하여 작업 할 때 일반적으로 프로젝트는 많은 클라이언트 중 하나입니다. 이는 종종 이용 가능한 서비스에 대해 작업하거나 로드맵에서 필요한 변경 사항을 제공 할 때까지 기다려야 함을 의미합니다. 이것은 종종 기업 전체에 좋지만 프로젝트에는 좋지 않은 결정을 내리게됩니다.

관련 문제