И. Ю. Коробейникова


Выбор средств проектирования и средств создания информационных систем



страница4/11
Дата09.11.2016
Размер3.49 Mb.
Просмотров3085
Скачиваний0
ТипНаучная работа
1   2   3   4   5   6   7   8   9   10   11

1.4 Выбор средств проектирования и средств создания информационных систем

1.4.1 Обоснование выбора платформы для разработки


Так как система аудита веб-приложений подразумевает под собой наличие серверных утилит, которые будут проводить непосредственно аудит сайта, для построения архитектуры системы был использован сервис-ориентированный подход или так называемая сервис-ориентированная архитектура (SOA).

Джерими Уэстерман дает следующее определение сервис-ориентированной архитектуре: это парадигма, предназначенная для проектирования, разработки и управления дискретных единиц логики (сервисов) в вычислительной среде. Применение этого подхода требует от разработчиков проектирования приложений как набора сервисов, даже если преимущества такого решения сразу неочевидны. Разработчики должны «выйти за границы» своих приложений и подумать, как воспользоваться уже существующими сервисами, или изучить, как их сервисы могут быть использованы их коллегами [18].

Основная идея сервис-ориентированной архитектуры состоит в том, чтобы инкапсулировать функциональности крупномодульных приложений в службах, которые распространяются по сети. Такие службы должны взаимодействовать и сами договариваться между собой с помощью стандартных интерфейсов, позволяющих им прозрачно работать на поле разнообразных платформ и между границами организаций, что открывает возможность создания динамичных виртуальных организаций. Можно определить архитектуру SOA как слабосвязанную архитектуру с набором компонент, достаточно «гранулированных» для использования клиентами. Доступ к компонентам осуществляется через сеть в соответствии с политикой, точно определённой этими компонентами. Хотя большинство определений SOA предписывают при её реализации использование именно веб-служб, тем не менее, SOA можно реализовать, используя любую основанную на службах технологию.

Разработка подобных архитектур стала закономерным результатом эволюционного процесса, начавшегося в 80-е годы с первых попыток построения распределённых систем на основе объектно-ориентированных моделей. Некоторое время назад появились распределённые системы следующего поколения, базирующиеся на двухкомпонентных моделях .Net и J2EE. Они суммировали унаследованные от предшественников свойства, а их гранулярность увеличилась в связи с добавлением объектов, названных «компонентами». Таким образом, распределённые системы стали более гибкими, и была обеспечена возможность выполнения транзакционных операций [16].

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

В качестве языка программирования для разработки пользовательской панели системы был выбран язык программирования PHP и фреймворк Phalcon. Для разработки серверных служб был выбран язык Go.


1.4.1.1 Язык программирования PHP


PHP (PHP: Hypertext Preprocessor) – язык сценариев общего назначения, наиболее популярный язык для разработки веб-приложений. PHP лежит в основе миллионов динамических веб-приложений. Широкий набор возможностей, понятный синтаксис и поддержка различных операционных систем и веб-серверов сделали его идеальным языком как для быстрой разработки несложных веб-сайтов, так и для кропотливой и методичной работы над сложными веб-системами. Одной из главных причин успеха PHP как языка веб-сценариев стало то, что он изначально задумывался как инструмент обработки HTML-форм и создания веб страниц. Это сразу сделало PHP весьма дружественной средой разработки для сети Интернет. Кроме того, PHP – полиглот. PHP может общаться с большим количеством баз данных и знает многочисленные протоколы Интернета. PHP упрощает анализ данных браузера и может выполнять HTTP-запросы.

1.4.1.2 Фреймворк Phalcon


Phalcon – это полнофункциональный PHP-фреймворк написанный на языке C, на данный момент этот фреймворк является самым быстрым PHP-фреймворком (результаты тестирования скорости PHP фреймворков представлены на рисунке 9).

Рисунок 9 – Результаты тестирования скорости PHP фреймворков

Phalcon предлагает MVC (Model-View-Controller Модель-Вид-Контроллер) архитектуру для реализации пользовательского интерфейса. Архитектура MVC делит программное приложение на три взаимосвязанных части, отделяя внутреннюю информацию, вывод и полученную информацию от пользователя. Центральный компонент, называемый моделью, включает данные приложения, бизнес логику, правила и функции. Представление — отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами. Контроллер — обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции. Это дает не только понятный и удобный интерфейс, а также делает возможным несколько представлений одной и той же информации, например, такой как гистограмма и табличный вид для бухгалтеров. Собственный язык запросов Phalcon - (PHQL) Phalcon Query Language делает взаимодействие с базой данных более выразительным и прозрачным. PHQL может быть интегрирован с моделями и легко определять и использовать отношения между таблицами. Это особенно полезно для обработки сложных запросов без особых усилий.

