Подскажите компоненты для реализации проекта

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Подскажите компоненты для реализации проекта

Сообщение MaximK » 09.06.2012 11:53:46

Появилась необходимость написать клиент-сервер приложение. Никогда подобным не занимался. Вот стою перед выбором: на основании чего или какой связки писать приложение.

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

Серверная часть (пока на Windows):
* Работа с базой данных по добавлению, редактированию и выборке данных.
* Архивирование старых данных
Думаю надо копать в сторону MySQL, хотя раньше использовал SQLite

Клиент (монитор):
* Отображение текущих данных
Сначала думал делать на LNet, но вроде там нет многотопочности или у меня не получилось.

Клиент (диспетчер):
* Добавление, изменение заявок

Это для начала. В дальнейшем если это получится, то:
* возможность просматривать заявки через интернет (web-client)
Наверное PHP+MySQL или CGI+SQLite
* клиент для сдачи документов (актов, подписанных заявок) в электронный архив.
* Серверная часть для FreeBSD


В конечном результате хочу получить следующее:

Заказчик через интернет (web-клиент) подает заявку на выполнение работ. Она записывается в базу на сервере. Либо диспетчер приняв заявку по телефону заносит ее в базу (клиент "Диспетчер"). Далее диспетчер увидев заявку назначает исполнителя. Аппаратурный участок готовит приборы для этой заявки соответственно типу планируемых работ(клиент "Монитор"). Склад, готовит необходимые материалы, заранее формирует списки недостающих материалов(клиент "Монитор"). Отдел обработки готовит исходные данные для выезда по заявке. И все это время список поступивших, подтвержденных и выполняемых заявок отображается на мониторе в холле предприятия, где могут это увидеть исполнители работ(клиент "Монитор").
После выполнения работ и возвращения на базу, данные полученные во время выполнения работ также записываются в базу(клиент "Сдача материала"). Объем файлов от 10Мб - 150 Мб. Отдел обработки обрабатывает их получив из базы и сохраняет результаты обработки так же в базе. Объем файлов от 1Мб - 10 Мб. Заказчик (их может быть одновременно до 10 чел.) через интернет скачивает необходимые результаты выполненных работ.

Таким образом одновременно будет работать:
Web-клиент (до 10 подключений. Заказчики нетерпеливые будут проверять готовность часто, исполнители находящиеся в разных городах)
клиент "Монитор" (минимум 4 клиента)
клиент "Диспетчер" (1 клиент)

Объем данных: Сданный и обработанный материал за год около 60Гб. Но это файлы. В базе думаю хранить только пути к файлам.


Вот такие Наполеоновские планы. Подскажите в какую сторону копать и на каких компонентах это можно реализовать, чтобы потом не переделывать из-за того, что у компонента не хватает возможностей.
Последний раз редактировалось MaximK 14.06.2012 08:40:33, всего редактировалось 1 раз.
MaximK
незнакомец
 
Сообщения: 7
Зарегистрирован: 29.07.2009 10:03:55

Re: Подскажите компоненты для реализации проекта

Сообщение vada » 09.06.2012 12:49:06

MySQL - {PHP | JAVA} - {Apach | Tomcat} => счастье
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Подскажите компоненты для реализации проекта

Сообщение svk12 » 09.06.2012 13:27:35

Firebird + ZeosDbo||SQLDb||FbExpress;
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47

Re: Подскажите компоненты для реализации проекта

Сообщение Ism » 09.06.2012 21:51:55

Кроме mysql мало, что подойдет, эта штука работает на всех платформах и легко настраивается, mysql лучше всего работает в web
MySql может работать в embedded режиме, как sqlite

Есть еще postgress, но он тяжелый
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Подскажите компоненты для реализации проекта

Сообщение svk12 » 09.06.2012 22:08:27

ОгнеПтиц-то чем нехорош?
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47

Re: Подскажите компоненты для реализации проекта

Сообщение Ism » 09.06.2012 23:38:50

В многопользовательском режиме он не очень, да и производительность не лучшая.
Если база большая это не лучший выбор
И как вы к нему прикрутите вебинтерфейс ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Подскажите компоненты для реализации проекта

