델파이로 작성된 클라이언트/서버 애플리케이션이 있습니다. 본질적으로 모든 응용 프로그램은 서버 응용 프로그램과 연결된 클라이언트간에 XML 데이터 스트림을 전송합니다. 현재 Indy TIdTCPServer 구성 요소를 사용하고 있습니다. 그러나 서버 측 응용 프로그램은 일부 할부에서 계속 충돌합니다. 그리고 디버깅하기가 극히 어려웠습니다. 그래서 내가 모든 tcp/ip 연결 관리 및 데이터베이스 연결 풀링을 활용해야하는 "아키텍처"가 있는지 궁금해서 비즈니스 논리에 집중할 수있게 해줍니다.어떤 델파이 기술을 사용해야합니까?
여기에 자세한 내용은 다음과 같습니다
- 클라이언트는 "영구"연결을 유지해야합니다. 서버가 연결된 모든 클라이언트에 데이터를 알리고 보내야하는 경우가 있습니다.
- 클라이언트가 무선 에어 아워를 사용하여 랩톱 컴퓨터에서 연결하고 있습니다. 따라서 네트워크 "드랍스"는 꽤 흔합니다.
- 백엔드 데이터베이스는 SqlServer입니다.
- 한 번에 최대 100 대의 컴퓨터가 동시에 연결될 수 있습니다. 서버가 새 연결 (TCPServer.OnConnect)을 얻으면 자체 SqlServer 데이터베이스 연결이 포함 된 자체 개체를 인스턴스화합니다. tcp 연결이 끊어지면 나는이 객체들 (그리고 연관된 데이터베이스 연결)을 해제한다.
- 클라이언트 응용 프로그램에는 TTimer가 내장되어 있습니다. 그들은 일상적으로 서버에 하트 비트를 전송합니다. 그리고 연결이 "끊어 지거나"없어지면 네트워크가 다시 연결되면 자동으로 새 연결을 설정합니다.
사람은 여기에 가장 좋은 방법/아키텍처에서 어떤 제안이?
Indy 구성 요소가 작동한다고 가정하지만 동시에 연결 관리와 관련하여 "바퀴를 다시 발명"한다고 생각합니다. 나는 그 알고
자체 롤링이란 고유 한 프레임 워크를 유지 관리하는 데 일정 비율의 시간을 사용하는 것을 의미합니다. Delphi에서 효율성을 높이려면 이미 지원되고 지원되는 상업적으로 지원되는 기술/툴킷/구성 요소를 평가해야한다는 아이디어가 우수합니다. 물론 오픈 소스 도구가 유용 할 수도 있습니다. 그러나 시간이 돈보다 부족하다면 상업용 솔루션으로 가십시오. –
절대적으로 - 정확하게 내가 무엇을 얻고 있는지. 난 단지 검증 된 C/S "3 계층"아키텍처가 필요합니다. –