Клиент-серверное приложение
Модератор: Модераторы
Клиент-серверное приложение
Всем привет.
Кто может подсказать какие компоненты, из вкладок доступных после установки среды, понадобятся для создания простого клиент-серверного приложения, где клиент имеет графический интерфейс, а сервер является консольным приложением Unix, работающим с базой данных. Если в стандартном наборе таких компонентов нет, то объясните пожалуйста подробно какие компоненты взять, откуда и как их установить правильно ничего не сломав.
Заранее спасибо.
Кто может подсказать какие компоненты, из вкладок доступных после установки среды, понадобятся для создания простого клиент-серверного приложения, где клиент имеет графический интерфейс, а сервер является консольным приложением Unix, работающим с базой данных. Если в стандартном наборе таких компонентов нет, то объясните пожалуйста подробно какие компоненты взять, откуда и как их установить правильно ничего не сломав.
Заранее спасибо.
TAsyncProcess / TProcess, TSimpleIPCClient, TSimpleIPCServer, TTimer
скалогрыз писал(а):TAsyncProcess / TProcess, TSimpleIPCClient, TSimpleIPCServer, TTimer
Я правильно понимаю что нужно создавать 2 проекта один для клиента другой для сервера? Как в проекте сервера без формы использовать компонент с палитры?
да, 2 проекта.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.
скалогрыз писал(а):да, 2 проекта.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.
Спасибо. А не подскажите, компоненты SimpleIPC справятся с отправкой/получением данных через интернет?
ANTIKLAN писал(а):А не подскажите, компоненты SimpleIPC справятся с отправкой/получением данных через интернет?
чего не знаю, того не знаю. Но предположу, что нет.
скалогрыз писал(а):да, 2 проекта.
в серверный проект нужно добавить "Data Module..." (из меню File -> New... -> Data Module) на него можно класть компоненты.
А если я делаю приложение для удалённого сервера работающего на линуксе...
1) Как серверное приложение запустить?
2) В .htaccess прописать имя файла и запускать его вместо index.html или нужно там на линуксовском сервере менять все настройки?
спасибо.
.
скалогрыз писал(а):ANTIKLAN писал(а):А не подскажите, компоненты SimpleIPC справятся с отправкой/получением данных через интернет?
чего не знаю, того не знаю. Но предположу, что нет.
А что же тогда использовать? Или может проще ручками написать? Как делаются сервера?
ANTIKLAN, определитесь что хотите на лазарусе сделать, как будет работать клиент серверное приложение, что будет делать сервер, а что клиент. С ходу могу предложить lnet, простая, наглядная штука с примерами. Можно ведь и на Brook framework сделать, будет веб-клиент. Потом, практически все сервера баз данных имеют мощные сетевые интефейсы, используйте это и сервер-программа не нужна, с её ролью вполне справится сервер баз данных, тогда вам на закладку SQLdb.
yeger писал(а):ANTIKLAN, определитесь что хотите на лазарусе сделать, как будет работать клиент серверное приложение, что будет делать сервер, а что клиент. С ходу могу предложить lnet, простая, наглядная штука с примерами. Можно ведь и на Brook framework сделать, будет веб-клиент. Потом, практически все сервера баз данных имеют мощные сетевые интефейсы, используйте это и сервер-программа не нужна, с её ролью вполне справится сервер баз данных, тогда вам на закладку SQLdb.
В общем смотрите. Мне нужно сделать клиент-серверное приложение в котором будет тонкий клиент и сервер. По моему плану все должно работать так: клиент получает данные от пользователя и отправляет их на сервер. На сервере эти данные обрабатываются и отсылаются клиенту, а клиент уже выводит пришедший результат пользователю. Еще пользователи должны будут иметь аккаунты, а значит нужна база данных. Вся эта схема должна работать через интернет. Я ни разу не разрабатывал приложения такого уровня и даже не представляю с чего можно начать и что лучше использовать чтобы сделать хорошо.
ANTIKLAN писал(а):В общем смотрите. Мне нужно сделать клиент-серверное приложение в котором будет тонкий клиент и сервер. По моему плану все должно работать так: клиент получает данные от пользователя и отправляет их на сервер. На сервере эти данные обрабатываются и отсылаются клиенту, а клиент уже выводит пришедший результат пользователю. Еще пользователи должны будут иметь аккаунты, а значит нужна база данных. Вся эта схема должна работать через интернет. Я ни разу не разрабатывал приложения такого уровня и даже не представляю с чего можно начать и что лучше использовать чтобы сделать хорошо.
Сожалею, я тоже не разрабатывал приложения такого уровня. Это весьма серьезная разработка. С чего бы начал я:
Определился, насколько тонким должен быть клиент, должен клиент что то сам обрабатывать, помнить часть базы данных на случай не постоянного соединения, или нет, должен ли он писать куда-то, где возможны взаимо-блокировки данных (например чтоб остаток на складе контролировать на предмет перерасхода).
Если клиент нужен очень тонкий, то это CGI приложение (прямо в браузере все происходит, все операции выполняются на сервере) и надо смотреть на апач + сервер баз данных. Отдельная и весьма интересная тема. Если клиент нужен более продвинутый, посмотрел бы в сторону использования удаленного соединения с базой данных. Нет никакой разницы будет это интернет или локальная сеть. Если клиент нужен совсем продвинутый, то придется свой сервер городить, да. Но это совсем что-то не тривиальное должно быть, типа игры какой-то сетевой или навороченного чата с видео и голосом...
vitaly_l писал(а):1) Как серверное приложение запустить?
2) В .htaccess прописать имя файла и запускать его вместо index.html или нужно там на линуксовском сервере менять все настройки?
спасибо.
vitaly_l, на мой взгляд вы про разные вещи спрашиваете.
На первый вопрос ответ будет - как любое другое приложение, методика запуска не отличается.
На второй - это про сервер Апач и соответственно у вас будет не просто приложение, а CGI. на него просто сделайте редирект в index.html, не ломайте апач, если точно не знаете что делать.
yeger писал(а):Сожалею, я тоже не разрабатывал приложения такого уровня. Это весьма серьезная разработка. С чего бы начал я:
Определился, насколько тонким должен быть клиент, должен клиент что то сам обрабатывать, помнить часть базы данных на случай не постоянного соединения, или нет, должен ли он писать куда-то, где возможны взаимо-блокировки данных (например чтоб остаток на складе контролировать на предмет перерасхода).
Если клиент нужен очень тонкий, то это CGI приложение (прямо в браузере все происходит, все операции выполняются на сервере) и надо смотреть на апач + сервер баз данных. Отдельная и весьма интересная тема. Если клиент нужен более продвинутый, посмотрел бы в сторону использования удаленного соединения с базой данных. Нет никакой разницы будет это интернет или локальная сеть. Если клиент нужен совсем продвинутый, то придется свой сервер городить, да. Но это совсем что-то не тривиальное должно быть, типа игры какой-то сетевой или навороченного чата с видео и голосом...
Скажите будет ли правильным представлять работу клиент-серверного приложения как взаимодействие двух крупных объектов внутри которых между собой могут взаимодействовать объекты поменьше? И будет ли правильным осуществлять это взаимодействие через вызов методов одними объектами у других? Получится ли написать такое приложения чисто на использовании методов объектов или нужно будет все равно что то еще изучать?
ANTIKLAN писал(а):Скажите будет ли правильным представлять работу клиент-серверного приложения как взаимодействие двух крупных объектов внутри которых между собой могут взаимодействовать объекты поменьше? И будет ли правильным осуществлять это взаимодействие через вызов методов одними объектами у других? Получится ли написать такое приложения чисто на использовании методов объектов или нужно будет все равно что то еще изучать?
Да. Да и по другому в ООП не делается. Нужно будет изучать, например, SQL в минимальном объеме.
Почитайте тему http://www.freepascal.ru/forum/viewtopic.php?f=5&t=7721
Почитайте примеры компонента http://lnet.wordpress.com/
yeger писал(а):ANTIKLAN писал(а):Скажите будет ли правильным представлять работу клиент-серверного приложения как взаимодействие двух крупных объектов внутри которых между собой могут взаимодействовать объекты поменьше? И будет ли правильным осуществлять это взаимодействие через вызов методов одними объектами у других? Получится ли написать такое приложения чисто на использовании методов объектов или нужно будет все равно что то еще изучать?
Да. Да и по другому в ООП не делается. Нужно будет изучать, например, SQL в минимальном объеме.
Почитайте тему http://www.freepascal.ru/forum/viewtopic.php?f=5&t=7721
Почитайте примеры компонента http://lnet.wordpress.com/
Уже изучаю, но думаю по мере продвижения будут появляться какие-то уточняющие вопросы. Буду задавать их в этой теме.
а значит нужна база данных.
я бы для себя на этом пункте весь вопрос о взаимосвязи клиента с сервером снял. Асинхронную связь через интернет проще всего организовать с бд. На клиенте делаете sqlite, на сервере бд постгрес (все бд просто пример). В sqlite кэш для данных на случай сбоя инета на постгрес. Ради безопасности временную таблицу (ы) поля: акк юзера, мак адрес юзера, поле текст для всего его трафика или более конкретные поля. Также можно юзать представления, тригеры и прочую муть. Таким образом написание серверной части отпадет или станет значительно проще.
По идее у вас будет "умный клиент" но я не уверен, что вы верно понимаете отличия клиентов.
зы
но обратите внимание я также не писал таких приложений.
