Клиент-серверное приложение

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

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

Клиент-серверное приложение

Сообщение ANTIKLAN » 11.01.2016 07:42:34

Всем привет.
Кто может подсказать какие компоненты, из вкладок доступных после установки среды, понадобятся для создания простого клиент-серверного приложения, где клиент имеет графический интерфейс, а сервер является консольным приложением Unix, работающим с базой данных. Если в стандартном наборе таких компонентов нет, то объясните пожалуйста подробно какие компоненты взять, откуда и как их установить правильно ничего не сломав.
Заранее спасибо.
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение скалогрыз » 11.01.2016 07:43:58

TAsyncProcess / TProcess, TSimpleIPCClient, TSimpleIPCServer, TTimer
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Клиент-серверное приложение

Сообщение ANTIKLAN » 17.01.2016 06:05:54

скалогрыз писал(а):TAsyncProcess / TProcess, TSimpleIPCClient, TSimpleIPCServer, TTimer

Я правильно понимаю что нужно создавать 2 проекта один для клиента другой для сервера? Как в проекте сервера без формы использовать компонент с палитры?
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение скалогрыз » 17.01.2016 07:22:40

да, 2 проекта.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Клиент-серверное приложение

Сообщение ANTIKLAN » 17.01.2016 08:14:43

скалогрыз писал(а):да, 2 проекта.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.

Спасибо. А не подскажите, компоненты SimpleIPC справятся с отправкой/получением данных через интернет?
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение скалогрыз » 17.01.2016 09:26:34

ANTIKLAN писал(а):А не подскажите, компоненты SimpleIPC справятся с отправкой/получением данных через интернет?

чего не знаю, того не знаю. Но предположу, что нет.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Клиент-серверное приложение

Сообщение vitaly_l » 17.01.2016 15:00:47

скалогрыз писал(а):да, 2 проекта.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.

А если я делаю приложение для удалённого сервера работающего на линуксе...
1) Как серверное приложение запустить?
2) В .htaccess прописать имя файла и запускать его вместо index.html или нужно там на линуксовском сервере менять все настройки?
спасибо.

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Клиент-серверное приложение

Сообщение ANTIKLAN » 17.01.2016 23:38:45

скалогрыз писал(а):
ANTIKLAN писал(а):А не подскажите, компоненты SimpleIPC справятся с отправкой/получением данных через интернет?

чего не знаю, того не знаю. Но предположу, что нет.

А что же тогда использовать? Или может проще ручками написать? Как делаются сервера?
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение yeger » 18.01.2016 01:24:44

ANTIKLAN, определитесь что хотите на лазарусе сделать, как будет работать клиент серверное приложение, что будет делать сервер, а что клиент. С ходу могу предложить lnet, простая, наглядная штука с примерами. Можно ведь и на Brook framework сделать, будет веб-клиент. Потом, практически все сервера баз данных имеют мощные сетевые интефейсы, используйте это и сервер-программа не нужна, с её ролью вполне справится сервер баз данных, тогда вам на закладку SQLdb.
Аватара пользователя
yeger
новенький
 
Сообщения: 49
Зарегистрирован: 17.03.2011 12:26:34

Re: Клиент-серверное приложение

Сообщение ANTIKLAN » 18.01.2016 01:38:16

yeger писал(а):ANTIKLAN, определитесь что хотите на лазарусе сделать, как будет работать клиент серверное приложение, что будет делать сервер, а что клиент. С ходу могу предложить lnet, простая, наглядная штука с примерами. Можно ведь и на Brook framework сделать, будет веб-клиент. Потом, практически все сервера баз данных имеют мощные сетевые интефейсы, используйте это и сервер-программа не нужна, с её ролью вполне справится сервер баз данных, тогда вам на закладку SQLdb.

В общем смотрите. Мне нужно сделать клиент-серверное приложение в котором будет тонкий клиент и сервер. По моему плану все должно работать так: клиент получает данные от пользователя и отправляет их на сервер. На сервере эти данные обрабатываются и отсылаются клиенту, а клиент уже выводит пришедший результат пользователю. Еще пользователи должны будут иметь аккаунты, а значит нужна база данных. Вся эта схема должна работать через интернет. Я ни разу не разрабатывал приложения такого уровня и даже не представляю с чего можно начать и что лучше использовать чтобы сделать хорошо.
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение yeger » 18.01.2016 02:00:38

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

Сожалею, я тоже не разрабатывал приложения такого уровня. Это весьма серьезная разработка. С чего бы начал я:
Определился, насколько тонким должен быть клиент, должен клиент что то сам обрабатывать, помнить часть базы данных на случай не постоянного соединения, или нет, должен ли он писать куда-то, где возможны взаимо-блокировки данных (например чтоб остаток на складе контролировать на предмет перерасхода).
Если клиент нужен очень тонкий, то это CGI приложение (прямо в браузере все происходит, все операции выполняются на сервере) и надо смотреть на апач + сервер баз данных. Отдельная и весьма интересная тема. Если клиент нужен более продвинутый, посмотрел бы в сторону использования удаленного соединения с базой данных. Нет никакой разницы будет это интернет или локальная сеть. Если клиент нужен совсем продвинутый, то придется свой сервер городить, да. Но это совсем что-то не тривиальное должно быть, типа игры какой-то сетевой или навороченного чата с видео и голосом...

