객체지향설계와패턴 Lecture #14: 아키텍처패턴 Eun Man Choi

Similar documents
Network Programming

thesis

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - chap01-C언어개요.pptx

[Brochure] KOR_TunA

final_thesis

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

MVVM 패턴의 이해

TTA Journal No.157_서체변경.indd

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

제8장 자바 GUI 프로그래밍 II

17장 클래스와 메소드

JVM 메모리구조

Microsoft PowerPoint - 04-UDP Programming.ppt

gnu-lee-oop-kor-lec06-3-chap7

슬라이드 1

Ç×°ø¾ÈÀüÁ¤º¸³×Æ®¿öÅ©±¸Ãà¹æ¾È¿¡°üÇÑ¿¬±¸.hwp

서현수

PowerPoint Presentation

JAVA PROGRAMMING 실습 05. 객체의 활용

Architectural Design

1. 제품 개요 AhnLab Policy Center 4.6 for Windows(이하 TOE)는 관리대상 클라이언트 시스템에 설치된 안랩의 안티바이러스 제품인 V3 제품군에 대해 보안정책 설정 및 모니터링 등의 기능을 제공하여 관리대상 클라이언트 시스템에 설치된 V3

Chap7.PDF

PowerPoint Presentation


시장자료 조사, 수집 시장 동향 분석 표적시장 결정 시장별 적략 수립 시장별 전략 수행 평가 및 수정 기술기획 손익자료 수집, 제품 원가 분석 손익분기점 설정 수익 설계 수익정책설계 수익정책 수익정책 결정 손익계산서 평가 전략 기획 제품 전략자료 조사, 수집 사업 포트

슬라이드 1

Slide 1

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

PowerPoint Presentation

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - RMI.ppt

歯이시홍).PDF

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint Presentation

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

PowerPoint Presentation

Microsoft PowerPoint - CSharp-10-예외처리

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])

게시판 스팸 실시간 차단 시스템

thesis

PCServerMgmt7

810 & 는 소기업 및 지사 애 플리케이션용으로 설계되었으며, 독립 실행형 장치로 구성하거 나 HA(고가용성)로 구성할 수 있습니다. 810은 표준 운영 체제를 실행하는 범용 서버에 비해 가격 프리미엄이 거의 또는 전혀 없기 때문에 화이트박스 장벽 을

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

PowerPoint Presentation

슬라이드 1

Windows Live Hotmail Custom Domains Korea

Microsoft PowerPoint - 03-TCP Programming.ppt

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Cloud Friendly System Architecture

객체지향설계와패턴 Lecture #0: 강의소개 Eun Man Choi

Module 2 Active Directory Domain Services 소개

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

안드로이드 서비스

초보자를 위한 분산 캐시 활용 전략

제목

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

Design Issues

슬라이드 1

Ä¡¿ì³»ÁöÃÖÁ¾

The Pocket Guide to TCP/IP Sockets: C Version

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

UI피피티

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

Special Issues ➋ + 마이크로 그리드용 공통 플랫폼 기술개발 현황 및 전망 마이크로 그리드용 공통 플랫폼 기술개발 현황 및 전망 1 개황 마이크로 그리드란 에너지 소비자의 수요를 만족시키기 위해 분산자원을 적 극 활용함으로써, 지역적 부하 공급을 만족하는

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

gnu-lee-oop-kor-lec10-1-chap10

슬라이드 1

라우터

consulting

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx


Microsoft Word - AnyLink Introduction v3.2.3.doc

Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

목차 전략적 우위 달성... 3 비즈니스 응용 프로그램 프레임워크의 중요성... 3 비즈니스 응용 프로그램의 가치 측정... 3 xrm의 기능... 4 xrm은 어떻게 가치를 제공하는가... 4 위험의 완화... 4 고객 사례... 5 개발 기간의 단축... 5 고객

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

쉽게 풀어쓴 C 프로그래밍

Intra_DW_Ch4.PDF

슬라이드 1

Windows Server 2012

소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과

