1. 미들웨어의 등장 배경
기업 및 기관들의 기술은 지속적으로 발전한다. 따라서, 이러한 기업 및 기관들의 기술에 사용되는 소프트웨어 시스템은 변화를 수용가능하도록 설계되어야 한다. 구체적으로, 기업을 합병하거나, 서비스를 추가하거나, 사용 가능한 서비스를 확장할 때마다 시스템을 다시 구축하는 것은 매우 비효율적이고 불가능에 가깝기 때문에 기존의 시스템을 가능한 효과적으로 확장하여 새로운 구성 요소를 통합하는 것이 가장 좋은 방법이라 할 수 있다.
2. Middleware
- 서로 다른 종류의 구성 요소를 통합하는 가장 쉬운 방법은 구성 요소 간의 통신을 가능하게 하는 계층을 제공하는 것인데 이 때, 이 계층을 미들웨어라고 한다.
- 간단히 말해, 미들웨어는 기존의 시스템과 새로운 응용 프로그램을 연결하기 위한 소프트웨어라고 할 수 있다. (Software Glue)
- 소프트웨어는 유연성과 확장 및 축소성이 높을수록 개발하기에 좋다.
- 미들웨어는 독립적으로 개발되어 서로 다른 네트워크 플랫폼에서 실행되는 소프트웨어 구성 요소 간의 통신을 가능하게 하는 역할을 한다.
- 다시 말해, 양 쪽을 연결하여 데이터를 주고받을 수 있도록 중간에서 매개 역할을 수행한다.
- 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어
(1) 미들웨어가 가져다 주는 기대효과
- 서로 다른 네트워크 노드에 분산된 응용 프로그램은 다른 응용 프로그램을 호스트하는 운영 환경의 세부 정보나 다른 응용 프로그램에 연결해주는 서비스를 고려할 필요없이 응용 프로그램 인터페이스를 사용하여 통신할 수 있다.
- 관리 인터페이스를 제공하여 상호 연결된 새 응용 프로그램 시스템의 안정성과 보안을 실현할 수 있다.
- 시스템의 성능을 측정, 조정하고 기능적인 손실없이 확장할 수 있다.
(2) 장점
- 표준화된 인터페이스를 제공할 수 있다.
- 다양한 환경을 지원하고, 체계가 다른 업무와 서로 연동할 수 있다.
- 분산된 업무를 동시에 처리함으로써, 자료(데이터)의 일관성을 유지할 수 있다.
- 부하 분산 가능
(3) 종류
- RPC (Remote Procedure Call) 기반 : 한 응용 프로그램의 프로시저를 사용하여 원격 응용 프로그램의 프로시저를 로컬 프로시저를 호출하는 것처럼 호출할 수 있게 해주는 것
- 미들웨어로서 원격 프로시저를 찾아서 호출자가 알기 쉽게 사용할 수 있도록 해주는 연결 메커니즘을 구현한다.
- 일반적으로 이전에는 프로시저 기반 프로그램만을 처리했지만, 현재는 객체 기반 구성 요소도 포함한다.
- ORB (Object Request Broker) 기반 : 응용 프로그램의 객체를 배포하여 이종의 네트워크 간에 공유할 수 있도록 해준다.
- MOM (Message Oriented Middleware) 기반 : 분산 응용 프로그램 간에 메시지를 주고받으면서 데이터를 전달하고 교환할 수 있도록 해준다.
- 비동기식 메시지 교환을 통해 통신을 가능하게 한다.
이러한 모든 모델에서 한 소프트웨어 구성 요소가 네트워크를 통해 다른 구성 요소의 동작에 영향을 줄 수 있다. RPC, ORB 기반 미들웨어에서는 시스템의 구성 요소를 밀접하게 연결하는 반면, MOM 기반 시스템에서는 다른 두 미들웨어보다 구성 요소를 더 느슨하게 연결할 수 있다. RPC, ORB 기반 미들웨어에서는 한 프로시저에서 다른 프로시저를 호출할 때, 호출된 프로시저가 반환될 때까지 대기하였다가 다른 작업을 수행할 수 있다.