분산형 시스템이란?
• 통신을 수행하는 서로 다른 기계에 위치한 여러 구성 요소를 가진 시스템
최종 사용자에게 일관성 있는 단일 시스템으로 보일 수 있도록 조치 조정
분산형 시스템
• 정의: 분산형 시스템은 다음과 같은 자율 컴퓨팅 요소의 집합체입니다
사용자에게 단일 일관성 있는 시스템으로 나타납니다.
• 특징
• 노드라고도 불리는 자율 컴퓨팅 요소는 하드웨어 장치 또는 소프트웨어입니다
과정.
• 단일 일관성 있는 시스템: 사용자 또는 애플리케이션이 단일 시스템 → 노드가 인식해야 하는 작업
공동 작업을 하다.
자율 노드 집합체
• 독립적인 행동: 각 노드는 자율적이고 따라서 고유한 시간 개념을 가질 것입니다.
글로벌 시계가 없습니다. 근본적인 동기화 및 조정 문제로 이어집니다.
• 노드 집합
• 그룹 멤버쉽을 관리하는 방법은?
• 당신이 정말로 (비)공인 회원과 의사소통을 하고 있는지 어떻게 알 수 있습니까?
조직
• Overlay network(오버레이 네트워크): 컬렉션의 각 노드는 해당 컬렉션의 다른 노드와만 통신합니다
시스템, 그 이웃들. 이웃들의 집합은 동적일 수도 있고, 심지어는 오직 알 수도 있습니다
암묵적으로(즉, 조회가 필요함).
• 오버레이 유형
• 잘 알려진 예: P2P 시스템
• 구조화(Structured): 각 노드는 통신할 수 있는 잘 정의된 이웃 집합(트리,
링)
• 비정형: 각 노드는 시스템에서 임의로 선택된 다른 노드에 대한 참조를 가집니다.
일관성있는 시스템
• 노드 집합은 전체적으로 장소, 시기, 방법에 관계없이 동일하게 작동합니다
사용자와 시스템 사이에 상호작용이 일어납니다.
• 유통투명성
• 최종 사용자는 계산이 어디에서 발생하는지 알 수 없습니다
• 데이터가 정확히 저장된 위치는 애플리케이션과 무관해야 합니다
• 데이터가 복제되었는지 여부를 완전히 숨깁니다
• 부분고장
• 언제든지 분산 시스템의 일부만 장애가 발생하는 것은 피할 수 없습니다. 부분적인 장애 숨기기
그리고 그들의 회복은 종종 매우 어렵고 일반적으로 숨는 것이 불가능합니다.
자원공유
• 표준 예제
• 클라우드 기반 공유 스토리지 및 파일
• P2P(Peer-스트리밍
• 공유 메일 서비스(아웃소싱 메일 시스템 생각)
• 공유 웹 호스팅 (콘텐츠 유통망 생각)
액세스 - 데이터 표현의 차이와 개체 액세스 방법 숨기기
위치 - 객체가 있는 위치 숨김
재배치 - 개체를 사용 중에 다른 위치로 이동할 수 있음을 숨깁니다
마이그레이션 - 개체가 다른 위치로 이동할 수 있음을 숨깁니다
복제 - 개체가 복제되도록 숨깁니다
동시성 - 개체를 여러 독립 사용자가 공유할 수 있음을 숨깁니다
실패 - 개체의 실패 및 복구를 숨깁니다
유통투명성
• 완전한 유통 투명성을 목표로 하는 것은 무리일 수 있습니다:
• 숨길 수 없는 통신 지연 시간이 있습니다
• 네트워크와 노드의 장애를 완전히 숨기는 것은 이론적으로나 현실적으로 불가능합니다
• 느린 컴퓨터와 떨어지는 컴퓨터를 구별할 수 없습니다
• 서버가 충돌하기 전에 실제로 작업을 수행했는지 확신할 수 없습니다
• 완전한 투명성으로 인해 성능이 저하되고 시스템의 분산이 노출됩니다
• 복제본을 마스터와 정확히 최신 상태로 유지하려면 시간이 걸립니다
• 내결함성을 위해 쓰기 작업을 디스크에 즉시 플러시
투명도
• 분포를 노출하는 것이 좋을 수 있습니다
• 위치기반 서비스 활용(주변 친구 찾기)
• 서로 다른 시간대의 사용자를 상대할 때
• 사용자가 상황을 쉽게 이해할 수 있는 경우(예: 서버가 이해하지 못하는 경우)
장시간 응답, 실패로 보고)
• 유통 투명성은 좋은 목표이지만, 그것을 달성하는 것은 다른 이야기이고, 그렇게 해야 합니다
겨냥하지도 않는 경우가 많습니다.
분산형 시스템의 개방성
• 기본에 관계없이 다른 개방형 시스템의 서비스와 상호 작용 가능
환경:
• 시스템은 잘 정의된 인터페이스를 준수해야 합니다
• 시스템이 쉽게 상호 운용되어야 함
• 시스템은 응용프로그램의 휴대성을 지원해야 합니다
• 시스템을 쉽게 확장할 수 있어야 함
정책 대 메커니즘
• 개방성 구현: 정책
• 클라이언트 캐싱된 데이터에 대해 어느 수준의 일관성이 필요합니까?
• 다운로드한 코드를 수행할 수 있는 작업은 무엇입니까?
• 대역폭이 다양한 상황에서 조정할 수 있는 QoS 요구사항은 무엇입니까?
• 의사소통을 위해 어느 정도 수준의 비밀이 필요합니까?
• 개방성 구현: 메커니즘
• 캐싱 정책 설정 허용(동적)
• 모바일 코드에 대한 다양한 신뢰 수준 지원
• 데이터 스트림당 조정 가능한 QoS 매개 변수 제공
• 다양한 암호화 알고리즘 제공
엄격한 분리에 관하여
• 정책과 메커니즘의 분리가 엄격할수록 우리는 더 많은 것을 만들어야 합니다
적절한 메커니즘을 보장하고, 잠재적으로 많은 구성 매개변수를 초래할 수 있습니다
복잡한 경영.
• 하드 코딩 정책은 종종 관리를 단순화하고 복잡성을 줄여 가격 대비
유연성이 떨어집니다. 명확한 해결책은 없습니다.
분산형 시스템에서 확장 가능
• 현대 분산 시스템의 많은 개발자들은 쉽게 "확장 가능"이라는 형용사를 사용합니다
그들의 시스템이 실제로 확장되는 이유를 분명히 하는 것입니다.
• 구성요소
• 사용자 및/또는 프로세스 수(규모 확장성)
• 노드 간 최대 거리(지리적 확장성)
• 관리 도메인 수(관리 확장성)
• 대부분의 시스템은 크기 확장성을 어느 정도만 고려합니다. 흔히 솔루션: 여러 개를 사용합니다
강력한 서버들이 병렬로 독립적으로 작동합니다. 오늘날, 도전은 여전히 있습니다
지리적 및 행정적 확장성.
크기 확장성
• 중앙 집중식 솔루션의 확장성 문제의 근본 원인
• CPU에 의해 제한되는 계산 용량
• CPU와 디스크 간 전송 속도를 포함한 스토리지 용량
• 사용자와 중앙 집중화된 서비스 간의 네트워크
지리적 확장성 문제
• 단순히 LAN에서 WAN으로 이동할 수 없습니다. 많은 분산 시스템에서 동기 클라이언트를 가정합니다
서버 상호작용. 클라이언트는 요청을 보내고 답변을 기다립니다. 지연 시간은 쉽게 금지할 수 있습니다
이 계책.
• WAN 링크는 신뢰성이 떨어지는 경우가 많습니다. 단순히 스트리밍 비디오를 LAN에서 WAN으로 이동하는 것입니다
실패할 수밖에 없습니다.
• 멀티포인트 통신이 부족하여 간단한 검색 방송을 배포할 수 없습니다.
솔루션은 별도의 네이밍 및 디렉토리 서비스를 개발하는 것입니다(자체적인 확장성을 갖추고 있습니다
문제들.)
관리 확장성 문제
• 사용(따라서 지불), 관리 및 보안과 관련된 상반된 정책
• 예시들
• 계산 그리드: 여러 도메인 간에 값비싼 리소스 공유
• 공유 장비 : 대규모로 구축된 공유 전파망원경의 제어, 관리 및 사용 방법
공유 센서 네트워크?
• 예외: 여러 피어투피어 네트워크
• 파일 공유 시스템(예: BitTorrent 기반)
• P2P 텔레포니
• 피어 지원 오디오 스트리밍(Spotify)
• 참고: 관리 주체가 아닌 최종 사용자가 협업합니다.
스케일링 기법
• 통신 지연 시간 숨기기
• 비동기식 통신 활용
• 들어오는 응답에 대한 별도의 처리기가 있습니다
• 문제: 모든 애플리케이션이 이 모델에 맞지 않음
• 컴퓨팅을 고객에게 이동시켜 솔루션을 원활하게 지원
스케일링 기법
• 여러 시스템에 걸쳐 데이터 및 계산 파티션 분할
• 클라이언트로 계산 이동(Java 애플릿)
• 분산형 명명 서비스(DNS)
• 분산형 정보시스템
• 복제 및 캐슁: 여러 시스템에서 데이터 복사본을 사용할 수 있도록 지원
• 복제된 파일 서버 및 데이터베이스
• 미러링된 웹 사이트
• 웹 캐시(브라우저 및 프록시)
• 서버 및 클라이언트에서 파일 캐싱
스케일링(Scaling): 복제의 문제점
• 한 가지를 제외하고 복제를 적용하는 것은 쉽습니다
• 여러 개의 복사본(캐시되거나 복제됨)이 있으면 불일치가 발생합니다. 하나의 복사본을 수정하면 다음과 같습니다
그 복사본은 다른 것들과 다릅니다.
• 복사본을 항상 일관성 있게 유지하려면 일반적인 방법으로 각 복사본에 대한 글로벌 동기화가 필요합니다
수정.
• 글로벌 동기화는 대규모 솔루션을 제공하지 않습니다.
• 불일치를 견딜 수 있다면 글로벌 동기화의 필요성을 줄일 수 있겠지만
불일치를 허용하는 것은 응용프로그램에 따라 달라집니다.
분산형 시스템 개발: 함정
• 패치를 적용해야 하는 실수로 인해 많은 분산 시스템이 불필요하게 복잡해집니다
나중에. 많은 잘못된 가정들이 종종 만들어집니다.
• 잘못된(그리고 종종 숨겨진) 가정
• 네트워크는 신뢰성이 있습니다
• 네트워크가 안전합니다
• 네트워크가 균질합니다
• 토폴로지가 변경되지 않습니다
• 대기 시간이 0입니다
• 대역폭이 무한대임
• 운송비가 0입니다
• 관리자가 1명입니다
3가지 유형의 분산형 시스템
• 고성능 분산 컴퓨팅 시스템
• 분산정보시스템
• 퍼베이시브 컴퓨팅을 위한 분산형 시스템
병렬 컴퓨팅
• 병렬 컴퓨팅으로 시작하는 고성능 분산 컴퓨팅
• 멀티프로세서 및 멀티코어 대 멀티컴퓨터
클러스터 컴퓨팅
• 기본적으로 LAN을 통해 연결된 하이엔드 시스템 그룹
• 동종: 동일한 OS, 거의 동일한 하드웨어
• 단일 관리 노드
그리드 컴퓨팅
• 다음 단계: 모든 곳에서 수많은 노드가 생성됩니다
• 이종
• 여러 조직에 분산되어 있음
• 광역 네트워크를 쉽게 확장할 수 있습니다
• 참고: 협업을 허용하기 위해 그리드는 일반적으로 가상 조직을 사용합니다. 기본적으로 다음과 같습니다
자원 할당에 대한 권한 부여를 허용하는 사용자 그룹입니다.
그리드 컴퓨팅을 위한 아키텍처
• 층들이
• 패브릭: 로컬 리소스에 인터페이스를 제공합니다(상태 쿼리 및
기능, 잠금 등)
• 연결성: 통신/거래 프로토콜, 예를 들어 이동을 위한 프로토콜
자원 간의 데이터. 또한 다양한 인증 프로토콜.
• 리소스: 프로세스를 생성하는 등의 단일 리소스를 관리합니다
데이터 읽기.
• 수집: 여러 리소스에 대한 액세스를 처리합니다. 검색,
스케쥴링, 복제.
• 응용프로그램: 단일 조직에 실제 그리드 응용프로그램을 포함합니다.
열기/닫기 아이콘
클라우드 컴퓨팅
• 4개의 레이어를 구분합니다
• 하드웨어: 프로세서, 라우터, 전력 및 냉각 시스템. 일반적으로 고객은 전혀 볼 수 없습니다
이것들.
• 인프라스트럭처: 가상화 기술 구현. 가상화 할당 및 관리를 중심으로 진화
스토리지 디바이스 및 가상 서버를 구축할 수 있습니다.
• Platform: 스토리지 등을 위한 상위 수준의 추상화를 제공합니다. 예: Amazon S3 스토리지
system은 (로컬로 생성된) 파일을 소위 버킷에 정리하고 저장할 수 있는 API를 제공합니다.
• 응용프로그램: 오피스 스위트(텍스트 프로세서, 스프레드시트 응용프로그램,
프레젠테이션 애플리케이션). OS와 함께 제공되는 애플리케이션 제품군에 필적합니다.
애플리케이션 통합
• 많은 네트워크화된 애플리케이션에 직면해 있지만 상호운용성을 달성하고 있는 조직
고통스러웠습니다.
• 기본접근법
• 네트워크화된 응용프로그램은 원격 클라이언트가 서비스를 사용할 수 있도록 서버에서 실행되는 응용프로그램입니다.
단순한 통합: 클라이언트는 (다른) 애플리케이션에 대한 요청을 결합하고, 이를 전송하고, 수집합니다
응답하고 일관성 있는 결과를 사용자에게 제시합니다.
• 다음 단계: 애플리케이션 간 직접적인 커뮤니케이션을 허용하여 Enterprise로 이어집니다
애플리케이션 통합(EAI).
분산형 퍼베이시브 시스템
• 노드가 작고 이동성이 있으며 종종 더 큰 시스템에 내장되는 차세대 분산 시스템으로, 시스템이 사용자 환경에 자연스럽게 혼합된다는 점이 특징입니다.
• 세 가지(중복) 하위 유형
• 유비쿼터스 컴퓨팅 시스템: 퍼베이시브 및 지속적으로 존재, 즉 시스템과 사용자 사이에 지속적인 상호작용이 존재합니다.
• 모바일 컴퓨팅 시스템: 널리 보급되어 있지만 기기가 본질적으로 모바일이라는 점에 중점을 두고 있습니다.
• 센서 네트워크: 실제 (협업적) 감지 및 환경 작동에 중점을 두고 널리 퍼져 있습니다.
유비쿼터스 시스템
• 핵심요소
• 분산: 장치가 네트워크로 연결되고 분산되며 투명한 방식으로 액세스 가능
• 상호 작용: 사용자와 기기 간의 상호 작용은 매우 방해받지 않습니다
• 상황 인지(Context Awareness): 시스템은 상호 작용을 최적화하기 위해 사용자의 상황을 인지합니다
• 자율성(Autonomy): 기기는 인간의 개입 없이 자율적으로 작동하기 때문에 매우 자율적입니다
관리되는.
• 인텔리전스(Intelligence): 시스템 전체가 광범위한 동적 작업과 상호 작용을 처리할 수 있습니다
모바일 컴퓨팅
• 독특한 특징
• 무수히 많은 다양한 모바일 장치(스마트폰, 태블릿, GPS 장치, 리모컨, 액티브 배지).
• 모바일은 시간의 흐름에 따라 기기의 위치가 변화할 것으로 예상되는 →지역 서비스의 변화, 접근성 등을 의미합니다. 키워드 : 발견.
• 통신이 더욱 어려워질 수 있습니다. 안정적인 경로가 없을 뿐만 아니라 연결이 보장되지 않을 수도 있습니다. → 중단-tolerant 네트워킹.