분산 데이터 흐름
Distributed data flow분산 데이터 흐름(분산 흐름이라고도 함)은 분산 응용 프로그램 또는 프로토콜의 이벤트 집합을 나타냅니다.
분산 데이터 흐름은 소프트웨어 계층에 의해 저장되거나 통신되는 상태를 나타낼 수 있다는 점에서 Java와 같은 프로그래밍 언어의 변수 또는 메서드 매개 변수와 유사한 목적을 제공합니다.단일 로케이션에 존재하는 상태 단위를 나타내는 변수 또는 파라미터와 달리 분산 흐름은 동적 및 분산됩니다.이러한 흐름은 동시에 네트워크 내의 여러 로케이션에 표시됩니다.이와 같이, 분산 흐름은 분산 시스템의 특정 클래스의 의미론 및 내부 작업을 모델링하는 보다 자연스러운 방법입니다.특히, 분산 데이터 흐름 추상화는 [1][2][3]분산 프로토콜의 부분들 간의 높은 수준의 논리적 관계를 표현하는 편리한 방법으로 사용되어 왔다.
비공식 부동산
분산 데이터 흐름은 다음과 같은 비공식 속성을 충족합니다.
- 비동기, 비블로킹 및 단방향.각 이벤트는 2개의 레이어 또는 소프트웨어 컴포넌트 간에 전달되는 비블로킹, 단방향, 비동기 메서드 호출 또는 기타 형식의 명시적 또는 암묵적 메시지의 단일 인스턴스를 나타냅니다.예를 들어, 각 이벤트는 애플리케이션 계층에 의해 기본 멀티캐스트 프로토콜로 발행된 패킷을 멀티캐스트하기 위한 단일 요청을 나타낼 수 있습니다.이벤트는 단방향이며 비동기라는 요건이 중요합니다.결과를 반환할 가능성이 있는 메서드의 호출은 보통 요구를 나타내는 흐름과 응답을 나타내는 흐름의 두 가지 흐름으로 나타납니다.
- 동종, 단방향, 균일.분산 흐름 내의 모든 이벤트는 동일한 기능 및 논리적 목적을 제공하며 서로 관련되어 있습니다.일반적으로 이러한 이벤트는 동일한 기능 계층의 인스턴스 또는 동일한 컴포넌트의 인스턴스 간에 메서드 호출 또는 메시지 교환을 나타내지만 컴퓨터 네트워크 내의 다른 노드 상에 있을 수 있습니다.또한 모든 이벤트는 동일한 방향으로 흐르며(즉, 한 유형의 레이어 또는 컴포넌트가 항상 생성되고 다른 유형은 항상 이벤트를 소비함) 동일한 유형의 페이로드가 전송되어야 합니다.예를 들어, 동일한 애플리케이션 계층에 의해 동일한 멀티캐스트프로토콜에 발행된 모든 멀티캐스트 요구를 포함하는 일련의 이벤트는 분산 흐름입니다.반면에, 다른 어플리케이션에 의해 만들어진 다른 멀티캐스트 프로토콜에 대한 멀티캐스트 요청을 포함하는 일련의 이벤트는 분산 흐름으로 간주되지 않을 것이며, 멀티캐스트 요청과 확인 응답 및 오류 알림을 나타내는 일련의 이벤트도 아닐 것이다.
- 동시, 연속 및 분산.흐름에는 보통 2개의 소프트웨어 레이어 간에 동시에 다른 장소에서 유한 또는 무한 기간 동안 흐르는 모든 이벤트가 포함됩니다.따라서 일반적으로 분산 흐름의 이벤트는 공간(다른 노드에서 발생)과 시간(다른 시간에 발생) 모두에서 분산됩니다.예를 들어, 멀티캐스트 요구의 흐름은 다른 노드에 있는 특정 응용 프로그램의 인스턴스에 의해 이루어진 모든 요구를 포함합니다.일반적으로 이러한 흐름은 특정 멀티캐스트 프로토콜에 참여하는 모든 노드에서 발생하는 이벤트를 포함합니다.모든 이벤트가 같은 노드에서 발생하는 흐름은 열화로 간주됩니다.
형식적 표현
형식적으로 분산 흐름의 각 이벤트를 형식(x,t,k,v)의 4배수로 나타냅니다.x는 이벤트가 발생한 위치(예를 들어 물리 노드의 네트워크 주소), t는 이벤트가 발생한 시간, k는 버전 또는 특정 이벤트를 식별하는 시퀀스 번호, v는 이벤트 페이로드를 나타내는 값입니다.(예를 들어 메서드 호출로 전달된 모든 인수).각 분산 흐름은 다음 세 가지 공식 특성을 만족시키는 (무한일 가능성이 있는) 4배의 집합입니다.
- 유한한 시점 t에 대해 흐름에는 t 또는 그 이전에 발생하는 이벤트가 최종적으로 다수 존재할 수 있습니다.즉, 플로우가 어느 시점에서 발생했는지를 항상 포인트 할 수 있습니다.흐름 자체는 무한할 수 있습니다.이 경우, 어느 시점에서나 최종적으로 새로운 이벤트가 플로우에 표시됩니다.
- e_1과 e_2가 같은 장소에서 발생하는 모든 이벤트 쌍에 대해 e_1이 e_2보다 빠른 시간에 발생하는 경우 e_1의 버전 번호도 e_2보다 작아야 합니다.
- 같은 장소에서 발생하는 이벤트 e_1과 e_2의 쌍에 대해 두 이벤트의 버전 번호가 같을 경우 두 이벤트의 값도 같아야 합니다.
흐름에는 상기 외에 다수의 추가 속성이 있을 수 있습니다.
- 일관성.분산 흐름은 같은 버전의 이벤트가 다른 장소에서 발생하더라도 항상 같은 값을 가질 경우 일관성이 있다고 합니다.일관성 있는 흐름은 일반적으로 프로토콜 또는 응용 프로그램에 의해 이루어진 다양한 종류의 글로벌 결정을 나타냅니다.
- 단조롭다.분산 플로우는, 같은 장소에서 발생하는 이벤트 e_1과 e_2의 페어에 대해서, e_1의 버전이 e_2보다 작을 경우, e_1은 e_2보다 작은 값을 전송 할 필요가 있는 경우, 약하게 단조롭다고 불립니다.분산 흐름은 다른 위치에서 발생하는 이벤트 e_1과 e_2의 쌍에도 해당될 경우 매우 단조롭다고 합니다(또는 단순히 단조롭습니다.강한 단조로운 흐름은 항상 일관성이 있습니다.그것들은 보통 다양한 종류의 돌이킬 수 없는 결정을 나타냅니다.약한 단조로운 흐름은 일관성이 없을 수도 있고 없을 수도 있습니다.
레퍼런스
- ^ Ostrowski, K., Birman, Dolev, C. 사코다(2009)."분산 데이터 흐름과 재귀 위임을 통한 대규모 시스템에서의 신뢰성 높은 이벤트 스트림 구현", 제3회 ACM 국제 분산 이벤트 기반 시스템 회의(DEBS 2009), 내슈빌, TN, 미국, 2009년 7월 6~9일, http://www.cs.cornell.edu/~zkrys/pdfys_krys"
- ^ Ostrowski, K., Birman, K. 및 Dolev, D.(2009).「다자간 프로토콜을 위한 분산 데이터 플로우 언어」, 제5회 ACM SIGOPS 워크숍(PLOS 2009), Big Sky, MT., 미국, 2009년 10월 11일, http://www.cs.cornell.edu/~krzys/krzys_plos2009.pdf.
- ^ Ostrowski, K., Birman, K., Dolev, D. (2009년)「분산 데이터 플로우를 사용한 라이브 분산 오브젝트 프로그래밍」, 오브젝트 지향 프로그래밍, 시스템, 언어 및 애플리케이션에 관한 국제회의(OOPSLA 2009), http://www.cs.cornell.edu/~krzys/krzys_gla2009.pdf 에 제출되었습니다.