Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для kebot
9 / 9 / 4
Регистрация: 11.07.2012
Сообщений: 200

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

23.03.2018, 16:30. Показов 1076. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем.

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

Есть приложение:
делфи (Berlin)
декстоп (VCL)
работа с БД (My SQL 5.5) НД (FireDAC)
функционал - специализированная ERP под "HR кухню"

Приложение на данный момент - классический клиент-сервер, работа идет в локалке (клиенты 100 мбит и wifi, сервак 1 Гбит)


Особенности (требования заказчика и/или "удобство работы"):

- минимум модальных форм, максимум интерактивной правки данных
(как это выглядит - пользователь непосредственно редактирует записи в dbgrid (DBGridEh) без кнопок
сохранить, применить, отмена и. т.д. в некоторых местах есть но мало)
- почти на каждой форме (АРМе) присутствуют фотки (DBImageEh)
- присутствует многопоточка (пока эпезодически но есть планы по внедрению всяких sheduler и .пр.)

Сейчас одновременно работает примерно 6 пользователей
база за год подросла до 100 Мб - пока полет нормальный НО

Заказчик растет развивается и хочет открыть филиалы в городах при этом работать с общей базой.

И С ЭТОГО момента у меня реально ступор (все проекты (большие на работе) в которых работал и работаю по
своей специфике просто другие)
как обеспечить нормальную производительность (транспортные издержки) при удаленной работе
учитывая особенности (см. выше) - вот главный вопрос

вижу 2 пути

либо это главная база + несколько филиальных баз и синхронизация между ними
минусы - сложная синхронизация, возможная неактуальность данных + за всем этим зоопарком надо следить

уйти полностью в WEB (для делфы самый короткий путь это
клиент UniGui (dll для IIS) размещенный на VPS рядом с БД) - т.е. вся работа будет в браузере
минусы - ну по сути трудоемкая миграция, сырость UniGui (ehliba там нет и тд и тп) ну и вообще
мне декстоп в качестве ERP как то симпатичней

есть еще вариант с многозвенкой но чем мне здесь может помочь СП ? снимет нагрузку с БД ? с клиентов ?
а трафик мне кажется только возрастет как и сложность всей системы

здесь же не тот случай когда у нас идет пачка данных которые можно как то покрутить в промежуточном буфере
если другие части системы лагают (отстают)
здесь
реакция юзверя--dbavare---http--БД и обратно (в локалке то замечательно)



кто еще какие варианты знает подскажите

что сделал для того чтобы это приложение не загнулось сразу же )))

- во первых редактирование в gride в режиме cash update
(борьба с транспортными издержками и зависшими транзакциями)
- максимум ХП в базе (тригеры, курсоры и пр.)
(борьба с транспортными издержками - надеюсь сервак выдюжит)
- в aftescrol попадают только сжатые BLOB (thumbl) а сами BLOB в отдельной табличке
и доступны по ключу
(борьба с транспортными издержками + высокая нормализация БД)
- применение битовых масок
(борьба с транспортными издержками, экономия процессорного времени, экономия дискового пространства)
- эффективные алгоритмы
(надеюсь)




Р.S.
Тестил работу проги в том состоянии в каком есть сейчас на бесплатном VPS (azure / bizpack)
честно - не впечатлила скорость (сервак конечно тот еще унылый - но другого бесплатного нет)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2018, 16:30
Ответы с готовыми решениями:

Поиск иного способа решения поставленной задачи (обучение)
Доброго времени суток! Вот решил обновить/подтянуть свои знание в области командной строки Windows. Прошел мат. часть, потренировался на...

Написать программу для решения поставленной задачи
Сформировать односвязный список и вывести на экран полученную информацию. Дан список натуральных чисел. Вставить в него элемент N за...

Какую лучше использовать БД для решения поставленной задачи
Добрый день, необходимо выбрать наиболее подходящую БД для реализации приложения для расчетов. Был небольшой опыт работы с SQL Server, и...

6
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,157
Записей в блоге: 3
23.03.2018, 18:11
если клиентов серьезно не увеличится, то текущее ПО выдержит. подкрутить работу с кешем + обработка потери соединения + выполнение критических операций втранзакциях
но если больше 20 одновременно, то
или веб
или трехзвенка
Цитата Сообщение от kebot Посмотреть сообщение
есть еще вариант с многозвенкой но чем мне здесь может помочь СП ?
можно создать очередь на запись\чтение и ваши пользователи всегда будут с правильными данными
хотя по скорости вопрос то конечно останется


Цитата Сообщение от kebot Посмотреть сообщение
хочет открыть филиалы в городах при этом работать с общей базой.
какой доступ к серверу? vpn?

читали на wiki.embarcadero рекомендации по работе Firedac на медленных каналах?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
23.03.2018, 22:19
общий совет один тут
посмотрите современные web-приложения
много видели в них Delphi - гридов? treeView ? другой привычной классики?
знаете почему?
в вебе так работать невозможно.
лучший для вас вариант это скорее всего сделать веб-сервер и клиента на делфи
сервер можно тоже на делфи если не боитесь datasnap
или прямо web-сервер на делфи, тоже можно
проще всего сервер ваять на php

общаться программа с сервером будет обычными HTTP - запросами. гонять Json туда-сюда например.
В этом случае очень улучшается возможность сделать и мобильные приложения и даже альтернативного чисто-веб клиента

а вот на UniGui надо все равно полностью переписывать программу под предлагаемый набор компонентов
и выглядеть она будет странно, и ресурсы сервера жрать как не в себя
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
23.03.2018, 23:03
Если сроки поджимают а пользователи привыкли к гридам и иначе не хотят, то можно сделать тонких клиентов на основе терминальных сессий через vpn. В этом случае, ничего в программе переделывать не потребуется.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,661
Записей в блоге: 21
23.03.2018, 23:31
будет как в налоговой вечно. ой, у нас компьютеры висят...)
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
24.03.2018, 12:37
будет как в налоговой вечно. ой, у нас компьютеры висят
Любую хорошую идею можно убить плохой реализацией. Поставьте в качестве сервера обычный пк с 2 гигами памяти, поднимите на нем терминальный, почтовый и веб-серверы. Подключите его к инету через адсл-модем и вы получите ситуацию в налоговой.
0
24.03.2018, 14:27

Не по теме:

Цитата Сообщение от Пытливый Посмотреть сообщение
Поставьте в качестве сервера обычный пк с 2 гигами памяти, поднимите на нем терминальный, почтовый и веб-серверы
но сначала на это выделите пару миллиардов рублей

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2018, 14:27
Помогаю со студенческими работами здесь

Написать файл-функцию для решения поставленной задачи.
Нужно заменить идущие подряд символы в строке на один.

Модулярная Арифметика (Создать функцию для решения поставленной задачи)
Помогите решить задачу: Создать функцию без использования рекурсии для решения поставленной в варианте задачи и использовать в программе....

Составьте программу для решения поставленной задачи, используя оператор цикла for, while, do{}while

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

Составить программу для решения поставленной задачи оформив подзадачи ввиде функций
Составить программу для решения поставленной задачи оформив подзадачи ввиде функций for while if ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru