Файл: Анализ и оценка средств реализации структурных методов анализа и проектирования экономической информационной системы (Описание предметной области. Постановка задачи).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 12.03.2024

Просмотров: 19

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 8 – Введение прослойки сервисов для доступа к данным

Минусом такого подхода является то, что любой сервис, вне зависимости от выполняемых им функций, имеет полный доступ к данным БД. Для того, чтобы исправить этот недостаток, необходимо обеспечить зависимость сервисов не от полного контекста базы данных, а только от той части, которая необходима ему для полного выполнения своей задачи. Т.е. в нашем случае сервисы будут зависеть от одного или нескольких репозиториев, общающихся только с одной таблицей базы данных. Эта схема представлена на рисунке 9.

Рисунок 9 – Введение зависимости сервисов от репозитория

Теперь данные надежно ограждены от прямого использования их клиентом, однако остается нерешенным вопрос синхронизации изменений одной из таблиц и влиянии этой ситуации на продолжения выполнения операций на стороне клиента. Эту коллизию позволяет разрешить паттерн Unit of work, назначение которого – использование единственного экземпляра контекста базы данных в рамках операции, затрагивающей изменение нескольких таблиц базы данных. Из возможностей, предоставляемых экземпляру UnitOfWork, можно обозначить лишь синхронизированное сохранение внесенных изменений. На схеме это все выглядит следующих образом.

Слой бизнес-объектов

Для доступа к данным используется технология Entity Framework, позволяющая работать с таблицами базы данных как с ООП-классами приложения, на порядок упрощая взаимодействие коллекций. Следственно, для нормальной синхронизации приложения и базы данных, а также добавление, изменение и удаление сущностей без полной переконфигурации приложения, необходимо:

    • разработать ООП-классы (обертки), являющиеся прототипами сущностей в БД;
    • разработать конфигурационные типы, позволяющие привязать классы-обертки к данному типу контекста базы данных.

Слой доступа к данным

Этот слой представлен такими абстракциями, как:

    • объект Unit of work и фабричный метод для его создания;
    • репозитории и типизированные объекты DataSource;
    • сервисы для использования их в приложении;
    • контейнер инверсии зависимостей.

У репозиториев нет прямого доступа к данным таблиц БД, однако им необходимо получить его для реализации методов сервисов. Однако, у репозиториев есть доступ к объекту Unit of work, который может обращаться напрямую к базу данных. Поэтому прослойкой между базой данных и репозиториями будет объект DataSource, инициализируемый с помощью UnitOfWork.


Получается, роль DataSource состоит в получении данных из таблицы, добавлении и удалении их. Эту особенность расширяет Repository, оставляя изменение и сохранение всех изменений интерфейсу IUnitOfWork.

В качестве клиентского приложения использовалось веб приложение на основе архитектурного шаблона MVC.

В качестве клиентского приложения использовалось веб-приложение на основе архитектуры ASP.NET MVC. Его основными составляющими являются:

  • контроллеры – классы, берущие на себя ответственность за обработку действий пользователя и возвращению конечных данных, полученные вследствие этих действий;
  • модели – классы, которые представляют собой обертку бизнес-объектов, либо же специализированные типы, спроектированные для представления пользователям (или получению от них) данных с заранее определенной сигнатурой;
  • представления – конечный интерфейс пользователя, конвертирующийся движком ASP.NET в HTML-страницу.

В качестве платформы проектирования была выбрана широко известная платформа для разработки программных и веб-продуктов от Microsoft .NET. А в качестве языка программирования будет выбран C#.

Язык программирования С# был создан в конце 90-х годов компанией Microsoft в качестве одного из основных объектно-ориентированных языков программирования, поддерживающих платформу .NET. Впервые он увидел свет в качестве α-версии в середине 2000 года.

С# непосредственно связан с С/C++, SmallTalk и Java. Эти три языка – самые популярные и самые любимые языки программирования в мире, более того, практически все профессиональные программисты знают по меньшей мере один из этих языков. Поскольку С# построен на прочном, понятном фундаменте, то переход от этих "фундаментальных" должен происходить без особых усилий.

От С язык С# унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, С# построен на улучшенной объектной модели, определенной в C++. С# и Java связаны между собой несколько сложнее: у него тоже общий с ними синтаксис и сходная объектная модель. Подобно Java C# предназначен для создания переносимого кода, однако С# – не потомок Java.

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

Свой синтаксис C# во многом унаследовал от C++ и Java. Между этими тремя языками синтаксически много похожих черт, однако, вместе с тем он является во многом новаторским – атрибуты, делегаты и события преподнесли новые возможности разработчикам программного обеспечения. Их введение позволило применять принципиально новые приемы программирования.


Большинство авторов роднит язык C# с Java: работа в виртуальной среде исполнения, сборщик мусора, основа на механизме ссылок. При сравнении с этим языком сразу выделяются такие особенности, как возможность объявлять несколько классов в одном файле, из чего следует синтаксическая поддержка иерархической системы пространств имен. Из реализации ООП-концепций сходство в механизме наследования и реализации, но в Java отсутствуют свойства и индексаторы.

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

Ввиду очень удобного объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных уровней приложения. Также следует отметить, что C# является и web-ориентированным – используя простые встроенные конструкции языка, компоненты могут выступать в качестве веб-сервисов, к которым можно будет обращаться из Internet посредством любого языка на любой операционной системе. Дополнительные возможности и преимущества перед другими языками приносит в C# использование передовых технологий, таких как: XML и SOAP.

Симметричная мультипроцессорная архитектура MS SQL Server предусматривает использование «родных» сервисов операционной системы Windows NT для управления потоками (threads), памятью, операциями дискового чтения/записи, сетевыми службами, функциями безопасности, а также для поддержки параллельного выполнения потоков на нескольких CPU. Использование потоков Windows NT позволяет MS SQL Server автоматически масштабироваться при работе на многопроцессорных платформах, что исключает необходимость дополнительной конфигурации или программной настройки. Например, на Comdex была продемонстрирована работа MS SQL Server на платформе AlphaServer 8400 производства Digital, оснащенным 12 процессорами, 28 Гбайт памяти и 39-ти терабайтным хранилищем. В отличие от большинства распространенных СУБД, вынужденных иметь в своем составе механизмы дублирования ядра операционной системы для обеспечения кросс-платформенной переносимости, MS SQL Server обладает достаточно легковесной прозрачной архитектурой, не перетяжеленной несвойственными ей функциями. В результате, например, при смене типа процессора не требуется заново приобретать MS SQL Server для новой аппаратной платформы. Он ставится, по определению, на все, на чем работает Windows NT (на сегодня это Intel, Alpha, MIPS и PowerPC). По мере того как Windows NT завоевывает все большее признание, и все ведущие производители СУБД уже выпустили версии своих продуктов под этой операционной системой или уже заявили о своей готовности это сделать в ближайшее время, изначальная ориентированность MS SQL Server 6. 5 на тесную интеграцию с Windows NT выступает в качестве одного из серьезных преимуществ.


На каждое пользовательское соединение в MS SQL Server назначается отдельный рабочий поток (порядка 55К) в рамках единого серверного процесса. Так как каждый из этих потоков в действительности является потоком Win32, на них распространяются соответствующие функции контроля операционной системы, включая защиту памяти, правила доступа к оборудованию и планирование выполнения потоков во времени (thread scheduling). Это предоставляет улучшенные способности к масштабированию при росте числа одновременно работающих пользователей, динамическую балансировку при загрузке процессоров и повышенную надежность, так как пользовательские запросы, исполняющиеся на разных потоках, защищены друг от друга. Несмотря на то что пул соединений ограничен 1024 потоками, динамическое управление пользовательскими соединениями и свободными потоками позволяет увеличить эту величину до 32 767. Кроме этого, другие пулы потоков могут использоваться для параллельного выполнения операций сканирования данных, удаления и обновления, резервного копирования, проверки целостности базы, индексирования, асинхронного опережающего чтения данных в кэш на основе алгоритмов предсказания, создания и управления курсорами и т. д. Сетевые службы Windows NT обеспечивают MS SQL Server поддержку протоколов TCP/IP, NWLink IPX/SPX, Named Pipes (NetBEUI), Banyan Vines, AppleTalk (ADSP) и DECNet. В версии 6. 5 к ним добавилась дополнительная сетевая библиотека multiprotocol network library, которая «умеет слушать» порты TCP/IP, сокеты SPX или поименованные каналы (named pipes), которые обычно выбираются динамически. Несомненным достоинством multiprotocol является наличие сетевого сервиса, обеспечивающего взаимодействие между процессами при помощи вызовов удаленных процедур, что позволяет, например, использовать шифрование при передаче данных.

