3. 003
소개
01
기업 분산 시스템과 자원 제한적 실시간 내장 시스템의 속성
들을 공유하는, 중요한 부류의 응용 분야
1. 임무 결정적
2. 엄격한 안정성
3. 신뢰성
4. 서비스 품질(quality of service, QoS) 요구사항
분산 실시간 내장(distributed,
real-time and embedded; DRE)
4. 004
소개
01
DRE 시스템의 응용 프로그램 및 기반 구성요소들의 배치에 관
한 고유한 난제
1. DRE 시스템 영역의 응용 프로그램에는 특정 하드웨어/소프
트웨어 같은 대상 환경에 대한 특정한 의존성들이 존재 할
수 있다.
2. DRE 시스템의 배치 기반 구조는 반드시 유한한 자원을 가진
환경의 엄격한 자원 요구 조건들을 만족해야 한다.
분산 실시간 내장(distributed,
real-time and embedded; DRE)
5. 005
소개
01
- DRE 시스템에서 많이 쓰이는 응용 프로그램 개발 패러다임.
- 개발자가 서로 상호작용하는 블랙박스 구성요소들과 그 환경
을 잘 정의된 인터페이스들을 통해서 개발하도록 장려함으로
써 체계적인 소프트웨어 재사용을 촉진
- 응용 프로그램의 구성 및 수명 주기를 제어하는 표준화된 메
커니즘을 제공함으로써 고도로 복잡한 부산 시스템의 배치를
단순화한다.
-> 메커니즘을 통해 규모가 크고 복잡한 응용 프로그램을 더
작고 관리하기 쉬운 기능 단위들로부터 조합할 수 있다.
구성요소 기반 소프트웨어 공학
(Component-Based Software
Engineering, CBSE;)
6. 006
소개
01
1. 구성요소 의존성 및 버전 관리
2. 구성요소 구성 관리
3. 분산 연결 및 수명주기 관리
구성요소 기반 시스템의 배치와
구성관리를 어렵게 만드는 요인
p.116
7. 007
소개
01
CIAO용 배치 엔진을 개발
OMG의 Deployment and Configuration 명세를 구현한 것
배치와 구성에 대한 참신한 접근방식을 개발하는 대학원생들의 연구
수단으로 쓰임
-> 문제발생
1. DAnCE의 검사된 용례들은 비교적 단순하고 좁은 범위에 집중
2. 전체 구조에 대한 하나의 통일된 구조적 전망이 없음
-> LE-DAnCE(locality-enabled; 국소활성화)으로 개선
DAnCE(Deployment and
Configuration Engine;DBO) 탄생
p.116
8. 008
소개
01
최적화 원리 패턴
p.116
제목 원리 네트워킹의 예
낭비를 피하라 명백한 낭비를 피한다 0 복사(zero-copy)
시간상의 이동 시간상에서 계산을 옮긴
다(사전 계산, 게으른 평
가, 비용 공유, 일괄처리)
쓸 때 복사
명세 완화 명세를 느슨하게 만든다
(시간을 위해 확실성을 희
생, 시간을 위해 정확성을
희생, 시간상의 계산 이동)
공정한 대기열 처리
다른 구성요소 활용 다른 시스템 구성요소들
을 활용한다(국소성 활용,
메모리 대 속도 절충, 하
드웨어 활용)
Lulea IP 조회, TCP 체크
섬
하드웨어 추가 성능 개선을 위해 하드웨
어를 추가한다
파이프라인식 IP조회, 카
운터
효율적인 루틴 효율적인 루틴을 만든다 UDP 조회
9. 009
소개
01
최적화 원리 패턴
p.116
제목 원리 네트워킹의 예
일반성 회피 불필요한 일반성을 피한
다
Fbufs
명세 대 구현 명세와 구현을 혼동하지
않는다
Upcalls
힌트 전달 인터페이스로 힌트 비슷
한 정보를 전달한다
패킷 필터
정보 전달 프로토콜 헤더로 정보를
전달한다
꼬리표 전환
예기된 용례 예기된 용례를 최적화한
다
헤더 예측
상태의 활용 상태를 추가하거나 활용
해서 속도를 높인다
활성 VC 목록
자유도 자유도를 최적화한다 IP 트라이 조회
유한한 우주 활용 유한한 우주들을 위한 특
별한 기법들을 사용한다
타이밍 휠
10. 0010
DAnCE
개요
02
- 구성요소 기반 응용 프로그램 개발 과
정 전반에 쓰이는 표준적인 교환 형식들
을 제공하며, 패키지 작성과 계획 수립
에 쓰이는 실행시점 인터페이스들도 제
공
- 구성요소 배치 계획을 통해서 미들웨
어 배치 기반구조에게 배치 명령들을 전
달한다.
OMG D&C 명세
11. 0011
DAnCE
개요
02
구성요소 인스턴스들을 위한 완전한 배치
및 구성 명령과 관련 연결 정보를 담음.
DRE 시스템은 초기화 과정에서 반드시 이
정보를 파싱하고, 구성요소들을 물리적 하
드웨어 자원들에 배치하고, 시스템을 제 때
활성화해야 한다.
구성요소 배치 계획(component
deployment plan)
13. 0013
DAnCE
개요
02
1. DAnCE 실행 시점 아키텍처
1. 관리자 : 하나의 문맥 안의 모든 배치 개체들을 관리하는 단일체
데몬임. 관리자는 모든 배치 활동의 진입점으로, 그리고 응용 프로
그램 관리자 역할의 구현을 위한 팩토리로 작용
2. 응용 프로그램 관리자 : 구성 요소 기반 응용 프로그램의 실행 인
스턴스들의 수명 주기를 관리. 각 응용 프로그램 관리자는 정확히
하나의 구성요소 기반 응용 프로그램을 대표하며, 배치 및 해체를
추동하는데 쓰임
3. 응용 프로그램 : 영역 구성요소 기반 응용프로그램의 배치된 인스
턴스를 대표. 응용프로그램을 구성하는 관련 구성요소 인스턴스들
의 구성을 마무리 짓고 배치된 구성요소 기반 응용 프로그램의 실
행을 시작하는데 쓰임
14. 0014
DAnCE
개요
02
1. 응용 프로그램의 작성에 쓰이는 여러 도구들(개
발환경, 응용 프로그램 모형화 및 패키지 작성, 배
치 계획 수립 도구 등등) 사이의 교환 방식
2. 실행시점 기반 구조에 쓰이는 구성 및 배치를 서
술하는 지시문
2. 자료 모형
16. 0016
DAnCE
개요
02
1. 계획 준비
- 계획을 분석해서 배치에 관여하는 노드들을 결정
- 계획을 ‘국소성 제한’ 계획들로 분할
- 각각의 노드 관리자에게 국소성 제한 계획들이 주어짐
- 실행 관리자는 그러한 참조들을 이용해해서 영역 응용 프로그램 관리
자를 생성
2. 시동 시작
- 각 노드마다 노드 응용 프로그램 관리자에게 작업 위임
- 모든 구성요소를 메모리에 적재, 사전 구성 작업 수행, 종단에 대한 참
조 수집
3. 시동 마무리
- 객체 참조들을 각각의 노드 응용 프로그램에게 분배
- 모든 연결이 만들어짐
4. 시작
3. 배치공정
17. 0017
최적화
원리 패턴
03
University of Alaska Southeast(UAS)가 주재하는 빙
하 및 분수령 감지기 망.
빙하 동역학과 질량 평형, 분수령 수문학, 해안 해양
생태계, 주변에 대한 인간의 영향/위험 요소에 관련
된 자료를 감시하고 수집.
-> 빙하 속도와 빙하호 형성, 배수 사이의 상관관계,
분수령 수문학, 온도 변동의 연구에 쓰임
SEAMONSTER 플랫폼의 개요
(South East Alaska Monitoring Network for Science,
Telecommunications, Education, and Reserch)
18. 0018
최적화
원리 패턴
03
SEAMONSTER 플랫폼의 개요
(South East Alaska Monitoring Network for Science,
Telecommunications, Education, and Reserch)
한마디로 동적인 환경 변화와 한정적인 자원 가용성의 조
합 때문에, 주어진 자원을 효율적으로 활용해야할 필요가
있음.
-> CIAO와 DAnCE 미들웨어 플랫폼으로 이전
-> 문제점 발생
21. 0021
최적화
원리 패턴
03
1. 배치 계획 파싱
정의 : 구성 요소 인터페이스들에 대한 관련 구성
메타자료와 개별 노드들과의 대응 관계, 그리
고 필요한 임의의 연결 정보를 모두 포함하는
하나의 배치 계획 자료구조로 서술
22. 0022
최적화
원리 패턴
03
1. 배치 계획 파싱의 문제점
문제점 : 배치 계획 파일의 처리 때문에 성능이 크게 떨어짐
원인 1. 구성요소 인터페이스 개수와 연결개수가 늘어남에 따라
XML 배치 계획 파일이 커짐 -> 메모리에 적재하고 검증시 상당
한 입출력 부담 발생
원인 2. XML 문서 형식을 배치 기반구조에서 직접 사용할 수 없음
-> I이 형식으로 변환해야 함
24. 0024
최적화
원리 패턴
03
1. 배치 계획 파싱의 최적화
1. XML-IDL 변환 능력을 최적화한다.
XSC(XML Schema Compiler) : XML 스키마를 읽고, DOM XML 프로
그래밍 API에 기초한 C++ 인터페이스 생성
-> 시간과 공간을 많이 소모 –> 문서 전체를 처리해서 트리 기반을
만든후에야 XML-I이 변환을 할 수 있기때문
25. 0025
최적화
원리 패턴
03
1. 배치 계획 파싱의 최적화
1. XML-IDL 변환 능력을 최적화한다.
1)추상의 비용을 인식하라
- 추상을 사용하면 저수준의 코드를 반복 작성할 필요가 없지만, 잠
재적인 비용을 파악하고, 문서화하고 이해해야 한다.
2)용례에 맞는 적절한 추상을 사용하라
- Vector와 list 중에서 list를 선택
- Vector는 삽입성능이 좋지 않아 XML 파싱 성능이 매우 나쁨
26. 0026
최적화
원리 패턴
03
1. 배치 계획 파싱의 최적화
2. 잠복지연 결정적 배치들을 위한 XML 파일 전처리
가능한 비용이 큰 계산을 임계경로(critical path) 바깥에서 수행한다.
-> 시간상의 이동
27. 0027
최적화
원리 패턴
03
2. 계획 분석의 최적화
배치 계획을 구성하는 배치 부분 문제들의 개수와 각 부분 문제에
속하는 구성요소 인스턴스들을 파악
계획 분할 알고리즘
계획에서 배치해야 할 각 인스턴스마다 그것을 담아야 할 부분 계
획을 결정하고, 부분 계획 자료구조에서 그 부분 계획을 가져오
거나 필요하다면 새 부분 계획을 생성. 그리고 나서 필요한 모든
메타자료를 부분 계획에 복사
28. 0028
최적화
원리 패턴
03
2. 계획 분석의 최적화
문제점 1. IDL의 참조 표현
문제점 2. 배치 계획 순차열 안의 메모리 할당
문제점 3. 계획 분석의 비효율적인 병렬화
29. 0029
최적화
원리 패턴
03
2. 계획 분석의 최적화
배치 계획 분석의 최적화 원리 패턴들
패턴 1. 이전에 계산된 결과를 이후 용도를 위해 보관하라.
패턴 2. 가능하면 자료구조를 미리 할당하라.
패턴 3. 알고리즘을 병렬화의 이득을 취할 수 있도록 설계하라.
패턴 4. 공유 자료에 대한 접근들을 동기화가 필요하지 않은 형태로
조직화하라.
30. 0030
최적화
원리 패턴
03
3. 배치 과제들의 직렬 실행을
줄이는 최적화
문제점 1. 범용 배치 논리와 특정 배치 논리가 많은 자료를 공유
-> 단일한 구성요소의 맥락에서 설치
문제점 2. 개별 응용 프로그램 프로세스들에 설치되는 구성요소들
의 집합이 개별적인 배치 부분 과제로 간주되므로, 그런 집합들
이 한 번에 하나씩 순차적으로 처리
31. 0031
최적화
원리 패턴
03
3. 배치 과제들의 직렬 실행을
줄이는 최적화
직렬화된 국면 실행을 줄이기 위한 최적화 원리 패턴들
1. 명세들 때문에 설계에 과도한 제약을 가하지 마라
2. 관심사의 분리를 엄격하게 유지하라
3. 그러한 계층 또는 모듈들이 비동기적으로 상호작용하게 한다.
32. 0032
결론
04
최적화 교훈
1. 병렬화의 활용은 아주 중요한 최적화 기회이다
2. 가능하면 시간이 많이 걸리는 연산들을 임계 경로 바깥으로 이
동하라.
3. 프로세스들의 직렬 실행은 DRE 시스템의 성능 문제들의 주된
근원이다.
4. 명확한 구조적, 기술적 지도력의 부재는 오픈소스 프로젝트에
해가 된다.