|
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
|
|
| 23.03.2018, 16:30 | |
|
Ответы с готовыми решениями:
6
Какую лучше использовать БД для решения поставленной задачи |
| 23.03.2018, 18:11 | |||
|
если клиентов серьезно не увеличится, то текущее ПО выдержит. подкрутить работу с кешем + обработка потери соединения + выполнение критических операций втранзакциях
но если больше 20 одновременно, то или веб или трехзвенка хотя по скорости вопрос то конечно останется читали на wiki.embarcadero рекомендации по работе Firedac на медленных каналах?
0
|
|||
|
|
|
| 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
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 24.03.2018, 12:37 | ||
0
|
||
| 24.03.2018, 14:27 | |
|
0
|
|
| 24.03.2018, 14:27 | |
|
Помогаю со студенческими работами здесь
7
Написать файл-функцию для решения поставленной задачи. Модулярная Арифметика (Создать функцию для решения поставленной задачи) Составьте программу для решения поставленной задачи, используя оператор цикла for, while, do{}while Составить программу для решения поставленной задачи, использую оператор цикла Составить программу для решения поставленной задачи оформив подзадачи ввиде функций Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 на бесплатный. . .
|