이 글에서는 독립형 실행파일(Stand alone) 방식 EMS 서버를 운영환경(윈도우즈 서버)에 설치하는 내용을 설명합니다.

 

emsserver.png

 

 

 

 

 

EMS 서버

EMS 서버란?

EMS 서버는 HTTP 기반 REST API를 제공하는 웹서버입니다.

 

REST API란?

다음 링크를 통해 REST API에 대해 자세히 알아볼 수 있습니다.

 

델파이 클라이언트 뿐 아니라 대부분의 클라이언트 프로그램은 REST API를 통해 EMS 서버에 접속 해 필요한 데이터(리소스)를 조회하거나 추가, 수정, 삭제 할 수 있습니다.

 

EMS 서버는 자주 사용하는 리소스(사용자 정보, 사용자 그룹 정보, 설치정보, 모바일 원격 푸시 등)가 내장되어 있습니다.(일명 턴키 방식 미들웨어라 칭합니다.)

추가로 필요한 업무 로직 등의 리소스는 개발자가 직접 EMS Package를 작성할 수 있습니다. EMS Package는 EMS 서버에 등록해 지속적으로 기능을 추가 확장할 수 있습니다.

 

 

EMS 서버 설치 방식

운영환경에 EMS 서버를 운영환경에 설치하는 방식은 3가지 입니다.

 

1, 독립형 실행파일(Stand alone) 방식으로 설치

2, ISAPI(인터넷 정보 서비스: IIS) 기반으로 설치

3, 아파치 서버 기반으로 설치

 

이 글에서 독립형 실행파일 방식으로 설치하는 내용을 설명합니다.

ISAPI 또는 아파치 서버 기반으로 설치하는 내용은 엠바카데로 기술문서를 통해 참고하시기 바랍니다.

이 글은 델파이 10.2 도쿄 기준으로 작성되었습니다. 다른 버전의 델파이 또는 C++빌더의 경우 버전 번호(10.2 도쿄: 19.0)가 다를 수 있습니다.

 

다음 순서로 진행합니다.

  • 윈도우즈 서버 준비하기
  • 인터베이스 데이터베이스 설치
  • 필요한 파일을 개발환경에서 운영환경으로 복사
  • 환경 설정
  • 직접 개발한 EMS 패키지 추가하기
  • 실행 및 테스트

 

윈도우즈 서버 준비하기

이 글에서는 EMS 서버를 윈도우즈 서버에 설치하는 내용을 설명합니다.

참고로, EMS 서버는 윈도우 서버와 리눅스 서버(RAD 스튜디오 10.2 도쿄 부터)를 지원합니다.

 

윈도우즈 서버 준비

사내 또는 IDC에 구성된 윈도우즈 서버를 준비합니다. 원격 데스크톱 연결과 파일 복사, 외부에서 연결(포트: 8080)이 가능해야 합니다.

 

만약, 윈도우즈 서버가 준비되지 않았다면, 다음 글을 통해 아마존 웹서비스를 이용해 테스트 용 윈도우즈 서버 환경을 먼저 구성할 수 있습니다.

 

 

윈도우즈 서버 접속

원격 데스크톱을 이용해 윈도우즈 서버에 접속합니다.

(저는 아마존 EC2를 이용 Windows 2012 R2 64bit / 영문 서버로 접속합니다.)

rd03.png

 

 

인터베이스 데이터베이스 설치

EMS 서버는 내부 데이터 관리를 인터베이스 데이터베이스를 이용합니다.

 

RAD 서버용 인터베이스 다운로드 및 설치

 

10.2 도쿄와 이전 버전의 RAD 서버 배포 시

RAD 서버 배포용 InterBase XE7을 다음 링크에서 다운로드 후 설치파일을 이용해 설치합니다.

라이선스 입력 단계에서 RAD 서버 라이선스를 입력합니다.

 

InterBase XE7 for RAD Server deployment : https://cc.embarcadero.com/item/30669
 

 

10.3 리오 이상 버전 RAD 서버 배포 시

윈도우즈 운영환경에 RAD 서버 데이터베이스 요구사항 문서를 참조 해 Interbase 설치

 

인터베이스 설치 시 라이선스 키는 RAD 서버의 시리얼번호를 입력해야합니다.