1.4.1.3 Язык программирования Go


Разработка языка Go началась в 2007 году как внутренний проект компании Google. Оригинальная архитектура языка была разработана Робертом Гризмером (Robert Griesemer) и корифеями операционной системы Unix – Робом Пайком (Rob Pike) и Кеном Томпсоном (Ken Thompson). 10 ноября 2009 года были опубликованы исходные тексты реализации языка Go под либеральной открытой лицензией. Развитие языка Go продолжается группой разработчиков из компании Google, в состав которой входят основатели языка, а также Расс Кокс (Russ Cox), Эндрю Джерранд (Andrew Gerrand), Ян Ланс Тейлор (Ian Lance Taylor) и многие другие. Разработка ведется с использованием открытой модели, благодаря чему в процессе участвуют многие разработчики со всего мира, порой настолько известные и уважаемые, что им предоставлены те же привилегии доступа к репозиторию с исходными текстами, что и специалистам из компании Google.

Go – один из самых удивительных языков, появившихся в последние 15 лет, и первый, нацеленный на программистов и компьютеры XXI века. Go проектировался с прицелом на эффективное масштабирование, благодаря чему его можно использовать для создания очень больших приложений и компиляции даже очень больших программ за секунды на единственном компьютере. Молниеносная скорость компиляции обеспечивается отчасти простотой синтаксического анализа программ на этом языке, но главным образом благодаря особенностям управления зависимостям.

Язык Go имеет очень простой и понятный синтаксис, в котором отсутствуют сложные и замысловатые конструкции, характерные для более старых языков, таких как C++ (появившегося в 1983 году) или Java (появившегося в 1995 году). И относится к категории языков со строгой статической типизацией, что многими программистами считается важным условием для разработки крупных программ. Однако система типов данных в языке Go не слишком обременительна благодаря поддержке синтаксиса объявления переменных одновременно с их инициализацией (когда компилятор определяет тип автоматически, избавляя от необходимости явно указывать его) и наличию мощного и удобного механизма динамической типизации.

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


1.4.1.4 MySQL


MySQL – свободная реляционная система управления базами данных (СУБД) разработанная Майклом Видениусом в 1995 году. С 2010 года данная СУБД разрабатывается компанией Oracle. Из основных особенностей данной СУБД можно выделить:

  • простое управление таблицей, включая работу с ключами и полями;

  • гибкая система привилегий и паролей;

  • многопоточность;

  • поддержка различных числовых типов;

  • записи фиксированной и переменной длины;

  • оптимизация связей;

  • все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей;

  • псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице;

  • и другие.

1.4.1.5 Elasticsearch


Elasticsearch – это платформа для распределенного поиска и анализа данных в режиме реального времени. На данный момент Elasticsearch предоставляет наиболее мощные возможности для полнотекстового поиска, которые доступны в проектах с открытым исходным кодом. Данная платформа построена на базе поискового движка Apache Lucene и используется такими компаниями как Facebook, Microsoft, Cisco, Uber, The New York Times, Mozilla, eBay - все они используют Elasticsearch благодаря простоте, мощности и масштабируемости. Elasticsearch поддерживает операции REST, что позволяет применять методы HTTP (GET, POST, PUT, DELETE и т.д.) в сочетании с HTTP URI для доступа к движку из любого приложения.

1.4.1.6 Nsq


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

Каталог: files -> main -> documents -> 2016
2016 -> Допустить к защите
2016 -> Методические рекомендации по выполнению внеаудиторной самостоятельной работы студентов по программе дисциплины
2016 -> Методическая разработка практического занятия по теме «Создание и воспроизведение видеороликов в программе Movie Maker»
2016 -> «Разработка информационного сайта для проекта «Живая история». В работе раскрывается актуальность темы, сформулированы цели и задачи исследования
documents -> Методические указания для студентов очной формы обучения по выполнению
documents -> Методическое пособие по дисциплине «информационная безопасность»
2016 -> Методические рекомендации по выполнению практических работ по дисциплине «Деловой русский язык»
documents -> Комплект оценочных средств Учебная дисциплина ен. 03 Информатика
2016 -> Аварии и катастрофы. Причины, виды, примеры


Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10   11


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал