[The Power Of Event 요약] 1장 The Global Information Society and the Need for New Technology

먼저 1장을 다루기 전에 Part 1에 대해서 간략하게 소개한다. Part 1은 1장부터 7장까지를 다루며 A Simple Introduction to Complex Event Processing란 제목을 달고 있다. Part 1에서는 다루는 이슈는 다음과 같다.

  • 오늘날의 전자정보 시스템을 사람이 어떻게 관리, 감독할 것인가와 관련된 이슈들
  • CEP의 기본 컨셉, 개념
  • CEP를 통해서 어떻게 위와 같은 이슈들을 다룰 것인가

따라서 1-4장에서는 오늘날의 비즈니스 세상에서 어떻게 IT 시스템이 운영되는지에 대한 배경과 특성을 다룬다. 여기에서 여러가지 관련 이슈들을 도출하고 왜 CEP가 오늘날의 비즈니스 엔터프라이즈 세상에서 필요한 지를 찾아본다. 5-7장에서는 CEP의 기본적인 개념과 동작원리들을 설명함으로 어떻게 엔터프라이즈 시스템의 최근 이슈들에 대응할 것인가에 대해서 개괄한다. 그럼 이제 1장의 본론으로 넘어가자

1장에서 다루는 내용은 다음과 같다.

  • 오늘의 대부분의 지식정보 시스템에는 Event가 존재한다는 점
  • 인터넷과 전세계적으로 통신 네트워크의 복잡성이 증대된 점
  • 엔터프라이즈 시스템 아키텍쳐에서의 다단계 레이어 구조
  • 전세계적인 온라인 거래의 작동 원리
  • 애자일 시스템이 과연 가능한 지
  • 개방된 전자정보 사회가 스스로를 보호할 수 있는가
  • 웹상의 정보를 모으는 것이 전세계적인 협력이 될지 혼돈이 될지

이 책이 2002년에 출판된 점을 감안해서 진부한 배경설명을 만나게 된다. 21세기 우리들의 삶의 근간을 컴퓨터 시스템이 구축했다는 것, 웹과 인터넷을 통해서 막대한 정보가 생산, 증대된다는 점 등의 이야기들이 이에 해당한다.

문제는 전세계적으로 정보들이 소통하는 시스템 구조에서 이러한 정보들을 적절하게 모니터링하고 관리하는 기반기술이 없다는 점이다. 따라서 이 장에서는 이벤트를 중심으로 데이터를 교환하는 정보시스템과 이와 관련된 이슈들을 다룬다.

1.1 Distributed Information System Everywhere

분산시스템은 사실 우리가 이미 익숙하게 사용하는 인터넷 뱅킹이나 홈쇼핑 같은 상업용 서비스에서부터 대부분의 엔터프라이즈 시스템에 녹아있다. 중요한 사실은 이러한 분산시스템의 성장은 인터넷 기술의 발전이 가져왔다는 사실이다. 단일한 기업의 경계와 국가를 넘어 전세계적으로 수많은 정보들이 오고가는 것이다.

엔터프라이즈에서 대표적인 분산시스템의 예를 들자면 온라인 주식거래를 들 수 있다. 전세계에 걸쳐 기업, 개인투자자, 투자은행, 중개인 등을 네트워크를 통해서 하나의 시스템으로 묶어준다. 동시에 이들은 내부적으로도 자체적인 처리 시스템을 독립적으로 가지고 있다.

이러한 엔터프라이즈 시스템 간에 메시지(혹은 이벤트)가 네트워크를 통해 교환된다. 수신된 이벤트 정보에 따라 적절한 대응을 처리하는 이러한 시스템을 우리는 “이벤트 기반 시스템” 으로 정의할 수 있다. 이와 같은 시스템에서는 초당 수천,수백 이상의 이벤트가 전달되며 시스템의 규모에 따라 그 숫자는 훨씬 더 커지게 된다.

주식거래와 같은 금융경제 시스템 뿐만 아니라 전자정부나 군사용 시스템도 동일한 분산시스템이다. 응용분야는 달라도 근본 아키텍쳐는 모두 동일하다. 우리는 이러한 분산 정보 시스템을 통칭하여 “엔터프라이즈 시스템”이라 부른다.

이들 시스템에는 공통적인 문제가 하나 있다. 그것은 시스템 내부의 이벤트와 활동을 인간인 우리가 이해할 수 있는 방식으로 볼  수 있는 기술이 없다는 점이다. 우리는 하위영역의 네트워크 활동 정보 뿐 아니라 비즈니스나 전략적 의사결정 레벨의 고차원적인 정보를 사용하기 위한 상위영역의 활동 정보도 확인할 수 있어야 한다. 이러한 정보들은 단편적인 이벤트의 조합으로부터 복잡한 이벤트(Complex Event)로 추출되며 오늘날 최신의 엔터프라이즈 모니터링 기술을 통해서 우리는 이와 같은 활동들을 할 수 있다.

