이것은 꽤 열린 질문이 될 것입니다. 그러나이 시점에서 이것은 내가 시작해야하는 전부입니다. 현재 2 계층 응용 프로그램 디자인이 있습니다. 즉, SQL Server에 연결하고 삽입/업데이트/쿼리와 같은 일반적인 데이터베이스 작업을 수행하는 C++ API가 있다는 것입니다. 우리는 중간에 앉아있는 일종의 응용 프로그램 서버를 사용하여이를 3 계층 설계로 만들려고합니다. 목표는 우리가 더 많은 부하를 가짐에 따라; 우리는 병목 목을 DB로 처리 할 필요가 없습니다. 디자인은 사용자로부터의 모든 통신을 '중간 계층'에서 발생시킨 다음 DB로 이동하는 것입니다. 이렇게하면 복잡한 비즈니스 규칙을 DB 트리거에 넣지 않고 중간 계층에서 처리 할 수 있습니다.
내가 아직 불분명 한 점은 중간 계층이 어떻게 생겼는지입니다. 그것은 일종의 WebService 여야합니까? 모든 클라이언트는 HTTP를 사용하여 중간 계층에 약간의 연결을 한 다음이를 DB에 전달합니다. 당신이 말할 수있는대로; C++ API에서 웹 서비스로; 상당히 큰 변화입니다. 이 주제에 대한 나의 마음을 얻는 데 도움이되는 모든 자료는 크게 감사하겠습니다. 감사!3tier 디자인으로 시작하는 데 도움이 필요합니다.
0
A
답변
0
SQL Server에 연결하여 직접 작업을 수행하는 C++ API가 이미 있으므로이 기능은 디자인의 중간 계층으로 리팩토링 (refactored) 된 이미 적합한 후보로 보입니다. 이 코드는 이미 일부 규칙에 따라 데이터베이스를 조작합니다. 이는 중간 계층에서 수행해야하는 작업입니다.
남은 나머지 작업은이 프리젠 테이션 로직을이 API와 분리하여 데이터를 처리하기 위해 중간 계층 C++ API에 연결하는 자체 응용 프로그램에 존재하도록 허용하는 것입니다 , 데이터베이스에 저장되며 결과는 사용자에게 표시되기 위해 다시 반환됩니다.
프리젠 테이션 계층과 C++ API 간의 연결은 요구 사항에 따라 독점적 인 통신 프로토콜 (예 : TCP/IP 또는 RPC를 통해 구현 됨) 또는 HTTP를 사용하거나 서버에서 C++ API를 호출하고 결과를 호출자에게 반환하는 중개 "릴레이"웹 서비스가 있습니다. HTTP 선택은 처음에는 구현이 더 빠르지 만 고려해야 할 몇 가지 측면이 있습니다. 예를 들어 기본적으로 상태 비 저장 (사용자 세션을 직접 구현해야 함)과 코드와 동기화해야합니다 개발 중에 공개 메소드가 변경 될 때
관련 문제
- 1. Django로 시작하는 데 도움이 필요합니다.
- 2. Eclipse RCP로 시작하는 데 도움이 필요합니다.
- 3. Wordpress 멍청한 놈 시작하는 데 도움이 필요합니다
- 4. Qt를 시작하는 데 도움이
- 5. .net을 시작하는 데 도움이 될까요?
- 6. 간단한 Eclipse 마법사/플러그인을 시작하는 데 도움이 필요합니다.
- 7. 버튼을 작동시키는 데 도움이 필요합니다.
- 8. 반복자를 사용하는 데 도움이 필요합니다.
- 9. 하스켈에서 함수 후보를 작성하는 데 도움이 필요합니다
- 10. VMWare에서 Windows에서 visualvm을 실행하는 데 도움이 필요합니다.
- 11. 3tier/ntier 아키텍처 - 좋은 예제가 필요합니다
- 12. 다른 wchar_t를 추가하는 데 도움이 필요합니다! C++
- 13. 창이 열리는 문제를 해결하는 데 도움이 필요합니다
- 14. C 함수를 이해하는 데 도움이 필요합니다
- 15. PDF 내보내기를 제대로 수행하는 데 도움이 필요합니다.
- 16. 대리자를 사용하여 UITableView를 변경하는 데 도움이 필요합니다.
- 17. gprof 출력을 암호 해독하는 데 도움이 필요합니다.
- 18. 배열을 테이블 뷰에 추가하는 데 도움이 필요합니다.
- 19. Slider 팝업 창을 얻는 데 도움이 필요합니다
- 20. jQuery를 noConflict 모드로 이식하는 데 도움이 필요합니다.
- 21. tcpdump 출력을 해석하는 데 도움이 필요합니다.
- 22. NSURLConnection. 데이터를 저장하는 데 도움이 필요합니다.
- 23. Windows에서 python-cdb를 설치하는 데 도움이 필요합니다.
- 24. C#을 VB로 번역하는 데 도움이 필요합니다.
- 25. C++을 C로 변환하는 데 도움이 필요합니다.
- 26. 함수에 변수를 보내는 데 도움이 필요합니다 PHP
- 27. iOS 앱의 버전을 이해하는 데 도움이 필요합니다.
- 28. 은 시간 슬롯을 생성하는 데 도움이 필요합니다.
- 29. 도움 NSMutableArrays을 정렬하는 데 도움이 필요합니다
- 30. C++ 게임에서 lua를 통합하는 데 도움이 필요합니다.
당신은 이것이 개방형 질문 일 것이라고 말했을 때 꽤 옳습니다 :-) 몇 가지 질문부터 시작해 보겠습니다. 어떤 종류의 응용 프로그램을 만들고 있습니까? 이 웹 응용 프로그램입니까? 어떤 종류의 API를 제공합니까? 작동하지 않는 것은 무엇입니까? –