Net-Base Журнал

17.04.2026

Комбинирование Delphi Desktop и веб-порталов: архитектура, интерфейсы и модернизация без разрыва

Многие компании эксплуатируют стабильные Delphi-настольные приложения, но им дополнительно требуются веб‑порталы для клиентов, партнёров и мобильных команд. В статье показано, как с помощью сервисного ядра объединить оба решения: варианты архитектуры, REST-APIs, права и SSO, доступ к данным...

17.04.2026

От темы в журнале к проектной практике

Соответствующие страницы услуг и технологий к статье

Video-Botschaft

Комбинирование Delphi Desktop и веб-порталов: архитектура, интерфейсы и модернизация без разрыва

Warum „Portal statt Desktop“ oft scheitert und wie ein gemeinsamer Service-Kern Desktop und Web-Portal konsistent verbindet – mit Fokus auf Betrieb, Rechte und wartbare Schnittstellen.

Video mit KI erstellt

Transkript anzeigen

Guten Tag. Der größte Fehler ist, Portal und Desktop getrennt weiterzuentwickeln.

Im Beitrag „Delphi Desktop und Web-Portale kombinieren: Architektur, Schnittstellen und Modernisierung ohne Bruch“ geht es genau darum. Viele Firmen haben eine stabile Delphi-Desktopanwendung.

Intern läuft damit alles schnell. Aber extern brauchen Kunden und Partner ein Web-Portal – ohne VPN und ohne Client-Rollout.

Wenn man dann nur „Masken im Browser“ nachbaut, entstehen doppelte Regeln. Das merkt man im Betrieb: andere Ergebnisse, mehr Support, schwerere Fehleranalyse.

Die saubere Lösung ist ein gemeinsamer Service-Kern. Also eine zentrale Prozessschicht, die Rechte, Prüfungen und Statuswechsel übernimmt.

Desktop und Portal greifen über definierte Schnittstellen darauf zu. So modernisieren Sie schrittweise, ohne Big-Bang.

Wenn dazu Fragen offen sind, sprechen Sie mich gern an. Wenn Sie dazu Fragen haben oder das Thema auf Ihre eigene Umgebung beziehen moechten, sprechen Sie uns gern an.

Во многих компаниях функциональный «центр управления» за годы вырос в виде Delphi-настольного приложения: VCL-клиент, глубокие процессные знания, быстрая вводная форма данных, печать и отчётные цепочки, специализированное оборудование и часто прямой доступ к базе данных в LAN. Одновременно растут ожидания по самообслуживанию и внешнему сотрудничеству: клиенты хотят проверять статусы заказов, обмениваться документами или регистрировать рекламации — без VPN, без развёртывания Desktop-клиента и без локальной установки.

Комбинация Delphi-Desktop и веб‑порталов на практике означает сведение этих двух миров так, чтобы эксплуатация, безопасность и консистенция данных оставались управляемыми. Важно не «переписывать» экраны в браузере, а построить архитектуру, которая чисто разделяет процессы, права и каналы данных и позволяет обоим фронтендам работать по общим правилам. Выигрыш — путь модернизации без Big‑Bang: десктоп остаётся продуктивным, а веб‑портал растёт контролируемо.

Эта статья адресована IT‑руководству, администраторам и техническим руководителям проектов. В фокусе — влияние на эксплуатацию, администрирование, интерфейсы, безопасность, хранение данных и миграцию — меньше деталей фреймворков. Вы получите практичные шаблоны, критерии принятия решений и типичные подводные камни с мерами противодействия.

Почему «портал вместо десктопа» редко реалистичен

В B2B‑среде существует много причин, по которым десктопный клиент остаётся полезным. Администраторы часто сталкиваются с этим буквально: портал хорош для распределённых пользователей, но для ряда задач десктоп остаётся эффективнее или обеспечивает вообще единственно возможную реализацию.

