Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- AWS 생성
- 클래스 참조
- vue 실행
- reset
- vue 추가
- Quartz dependency
- Quartz 라이브러리
- ..gitignore
- 테스팅
- 타임리프 참조 오류
- Jenkins
- git 폴더 모으기
- document 함수
- EL1021E
- 채팅 프로젝트
- deploy.sh
- 배열 call by value
- 자바 swing 프로젝트
- 배포 자동화
- firstChild
- submit 기본동작
- 환경변수
- 소프트웨어
- CI/CD
- dbeaver 백업/복구
- .ppk
- 깃허브 토큰 생성
- 되돌리기
- 깃허브 토큰 발급
- Node Property
Archives
- Today
- Total
TY blog
분산 소프트웨어 공학 본문
1. 분산시스템
사용자에게 하나의 시스템으로 보이는 독립적인 컴퓨터들의 집합
* 분산 시스템의 장점
- 자원공유(resource sharing) : 하드웨어 및 소프트웨어 자원을 공유
- 개방성(openness) : 표준 인터넷 프로토콜을 준수, 여러 공급업체의 장비와 소프트웨어 사용
- 동시성(concurrency) : 여러 프로세스들이 동시에 수행
- 확장성(scalability) : 새로운 자원을 추가하여 처리능력(throughput)을 올림
- 결함 내성(fault tolerance) : 결함이 발생하였을 때에도 서비스를 제공할 수 있는 능력
* 전체 시스템의 성능은 네트워크의 영향을 많이 받는다.
- 네트워크 대역폭, 네트워크 부하
* 서비스 품질
서비스의 피크 타임에 높은 품질의 서비스를 제공할 수 있는 시스템은 비용 효율 적이지 않음, 클라우드 컴퓨팅을 사용하여 해결 => 평소 서비스에는 작은 용량을, 피크 타임에는 높은 용량을 사용한다.
- 미들웨어
운영체제와 애플래케이션 사이에서 공통 서비스를 제공
- 분산 시스템의 미들웨어
상호 작용 지원 : 언어, 플랫폼 독립성
공통 서비스의 제공 : 여러 컴포넌트에서 재사용 가능한 서비스를 제공한다.
2. 클라이언트-서버 컴퓨팅
- 클라이언트-서버 아키텍처 : 서버가 제공하는 서비스의 집합, 클라이언트는 서버가 어디에 있는지 알아야 한다.
- 멀티 프로세서 시스템 : 부하균형(load balancing) 소프트웨어가 필요할 수 있음 (서버 분산)
* 클라이언트/서버 계층 서비스 시스템
- 표현(presentation) 계층 : 사용자에게 정보표현, 사용자 상호작용 관리
- 데이터 처리(data-handling) 계층 : 클라이언트로부터 전송되는 데이터를 관리, 웹페이지 생성 (web server)
- 애플리케이션 처리(application processing) 계층 : 애플리케이션 논리의 구현 (application server)
- 데이터베이스(database) 계층 : 데이터를 저장하고 쿼리 서비스를 제공 (DBMS)
3. 클라이언트-서버 아키텍처
- Thin 클라이언트 모델 : 표현계층만 클라이언트에서 구현, 나머지 계층은 서버에서 구현
- Fat 클라이언트 모델 : 표현과 애플리케이션 처리(일부)를 클라이언트에서 구현, 데이터 관리와 데이터베이스 기능을 서버에서 구현
4. 피어-투-피어 아키텍처
- 네트워크 상의 어떤 노드도 주어진 연산을 수행할 수 있는 비중앙집중적(decentralized) 시스템
- 서버와 클라이언트 구분이 없다.
ex) 블록체인 기술, 비트코인
* 참고문헌 : (주)한티에듀 소프트웨어공학 제10판
'소프트웨어 공학' 카테고리의 다른 글
소프트웨어 형상관리 (0) | 2023.12.06 |
---|---|
소프트웨어 신뢰성, 안전성 공학 (0) | 2023.11.21 |
확실성 있는 소프트웨어 시스템 (0) | 2023.11.14 |
소프트웨어 재공학 (0) | 2023.11.07 |
소프트웨어 개발 테스팅 (0) | 2023.10.17 |
Comments