본문 바로가기
학교 공부/분산 및 병렬처리

[분산 및 병렬처리 시스템] Adaptive Software

by 그적 2020. 10. 9.

 적응형 소프트웨어(Adaptive Software)를 알아보기 전에 분산 시스템에서의 Interceptor에 관해서 알아보고 가자.

// 앞으로 "변경된 데이터"에 대해서 말할 텐데, 이에 대한 해석은 "갑자기 변경된 데이터(변화)"으로 받아들이면 좋을 것이다.

 

 Distributed System(분산 시스템)에서 기본적인 동작 과정을 자바 소프트웨어에 대입시키면, 자바 소프트웨어의 객체들을 분산 시스템의 여러 machine들로 나눠 배치한다. 이때, A객체가 B객체를 사용하기 위해 Method Invocation Call을 한다. (B객체는 A객체와 같은 machine에 존재하지 않으므로 Remote Object이다.) middle ware에서 A객체와 value를 파라미터로 전달해주면서, B객체는 middle ware를 통해 파라미터를 받는다.

 이러한 과정으로 동작이 진행될 때 B객체에 대한 Interceptor Call을 발생시키면, B객체의 카피본들을 모두 호출한다. 변경된 데이터를 Application과 Object 사이에 있는 Request-level Interceptor에 request 하여 Interceptor는 데이터를 세 번 전송하여 3개의 카피본들에 변경된 데이터를 입력한다.

 

 

 

 이제 적응형 소프트웨어에 필요한 Interceptor 컴포넌트에 대해서 알아보았으니 Adaptive Softwrae를 본격적으로 알아보자.

Acaptive Software(적응형 소프트웨어)

- separation of concens : 변화에 대한 분리

- computational reflection

- component-based design : 컴포넌트 기반 설계

 

 적응형 소프트웨어의 대표적인 예는 Feedback Control Model(Architecture)이다. Feedback Control Architecture는 "갑자기 변경된 데이터에 대한 정보를 받아들이고 이후 좋은 결과(유지 혹은 적응)를 가지도록 할 수 있는 아키텍쳐"이다. 다음 그림을 보면서 동작 과정을 살펴보자.

처음 데이터 조직의 형태를 확인하기 위해 분산 시스템 코어에 데이터를 집어넣는다.

만약 이때 갑자기 변경된 데이터(Uncontrollable parameters)를 받게 된다면?

1) 시스템 코어는 Uncontrollable parameters를 받아들임

2) Observed output을 가짐 >> 시스템 이해할 수 있는 데이터로 변경

3) Metric estimation에서 확인 >> 데이터를 측정

4) Analysis에서 기존에 있던 input과 받아들인 output을 비교함 >> 피드백을 줌

5) Adjustment trigger(피드백)를 가지고 조정

6) 변화된 데이터에 대한 정보가 다시 코어에 들어감

 

 

거대한 데이터를 어떻게 컨트롤 하는가?

** Zone : machine 각각에 대해 자신의 IP Address가 받을 수 있는 부화가 얼마인지 측정할 수 있음

Zone 안에 있는 각각의 정보들의 측정값의 평균값으로 control model이 변화를 일으킴.

댓글