adsense(728_90)


EDA, CEP 시장에 대해 Enterprise

회사에서 갑자기 올해부터 CEP (Complex Event Processing) 분야를 맡게되었다. 요새 EDA(Event Driven Architecture)라는 용어가 스물스물 귓전을 때리더니 결국은 그 EDA에서의 핵심이라 할 수 있는 CEP분야의 나름대로 힘을 가지고 있던 AptSoft라는 회사를 회사가 인수를 하였고 그래서 어찌되었건간에 이 CEP를 맡게 되었다.

CEP, 이거 왠 '듣보잡'인가라고 하실 분이 계실지도 모르겠지만 나름대로 역사와 전통을 자랑하는 개념이어서 1990년대 중반부터 학계에서 떴다고 전해진다. SOA처럼 벤더사들이 처음 시작한거가 아니라서 좀 더 편안하고 순수한 마음으로 CEP를 바라보셔도 좋겠다. 일단 CEP의 개념은 상당히 간단하다. 기업 내부에 돌아다니는 이벤트를 filter같은 걸 이용해서 수집하고 이걸 실시간으로 분석하여 적절한 action을 취할 수 있게 하는 인프라다. 이런 수집과 이벤트에 따르는 행위를 자동으로 컴퓨터가 해주는 걸 의미한다.

사실 갑자기 나온 개념도 아닌 것 같고, 이미 왠만한 기업들도 비즈니스룰과 같은 개념으로 조금씩 국지적으로 사용하고 있을 것이다. 과거에 비해, 5년 전과 비교해보더라도 우리나라 은행등에서 외환관련 부서에서 처리하는 트레이딩의 량은 거의 열배는 늘었을 것이다. 그렇다면 열배 가까운 인력이 해당 부서에 더 보충이 되었을까? 오히려 줄었으면 줄었지 그다지 인력 보충은 있지 않았다. 그러면 어떻게 이것을 처리할 수있을까? 그것은 과거와 다르게 다양한 이벤트 처리 엔진등을 사용했기에 가능한 것이다. 그저 사람은 최종적으로 클릭질만 몇번 하면 되는 것이다. 이렇게 그전에는 의사결정을 내리기 위해 해야했던 많은 작업을 대신 처리하고 수많은 정보들을 걸러줘서 보다 많은 정보를 처리할 수 있게 하는 전사적인 이벤트 처리 시스템이 CEP의 개념이다.

CEP, 개념은 쉽지만 하지만 그게 쉽지가 않다. 이게 전사적인 관점으로 확장되면 이벤트를 받는 방법과 또 대량의 이벤트들을 받고 저장하고 걸러내는 작업, 그리고 최종적으로 다시 새로운 action으로 연결시키는 작업들이 상당히 많은 부분 표준적인 부분이나 성능적인 부분과 맞물려있게 된다. 그래서 이러한 표준과 성능관점에서 SOA와 그리드 기법들이 CEP에 도입되기 시작하고 그래서, CEP가 최근에 다시 각광을 받고있는 이유다. SOA가 뜨니까 드디어 조금씩 CEP가 제 물을 만난 것이라고 봐야한다.

ESB란 무엇인가? 쉽게 말하면 서비스의 중계자 혹은 허브라고 볼 수 있겠다. 기업 내의 모든 서비스를 원하는 요청자의 메시지는 이 ESB를 거쳐가게 하겠단 것이다. 그렇게 해서 보다 유연하게 서비스를 관리하겠다는 것이다. 이렇게 인터페이스만 있는 서비스가 ESB에서 한눈에 보이다보니 BPM도 이 ESB랑 연동하면 보다 쉽게 전사적인 BPM하겠다싶다. 그러니까 BPM도 SOA랑 엮이면 보다 유연하고 통합적인 관점에서 잘 할 수 있게 되고, 이렇게 BPM이랑 서비스랑 잘 엮이고 실시간으로 프로세스가 진행되니 메시지나 여러 자원들도 보다 통합적으로 볼 수 있을 것 같으니까 BAM도 스물스물 시장에서 언급이 되기 시작한다.
그런데 프로세스 관점에서만 봐서는 정말 유연한 IT환경을 가져가기가 어렵다는 게 문제다. 프로세스 모델링 아무리 잘해도 시시각각으로 변하는 비즈니스 상황을 제대로 반영하기란 그리 쉬운 노릇이 아니다. 실시간적으로 비즈니스 Insight를 요구하는 상황에서 '무슨무슨 프로세스를 이렇게 변경해서 이런 요구사항을 반영시켜주세여'라고 요청해도 그게 바꾸기가 어디 쉬운가? 핵심적인 비즈니스 프로세스는 그대로 유지하되 실시간적으로 요구되는 변화를 반영하기 위해서는 프로세스가 아니라 실시간이란 의미를 가장 잘 반영하고 있는 '이벤트'에 초점을 맞출 필요가 있으시다.