Сообщение GrayEddy » 09.06.2012 23:47:22

AMP рулит. Apache + MySQL + PHP.

Ism писал(а):И как вы к нему прикрутите вебинтерфейс ?


Что за проблемы у PHP достучаться до базы Firebird?
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Подскажите компоненты для реализации проекта

Сообщение svk12 » 10.06.2012 00:43:05

Ism писал(а):В многопользовательском режиме он не очень, да и производительность не лучшая.

Имею с ним дело с 1998г., с IB-4, и как-то и с первым проблем не было, и второго хватало.

Ism писал(а):И как вы к нему прикрутите вебинтерфейс ?

Сам я этим не занимался(не было нужно), но был свидетелем, как человек без особого напряга подключался через Apache+PHP.

GrayEddy писал(а):Apache + MySQL + PHP

Всё это хорошо, но, пардоньте, где же здесь FPC и Lasarus?
Может быть, стоит просто дать ТСу ссылку на какой-нибудь PHP-форум?
svk12
постоялец
 
Сообщения: 409
Зарегистрирован: 09.06.2008 18:42:47

Re: Подскажите компоненты для реализации проекта

Сообщение Ism » 10.06.2012 01:22:26

Всё это хорошо, но, пардоньте, где же здесь FPC и Lasarus?

Есть много компонентов для Lazarus работающих с MySql

Кроме того есть cgi, насколько я знаю

Добавлено спустя 1 минуту 14 секунд:
http://jnanatal.blogspot.com/2011/01/cgi-lazarus.html

Добавлено спустя 1 минуту 6 секунд:
http://wiki.lazarus.freepascal.org/CGI_Web_Programming
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Подскажите компоненты для реализации проекта

Сообщение alexs » 10.06.2012 02:37:29

Ism писал(а):В многопользовательском режиме он не очень, да и производительность не лучшая.

Вы тут полносью не правы...
Огнептиц за 10 лет моей эксплуатации зарекомендовал себя как одна из самых надёжных системы.
Фактически благодаря ему одна крупная система всё это время работает без сбоев.
500 пользователей одновременно - это наверное всёж показатель многопользовательской работы? :D :D :D
Мой выбор - для небольших системы - лучше FireBird ничего нет.
А MySQL - оставьте его в своей нише - он не вырос из веб приложений...
Если вам нужна крупная система, где действительно много пользователей - то после жарптицы следует PostgreSQL...
Тем более они очень похожи в синтаксисе...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Подскажите компоненты для реализации проекта

Сообщение GrayEddy » 10.06.2012 03:29:11

alexs писал(а):Мой выбор - для небольших системы - лучше FireBird ничего нет.
А MySQL - оставьте его в своей нише - он не вырос из веб приложений...


Не соглашусь.
По опыту - MySQL при простых запросах вчистую обыгрывает Firebird. В ряде случаев в несколько раз. Да и работает действительно шустро.
В инете (и в мире) - MySQL - стандарт-де факто.

Слабое место MySQL - при сложных запросах (типа вложенных) - тут Firebird берет вверх.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Подскажите компоненты для реализации проекта

Сообщение alexs » 10.06.2012 09:55:38

Что такое инет приложение - обычно магазин, или просто набор странц (яркий пример - медиа-вики).
Условия эксплуатации:
- Быстрое чтение
- Конкурирующих подключений минимум (обычно всё в пределах одного сервера работает, максимум - кластер из 2-5 вебсерверов), т.е. реальной многопользовательской работы нет
- у нет критичных к хранению данных - только небольшой объём оперативного архива
- план востановления системы обычно очень сильно завязан на то, что сервер находится в дата центре и сам является достаточно надёжным. Т.е. вся надёжность сервера расчитана на инфраструктуру вокруг него.
- нет "тяжёлых" статистических запросов

Теперь ральный клиент-сервер
- Скорость записи также важна как и чтения (объём создаваемых докуметов в разы больше)
- Условия эксплатации далеки от идеальных - сервер может быть как и надёжным кластером в дата-центре, так и обычной персоналкой бухгалтера без УПС
- В БД должны храниться данные о работе предприятия за несколько лет и эти данные критичны для всех. Утеря их недопустима.
- Время востановления должно быть минимальным и, желательно, сам процес востановления после сбоя оборудования должен быть прозрачным для всех.
- Одновременно работающих сотрудников явно >>10, и ещё всегда есть инициативные сотрудники, которые в разгар операционного дня хотят посмотреть статистику за 3-5 лет, динамику и т.д.
- Про транзакционную целостность тут даже не обсуждается - это первое условие выбора сервера (грязные данные просто не допустимы)

Вот исходя из этого я говорю о области применения каждого сервера.
Хотя по функционалу, предоставляемому программисту, они приблизительно равны.
PS
Ради справедливости надо отметить, что в MySQL сейчас с транзакциями и тригерами вроде всё уже по взрослому...
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Подскажите компоненты для реализации проекта

Сообщение AlexVinS » 10.06.2012 16:04:56

Без "Серверная часть для FreeBSD" и "возможность просматривать заявки через интернет (web-client)" проще реализовать на 1С. С такой перспективой и/или при большом количестве пользователей уже:
*1С фтопку.
*БД firebird - для базы в несколько гигабайт его хватит (но сайт на LAMP|FAMP для сайта готовые решения с MySQL могут быть удобнее, но постарайтесь не подключать слой данных - который на firebird - напрямую к сайту из соображений безопасности: сайт вероятно вскроют но вот кроме просмотра заявок ничего не должно оттуда быть доступно в принципе).
* компоненты доступа - любые - заранее не угадаешь что подойдет лучше в данном конкретном случае, для начала возьмите стандартный SQLDB.
* для самой проги - TiOPF.
Аватара пользователя
AlexVinS
новенький
 
Сообщения: 95
Зарегистрирован: 27.01.2009 01:18:01

Re: Подскажите компоненты для реализации проекта

Сообщение Vadim » 11.06.2012 16:13:48

Кину камень в огород MySQL. :) Скачал недавно последнюю версию 5.6.5, поставил, залил базы со старого сервера, запустил - и с ужасом обнаружил, что движок InnoDB там больше не поддерживается - все внешние ключи полетели в жо..., целостности данных больше нет, хотя база продолжает работать.
Так что имейте в виду, oracle жжот не по детски. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Подскажите компоненты для реализации проекта

Сообщение Ism » 11.06.2012 16:16:32

http://ru.wikipedia.org/wiki/MySQL
MySQL 5.5

Ветка MySQL 5.5 базируется на невыпущенной серии MySQL 5.4 и содержит ряд значительных улучшений, связанных с повышением масштабируемости и производительности, среди которых:
Использование по умолчанию движка InnoDB.
Поддержка полусинхронного (semi-synchronous) механизма репликации, основанного на патчах к InnoDB от компании Google.
Улучшение функций по партицированию данных. Расширенный синтаксис для разбиения больших таблиц на несколько частей, размещенных в * разных файловых системах (partitioning). Добавлены операции RANGE, LIST и метод оптимизации «partition pruning».
Новый механизм оптимизации вложенных запросов и JOIN операций.
Переработана система внутренних блокировок.
Интегрированы патчи Google с оптимизацией работы InnoDB на CPU с большим количеством ядер.


Добавлено спустя 1 минуту 49 секунд:
Это с вашим скриптом чтото не так

Добавлено спустя 4 минуты 23 секунды:
Да и на сайте нет 5.6.5, это что, бета ?

Добавлено спустя 38 минут 2 секунды:
Хотя после переустановки может не работать innodb , у меня вообще сервер не запустился , как написано тут
Plugin 'InnoDB' init function returned error.
Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Unknown/unsupported storage engine: INNODB


http://forums.mysql.com/read.php?10,267434,267782
http://forums.mysql.com/read.php?22,297611,297611

Нужно удалить файлы ib_logfile в папке C:\ProgramData\MySQL\MySQL Server 5.5\data и перезапустить mysql сервер , он пересоздаст их с нужными параметрами и все будет работать
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 234

Рейтинг@Mail.ru