본문 바로가기
Study/Software Engineering

Enterprise Application Integration (EAI) 상황에서의 디자인 원칙

by SeulKom 2009. 8. 31.



1. 데이터 수준의 통합을 위한 인터페이스

   한 곳에 데이터베이스를 두고 모든 애플리케이션이 데이터베이스를 통하여 정보를 주고받는 것. 이 때 데이터베이스는 하나의 애플리케이션들이 정보를 교환하는 일종의 인터페이스가 된다. ('Shared repository' 패턴)


                            [그림1] 데이터 수준의 통합을 위한 인터페이스




 - 장점
   단순하고 빠르게 시스템 통합을 구축할 수 있다.

 - 단점
    여러 다른 애플리케이션이 통합되기 위해서 중앙에 데이터 수준의 통합을 위한 인터페이스를 두고 모든 애플리케이션
    이 이 인터페이스에 맞춰야 한다. (확장이나 변경의 자유도가 떨어진다.)
    데이터베이스가 변경이 될 경우 모든 애플리케이션이 같이 변경되어야 하는 위험이 있다.
    여러 애플리케이션이 원하는 인터페이스를 구축해야 하기 때문에 테이블 (인터페이스) 설계가 복잡하고 난해하다.





2. 애플리케이션 수준의 통합을 위한 인터페이스

  기존에 사용하던 라이브러리나 패키지를 사용자(다른 애플리케이션)에게 제공하여 인터페이스를 통해 연동. 독립적인 애플리케이션간의 연동을 할 때 두 개 이상의 프로세스가 서로 통신(Inter-Process Communication, IPC) 하기 위한 프로토콜이 정의되어야 한다. (프로토콜은 애플리케이션 간에 연동을 위한 인터페이스 역할을 한다)


                                   [그림2] 애플리케이션 수준의 통합을 위한 인터페이스



사례) XML 전송, HTTP
   XML 전송 - XML 스키마
   HTTP - GET, POST, HEAD, ...

- RPC(Remote Procedure Call) : 애플리케이션이 실제 함수 호출하듯 원격지에 있는 함수의 시그니처를 모방한 프록시를 두어, 그 프록시를 통해 원격 함수 호출을 제공한다. (IPC → RPC 로의 전환 : 인터페이스를 더욱 단순하고 분리하기 쉽게 사용하도록 유도)





3. 비즈니스 로직 수준의 통합을 위한 인터페이스

  인터페이스가 비즈니스화가 됨(분리된 객체 인터페이스의 묶음), 비지니스 목적에 의해서 복잡한 객체 인터페이스를 구분하여 분류한 Facade 역할을 한다.
 
- 장점
   비즈니스를 공유하여 재사용할 수 있다. (인터페이스의 재사용도가 높아짐 → IPC 원칙을 지킴)


사례) COBRA, COM, EJB




 
4. 유저 인터페이스 수준의 통합을 위한 인터페이스

  사람이 스크린을 통해 애플리케이션을 사용하듯 애플리케이션간의 연동이 이루어지는 방식. (이런 요청을 스크린 카탈로그 라 하며 요청 방식을 스크린 스크래핑,screen scrapping, 이라 한다)

        
                               [그림3] 유저 인터페이스 수준의 통합을 위한 인터페이스