Данная система управления базой данных выбрана из-за множества факторов, ставящих ее далеко вперед существующих аналогов:

  • высокая степень поддержки продукта компанией;
  • большой объем интеграционных технологий, прямо связанных с платформой .NET, позволяющих вести удобную разработку с помощью минимальных временных затрат, при этом не теряя в качестве итогового кода;
  • полная поддержка технологии T-SQL;
  • большое количество готовых библиотек, позволяющих оперировать данными без каких-либо адаптаций кода или базы данных;
  • структура хранилища с поддержкой COM-объектов;
  • вертикальная и горизонтальная расширяемость базы данных;
  • расширенная встроенная система аудита.

Серверный проект будет составлен из следующих систем типов:


  • объекты бизнес-логики – аналоги сущностей базы данных, которые используются для ООП-логики в приложении;
  • типы конфигурации модели БД – определенного рода надстройки над системой общения с базой данных, позволяющей ей ориентироваться на определенные типы, правильно связывать данные и получать информацию о целостности структуры данных;
  • сервисы уровня бизнес-объектов – сервисы, которые позволяют совершать основные операции с бизнес-сущностями: выборка, добавление, изменение, удаление;
  • сервисы для обработки данных – сервисы, не влияющие прямо на состояние бизнес-объектов, однако позволяющие производить определенные операции с ними или связанными с ними объектами, либо выполнять сложную выборку из нескольких коллекций;
  • модели DTO – структуры, основная задача которых – передавать данные состояния объекта. Особенно такие структуры полезны, если необходимо строго разделить сервис, работающий с бизнес-объектами, однако которому нельзя предоставлять функционал изменения данных в БД;
  • контроллеры MVC – основной набор типов, включающихся в процессе работы пользователя с приложением – они направляют пользователя на определенные страницы при соответствующем запросе и вызывают необходимые функции сервисов.

2.2 Моделирование бизнес-процессов «как должно быть»

На основании аналитического обзора и требований к системе необходимо разработать следующие ключевые сущности:

  • клиент;
  • тип сервиса;
  • сервис;
  • тренер;
  • специализация тренера.

Для составления расписания посещений клиента также понадобятся таблицы:

  • выбор клиента;
  • история посещений;
  • история оплаты.

Для безопасности приложения необходимо разработать таблицу с пользователями приложения.

Отобразим подробности всех разработанных сущностей.

Сущность «Клиент» (Client) описывает всех, включая неактивных, посетителей клуба.

Таблица 6

Сущность «Клиент»

Поле

Тип данных

Ограничения

Id

int

Первичный ключ таблицы. Генерируемое базой данных значение

FirstName

nvarchar

Значение не может быть равно NULL. Ограничение по длине в 50 символов

LastName

nvarchar

Значение не может быть равно NULL. Ограничение по длине в 50 символов

Email

nvarchar

Значение не может быть равно NULL. Ограничение по длине в 50 символов

Phone

nvarchar

Значение не может быть равно NULL. Ограничение по длине в 50 символов

RegisteredAt

datetime

Значение не может быть равно NULL

IsDeleted

bit

Значение не может быть равно NULL