vitaly_l писал(а):1) Как серверное приложение запустить?
2) В .htaccess прописать имя файла и запускать его вместо index.html или нужно там на линуксовском сервере менять все настройки?
спасибо.

vitaly_l, на мой взгляд вы про разные вещи спрашиваете.
На первый вопрос ответ будет - как любое другое приложение, методика запуска не отличается.
На второй - это про сервер Апач и соответственно у вас будет не просто приложение, а CGI. на него просто сделайте редирект в index.html, не ломайте апач, если точно не знаете что делать.
Аватара пользователя
yeger
новенький
 
Сообщения: 49
Зарегистрирован: 17.03.2011 12:26:34

Re: Клиент-серверное приложение

Сообщение ANTIKLAN » 18.01.2016 02:13:24

yeger писал(а):Сожалею, я тоже не разрабатывал приложения такого уровня. Это весьма серьезная разработка. С чего бы начал я:
Определился, насколько тонким должен быть клиент, должен клиент что то сам обрабатывать, помнить часть базы данных на случай не постоянного соединения, или нет, должен ли он писать куда-то, где возможны взаимо-блокировки данных (например чтоб остаток на складе контролировать на предмет перерасхода).
Если клиент нужен очень тонкий, то это CGI приложение (прямо в браузере все происходит, все операции выполняются на сервере) и надо смотреть на апач + сервер баз данных. Отдельная и весьма интересная тема. Если клиент нужен более продвинутый, посмотрел бы в сторону использования удаленного соединения с базой данных. Нет никакой разницы будет это интернет или локальная сеть. Если клиент нужен совсем продвинутый, то придется свой сервер городить, да. Но это совсем что-то не тривиальное должно быть, типа игры какой-то сетевой или навороченного чата с видео и голосом...

Скажите будет ли правильным представлять работу клиент-серверного приложения как взаимодействие двух крупных объектов внутри которых между собой могут взаимодействовать объекты поменьше? И будет ли правильным осуществлять это взаимодействие через вызов методов одними объектами у других? Получится ли написать такое приложения чисто на использовании методов объектов или нужно будет все равно что то еще изучать?
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение yeger » 18.01.2016 02:34:18

ANTIKLAN писал(а):Скажите будет ли правильным представлять работу клиент-серверного приложения как взаимодействие двух крупных объектов внутри которых между собой могут взаимодействовать объекты поменьше? И будет ли правильным осуществлять это взаимодействие через вызов методов одними объектами у других? Получится ли написать такое приложения чисто на использовании методов объектов или нужно будет все равно что то еще изучать?

Да. Да и по другому в ООП не делается. Нужно будет изучать, например, SQL в минимальном объеме.
Почитайте тему http://www.freepascal.ru/forum/viewtopic.php?f=5&t=7721
Почитайте примеры компонента http://lnet.wordpress.com/
Аватара пользователя
yeger
новенький
 
Сообщения: 49
Зарегистрирован: 17.03.2011 12:26:34

Re: Клиент-серверное приложение

Сообщение ANTIKLAN » 18.01.2016 02:37:41

yeger писал(а):
ANTIKLAN писал(а):Скажите будет ли правильным представлять работу клиент-серверного приложения как взаимодействие двух крупных объектов внутри которых между собой могут взаимодействовать объекты поменьше? И будет ли правильным осуществлять это взаимодействие через вызов методов одними объектами у других? Получится ли написать такое приложения чисто на использовании методов объектов или нужно будет все равно что то еще изучать?

Да. Да и по другому в ООП не делается. Нужно будет изучать, например, SQL в минимальном объеме.
Почитайте тему http://www.freepascal.ru/forum/viewtopic.php?f=5&t=7721
Почитайте примеры компонента http://lnet.wordpress.com/

Уже изучаю, но думаю по мере продвижения будут появляться какие-то уточняющие вопросы. Буду задавать их в этой теме.
Аватара пользователя
ANTIKLAN
новенький
 
Сообщения: 55
Зарегистрирован: 25.02.2015 09:21:42

Re: Клиент-серверное приложение

Сообщение azsx » 18.01.2016 02:52:20

а значит нужна база данных.

я бы для себя на этом пункте весь вопрос о взаимосвязи клиента с сервером снял. Асинхронную связь через интернет проще всего организовать с бд. На клиенте делаете sqlite, на сервере бд постгрес (все бд просто пример). В sqlite кэш для данных на случай сбоя инета на постгрес. Ради безопасности временную таблицу (ы) поля: акк юзера, мак адрес юзера, поле текст для всего его трафика или более конкретные поля. Также можно юзать представления, тригеры и прочую муть. Таким образом написание серверной части отпадет или станет значительно проще.
По идее у вас будет "умный клиент" но я не уверен, что вы верно понимаете отличия клиентов.
зы
но обратите внимание я также не писал таких приложений.
azsx
энтузиаст
 
Сообщения: 959
Зарегистрирован: 16.11.2015 06:38:32

След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru