2012년 9월 12일 수요일

Analyzing Mobile Application software power consumption via model-driven engineering

 Analyzing Mobile Application software power consumption via model-driven engineering에 대한 분석 


 model driven engineering 방식을 이용한 software 설계 방법을 소개하고 그 방법을 통해서 디자인 단계에서 절력소모량을 예측할수 있는 SPOT이라는 tool을 소개하고 있습니다.

Why?
저자의 논지에 따르면 Power consumption을 최적화 하기 위해서는 단순히 battery 사용량을 줄이는 것이 아니라 performance와 battery life에 대한 trade off를 고려해야 한다고 논리를 전개하고 있습니다. 여기서 performance란 개발자가 의도한 목표를 달성하는 정도라고 생각할 수 있습니다.

여기서 예제로 traffic accident detection application을 예로 들었습니다. 이 app에서는 갑작스런 acceleration을 감지하여 traffic accident라고 감지하여 그 사고를 주변으로 전파하는 app입니다. 여기서 app은 accelerator를 활용해서 sampling 해야하고 또 그 결과를 주변으로 저송해야 합니다. 여기서 sampling rate가 높을 수록 사고를 감지해 내는 정확도는 높아지겠지만 그러면 그렇수록 battery 소모량을 늘어날 것입니다.

 하지만 여기서 설계 단계에서는 middle ware, Os, network layer등이 복잡하게 서로 연관되어 있는 관계로 실제 구현하기 전에 에너지 소모를 예측하기는 쉽지 않습니다. 예를 들면 http와 https와의 전력 소모량이 얼마나 차이나는지, security를 확보하기 위한 추가적인 암호화와 복호화에서 얼마 만큼의 에너지가 더 소모되는지 확인하는 방법은 쉽지 않습니다.

거기에 추가로 trade off를 수량화 하기 너무나도 어렵습니다.https에 경우에도 그렇듯이 security와 battery 소모량에 대한 trade off를 혹은 그 외의 설계 단계에서의 고려사항등 wifi를 주로 사용할 것인지, 아니면 cellular 방식을 사용할 것인지는 여러가지 고려사항이 많기 때문에 쉽게 판단하기 어렵습니다.

What?
 이를 해결하기 위해서 저자는 model driven testing과 modeling한 software architecture에 대한 자동 생성 코드를 활용해서 설계한 architecture에 대한 power consumption에 대한 emulation을 수행하고 그 수행 결과를 가지고 설계 단계에서 power consumption을 고려해서 설계하도록 제시하고 있습니다.

여기서 제시한 방법을 요약하자면 개발자가 MDE를 준수하며 MSML을 활용해서 power consumption을 고려해서 software architecture를 설계합니다. 그럼 SPOT은 그 archtecture의 target device에 대한 emulation code를 생성해주고 그 생성된 코드를 target device에서 수행하게 됩니다. 수행한 결과를 가지고 SPOT은 개발자에게 현재 설계된 SW archtecture가 어떠한 전력 소모를 가질 것인지에 대한 정보를 제공하고 그 정보를 바탕으로 개발자는 보다 전력 소비가 최적화된 SW architecture에 대해 설계할 수 있도록 합니다.


How?
SPOT에 대해서 설명하자면 SPOT은 사용자(개발자)에게 시작적인 high level modeling tool을 제공해주며, 이렇게 설계된 SW Architecture에 대한 emulation code를 생성해 줍니다.
또 이 생성된 코드의 실행 결과를 가져다 분석해 줌으로써 디자인 단계에서 power consumption을 예상 할 수 있도록 해줍니다.

SPOT은 device의 power API를 활용해서 측정함.(fuelGauge)
Mobile Application architecture modeling

Power consumption estimation 


설계를 할 때에는 GPS,accleration, orientation, sensor date consumer, network banwidth consumer 등 전력 영향을 주는 요소들을 설계할 단계에서 고려하며 진행합니다.




설계를 할 때에는 GPS,accleration, orientation, sensor date consumer, network banwidth consumer에 대한 emulation code를 생성

XML에서 각 component들의 설정 가능(sampling rate etc)




Power consumption Instrumentation 


fuelGauge에서 제공되는 API를 활용하면 각 package의 CPU,Sensor, wake-lock, 등등의 전력 소모를 하는 구성요소들의 cpu 사용시간을 확인할 수 있습,


Result 

댓글 없음:

댓글 쓰기