1. 미들웨어
말 그대로, "중간 단계에 위치하여 서비스를 해 주는 소프트웨어적으로 운영되는 프로세스"를 말합니다. 이러한 소프트웨어가 출현한 배경으로는 우선 기존 Client/Server 2 Tier 환경에 있어서 업무처리 로직이 Client에 위치하게 되어 Fat Client를 초래함으로써 버젼관리가 어렵고, Client 프로그램이 많아지게 되면 Server에 추가되는 부하도 동일하게 증가되어 대용량 환경하에서의 컴퓨팅에 적당하지 않게 되었습니다. 이에, 비즈니스 로직을 Client에서 떼어내고, Client의 수가 증가하더라도 Server에 미치는 영향을 최소화하고자 하는 측면에서 중간에 Middleware라는 소프트웨어를 활용하게 되었습니다.

 

현재 사용하는 EAI, WAS(Web Application Server) Web 환경하에서 운영되는 대표적인 미들웨어라고 볼 수 있습니다.

 

 

2. EAI(Enterprise Application Integration)
기업이 업무를 처리하는 데 있어서는 인사 시스템, 회계 시스템, 마케팅 시스템, 재무 시스템 등 많은 시스템들이 존재하게 되는 데, 시간이 지남에 따라서 이러한 시스템들간에 데이터 연동이 필요로 하게 되었습니다. 이러한 연동을 위해서 각 시스템들간의 1:1 직접적인 연동 프로그램을 개발하여 문제를 해결하였습니다만, 이 같은 해결 방식은 연동 대상 시스템이 많을 경우, 개발할 연동 프로그램의 수가 많아질 뿐 아니라, 연동에 대한 내용이 변경이 될 때에 관련되는 모든 프로그램을 고쳐야 해서 관리 측면에서 많은 문제를 야기 했습니다.

 

이러한 문제를 해결하기 위해서, 연동 되는 시스템들의 중간에 일종의 Middleware로서 EAI를 두고 EAI에서 각 시스템들간의 연동과 다른 시스템으로의 데이터 송수신을 책임지게 하는 아키텍쳐를 고안하게 되었습니다. 이렇게 되면, 연동해야 시스템들은 EAI에게만 데이터를 전송하면 EAI가 다른 시스템으로 필요한 데이터를 필요한 포맷에 맞게 전달해 주게 되므로 인해 기존의 1:1적인 연동으로 인해 일어나는 관리상의 문제들을 제거할 수 있습니다.

 

3. SOA(Service Oriented Architecture)
IT 자원을 서비스화하여 재사용함으로써 비즈니스의 요구에 빨리 대응할 수 있게하는 IT Architecture의 한 형태를 말합니다. IT 자원을 재사용한다는 측면에서 컴포넌트를 사용하는 개발방법과 유사하다고 할 수 있지만, 요즘 얘기되는 SOA는 플랫폼에 관계 없는 표준 기반의 기술을 사용한다는 측면에서 조금 차이가 있다고 볼 수 있습니다.

SOA가 되기 위해서는 사용할 수 있는 서비스를 설명(Description)하고, 이러한 서비스를 찾을 수(Search) 있는 인프라가 제공이 되어야 하는 데, 그러한 인프라를 요즘 얘기하는 ESB(Enterprise Service Bus)라고 합니다. ESB는 일종의 Middleware로서 기존 시스템의 연동 기능을 제공하는 EAI와 유사한 기능을 제공하고 있습니다만, EAI가 제공하는 업체가 사용하는 벤더 종속적인 기술을 사용하는 반면, ESB는 표준 기반(예를들면 웹서비스)의 기술을 사용한다는 측면에서 EAI와 가장 큰 차이가 있다고 볼 수 있습니다.

 

결론은, EAI (SOA) ESB는 미들웨어라고 볼 수 있고 동일한 목적, 즉 시스템의 연동이라는 목적을 수행하는 솔루션이라고 볼 수 있지만, 그 방법에 있어서는 표준 기술을 사용하느냐 하지 않느냐의 차이가 있습니다. 표준 기술을 사용하는 것의 잇점은 서로 다른 벤더 제품의 ESB를 사용하고 있는 기업이라도 ESB의 연동을 통해 다른 기업의 IT 자원을 재사용할 수 있어 기업간 프로세스 통합에 큰 도움이 된다는 것입니다.

'Study > Note' 카테고리의 다른 글

임베디드 관련 키워드  (0) 2012.12.06
USN (Ubiquitous Sensor Network)  (0) 2008.07.31
모바일 개념 및 용어정리  (0) 2008.07.29
객체지향언어 개념 및 용어정리  (0) 2008.07.29
C 개념 및 용어정리  (0) 2008.07.29
OS 개념 및 용어정리  (0) 2008.07.29
임베디드 분야 개념 및 용어정리  (0) 2008.07.29
JAVA 개념 및 용어정리  (0) 2008.07.29
개념용어 정리  (0) 2007.10.08
플리플롭이란?  (0) 2007.08.01

+ Recent posts