<312E D65B8A620C0CCBFEBC7D120B8D6C6BCC7C3B7A7C6FB20C1F6BFF820BEC6C5B0C5D8C3B320C7A5C7F628BCF6C1A4292E687770>

Microsoft PowerPoint - 06-Chapter09-Event.ppt

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

Cluster management software

Microsoft PowerPoint - C7_김형진 [호환 모드]

JUNIT 실습및발표

Frama-C/JESSIS 사용법 소개

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

vRealize Automation용 VMware Remote Console - VMware

Secure Programming Lecture1 : Introduction

Transcription:

객체지향설계와패턴 Lecture #14: 아키텍처패턴 Eun Man Choi emchoi@dgu.ac.kr

학습목표 l 블랙보드패턴 l 브로커패턴 l PAC 패턴 l 마이크로패턴 l 리플렉션패턴 2

패턴중심소프트웨어아키텍처 l POSA Patterns l Pattern Oriented Software Architecture A System of Patterns Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sornmerlad, Michael Stal, Wiley, 1996 3

패턴중심소프트웨어아키텍처 l 소프트웨어아키텍처패턴에대한책 l 소프트웨어개발초보, 전문가모두가읽어야할책 l 대규모, 복잡한소프트웨어시스템을특정한의도로설계할때필요한지식을담고있음 l 전문가의경험에서배울수있는내용을담고있음 4

아키텍처패턴 l 정의 [Buschman 등 ] l 소프트웨어의기본구조를구성하기위한스키마. l 미리정의된서브시스템을제공하고각서브시스템의책임을정의하며서브시스템간의관계를조직화하는규칙화가이드라인 l 아키텍처템플릿 l 소프트웨어아키텍처를만들기위한뼈대 l 시스템전반에걸친구조적특성을정의. 서브시스템의아키텍처에영향을줌 l 기본설계결정 l 아키텍처패턴의선택은소프트웨어를개발할때기본이되는설계결정임 5

아키텍처패턴의카테고리 l 혼돈에서질서로 l 무질서한객체나컴포넌트의집합이아니라서브태스크들로분할통제 l 계층패턴, 파이프라인패턴, 블랙보드패턴 l 분산시스템 l 분산시스템을아키텍처링 l 브로커패턴, 마이크로커널, 파이프와필터 l 상호작용시스템 l HCI 를가진소프트웨어시스템을구조화 l MVC, Presentation-Abstraction-Control l 적응시스템 l 애플리케이션을확장하는데도움, 기능적요구사항이변경함에따라적응할수있는구조 l 리플렉션패턴, 마이크로커널패턴 6

블랙보드아키텍처패턴 l 명확히정의된해법전략이아직존재하지않은도메인에서문제를해결하려할때 l 부분적인해법, 대략적인해법을수립하기위해특수한서브시스템의지식을조합 7

블랙보드아키텍처패턴 - 예제 l 음성인식시스템 l 파형, 분절음, 구절, 구문등을판별하기위하여전혀다른도메인의지식이필요 l 일관적인알고리즘이없음 l 모호하고잡음섞인데이터, 개인적인차이등어려움가중 8

블랙보드아키텍처패턴 - 해법 l 공유데이터구조위에종합적으로동작하는독립적인프로그램의모임 l 각프로그램은전체중특정한부분을해결하기위하여특수화 l 특수화된프로그램은제각기독립적 l 중앙제어컴포넌트는현재처리과정을평가하여특수화된프로그램을조율 l 프로그램들은블랙보드를통하여커뮤니케이션 9

블랙보드아키텍처패턴 - 구조 l 컴포넌트 l 블랙보드 중앙데이터저장소 l 지식소스 특수한측면을해결하는독립적서브시스템 l 제어컴포넌트 변경을모니터링하고다음동작을결정 10

블랙보드아키텍처패턴 - 동작 11

블랙보드아키텍처패턴 - 구현 l Are any by Feigenbaum and Feldman? 인식 12

브로커아키텍처패턴 - 정의 l 분산소프트웨어시스템의구조화에적합 l 분리된컴포넌트들이원격서비스를호출하여상호작용 l 브로커컴포넌트가통신을관할, 결과와예외를전송 13

브로커아키텍처패턴 - 예 l WAN 도시정보시스템 l 호텔, 레스토랑, 사적, 대중교통정보 14

브로커아키텍처패턴 - 문제 l 독립적협력컴포넌트들의이질적분산시스템 l 원격메소드호출제공 l Location transparency l 서비스를동적으로추가, 제거, 교환 l 개발자에게자세한것숨김 15

브로커아키텍처패턴 - 해법 l 네트워크클라이언트와서버컴포넌트사이에플랫폼독립커뮤니케이션을제공 l 서버는브로커에등록, 클라이언트는브로커를통하여요청 l 객체에메시지호출 -> 분산서비스에액세스 16

브로커아키텍처패턴 - 구조 l 여섯가지컴포넌트 Client Proxy * marshal unmarhal receive_result service_p * 1 calls Client call_service_p start_task 1 message exchange Broker main_loop srv_registration srv_lookup transmit_message 1 calls Bridge marshal unmarshal forward_message transmit_message 1 * message exchange Server Proxy marshal unmarshal dispatch receive_request * 1 start_up main_loop service_i calls Server 17

브로커아키텍처패턴 - 구조 l 클라이언트 l 사용자기능구현 l 클라이언트측프록시를통하여서버에요청 l 브로커 l 서버를등록, 제거 l API 제공, 메시지전송, 오류복구 l 클라이언트프록시 l 클라이언트와브로커간의레이어 l 특정시스템에맞춰진기능 l 서버측프록시 l 서버내의서비스호출 l Unpack, unmashaling l 브리지 l 특정시스템과관련된모든세부내용캡슐화 18

브로커아키텍처패턴 - 동작 : Client : Client Proxy : Broker : Server Proxy : Server method (proxy) locate_server register_service assigned port start_up server port marshal receive_request unmarshal dispatch method (impl.) result receive_result marshal unmarshal result 19

브로커아키텍처패턴 - 사례 l CORBA 구조 Interface Repository IDL Compiler Implementation Repository Client OBJ REF in args operation() out args + return Object (Servant) IDL SKEL DSI DII IDL STUBS ORB INTERFACE Object Adapter ORB CORE GIOP/IIOP/ESIOPS 20

브로커아키텍처패턴 - 장점 l 이식가능성증진 l 클라이언트와서버로부터 OS, 네트워크의자세한사항을숨김 l 다른브로커시스템간의상호운용성지원 l 메시지교환을위한프로토콜을공통으로맞춘다면상호운용가능 l 재사용성확보 l 새로운애플리케이션구축시기존서비스의애플리케이션기능재사용가능 l 위치투명성 l 서버위치는브로커의일, 클라이언트는위치알고있을필요없음 21

브로커아키텍처패턴 - 단점 l 낮은효율 l IPC 를이용하는매뉴얼시스템보다느림. 우회레이어를사용하기때문 l 장애허용성이낮음 l 분산이아닌시스템보다낮은장애허용성. 브로커의장애는치명적 l 테스트, 디버깅이복잡할수있음 l 상당히많은컴포넌트들이관련되기때문 22

Presentation-Abstraction-Control 패턴 l 정의 l 계층구조를이룬에이전트들이서로협력하여상호작용시스템구조를형성 l 각에이전트를애플리케이션의특징담당 l 각에이전트는프레젠테이션, 추상, 콘트롤컴포넌트로구성 23

Presentation-Abstraction-Control 패턴 - 문제 l 상호작용시스템 l 협력하는에이전트의집합 l 에이전트 - UI 제공, 데이터모델관리, 처리기능, 예외처리, 다른시스템과통신 l 각에이전트는자체상태와데이터저장 l 상호작용에이전트는각각자체 UI 제공 l 프레젠테이션측면은변경이잦음 24

Presentation-Abstraction-Control 패턴 - 해법 l 트리형태의계층구조 Data repository Access to data Top-level PAC agent Spreadsheet View coordinator Bottom-level PAC agent Bar chart Pie chart Bottom-level PAC agent 25

Presentation-Abstraction-Control 패턴 - 구조 26

Presentation-Abstraction-Control 패턴 - 구조 27

Presentation-Abstraction-Control 패턴 - 동작 28

Presentation-Abstraction-Control 패턴 - 구현 29

마이크로커널패턴 - 정의 l 변하는시스템요구사항에적응할수있는소프트웨어시스템설계 l 최소핵심기능을확장기능과특정고객에맞추어진부분으로분리 l 확장부분을플러그인하여협력관계를조정 30

마이크로커널패턴 - 예 l 하이드라운영체제 l 같은기능을기반으로비슷한프로그래밍인터페이스를사용하는여러애플리케이션개발 31

마이크로커널패턴 - 문제 l 고려할점 l 하드웨어와소프트웨어의지속적인발전에대비하여플랫폼설계 l 이식가능, 확장가능, 적응가능 l 다음사항의균형 l 애플리케이션은각기다르면서유사한플랫폼을지원하여야 l 동일핵심기능을어떤방식으로사용하느냐에따라애플리케이션을그룹으로분류 l 플랫폼의핵심기능 l 최소한의메모리크기를가진한개의컴포넌트로분리 l 프로세싱과정에적은부하를가지도록여러서비스로분리 32

마이크로커널패턴 - 구조 33

마이크로커널패턴 - 구조 l 마이크로커널 l 통신기능, 리소스핸들링중앙서비스 l 시스템종속적인요소로캡슐화 l 원자적서비스 메커니즘 l 내부서버 l 추가서비스구현, 특정하드웨어소프트웨어종속캡슐화 l 외부서버 l 자체클라이언트를위한프로그래밍인터페이스제공 l 자체뷰 l 클라이언트 l 외부서버에만어댑터를통하여연결 34

마이크로커널패턴 - 동작 35

마이크로커널패턴 - 장점 l 이식성보장 l 외부서버, 클라이언트불변 l 마이크로커널안의종속된부분만을이식 l 유연성, 확장성 l 추가기능은외부서버만추가하면됨 l 정책 ( 외부서버 ) 과메커니즘 ( 마이크로커널 ) 의분리 l 분산마이크로커널 l 규모쉽게확대 l 신뢰성지원 l 투명성 36

마이크로커널패턴 - 단점 l 성능하락 l 단일 (monolithic) 소프트웨어보다성능저하 l 유연성과의저울질 l 설계와구현이복잡 l 난이도높은작업 l 도메인에대한깊은지식 ( 정책과마이크로커널의분리를위한 ) 37

리플렉션패턴 - 정의 l 소프트웨어시스템의구조와동작을동적으로변경할수있는메커니즘제공 l 메타레벨과기본레벨로나누어기본적인측면의변형 l 메타레벨 시스템특성에대한정보제공 l 기본레벨 애플리케이션로직 l 타입구조와호출메커니즘과같은기본적인측면의변형 38

리플렉션패턴 - 예 l 영속객체 39

리플렉션패턴 - 문제 l 변경할경우오류가발생하기쉽고비용많이소요 l 적응성을가진소프트웨어는복잡한구조를가짐 l 변경에필요한기술 ( 매개변수화, 서브클래싱, copy & paste) 이많을수록다루기어렵고복잡 l 변경의범위는매우크다 ( 단축키, 에플리케이션프레임워크까지 ) 40

리플렉션패턴 - 해법 l 메타레벨 l 소프트웨어의구조와동작에대한지식을주기위한소프트웨어자체설명 메타객체 l 기본레벨 l 애플리케이션로직정의 l 변경에독립 l 인터페이스 l 메타객체를조작 l 메타객체프로토콜 41

리플렉션패턴 - 구조 l 메타객체 l 타입식별객체와유사 42

리플렉션패턴 - 동작 43

리플렉션패턴 - 장단점 l 장점 l 소스를임의로수정 l 소프트웨어시스템의변경이쉬움 l 다양한종류의변경지원 l 단점 l 메타레벨에수정할때손상발생가능성 l 컴포넌트의개수급격히증가 l 효율성저하 l 잠재적인모든변화를지원하기어려움 l 리플렉션제공하지않는언어도있음 44

Questions?