이벤트 중심 SOA
Event-driven SOA이벤트 중심 SOA는 이벤트 중심 아키텍처의 인텔리전스와 프랙티스를 서비스 오퍼링에서 발견되는 조직적 역량과 결합한 서비스 지향 아키텍처(SOA)의 한 형태다.이벤트 중심 SOA 이전에, 일반적인 SOA 플랫폼은 미리 정의된 비즈니스 프로세스를 통해 서비스를 중앙에서 조정했으며, 이미 촉발되었어야 할 것은 비즈니스 프로세스에서 정의된다.이 오래된 접근방식(SOA 1.0이라고도 함)은 특정 비즈니스 프로세스 전체 또는 외부에서 발생하는 이벤트를 설명하지 않는다.따라서 기존의 SOA 1.0 아키텍처에서는 일정하지 않은 활동과 일정 모두 일련의 서비스를 촉발해야 하는 복잡한 사건이 설명되지 않는다.
SOA 2.0
SOA 2.0 아키텍처("이벤트 주도형 SOA")는 비즈니스 사용자가 이벤트를 모니터링, 분석 및 강화하여 처음에는 직관적으로 드러나지 않는 상이한 이벤트 간의 연결이 명백해 보이도록 한다.이는 이러한 풍부한 이벤트를 다른 사람들, 특히 비즈니스 분석가 또는 마케팅 책임자에게 보여 주며, SOA 2.0 시스템이 일부 고유한 패턴을 해결하기 위한 조치를 자동화할 수 있도록 한다.[1]
SOA 2.0은 수많은 낮은 수준의 시스템 이벤트에서 높은 수준의 비즈니스 이벤트를 생성할 수 있는 기능이다.이벤트는 실시간 데이터(예: 미들웨어, 애플리케이션, 데이터베이스 및 웹 서비스에서)를 필터링하고 이를 다른 이벤트의 상관관계를 통해 발견된 종속성이나 인과관계와 같은 세부사항을 정의함으로써 생성된다.
SOA 2.0 환경에서 생성된 풍부한 이벤트를 통해 고객 쇼핑 카트 폐기율이 지난 며칠 동안 증가했다는 것이 명백하다면, 마케팅 부서에 통보하면 경쟁업체들이 다른 곳에서 제품을 구매하도록 유도하기 위해 어떤 조치를 취했는지에 대한 연구를 시작할 수 있다.대부분의 쇼핑 카트에 공통적인 상품이 있었는가?그렇다면, 경쟁사에서 제공하는 가격은 얼마인가?
실제로 스트리밍된 이벤트의 이러한 관계는 인과 벡터 엔진을 통해 처리되며, 이 엔진은 최근에 본 이벤트를 기반으로 룩업을 수행하고 관계가 발견될 경우 인과 벡터를 이벤트에 할당한다.A가 B를 유발하는 경우, 원인 벡터 엔진은 B의 인과 벡터 규칙 지수에 A에 대한 참조가 포함되어 있는지 확인한다.엔진은 서로 다른 트랜잭션에 대한 이벤트를 동시에 처리할 수 있으며, 아마도 발생한 이벤트와 다른 순서로 처리할 수 있다.
(고객들이 변경 요청을 위해 폴링해야 하는) 순차적 또는 절차적 시스템과 달리, 이벤트 중심 SOA는 시스템과 구성요소가 이벤트가 발생할 때 실시간으로 동적으로 대응할 수 있도록 한다.SOA 2.0은 장기간 실행되는 처리 기능을 도입하여 SOA 1.0을 보완하고 확장한다.
장기간 실행되는 처리 기능을 통해 아키텍처는 장기간에 걸쳐 다양한 비동기 이벤트를 수집하고 이러한 이벤트를 인과관계와 연관시킬 수 있다.SOA 2.0 이벤트 패턴을 설계 및 구현하여 일, 주 또는 월에 걸친 이벤트 관계를 찾을 수 있으며, 특정 기준을 충족할 경우 이벤트 패턴을 해결하기 위한 비즈니스 프로세스를 실행하십시오.
SOA 2.0 이벤트 기반 프로그래밍은 이벤트 생산자와 이벤트 소비자 사이의 분리된 관계 개념을 중심으로 구성된다. 이벤트 소비자는 이벤트가 어디서 발생하는지, 왜 발생하는지는 상관하지 않는다. 오히려 이벤트가 발생했을 때 실행될 것을 우려한다.이벤트 생산자와 이벤트 소비자를 분리하는 시스템과 애플리케이션은 일반적으로 이벤트 분배기 또는 채널에 의존한다.이 채널은 이벤트 생산자와 이벤트 핸들러 사이의 중개자 역할을 하는 이벤트 대기열을 포함한다.
프로토타입 SOA 2.0 패러다임
프로토타입 SOA 2.0 패러다임에는 네 가지 필수 요소가 포함되어 있다.
- 개별적으로 어떤 관계도 없는 것처럼 보이지만, 패턴 감지를 통해 이러한 많은 사건을 비교함으로써 비정상적이거나 덜 명백한 상관관계가 명확해지는 복수의 로우 레벨 시스템 이벤트
- 각 사건에 관련된 정보를 주입하여 많은 사건들이 어떻게 관련되는지 보다 명확하게 설명하기 위한 데이터 축적량.
- 충족되지 않을 경우 비즈니스 수준 이벤트가 생성되지 않지만 트리거 조건이 충족될 경우 상위 수준의 비즈니스 이벤트가 생성되는 트리거 조건
- 트리거 이벤트에 도달할 때 호출되는 사용자 또는 자동 프로세스
SOA 2.0 웹 서비스는 조정과 안무의 두 가지 방법으로 구성할 수 있다.조정에서, 중앙 프로세스는 관련된 웹 서비스를 통제하고 운영과 관련된 웹 서비스에 대한 다른 운영의 실행을 조정한다.관련된 SOA 2.0 서비스는 구성 또는 상위 비즈니스 프로세스의 일부라는 사실을 알지 못하며(그리고 알 필요가 없다)조정의 중앙 조정자만이 이를 알고 있으므로, 조정은 운영에 대한 명시적 정의와 SOA 2.0 서비스의 호출 순서로 중앙 집중화된다.
반면에 안무는 중앙 코디네이터에 의존하지 않는다.오히려 안무에 관여하는 각 SOA 2.0 서비스는 언제 (확정된 트리거 기준에 따라) 운영을 실행할 것인지, 누구와 상호작용할 것인지 정확히 알고 있다.안무는 메시지 교환에 초점을 맞춘 협력적인 노력이다.안무 참여자 전원에게 비즈니스 프로세스, 실행해야 할 운영, 교환해야 할 메시지, 메시지 교환 시기 등을 숙지할 필요가 있다.
BPEL은 조정 패러다임을 따른다.안무는 WSCI(웹서비스 안무 인터페이스)와 WS-CDL(웹서비스 안무 설명 언어) 등 다른 표준이 적용된다.
여러 개의 로우 레벨 시스템 이벤트
인과관계는 우리를 둘러싼 세계에 내재되어 있고 우리의 의사결정에 내재되어 있다.인간의 지능은 이러한 관계를 현재의 인공적인 계산 능력보다 더 빨리 처리하고 수집한다.인공지능의 근본적인 장애물 중 하나는 인간이 인간의 직관을 사용할 때와 같이 사건을 함께 연관시킬 수 있는 자동화된 능력이 없다는 것이다.
인과 벡터 엔진을 사용하면 엔진에 기록된 구조적 및 시간적 규칙에 기초하여 적절한 주피오템포럴 조건에서 인과관계의 인식을 향상시킬 수 있다.부가, 매개, 양방향 인과관계 등 복잡한 인과적 의미에 대한 인식은 코딩이 되어 엔진은 관련된 사건과 관련이 있는 것으로만 보이지만 사실은 그렇지 않은 사건을 구별할 수 있어야 한다.
엔진은 사건들 사이의 관계를 코드화하고 다중 발생 간에 인지된 인과관계를 검증하는 부분 순서를 설정하기 위해 선행 인과 벡터 변화율 전파를 사용한다.엔진은 이벤트 시퀀스를 다른 시간 순서로 재생하고 재생하여 위상학적 연결과 관련된 것일 수 있는 것을 유추하고 이러한 재생을 분석가가 미리 프로그래밍한 규칙과 비교한다.
인과 벡터 엔진에 의해 여러 개의 낮은 수준의 시스템 이벤트를 처리하고 이러한 규칙과 비교하여 상위 수준의 비즈니스 이벤트를 유발한다.이는 비즈니스 분석가들에게 실시간으로 이벤트를 표시하는 CVE(Costality Vector Engine) 콘솔 애플리케이션을 통해 이루어진다.이벤트 스트림이 발생하면서 관찰될 수 있는 경우, 주식 조회기처럼, CVE 콘솔 앱은 동일한 이벤트를 서로 다른 맥락에서 나열하는 여러 개의 창을 가지고 있기 때문에 비즈니스 분석가들은 CVE가 이들 사이의 관계를 가지고 무엇을 하고 있는지 볼 수 있다.
Sequential 창은 CVE가 규칙 목록을 통해 작동하고 이벤트 간에 묵시적인 관계를 만들 때 하나 이상의 다른 창을 날짜-시간 스탬프 순서대로 보여준다.콘솔 애플리케이션에는 다양한 버튼과 제어 장치가 존재하며, 이를 통해 비즈니스 분석가가 즉석에서 이벤트 간 관계를 생성하고 이러한 관계에 대응하는 규칙을 정의할 수 있다.
비즈니스 분석가는 규칙 또는 이벤트 컨텍스트에 첨부된 SQL 조회 문을 통해 추가 정의 상세 내역을 삽입할 수 있다.CVE 앱은 뮤추얼펀드 매니저들이 리스크 관리를 위해 사용하는 현대식 주식 거래 애플리케이션과 매우 흡사하게 작동한다.CVE 애플리케이션과 엔진의 예는 실크에서 볼 수 있다.[2]
데이터 농축
대부분의 기업용 서비스 버스(ESB) 구현에는 "중재"라는 시설이 포함되어 있다.예를 들어 조정 흐름은 WebSphere 엔터프라이즈 서비스 버스 가로채기의 일부분이다.뮬은 조정 흐름도 지지한다.조정 흐름은 기존 서비스와 해당 서비스를 사용하는 클라이언트 간에 전달되는 메시지를 수정한다.조정 흐름은 메시지 로깅, 데이터 변환, 라우팅과 같은 기능을 제공하기 위해 중재 또는 개입하며, 일반적으로 기능은 인터셉션 설계 패턴을 사용하여 구현될 수 있다.[3]
메시지가 ESB를 통과함에 따라 ESB는 높은 수준의 비즈니스 이벤트를 모니터링하는 채널로 향하는 메시지를 풍부하게 한다.즉, 각 메시지에 대해 ESB는 메시지 내의 일부 데이터 엔터티에 대한 추가 정보를 얻기 위해 데이터베이스를 조회할 수 있다.예를 들어, 고객 ID에 기초하여 ESB 조정 흐름은 고객이 거주하는 우편 번호를 얻을 수 있다.또는 최종 사용자의 원래 요청의 IP 주소를 기반으로 ESB 조정 흐름은 IP 주소가 어떤 국가, 주 또는 카운티를 조회할 수 있다.
이러한 예는 높은 수준의 비즈니스 이벤트가 결국 촉발될 의도를 바탕으로 기존 데이터에 부가가치를 추가한다는 개념인 데이터 농축을 나타낸다.
조정의 흐름
ESB 조정 흐름은 서비스 구성요소 아키텍처(SCA)의 구성요소 유형 중 하나이다.다른 SCA 컴포넌트와 마찬가지로 프로그램은 자신이 제공하는 수출을 통해 조정 흐름에 접근하고 조정 흐름은 수입을 통해 다른 외부 서비스에 메시지를 전달한다.JMS 바인딩이라 불리는 JMS를 위한 특별한 종류의 수출입은 개발자들이 바인딩 구성을 지정하고 데이터 처리 코드를 쓸 수 있게 해준다.조정 흐름은 메시지를 버스를 통해 흐를 때 조작하는 일련의 조정 원리로 구성된다.
개발자가 수출입 양쪽 모두에 대해 사용자 정의 바인딩을 코드화하면 조정 흐름 요소에 초점을 맞출 수 있다.WebSphere Integration Developer 어셈블리 편집기에서 이 작업은 JMS Custom Binding Mediation Component에 의해 수행되며, 여기서 흐름 구성 요소의 인터페이스에 대한 각 작업은 요청과 응답으로 표현된다.
서비스 데이터 개체(SSO) 프레임워크는 데이터 애플리케이션 개발을 위한 통합 프레임워크를 제공한다.SDO를 사용하면 개발자가 데이터에 접근하고 활용하기 위해 특정 API를 숙지할 필요가 없다.개발자는 SDO를 통해 관계형 데이터베이스, 엔티티 EJB 구성요소, XML 페이지, 웹 서비스, 서비스 구성요소 아키텍처 및 자바서버 페이지와 같은 여러 데이터 소스의 데이터만으로 작업한다.
조정 흐름은 수출입에 사용되는 바인딩으로부터 완전히 독립적이다.실제로 흐름 구현 이외의 SDO DataObject 인스턴스로 변환하는 목적은 조정 모듈에서 메시지를 주고받는 프로토콜과 형식을 모르는 상태에서 조정 흐름이 구축될 수 있기 때문이다.
비즈니스 레벨 트리거 조건
비즈니스 레벨의 트리거 조건을 통해 SOA 2.0 아키텍처는 다른 기능 중에서도 실시간 고객 인텔리전스, 마케팅 자동화 및 고객 충성도 솔루션을 구축할 수 있다.비즈니스 객체는 고객, 계정, 대출 및 여행 일정과 같은 아키텍처의 실제 실체를 모델링한다.이러한 개체 중 하나의 상태가 변경되고 모니터링 에이전트가 이 변경 사항을 유의하게 알게 되면(모니터링 기준 리스트와 비교했을 때), 이벤트가 생성되어 다른 모니터링 에이전트로 전달된다.
예를 들어, 실제 사업상의 문제나 기회를 포착하면 수익 증대로 이어질 수 있다.고객이 주문을 취소하면 추가 제조능력이 생산실적의 수익성을 떨어뜨릴 수 있다.SOA 2.0 이벤트는 마케팅 부서에 초과 용량을 재판매할 수 있는 특별 판매 캠페인을 생성하여 원래 수익성이 높은 단위당 비용을 회수하도록 통보할 수 있다.
프로세스 실행 시 운영 비즈니스 프로세스 활동에서 발생하는 이벤트를 자동으로 모니터링하여 기업 내부 또는 외부에서 즉각적인 조치가 필요한지 확인이러한 모니터링 요원은 특정 비즈니스 조건과 비즈니스 운영의 변화를 지속적으로 테스트한다.필요한 경우, 에이전트는 이러한 조건이나 변경이 발생할 때 사람들에게 경고를 하거나, 추천을 하거나, 다른 응용프로그램에 메시지를 보내거나, 전체 비즈니스 프로세스를 호출한다.
결과 비즈니스 프로세스
촉발된 비즈니스 프로세스는 비용 억제, 비즈니스 상황에 대한 대응력 또는 새로운 시장 기회를 추구할 수 있는 능력으로 수익 성장을 직접적으로 지원해야 한다.또한, 비즈니스 프로세스를 통해 목표 달성을 위한 운영 진척도를 측정하고, 필요한 사람만 알 수 있도록 필요한 정보를 전달함으로써 운영 비용을 통제하거나, 핵심 프로세스의 성과 상태를 주요 의사 결정자에게 보고할 수 있다.
SOA 2.0 개념적 예
버려진 쇼핑 카트
예를 들어, 당신은 다른 필터를 사용하여 카트에 있는 상품의 가치를 추출하고 시스템의 상관관계 기능을 두드려 상거래 사이트에서 성능 문제를 겪고 있는지와 같은 인과 지표를 추가하기 위해 "폐기된 쇼핑 카트" 메시지(거래, 고객 ID 및 시간 구문 분석)로부터 CRM 이벤트를 구성할 수 있다.CRM 이벤트에는 고객 데이터베이스의 고객 가치 또는 등급도 포함될 수 있음...
공학적 결함
또 다른 예를 들어, 수신한 독립적 서비스 호출 유형을 기반으로 SOA 2.0 플랫폼은 별도의 불만사항의 기본 패턴을 탐지하여 제품 결함을 식별한 다음 가능한 결함의 엔지니어링 또는 생산에 대한 경고를 촉발할 수 있다.
SOA 2.0 구현
대부분의 SOA 1.0 Enterprise Service Bus 구현에서 사용할 수 있는 하나의 메커니즘은 게시/구독 기능이다.ESB 기능을 Pub/Sub 메시지로 구현함으로써 SOA 2.0 메시지 패턴을 생성하기 위해 시스템 이벤트에 대한 고급 지식이 필요하지 않다.기업이 많은 게시 기능을 구현한 후, SOA 미들웨어 분석가는 사용 가능한 게시 메시지 중 어떤 메시지를 SOA 2.0이 풍부한 트리거를 감지하기 위해 고유한 패턴으로 결합할 수 있는지 전략화하는 작업에 대해 설정할 수 있다.
CVE(Cause Vector Engine) 역학은 SQL 구성을 저장 프로시저로 확장 가능한 뷰로 간단하게 구현된다.[4]A가 B를 유발하고 인과관계가 N개의 트랜잭션 수 내에서 발생해야 하는 경우, SQL ORDER BY 타임스탬프 조항은 A 트랜잭션 발생에 대한 N개의 일치 B의 카운터를 증분하는 결과 세트를 생성한다.추가 저장 프로시저 생성은 CVE 콘솔 애플리케이션 또는 표준 데이터베이스 개발자의 툴킷을 사용하여 이루어진다.[5]
의료 응용
인용된 참조의 발열/플루/감염 도메인 로직과 같은 도메인 알고리즘은 선택된 비즈니스 규칙을 활용 사례에 적용하는 SQL 코드를 도출하는 데 사용된다.SOA 2.0 원칙을 적용하면 훨씬 후에 놓치거나 식별되었을 비즈니스 기회를 식별하기 때문에 SOA 환경에서 CVE를 사용하면 비즈니스 민첩성이 향상된다.[6]
그레인저 인과분석(GCA)을 이용한 기능성 자기공명영상(fMRI)은 뇌 부위 간 인과관계를 탐지한다.한 표본 테스트의 결과는 rFIC와 등측 전방 응고 피질(dACC) 사이에 양의 인과관계를 보였다.[7]
오라클 비즈니스 인텔리전스
Oracle CVE Analytics Engine은 일련의 이론적 모델을 사용하며, 각 모델은 데이터의 일부 또는 전체를 평가한다.사업 분석가는 인과관계자를 구성할 때 어떤 모델을 고려해야 하는지를 나타내는 기준을 명시한다.[8]
참고 항목
- 서비스 지향 아키텍처
- 엔터프라이즈 매시업 마크업 언어(EMML)
참조
- ^ "Make way for SOA 2.0". 17 May 2006.
- ^ http://silk.semwebcentral.org/gui-ruleml-2010.pdf Eclipse 플러그인으로서의 Vector Engine GUI.
- ^ Curry, D.챔버스와 G. 라이온스는 2004년 ICSE '04, Edinburgh, Scotland, 2004년 분산 이벤트 기반 시스템에 관한 제3차 국제 워크숍(DEBS '04), ICSE '04, UK, 2004)에서 발표한 "간격을 이용한 메시지 지향 미들웨어 확장"이다.
- ^ http://bicep.dei.uc.pt/images/5/58/FINCoS_DEBS2008.pdf 원인 벡터 엔진 설계.
- ^ http://people.cis.ksu.edu/~bbp9857/bbp_hicss05.pdf 인과 벡터 엔진 알고리즘 툴킷.
- ^ http://people.cis.ksu.edu/~bbp9857/bbp_hicss05.pdf 인과 벡터 엔진 의료 도메인 논리.
- ^ Zang, ZX; Yan, CG; Dong, ZY; Huang, J; Zang, YF (2012). "Granger causality analysis implementation on MATLAB: a graphic user interface toolkit for fMRI data processing". J. Neurosci. Methods. 203 (2): 418–26. doi:10.1016/j.jneumeth.2011.10.006. PMID 22020117. S2CID 44845757.
- ^ http://docs.oracle.com/cd/E18727_01/doc.121/e05136/T485796T488110.htm 오라클 Business Intelligence 엔진은 과거 및 미래 시간 버킷에서 임시 데이터를 광범위하게 사용한다.