Сильные стороны десктопа, важные в повседневной работе

  • Сложный ввод данных с очень плотными экранами, управлением с клавиатуры, большими табличными представлениями и быстрыми переключениями между записями.
  • Периферия и локальные интеграции, такие как этикет‑принтеры, сканеры, последовательные устройства или специальные Windows‑компоненты.
  • LAN‑близкая производительность, когда обрабатываются большие объёмы данных или процесс требует крайне низкой задержки.
  • Ростовые рабочие процессы с многочисленными исключениями, при которых попытка 1:1‑портирования в портал сперва несёт высокие риски.

Сильные стороны портала, покрывающие новые требования

  • Внешний доступ для клиентов, поставщиков или партнёров без развёртывания клиента.
  • Централизованное управление (версии, функциональные возможности, права) с чёткой внешней границей.
  • Независимость от устройств (браузер, мобильность) для полевых сотрудников и руководства.
  • Целенаправленное открытие процессов, например запросы статусов, загрузки, утверждения или обращение в тикет‑систему.

В комбинации заключается ценность: десктоп остаётся инструментом высокой производительности для внутренних ролей, портал становится контролируемым входом для внешних групп пользователей. Чтобы это не превратилось в две параллельные «правды», необходим объединяющий центр.

Если вы комбинируете Delphi-Desktop и веб‑порталы: три целевые архитектуры

При выборе архитектуры решающими являются зоны ответственности: где располагается бизнес‑правило? Кто может изменять данные? Какая прослойка является «Single Source of Truth» (то есть авторитетным источником правил и состояний)? Для технических руководителей важно: выбор напрямую влияет на эксплуатацию, локализацию ошибок, управление релизами и безопасность.

Вариант A: портал как дополнение через REST‑API, десктоп остаётся ведущим

Портал обслуживает избранные кейсы, как правило «чтение и инициирование»: статусы, документы, утверждения, простые вводы. Для этого вводят Delphi REST‑API или отдельный REST‑Server. Десктоп‑приложение при этом сначала может продолжать прямой доступ к базе данных.

Оперативное преимущество: быстрый старт, минимальные вмешательства в десктоп, подходит для первого ценностного шага портала.

Риск: существуют два пути доступа к данным (Desktop → прямая БД, Портал → API). Если бизнес‑правила инкапсулированы только в десктопе, возникают несогласованности. Контрмера — запускать функции портала там, где правила просты и могут быть реализованы на сервере (например предоставление документов, запрос статуса, определённые операции утверждения).

Вариант B: сервисное ядро как общая слой бизнес‑логики (рекомендуется при параллельной работе)

Здесь вы поэтапно переносите бизнес‑логику из десктопа в сервисы. Десктоп и портал используют одни и те же конечные точки. Десктоп становится более «rich client» (UI, локальные интеграции), а правила и валидации располагаются на сервере.

Оперативное преимущество: централизованное место для прав, аудита, логики статусов и валидаций; согласованное поведение во всех фронтендах.

Трудозатраты: выше в начале, поскольку нужно продумать стандарты API, форматы ошибок, версионирование, мониторинг и деплоймент. Зато позже нагрузка значительно снижается, так как меньше специальных путей.

Вариант C: портал впереди, десктоп остаётся как специализированный клиент

Этот вариант имеет смысл, если браузер стратегически выбран как основной способ доступа (например сильно распределённая организация), а десктоп остаётся для ролей с спецоборудованием или высокопроизводительным вводом. Сервисное ядро в этом случае должно быть особенно устойчивым и масштабируемым.

Архитектура Layer-3 как понятная ориентировка

Независимо от варианта полезна архитектура Layer-3: (1) презентация (десктоп/портал), (2) прикладной и доменный слой (use cases, правила), (3) инфраструктура (БД, файловое хранилище, messaging, внешние системы). Для администраторов это важно, поскольку границы эксплуатации становятся явными: что является «проблемой фронтенда», что — «проблемой сервиса», что лежит в базе данных или в хранилище? Такое разделение сокращает время поиска ошибок и уменьшает побочные эффекты при деплоях.

