Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

--- 1 --- 1 Artyushina E.A. 1
1 ---

На текущий момент архитектура «клиент-сервер» наиболее распространена и востребована при создании программных приложений для работы с базами данных (БД), поскольку позволяет равномерно разделять вычислительную нагрузку между отдельными компонентами информационных систем. Основной сложностью проектирования таких систем является рациональное распределение функций между серверной и клиентской частями информационного приложения. В данной статье рассматриваются результаты разработки автоматизированной информационной системы (АИС) аптечной сети.

Согласно техническому заданию, АИС должна обеспечивать получение информации из БД по следующим запросам пользователя: 1) сортировка прайс-листа аптеки; 2) фильтрация: сведения о лекарствах поставщика X; медикаменты от поставщика Х, не превышающие закупочной цены Y; 3) вычисления: количество лекарств от поставщика X; 4) коррекция данных, доступная только в режиме «Фармацевт»: удаление информации о лекарствах, отсутствующих в продаже; изменение цен от поставщика X на N %.

Клиент-серверная модель АИС представлена на рис. 1.

Для физической реализации БД была выбрана реляционная система управления базами данных (СУБД) PostgreSQL, которая поддерживает все последние стандарты SQL и относится к категории ПО «open source». Полученная схема данных изображена на рис. 2

appar4.tif

Рис. 1. Модель АИС «Аптека»

appar5.tiff

Рис. 2. Реляционная схема БД «Аптека»

appar6.tiff

Рис. 3. Стартовая страница online-системы в браузере

API интерфейс для AJAX

Интерфейс

Параметры

Назначение

AddMed.py

nameMed, wholePrice, retailPrice, date, stock

Добавление нового лекарства в БД

AllListMed.py

---

Получение списка всех лекарств

allListProvider.py

---

Получение списка всех поставщиков

allListStock.py

---

Получение списка всех складов

countMed.py

nameProvider

Получение количества всех лекарств от поставщика Х

delMedicine.py

id

Удаление лекарства их БД

filterList.py

nameProvider, priceMedicine

Получение списка лекарств от поставщика Х стоимостью ниже Y

listPharmacy.py

---

Получение списка всех аптек

priceList.py

id, sort

Получение списка лекарств аптеки Х

search.py

nameProvider

Поиск лекарств от поставщика Х

serviceList.py

idPharmacy

Получение списка предоставляемых услуг аптекой Х

updatePrice.py

nameProvider, percent

Изменение цены на лекарства поставщика Х на N %

При разработке программного обеспечения данной АИС использовались также следующие инструментальные и языковые средства:

- для разработки серверного приложения: язык программирования Python3 и программная платформа Framework Tornado;

- для проектирования клиентского приложения: языки разработки графического интерфейса пользователя HTML5 + CSS3; технология обращения к серверу без перезагрузки страниц Ajax; технология обработки действий пользователя и динамического отображения данных jQuery [1,2].

Пример экранной формы клиентской части web-приложения представлен ниже на рис. 3.

Серверная часть online-системы реализована на языке программирования Python3 с использованием программной платформы Framework Tornado. Структура API (Application Programming Interface) приведена в таблице. Таким образом, в данной работе API-сервер является промежуточным звеном между СУБД и web-клиентом, который позволяет получать информацию из БД в стандартном для web-приложений формате. Бизнес-логика online-системы «Аптека» полностью перенесена на сервер приложений и свободно модифицируется. Также, при необходимости изменения целевой СУБД, все трансформации коснутся лишь серверной части информационной системы, что позволит сберечь временные и финансовые ресурсы коммерческого предприятия, которые потребовались бы для перекодирования SQL-клиентов.