powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Помогите определиться с трехзвенкой
25 сообщений из 29, страница 1 из 2
Помогите определиться с трехзвенкой
    #38565384
Johny999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые коллеги!
Есть проект: толстый клиент на Delphi7, MySQL. Примерно 300 форм, 200 таблиц в БД, до 20 млн записей в таблице, объем данных до 100 Гб (есть таблицы с файлами). Проекту 10 лет.
Сейчас задумались об изменении структуры "основы основ". Не то, чтобы база была спроектирована неверно, просто сейчас она применяется не совсем для того, для чего изначально была задумана. Переделка затронет 70% кода (в основном поменяются запросы к БД).
Соответственно, задумались над тем, чтобы переписать (конечно, хочется многие наработки как-то попроще перенести) систему. За одно решить основную проблему, которую мы сейчас имеем на связке "толстый клиент на Delphi7, MySQL" - безопасность. Для этого, очевидно, нужна трехзвенка, чтобы сервер приложений контролировал права пользователей. Ну и еще плюс - сразу иметь некие веб-сервисы, которыми можно было бы интегрироваться со всевозможными другими системами и веб-интерфейсами. Сервер менять не предполагаем, т.к. мы хорошо "умеем его готовить", и чтобы там ни говорили - он надежен, выдерживает большие нагрузки, функционален (используем триггеры, ХП и т.д.), и бесплатен (что, пожалуй, самое главное, т.к. продукт рассчитан в том числе на небольшие и не богатые компании).
После переработки планируется использование с нагрузкой от 1 до 1000 человек одновременно.
Посоветуйте современное средство (или набор средств/технологий/сред разработки), что можно было бы рассматривать как платформу для перехода. Какими средствами делать серверную и клиентскую части.
Веб-интерфейс в силу определенных причин отметается сразу.
Была у меня идея писать серверную часть на PHP, и клиентам на тех же дельфях общаться с ней XML-запросами. У этого есть плюс - сервер приложений вместе с SQL-сервером смогли бы жить вместе на *nix платформах (у нас сейчас несколько серверов работает по linux, в основном под ubuntu. Основная масса - под виндой). Однако, пишут, что хорошо, когда сервер приложений может кэшировать у себя определенные не часто меняющиеся данные, а на PHP этого я так понимаю, не получится. Еще - решение выглядит каким-то надуманным. Ощущение, что я изобретаю велосипед, а все давно пользуются какими-то интегрированными средами, которые делают сразу и сервер и клиент и протокол между ними, а я об этом ничего не знаю. В сети ничего толком не нашел.
От дельфи хочется уйти, т.к., вроде бы среда умирающая. Однако программисты у нас все на дельфи. И пишем на дельфях не замечая его "ущербности" (как многие критики пишут).
Какие подскажете идеи? На чем сейчас делают подобные проекты?
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565425
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny999,

Все зависит готовы вы "уйти" с Delphi и куда "уйти".
1) Можно остаться на Delphi . Благо писать трехзвенку можно было с 3 версии.
2) Можно уйти на .NET. Есть версии Delphi которые работают с .NET. С постепенным переходом на C#
3) Можно уйти на Java. Но это надо сразу и полностью переписывать все приложение.

P.S. Я бы остановился на 1) варианте.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565432
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хотите уйти то в чем вопрос?
Работать будет для всех 3х вариантов.
Delphi заточен под веб не очень.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565684
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny999От дельфи хочется уйти, т.к., вроде бы среда умирающая. Однако программисты у нас все на дельфи. И пишем на дельфях не замечая его "ущербности" (как многие критики пишут).
а вы среду выбираете по каким критериям? Уверены что она "умрет" быстрее продукта, который вы разрабатываете с ее помощью?
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565687
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Delphi заточен под веб не очень.
что означает "заточка"?
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565743
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny999За одно решить основную проблему, которую мы сейчас имеем на связке "толстый клиент на Delphi7, MySQL" - безопасность. Для этого, очевидно, нужна трехзвенка, чтобы сервер приложений контролировал права пользователей.Ох... Не знаю, что вас заставило так думать, но я с таким мнением категорически несогласен. Неужели в MySQL нет никаких средств контроля доступа?
Johny999От дельфи хочется уйти, т.к., вроде бы среда умирающая.Не умирающая, а малопопулярная в силу неэффективного маркетинга и всеобщей болезненой моды "на веб-формачки". Это, мягко говоря, разные вещи.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565781
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmPetro123Delphi заточен под веб не очень.
что означает "заточка"?
Excell заточен под таблички лучше чем Ворд (фольклёр)
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565817
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iscrafmпропущено...

что означает "заточка"?
Excell заточен под таблички лучше чем Ворд (фольклёр)
ну на делфи клиентские веб-приложения и не пишутся. А сервер, который отдает информацию клиенту, в том же JSON и др. - почему бы и нет.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565833
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmА сервер, который отдает информацию клиенту, в том же JSON и др. - почему бы и нет.
Там много чего....
Если БЛ на АппСервере, то нужен ОРМ и т.д.
А иначе какая 3-х звенка.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565869
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iscrafmА сервер, который отдает информацию клиенту, в том же JSON и др. - почему бы и нет.
Там много чего....
Если БЛ на АппСервере, то нужен ОРМ и т.д.
А иначе какая 3-х звенка.
к примеру у нас БЛ на APP сервере или в СУБД. Никакие ORM и т.д. не нужны. По разному системы строятся
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565895
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,
у вас фреймворк. Это оффтоп.
Т.к. фреймворк можно хоть на Assemblere писать.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38565909
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iscrafm,
у вас фреймворк. Это оффтоп.
Т.к. фреймворк можно хоть на Assemblere писать.
почему оффтоп? На этом фреймворке такие же бизнес-приложения разрабатываются как и у ТС, т.е. задачи решаются те же. Фреймворк - это не вещь сама в себе. Это основа для приложений, которая просто наполняется этой самой бизнес-логикой. Тема этого топика - на чем разрабатывать трехвенку при наличии готовой уже системы на Delphi7. Ответ - начать с того же Delphi7, если речь не идет о наличии каких-то сторонних причин, не позволяющих этого сделать.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566022
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,
А - есть платформа ---> создать ИС
Б - есть платформа ---> создать фреймворк-платформу ---> создать ИС на фреймворке

пусть аффтар топика решает, но архитектура и ответы будут разные по А и Б
Удачи!
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566088
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iscrafm,
А - есть платформа ---> создать ИС
Б - есть платформа ---> создать фреймворк-платформу ---> создать ИС на фреймворке

пусть аффтар топика решает, но архитектура и ответы будут разные по А и Б
Удачи!
Архитектура в обоих случаях одинаковая. Вопрос только в том, на каком шаге остановиться: ограничиться только платформой или наполнить ее содержанием
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566142
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
iscrafmАрхитектура в обоих случаях одинаковая
угу.
В А я не делаю ГУИ окно по привязке формы 1 ко многим. Т.к. программисту оно не нужно.
У тебя оно есть.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566184
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я не делаю ГУИ окно по привязке формы 1 ко многим. Т.к. программисту оно не нужно.
У тебя оно есть.
значит тебе оно не нужно. Мне нужно, потому что у меня много проектов и они постоянно требуют внесения каких-то изменений как можно более простым способом. Но это уже настолько "выше" самой платформы...
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566465
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечу по существу
работаю в Delphi XE3, XE5
трех-(3++)-звёнка - довольно удобная вещь

есть у меня один проект:

1) изначально - полноценный толстый клиент на Delphi + сервер Firebird
2) появился тонкий клиент на Андроид. написан на Java/Eclipse с применением Datasnap.
3) появился промежуточный сервер данных для общения с тонким клиентом на Андроиде. Принимает запросы Datasnap и лазит в БД Firebird
4) для чисто информационных и мало-мало действий целей появился HTML-клиент (JQuery + JSON)
5) данные для него предоставляет специальный Web-сервер (Delphi) который берет нужные данные на сервере данных

все части проекта чувствуют себя нормально и адекватно требуемым целям
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566543
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krapotkinвсе части проекта чувствуют себя нормально и адекватно требуемым целям
ну и замечательно).
1 - БЛ в БД в хранимках?
2 - Начали на Java....вполне потом на неё всё и перепишете.
3- Как согласовываете новую БД и параллельную старую?
4,5 - получается что п.5 только из-за Delphi
PS
В D_XE5 поддержки Андроид не появилось?
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38566622
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) не всякая БЛ укладывается в хранимки, присутствует немного сверху...
2) за время разработки не раз похвалил Delphi, так что и десктоп и сервера на ней и останутся 100% )))
3) нет новой и старой БД. она одна
4) для задачи "просто смотреть" на мобилах, планшетах и смарт-холодильниках иного варианта чем HTML/JS вовсе нет
5) делать отдельный доступ к БД для HTML под к-нить PHP когда есть готовый дата-сервер вообще нет смысла.
Если бы не некоторые особенности задачи, web-сервер и дата-сервер вообще жили бы в одном модуле