Практическая привязка: как десктоп и портал делят один и тот же процесс

Самая большая проблема редко в «построении портала», а в вопросе: как десктоп и портал распределяют ответственность в одном процессе, чтобы правила не дублировались? На практике особенно актуальны три паттерна.

1) Use‑Case‑APIs вместо табличных или CRUD‑API

Обычная тупиковая ситуация — API, которое просто отображает таблицы БД наружу („Create/Read/Update/Delete“). Тогда правила приходится воспроизводить в портале, а десктоп остаётся при своих правилах. Лучше применять API, ориентированные на конкретные сценарии: конечные точки описывают бизнес‑действия, такие как «создать рекламацию», «утвердить заказ», «загрузить документ», «подтвердить статус доставки».

Эффект в эксплуатации ощутим: валидации происходят на сервере, сообщения об ошибках воспроизводимы, и оба клиента (десктоп и портал) запускают один и тот же процесс через единую логику.

2) Управление конфликтами и повторными запросами

С появлением портала повышается вероятность параллельных изменений и повторных запросов (например из‑за таймаутов, ретраев или двойных кликов пользователя). Здесь помогают три концепции, без введения постоянных блокировок:

  • Идемпотентность: критические действия устроены так, чтобы повторный вызов давал тот же эффект и ничего не дублировалось. Практически это часто реализуется через уникальный идентификатор запроса (Idempotency Key).
  • Optimistic Concurrency: запись хранит информацию о версии (например «Row Version»). При изменении сервис проверяет, согласуется ли версия, и аккуратно сообщает о конфликте.
  • Короткие транзакции: вместо «блокируем всё» операции записи держатся краткими. Долгие задачи (например экспорты, пакеты отчётов) выполняются асинхронно.

Для технических руководителей важно: эти механизмы снижают нагрузку на поддержку, потому что типичные ошибки («выполнилось дважды», «моё изменение пропало») встречаются значительно реже.

3) Чёткая модель состояний и передачи

Если десктоп обрабатывает сложные случаи, а портал лишь создаёт заявки или предварительные шаги, нужны определённые переходы состояний. Практический подход: портал создаёт или дополняет записи в чётко ограниченных статусах (например «подано»), десктоп обрабатывает специализированные случаи, сервисное ядро решает и фиксирует переключения статусов. Это предотвращает возможность того, что клиент портала косвенно «сломает» процесс неконтролируемой конфигурацией.

Данные и документы: часто недооцениваемая зона интеграции

Почти каждый портал связан с операциями по файлам: загрузки, подтверждения, накладные, изображения, PDF‑выводы. Для администраторов это ключевой момент, так как он влияет на бэкап, права, антивирусную проверку, стоимость хранения и производительность.

Где хранить файлы: БД, Fileshare или объектное хранилище?

Существует три распространённых варианта хранения, каждый из которых формирует свою операционную реальность:

  • База данных (BLOB): подходит, если транзакции должны быть строго связаны и backup/restore должен покрывать всё целиком. Минусы — зачастую большие базы данных и увеличенные окна резервного копирования.
  • Файловая система/Share: типично для On‑Prem, легко интегрируется в существующие схемы бэкапа. Важно иметь чёткие права доступа и API‑слой для контроля доступа.
  • Объектное хранилище: разумно при масштабировании, политике жизненного цикла или когда внешние доступы технически нужно аккуратно инкапсулировать. Требует продуманной модели ключей и прав.

Независимо от места хранения: портал не должен «прямо» читать файлы с share. Лучше контролируемая передача через сервис‑эндпойнт с проверкой прав, протоколированием и, при необходимости, временной ссылкой для скачивания.

PDF и отчёты: серверная генерация вместо дублирования

Delphi‑настольные приложения часто имеют развившиеся цепочки печати и отчётности. Порталы часто требуют те же содержимые в виде PDF. Вместо поддержки двух реализаций имеет смысл централизовать генерацию документов в сервисном ядре: шаблоны, версионирование и форматы вывода находятся на сервере; десктоп и портал потребляют готовый результат. Для эксплуатации это даёт явные преимущества: прогнозируемые выводы, единое хранение и меньшая зависимость от десктопных инсталляций.

REST‑Server и сервисы: Delphi, C# или смешанная архитектура

При выборе «Delphi или C#» для компаний вопрос чаще организационный, а не идеологический: важны состав команд, операционная среда и сопровождение. Во многих ландшафтах реалистична смешанная архитектура при условии чётких зон ответственности.

Delphi как платформа сервисов: целесообразно при наличии бизнес‑логики

Если бизнес‑логика и доступ к данным уже надёжно реализованы в Delphi, то Delphi‑основанный REST‑Server может быть эффективным. Для администраторов и руководителей важно понимать: работа сервера — это не «десктоп, запущенный постоянно». Продуктивный сервис требует чёткой конфигурации, корректных таймаутов, структурированного логирования, Health‑Checks и воспроизводимого деплоя.

Также стоит модернизировать подключение к данным, если ещё используются старые драйверы или BDE. Замена BDE и переход на современные способы доступа к данным уменьшают число сбоев в эксплуатации и упрощают деплой, так как требуется меньше унаследованных компонентов для установки и обслуживания.

C#‑сервисы в портальной экосистеме: часто из‑за хостинга и Identity

Если портал формируется в среде, где доминирует .NET, то C#‑сервисы часто выглядят естественно — в том числе из‑за интеграции Identity, существующих операционных стандартов и хостинга за Microsoft IIS или в контейнерных платформах. Ключевой момент — избегать двойной реализации логики: либо бизнес‑ядро остаётся в Delphi‑сервисах, а C# решает Edge‑темы (например оркестрация, специфичная для портала), либо вы сознательно планируете миграцию логики в .NET — но тогда это должно быть контролируемо и с чётким разграничением ответственности бизнес‑подразделений.

API‑Gateway: элемент порядка, но не обязательно

API‑Gateway может консолидировать центральные функции (маршрутизация, ограничение скорости, логирование, аутентификация). Для небольших начальных архитектур часто достаточно согласованного API с едиными стандартами. Но как только появляется несколько сервисов и групп пользователей, Gateway помогает держать внешнюю границу стабильной и централизовать политики.

Аутентификация и права: от внутреннего десктопа к внешнему порталу

С появлением портала меняется ландшафт пользователей: помимо внутренних пользователей появляются внешние аккаунты, роли и тенанты. Это порождает требования к Identity, правам и аудиту. Для администраторов это критично, поскольку системы идентификации и модель ролей поздно менять сложно.

SSO через SAML 2.0 или OIDC: меньше админской работы, лучший контроль

В B2B‑сценариях распространён SAML 2.0 (Single Sign‑On через Identity Provider), поскольку организации хотят использовать существующие учётные записи. OIDC (OpenID Connect) также широко используется, особенно на современных платформах. Классические логины по имени/паролю возможны, но они добавляют нагрузку на политику паролей, MFA, процессы сброса и поддержку.

Архитектурно важно: аутентификация (кто ты?) и авторизация (что тебе разрешено?) должны проверяться на сервере — а не в фронтенде портала.

Многоарендность и модель ролей: не откладывайте на «потом»

Клиентский портал практически всегда требует разделения арендаторов: клиент должен видеть только свои данные. Это должно быть реализовано в сервисном ядре, предпочтительно через:

  • Claims в токене (например Tenant‑ID, роли, привязка к контракту), чтобы сервисы могли принимать решения.
  • Проверки на уровне записи (Row‑Level‑Checks) в бизнес‑логике, а не только «скрытие меню».
  • Audit‑trail для критичных действий (кто, что, когда), плюс корреляция через Request‑ID для анализа ошибок.

Десктоп также может — при желании — работать с токенами против того же стека Identity. Это уменьшает специальные пути и облегчает трассируемость изменений, особенно когда портал и десктоп работают с одной записью.

