МАТЕМАТИЧЕСКИЙ СЕРВИС С ИСПОЛЬЗОВАНИЕМ ОБЛАЧНЫХ ТЕХНОЛОГИЙ - Студенческий научный форум

IV Международная студенческая научная конференция Студенческий научный форум - 2012

МАТЕМАТИЧЕСКИЙ СЕРВИС С ИСПОЛЬЗОВАНИЕМ ОБЛАЧНЫХ ТЕХНОЛОГИЙ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Облачные вычислении

Еще недавно многие из нас покупали или копировали знаменитую базу знаний «Кирилл и Мефодий» на нескольких компакт-дисках, чтобы установить эту библиотеку к себе на компьютер. Сегодня, когда интернет перестал быть «роскошью», практически каждый пользователь глобальной сети знает, что самая большая база знаний это Wikipedia.org. Каждый, кто хоть раз пользовался данным ресурсом, понимает как он работает. Я могу получать нужную мне информацию из базы знаний, но я могу и пополнять эту базу собственными знаниями. Так как Wikipedia является открытым сервисом, который находится в сети интернет, а не у каждого на компьютере, то открываются широчайшие возможности по доступу к этому ресурсу. Нет зависимости от операционной системы, типа вычислительного устройства и т.д. Необходим только доступ в интернет и поддержка стандартных протоколов передачи данных. Такие системы называются облачными и представляют некий «черный ящик», который находится где-то в интернете, к которому я всегда смогу обратиться. Основной задачей открытых облачных сервисов, по типу Wikipedia, является саморазвитие при помощи пользователей системы (пользователи формируют содержимое ресурса - идея web 2.0).

У рассмотренной технологии есть как преимущества: платформонезависимость; геонезависимость; постоянная расширяемость, так и недостатки: необходим доступ к интернету; сложность верификации данных. На сегодняшний день облачные системы приобретают всё большую популярность.

Вычислительная мощность для всех

Какова основная задача современных вычислительных пакетов? Предоставить пользователю (экономисту, бизнесмену, ученому и т.д.) возможность решать конкретные задачи, которые перед ним ставит жизнь (моделирование, принятие решений, статистическая обработка данных и т.д.). В настоящее время существует немало математических пакетов, таких как Maple, Matlab и т.д., способных решать различные классы задач, но они выполнены в виде отдельного приложения, которое требует наличие конкретной платформы и, как правило, такие пакеты стоят немалых денег.

Основной идеей глобализации математической мощности является создание открытой системы в облаке, при поддержке открытых протоколов передачи данных, таких как HTTP, XML/JSON. Схема взаимодействия основных компонентов представлена на рисунке 1.

Рассмотрим компоненты схемы более подробно:

  • Клиент 1, клиент 2, клиент 3 - Пользователи сети интернет, которые подключились к сервису. Каждый пользователь может обратиться к сервису путем HTTP запроса, а значит воспользоваться функционалом можно как из собственного приложения, так и из обычного браузера. Также каждый пользователь может выступать в роли программиста и, написав собственные математические методы в виде функций, добавить их в общую базу методов, которая хранится на сервере.
  • Сервер - Комплекс программного обеспечения, который обеспечивает обработку запросов от клиентов, управляет базой математических методов. Все математические функции добавляются в виде исходного кода, функции должны проходить модерацию, так как при запросе клиента, функция исполняется сервером, а клиенту возвращается лишь результат (возможно ход выполнения той или иной функции).

Когда функции добавляются на сервер, их необходимо скомпилировать, а значит, исходный код должен быть на языке определенной платформы и оформление функции должно соответствовать общему, заранее определенному формату.

Такой сервис предполагает безграничные возможности по расширению функционала, а также по использованию этого функционала другими пользователями. Для примера представим программиста Иванова, который решил написать функцию нахождения оптимума некоторой функции с определенными ограничениями. Написав такую функцию, Иванов добавляет свою разработку в облако. Пользователю Петрову необходимо вычислить условия, при которых его производство будет давать наибольшую прибыль. Петров просто подключается к сервису и использует функцию Иванова. В свою очередь Иванов может применять методы, которые создал и добавил Петров. А благодаря универсальному протоколу передачи данных, весь математический функционал можно использовать не только на компьютере, но и на мобильных устройствах.

Интеллектуальная система помощи при выборе метода решения задачи

Рассмотренный математический сервис является открытой  расширяемой системой. В определенный момент времени, при свободном расширении появляется ряд проблем:

1. Для того кто использует функционал системы.

При наличии слишком большой базы методов, обычному пользователю трудно определиться с методом решения, а часто и с предметной областью поставленной задачи. Если даже пользователь четко представляет метод решения задачи, то ему придется искать соответствующий функционал в справочнике системы, что с одной стороны довольно затруднительно, а с другой может не привести к оптимальному решению задачи, так как пользователь может не знать о более эффективном методе решения задачи.

2. Для того кто создает функционал системы.

Если представить себя на месте программиста, который хочет внести вклад в систему и написать свой какой-либо математический метод, то возникает очень серьёзная проблема актуальности этого программного модуля.  Под актуальностью понимается:

А) Этот метод уже был описан другим программистом.

Б) Метод не востребован потребителями.

Основная идея заключается в описании решаемых задач самими пользователями и программистами. Пользователь при использовании некоторого метода описывает задачу, которую он решал. В тоже время программист, при создании своего модуля в общем виде описывает задачу, которую решает его метод. Имея такую информацию в базе данных, можно организовать адаптивную систему подсказок выбора метода решения конкретной задачи.

Представим, что в нашей системе к каждому методу есть 3-4 описания задачи, которые были решены с помощью этого метода. Тогда, ничего не мешает пользователю описать свою проблему (задачу) и получить список похожих задач, которые были решены, и методы с помощью которых решались эти задачи. Таким образом, пользователь не только сразу узнает о функциях, которые есть в системе, но и может выбрать более оптимальный метод решения своей задачи. После того как пользователь успешно решает свою задачу (использует выбранный метод), его задача помещается в общий список решенных задач и к ней «привязывается» метод, с помощью которого решили задачу.

Далее рассмотрим вариант, когда пользователь вводит условия своей задачи и в итоге получает пустой, или малый список методов, т.е. такая/похожая задача либо не встречалась, либо для нее не написано методов решения (модулей). Такой запрос помечается в БД. Вообще каждый запрос должен помечаться в базе. Зная запросы и насыщенность модулей по этим запросам, можно организовать рекомендации программистам. Всегда можно узнать, какие задачи наиболее востребованы, и где требуется большее разнообразие методов решения.

На мой взгляд, такое дополнение к сервису будет полезно в практическом использовании. С помощью такого подхода основное движение развития системы будет в направлении спроса. Если требуется наличие методов, позволяющих решать экономические задачи (есть спрос со стороны предприятий), то зачем создавать множество методов для расчета действия сил на объект в условиях невесомости (которые пользуются гораздо меньшим спросом)? В тоже время пользователь получит те методы, которые нужны ему именно сейчас для решения конкретной задачи. Так же возможна индексация задач поисковыми роботами, что может привести к ситуации, что пользователь введет в яндексе запрос «нахождение максимума функции с двумя переменными  с учетом ограничений» и ему будет предложено перейти на сервис, где будет перечень методов, с помощью которых он может получить результат.     

На данный момент сервис на стадии разработки в локальном режиме.

Просмотров работы: 15