EIP - Introduction

Eungho won·2022년 12월 24일
0

필요성

대부분의 애플리케이션은 독자적으로 실행되지 않고, 여러 애플리케이션과 연계되어 동작한다

따라서 시스템 간의 연동에서, 몇 가지 어려움이 있는데 이는 다음과 같다

  1. network are unrealiable : 시스템 간의 네트워킹 간 무슨일이 발생할지 모른다
  2. network are slow : 병목현상 등으로, 단일 어플리케이션과 같은 설계로는 분산시스템를 설계한다면 안된다
  3. Any tow applications are different : 각 각의 어플리케이션은 각기 다른 언어와 시스템 환경을 가지고있다. 따라서 적절한 인터페이스가 필요하다
  4. Change is inevitable : 어플리케이션은 항상 변하므로, 변화에 있어서 dependency를 최소화 할 수 있어야한다

해결책

개발자들은 이런 이슈들을 해결하기 위하 다음 4가지 접근법을 사용했다

  1. File Transfer : 파일을 통한 데이터 교환으로, 이를 위해서는 파일이름과 위치, 포멧, 생성 및 제거 날짜에 대한 시스템 간 합의가 필요하다

  2. Shared Database : 공통의 DB를 공유하는 방법으로, 데이터 전송이 불필요하다

  3. Remote Procedure Invocation : 애플리케이션의 함수를 노출하여 다른 애플리케이션이 사용하도록 하는 방식으로, 실시간/동기적으로 일어난다

  4. Messaging : 한 애플리케이션이 채널에 메세지를 publish 하는 방식으로, 수신하는 애플리케이션은 나중에 이를 consume하는 방식이다. 포맷에 대한 합의가 필요하고, 비동기적인 방식이다

카멜은 위의 Messaging 방식을 사용한다

profile
kill to code

0개의 댓글