자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Q. 

1. 미들웨어 서버를 EMS로 만드셨는데, DataSnap으로 만들어도 되지 않나요. 둘이 어떻게 다른가요.

2. DataSnap Server에서 동시에 여러 Client 접속시 문제없도록 FDQuery 사용하는법

 

A. 

1. 미들웨어 서버를 EMS로 만드셨는데, DataSnap으로 만들어도 되지 않나요. 둘이 어떻게 다른가요.

> RAD 서버(EMS 서버)와 데이터스냅 모두 훌륭한 미들웨어 서버 제작 기술입니다.

이번 세미나의 주제가 RAD 서버이므로 EMS 서버로 미들웨어 서버를 만들었습니다.

 

많은 차이점이 있지만 EMS와 데이터스냅의 주요 차이점은 개발의 시작점이 다르다는 것입니다.

 

EMS 서버의 경우 엠바카데로가 제작한 서버 프로그램 기반으로 개발을 시작합니다.

필요한 업무로직만 EMS Package 프로젝트 제작해 플러그인 하는 개발방식을 제공합니다.

(그리고, 사용자/그룹관리, API 통계자료 수집 등의 기능들이 내장되어 있습니다.)

 

반면, 데이터스냅은 처음부터 끝까지 직접 개발해야 합니다.

 

위 2개 방식에 호불호가 나뉠 수 있습니다. 데이터스냅을 이용해서 입맛대로 기능을 구현할 수도 있고, 

RAD 서버를 이용해 원하는 업무로직만 빠르게 개발할 수 있으니 원하시는 미들웨어 서버 제작 기술을 선택하시기 바랍니다.

 

2. DataSnap Server에서 동시에 여러 Client 접속시 문제없도록 FDQuery 사용하는법

> 데이터스냅에서 동시 접속자 처리를 위해 LifeCycle 속성을 "Server", "Session", "Invocation"으로 제공합니다.

(다음 링크에 잘 정리되어 있습니다. http://m.blog.naver.com/jsf3rd/171527833)

 

즉, "Session"으로 LifeCycle 설정 시 클라이언트마다 다른 커넥션을 갖도록 구성할 수 있습니다.

 

동시 접속자가 많거나 성능이 중요한 경우 "Server"로 LifeCycle을 설정하되, DB 커넥션풀등의 기술을 직접 적용해야 합니다.

(검색해보면 관련 자료가 많습니다. https://www.google.co.kr/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=delphi+db+connection+pool&*)