새로운 글
새로운 덧글

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

 

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 / 영문 서버로 접속합니다.)

 

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

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

 

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

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

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

 

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

 

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

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

 

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

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

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

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

 

 

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

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

 

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

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

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

 

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

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

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

 

EMS 환경파일, DB파일 복사

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

 

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

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

 

환경 설정

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

 

환경파일 경로 지정

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

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

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

Value name을 "ConfigFile", Value data에 emsserver.ini 파일 경로(C:\EMSServer\EnvFile\emsserver.ini)을 입력하고 [OK] 버튼을 클릭합니다.

 

DB파일 경로 지정

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

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

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

 

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

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

원격 서버에 EMS 패키지 복사

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

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

 

EMS 환경파일에 패키지 추가

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

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

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

 

실행과 테스트

EMS 서버 실행

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

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

 

테스트

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

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

 

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

 

 

 

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

 

참고링크


 

번호 제목 글쓴이 날짜 조회 수
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 관리자 2017.02.06 387
공지 이 달의 기술자료 & 기술레터 관리자 2017.02.06 265
공지 데브기어 강의 - 2017년 8월~2017년 10월 관리자 2015.01.22 5446
공지 RAD Studio(Delphi, C++Builder) 시작하기 관리자 2015.06.30 8394
공지 RAD 스튜디오로 개발된 모바일 앱 사례(17년 6월 26일 업데이트) 험프리 2014.01.16 145757
746 [REST API][실습] REST API 서버 개발하기(엔드포인트 구현, RAD 서버 이용) 험프리 2017.05.23 277
745 [REST API] REST API 이해하기 험프리 2017.05.23 443
744 델파이 코드 분석 도구 험프리 2017.05.16 254
743 애플 개발자 프로그램 구독하지 않고 XCode8을 설정해 iOS앱을 배포하는 방법 험프리 2017.05.15 280
742 안드로이드에서 커스텀 폰트 사용하기 - 델파이 10.2 도쿄 험프리 2017.05.15 111
741 [고객 사례- 조명, 델파이] 나이아가라 폭포 야간 조명 [1] 관리자 2017.05.10 625
740 [업데이트][핫픽스][10,2 도쿄] 툴체인 이슈 핫픽스 험프리 2017.05.10 229
739 [RAD서버] EMS 패키지 프로젝트 시작하기 험프리 2017.04.28 152
» [RAD서버] EMS 서버 운영환경에 설치하기(독립형 실행파일) 험프리 2017.04.28 217
737 이 달의 기술자료 - 2017년 05월 file 험프리 2017.04.26 217
736 리눅스 서버용 GUI 응용프로그램 만들기(10.2 도쿄 & FMXLINUX 이용) [1] 관리자 2017.04.25 310
735 [환경설정] 아마존 EC2 이용해 리눅스 서버 환경 구축하기 험프리 2017.04.20 247
734 [환경설정] 아마존 EC2 이용해 윈도우 서버 환경 구축하기 [1] 험프리 2017.04.13 262
733 [발표자료] What's NEW! RAD Studio 10.2 도쿄 험프리 2017.04.13 160
732 [고객 사례- 3D, 이미지스캐너, 델파이] mimix 3D 프로필 스캐너 관리자 2017.04.13 198
731 [RAD 서버] 비콘펜스 소개 및 데모(실내외 길찾기, 지역진입 감지하기) [1] 험프리 2017.04.13 180
730 [발표자료] 소개합니다! RAD Studio 10.2 도쿄 관리자 2017.04.06 231
729 이 달의 기술자료 - 2017년 04월 file 험프리 2017.03.30 217
728 [10.2 도쿄] 델파이로 리눅스 기반 웹서비스 제작하기(WebBroker 이용) [1] 험프리 2017.03.30 701
727 블루투스 바코드 스캐너(BI-07) 안드로이드 라이브러리를 델파이에서 연동하는 방법 file 험프리 2017.03.24 444


광고 모듈이 설치되어 있지 않아 실행을 중단합니다..