테마
웹 서비스와 미들웨어·EAI
회사 안에는 회계, 인사, 주문처럼 따로 만든 시스템이 많고, 이들이 데이터를 주고받아야 업무가 이어진다. 이 연결을 맡는 기술이 웹 서비스(web service), 미들웨어(middleware), EAI(Enterprise Application Integration, 기업 애플리케이션 통합)다. 실기 시험은 SOAP(Simple Object Access Protocol)·WSDL(Web Services Description Language, 웹 서비스 기술 언어)·UDDI(Universal Description, Discovery and Integration)의 역할, 미들웨어 종류, EAI 구축 유형의 이름을 설명으로 맞히게 한다.
연계 시스템의 구성
연계 시스템은 세 부분으로 나눈다. 송신 시스템은 인터페이스 테이블(시스템 사이에 데이터를 주고받으려고 두는 중간 저장용 테이블)이나 파일의 데이터를 전송 형식으로 바꿔 보내고, 수신 시스템은 받은 데이터를 인터페이스 테이블이나 파일로 만든다. 연계 서버는 그 사이의 변환과 송수신을 맡는다.
웹 서비스: SOAP·WSDL·UDDI
웹 서비스는 네트워크 너머의 기능을 웹 표준으로 호출하게 해 주는 방식이다. 세 표준이 역할을 나눈다.
| 표준 | 역할 |
|---|---|
| SOAP | XML 메시지를 주고받는 통신 규약 |
| WSDL | 서비스의 기능·호출 방법을 XML로 기술 |
| UDDI | 서비스 정보를 등록하고 검색하는 저장소 |
SOAP(Simple Object Access Protocol)은 분산 환경에서 XML로 구조화된 메시지를 교환하는 가벼운 프로토콜이다. 메시지는 Envelope(봉투)가 전체를 감싸고, 그 안에 선택 항목인 Header와 필수 항목인 Body가 있으며, 오류는 Body 안의 Fault로 알린다. 주로 HTTP 위에서 동작하므로 방화벽이 일반 웹 트래픽처럼 통과시키기 쉽다. SOAP 1.2 명세는 SOAP을 더 이상 약어로 보지 않지만 시험에서는 Simple Object Access Protocol로 쓴다. 구조가 무거워 요즘은 REST(Representational State Transfer, 대표 상태 전송) 방식이 많이 대신한다.
WSDL(Web Services Description Language, 웹 서비스 기술 언어)은 서비스가 어떤 연산을 제공하고 어떤 메시지로 어디에 요청하는지를 XML로 적은 문서다. 클라이언트는 이 문서를 보고 어떤 연산을 어떤 메시지 형식으로 부를지 정한다. UDDI(Universal Description, Discovery and Integration)는 WSDL 같은 서비스 정보를 등록하고 찾는 레지스트리다. 서비스 제공자가 UDDI에 등록하고, 사용자가 UDDI에서 WSDL을 찾아 SOAP으로 호출하는 흐름으로 외운다.
미들웨어의 종류
미들웨어는 운영체제가 기본으로 주는 것 이상의 공통 기능을 응용 프로그램에 제공하는 소프트웨어다. 표준화된 인터페이스를 주므로 만든 곳이 다른 시스템끼리도 같은 방식으로 데이터를 주고받는다.
| 종류 | 특징 |
|---|---|
| DB | 클라이언트를 원격 데이터베이스에 연결, 2-Tier |
| RPC | 원격 프로시저를 로컬처럼 호출 |
| MOM | 메시지 기반 비동기 전달 |
| TP-Monitor | 온라인 트랜잭션을 처리·감시 |
| ORB | CORBA 표준을 구현한 객체 지향 미들웨어 |
| WAS | 동적 웹 콘텐츠 처리, 웹 환경 구현 |
RPC(Remote Procedure Call, 원격 프로시저 호출)는 다른 컴퓨터의 함수를 내 프로그램 함수처럼 부르게 한다. MOM(Message Oriented Middleware, 메시지 지향 미들웨어)은 메시지를 큐에 넣어 두고 받는 쪽이 나중에 꺼내는 비동기 방식이다. 보내는 쪽이 답을 기다리지 않으므로, 곧바로 결과가 필요한 업무보다 서로 다른 시스템의 데이터를 시간차를 두고 맞추는 일에 알맞다. TP-Monitor(Transaction Processing Monitor, 트랜잭션 처리 모니터)는 은행 거래나 좌석 예약처럼 짧은 트랜잭션이 한꺼번에 몰리는 온라인 업무에서 트랜잭션을 나눠 처리하고 감시해 응답 속도를 지킨다. ORB(Object Request Broker, 객체 요청 브로커)는 OMG(Object Management Group, 객체 관리 그룹)의 CORBA(Common Object Request Broker Architecture) 명세를 구현해 흩어진 객체 사이의 요청을 중개하며, 요즘 제품은 TP-Monitor의 트랜잭션 처리·감시 기능을 더하기도 한다. WAS(Web Application Server, 웹 애플리케이션 서버)는 요청마다 달라지는 동적 콘텐츠를 만드는 웹 환경용 미들웨어로, HTTP 세션 처리에 더해 Java의 EJB(Enterprise JavaBeans, 엔터프라이즈 자바빈즈) 같은 컴포넌트로 기업 핵심 업무까지 돌린다.
시험 포인트
- "XML 기반 메시지 교환 통신 규약, HTTP 위에서 동작" → SOAP. "서비스 기능을 기술하는 XML 언어" → WSDL. "서비스 등록·검색 저장소" → UDDI.
- 메시지 기반 비동기 → MOM. 원격 함수를 로컬처럼 → RPC. 트랜잭션 처리·감시 → TP-Monitor. CORBA → ORB. 동적 웹 콘텐츠 → WAS.
- EAI 구축 유형은 다음 문서에서 다룬다.