Модернизация доступа к данным: FireDAC, PostgreSQL и контролируемые каналы

Многие Delphi‑настольные решения исторически выросли с прямым доступом к БД. Как только появляется портал, это становится архитектурным вопросом: пути доступа к данным должны быть контролируемыми, валидации — централизованными, а производительность оставаться стабильной при параллельной нагрузке.

FireDAC как основа для поддерживаемого доступа к данным

BDE‑замена с нативным подключением является в Delphi‑средах распространённым стандартом доступа к современным БД. Важнее не сама компонента, а унификация: параметризованные запросы, чёткие границы транзакций, единая обработка ошибок и измеримые времена выполнения. Для эксплуатации важно, чтобы таймауты и потребление ресурсов были предсказуемы и чтобы проблемы фиксировались в логах и мониторинге.

PostgreSQL с Delphi: управляемо при аккуратном тип‑маппинге и концепте миграций

PostgreSQL с Delphi надёжен при корректной обработке типового соответствия (например UUID, временные метки, JSON‑поля), индексов и схем миграций. Порталы генерируют много фильтруемых запросов на списки. Фильтрацию, пагинацию и сортировку следует реализовывать на сервере, чтобы не передавать избыточные объёмы данных. Это снижает нагрузку и улучшает пользовательский опыт, не снижая скорости десктопа.

Эксплуатация, деплоймент и мониторинг: обеспечить портал‑готовность бэкендов Delphi

Портал, как правило, должен быть постоянно доступен и потому требует более интенсивной эксплуатации, чем чисто десктопное решение. Для администраторов именно здесь хорошо продуманная архитектура даёт немедленные дивиденды: воспроизводимые деплои, понятная наблюдаемость (логи/метрики) и определённые окна обслуживания.

Windows‑ сервис или Linux‑сервис: важна модель эксплуатации

Delphi‑сервис может работать как Windows‑ и Linux‑сервисы или как демон Linux. Важнее не ОС, а набор стандартов, обеспечивающих стабильность эксплуатации:

  • Health‑Checks для мониторинга и балансировщиков нагрузки (например «сервис жив» и «БД доступна»).
  • Структурированное логирование (включая Request‑ID, пользователя/тенанта, время выполнения, коды статусов), чтобы кейсы поддержки можно было воспроизвести.
  • Конфигурация без пересборки (например переменные окружения, централизованные конфигурационные файлы), чтобы деплои были автоматизируемыми.
  • Возможность отката за счёт явных версий и миграционно‑безопасных изменений в базе данных.

Профили нагрузки: портал — «много коротких запросов», а не «несколько долгих сессий»

Десктопная работа часто генерирует длительные фазы взаимодействия на одного пользователя, тогда как портал создаёт множество коротких параллельных запросов. Типичные технические меры:

  • строгая пагинация, серверная фильтрация и ограничение размера ответов
  • кеширование для справочных данных и редко меняющихся запросов
  • асинхронные задачи для долгих операций (экспорты, бандлы отчётов)
  • Rate‑Limits и механизмы защиты от злоупотреблений

Для руководителей ключевое: производительность — это не «тонкая настройка в конце», а часть спецификации API (размеры ответов, таймауты, фоновые обработки).

Модернизация без Big‑Bang: надёжный путь в пяти шагах

Полная переработка редко нужна и часто рисковая, потому что процессные знания находятся в Delphi‑клиенте. Эффективна поэтапная стратегия, где каждая стадия остаётся продуктивной и не ставит под угрозу эксплуатацию.

1) Инвентаризация: процессы, владение данными, интеграции

Не начинайте с экранов, а с use cases: какие процессы должны попасть в портал? Какие данные внешний пользователь может видеть или менять? Какие интерфейсы существуют к ERP, DMS или CRM? На этой основе формируется приоритетный список API, приносящий реальную ценность.

2) Определите сервис‑базу: Auth, формат ошибок, логирование, версионирование

