Integration Server 란
webMethods Integration Server 는 시스템 간의 통합을 위하여 다양한 서비스와 효과적인 커뮤니케이션을 위한 환경을 제공하는 서버입니다.어댑터를 통해 외부 응용 프로그램에 연결하고 어댑터에서 데이터를 보내거나 받을 수 있으며, 유효성 검사, 데이터 변환, 집계 등
비즈니스 로직을 수행할 수 있습니다.
Default Ports는 5555를 사용하고 있습니다.
Integration Server Admin Page
1. Dashboard :
webMethods 10.7부터 추가된 기능으로 IntegrationServer 가 설치된 서버의 자원 및 서비스 사용량을 가시적으로 보여줍니다.
2. Server :
Statustics : Integration Server 를 시작할 때 정한 Heap Memory안에서 수행합니다.
해당 그림에서 보이는 것은 설정한 Heap Memory 안에서 얼마만큼의 메모리를 실제로 사용하고 있는 지를 나타냅니다
가로 막대 그래프인 ‘Used’와 ‘Free’는 페이지를 Refresh할 때 마다 현재 상태의 메모리 사용량을 보여주고, 아래에 위치한 새로 막대 그래프는 시간 별 Memory 사용량 평균을 보여줍니다
Service Threads는 실제 webMethods에서 수행되고 있는 서비스의 개수를 나타내고 있습니다.
Licensing : License Details을 통하여 현재 적용 되어 있는 라이센스의 상세 정보 확인 및 해당 라이센스 파일이 지원하는 항목을 확인할 수 있습니다라이센스 파일을 변경하기 위해서는 License Details > Edit 을 통하여 파일을 설정하거나 {Integration Server_directory}\instances\instance_name\config\licenseKey.xml 를 교체하면 됩니다.
Ports : Integration Server 를 설치할 때 지정한 Port가 확인 됩니다. IntegrationServer 에서 사용하는 Port 가 가시적으로 확인 할 수 있으며
FTP, E-Mail , HTTP(S) 등을 위하여 추가 및 삭제 할 수 있습니다.
File Polling 은 외부 디렉토리(파일 시스템)에 파일을 업로드하면 특정 서비스에서 자동적으로 가져가서 실행하게 됩니다.
Scheduling : 개발된 서비스를 배치 잡을 통해 수행해야 될 경우 등록하게 됩니다.
배치 잡 : 데이터를 실시간으로 처리하는게 아니라, 일괄적으로 모아서 처리하는 방법이며 , 실행주기에 맞게 일자/시간 설정이 필요합니다.
Repeating : Repeat after completion 꼭 체크할 것
위 옵션은 먼저 실행된 작업이 종료된 후 다음 스케줄이 실행되야한다는 의미이며, 배치 잡 수행 중 충돌을 방지하기 위하여 반드시 체크 합니다.
( 체크 해제는 CTRL+클릭 )
Service Usage : 수행되고 있는 서비스를 확인할 수 있는 탭입니다.
서비스에서 Hang이 걸릴 경우 특정 숫자에서 더 이상 떨어지지 않는데, 어떠한 서비스인지 확인하기 위한 용도로 사용합니다.
3. External servers :
SFTP : IntegrationServer는 SFTP 서버 역할을 하지 않습니다. Client 역할로 외부 SFTP 에 접속하기 위한
IP:Port 및 접속정보 등록 및 관리합니다. 이 정보는 Designer를 통해 사용할 수 있습니다.
서버 정보를 입력 후에 Host Key Location 버튼을 클릭하면 SFTP 의 public key가 자동적으로 다운로드 되게 됩니다.
{IntegrationServer Directory}\instances\default\config\sftp\sftpServerAliases.cnf
Remote servers : 다른 서버를 원격 접속 시 사용합니다. 별칭을 통하여 Designer에서 접속 할 수 있습니다.
pub.remote:invoke , pub.remote:gd
Proxy servers : 프록시 서버를 등록해 줍니다. (실제 사용해보지 않음)
프록시서버는 클라이언트가 직접적으로 내부 시스템으로 접근하지 못하도록 중간에서 필터 역할을 하는 응용 시스템 입니다.
3. Messaging :
webMethods settings : 메시징 방식을 위하여 Conection 관리하게 됩니다.
IS_BROKER_CONNECTION 브로커 연결 (10.2부터 지원 하지 않습니다.)
IS_DES_CONNECTION Digital Event Services를 주고 받는데 사용(의미에 대하여 확인 필요)
IS_LOCAL_CONNECTION 로컬로 게시 할 문서 유형을 주고 받는데 사용
webMethods triggers : Document가 정상적으로 Publish 되었는지 확인 할 수 있습니다.
JMS settings : ( 추후 확인 필요 )
JMS triggers : ( 추후 확인 필요 )
JNDI settings : Java Naming and Directory Interface라는 의미로 API를 호출하여 자원과 다른 프로그램 객체를 찾습니다.
Alias를 통해서 nsp는 Universal Messaging 솔루션에 커스터마이징 되어 있는 프로토콜 중 하나 입니다.
높은 처리량, 짧은 대기 시간 및 최소 오버헤드에 최적화된 일반 TCP 소켓 프로토콜입니다.
MQTT settings : IoT에서 주로 사용되는 메시징 프로토콜의 일종입니다. ( 추후 확인 예정 )
MQTT triggers : IoT에서 주로 사용되는 메시징 프로토콜의 일종입니다. ( 추후 확인 예정 )
4. Logs :
Server : {Integration Server_directory}\instances\default\logs\server.log 로 저장 됩니다. 서비스 및 서버의
전반적인 로그가 기록되며 필요하다면 configuration 의 로그 레벨을 높임으로써 좀 더 자세한 로그를 확인할 수 있습니다.
Error : 오류 발생 내역에 대하여 기록합니다. 데이터베이스에 저장할 경우 WMERROR 테이블에 쌓이게 됩니다.
Guaranteed Delivery : 데이터베이스에 저장할 경우 WMTXIN 및 WMTXOUT 테이블에 쌓이게 됩니다.
Messaging : (추후확인 필요)
Service : 데이터베이스에 저장할 경우 WMSERVICE 테이블에 쌓이게 됩니다.
Session : Integration Server 에 접근하는 모든 클라이언트 세션을 기록합니다.
데이터베이스에 저장할 경우 WMSESSION 테이블에 쌓이게 됩니다.
Logging configuration : DB 혹은 File 중 택 1할 수 있으며 로그 레벨 및 기타 설정을 할 수 있습니다.
간단 로그 확인 방법
C (Fatal), E (Error), W (Warn), I (Info), D (Debug), T (Trace)
예시 : [157]2019-07-22 09:37:04 KST [ISP.0090.0003E] startWebSocket while Error : The status code of the opening handshake
5. Packages :
Management : IntegrationServer에 생성된 모든 패키지를 관리 할 수 있습니다. 활성화 여부 및 삭제 등을 할 수 있으며 외부에서 생성된 패키지를 넣기위해서는 {IntegrationServer Directory}\instances\default\replicate\Inbound 에 넣고 Install Inbound Releases 를 통해 가져올 수 있습니다.
Publishing : (추후 확인 필요)
Subscribing : (추후 확인 필요)
6. Solutions :
Deployer : 다른 서버로 패키지를 배포할 경우 사용합니다.
7. Adapters :
webMethods Adapter for JDBC : 외부 데이터베이스(RDBMS) 와 연결하기 위한 서비스입니다. Connection 정보 및 Listener 정보를 관리합니다.
8. webMethods Cloud :
Tenant connections : webMethods.io 접속 시 사용하였으나 다시 확인 필요 합니다. webMethods.io는 PaaS( Platform as a Service) 입니다
Accounts : webMethods.io 와 Hybrid 형태로 사용할 때 사용하였습니다.
Applications : (추후 확인 필요)
Docker services : (추후 확인 필요)
9. Security :
ACLs : Access Control Lists의 약자이며 기본적으로(관리자, 개발자, Replicators 등)을 제공합니다. 일반적으로 변경 없이 사용 합니다.
- Administrator : IS 서버를 구성하거나 관리할 수 있는 권한
- Default : 서버에 정의 되어 있는 기능을 사용 할 수 있다. 아무런 권한이 없다.
- Developer : Software AG Designer를 사용하여 생성, 수정 및 삭제
- Replicator : 패키지 파일을 복사 할 수 있는 권한 (읽기 기능)
Certificates : 현재 IntegrationServer에 적용이 되어있는 KeyStore , TrustStore의 정보를 보여줍니다.
CSRF guard : 티켓 기반 암호화 프로토콜 대칭키 암호화 기법 사(추후 확인 필요)
Enterprise Gateway Rules : (추후 확인 필요)
JWT : Json Web Token 관련 설정 (추후 확인 필요)
Keberos : (추후 확인 필요)
Keystore : KeyStore List에는 자신의 privateKey가 포함된 JKS파일을 생성하여 등록 및 관리하게 됩니다.
TrustStore 에는 파트너의 publicKey가 포함된 인증서리스트를 JKS파일로 생성하여 등록 및 관리하게 됩니다.
OAuth : 특정 서비스에 로그인하기 위해 별도 회원가입 없이 바로 로그인할 수 있도록 사용자 인증
OpenID : 특정 서비스에 로그인하기 위해 별도 회원가입 없이 바로 로그인할 수 있도록 사용자 인증(추후 확인 필요)
Outbound passwords : Master 계정의 암호 변경 및 만료일자를 설정할 수 있습니다.
SAML : 인증 및 인가 데이터 교환하는 XML(추후 확인 필요)
User management : 실제 사용자 또는 응용 프로그램이 통합 서버에 연결할 수 있도록 User 오브젝트를 정의합니다.
사용자, 방문자 등 하나 또는 여러 그룹으로 정의됩니다.
개발자 그룹은 사용자가 서비스 및 패키지를 작성, 수정 및 빌드 할 수 있게합니다.
관리자 그룹은 사용자가 IS 플랫폼을 관리 할 수있게합니다.
- 인증(Authentication) : 사용자가 누구인지 확인요하는 절차
- 인가(Authorization) : 사용자에게 사용 권한 허락하는 절차
10. Settings :
Caching : 캐시는 자주 사용되는 데이터를 메모리에 유지 관리함으로써 서비스 성능에 영향을 줍니다.
메모리 관련 솔루션(Terracotta) 사용 시, IntegrationServer 를 구동하기 위한 캐시 정보를 공유하게 됩니다.
Clustering : 2대 이상의 서버가 상호간의 메모리를 공유하며 1개의 서버와 같이 작동하게 됩니다.
webMethods의 경우 Terracotta라는 솔루션을 통하여 해당 기능을 구현 합니다.
Enhanced XML parsing : (추후 확인 필요)
Global variables : 전역 변수를 설정하여, Designer 상에서 사용할 수 있도록 합니다.
Hot deployment : Thread가 없을때 Deployer가 되도록 하는 설정입니다. 하지만, 이관의 경우 보통 정책과 이관해야 되는 시간이
정해져 있어 많 이 사용하는 기능은 아닙니다.
(해당 기능을 사용하기 위해서는 Schedule을 중단해야된다고하는데, 이 부분은 확인 필요합니다.)
JDBC pools : 외부 RDBMS의 데이터베이스 Integration 구성 요소에 연결합니다.
Pool은 메모리에 공간을 미리 할당 받아 프로그램 성능 저하 방지와 동시 발생적인 요청을 처리하기 위하여 사용합니다.
Pool Alias Definitions 이후 Functional Alias Definitions 에 연관된 Pool 정보를 할당하면 됩니다.
ISInternal : IntegrationServer 구동을 위한 내부 정보에 대한 항목입니다.(필수)
ISCoreAudit : IntegrationServer 에 대한 Audit로그를 남길때 사용합니다. ( 옵션 )
ISDashboardStats : IntegrationServer 구동 시 Dashboard에 대한 설정이 추가되었습니다.
Xref : IntegrationServer 구동을 위한 참조 정보에 대한 항목입니다. (필수)
DocumentHistory : Guaranteed Delivery 관련 항목이라고 합니다. (참고)
Resources : IntegrationServer가 작동되기 위한 전반적인 리소스를 관리하게 됩니다.
Thread는 프로그램 내에서 프로세스를 실행하는 단위입니다.
Server Thread Pool > Maximum Threads 는 메모리에 영향을 받으며, IntegrationServer가 사용할 수 있는 최대한도입니다.
Server Thread Pool > Available Threads 권장사항은 확실치 않으나
System Thread + Service Thread 가 Maximum의 80%정도 유지하면 될 것 같습니다.
Server Thread Pool > Scheduler Thread Throttle :
Maximum Threads 에서 스케줄러가 사용할 수 있는 Thread를 제어합니다.
Session 은 클라이언트가 서버에 전송할 데이터의 통로를 의미합니다..
Statueful 의 경우, 세션이 종료될때까지 클라이언트의 세션 정보를 유지하며 데이터 전송이 끝나면 종료됩니다.
URL aliases : URL 별칭을 사용하면 전체 URL을 사용하는 것보다 짧게 변경할 수 있습니다.
별칭 설정 시, 공백이 포함되거나 http:// 로 시작되지 않도록 해야 합니다.
Web services : 별칭을 통하여 Provider, Consumer의 IP , PORT를 변경 관리 할 수 있습니다.
Extended : "시스템"매개 변수를 변경할 수 있습니다
Show/Hide Keys :처음에는 목록이 비어 있습니다. 일부 매개 변수를 선택 후 저장하면 표기되며 변수를 변경할 수 있습니다.
Dashboard가 추가되면서 필요한 매개변수를 조회 후 Value를 수정하는 방식으로 변경되었습니다.
{IntegrationServer Directory}\instances\default\config\server.cnf
참고사항
IntegrationServer 는 8 버전에서는 Instance가 따로 존재하지 않았습니다.
버전이 9로 변경되면서 Tanuki(https://wrapper.tanukisoftware.com/) 라는 솔루션을 안에서 IntegrationServer가 구동되도록 변경되었으며
여러개의 인스턴스 서버를 구동할 수 있게 되었습니다.
{IntegrationServer Directory}\profiles\IS_default\configuration\wrapper.conf
wrapper.java.initmemory=256 [ IntegrationServer 를 구동할때 메모리를 얼마나 할당할지에 대한 설정입니다. ]
wrapper.java.maxmemory=1024 [ IntegrationServer 를 구동할때 메모리를 얼마나 할당할지에 대한 설정입니다. ]
추가로 필요한것이 있다면 custom_wrapper.conf 안에 선언하면 됩니다.
Multi Instance 생성 방법
cmd 창에서 아래와 같이 실행하면 Ant 빌드가 실행되면서 testIS1이라는 추가 Instance를 만들 예정입니다.
명령어 : {IS Directory}\instances\is_instance.bat create -Dinstance.name=testIS1 -Dprimary.port=5550 -Ddiagnostic.port=9990 -Djmx.port=8077 -Dlicense.file=C:\license.xml
멀티인스턴스는 하나의 JVM을 가지고 구동을 하고 별개로 설치할 경우, 별도의 JVM을 씁니다.
멀티인스턴스를안쓰는 이유? 치명적인 약점이 있습니다. updateManager에서 Fix 할때, 전체 instance가 모두 적용되며 개별 Fix가 되지 않습니다.
Multiple Integration Server Instances
1. {Integration Server_directory}\instances 해당 경로로 이동
2. 아래와 같이 IS 에 대한 정보를 기재한다.
is_instance.bat/sh create
-Dinstance.name=instance_name {중복 불가 필수 값}
-Dprimary.port=primary_port_number
-Dinstance.ip=default_bind_address
-Ddiagnostic.port=diagnostic_port_number
-Djmx.port=jmx_port_number
-Dlicense.file=license_file_location
-Dinstall.service=install_service
-Ddb.alias=database_alias_name
-Ddb.type=database_type
-Ddb.username=database_username
-Ddb.password=database_password
-Ddb.url=database_URL
-Dpackage.list=package_list
3. Instance 삭제 방법
is_instance.bat delete -Dinstance.name=instance_name
'Solution > webMethods' 카테고리의 다른 글
webMethods 10.5 설치 for Linux (1) | 2019.09.23 |
---|---|
webMethods for Designer (0) | 2019.05.24 |
webMethods 10.3 설치 for Windows (0) | 2019.05.24 |