[소프트웨어공학] 미들웨어(Middleware)
미들웨어(Middleware)
운영체제와 사용자 응용 프로그램 사이에 또는 다른 종류의 사용자 응용프로그램 사이에서 조정 및 중개 역할을 하는 프로그램
특징
- 두 개 이상의 응용 프로그램 간 데이터를 공유시킨다
- 표준화된 인터페이스 제공 가능
- 서버와 클라이언트 사이에서 작업량의 감소, 부하 분산, 트랜잭션 처리, 보안 등 역할을 담당
- 분산된 업무를 동시에 처리 가능하여 자료의 일관성 유지
종류
RPC(Remote Procedure Call) : 원격 프로시져 호출
원격 프로시져를 마치 로컬 프로시져처럼 호출하는 방식의 미들웨어
한 프로그램이 네트워크 상의 다른 컴퓨터에 위치하고 있는 프로그램에 서비스를 요청하는데 사용되는 프로토콜로서, 이때 서비스를 요청하는 프로그램은 네트워크에 대한 상세 내용을 알 필요가 없다
제품 종류 : Entera(이큐브시스템), ONC/RPC(OSF)
MOM(Message Oriented Middleware) : 메시지 지향 미들웨어
주로 비동기형 메시지 처리를 전달하는 미들웨어.
이 기종 분산 데이터 시스템의 데이터 동기를 위해 주로 사용
제품 종류 : MQ(IBM), Message Q(Oracle), JMS(JCP)
TP-모니터
온라인 트랜잭션 업무에서 트랜잭션을 처리, 감시하는 미들웨어.
사용자 수가 증가하여도 빠른 응답속도를 유지해야 하는 OLTP성의 업무에 적합
제품 종류 : Tuxedo(Oracle), Tmax(Tmax Soft)
- OLTP(Online Transaction Processing)
네트워크 상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 조회하는 등의 단위 작업을 처리하는 방식 - OLAP(Online Analytical Processing)
사용자가 다양한 각도에서 직접 대화식으로 정보를 분석하는 과정.
데이터웨어하우스 등의 시스템과 연관되어 자료를 분석하고 의미있는 정보로 치환하거나, 복잡한 모델링을 가능하게끔 하는 분석 방법
CORBA(Common Object Request Broker Architecture)
네트워크에서 분산 프로그램 객체를 생성, 배포, 관리하기 위한 규격으로 네트워크 상의 서로 다른 장소에 있는 프로그램들이 “인터페이스 브로커”를 통해 통신이 가능하도록 해준다
-
OMG(Object Management Group)
여러 대의 컴퓨터를 연결하여 사용하는 환경하에서 응용 프로그램 간에 기술적인 문제를 지원하고 표준을 위해 설립된 비영리 단체.
분산 네트워크 시스템에서 하드웨어나 운영체제에 영향을 받지 않고 응용 프로그램을 통합할 수 있는 공통된 작업 환경을 제공한다 -
OMA(Object Management Architecture)
OMG의 활동 방향과 목적에 부합되는 모델로서 ORB, 객체 서비스, 공통 기능, 응용 인터페이스, 도메인 인터페이스 등으로 구성 -
ORB(Object Request Broker)
객체지향 시스템에서 객체 및 서비스를 요청하고 전송할 수 있도록 지원하는 미들웨어로 CORBA 표준 스펙을 구현한 미들웨어
제품 종류 : Orbix(Micro Focus), CORBA(OMG)
COM(Component Object Model)
MS사가 개발한 객체 응용 프로그램 간의 통신 방식으로 응용 프로그램의 컴포넌트 객체들을 개발하고 지원하기 위한 미들웨어.
모든 기능을 여러 개의 단위 프로그램으로 분할함으로써 코드의 재사용성을 극대화하고 효율적인 유지보수를 보장한다. 단위 소프트웨어, 컴포넌트들을 재사용하기 위해서는 표준화된 방법이 필요했는데 단위 소프트웨어,컴포넌트들이 서로 통신할 수 있게 마이크로소프트가 표준화를 규정하였다.
객체를 재사용하는 개념이 없기 때문에 객체지향의 이점은 누릴 수 없지만 다양한 응용 프로그램을 관리하는 면에서는 CORBA보다 우월
-
IPC(Inter Process Communication)
두 프로세스가 상호 통신하며 정보를 교환하는 방법멀티태스킹 환경에서는 여러가지 프로그램들이 동시에 실행된다. 각 프로세스들은 메모리와 CPU를 공유하고 있을 뿐, 독립된 일을 하며 상호 간섭하지 않고 간섭할 수도 없다. 하지만 필요에 따라 프로세스간의 정보를 교환해야 하는 경우가 생기는데 이 때 사용한다.
DCOM(Distributed Component Object Model)
인터넷이나 LAN환경에서 서로 다른 컴퓨터끼리의 통신을 지원하는 분산확장형 COM
사용자 응용 프로그램 객체는 파일 이름 대신에 URL을 사용하여 서버 객체를 사용할 수 있으므로 인터넷에서 분산 처리를 실현할 수 있다
COM+(Component Object Model+)
분산형 트랜잭션을 동시 처리할 목적으로 출현
COM/DCOM과 약간 다른 개념으로 MTS라고 불리는 일종에 서비스.
쉽게 말하자면 COM을 네트워크에서 사용가능하도록 해주는 서비스
WAS(Web Application Server) : 웹 애플리케이션 서버
정적인 콘텐츠를 처리하는 웹 서버와 달리 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
종류 : 아파치 톰캣(Apache Tomcat), JBoss, Jetty, WebLogic, JRun, Jeus, WebSphere
ESB(Enterprise Service Bus) : 엔터프라이즈 서비스 버스
메시지 기반으로 느슨한 결합형태의 표준 인터페이스 통신을 통해 전사 시스템 환경을 연동하는 미들웨어
- SOA에서 사용되는 개념
-
EAI와 유사하게 사용된다. 기관 간, 서비스 간 연계가 이루어진다.
-
SOA(서비스 지향 아키텍쳐 : Service Oritented Architecture)
대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워크 상에 연동하여 시스템 전체를 구축해 나가는 방법론 - EAI(기업 응용 프로그램 통합 : Enterprise Application Integration)
DW, ERP, CRM, SCM, B2B 등 기업에서 운영하는 서로 다른 어플리케이션 및 시스템을 통합시키는 것을 의미.
업무의 효율성, 확장성 향상, 유지보수 및 비용 절감, 편의성 증대시키는 솔루션
댓글남기기