1.2  The Global Communication Spaghetti Pot

웹을 통한 정보의 교환이 전세계적인 의사소통의 복잡성 속에서 이루어지고 있다는 것을 이 장은 말한다. 예를 들면 우리가 어떤 특정한 사이트에 접속할 때 이 사이트에서 보여지는 정보들은 하나의 서버에서만 들어오는 정보가 아니다. 각종 광고 배너, 여러 실시간 정보, 보안, 사이트 코어 컨텐츠 등이 서로 다른 서버나 시스템으로부터 들어오게 된다. 이러한 통신의 유연성는 인터넷의 발전의 아주 큰 원동력이었다. 따라서 우리는 이러한 유연성을 우리는 제한해서는 안 된다.

그렇지만 단점도 있다. 통신의 유연성과 복잡도 때문의 이벤트의 인과관계를 찾아내기가 어렴다는 점이다. 결론적으로 우리가 사는 세상은 전세계적으로 복잡하게 얽혀 있는 상태에 있다. 우리는 하나의 정보가 어디서 시작해서 어디서 끝나는지 확인할 길이 없고, 밝혀낼 수도 없으며, 대부분은 어떻게 작동하는지도 모른다.

여기서 우리가 직면하게되는 이슈는 통신의 유연성을 보장하면서도 이벤트 정보와 활동들을 이해할 수 있는 새로운 기술을 개발하는 것이다.

1.2.1 Event Causality

이벤트를 이해하는 핵심은 무엇이 이벤트를 발생시켰는지, 이벤트 발생 시에 인과관계를 바로 아는 것이다. 이벤트는 인터넷 기반의 시스템을 통해 세계의 이편에서 인과관계에 있는 세계 저편으로 흐른다.

이벤트 간의 인과관계는 두가지로 분류할 수 있다.

  • 수평 인과관계(Horizontal Causality): 이벤트 간의 인과 관계가 개념적으로 전체 시스템 내에서 동일 레벨에서 일어날 때를 말한다.
  • 수직 인과관계(Vertical Causality): 복합이벤트는 여러 이벤트를 구성요소로 가질 수 있는데 하위레벨에서 발생한 이벤트들의 집합을 통해서 상위레벨의 이벤트가 발생하는 경우를 말한다.

1.3 Electronic Archeology: Layers upon Layers

엔터프라이즈 시스템은 분산 시스템이면서 이벤트 기반 시스템이기도 하지만 보통은 계층형 시스템(Layered Sysem) 이기도 한다. 계층을 구분하는 것은 복잡도를 줄이고 시스템의 영향의 영역을 제한하는 전통적인 설계기법이다. 우리는 계층화된 IT 시스템 내부에서 이벤트가 발생하는 것들을 모니터링하는 방법들에 대해서도 고민해야 한다.

1.3.1 A Layered Enterprise System

계층형 시스템은 본 책에서 다음과같은 4개의 층으로 구성한다.

Layerer Architecture애플리케이션 계층은 최상단에 위치하여 비즈니스 레벨 또는 전략적 계획 레벨로 볼 수 있다. 왜냐하면 실질적인 비즈니스 계획과 교환이 이 층위에서 이루어지기 때문이다. 이 계층에서는 사용자가 실제 작업하는 서비스들이 위치하게 되며 이는 구체적인 서비스들의 목표들과 연결된다. 이 계층에서의 이벤트는 사용자가 이해할 수 있다는 특징이 있다.

의사결정을 위한 고수준의 이벤트들은 주로 사용자가 애플리케이션 내에서 명시적으로 생성한 단일 이벤트가 아니라 여러애플리케이션들 내에서 발생한 이벤트들의 순차적 결과로서 생성된 것들이다. 이와 같은 고수준의 이벤트는 이벤트 자체로는 존재하지 않지만 여러 이벤트들로부터 조합되어 추론된 것이고 가상 이벤트라고 칭하기도 한다. 결론적으로 최상단에서 사용자가 결정을 내리기 위한 이벤트들은 애플리케이션 계층에서 발생된 이벤트들의 조합을 통해 이루어진다.

협력 계층은 사용자가 애플리케이션을 좀 더 효율적으로 활용할 수 있도록 돕기 위한 계층이며 이 계층과 애플리케이션 계층을 구분하는 기준이 엄격한 것은 아니다.

