Спортзал с инструктором

advertisement
msdevcon.ru
#msdevcon
STREAMINSIGHT И WORKFLOW. АНАЛИЗ ДАННЫХ
НА ЗЕМЛЕ И В ОБЛАКЕ ДЛЯ МОНИТОРИНГА
КРИТИЧЕСКИ ВАЖНЫХ ПОКАЗАТЕЛЕЙ
Вячеслав Васильев
Содержание
 Проблема анализа критически важных данных
 Показатели здоровья человека
 On-premise решение
 Спортзал с инструктором
 Спортзал без инструктора
 Hybrid и Cloud решения
Проблема анализа
критически важных данных
Контрол состояния здоровья человека
Параметры состояния здоровья человека
Воздействие на организм
Физические упражнения, диета, лекарства, режим, окружающая среда и т.д.
Ответ организма на воздействие
Частота сердечных сокращений (ЧСС, Пульс), артериальное давление,
биохимические показатели крови, самочувствие и т.д.
Контроль состояния здоровья
Наблюдение за балансом воздействие-ответ
Своевременное реагирование, когда параметры выходят за границы нормы
Пример – диагностика сахарного диабета
Параметр – содержание глюкозы в плазме крови
Из книги А.А.Кишкун «Клиническая лабораторная диагностика»
Пример – занятия фитнесом
Показатели состояния здоровья
ЧСС (Пульс)
Баланс питания (килокалории)
Воздействие на организм
Питание и физические нагрузки
Ответ организма на воздействие
На физическое воздействие – увеличение ЧСС
На питание – увеличение веса, мышечной массы и т.д.
Изменение пульса (ЧСС)
Ответ организма на изменение положения
Мониторинг состояния здоровья
On-premise решение
Цель
Главная цель – не навредить здоровью человека
Все параметры должны находиться в пределах нормы
Цель №2 – улучшение состояния здоровья
Физическая активность, активный образ жизни
Правильное сбалансированное питание
Архитектура системы мониторинга
Архитектура StreamInsight
Основные сущности StreamInsight
StreamInsight – Создание приложения
string port = "8888";
string wcfSourceURL = String.Format(@"http://localhost:{0}/DevCon/wcf/Source/", port);
string wcfSinkURL = String.Format(@"http://localhost:{0}/DevCon/wcf/Sink/", port);
string wcfCritSinkURL = String.Format(@"http://localhost:{0}/DevCon/wcf/CritSink/", port);
using (var server = Server.Create("DevCon"))
{
string AppName = "DevConApp";
if (server.Applications.ContainsKey(AppName))
{
server.Applications[AppName].Delete();
}
var app = server.CreateApplication(AppName);
StreamInsight – Подключение клиента
// Подключаемся к серверу StreamInsight (должен быть уже создан).
using (var server = Server.Connect(new
System.ServiceModel.EndpointAddress(@"http://localhost/DevCon")))
{
// Находим наше приложение
var app = server.Applications["DevConApp"];
// Источник данных
var heartRateSource =
app.GetObservable<HeartRatePoint>("HeartRateSource");
// Приёмник критических уведомлений
var heartRateCriticalSink =
app.GetObserver<HeartRateMeanValue>("HeartRateCriticalSink");
StreamInsight – Client Code
// Получим ссылку на запрос с сервера.
var minMaxQuery = app.GetStreamable<IQStreamable<HeartRateMeanValue>, double,
HeartRateAlarmValue>("MinMaxAlarmQuery");
// Получаем Источник данных через Субъект.
var inputMeanHR = app
.GetSubject<HeartRateMeanValue, HeartRateMeanValue>("HeartRateAlarmSubject");
// Получаем Приёмник данных
var alarmConsoleSink = app.GetObserver<string, HeartRateAlarmValue>("HeartRateAlarmConsoleSink");
// Создадим поток
var streamMeanHR = inputMeanHR.ToPointStreamable(i => PointEvent.CreateInsert<HeartRateMeanValue>(i.MeanTimePoint,
i), AdvanceTimeSettings.IncreasingStartTime);
// Создаём новый запрос с новыми параметрами.
var minMaxAlarm =
minMaxQuery(streamMeanHR, 200);
// Привязываем приёмник к запросу.
var dynamicMinMaxQuery = minMaxAlarm.Bind(alarmConsoleSink("Personal Alarm"));
// Запускаем новый процесс на сервере.
IDisposable dynamicAlarmProcess =
dynamicMinMaxQuery.Run("DynamicAlarmProcess");
StreamInsight - отладчик
DEMO
Спортзал с инструктором
Используем StreamInsight
Спортзал без инструктора
Используем Workflow
Цель
Дать пользователю постоянную возможность
контролировать свою физическую активность – дома, на
стадионе, на отдыхе, на работе.
Фитнес упражнение
Атлет (пациент)
Возраст, Вес, Рост, Пол
Определение целевых границ ЧСС (Метод Карвонена)
ЧСС в состоянии покоя - ЧССпок
Максимальный ЧССмакс = 220 – Возраст
Нижняя и верхняя границы целевой зоны тренировки
 ЧССниж = ЧССпок + (ЧССмакс – ЧССпок)*0.5
 ЧССверх = ЧССпок + (ЧССмакс – ЧССпок)*0.95
Workflow + WP7
Rx (Reactive Extensions) - .Net, WinRT, WP
class ExerciseScheduler : HistoricalScheduler
{
public delegate void SpeechMessage(string msgToSpeak);
public event SpeechMessage SpeechMessageHandler;
public void Run(TimeSpan delay, Queue<PlanEvent> eventQueue)
{
EventQueue = eventQueue;
Scheduler.Default.Schedule(delay, self => {
if (SpeechMessageHandler != null) {
SpeechMessageHandler(pe.EventMessage);
}
var dt = next.DueTime;
AdvanceTo(dt);
self(TimeSpan.FromSeconds(pe.Delay));
Rx – работа с массивами
var mean = from w in xAccelData.Window(winSize)
from avg in w.Average()
select avg;
mean.Subscribe(w =>
Debug.WriteLine("X Average: {0}", w),
ex => Debug.WriteLine("X Average ex:{0}", ex.Message),
() => Debug.WriteLine("X Average Complete.")
);
Архитектура hybrid-решения
DEMO
Спортзал без инструктора
Hybrid -решение
Спортзал везде и всегда
Cloud-решение
Цель
Все предыдущие цели + беспрецедентная надёжность и
безопасность, обеспечиваемые облаком Azure.
Архитектура
Очереди
Хранилища
Сервисная шина
SQL Azure
Mobile services
….
Workflow и StreamInsight в облаке Azure
Виртуальная машина Azure с установленным
AppFabric for Windows Server
Виртуальная машина Azure с установленным
Workflow Manager 1.0
StreamInsight – проект Austin (CTP)
Что изменится с
использованием высоких
технологий в области анализа
критически важных данных?
В области здравоохранения
и здорового образа жизни
Проблемы
 Каждый год на занятиях физкультурой в школах умирают
ученики (наиболее вероятная причина – физическая
нагрузка без учёта индивидуального состояния здоровья
ученика).
 Современные системы экспресс анализа биологических
материалов уже имеют цифровой формат обмена
данными, но диагностика по-прежнему проводится
вручную.
 У населения имеется большое количество медицинских
приборов бытового уровня (термометры, тонометры и др.),
но результаты не анализируются должным образом.
Решения
 Технологии StreamInsight, Rx и Workflow обеспечивают
реализацию гибких систем автоматического
мониторинга состояния здоровья человека.
 Технологии хостинга Workflow – AppFabric for Windows
Server, Workflow Manager обеспечивают надёжное
исполнение Workflow как в on-premise, так и в
гибридной или полностью облачной среде Azure.
 Знакомые разработчикам технологии .NET, LinQ и среда
Microsoft Visual Studio 2012 обеспечивают комфорт и
эффективность процесса разработки.
Ресурсы
StreamInsight
Team blog: blogs.msdn.com/b/streaminsight
Home page: http://blogs.msdn.com/b/streaminsight
Reactive Extensions (Rx)
Rx Home: http://msdn.microsoft.com/en-us/data/gg577609
Rx Source Code: http://rx.codeplex.com/
Rx Introduction: http://introtorx.com
Workflow
Workflow: msdn.com/workflow
AppFabric for Windows Server: msdn.com/appfabric
Дополнительные ресурсы
Roman Schindlauer – blogs.msdn.com/b/streaminsight
Richard Seroter - seroter.wordpress.com
Steve Danielson, Ron Jacobs http://blogs.msdn.com/b/workflowteam/
LinQPad – www.linqpad.net
Контакты
Вячеслав Васильев
ООО Красный Угол
vaswork@gmail.com
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of
Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Download