이 글에서는 독립형 실행파일(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 15394
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13957
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16493
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22042
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23266
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18920
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39239
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174689
» [RAD서버] EMS 서버 운영환경에 설치하기(독립형 실행파일) [2] file 험프리 2017.04.28 3477
22 델파이/C++빌더 개발자를 위한 최고의 미들웨어 서버 - RAD 서버 file 험프리 2016.11.02 1779
21 RAD서버로 개발은 확장하면서도 비용을 절감하는 방법 (RAD서버 라이선스 유형별 정리) file 관리자 2017.06.20 1632
20 Swagger / YAML 및 RESTful API의 자체 문서화 김원경 2020.03.11 1599
19 RAD 서버 : 웹 속성을 폴더에 매핑하기 file 김원경 2020.03.17 1537
18 센차 ExtJS 웹 클라이언트 + RAD서버 10.2.3 관리자 2018.04.24 1435
17 기존 시스템을 웹(Web)으로 확장하기 위해 고려해야 할 두 가지 포인트 관리자 2018.06.11 1381
16 [RAD서버] [웨비나-딥다이브] 매장 관리 솔루션 개발하기(개발 시나리오와 데모) file 험프리 2016.11.02 1315
15 Ext JS 활용과 앞으로의 방향 관리자 2018.05.24 1277
14 델파이/C++빌더 개발자를 위한 웹 개발 with ExtJS! 관리자 2018.06.04 954
13 [RAD서버] JSON 처리 단순화 컴포넌트 활용 - TEMSDataSetResource 험프리 2019.09.27 752
12 RAD 서버 완벽 가이드 - 200페이지 분량의 전자책 file 험프리 2020.02.07 749
11 RAD서버 솔루션 시리즈: 필드 서비스 애플리케이션 관리자 2018.06.01 623
10 [10.3 리오][업데이트 2] 새로운 RAD서버 관리 콘솔 관리자 2019.08.28 558
9 RAD 서버에 Swagger UI 임베이딩 김원경 2020.03.09 531
8 [10.2 도쿄][릴리즈3] RAD서버에서 센차 Ext JS 지원 확장 관리자 2018.03.30 508
7 윈도우 & 리눅스에 RAD서버 손쉽게 배포하기 관리자 2021.04.12 503
6 리눅스에 RAD서버 배포하기 관리자 2019.07.11 459
5 [발표자료] 2018022 마이크로서비스 아키텍처 구현과 활용 with RAD서버 file 관리자 2018.02.23 428
4 RAD서버 도커(Docker) 기술 가이드 관리자 2020.02.26 423