미들웨어 계층은 통신을 위한 가장 기본적인 네트워크 위에 위치한다. 보통 EAI라 불리는 엔터프라이즈 애플리케이션 통합 제품군들이 이 계층에 위치하여 데이터의 전송 등의 역할을 감당한다. 최근에는 다양한 오픈소스 및 사용 EAI 제품군들이 미들웨어 계층에서 사용되고 있다.

네트워크 계층은 데이터 전송의 핵심이 되는 계층이다. 일반적인 사람들은 이 게층에서 전송되는 정보들을 식별하거나 이해할 수 없다. 따라서 이 계층을 이해할 수 있는 전문가들과 이들을 위한 전용 툴들이 많이 있다. 시스템의 결함 뿐 아니라 점차 증대되는 보안침투 이슈를 포함해서 이 계층에서 이루어지는 정보들을 제대로 이해하고 분석할 필요들이 늘고 있다.

1.3.2 Vertical Causality: Tracking Events up and down the Layers

모든 계층에서의 활동은 상하위 계층으로 변환되어 이벤트로 전달된다. 계층 사이의 인과관계를 정확하게 실시간으로 분석하는 일을 수직 인과관계라 부른다. 구체적으로 수직 인과관계를 분석하는 능력은 두가지 일을 필요로한다. 첫째는 비즈니스 계층의 이벤트가 어떻게 하위 계층의 이벤트들로 나뉘어지는지를 이해하는 것이고 둘째는 하위 계층의 이벤트들을 묶어서 상위 계층의 이벤트를 표현하는 것이다. 하지만 수직 인과관계를 찾는 일은 쉬운 일이 아니다. 왜냐하면 모든 계층의 시스템은 항상 변화하기 때문이다. 결론적으로 우리의 시스템의 현재 무슨 작업을 하고 있는지 이해하는 일은 그리 쉬운 작업이 아니다.

1.3.3  Event Aggregation: Making High-Level Sense out of Low-Level Events

이전 장에서 수직 인과관계를 찾는 능력에 대해서 다루었는데 이를 진행하려면 고수준의 이벤트 정보가 필요하다. 하지만 고수준의 이벤트는 비즈니스 측면에서는 분명한 실체이지만 실제 시스템에서는 존재하지 않는 가상이벤트 형태이다. 따라서 고수준의 이벤트를 찾기 위한 대안은 저수준의 이벤트로부터 고수준의 이벤트를 도출하는 것이다.

이처럼 모든 엔터프라이즈 시스템 내의 저수준의 이벤트 집합으로부터 새로운 단일한 이벤트를 도출시키는 과정을 이벤트 조합(Event Aggregation) 이라고 한다.  따라서 이벤트 조합을 제대로 수행한다면 고수준의 이벤트를 도출하여 수직 인과관계를 분석할 수 있다.

1.4 The Gathering Storm of New Activities on the Web

파편화된 정보들을 웹과 인터넷을 통해서 통합하려는 시도와 요구들이 늘어나고 있다. 많은 분야에서 IT시스템과 웹의 신기술을 활용하여 자신들의 목적을 달성하려는 움직임이 많다. 이어지는 세개의 주제에서 어떠한 흐름과 요구들이 있는지 확인해본다.

1.5 Global Electronic Trade

지금 이 시점에서는 당연한 이야기를 하는 것으로서 인터넷의 도래와 함께 전세계적인 온라인 마켓이 활성화 된다는 이야기를 한다. 시스템 간의 표준화된 데이터 공식 포맷으로 XML이 트렌드라는 점과 함께 여러 산업군의 시장을 묵는 트레이딩 허브를 이야기한다. 바로 최근에 아마존에서 고객의 행태분석을 통해서 상품의 구매시점까지 예측해서 보내주는 현실에서 비교할 때 진부한 이야기가 되어버린 챕터이다.

1.6 Agile System

이 장에서 말하는 애자일 시스템은 소프트웨어 개발 방법론을 말하는 것이 아니다. 실시간으로 이벤트를 모니터링하여 요구사항에 민첩하게 대응하는 모든 시스템을 의미한다. 책에서는 군사용 시스템을 예로 들지만 현재 비즈니스 시장에서도 소비자들의 트렌드와 상황을 실시간으로 분석하여 적절하고 민첩한 대응을 필요로 한다는 점에서 중요한 응용분야이다.

1.7 Cyber Warfare and the Open Electronic Society

마지막은 해킹과 보안 공격에 대비하는데 있어서 네트워크 단위의 이벤트 모니터링의 중요성을 이야기한다. 컴퓨터에 대한 악의적인 침입이나 DDOS 공격, 바이러스, 스팸 메일등과 같은 다양한 공격에 대해서 실시간으로 네트워크 상의 패킷(이벤트)들을 모니터링하여 사전 차단하는 방안들은 효과적일 것이다.