본문 바로가기
대학원(~2019.07)/분산처리(소프트웨어공학)

Chapter 1 - Characterization of Distributed System [분산 시스템의 성격 (2/2)]

by 카터(Carter. CHO) 2017. 3. 16.


2. 예시


분산시스템은 아래와 같은 분야에서 사용 가능하다.


- Finance and commerce(금융 상거래)

eCommerce(e.g Amazon, eBay, Paypal, Online banking and trading


- 인포메이션 소사이어티(SNS)

Web information and search engines, ebooks, wikipedia social networking ..


- Creative industries and entertainment

온라인 게임, 음악, User generated content(YouTube, Flickr)


- Healthcare

온라인 진료, patient 모니터링


- Education

이러닝, Virtual 러닝


- Science

The grid as an enabling technology for collaboration between scientists


- Environmental management

-------------------------------------------------------------------------------------------------------


(1) Web search 


구글의 경우 웹 서치 시장의 리더라고 할 수 있다.


중요 사항 


- 물리적으로 거대하며 수 많은 사용자가 동시에 자원에 접근한다.

- Distributed file system

- Structured distributed storage system

- 락 서비스 (A lock service) *사용자 간의 충돌이 없어야 한다.

- 거대한 병렬 분산 시스템을 프로그램 모델은 관리 및 지원한다.


(2) Massively multiplayer online games (MMOGs)


인터넷의 지속적인 서비스로 수 많은 사용자의 상호작용을 이끌어내며, 게임 환경에 몰입할 수 있는 경험을 제공한다.


(EVE, Everquest)


(3) Financial trading


- 넓은 범위의 정보 자원에 대해 리얼 타임(real-time)으로 제공되어야 한다.

- 금융권의 processing interest(이자), communication의 특성을 고려하여 높은 신뢰성과 정확한 시간(적시성)이 필요. 


 3. 내용


(1) Focus on resource sharing


- Resource sharing (자원 할당)

* 하드웨어 장치(printer)

* 데이터 자원 (files)

* 구체적 기능 자원(serch engines)


- Service

* 사용자의 응용프로그램들을 연결 관리


- Server

* 많은 클라이언트들을 주문을 응답하며, 요구에 즉시 반응


(2) Issue


- Openness (확장성 장점과 단점)

시스템 다양한 방법으로 확장이 가능하다 하지만 이 부분은 장점이자 단점이며, 

확장의 경우 단계와 방법을 명시하는 표준화 과정을 거쳐야만 한다. (유지보수)


- Heterogeneity (이질성 문제)

*Network, Computer, OS, Programming Language, Developer

이러한 문제를 해결하기 위해 미들웨어를 설치한다.

(Masking)


- Security (보안 문제)

*Confidentiality(기밀성), Integrity(무결성), Availability(가용성)


보안의 문제는 자원을 공유하는 단위가 커질 수록 Risk는 증가 된다.

(Denial of service attacks)


- Scalability (확장 가능성)

가용성을 보장하기 위한 조건

* 리소스 확장에 있어서 합리적인 조절이 가능해야 한다.

* Controlling에 있어서 자원의 Loss가 없어야 한다.

* Preventing software resources running out

* 병목구간(Bottleneck)을 회피해야 한다.


- Failure handling (실패 처리)

* 실패 지점 찾기

* 실패 구간 Masking(hiding) : 사용자는 BACK단의 문제에는 관심이 없다. 직접 받는 서비스에 영향을 미치지 못하면 

오류는 일어나지 않은 것이다.

* 결함 포용 Tolerating Failure

* Recovery from failures :  HOT, COLD DB


- Concurrency (일치성)

'Operation must be synchronized in such a way that its data remains consistent'


- Transparency (투명성)

* Access transparency

* Location ''

* Concurrency ''

* Replication ''

* Failure ''

* Performance ''

* Scaling ''

* Network ''


- Quality of service (QOS)

'The ability of systems to meet such deadlines'