Эта база решает вопрос дальнейшей сопроводы. Согласуйте с ранних этапов стандарты по аутентификации/авторизации, единому формату ошибок, корреляции запросов, версионированию API и телеметрии. Это снижает трения между командой портала, бэкенд‑командой и эксплуатацией.

3) Доставить первый портал‑поток end‑to‑end

Выберите процесс с чёткой границей (например область документов или запрос статуса). Важно, чтобы вся цепочка работала: логин, проверка прав, API, UI, логирование, мониторинг, эксплуатация. Так организация рано увидит, какие стандарты реально работают в повседневности.

4) Целевая интеграция десктопа: критические пути записи через сервисы

Когда сервисы стабильны, перенесите отдельные десктоп‑функции: в первую очередь переходы статусов, утверждения и центральные валидации. Десктоп остаётся производительным, но правила становятся консистентными, а прямой записью в БД пользуются всё реже.

5) Консолидация: убрать дублирующие правила и обходные пути

Со временем иначе вы получите «два мира». Планируйте регулярную консолидацию: какие правила дублируются? Где портал может использовать сервис десктопа? Какие отчёты стоит генерировать централизованно? Цель — управляемая платформа, а не догма.

Типичные подводные камни с точки зрения эксплуатации — и как их избежать

Правила дублируются в портале

Это приводит к отклонениям и обращениям в поддержку. Контрмера: Use‑Case‑API с серверными валидациями, чёткие ошибки и, по возможности, общие бизнес‑тесты.

Неопределённость владения данными между десктопом и порталом

Если оба клиента могут «всё» менять, возникают конфликты. Контрмера: модель статусов, определённые зоны ответственности и Optimistic Concurrency для конкурентных изменений.

Безопасность рассматривается как доработка

Особенно для клиентских порталов SSO, проверки арендатора, безопасные загрузки файлов и аудит нужны с самого начала. Дозапуск этих функций позже дороже и повышает риск уязвимостей.

Отсутствие прозрачности в эксплуатации

Без Request‑ID, структурированных логов и Health‑Checks поиск причин становится детективной работой. Контрмера: observability как обязательный компонент первых релизов сервисов.

Вывод: сервисное ядро связывает силу десктопа с охватом портала

Комбинация Delphi‑настольного приложения и веб‑портала в многих компаниях — наиболее реалистичный путь сохранить ключевые бизнес‑процессы и одновременно обеспечить внешнее сотрудничество. Ключевое — не поддерживать две разобщённые машины, а создать объединяющее сервисное ядро: Use‑Case‑API, чёткие права, прослеживаемые состояния, контролируемые каналы данных и модель эксплуатации с логированием, мониторингом и планируемыми деплойментами.

Так получается модернизация с промежуточными целями: десктоп остаётся продуктивным, портал даёт раннюю ценность, а архитектура шаг за шагом становится более согласованной и сопровождаемой.

В предметной области также важна Delphi Modernisierung, если интеграции, потоки данных и дальнейшая разработка должны работать согласованно.

Обсудить проект или модернизацию с Net-Base.

Следующий шаг

Если из темы становится реальный проект, архитектуру, существующее состояние и эксплуатацию следует рассматривать совместно на ранней стадии.

Мы поддерживаем не только при отдельных вопросах, но и тогда, когда из фрагментов исходного кода, унаследованных проблем или идей портала должен сформироваться надёжный корпоративный проект.

  • Текущее состояние, целевое состояние и технические риски оцениваются совместно.
  • REST, доступ к данным, порталы и развертывание не переносятся на более поздние этапы.
  • Вы заранее видите, какой путь экономически и операционно жизнеспособен.

Поделиться записью

Поделиться этой записью напрямую

LinkedIn, X, XING, Facebook, WhatsApp и электронная почта доступны немедленно. Для Instagram мы готовим ссылку и краткий текст.

Электронная почта

Instagram открывается в новой вкладке. Ссылка и короткий текст предварительно копируются в буфер обмена.