Пояснительная записка - Федоренко АВ 943 группа Хабаовск 2015 (1218829), страница 4
Текст из файла (страница 4)
Использование представлений позволяет отделить прикладную схему представления данных от схемы хранения [12]. С точки зрения прикладной программы структура данных соответствует тем представлениям, из которых программа эти данные извлекает. В действительности данные могут храниться совершенно иным образом, достаточно лишь создать представления, отвечающие потребностям программы. Разделение позволяет независимо модифицировать прикладную программу и схему хранения данных: как при изменении структуры физических таблиц, так и при изменении программы достаточно изменить представления соответствующим образом. Изменение программы не затрагивает физические таблицы, а изменение физической структуры таблиц не требует корректировки программы [10].
Поскольку SQL-запрос, выбирающий данные представления, зафиксирован на момент его создания, СУБД получает возможность применить к этому запросу оптимизацию или предварительную компиляцию, что положительно сказывается на скорости обращения к представлению, по сравнению с прямым выполнением того же запроса из прикладной программы.
На основании созданных таблиц базы данных, а также сконструированных представлениях можно приступить к созданию программного продукта.
4 РАЗРАБОТКА КОМПЛЕКСА КЛИЕНТСКОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
В ходе анализа предметной области было установлено, что для наиболее эффективной реализации поставленной задачи, необходимо при написании клиентского программного обеспечения использовать клиент-серверную модель вычислений. Данный подход может существенно снизить нагрузку как на персональный компьютер пользователя, так и на сеть [18].
4.1 Клиент-серверная модель вычислений
Клиент-сервер – это модель взаимодействия компьютеров в сети [18].
Часть компьютеров в сети владеет и распоряжается информационно-вычислительными ресурсами (такими как процессоры, файловая система, почтовая служба, служба печати, база данных); другая часть имеет возможность обращаться к этим службам, пользуясь услугами первых. Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса, а компьютер, желающий им воспользоваться – клиентом. Конкретный сервер определяется видом ресурса, которым он владеет. Так, если ресурсом являются БД, то речь идет о сервере баз данных, назначение которого – обслуживать запросы клиентов, связанные с обработкой данных; если ресурс – это файловая система, то говорят о файловом сервере, или файл-сервере, и т.д. [18].
В реализованной по архитектуре клиент-сервер информационной сети клиенту предоставлен широкий спектр приложений и инструментов разработки, которые ориентированы на максимальное использование вычислительных возможностей клиентских рабочих мест, используя ресурсы сервера в основном для хранения и обмена документами, а также для выхода во внешнюю среду. Для программных систем с разделением на клиентскую и серверную части, применение данной архитектуры позволяет надежнее защитить серверную часть приложений, при этом предоставляя возможность приложениям либо непосредственно адресоваться к другим серверным приложениям, либо маршрутизировать запросы к ним. Средством (инструментарием) для реализации клиентских модулей для ОС Windows в данном случае является Visual Basic.
Однако при этом частые обращения клиента к серверу снижают производительность работы сети, кроме того, приходится решать вопросы информационной безопасности, так как приложения и данные распределены между различными клиентами. Распределенный характер построения системы обусловливает сложность ее настройки и сопровождения. Чем сложнее структура сети с архитектурой клиент-сервер, тем выше вероятность отказа любого из ее компонентов
Существует несколько моделей технологии клиент-сервер. Если для проектируемой АИС (автоматизированной информационной системы) закладывают технологию клиент-сервер, то это означает, что прикладные программы, реализованные в ее рамках, будут иметь распределенный характер, т. е. часть функций прикладной программы будет реализована в программе-клиенте, другая – в программе-сервере, причем для их взаимодействия будет определен некоторый протокол [18].
Основной принцип технологии клиент-сервер заключается в разделении функций стандартного интерактивного приложения на четыре группы различной природы. Первая группа – это функции ввода и отображения данных. Вторая группа объединяет чисто прикладные функции, характерные для данной предметной области (например, в реализованной ВКР это создание инцидента о проверке на мошенничество). К третьей группе относятся фундаментальные функции хранения и управления информационными ресурсами (БД, файловыми системами и т. д.), Наконец, функции четвертой группы – это служебные функции (играют роль связок между функциями первых трех групп).
В любом приложении выделяются следующие логические компоненты:
-
компонент представления, реализующий функции первой группы;
-
прикладной компонент, поддерживающий функции второй группы;
-
компонент доступа к информационным ресурсам, поддерживающий функции третьей группы, а также вводятся и уточняются соглашения о способах их взаимодействия (протокол взаимодействия).
Различия в реализациях технологии клиент-сервер определяются четырьмя факторами. Во-первых, тем, в какие виды программного обеспечения интегрированы каждый из этих компонентов. Во-вторых, тем, какие механизмы программного обеспечения используются для реализации функций всех трех групп. В-третьих, как логические компоненты распределяются между компьютерами в сети. В-четвертых, какие механизмы используются для связи компонентов между собой.
Выделяются четыре подхода, реализованные в моделях:
-
модель файлового сервера (File Server – FS);
-
модель доступа к удаленным данным (Remote Data Access -RDA);
-
модель сервера базы данных (DataBase Server – DBS);
-
модель сервера приложений (Application Server – AS).
FS-модель является базовой для локальных сетей персональных компьютеров. Не так давно она была очень популярна среди отечественных разработчиков в средах FoxPRO, Clipper, Clarion, Paradox и т. д. Суть модели невероятно проста: один из компьютеров в сети считается файловым сервером и предоставляет услуги по обработке файлов другим компьютерам. Пример модели показан на рисунке 7. Файловый сервер работает под управлением сетевой операционной системы (например, Novell NetWare) и играет роль компонента доступа к информационным ресурсам на других компьютерах [18].
Рисунок 7 – Модель файлового сервера
FS-модель послужила фундаментом для расширения возможностей персональных СУБД в направлении поддержки многопользовательского режима. В таких системах на нескольких персональных компьютерах выполняется как прикладная программа, так и копия СУБД, а БД содержатся в разделяемых файлах, которые находятся на файловом сервере. Когда прикладная программа обращается к БД, СУБД направляет запрос на файловый сервер. В этом запросе указаны файлы, где находятся запрашиваемые данные. В ответ на запрос файловый сервер направляет по сети требуемый блок данных. СУБД, получив его, выполняет действия, которые были декларированы в прикладной программе [18].
К технологическим недостаткам модели относят интенсивный сетевой трафик (передача множества файлов, необходимых приложению), узкий спектр операций манипуляции с данными («данные – это файлы»), отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы) и т. д. Собственно, перечисленное не есть недостатки, но следствие внутренне присущих FS-модели ограничений, определяемых ее характером. Недоразумения возникают, когда FS-модель используют не по назначению, например, пытаются интерпретировать как модель сервера БД. Место FS-модели в иерархии моделей клиент-сервер – это всего лишь место модели файлового сервера. Именно поэтому невозможно создание на основе FS-модели крупных корпоративных систем, что нередко делалось в прошлом и предпринимается сейчас [18].
RDA-модель (более технологичная) существенно отличается от FS-модели характером компонента доступа к информационным коды компонента представления и прикладного компонента совмещены и выполняются на компьютере-клиенте. Он поддерживает как функции ввода и отображения данных, так и чисто прикладные функции [18]. Доступ к информационным ресурсам обеспечивается либо операторами специального языка (языка SQL, если речь идет о БД), либо вызовами функций специальной библиотеки (если имеется соответствующий интерфейс прикладного программирования – API).
Клиент направляет запросы к информационным ресурсам (например, к БД) по сети удаленному компьютеру. На нем функционирует ядро СУБД, которое обрабатывает запросы и возвращает клиенту результат, оформленный как блок данных (рисунок 8).
Рисунок 8 – Модель доступа к удаленным данным
При этом инициатором манипуляций с данными выступают программы, выполняющиеся на компьютерах-клиентах, в то время как ядру СУБД отводится пассивная роль – обслуживание запросов и обработка данных [18].
RDA-модель не имеет недостатков, присущих системам с централизованной архитектурой и системам с файловым сервером. Прежде всего, перенос компонента представления и прикладного компонента на компьютеры-клиенты существенно разгружает сервер БД, сводя к минимуму общее число процессов операционной системы. Сервер БД освобождается от несвойственных ему функций; процессор или процессоры сервера целиком загружаются операциями обработки данных, запросов и транзакций (благодаря отсутствию терминалов и автоматизированных рабочих мест собственными локальными вычислительными ресурсами). С другой стороны, резко уменьшается загрузка сети, так как по ней передаются от клиента к серверу не запросы на ввод-вывод (как в системах с файловым сервером), а запросы на языке SQL, их объем существенно меньше [18].
Основное достоинство RDA-модели – унификация интерфейса клиент-сервер в виде языка SQL. Действительно, взаимное действие прикладного компонента с ядром СУБД невозможно без стандартизованного средства общения, таким средством и является язык SQL [18].
DBS-модель реализована в некоторых реляционных СУБД (Informix, Ingres, Sybase, Oracle); в настоящее время приобретает все большую популярность. Ее основу составляет механизм хранимых процедур – средство программирования SQL-сервера. Процедуры хранятся в словаре БД, разделяются между несколькими клиентами и выполняются на том же компьютере, где функционирует SQL-сервер. Язык, на котором разрабатываются хранимые процедуры, представляет собой процедурное расширение языка запросов SQL и уникален для каждой конкретной СУБД.
В DBS-модели компонент представления выполняется на компьютере-клиенте, в то время как прикладной компонент оформлен как набор хранимых процедур и функционирует на компьютере-сервере БД.
На практике же часто используют смешанные модели, когда целостность БД и некоторые простейшие прикладные функции поддерживаются хранимыми процедурами (DBS-модель), а более сложные функции реализуются непосредственно в прикладной программе, которая выполняется на компьютере-клиенте (RDA-модель). Так или иначе, современные многопользовательские СУБД опираются на RDA и DBS модели [18].
При создании пользовательских приложений в рамках ВКР было использовано сочетание RDA и DBS модели.
4.2 Интерфейс программы
После того, как была выбрана подходящая модель клиентского программного обеспечения, можно приступить к реализации интерфейса программы. Всего в рамках данного проекта было реализовано 6 типов клиентских приложений. Каждый тип приложения отвечал за те задачи, которые выполняет ответственный сотрудник на своем этапе бизнес-процесса. В качестве примера рассмотрим создание интерфейса для сотрудников отдела расследования фрод инцидентов.
На данном этапе сотрудникам ОРФИ поступает уведомление от руководителя отдела о поступлении кейса в работу. Необходимо было создать клиентское приложение, в котором бы сотрудники проводили проверку кейса на наличие мошенничества. Приложение должно было соответствовать следующим требованиям:
-
приложение должно интегрировать действия сотрудника с рабочим файлом Excel;
-
информация о ходе выполнения проверки должна поступать на сервер в режиме онлайн;
-
если в бизнес модель процесса добавляется новый элемент рабочая форма должна автоматически обновляться до актуальной версии;
-
приложение должно анализировать работу сотрудника и по окончанию проверки заносить полученную информацию на сервер.
Так как сотрудники ОРФИ ведут информацию о своих проверках в Excel, то и в качестве исполнительного файла для клиентского приложения был выбран Excel файл [19]. Необходимо, чтобы исполнительный файл был универсальным. То есть, в независимости от того, какой сотрудник будет осуществлять работу с кейсом, в файл должны подгружаться только те заявки, которые закреплены за конкретным сотрудником. При открытии Excel книги сотрудник видит пустую таблицу, столбцами которой являются показатели по заявке. Для того, чтобы загрузить информацию в таблицу необходимо нажать кнопку «Добавить кейс», расположенную в левом верхнем углу экрана (рисунок 9).
Рисунок 9 – Рабочий Excel файл
После нажатия кнопки, необходимо, чтобы загружалась форма, в которой сотрудник смог выбрать доступный для него кейс. Ниже представлен часть программного кода, которая позволяет определить ФИО сотрудника, который работает с файлом, а так же создает запрос к серверу на выборку номеров кейсов, доступных для работы сотрудника и добавляет результат в рабочую форму [20].
Private Sub UserForm_lnitialize()
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rstRecordset As New ADODB.Recordset
Dim str As String
cn.ConnectionString = "provider=******; Integrated
Security=*****;" _
& "Initial Catalog=check; Data Source=*********"
cn.Open