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

More Related Content

Similar to 오픈소스 소프트웨어 성능 최적화 보고서 6장

01.표준프레임워크개요
01.표준프레임워크개요01.표준프레임워크개요
01.표준프레임워크개요Hankyo
 
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3Ji-Woong Choi
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservicesSeong-Bok Lee
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
 
Client dispatcher server_pattern
Client dispatcher server_patternClient dispatcher server_pattern
Client dispatcher server_patternHeo Seungwook
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크InGuen Hwang
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스Terry Cho
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPgDay.Seoul
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!Open Source Consulting
 
Observability customer presentation samuel-2021-03-30
Observability customer presentation samuel-2021-03-30Observability customer presentation samuel-2021-03-30
Observability customer presentation samuel-2021-03-30SAMUEL SJ Cheon
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가VMware Tanzu Korea
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개Gruter
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
Openstack Usecase(2018)
Openstack Usecase(2018)Openstack Usecase(2018)
Openstack Usecase(2018)Gasida Seo
 
DB관점에서 본 빅데이터 (2019년 8월)
DB관점에서 본 빅데이터 (2019년 8월)DB관점에서 본 빅데이터 (2019년 8월)
DB관점에서 본 빅데이터 (2019년 8월)Kee Hoon Lee
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
IaaS Cloud Architecture Design
IaaS Cloud Architecture DesignIaaS Cloud Architecture Design
IaaS Cloud Architecture DesignTerry Cho
 

Similar to 오픈소스 소프트웨어 성능 최적화 보고서 6장 (20)

01.표준프레임워크개요
01.표준프레임워크개요01.표준프레임워크개요
01.표준프레임워크개요
 
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
 
Cloud migration pattern using microservices
Cloud migration pattern using microservicesCloud migration pattern using microservices
Cloud migration pattern using microservices
 
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
 
Window eos with aws
Window eos with awsWindow eos with aws
Window eos with aws
 
Client dispatcher server_pattern
Client dispatcher server_patternClient dispatcher server_pattern
Client dispatcher server_pattern
 
05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크05. it정보화전략-어플리케이션 프레임워크
05. it정보화전략-어플리케이션 프레임워크
 
1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스1. 아키텍쳐 설계 프로세스
1. 아키텍쳐 설계 프로세스
 
Pg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ffPg day seoul 2016 session_02_v1.0_ff
Pg day seoul 2016 session_02_v1.0_ff
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10![웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
[웨비나] 클라우드 마이그레이션 수행 시 가장 많이 하는 질문 Top 10!
 
Observability customer presentation samuel-2021-03-30
Observability customer presentation samuel-2021-03-30Observability customer presentation samuel-2021-03-30
Observability customer presentation samuel-2021-03-30
 
꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가꿀밋업1탄_왜_마이크로서비스인가
꿀밋업1탄_왜_마이크로서비스인가
 
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
201210 그루터 빅데이터_플랫폼_아키텍쳐_및_솔루션_소개
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
Openstack Usecase(2018)
Openstack Usecase(2018)Openstack Usecase(2018)
Openstack Usecase(2018)
 
DB관점에서 본 빅데이터 (2019년 8월)
DB관점에서 본 빅데이터 (2019년 8월)DB관점에서 본 빅데이터 (2019년 8월)
DB관점에서 본 빅데이터 (2019년 8월)
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
IaaS Cloud Architecture Design
IaaS Cloud Architecture DesignIaaS Cloud Architecture Design
IaaS Cloud Architecture Design
 

오픈소스 소프트웨어 성능 최적화 보고서 6장

  • 1. 오픈소스 소프트웨어 성능 최적화 보고서 제 6장 최적화 원리 패턴들을 구성요소 배 치와 구성 도구들에 적용하기
  • 2. 002 01/ 소개 02/ DAnCE의 개요 03/ 최적화 원리 패턴 04/ 결론 Contents
  • 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)
  • 12. 0012 DAnCE 개요 02 1.DAnCE 실행 시점 아키텍처 2.자료 모형 3.배치공정 DAnCE의 중요한 성능 및 규모 가 변성 문제들
  • 13. 0013 DAnCE 개요 02 1. DAnCE 실행 시점 아키텍처 1. 관리자 : 하나의 문맥 안의 모든 배치 개체들을 관리하는 단일체 데몬임. 관리자는 모든 배치 활동의 진입점으로, 그리고 응용 프로 그램 관리자 역할의 구현을 위한 팩토리로 작용 2. 응용 프로그램 관리자 : 구성 요소 기반 응용 프로그램의 실행 인 스턴스들의 수명 주기를 관리. 각 응용 프로그램 관리자는 정확히 하나의 구성요소 기반 응용 프로그램을 대표하며, 배치 및 해체를 추동하는데 쓰임 3. 응용 프로그램 : 영역 구성요소 기반 응용프로그램의 배치된 인스 턴스를 대표. 응용프로그램을 구성하는 관련 구성요소 인스턴스들 의 구성을 마무리 짓고 배치된 구성요소 기반 응용 프로그램의 실 행을 시작하는데 쓰임
  • 14. 0014 DAnCE 개요 02 1. 응용 프로그램의 작성에 쓰이는 여러 도구들(개 발환경, 응용 프로그램 모형화 및 패키지 작성, 배 치 계획 수립 도구 등등) 사이의 교환 방식 2. 실행시점 기반 구조에 쓰이는 구성 및 배치를 서 술하는 지시문 2. 자료 모형
  • 15. 0015 DAnCE 개요 02 메타 데이터 = 패키지 작성(packaging) + 영역(domain) + 배치(deployment) 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 미들웨어 플랫폼으로 이전 -> 문제점 발생
  • 19. 0019 최적화 원리 패턴 03 DAnCE의 성능상의 문제점 -현장 하드웨어들의 제한된 성능 -노드들을 연결하는 무선망의 비교적 느린 속도 -시스템의 엄격한 실시간 요구사항
  • 20. 0020 최적화 원리 패턴 03 해결책 1. 배치 계획 파싱의 최적화 2. 계획 분석의 최적화 3. 배치 과제들의 직렬 실행을 줄이는 최적화
  • 21. 0021 최적화 원리 패턴 03 1. 배치 계획 파싱 정의 : 구성 요소 인터페이스들에 대한 관련 구성 메타자료와 개별 노드들과의 대응 관계, 그리 고 필요한 임의의 연결 정보를 모두 포함하는 하나의 배치 계획 자료구조로 서술
  • 22. 0022 최적화 원리 패턴 03 1. 배치 계획 파싱의 문제점 문제점 : 배치 계획 파일의 처리 때문에 성능이 크게 떨어짐 원인 1. 구성요소 인터페이스 개수와 연결개수가 늘어남에 따라 XML 배치 계획 파일이 커짐 -> 메모리에 적재하고 검증시 상당 한 입출력 부담 발생 원인 2. XML 문서 형식을 배치 기반구조에서 직접 사용할 수 없음 -> I이 형식으로 변환해야 함
  • 23. 0023 최적화 원리 패턴 03 1. 배치 계획 파싱의 최적화 1. XML-IDL 변환 능력을 최적화한다. 2. 잠복지연 결정적 배치들을 위한 XML 파일 전처리
  • 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. 명확한 구조적, 기술적 지도력의 부재는 오픈소스 프로젝트에 해가 된다.