экстраординарные новые фичи Delphi они как бы того, эмм..
пусть еще полежат чуток...
FireMonkey вон уже 3-я версия, а Copy/Paste на форме в IDE дает AV ))
У меня есть пара прог, которые "по-новому", но так - для того чтобы быть в теме.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38567904
Johny999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем большое за обсуждение!
Сегодня я многое понял (с):
1) Дельфи - не такая мертвая среда, как мне казалось.
2) Дельфи достаточно функциональная среда, которая позволит сделать и серверную и клиентскую части. (правда, сервер придется держать только под виндой)
3) В таком случае мы сможем сделать плавный переход от текущей 2-х звенки к 3-х звенке. Сначала мы сделаем доступ к данным через специальную объектную модель документов, потом сделаем в этих объектах разделение на клиентскую и серверную часть, и разнесем их на разные машины. Причем это можно делать постепенно - на переходном этапе клиент будет коннектиться к серверу приложений по 2-м портам - SQL и сам сервер приложений. Прямые SQL-запросы сервер приложений будет транслировать через себя "насквозь" к SQL-серверу под своим подключением к SQL, чтобы транзакции от одного клиента шли под одним подключением.
4) Изменения основы-основ структуры данных тоже могут быть сделаны постепенно, сохраняя обратную совместимость, для плавного перехода.

rockclimberJohny999За одно решить основную проблему, которую мы сейчас имеем на связке "толстый клиент на Delphi7, MySQL" - безопасность. Для этого, очевидно, нужна трехзвенка, чтобы сервер приложений контролировал права пользователей.Ох... Не знаю, что вас заставило так думать, но я с таким мнением категорически несогласен. Неужели в MySQL нет никаких средств контроля доступа?
Вот есть таблица клиентов. У каждый менеджер должен видеть только своих клиентов. Неужели в SQL-сервере (хоть в каком-то!) есть такая настройка прав, что на запрос "select * from clients" он вернет только тех, у кого в приджойненной таблице есть записи о причастности этого менеджера к этим клиентам?
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38567949
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny999,
Есть
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38567954
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny999,
Значит у тебя АппСервер тупо перенаправляет за просы?
Это прокси а не 3х звенка LOL
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38568005
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Johny999,
Значит у тебя АппСервер тупо перенаправляет за просы?
именно этим и занимается middle tier в трехзвенке.

Как вариант среднее звено конечно может содержать и бизнес-логику. Но это всего лишь один вариант из нескольких.
К примеру, среднее middle-tier сервер, предлагаемый ORACLE выполняет следующие функции:

ORACLEMiddle-tier servers also provide system-level services:

Remote access to clients and back-office systems

Session and transaction management

Security enforcement

Resource pooling

Можно конечно это назвать и прокси. Но это обычная трехзвенка. Просто в переводной комплитературе на русский действительно проповедовалось всегда, что среднее звено в трехзвенке - это какие-то мифические процедуры бизнес-логики. Но даже в википедии:
Application tier (business logic, logic tier, data access tier, or middle tier)
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38568031
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Johny999rockclimberпропущено...
Ох... Не знаю, что вас заставило так думать, но я с таким мнением категорически несогласен. Неужели в MySQL нет никаких средств контроля доступа?
Вот есть таблица клиентов. У каждый менеджер должен видеть только своих клиентов. Неужели в SQL-сервере (хоть в каком-то!) есть такая настройка прав, что на запрос "select * from clients" он вернет только тех, у кого в приджойненной таблице есть записи о причастности этого менеджера к этим клиентам?Да, есть. В оракле точно, в MS SQL скорее всего тоже есть, и кажется даже в постгресе что-то такое то ли было, то ли планировалось. Гуглите по фразе Row level security - это общеупотребительный термин для подобной фичи. Я сам не пользовался, так что возможно в деталях выглядит немного иначе. В конце концов, стандарт SQL, если мне склероз не изменяет, требует от СУБД наличия функции current_user. Этой функции и одного view достаточно для реализации всего необходимого.
...
Рейтинг: 0 / 0
Помогите определиться с трехзвенкой
    #38568204
Johny999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Johny999,
Значит у тебя АппСервер тупо перенаправляет за просы?
Это прокси а не 3х звенка LOL
Нет. У меня его пока вообще нет. А когда появится - на переходном этапе будет часть именно проксить, а часть - иметь у себя бизнес-логику. Постепенно будем переводить бизнес-логику в него.

rockclimberВ конце концов, стандарт SQL, если мне склероз не изменяет, требует от СУБД наличия функции current_user. Этой функции и одного view достаточно для реализации всего необходимого.
Точно! Так mysql и предлагает делать: http://www.sqlmaestro.com/resources/all/row_level_security_mysql/
А я-то все думал - зачем они нужны, эти вьюхи... Похоже - только для этого. Или я еще чего-то не знаю?
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Помогите определиться с трехзвенкой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]