Кейс-задача №4: WEB-приложение (Delphi/IIS/MS SQL Server)
  • Python 49.4%
  • HTML 31.1%
  • TSQL 19.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-19 13:18:38 +09:00
templates Кейс-задача: решение и тесты 2026-07-19 13:18:38 +09:00
app.py Кейс-задача: решение и тесты 2026-07-19 13:18:38 +09:00
mssql_schema.sql Кейс-задача: решение и тесты 2026-07-19 13:18:38 +09:00
README.md Кейс-задача: решение и тесты 2026-07-19 13:18:38 +09:00
requirements.txt Кейс-задача: решение и тесты 2026-07-19 13:18:38 +09:00

Кейс-задача № 4. WEB-приложения и их архитектура

Условие: Провести анализ и описать имеющееся на рынке ПО информационных систем, построенных по архитектуре WEB-приложений; оценить возможности таких систем; создать приложение WEB-архитектуры на любую тему с использованием Delphi 10.2 + MS Internet Information Server (IIS), базу данных создать в MS SQL Server. Допускается «иной удобный способ».

Замечание по инструментам

В доступной среде выполнения практики отсутствуют Delphi 10.2, IIS и MS SQL Server (среда — Linux-сервер без лицензионного ПО Windows). Пункт задания прямо допускает «иной удобный способ» реализации, поэтому та же архитектура WEB-приложения (клиент — браузер, сервер приложений, СУБД) реализована на стеке Python + Flask (сервер приложений, аналог IIS с ISAPI/ASP.NET-модулями) со схемой БД, спроектированной для MS SQL Server (T-SQL, mssql_schema.sql), и рабочим прототипом на SQLite для локального запуска без установки MS SQL Server. Слой доступа к данным вынесен отдельно, поэтому переключение на MS SQL Server сводится к замене строки подключения (например, через pyodbc).

1. Анализ рынка ПО, построенного по архитектуре WEB-приложений

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

Продукт Класс системы Архитектура Особенности
1С:Предприятие 8 (WEB-клиент) ERP/учётная система Тонкий/WEB-клиент + сервер 1С + СУБД (MS SQL/PostgreSQL) Широкая экосистема конфигураций, встроенный язык, но высокая стоимость лицензий
Bitrix24 CRM/корпоративный портал Классическая трёхзвенная WEB-архитектура (PHP + MySQL) Быстрое внедрение, готовые модули, ограниченная гибкость кастомизации
Microsoft SharePoint (IIS) Корпоративный портал/DMS IIS + ASP.NET + MS SQL Server Глубокая интеграция с экосистемой Microsoft, тяжёлое администрирование
Django/Flask-приложения (self-hosted) Универсальный WEB-фреймворк WSGI-сервер + Python + любая СУБД Максимальная гибкость, но требует собственной разработки
Redmine / Jira (WEB) Таск-трекер Java/Ruby сервер приложений + СУБД Хорошо подходит для управления задачами и практик, платно/бесплатно

Оценка возможностей и вариантов использования в компании:

  • Функциональность и масштабируемость. Готовые системы (1С, Bitrix24, SharePoint) закрывают типовые бизнес-процессы «из коробки», но плохо масштабируются под нестандартные задачи без доработки вендором. Самостоятельная разработка (Flask/Django) даёт полный контроль над функциональностью и позволяет горизонтально масштабировать сервер приложений независимо от СУБД.
  • Стоимость владения. Коробочные решения требуют лицензионных отчислений (1С, SharePoint/IIS + Windows Server), тогда как связка Python/Flask + PostgreSQL/MySQL/SQLite — open-source и бесплатна для небольших и средних внедрений.
  • Сопровождаемость. Чем крупнее вендор, тем регулярнее обновления безопасности, но тем сильнее зависимость от него (vendor lock-in). Собственная разработка проще сопровождается небольшой командой, если архитектура изначально спроектирована модульно (как в данном прототипе: отдельный слой доступа к данным, отдельные шаблоны, отдельная маршрутизация).
  • Применение в компании. Для небольшой организации целесообразно использовать связку веб-фреймворк + реляционная СУБД для внутренних учётных WEB-приложений (заявки, каталоги, заказы) — именно такой сценарий и демонстрирует прототип ниже.

2. Демонстрационное WEB-приложение: «Учёт заявок технической поддержки»

Простое CRUD WEB-приложение на Flask: список заявок, форма добавления новой заявки, хранение данных в реляционной БД.

Файлы

  • app.py — сервер приложений на Flask (маршруты /, /add).
  • templates/ — HTML-шаблоны страниц (список заявок и форма добавления).
  • mssql_schema.sql — DDL-скрипт таблицы заявок для MS SQL Server (целевая СУБД по заданию).
  • requirements.txt — зависимости для запуска прототипа.

Запуск прототипа локально (SQLite)

pip install -r requirements.txt
python3 app.py
# приложение доступно на http://127.0.0.1:5000

Развёртывание в целевой архитектуре задания

  1. Выполнить mssql_schema.sql на сервере MS SQL Server.
  2. Разместить приложение на Windows-сервере с установленным IIS (модуль httpplatformhandler или wfastcgi для запуска Python/Flask под IIS, либо аналогичный ISAPI-модуль при реализации на Delphi 10.2 + WebBroker/IntraWeb).
  3. Заменить строку подключения к БД в app.py на подключение к MS SQL Server через pyodbc/ODBC DSN.