RAD 서버 시리얼번호는 구입 시 안내 메일을 확인하거나, 엠바카데로 라이선스 포털(https://my.embarcadero.com/)에서 확인 하실 수 있습니다

 

필요한 파일을 개발환경에서 운영환경으로 복사

EMS 실행파일과 환경파일, DB파일을 개발 PC에서 원격서버로 복사하는 과정을 설명합니다.

 

EMS 서버 폴더 지정 및 하위 폴더 생성

원격 서버에서 EMS 서버를 설치할 경로를 지정합니다.(저는 C:\EMSServer로 지정했습니다. 원하는 경로로 지정해도 됩니다.)

하위 디렉토리 3개를 아래와 같이 생성합니다.

  • EMSDevServer : EMS Development Server 실행파일과 필요한 바이너리 파일을 복사할 경로
  • EMSPackages : EMS Package를 배포할 경로
  • EnvFile : 환경파일(ini)과 EMS DB 파일을 복사할 경로

 

emsserver_dir.png

 

 

EMS 실행파일과 필요한 라이브러리(*.bpl) 복사

개발 PC에서 탐색기를 열고, RAD 스튜디오 설치 경로 하위 bin 디렉토로리로 이동합니다.
(10.2 도쿄 기준 기본 경로: C:\Program Files (x86)\Embarcadero\Studio\19.0\bin)
bin_dir.png

 

 

 

원격 서버에서 탐색기를 열고 EMS 서버 디렉토리 하위 \EMSDevServer 디렉토리로 이동합니다.

개발 PC에서 원격서버로 아래 그림의 목록을 참고해 파일들을 복사합니다.
(10.2 도쿄 버전 기준으로 bpl 파일들의 번호가 다를 수 있으니 주의하시기 바랍니다.)

 

emsdevserver_dir.png

  • 소스(개발PC) : C:\Program Files (x86)\Embarcadero\Studio\19.0\bin
  • 대상(원격서버) : C:\EMSServer\EMSDevServer

 

 

파일 복사가 잘 됐는지 확인하기 위해 EMSDevServer를 실행합니다.

만약, 아래와 같은 오류가 표시된다면 오류에서 설명하는 bpl 파일을 개발PC에서 원격 서버로 복사합니다.

 

missingbpl.png

 

위 메시지가 표시되지 않는다면 EMSDevServer를 종료합니다.

 

 

EMS 환경파일, DB파일 복사

개발 PC에서 탐색기를 열고, EMS 환경파일 경로(C:\Users\Public\Documents\Embarcadero\EMS)로 이동합니다.

 

ems_env_dir.png

 

 

원격서버에서 탐색기를 열고, 환경파일 경로(C:\EMSServer\EnvFile)로 이동합니다.

개발 PC의 환경파일(emsserver.ini) 파일과 EMS DB파일(EMSSERVER.IB)을 원격서버로 복사합니다.

 

svr_env_dir.png

 

 

환경 설정

환경파일과 DB파일 경로를 설정하는 과정을 설명합니다.

 

환경파일 경로 지정

원격 서버에서 레지스트리 편집기를 실행합니다.

HKEY_CURRENT_USER\Software\Embarcadero\EMS 경로로 이동(만약 경로가 없으면 키 생성 후 이동)합니다.

문자열 값을 추가합니다.(오른쪽 마우스 클릭 > New > String Value)

Value name을 "ConfigFile", Value data에 emsserver.ini 파일 경로(C:\EMSServer\EnvFile\emsserver.ini)을 입력하고

[OK] 버튼을 클릭합니다.

 

reg_edit.png

 

 

DB파일 경로 지정

원격 서버에서 탐색기를 열고, EMS 서버 환경파일 경로(C:\EMSServer\EnvFile)로 이동합니다.

EMS 서버 환경파일(emsserver.ini)을 메모장으로 엽니다.

[Data] 섹션의 Database 값을 EMS DB파일 경로(C:\EMSServer\EnvFile\emsserver.ib)로 변경합니다.

 

ems_env_ini.png

 

 

직접 개발한 EMS 패키지 추가하기

RAD 스튜디오 개발한 EMS Package를 EMS 서버에 추가하는 과정을 설명합니다.

 

원격 서버에 EMS 패키지 복사

원격서버에서 탐색기를 열고, EMS Package를 배포할 경로(C:\emsserver\Packages)로 이동합니다.

직접 개발한 패키지 파일을 개발PC에서 해당 경로로 복사합니다.

 

cust_package.png

 

 

EMS 환경파일에 패키지 추가

EMS 환경파일을 열고, [Server.Packages] 섹션으로 이동합니다.

아래 그림과 같이 패키지 경로와 패키지 이름을 입력합니다.

  • 형식 : 패키지 경로(bpl 파일 포함)=패키지 이름

server_package.png

 

 

실행과 테스트

EMS 서버 실행

원격서버에서 탐색기를 열고, EMS 서버 실행파일 경로 이동후 EMSDevServer를 실행합니다.

로그 창에 환경파일 경로, 배포한 EMS 패키지 등록 여부를 확인합니다.

 

emsserver (1).png

 

 

테스트

개발 PC에서 웹브라우저 실행 후 http://(서버 IP):(EMS 포트번호)/version을 입력합니다.

저는 "http://13.124.73.214:8080/version"으로 테스트 합니다.

 

직접 작성한 패키지 리소스도 확인합니다.

 

ems_test.png

 

 

 

만약, 연결이 되지 않는다면, 서버의 IP 확인하고 윈도우 방화벽에 EMS 서버의 포트번호(기본 8080)가 Inbound 규칙으로 추가되었는지 확인하고 다시 시도 하시기 바랍니다.

 

 

 

참고링크


 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 24819
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 23112
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 25118
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 31003
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 32038
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 27429
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 48483
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 185437
743 델파이 코드 분석 도구 [1] 험프리 2017.05.16 1254
742 애플 개발자 프로그램 구독하지 않고 XCode8을 설정해 iOS앱을 배포하는 방법 험프리 2017.05.15 773
741 안드로이드에서 커스텀 폰트 사용하기 - 델파이 10.2 도쿄 험프리 2017.05.15 718
740 [고객 사례- 조명, 시스템제어, 델파이] 나이아가라 폭포 야간 조명 [1] 관리자 2017.05.10 1331
739 [업데이트][핫픽스][10,2 도쿄] 툴체인 이슈 핫픽스 험프리 2017.05.10 734
738 [RAD서버] EMS 패키지 프로젝트 시작하기 험프리 2017.04.28 1746
» [RAD서버] EMS 서버 운영환경에 설치하기(독립형 실행파일) [2] file 험프리 2017.04.28 3747
736 이 달의 기술자료 - 2017년 05월 file 험프리 2017.04.26 511
735 리눅스 서버용 GUI 응용프로그램 만들기(10.2 도쿄 & FMXLINUX 이용) [1] 관리자 2017.04.25 2300
734 [환경설정] 아마존 EC2 이용해 리눅스 서버 환경 구축하기 file 험프리 2017.04.20 10770
733 [환경설정] 아마존 EC2 이용해 윈도우 서버 환경 구축하기 [1] file 험프리 2017.04.13 6381
732 [발표자료] What's NEW! RAD Studio 10.2 도쿄 험프리 2017.04.13 469
731 [고객 사례- 3D, 이미지스캐너, 델파이] mimix 3D 프로필 스캐너 관리자 2017.04.13 847
730 [RAD 서버] 비콘펜스 소개 및 데모(실내외 길찾기, 지역진입 감지하기) [1] 험프리 2017.04.13 1060
729 [발표자료] 소개합니다! RAD Studio 10.2 도쿄 관리자 2017.04.06 515
728 이 달의 기술자료 - 2017년 04월 file 험프리 2017.03.30 492
727 [10.2 도쿄] 델파이로 리눅스 기반 웹서비스 제작하기(WebBroker 이용) [1] file 험프리 2017.03.30 4075
726 블루투스 바코드 스캐너(BI-07) 안드로이드 라이브러리를 델파이에서 연동하는 방법 [1] file 험프리 2017.03.24 2812
725 [10.2 도쿄] 기타 개선 사항 김원경 2017.03.24 487
724 [10.2 도쿄] RTL file 김원경 2017.03.24 705