Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Помогите определиться с трехзвенкой


Автор: Johny999 19.2.2014, 03:26
Здравствуйте уважаемые коллеги!
Есть проект: толстый клиент на Delphi7, MySQL. Примерно 300 форм, 200 таблиц в БД, до 20 млн записей в таблице, объем данных до 100 Гб (есть таблицы с файлами). Проекту 10 лет.
Сейчас задумались об изменении структуры "основы основ". Не то, чтобы база была спроектирована неверно, просто сейчас она применяется не совсем для того, для чего изначально была задумана. Переделка затронет 70% кода (в основном поменяются запросы к БД).
Соответственно, задумались над тем, чтобы переписать (конечно, хочется многие наработки как-то попроще перенести) систему. За одно решить основную проблему, которую мы сейчас имеем на связке "толстый клиент на Delphi7, MySQL" - безопасность. Для этого, очевидно, нужна трехзвенка, чтобы сервер приложений контролировал права пользователей. Ну и еще плюс - сразу иметь некие веб-сервисы, которыми можно было бы интегрироваться со всевозможными другими системами и веб-интерфейсами. Сервер менять не предполагаем, т.к. мы хорошо "умеем его готовить", и чтобы там ни говорили - он надежен, выдерживает большие нагрузки, функционален (используем триггеры, ХП и т.д.), и бесплатен (что, пожалуй, самое главное, т.к. продукт рассчитан в том числе на небольшие и не богатые компании). 
После переработки планируется использование с нагрузкой от 1 до 1000 человек одновременно.
Посоветуйте современное средство (или набор средств/технологий/сред разработки), что можно было бы рассматривать как платформу для перехода. Какими средствами делать серверную и клиентскую части.
Веб-интерфейс в силу определенных причин отметается сразу.
Была у меня идея писать серверную часть на PHP, и клиентам на тех же дельфях общаться с ней XML-запросами. У этого есть плюс - сервер приложений вместе с SQL-сервером смогли бы жить вместе на *nix платформах (у нас сейчас несколько серверов работает по linux, в основном под ubuntu. Основная масса - под виндой). Однако, пишут, что хорошо, когда сервер приложений может кэшировать у себя определенные не часто меняющиеся данные, а на PHP этого я так понимаю, не получится. Еще - решение выглядит каким-то надуманным. Ощущение, что я изобретаю велосипед, а все давно пользуются какими-то интегрированными средами, которые делают сразу и сервер и клиент и протокол между ними, а я об этом ничего не знаю. В сети ничего толком не нашел.
От дельфи хочется уйти, т.к., вроде бы среда умирающая. Однако программисты у нас все на дельфи. И пишем на дельфях не замечая его "ущербности" (как многие критики пишут).
Какие подскажете идеи? На чем сейчас делают подобные проекты?

Автор: tzirechnoy 19.2.2014, 12:35
[quote]и клиентам на тех же дельфях общаться с ней XML-запросами.[quote]

Тогда уж JSON, что сейчас XML-то поминать.

Цитата
Какими средствами делать серверную и клиентскую части.


Серверную -- пожалуй, erlang. Хотя, разумеется, сделать можно почти на чём угодно  -- от форта до бейсика, включая PHP.

Цитата
а все давно пользуются какими-то интегрированными средами, которые делают сразу и сервер и клиент и протокол между ними, а я об этом ничего не знаю.


Что-то такое есть в Java (EJB). Но у меня есть впечатление, что сделать то, что нужно руками -- проще и лучшэ ляжэт на задачу. К тому жэ, клиента тожэ надо будет писать на джаве.

Цитата
когда сервер приложений может кэшировать у себя определенные не часто меняющиеся данные, а на PHP этого я так понимаю, не получится.


С прямыми руками -- получится. Но зачем?

Автор: LSD 19.2.2014, 14:40
Цитата(Johny999 @  19.2.2014,  04:26 Найти цитируемый пост)
Посоветуйте современное средство (или набор средств/технологий/сред разработки), что можно было бы рассматривать как платформу для перехода. Какими средствами делать серверную и клиентскую части.

Для серверной я бы рекомендовал: Java, Python, Ruby, в порядке убывания распространенности, количества разных библиотек, специалистов на рынке. PHP - не рекомендовал бы, писать на нем хорошо сложнее чем на перечисленных языках.
Клиентскую - по желанию. Можно даже на той же Дельфе писать, раз уж у вас уже есть Дельфи разработчики. Дергать веб сервисы, может любой современный ЯП.


Цитата(Johny999 @  19.2.2014,  04:26 Найти цитируемый пост)
Однако, пишут, что хорошо, когда сервер приложений может кэшировать у себя определенные не часто меняющиеся данные, а на PHP этого я так понимаю, не получится.

С Memcached сможет даже PHP smile


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)