메시지라는 용어와 다르게 '이벤트'라는 용어에는 어떤 '목적성'이 없다. 메시지는 뭔가 대상이 있고 어떤 행위를 요구하는 의미가 이미 담겨있다. 그런데 이벤트는 그저 '상황 변화'만을 가지고 있는 것이지 이런 변화에 대해 어떻게 행동하란 내용은 전혀 없다. 경찰차의 사이렌이 울렸다. 죄없는 사람들은 그냥 평소 하던 일을 하면 될 것이고, 도둑님은 '짭새떴다'고 열심히 도망가시면 되는 것이다. 이벤트 자체에는 행위를 알려주지 않지만 그 이벤트를 원하는 사람의 입장에서 그 이벤트에 맞게 반응하면 되는 것. 그게 EDA다. EDA (Event Driven Architecture)는 기업 내의 IT환경의 최소 단위를 이 이벤트로 보는 아키텍처다.
EDA의 기본 아키텍처: 마치 MOM+룰엔진처럼 보이기도...

생각해보면 정말 모든 건 이벤트였다. 그게 웹서비스였건 자바에서 돌아가는 프로그램이건 DB에 저장되는 SQL 쿼리이건, Telnet 접속이건간에 사실 모든건 프로토콜과 포맷만 다른거지 결국 이벤트다. 물론 이것들은 모두 그들 나름의 생겨먹은 이유가 있고 그들의 목적에 따라 원래의 목적지로 가서 일을 처리해야만 한다. 하지만 EDA에서는 이런 이벤트들을 따로 필터링해서 또 다른 비즈니스 의미를 가진 어떤 action을 처리할 수 있게 한다.

그래서 ESB는 서비스의 허브라고 한다면 CEP는 이벤트의 허브다. CEP에서는 기업내에 산재되어 있는 이벤트 덩어리들을 이벤트 구름(Event Cloud)이라고 부르는데, CEP가 하는 역할은 이 이벤트 구름에서 자신이 필요로 하는 의미있는 이벤트만을 걸러내어 예약된 이벤트를 처리하는 것 이다.

CEP의 기본 아키텍처: 이벤트구름에서 필터를 이용해 원하는 이벤트를 걸러서 또 다른 업무의 트리거가 되게 한다. SOA와 붙으면 아주 잘 맞아떨어지는 찰떡궁합이 될 소지가 있다.


과연 이 CEP가 뜰것인가, 정말 필요한 물건이 될 것인가 하는 점은 확실치 않다. 하지만 분명 그 필요성은 항상 있어왔다. 보다 Real time이 강조되는 증권이나 금융 분야(알고리즘 트레이딩)가 그 예이다. 그 외에도 온라인 서비스를 하는 업체같은 즉각적인 고객대응이 매우 중요한 분야에서는 이 CEP가 귀중한 솔루션이 될 가능성이 높다.

CEP가 구축되면 필요한 비즈니스 룰이나 이벤트 처리 구축 요건을 개발하는데 2-3주면 된다. 상당히 개발 기간이 기존에 비해 단축되는 효과를 볼 수가 있다. 기존 시스템을 건드리는 게 아니라 그저 이벤트를 수집해서 원하는 행위를 수행하는 것이기 때문이다. 하지만 이러한 효과를 극대화하려면 결국 기존의 IT환경이 어느 정도 표준화되어 있거나 서비스화된 자원들이 많아야한다. 그렇지 않으면 CEP구축에 수많은 노가다를 감수해야 할 것이다.

공유하기 버튼

 

핑백

  • calmglow (최진호) : 요즘 관심갖고 공부하는 미래기술 주제들 2010-08-06 15:03:37 #

    ... A영역에서 '기업의 실시간 반응 능력 향상'이라는 영역으로 바뀌었다. 그 시발점이 된 계기는 EDA(Event Driven Architecture) 및 CEP (Complex Event Processing)이라는 분야에 발을 들여놓게 되면서 부터인데, 그 이후로 세상이 정말 그쪽으로 가고 있는 것인지 아니면 내가 그쪽으로 눈을 돌 ... more

덧글

  • Tuna 2008/03/17 12:15 # 삭제 답글

    Wow! 재밌네요! 흠...

    SOA와 어떻게 한집살림을 시킬 수 있을까요? 궁금궁금..
    EDA도 한번 공부해 봐야겠군요!
  • Yozz 2008/03/17 14:56 # 답글

    예, EDA 이거 생각보다 매력적이던걸요? :)
  • Tuna 2008/03/17 17:34 # 삭제 답글

    What is difference between EDA and MOM based architecture?
    (I am sorry, I cannot type Korean now. Now I am in Apple store in Shibuya, Japan.)
  • Yozz 2008/03/17 18:17 # 답글

    EDA의 주로 사용하는 메시징 방식은 비동기 그중에서도 Pub-Sub방식의 프로토콜을 사용합니다. EDA는 이러한 MOM의 특정 메시징 방식을 사용하고 그에 더불어 이벤트 처리를 위한 패턴 인식 및 룰 처리 엔진을 포함하고 아울러 적절한 인식을 처리하는 실행엔진등을 포함합니다.
    하지만 앞서도 말씀드린 바와 같이 이벤트란 것은 본질적으로 비목적성을 띄게 됩니다. 반면에 MOM의 핵심 요소는 '메시지'와 '큐'라고 할 수 있겠죠. 여기서 이 메시지란 것은 목적이 있습니다. 어떤 특정 Target을 향해 달려가는 속성을 가진 게 메시지이고 이 메시지를 최대한 잘 전달하기 위해 존재하는 게 MOM기반 엔진들이라고 한다면 EDA의 엔진은 그렇게 흘러가는 메시지의 흐름을 방해하지 않으면서 이벤트 관점에서 바라보며 패턴기반의 새로운 프로세스나 이벤트의 Trigger로서 동작하게 합니다.
    EDA는 MOM이라는 기술적인 인프라 위에 올라와있는 전사적 차원의 패턴기반 룰엔진 정도라고 할까요? 기술적인 맥락에서는 이렇습니다. 하지만 EDA가 이렇게 기술적인 맥락에서만 정의되지는 않고, 기업 내 존재하는 이벤트에 대해 그 이벤트 중심적인 모델링을 가능케 하는 데에도 의미가 있습니다.
  • 미노 2008/03/21 13:35 # 답글

    오랜만이네요.
    CEP라.. 저도 요즘 고민하고 있는 분야중에 하나죠.
    특히 알고리즘 트레이딩쪽에 상당히 의미가 있긴 한데.
    말씀하신데로 기존 환경이 표준화도 문제지만,
    정작 성능적인 이슈가 너무나 크기 때문에, 전반적인 IT Infra의 확장 또한 필요한 경우가
    많습니다.

    요즘 진행되는 증권업종의 차세대(또는 신시스템)으로 표준화(Framework도입등)은
    어느정도 될것이긴 하겠지만, CEP같은 RTE를 할 수 있는 부분까지의 고려는 사실 미흡한것
    같습니다. ^^
  • Yozz 2008/03/21 14:11 # 답글

    으하하 안녕하세요. 우리는 참 비슷한 생각의 속도를 걷고 있구만요.ㅋㅋ 말씀하신대로 성능에 대한 이슈는 아직 베일에 가려져있고 헤쳐나가야할 것들이 산적해있습니다. 하지만 어쨌든 새로운 가능성과 목적이 생긴 것은 맞네요. :)
  • 용훈 2009/03/31 16:28 # 삭제 답글

    CEP, EDA라는 개념을 쉽게 설명 해놓으시건 같내요.
    좋은 내용이라서 퍼갑니다.
    감사합니다.
  • 수호아빠 2011/06/16 09:00 # 답글

    요즘 저희 회사에서 사업적으로 진행하고자 준비하고 있는 있는 내용이 CEP였는데 정확히 개념을 이해하지 못하다가 진호님의 블로그 내용을 보고 빛을 보는 것 같았습니다.
    저희가 준비하는 것은 OI(Operational Intelligence) Platform으로 M30라는 솔루션입니다. 해당 솔루션에는 진호님이 이야기하는 내용이 포함되어 하나의 스위트 형태로 제공합니다. 즉 Operations Book, Business Process Suit, Analytic Server/CRP, Feed Server 로 구성되어 있습니다.
    저희도 이제 교육받고 개념을 이해하고 있습니다. 특히 "무엇에 쓰이는 물건 인고?" 하는 물음에 답하기 위해 노력하고 있습니다. 진호님은 이와 관련된 많은 프로젝트를 진행하고 있으니 저에게는 참으로 한줄기 빛을 보는 것 같습니다. 간단 명료하게 정리해 주신내용이어서 팀원들과 공유하겠습니다. 많은 도움 부탁드립니다.
  • Calmglow 2011/06/16 10:53 #

    안녕하세요. 대단히 재미있는 프로젝트를 하시네요. 저도 몇년간 이쪽 관련해서 프로젝트를 하고 고객도 만나고 하면서 재밌는 일이 많았는데요.. 궁금하신 점 있으시면 메일로 주시면 최대한 답변드릴게요.
댓글 입력 영역


Google Analytics