Пояснительная записка. Трач РВ (1228539), страница 2
Текст из файла (страница 2)
Поддержка существующей функциональности ASP.NET: forms-based и windows-аутентификация (в том числе на основе active-directory доменной сети), membership, roles, архитектуру провайдеров и др.
Таким образом, использование технологии ASP.NET MVC оправдано в случае с большими проектами, где важна скорость работы пользователя с приложением, а так же возможность лёгкого администрирования, реструктурирования и масштабирования функционала. Именно поэтому, ASP.NET MVC framework выбран технологией для реализации проекта.
Тем не менее, для реализации проекта недостаточно одной лишь технологии ASP.NET MVC. Для работы так же понадобятся технологии для работы с базой данных, а так же дополнительных компонентов, которые позволят автоматизировать шаблонную работу. Далее будут описаны эти технологии.
-
Технология Entity Framework
ADO.NET Entity Framework (EF) – объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft [ CITATION Ent \l 1049 ]. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL. Для облегчения построения web-решений используется как ADO.NET Data Services (Astoria), так и связка из Windows Communication Foundation и Windows Presentation Foundation, позволяющая строить многоуровневые приложения, реализуя один из шаблонов проектирования MVC, MVP или MVVM.
ORM - это подход, позволяющий конвертировать данные между реляционными базами данных и объектно-ориентированными языками программирования, тем самым нивелируя так называемый object-relational impedance mismatch («несоответствие принципов, лежащих в основе объектного и реляционного подходов»).
Рассмотрим ряд различий между объектной и реляционной концепциями:
-
различия в базовых принципах. ООП базируется на принципах создания программного обеспечения (инкапсуляция, наследование, полиморфизм), в то время как реляционная парадигма имеет в основе математические правила (операции с множествами). Если инкапсуляцию и полиморфизм на уровне РБД представить невозможно (да, наверное, и не нужно), то с наследованием ORM справляются.
-
различия в оперируемых сущностях. В ООП мы оперируем объектами и ссылками на объекты, а в РБД – таблицами, атрибутами и записями. ORM с блеском нивелирует это различие, позволяя программисту обращаться к связанным объектам традиционными для ООП способами, лишая программиста рутины создания разнообразных join-запросов.
-
различия в оперируемых типах (эта проблема не является уникальной для взаимодействия объектной и реляционной систем: с ней приходится сталкиваться даже при взаимодействии двух объектно-ориентированных платформ, например, через Web-сервисы). В качестве примера обычно приводят тип данных «строка». Реляционные базы данных позволяют ограничивать размер строк, тогда как в большинстве объектно-ориентированных языков размер строки ограничивается лишь объемом доступной виртуальной памяти. В любом случае конвертация типов - рутинная работа, которую лучше автоматизировать за счет использования ORM.
-
Интерфейс LINQ to Entities
LINQ to Entities представляет собой альтернативный интерфейс LINQ API, используемый для обращения к базе данных[ CITATION Lin \l 1049 ]. Он отделяет сущностную объектную модель данных от физической базы данных, вводя логическое отображение между ними. Таким образом, схемы реляционных баз данных не всегда подходят для построения объектно-ориентированных приложений и в результате мы имеем объектную модель приложения, существенно отличающуюся от логической модели данных, в этом случае используется LINQ to Entities, который использует модель EDM (Entity Data Model). То есть, если необходимо ослабить связь между сущностной объектной моделью данных и физической моделью данных, например, если сущностные объекты конструируются из нескольких таблиц или требуется большая гибкость в моделировании сущностных объектов.
-
СУБД Microsoft SQL Server 2012
Microsoft SQL Server 2012 представляет собой платформу для работы с базами данных, обеспечивающую возможность крупномасштабной оперативной обработки транзакций, хранения данных и работы с приложениями для электронной торговли; а также является платформой бизнес-аналитики для создания решений по интеграции данных, анализу и составлению отчетов.
SQL Server представляет «среды» для облегчения выполнения задач разработки и управления: SQL Server Management Studio и Business Intelligence Development Studio. В среде Management Studio можно разрабатывать решения компонента SQL Server Database Engine и решения по уведомлению и управлять ими, управлять развернутыми решениями служб Analysis Services, запускать пакеты служб Integration Services и управлять ими, управлять серверами отчетов, отчетами и моделями отчетов служб Reporting Services. В среде BI Development Studio можно разрабатывать решения бизнес-аналитики: проекты служб Analysis Services используются для разработки кубов, измерений и структур интеллектуального анализа данных; проекты служб Reporting Services – для создания отчетов; проекты моделей отчетов – для определения моделей отчетов и проекты служб Integration Services – для создания пакетов.
В этих средах SQL Server 2012 предоставляет графические инструменты, необходимые для проектирования, разработки, развертывания и администрирования реляционных баз данных, аналитических объектов, пакетов преобразования данных, топологий репликации, отчетов, серверов отчетов и серверов уведомлений. Кроме того, SQL Server 2012 включает программы командной строки, позволяющие выполнять из командной строки задачи администрирования.
SQL Server 2012предоставляет новые функции и усовершенствования, повышающие функциональность и производительность труда разработчиков, архитекторов и администраторов. Усовершенствования включают новые инструкции Transact-SQL, типы данных и функции управления. SQL Server 2012R2 является добавочным выпуском SQL Server 2010, в котором улучшены и добавлены различные функции и возможности, в том числе поддержка более 64 логических процессоров, функции управления приложениями и несколькими серверами, службы Master Data Services (MDS) и новые возможности служб Reporting Services. Начиная с версии .NET Framework 4, поставщик данных .NET Framework для SQL Server (System.Data.SqlClient) полностью поддерживает все новые возможности компонента SQL Server 2012Database Engine.
-
Взаимодействие технологий
Как уже отмечалось ранее, все перечисленные выше технологии практически не используются обособленно. Очень часто встаёт необходимость реализации возможностей, которая либо не качественно функционирует, имеет сложные проектировочные решения, либо отсутствует вовсе. Зато при совместном их использовании, достигается приемлемый результат. Схема функционирования приведена на рисунке 2.
-
Архитектура системы
Следует отметить, что и вышеперечисленными технологиями список инструментов, которые будут задействованы в реализации проекта, не ограничивается. Были так же использованы следующие средства веб-разработки:
-
HTML (язык гипертекстовой разметки документов);
-
CSS (формальный язык визуализации гипертекстовых документов);
-
JavaScript (язык программирования, чаще всего используемый для написания сценариев html-документов);
-
Ajax (набор инструкций, позволяющих делать динамические запросы к серверу без видимой перезагрузки веб-страницы).
-
Проектирование информационной системы
При разработке информационной системы, её проектирование является ключевым этапом. В этом разделе приняты концептуальные решения как относительно взаимодействия пользователя с приложением: форма представления элементов управления, навигации, отображения информации, так и внутренних механизмов обработки запросов пользователя и их структурированного отображения.
-
Взаимодействие пользователя с приложением
Для удобства взаимодействия пользователя с информационной системой, следует разграничить по категориям рабочие области приложения, которые в свою очередь в большей или меньшей степени взаимодействую друг с другом.
На этом этапе важно соблюдать закономерность отображения элементов управления приложения, а так же систематизировать вывод запросов. Следуя концепции современной web-вёрстки, достигается цель быстрого обучения персонала, что очень важно ввиду экономических причин, которые описаны в главе 4.
Взаимодействие пользователя с системой сводится к обращениям к контроллеру через представление. Контроллер обрабатывает поступившие запросы и на их основе отправляет сформированные данные, полученные из базы данных, в представление. После отправки данных пользователю, метод контроллера обращается к базе данных с запросом на закрытием соединения. Движок ASP.NET Razor обрабатывает Razor-выражения, преобразуя C# код в HTML, после чего пользователь получает чистый HTML-код [ CITATION Ора \l 1049 ]. Диаграмма последовательности [ CITATION Ани07 \l 1049 ] представлена на рисунке 3.
-
Диаграмма последовательности (поиск связанных элементов)
На данном примере видно, как любое действие в приложении не обходится без участия контроллера, взаимодействие же с базой данных происходит исключительно по потребности. По схожему механизму работает практически вся система отображения конфигураций.
-
Проектирование интерфейса
На этапе визуального проектирования следует опираться на минимальное, но в то же время оптимальное количество разделов меню, строгое оформление страниц без излишеств и интуитивно-понятное представление информации. Макеты этой концепции представлены на рисунках 4–6.
Визуальный интерфейс должен предоставлять возможность отображения таких страниц как «Главная» (поиск связанных элементов конфигурации), «Сотрудники», «Элементы конфигурации», «Изменения», «Инциденты», «Проблемы», «Рабочие группы», «Статистика».
-
Макет основной страницы
Представленный на рисунке 4 макет главной страницы демонстрирует схематичный вывод информации по запросу: краткие сведения об искомом ЭК, а так же связанные элементы с указанием типа связи.
-
Макет страницы с выводом информации
-
Макет страницы с визуализацией статистики
Цветовая гамма по требованию заказчика должна строго соответствовать корпоративному стилю. Допускаются серые тона трёх оттенков, чёрный, белый и тёмно-красный цвета. Используемый шрифт без засечек.
-
Разработка бизнес-логики приложения
Используя шаблон проектирования ASP.NET MVC достаточно легко проектировать логику и маршрутизацию. Как отмечалось ранее, это и есть одно из основных его преимуществ: разделение модели информации, методов действий и представлений.
Кроме прозрачной синхронизации данных, необходимо обеспечить разделение поведения (методов). Существует разная логика: логика визуализации (например, по нажатию на кнопку могут так или иначе окрасится, стать доступными или видимыми те или иные поля), и бизнес-логика (например, по введенным данным вычисляется определенные значения).
Обеспечить логику визуализации нужно в классе визуализации, а бизнес-логику соответственно в бизнес-сущности. Не всегда это бывает тривиально, но этому стоит уделить существенное внимание, трудность возникает в том, что сигнал от пользователя единственный - например, нажатие кнопки, а вызвать нужно два или более независимых методов. При этом из объекта визуализации мы не можем вызывать методы бизнес-сущности, чтобы не нарушить основные принципы разделения. В таких случаях нужно использовать функциональность контроллеров, которые проассоциирует сигналы от визуального интерфейса с методами бизнес-сущности, и вместо прямой строгой связи образует прозрачную связь[ CITATION The03 \l 1049 ].
-
Безопасность
Безопасность информационных систем – это защищенность информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, которые могут нарушить доступность, целостность или конфиденциальность информации[ CITATION Осн1 \l 1049 ].
Необходимо оградить существующую базу данных АСУ ЕСПП от несанкционированного доступа, случайного или направленного изменения данных – удаления или добавления. А так же следует учесть риск утечки информации через internet-сеть.
В частном случае существующая база данных запрещает иной доступ к данным, кроме как «чтение» на уровне ролей пользователей базы данных. В таком случае, риск, связанный с изменением или удалением данных исчерпывается. Тем не менее, необходимо реализовать привязку учётных записей к Active Directory к системе (рисунок 7).
-
Схема авторизации в доверенной подсистеме
Это достигается на этапе создания проекта и выбором пункта «создать Intranet приложение»: в «обозреватель решения» добавятся необходимые классы для работы в режиме Intranet-сеть и при первом доступе к ресурсу пользователь увидит диалоговое окно с просьбой ввести регистрационные данные Windows.
-
Схема размещения информационной системы
Физическое представление информационной системы не может быть полным, если отсутствует информация о ее топологии и необходимых аппаратных средствах. Помимо сведений о компьютерах, обрабатывающих информацию, необходимо определить, как будет осуществляться связь между ними и какие дополнительные ресурсы (принтеры, модемы, маршрутизаторы и т. д.) должны быть задействованы. Конечно, если разрабатывается однопользовательская локальная система, то отсутствует необходимость в разработке подобной диаграммы. Однако при разработке сетевых корпоративных приложений ситуация представляется совсем по-другому.
Формой физического представления программной системы является диаграмма развертывания (синоним – диаграмма размещения). Она применяется для представления общей конфигурации и топологии распределенной программной системы и содержит распределение компонентов по отдельным узлам системы. Кроме того, диаграмма развертывания показывает наличие физических соединений – маршрутов передачи информации между аппаратными устройствами, задействованными в реализации системы.
С учётом логической архитектуры ЛВС в ХИВЦ ОАО «РЖД», принято решение разместить приложение на Web-сервер, который в свою очередь будет располагаться на виртуальной машине в кластере VSphere. Обращение к СУБД SQL Server и к системе хранения данных (СХД) осуществляется через высокоскоростные интерфейсы, такие как оптоволокно. Рабочие станции подключаются к ЛВС посредством Gigabit Ethernet (рисунок 8).















