1 / 29

POSA

POSA. Pipes and Filters Architecture Pattern. 재사용성 및 유연성 (flexibility). 성능과 재사용성에 대한 trade off 발생 리팩토링 : 겉으로 보이는 동작을 바꾸지 않고 , 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 행동 리펙토링의 필요한 경우 과도한 설계 미진한 설계 패턴의 남용. 패턴의 구성. 개략. 개략 ( 계속 ). 병렬 프로세싱은 필터가 데이터를 증분적 (incremental) 으로 처리 가능해야 함 .

jirair
Download Presentation

POSA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. POSA Pipes and Filters Architecture Pattern

  2. 재사용성 및 유연성(flexibility) • 성능과 재사용성에 대한 trade off 발생 • 리팩토링: 겉으로 보이는 동작을 바꾸지 않고, 이해하거나 수정하기 쉽게 소프트웨어의 내부 구조를 바꾸는 행동 • 리펙토링의 필요한 경우 • 과도한 설계 • 미진한 설계 • 패턴의 남용

  3. 패턴의 구성

  4. 개략

  5. 개략(계속) • 병렬 프로세싱은 필터가 데이터를 증분적(incremental)으로 처리 가능해야 함. • 증분적(incremental) 처리 : 출력을 산출하기 위해 들어온 모든 입력을 한꺼번에 처리하는 것이 아니라 입력이 일정량 들어오는 대로 출력을 바로바로 산출하는 방식 • 낮은 레이턴시(latency), 병력 프로세싱을가능하게함 • 레이턴시(latency) : 네트워크에 있는 한 신호가 임의의 다른 지점으로 이동하는 데 소요되는 시간

  6. 1. 정황(context) • 데이터 스트림 처리

  7. 2. 문제(problem)

  8. 3. 영향력(force)

  9. 4. 해법(solution) • 시스템 태스크를 몇 개의 순차적 프로세싱 단계들로 구분하고 각 단계들은 해당 시스템 내부를 오가는 데이터 흐름에 의해 연결 • 각 프로세싱 단계는 필터 컴포넌트에 의해 구현 • 필터는 증분적으로 데이터를 처리해 전달함으로써 낮은 레이턴시와 병렬 프로세싱을 가능하게 함 • 인접한 프로세싱 단계들 간의 데이터 흐름은 파이프에 의해 구현 • 능동 필터 사용을 위한 파이프를 동기화

  10. 5. 구조(structure)필터

  11. 5. 구조(structure)파이프

  12. 5. 구조(structure)데이터 소스

  13. 5. 구조(structure)데이터 싱크

  14. 6. 동작(dynamic)수동 파이프라인 시스템

  15. 6. 동작(dynamic)능동 파이프라인 시스템

  16. 7. 구현(implementation)기능 구분

  17. 7. 구현(implementation)데이터 포맷 정의

  18. 7. 구현(implementation)파이프 연결 결정

  19. 7. 구현(implementation)필터 설계 및 구현

  20. 7. 구현(implementation)오류 핸들링을 설계

  21. 7. 구현(implementation)프로세싱 파이프라인 설정

  22. 8. 예제 심화(example resolved)Mocha 컴파일러 • 심볼 테이블을 통해 전역 상태를 공유 • 각각의 필터 사이의 파이프 연결을 단순 함수 호출로 구현

  23. 9. 변형(variant)

  24. 10. 용례(known use) • 유닉스 • CMS 파이프라인 : IBM 메인프레임의 운영체제를 확장 • LASSPTools : 수치해석과 그래픽을 지원하는 툴세트

  25. 11. 결과(consequence)장점 • 중간 파일을 사용 가능 • 파이프를 사용하지 않아도 됨 • 파일 저장 디렉터리가 어질러질 가능성이 많음 • 시스템을 실행할 때마다 프로세싱 단계를 설정해야 할 경우 오류 발생 • 증분적 처리 및 병렬 처리 할 수 없음 • 필터 교환의 유연성 • 필터에는 프로세싱 파이프라인 내에서 필터를 쉽게 교환할 수 있도록 인터페이스 구비 • 증분적 처리로 런타임에 필터 교환할 수 없음

  26. 11. 결과(consequence)장점 • 재조합의 유연성 • 유연하게 설계되어 필터를 재정렬하거나 새 필터를 추가시켜 새로운 프로세싱 파이프라인을 생성할 수 있다. • 필터의 재사용성 • 능동 필터로 구현할 경우 재사용성이 좋다 • 기반 플랫폼과 셰을 사용할 경우 파이프라인의 엔드유저 환경을 쉽게 만들 수 있다

  27. 11. 결과(consequence)장점 • 파이프라인 프로토타입 제작 즉시성 • 기존 필터로부터 데이터 프로세싱 시스템을 쉽게 프로토타입으로 만들 수 있다 • 병렬 프로세싱으로 인한 효율성 • 멀티프로세서 시스템이나 네트워크에서 병렬로 능동 필터 컴포넌트를 개시하는 것이 가능

  28. 11. 결과(consequence)단점 • 상태 정보 공유시 비용이 많이 들며 유연성이 저하됨 • 프로세싱 단계에서 상당한 크기의 전역 데이터를 공유해야 할 경우, 효율성이 떨어진다 • 병렬 프로세싱의 효율성이 없을 수 있음 • 필터들 사이로 데이터를 전송할 때 드는 비용은 필터 하나로 계산을 실행하는 비용보다 높다 • 증분적 처리가 안될 경우(sort 또는 코드가 좋지 않을 경우) • 스레드들이나 프로세스들 간의 컨텍스트 전환 작업은 단일 프로세서 머신에서 일반적으로 비용이 많이 드는 연산이다 • 파이프를 통해 필터를 동기화하기 위해서는 종종 필터를 멈추고 시작해야 하는 상황이 벌어질 수 있다

  29. 11. 결과(consequence)단점 • 데이터 변환에 과부하 발생 • 유연성 확보를 위해 단 하나의 데이터 타입을 사용하면 데이터 변환에 지나친 부하가 걸리게 된다. • 오류 핸들링을 구현 어려움 • 최소한 오류 기록에 대한 일반적인 전략을 정의해야 한다 • 구체적인 오류 복구나 오류 핸들링 전략은 해결해야만 하는 태스크가 무엇이냐에 좌우된다. • 업무에 민감하고 중요한 시스템일 경우 Layer 패턴을 사용한다

More Related