"EAI"의 두 판 사이의 차이
11번째 줄: | 11번째 줄: | ||
== 목적 == | == 목적 == | ||
− | EAI는 다음의 목적들로 사용될 수 있다. | + | '''EAI는 다음의 목적들로 사용될 수 있다.''' |
*정보의 통합 : EAI는 일관성 있는 여러 시스템들의 정보를 보증하며, [[기업 정보 통합]](EII)를 의미 한다. | *정보의 통합 : EAI는 일관성 있는 여러 시스템들의 정보를 보증하며, [[기업 정보 통합]](EII)를 의미 한다. | ||
*프로세스 통합 : 응용프로그램간 비지니스 프로세스를 연결한다. | *프로세스 통합 : 응용프로그램간 비지니스 프로세스를 연결한다. | ||
38번째 줄: | 38번째 줄: | ||
==EAI 전송방식== | ==EAI 전송방식== | ||
− | *[[Hub&Spoke]]:단일 접점으로 주변의 여러 애플리케이션과의 연계 업무를 담당하는 일종의 중앙집중 방식으로 모든 데이터가 허브 시스템에 저장됐다가 전달 되는 구조이다.이 방식은 관리가 쉽고 유지보수가 용이하다는 장점이 있으나 데이터가 한곳에 집중됨으로써 병목현상과 실시간 처리가 어려운게 단점이다. | + | *'''[[Hub&Spoke]]:'''단일 접점으로 주변의 여러 애플리케이션과의 연계 업무를 담당하는 일종의 중앙집중 방식으로 모든 데이터가 허브 시스템에 저장됐다가 전달 되는 구조이다.이 방식은 관리가 쉽고 유지보수가 용이하다는 장점이 있으나 데이터가 한곳에 집중됨으로써 병목현상과 실시간 처리가 어려운게 단점이다. |
− | *[[Message Bus]]:전송로인 버스를 통해 데이터가 통합 서버 또는 애플리케이션으로 전달되도록 하는 방식으로 버스에서 특정 데이터를 지정한 목표지점에 안전하고 효율적으로 보내는 역활을 함으로써 애플리케이션간 통합을 이루어낸다. 확장성이 뛰어나고 대용량 데이터처리가 용이하다는 장점이 있으나 관리가 용이 하지 않고 불필요한 호출에 모든 시스템이 응대를 해야 하므로 네크워크 부담이 커질 수 있다. | + | *'''[[Message Bus]]:'''전송로인 버스를 통해 데이터가 통합 서버 또는 애플리케이션으로 전달되도록 하는 방식으로 버스에서 특정 데이터를 지정한 목표지점에 안전하고 효율적으로 보내는 역활을 함으로써 애플리케이션간 통합을 이루어낸다. 확장성이 뛰어나고 대용량 데이터처리가 용이하다는 장점이 있으나 관리가 용이 하지 않고 불필요한 호출에 모든 시스템이 응대를 해야 하므로 네크워크 부담이 커질 수 있다. |
− | *[[Hybrid]]:이 방식은Hub&Spoke방식과 [[Message Bus]]방식의 장점을 통합한 방식으로, 필요할 경우 어느 한 방향으로 EAI 시스템을 구축할 수 있다. 유연하게 통합할 수 있다는 장점이 있으나 아직 성능이나 관리에 있어서 검증되지 않았다는 지적이 있다. | + | *'''[[Hybrid]]:'''이 방식은Hub&Spoke방식과 [[Message Bus]]방식의 장점을 통합한 방식으로, 필요할 경우 어느 한 방향으로 EAI 시스템을 구축할 수 있다. 유연하게 통합할 수 있다는 장점이 있으나 아직 성능이나 관리에 있어서 검증되지 않았다는 지적이 있다. |
− | *[[peer To peer]]:Hub,Bus와 같은 미들웨어를 두지 않고 포인트 투 포인트 방식으로 각각의 애플리케이션을 연결하는 방식이다. 기존 방식보다 저렴한 비용으로 통합 작업을 수행할 수 있다는 장점을 갖고 있으나 데이터를 변환하면서 일괄성과 무결성을 유지하는 여타의 EAI 솔루션과 달리 단순히 애플리케이션 인터페이스만 해결 할 뿐이다. 따라서'통합'관점이 아닌 '연계' 관점으로 보는 시각이 있다. | + | *'''[[peer To peer]]:'''Hub,Bus와 같은 미들웨어를 두지 않고 포인트 투 포인트 방식으로 각각의 애플리케이션을 연결하는 방식이다. 기존 방식보다 저렴한 비용으로 통합 작업을 수행할 수 있다는 장점을 갖고 있으나 데이터를 변환하면서 일괄성과 무결성을 유지하는 여타의 EAI 솔루션과 달리 단순히 애플리케이션 인터페이스만 해결 할 뿐이다. 따라서'통합'관점이 아닌 '연계' 관점으로 보는 시각이 있다. |
<ref name="구름바람"></ref> | <ref name="구름바람"></ref> | ||
==통합패턴== | ==통합패턴== | ||
===통합형태=== | ===통합형태=== | ||
− | EAI 시스템을 구현하기 위한 유형으로는 중개와 연합의 두가지가 있다.두 가지 유형운 때로는 동시에 일어나기도 하며, 같은 EAI시스템은 다중 중계 시스템으로 유지될 수 있고, 게다가 외부 사용자의 요청에 대해 연합으로 서비스를 제공할 수 있다.구체적으로는 다음과 같다. | + | '''EAI 시스템을 구현하기 위한 유형으로는 중개와 연합의 두가지가 있다.두 가지 유형운 때로는 동시에 일어나기도 하며, 같은 EAI시스템은 다중 중계 시스템으로 유지될 수 있고, 게다가 외부 사용자의 요청에 대해 연합으로 서비스를 제공할 수 있다.구체적으로는 다음과 같다.''' |
*중개의 경우,EAI 시스템은 여러 응용프로그램 사이에서 중개자 또는 브로커의 역활을 수행한다. 응용 프로그램에서 어떠한 상황이 발생하게 되면, EAI시스템의 통합 모듈에게 통보하게끔 설계되어있다. 해당 모듈은 다른 관련된 응용 프로그램들에게 전파하게끔 되어있다. | *중개의 경우,EAI 시스템은 여러 응용프로그램 사이에서 중개자 또는 브로커의 역활을 수행한다. 응용 프로그램에서 어떠한 상황이 발생하게 되면, EAI시스템의 통합 모듈에게 통보하게끔 설계되어있다. 해당 모듈은 다른 관련된 응용 프로그램들에게 전파하게끔 되어있다. | ||
53번째 줄: | 53번째 줄: | ||
==EAI의 도입 단계== | ==EAI의 도입 단계== | ||
− | *계획(Strategy):고객의 현행 비즈니스 전략과 IT 전략에 따라 비즈니스 프로세스를 파악하는 단계로서 EAI 적용 초기 전략을 수립하는 단계. | + | *'''계획(Strategy):'''고객의 현행 비즈니스 전략과 IT 전략에 따라 비즈니스 프로세스를 파악하는 단계로서 EAI 적용 초기 전략을 수립하는 단계. |
− | *판단(Assessment):파악된 고객의 전략을 분석해 하이 레벨 EAI 애플리케이션 아키텍처를 수립하고, 인프라스트럭처 차이의 분석을 통한 EAI 솔루션을 수립 단계. | + | *'''판단(Assessment):'''파악된 고객의 전략을 분석해 하이 레벨 EAI 애플리케이션 아키텍처를 수립하고, 인프라스트럭처 차이의 분석을 통한 EAI 솔루션을 수립 단계. |
− | *구성(Architecture):EAI 기능적 요건 및 인터페이스 요건을 도출하고, 시스템 성능 및 관리 등에 필요한 요건을 정립하여 EAI 아키텍처를 수립하는 단계. | + | *'''구성(Architecture):'''EAI 기능적 요건 및 인터페이스 요건을 도출하고, 시스템 성능 및 관리 등에 필요한 요건을 정립하여 EAI 아키텍처를 수립하는 단계. |
− | *선택(Selection):수립된 EAI 아키텍처에 맞는 최적의 EAI 제품을 선정하는 단계로서, 어탭터, 브로커링, 프로세스 관리 및 시스템 관리를 위한 구현 틀의 선정 단계. | + | *'''선택(Selection):'''수립된 EAI 아키텍처에 맞는 최적의 EAI 제품을 선정하는 단계로서, 어탭터, 브로커링, 프로세스 관리 및 시스템 관리를 위한 구현 틀의 선정 단계. |
− | *도안(Design & Prototyping):선정된 제품의 구현을 위해 상세 설계 및 초기 프로토타입을 개발하는 단계. | + | *'''도안(Design & Prototyping):'''선정된 제품의 구현을 위해 상세 설계 및 초기 프로토타입을 개발하는 단계. |
− | *구축(Building):상세 설계 및 초기 프로토타입의 결과에 따라 각 구성 요소별로 제품의 구성 및 필요한 인터페이스 프로그램 작성. | + | *'''구축(Building):'''상세 설계 및 초기 프로토타입의 결과에 따라 각 구성 요소별로 제품의 구성 및 필요한 인터페이스 프로그램 작성. |
− | *보완(Depolyment):구현된 제품군의 고객 인도준비 및 유지보수 계획의 수립단계. | + | *'''보완(Depolyment):'''구현된 제품군의 고객 인도준비 및 유지보수 계획의 수립단계. |
− | *운영(Run):EAI 솔루션의 운영 및 유지관리 단계. | + | *'''운영(Run):'''EAI 솔루션의 운영 및 유지관리 단계. |
<ref name="구름바람"> 구름바람〈[https://blog.naver.com/hads/4986537전사적 응용 프로그램 통합시스템EAI]〉, 《늑대와 함께 춤을》2004-08-18 </ref> | <ref name="구름바람"> 구름바람〈[https://blog.naver.com/hads/4986537전사적 응용 프로그램 통합시스템EAI]〉, 《늑대와 함께 춤을》2004-08-18 </ref> | ||
==EAI 개발 프로세스== | ==EAI 개발 프로세스== | ||
===Analysis 단계=== | ===Analysis 단계=== | ||
− | 분석단계에서는 기업 내에서 EAI가 무엇을 할 것인가? 를 정의한다. | + | '''분석단계에서는 기업 내에서 EAI가 무엇을 할 것인가? 를 정의한다.''' |
#'''인터페이스 타입 정의:'''인터페이스 타입 정의란, 어떤 업무 시스템과 연동을 할 것인지, 그리고 해당 시스템의 기술적인 인터페이스 타입은 무엇인지 (Tuxedo,EJB,Socket,WebServioe,MQ etc)를 조사하고 서로 협의 한다. | #'''인터페이스 타입 정의:'''인터페이스 타입 정의란, 어떤 업무 시스템과 연동을 할 것인지, 그리고 해당 시스템의 기술적인 인터페이스 타입은 무엇인지 (Tuxedo,EJB,Socket,WebServioe,MQ etc)를 조사하고 서로 협의 한다. | ||
#'''메세지 패턴 정의:'''인터페이스를 할 시스템들이 정의되었스면 어떤 방식으로 인터페이스를 할지를 정의한다. 이를 MEP라고 한다. SYNC방식인지,1:N으로 분할 거래를 할 것인지, ASYNC 방식,디퍼드인지 각 업무별로 연계하는 방식에 대해 정의한다. | #'''메세지 패턴 정의:'''인터페이스를 할 시스템들이 정의되었스면 어떤 방식으로 인터페이스를 할지를 정의한다. 이를 MEP라고 한다. SYNC방식인지,1:N으로 분할 거래를 할 것인지, ASYNC 방식,디퍼드인지 각 업무별로 연계하는 방식에 대해 정의한다. | ||
73번째 줄: | 73번째 줄: | ||
===Design 단계=== | ===Design 단계=== | ||
− | EAI 시스템의 요구 사항이 나오면 다자인 단계에서는 실제 인터페이스별로 아키텍쳐를 디자인 수행한다. | + | '''EAI 시스템의 요구 사항이 나오면 다자인 단계에서는 실제 인터페이스별로 아키텍쳐를 디자인 수행한다.''' |
#'''프로토타입 제작:'''EAI는 시스템 특성상 기능적인 면 (시스템간 연계)보다 중요한 것이 비기능적인 요건이다. 시스템 간의 연계를 주요 목적으로 하다 보니, 거래 데이터의 전달 보장과 장애시 거래 유실을 방지하는 아키텍쳐가 필요하다. 이를 위해서 디자인 초기에 요건이 나온 인터페이스 연계 타입에 대해서 프로토타입 구현을 해서 정상적으로 작동하는지 다른 RISK 요인은 없는지 검증을 하고 현업과 연동을 해봄으로써 현업과 연계 시나리오에 대한 동일한 VIEW를 가지도록 한다. | #'''프로토타입 제작:'''EAI는 시스템 특성상 기능적인 면 (시스템간 연계)보다 중요한 것이 비기능적인 요건이다. 시스템 간의 연계를 주요 목적으로 하다 보니, 거래 데이터의 전달 보장과 장애시 거래 유실을 방지하는 아키텍쳐가 필요하다. 이를 위해서 디자인 초기에 요건이 나온 인터페이스 연계 타입에 대해서 프로토타입 구현을 해서 정상적으로 작동하는지 다른 RISK 요인은 없는지 검증을 하고 현업과 연동을 해봄으로써 현업과 연계 시나리오에 대한 동일한 VIEW를 가지도록 한다. | ||
81번째 줄: | 81번째 줄: | ||
===Implementation 단계=== | ===Implementation 단계=== | ||
− | 구현단계에서는 실제 스케쥴에 맞춰서 인터페이스를 연계하고, 이를 개발이나 STAGING 환경으로 이행하면서 연계에 있어서 오류가 있는 부분을 수정한다. | + | '''구현단계에서는 실제 스케쥴에 맞춰서 인터페이스를 연계하고, 이를 개발이나 STAGING 환경으로 이행하면서 연계에 있어서 오류가 있는 부분을 수정한다.''' |
#'''인터페이스 연계:''' 구현당계에서는 일정에 맞춰서 인터페이스를 연계한다. 이때 필히 테스트환경을 구축하여 인터페이스 구축시 마다 인터페이스에 대한 테스트를 수행해야한다. | #'''인터페이스 연계:''' 구현당계에서는 일정에 맞춰서 인터페이스를 연계한다. 이때 필히 테스트환경을 구축하여 인터페이스 구축시 마다 인터페이스에 대한 테스트를 수행해야한다. | ||
#'''단계적 이행:'''EAI 개발 시스템에서 개발된 인터페이스는 EAI의STAGING 시스템으로 개발된다. EAISTAGING 시스템에는 업무 시스템에 대한 개발 시스템이 연동되어 있는데, EAI 개발 시스템에 연동하지 않는 이유는 개발 시스템에서 잦은 RESTART와 디버깅 등이 개발팀에서 이루어지기 때문에 이에 대한 영향을 타 업무 개발팀에 끼치지 않도록 하기 위함이다.STAGING로 이행을 할 때는 정해진 인터페이스 개발 스케줄에 맞춰서 이행하여 업무 개발팀이 원활하게 업무 개발을 할 수 있도록 한다. | #'''단계적 이행:'''EAI 개발 시스템에서 개발된 인터페이스는 EAI의STAGING 시스템으로 개발된다. EAISTAGING 시스템에는 업무 시스템에 대한 개발 시스템이 연동되어 있는데, EAI 개발 시스템에 연동하지 않는 이유는 개발 시스템에서 잦은 RESTART와 디버깅 등이 개발팀에서 이루어지기 때문에 이에 대한 영향을 타 업무 개발팀에 끼치지 않도록 하기 위함이다.STAGING로 이행을 할 때는 정해진 인터페이스 개발 스케줄에 맞춰서 이행하여 업무 개발팀이 원활하게 업무 개발을 할 수 있도록 한다. | ||
#'''모니터링 및 수정:'''EAI 프로젝트에서 인터페이스를 연계해놓고 나면 문제가 예상하지 못했던 인터페이스 에러나, 요건 수정이 발생한다. STAGING 시스템에서 이를 모니터링 해서 에러를 수정하고 이에 대한 보강 아키텍쳐를 수립하여 반영하는 반복적인 절차가 필요하고, 인터페이스 요건 변경에 대한 반영 역시 필요하다. 소프트웨어 개발 프로젝트의 특성상 요건에 대한 변경을 발생할 수 있으나, 거래 인터페이스 타입의 변경(대상 시스템 타입이 바뀌거나,MEP자체가 변경되는)은 발생해서는 안 되며, 피치못하게 발생했을 경우 변경된 요건에 대한 아키텍쳐 영향도를 분석(프로토 타입핑을 통해서) 후에 결정을 해야 완성된 EAI 시스템의 안정성에도 문제가 없게 된다. | #'''모니터링 및 수정:'''EAI 프로젝트에서 인터페이스를 연계해놓고 나면 문제가 예상하지 못했던 인터페이스 에러나, 요건 수정이 발생한다. STAGING 시스템에서 이를 모니터링 해서 에러를 수정하고 이에 대한 보강 아키텍쳐를 수립하여 반영하는 반복적인 절차가 필요하고, 인터페이스 요건 변경에 대한 반영 역시 필요하다. 소프트웨어 개발 프로젝트의 특성상 요건에 대한 변경을 발생할 수 있으나, 거래 인터페이스 타입의 변경(대상 시스템 타입이 바뀌거나,MEP자체가 변경되는)은 발생해서는 안 되며, 피치못하게 발생했을 경우 변경된 요건에 대한 아키텍쳐 영향도를 분석(프로토 타입핑을 통해서) 후에 결정을 해야 완성된 EAI 시스템의 안정성에도 문제가 없게 된다. | ||
+ | <ref name="조대협"> 조대협〈[https://blog.naver.com/winipe/150163651172AI EAI(Enterprise Application Integration)추진전략]〉, 《조대협의 블로그.》, 2009-07-16</ref> | ||
+ | ==EAI 래퍼런스 아키텍쳐== | ||
+ | '''많은 EAI상용 EAI솔루션들이 있지만 이러한 솔루션들은 프레임위만 제공할뿐 실제 연계 아키텍쳐는 그 프레임윅을 기반으로 따로 설계해야하는 경우가 보편적이다. 여기서는 EAI시스템이 갖추어야 할 요건에 대해서 통상적인 아키텍쳐를 소개하고자한다.''' | ||
+ | |||
+ | ===인터페이스=== | ||
+ | '''인터페이스 모듈은 EAI의 가장 기본적인 아키텍쳐 모듈로 송수신 시스템을 통합 시키는 부분에 대한 아키텍쳐이다.''' | ||
+ | |||
+ | *'''Inbound:'''Inbound는 송신 시스템과 연동되어 요청을 받고 응답을 송신 시스템에 보내는 역활을 한다. Inbound는 크게 두가지의 모듈로 구성되어있다. | ||
+ | #'''Adapter:'''아답터는 다양한 플랫폼으로부터 메시지를 읽어드리는 Entry Point의 역활을 한다. 연동 시스템마다 각각의 아답터가 정의 되어야 한다. | ||
+ | #'''메시지 변환:'''Adapter에 의해서 요청된 전문은 각 연동 시스템의 플랫폼에 따라서 각각 다르다. FML이나XML, 또는TEXT형태의 전문, Binary 등 여러 가지 형태가 될 수 있으나, EAI내부에서 처리하기 위해서 이런 전문 형태를 공통적인 데이터 구조로 변환한다. 흔히 상용 솔루션에서는 메시지 처리의 유연성을 가지고 가기 위해서 XML을 사용하고, In-House 개발의 경우 성능의 체적 화를 위해서 HasHT able형태의 Java POJOObject 사용하기도 한다. | ||
+ | |||
+ | |||
+ | *'''Mediation:'''Mediation은 입력된 메시지를 가공하고 중계하는 EAI의 핵심적인 기능 부분이다. | ||
+ | #'''Routing:'''Routing은 입력된 메시지를 메시지의 내용에 따라서 적절한 수신 시스템으로 Routing 하는 역활을 수행한다. 이 과정은 1:1 Routing이 될 수도 있지만, N:1, 1:N 등 다양한 관계로 Routing을 수행할 수 있어야 한다. | ||
+ | #'''Mapping:'''입력된 전문을 수신 시스템에서 요구하는 형태로 맵핑하는 작업을 수행한다. 필드간의 맵핑이나 간단한 메시지에 대한 변환을 수행한다. | ||
+ | #'''MEP (Message Exchange pattern):''' 이 부분에서 MEP에 대한 처리도 수행한다. SYNC나 ASYNC, 디피드성 거래에 대해서 JMS와 같은 큐잉을 이용해서 MEP를 구현한다. | ||
+ | |||
+ | |||
+ | *'''Outbound:'''Inbound와 마찬가지로 처리가 끝난 메시지를 수신 시스쳄의 플랫폼의 Natlve메시지 형태로 변환하여 Adapter를 통해서 수신 시스템에 전달한다. | ||
+ | <ref name="조대협"></ref> | ||
==통합의 장점과 단점== | ==통합의 장점과 단점== | ||
− | 통합에 있어서는 다음과 같은 장점과 단점이 발생한다. | + | '''통합에 있어서는 다음과 같은 장점과 단점이 발생한다.''' |
===장점=== | ===장점=== | ||
102번째 줄: | 122번째 줄: | ||
==연결구조== | ==연결구조== | ||
− | 일반적으로, 기업용 응용프로그램 통합을 위해 가장 좋은 기반 구조, 컴포넌트 모델, 포준화 구조에 대한 다양한 의견들이 존재하고있다. 근래의 기업용 응용 프로그램의 통합구조를 위한 필수 컴포넌트는 다음과 같다. | + | '''일반적으로, 기업용 응용프로그램 통합을 위해 가장 좋은 기반 구조, 컴포넌트 모델, 포준화 구조에 대한 다양한 의견들이 존재하고있다. 근래의 기업용 응용 프로그램의 통합구조를 위한 필수 컴포넌트는 다음과 같다.''' |
#보안,접근,커뮤니케이션을 관장하는 중앙 집중 형 브로커의 운영이 있다. 브로커는 서버의 통합으로 또는 SOAP-기반의 서비스 관리기능을 하는 [[엔터프라이즈 서비스 버스(ESB)]]와 유사한 통합관리 서버를 통해 완성된다. | #보안,접근,커뮤니케이션을 관장하는 중앙 집중 형 브로커의 운영이 있다. 브로커는 서버의 통합으로 또는 SOAP-기반의 서비스 관리기능을 하는 [[엔터프라이즈 서비스 버스(ESB)]]와 유사한 통합관리 서버를 통해 완성된다. | ||
#표준 데이터구조에 기반한 비 종속적 데이터 모델이 있다. 이 모델은 사실적이고 적법한 표준인 [[XML]]과XML스타일 시트로 표현된다. | #표준 데이터구조에 기반한 비 종속적 데이터 모델이 있다. 이 모델은 사실적이고 적법한 표준인 [[XML]]과XML스타일 시트로 표현된다. |
2019년 6월 25일 (화) 11:44 판
목차
개요
EAI(EAI:Enterprise Application Integration)는 기업 내의 컴퓨터와 연관된 모든(서로 다른 응용 소프트웨어 네트워크 프로토콜,운영체계(OS)와 상관없이) 애플리케이션을 유기적으로 연동하여 필요한 정보를 중앙 집중적으로 통합, 관리, 사용할 수 있는 환경을 구현하는것으로 [[]e-비즈니스]]를 위한 기본 인프라, 기본의 점 대 점 인터페이스(Point-to-Point Interface)에서는 애플리케이션 수의 실질적 한계와 유지보수의 어려움 및 애플리케이션 추가 시 방대한 비용 및 시간 손실이 있었으나 EAI를 도입한 인터페이스에서는 새로운 애플리케이션 도입 시 어댑터(Adapter)만 필요한 손쉬운 확장성이 보장된다. 전사적자원관리(ERP), 고객관계관리(CRM), 공급망계획(SCP) 시스템, 인트라넷, 각종 데이터 등을 통합, 동일한 플랫폼[[인터넷)을 통해 기존 애플리케이션의 변화 없이 통신을 가능케 한다. [1]
역사
EAI는 1950년대와 60 년대 전기 아날로그 컴퓨팅 장비의 주요 공급 업체였습니다. 그들은 NASA의 우주 탐사 및 위성 개발과 같은 높은 수준의 과학 프로젝트에서 중요한 역할을 담당하였습니다. 그들은 아날로그 컴퓨터를 구축함으로써 시작되었습니다. 디지털 시스템과 아날로그 기능을 모두 갖춘 하이브리드 시스템을 만들었습니다. [2]
목적
EAI는 다음의 목적들로 사용될 수 있다.
- 정보의 통합 : EAI는 일관성 있는 여러 시스템들의 정보를 보증하며, 기업 정보 통합(EII)를 의미 한다.
- 프로세스 통합 : 응용프로그램간 비지니스 프로세스를 연결한다.
- 벤더에 대해 독립 : 응용 프로그램으로 부터 업무의 정책과 규칙을 추출하고,EAI시스템에 구현하여 비즈니스 응용프로그램 중 하나가 다른 벤더에 의해 수정된다고 해도, 비즈니스의 규칙은 다시 만들어질 필요가 없다.
EAI의 구성요소
*EAI의 구성요소
- EAI플랫폼:데이터의 전송을 보장하는 메시지 큐 와 트랜잭션 미들웨어 기능 수행한다.
- Adapter:다양한 패키지 애플리케이션 및 기업 자체 개발 애플리케이션을 재사용 가능 지원한다.
- 데이터 브로커:시스템 상호간 데이터가 전송될 때, 데이터 포맷과 코드 변환이 가능하다.
- Workflow:미리 정의된 비즈니스 Workflow에 따라 업무 처리가 가능하다.
- Message Queue:프로세스가 송신을 기다리고 있는 온라인 시스템의 대기 행렬이 있다.
EAI의 유형
통합범위
- Data-Laval:서비스 연결간 Data 내용을 바탕으로 애플리케이션 간 전달이 가능하다.
- Object-Level:애플리케이션 간의 트랜잭션 및 연관 데이터 통합이 가능하다.
- Process-Level:다단계 프로세스에 대한 중앙집중적인 프로세스 제어 관리가 가능하다.
데이터 전송 모델
- Hub&Spoke:단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중방식이 가능하다.
- Message Bus:애플리케이션과 미들웨어간 웹서비스 인터페이스를 통해 전송이 가능하다.
- Point to Point:1:1 방식으로 애플리케이션 통합수행으로 이용된다.
- Hybrid:Hud&Spoke와 Message Bus 와 혼합이다.
EAI 전송방식
- Hub&Spoke:단일 접점으로 주변의 여러 애플리케이션과의 연계 업무를 담당하는 일종의 중앙집중 방식으로 모든 데이터가 허브 시스템에 저장됐다가 전달 되는 구조이다.이 방식은 관리가 쉽고 유지보수가 용이하다는 장점이 있으나 데이터가 한곳에 집중됨으로써 병목현상과 실시간 처리가 어려운게 단점이다.
- Message Bus:전송로인 버스를 통해 데이터가 통합 서버 또는 애플리케이션으로 전달되도록 하는 방식으로 버스에서 특정 데이터를 지정한 목표지점에 안전하고 효율적으로 보내는 역활을 함으로써 애플리케이션간 통합을 이루어낸다. 확장성이 뛰어나고 대용량 데이터처리가 용이하다는 장점이 있으나 관리가 용이 하지 않고 불필요한 호출에 모든 시스템이 응대를 해야 하므로 네크워크 부담이 커질 수 있다.
- Hybrid:이 방식은Hub&Spoke방식과 Message Bus방식의 장점을 통합한 방식으로, 필요할 경우 어느 한 방향으로 EAI 시스템을 구축할 수 있다. 유연하게 통합할 수 있다는 장점이 있으나 아직 성능이나 관리에 있어서 검증되지 않았다는 지적이 있다.
- peer To peer:Hub,Bus와 같은 미들웨어를 두지 않고 포인트 투 포인트 방식으로 각각의 애플리케이션을 연결하는 방식이다. 기존 방식보다 저렴한 비용으로 통합 작업을 수행할 수 있다는 장점을 갖고 있으나 데이터를 변환하면서 일괄성과 무결성을 유지하는 여타의 EAI 솔루션과 달리 단순히 애플리케이션 인터페이스만 해결 할 뿐이다. 따라서'통합'관점이 아닌 '연계' 관점으로 보는 시각이 있다.
통합패턴
통합형태
EAI 시스템을 구현하기 위한 유형으로는 중개와 연합의 두가지가 있다.두 가지 유형운 때로는 동시에 일어나기도 하며, 같은 EAI시스템은 다중 중계 시스템으로 유지될 수 있고, 게다가 외부 사용자의 요청에 대해 연합으로 서비스를 제공할 수 있다.구체적으로는 다음과 같다.
- 중개의 경우,EAI 시스템은 여러 응용프로그램 사이에서 중개자 또는 브로커의 역활을 수행한다. 응용 프로그램에서 어떠한 상황이 발생하게 되면, EAI시스템의 통합 모듈에게 통보하게끔 설계되어있다. 해당 모듈은 다른 관련된 응용 프로그램들에게 전파하게끔 되어있다.
- 반면 연합의 경우,EAI시스템은 모든 응용프로그램들의 최상위에 위치하게 된다. 모든 외부로부터의 접속은 EAI를 통해 이루어진다.EAI 시스템은 외부로 적절한 정보와 인터페이스를 제공하기 위해 구성되고,요청자의 의한 응용 프로그램과 서로 작업을 수행하게 된다.
EAI의 도입 단계
- 계획(Strategy):고객의 현행 비즈니스 전략과 IT 전략에 따라 비즈니스 프로세스를 파악하는 단계로서 EAI 적용 초기 전략을 수립하는 단계.
- 판단(Assessment):파악된 고객의 전략을 분석해 하이 레벨 EAI 애플리케이션 아키텍처를 수립하고, 인프라스트럭처 차이의 분석을 통한 EAI 솔루션을 수립 단계.
- 구성(Architecture):EAI 기능적 요건 및 인터페이스 요건을 도출하고, 시스템 성능 및 관리 등에 필요한 요건을 정립하여 EAI 아키텍처를 수립하는 단계.
- 선택(Selection):수립된 EAI 아키텍처에 맞는 최적의 EAI 제품을 선정하는 단계로서, 어탭터, 브로커링, 프로세스 관리 및 시스템 관리를 위한 구현 틀의 선정 단계.
- 도안(Design & Prototyping):선정된 제품의 구현을 위해 상세 설계 및 초기 프로토타입을 개발하는 단계.
- 구축(Building):상세 설계 및 초기 프로토타입의 결과에 따라 각 구성 요소별로 제품의 구성 및 필요한 인터페이스 프로그램 작성.
- 보완(Depolyment):구현된 제품군의 고객 인도준비 및 유지보수 계획의 수립단계.
- 운영(Run):EAI 솔루션의 운영 및 유지관리 단계.
EAI 개발 프로세스
Analysis 단계
분석단계에서는 기업 내에서 EAI가 무엇을 할 것인가? 를 정의한다.
- 인터페이스 타입 정의:인터페이스 타입 정의란, 어떤 업무 시스템과 연동을 할 것인지, 그리고 해당 시스템의 기술적인 인터페이스 타입은 무엇인지 (Tuxedo,EJB,Socket,WebServioe,MQ etc)를 조사하고 서로 협의 한다.
- 메세지 패턴 정의:인터페이스를 할 시스템들이 정의되었스면 어떤 방식으로 인터페이스를 할지를 정의한다. 이를 MEP라고 한다. SYNC방식인지,1:N으로 분할 거래를 할 것인지, ASYNC 방식,디퍼드인지 각 업무별로 연계하는 방식에 대해 정의한다.
- 인터페이스 전문 정의:어떤 업무 시스템과 어떤 방법으로 연계할지가 정해지면 실제로 왔다 갔다 하는 메시지에 대한 포맷을 정의한다. XML로 할 것인지, TEXT로 할 것인지 헤어에는 어떤 데이터에 들어갈 것인지, 메시지 ID는 어떻게 정의할 것인지 등에 대해 정의를 한다.
분석단계가 끝나면 EAI 시스템이 갖추어야 할 모양과 어떤 업무 시스템 간을 어떻게 연동할 것인지가 정의된다.
Design 단계
EAI 시스템의 요구 사항이 나오면 다자인 단계에서는 실제 인터페이스별로 아키텍쳐를 디자인 수행한다.
- 프로토타입 제작:EAI는 시스템 특성상 기능적인 면 (시스템간 연계)보다 중요한 것이 비기능적인 요건이다. 시스템 간의 연계를 주요 목적으로 하다 보니, 거래 데이터의 전달 보장과 장애시 거래 유실을 방지하는 아키텍쳐가 필요하다. 이를 위해서 디자인 초기에 요건이 나온 인터페이스 연계 타입에 대해서 프로토타입 구현을 해서 정상적으로 작동하는지 다른 RISK 요인은 없는지 검증을 하고 현업과 연동을 해봄으로써 현업과 연계 시나리오에 대한 동일한 VIEW를 가지도록 한다.
- 프로토 타입 검증:프로토타입이 완성되면 해당 프로도 타입에 대해 검증을 한다. 대부분 Micro Benchmark 테스트 형식으로, 시스템 장애에 대한 장애 발견, 원인분석, 복구가능을 검증하고, 장기간 거래에 대한 안정성 성능을 측정하여 시스템에 대한 기초 데이터를 마련한다.
- IF 리스트 수집:프로토타입에 의해서 검증된 아키텍쳐를 기반으로 현업에서부터 실제 연계 IF 목록을 수집하고 개발 일정을 수립한다. 현업의 시스템 개발과 연계 일정에 대해 의존성을 가지기 때문에, 이 과정에서 자세한 인터페이스 방식과 스케쥴을 정의한다.
디자인 단계에서 가장 중요한 것은 주요 인터페이스 패턴 별로 프로토타입을 개발하고 검증하는 것이다.검증된 프로토 타입을 가지고 실제 구현단계에서는 붕어빵 찍어내듯이 같은 패턴으로 정해진 스케쥴에 따라 인터페이스를 구현해주게 된다.
Implementation 단계
구현단계에서는 실제 스케쥴에 맞춰서 인터페이스를 연계하고, 이를 개발이나 STAGING 환경으로 이행하면서 연계에 있어서 오류가 있는 부분을 수정한다.
- 인터페이스 연계: 구현당계에서는 일정에 맞춰서 인터페이스를 연계한다. 이때 필히 테스트환경을 구축하여 인터페이스 구축시 마다 인터페이스에 대한 테스트를 수행해야한다.
- 단계적 이행:EAI 개발 시스템에서 개발된 인터페이스는 EAI의STAGING 시스템으로 개발된다. EAISTAGING 시스템에는 업무 시스템에 대한 개발 시스템이 연동되어 있는데, EAI 개발 시스템에 연동하지 않는 이유는 개발 시스템에서 잦은 RESTART와 디버깅 등이 개발팀에서 이루어지기 때문에 이에 대한 영향을 타 업무 개발팀에 끼치지 않도록 하기 위함이다.STAGING로 이행을 할 때는 정해진 인터페이스 개발 스케줄에 맞춰서 이행하여 업무 개발팀이 원활하게 업무 개발을 할 수 있도록 한다.
- 모니터링 및 수정:EAI 프로젝트에서 인터페이스를 연계해놓고 나면 문제가 예상하지 못했던 인터페이스 에러나, 요건 수정이 발생한다. STAGING 시스템에서 이를 모니터링 해서 에러를 수정하고 이에 대한 보강 아키텍쳐를 수립하여 반영하는 반복적인 절차가 필요하고, 인터페이스 요건 변경에 대한 반영 역시 필요하다. 소프트웨어 개발 프로젝트의 특성상 요건에 대한 변경을 발생할 수 있으나, 거래 인터페이스 타입의 변경(대상 시스템 타입이 바뀌거나,MEP자체가 변경되는)은 발생해서는 안 되며, 피치못하게 발생했을 경우 변경된 요건에 대한 아키텍쳐 영향도를 분석(프로토 타입핑을 통해서) 후에 결정을 해야 완성된 EAI 시스템의 안정성에도 문제가 없게 된다.
EAI 래퍼런스 아키텍쳐
많은 EAI상용 EAI솔루션들이 있지만 이러한 솔루션들은 프레임위만 제공할뿐 실제 연계 아키텍쳐는 그 프레임윅을 기반으로 따로 설계해야하는 경우가 보편적이다. 여기서는 EAI시스템이 갖추어야 할 요건에 대해서 통상적인 아키텍쳐를 소개하고자한다.
인터페이스
인터페이스 모듈은 EAI의 가장 기본적인 아키텍쳐 모듈로 송수신 시스템을 통합 시키는 부분에 대한 아키텍쳐이다.
- Inbound:Inbound는 송신 시스템과 연동되어 요청을 받고 응답을 송신 시스템에 보내는 역활을 한다. Inbound는 크게 두가지의 모듈로 구성되어있다.
- Adapter:아답터는 다양한 플랫폼으로부터 메시지를 읽어드리는 Entry Point의 역활을 한다. 연동 시스템마다 각각의 아답터가 정의 되어야 한다.
- 메시지 변환:Adapter에 의해서 요청된 전문은 각 연동 시스템의 플랫폼에 따라서 각각 다르다. FML이나XML, 또는TEXT형태의 전문, Binary 등 여러 가지 형태가 될 수 있으나, EAI내부에서 처리하기 위해서 이런 전문 형태를 공통적인 데이터 구조로 변환한다. 흔히 상용 솔루션에서는 메시지 처리의 유연성을 가지고 가기 위해서 XML을 사용하고, In-House 개발의 경우 성능의 체적 화를 위해서 HasHT able형태의 Java POJOObject 사용하기도 한다.
- Mediation:Mediation은 입력된 메시지를 가공하고 중계하는 EAI의 핵심적인 기능 부분이다.
- Routing:Routing은 입력된 메시지를 메시지의 내용에 따라서 적절한 수신 시스템으로 Routing 하는 역활을 수행한다. 이 과정은 1:1 Routing이 될 수도 있지만, N:1, 1:N 등 다양한 관계로 Routing을 수행할 수 있어야 한다.
- Mapping:입력된 전문을 수신 시스템에서 요구하는 형태로 맵핑하는 작업을 수행한다. 필드간의 맵핑이나 간단한 메시지에 대한 변환을 수행한다.
- MEP (Message Exchange pattern): 이 부분에서 MEP에 대한 처리도 수행한다. SYNC나 ASYNC, 디피드성 거래에 대해서 JMS와 같은 큐잉을 이용해서 MEP를 구현한다.
- Outbound:Inbound와 마찬가지로 처리가 끝난 메시지를 수신 시스쳄의 플랫폼의 Natlve메시지 형태로 변환하여 Adapter를 통해서 수신 시스템에 전달한다.
통합의 장점과 단점
통합에 있어서는 다음과 같은 장점과 단점이 발생한다.
장점
- 여러 시스템중 실시간 정보조회를 제공한다.
- 능률적인 비즈니스 프로세스와 도움으로 조직의 효율이 증가하게 된다.
- 여러 시스템간의 정보의 통합을 이루게된다.
- 개별과 유지보수가 쉬어진다.
단점
- 소규모의 비즈니스에선 필요이상의 개발 비용이 발생할 수 있다.
- EAI는 시간 소모가 많고 많은 자원을 필요로한다.
- 많은 관리자들이 설계하려 하지 않고, 투자하려고 하지도 않는 디자인 작업을 미리 해야하고, 대부분의 EAI프로젝트는 일반적으로 지점간의 움직임으로 시작하고 이는 곧 관리되지 않는 다수의 응용 프로그램의 증가를 낳게 된다.
연결구조
일반적으로, 기업용 응용프로그램 통합을 위해 가장 좋은 기반 구조, 컴포넌트 모델, 포준화 구조에 대한 다양한 의견들이 존재하고있다. 근래의 기업용 응용 프로그램의 통합구조를 위한 필수 컴포넌트는 다음과 같다.
- 보안,접근,커뮤니케이션을 관장하는 중앙 집중 형 브로커의 운영이 있다. 브로커는 서버의 통합으로 또는 SOAP-기반의 서비스 관리기능을 하는 엔터프라이즈 서비스 버스(ESB)와 유사한 통합관리 서버를 통해 완성된다.
- 표준 데이터구조에 기반한 비 종속적 데이터 모델이 있다. 이 모델은 사실적이고 적법한 표준인 XML과XML스타일 시트로 표현된다.
- 커넥터 또는 벤더의 에이전트 모델, 응용 프로그램 또는 외부 접점은 하나의 컴포넌트로 만들어질 수 있고, 그것은 중앙 집중 형 브로커와 통신하는 전통적인 응용 프로그램이라 할수 있다.
- API와 데이터의 흐름, 위의 컴포넌트와 연동에 대한 규칙을 정의 하는 시스템 모델은 표준화에 따라 생성된다. 비록 데이터베이스나 사용자 인터페이스와의 연결과 같은 접근방법이 이미 개발되었지만,그것들은 규격을 찾기 어렵고 새로운 작업을 통해 수정되어야한다.각각의 응용 프로그램들은 중앙의 브로커에게 메시지를 전달하고, 브로커로부터 전달되는 메시지를 받기 위해 대기한다. 이때 각 응용 프로그램과 브로커는 단일 커넥션을 유지한다. 이런 중앙 관리형 접근 방법은 높은 발전 가능성과 일관성을 가지고 있다.
향후 EAI의 진행방향
EAI가 점차 B2B나 e마켓플레이스 분야로 확산되면서 EAI와 B2Bi의 경계가 모호해지고 있다. 또한 기업내의 내,외부에서 운용되고 있는 다양한 패키지 애플리케이션의 도입이 점차 늘어나면서 자연스럽게 이들 상호간 연동의 필요성도 대두되고 있다. 이러한 측면에서 EAI와 B2Bi의 통합 움직임으로 새롭게 등장한 개념이 바로'eAI'이다. 기업과 기업간 e비지니스에 필요한 각종 애플리케이션을 연동시켜주는 eAI는 기업내 이기종 시스템을 통합해주는 EAI와 이를 기업간으로 확대한 B2BI를 포괄하는 개념이다. 따라서 eAI는 기업간 프로트엔드를 지원하는 백엔드를 지원하는 백엔드 중심의 솔루션을 의미한다.[4]
각주
- ↑ 정보통신용어사전, 〈기업 애플리케이션 통합, 企業-統合, Enterprise Application Integration, EAI〉, 《한국정보통신기술협회》
- ↑ SELLING〈Associates, Inc. (EAI)〉, 《Computer History Museum》
- ↑ 인생새옹지마〈EAI(Enterprise Application Integration)〉, 《기술은 사람을 챙겨야 빛이 난다.》, 2013-03-21
- ↑ 4.0 4.1 4.2 구름바람〈응용 프로그램 통합시스템EAI〉, 《늑대와 함께 춤을》2004-08-18
- ↑ 5.0 5.1 조대협〈EAI(Enterprise Application Integration)추진전략〉, 《조대협의 블로그.》, 2009-07-16
같이 보기