2011-08-07 6 views
0

이것은 꽤 열린 질문이 될 것입니다. 그러나이 시점에서 이것은 내가 시작해야하는 전부입니다. 현재 2 계층 응용 프로그램 디자인이 있습니다. 즉, SQL Server에 연결하고 삽입/업데이트/쿼리와 같은 일반적인 데이터베이스 작업을 수행하는 C++ API가 있다는 것입니다. 우리는 중간에 앉아있는 일종의 응용 프로그램 서버를 사용하여이를 3 계층 설계로 만들려고합니다. 목표는 우리가 더 많은 부하를 가짐에 따라; 우리는 병목 목을 DB로 처리 할 필요가 없습니다. 디자인은 사용자로부터의 모든 통신을 '중간 계층'에서 발생시킨 다음 DB로 이동하는 것입니다. 이렇게하면 복잡한 비즈니스 규칙을 DB 트리거에 넣지 않고 중간 계층에서 처리 할 수 ​​있습니다.
내가 아직 불분명 한 점은 중간 계층이 어떻게 생겼는지입니다. 그것은 일종의 WebService 여야합니까? 모든 클라이언트는 HTTP를 사용하여 중간 계층에 약간의 연결을 한 다음이를 DB에 전달합니다. 당신이 말할 수있는대로; C++ API에서 웹 서비스로; 상당히 큰 변화입니다. 이 주제에 대한 나의 마음을 얻는 데 도움이되는 모든 자료는 크게 감사하겠습니다. 감사!3tier 디자인으로 시작하는 데 도움이 필요합니다.

+0

당신은 이것이 개방형 질문 일 것이라고 말했을 때 꽤 옳습니다 :-) 몇 가지 질문부터 시작해 보겠습니다. 어떤 종류의 응용 프로그램을 만들고 있습니까? 이 웹 응용 프로그램입니까? 어떤 종류의 API를 제공합니까? 작동하지 않는 것은 무엇입니까? –

답변

0

SQL Server에 연결하여 직접 작업을 수행하는 C++ API가 이미 있으므로이 기능은 디자인의 중간 계층으로 리팩토링 (refactored) 된 이미 적합한 후보로 보입니다. 이 코드는 이미 일부 규칙에 따라 데이터베이스를 조작합니다. 이는 중간 계층에서 수행해야하는 작업입니다.

남은 나머지 작업은이 프리젠 테이션 로직을이 API와 분리하여 데이터를 처리하기 위해 중간 계층 C++ API에 연결하는 자체 응용 프로그램에 존재하도록 허용하는 것입니다 , 데이터베이스에 저장되며 결과는 사용자에게 표시되기 위해 다시 반환됩니다.

프리젠 테이션 계층과 C++ API 간의 연결은 요구 사항에 따라 독점적 인 통신 프로토콜 (예 : TCP/IP 또는 RPC를 통해 구현 됨) 또는 HTTP를 사용하거나 서버에서 C++ API를 호출하고 결과를 호출자에게 반환하는 중개 "릴레이"웹 서비스가 있습니다. HTTP 선택은 처음에는 구현이 더 빠르지 만 고려해야 할 몇 가지 측면이 있습니다. 예를 들어 기본적으로 상태 비 저장 (사용자 세션을 직접 구현해야 함)과 코드와 동기화해야합니다 개발 중에 공개 메소드가 변경 될 때

관련 문제