Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2013, 05:33   #1
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию Надо разработать 3хзвенку. Какие компоненты использовать?

В общем, сейчас передо мной стоит задача создания трехзвенной системы
клиент - сервер_приложений - сервер_mySQL(хостинг).
Я создавал некое подобие клиент-серверных приложений с передачей относительно коротких строк через сокеты.
Тут похоже в любом случае с потоками работать придется (передача сотни названий с датами и прочей инфой через строку мне кажется абсурдной).
1. Где есть валидная инфа по работе с потоками и отправкой их между клиентом и сервером? Какие компоненты использовать, не даром же TClient~ServerSocket'ы по умолчанию не включены, значит есть более хорошие аналоги. Indy'шные например. TIdTcpClient~Server?
2. Какие компоненты использовать для работы с mySQL?
3. Возможно ли все это закосить под FM на XE4 (чтоб на маки и яблось отдельно не писать)?
4. Есть ли где валидные схемы организации подобных приложений?
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 16.10.2013, 09:48   #2
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Вы прям такой крутой
Зачем вам посылать строки на сервер?) Делайте хранимки и через них работйте

Call proc_name (:name);

ну а в хранимке пишите допустим добавления записи с таким именем... Главное подключение настроить правильно до хостинга, а по поводу потоков, сам если чесно сильно близко не сталкивался, но если у вас не будет каких то вычислений которые на долго будут вешать программу то и потоки вам не нужны, темболее есть шас технологии доступа к данным которые используют Асинхронные запросы например AnyDAc или как она шас называется FireDAC
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 13:00   #3
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от Dozent Посмотреть сообщение
Вы прям такой крутой
Зачем вам посылать строки на сервер?) Делайте хранимки и через них работйте

Call proc_name (:name);

ну а в хранимке пишите допустим добавления записи с таким именем... Главное подключение настроить правильно до хостинга, а по поводу потоков, сам если чесно сильно близко не сталкивался, но если у вас не будет каких то вычислений которые на долго будут вешать программу то и потоки вам не нужны, темболее есть шас технологии доступа к данным которые используют Асинхронные запросы например AnyDAc или как она шас называется FireDAC
Что такое хранимки? Хранимые процедуры? Не умею с ними работать.
Сервер приложений нужен в основном для авторизации и ее проверки, нежели для передачи от клиента в базу, ну и чтобы у клиента не хранить данные бд (логины/пассы), декомпилят и "пока база".
Под сервером тут имелось ввиду - сервер приложений.
А про передачу потоками - нужна не только в данном проекте, но и тут вроде как проще будет.

Более того, если получится без особых косяков писать под маки и яблось (а затем и ведройд на джаве), то проще будет обратиться к серверу приложений по тому же tcp протоколу, нежели к бд.
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 16.10.2013 в 13:06.
alextrof94 вне форума Ответить с цитированием
Старый 16.10.2013, 13:05   #4
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Цитата:
Сервер приложений нужен в основном для авторизации и ее проверки, нежели для передачи от клиента в базу, ну и чтобы у клиента не хранить данные бд (логины/пассы),
Чего чего?)) ну вы просто говорите что вам так та база ненужна, но вам нужен сервер чтобы хранить данные...

С хранимыми процедурами буде твсё намного проще, да и как вы раньше тогда работали с mySQL ?
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 13:06   #5
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

и как вы собиратесь хранить логины и пасы? в тхт файле?
Складывается впечатление чт овы сами пока смутно представляете что вам на самом деле надо...
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 13:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

offtop

Dozent, Вы бы ознакомились с тем, что такое трёхзвенная архитектура и что такое сервер приложений.
Вы удивитесь, но к серверу БД он имеет весьма косвенное значение (хотя, конечно, обычно 3-хзвенка именно для работы с БД и применяется).

p.s. а логины и тем более пассворды хранить вообще нигде не нужно! Нужно их запрашивать у пользователя и передавать в СУБД. и всё
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.10.2013, 13:09   #7
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Цитата:
то проще будет обратиться к серверу приложений по тому же tcp протоколу, нежели к бд.
мб эт оя вас просто не поинмаю, что значит подключится п оtcp протоколу? Зайти на сервер чтобы получить доступк к каталогам?
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 13:10   #8
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
offtop

Dozent, Вы бы ознакомились с тем, что такое трёхзвенная архитектура и что такое сервер приложений.
Вы удивитесь, но к серверу БД он имеет весьма косвенное значение (хотя, конечно, обычно 3-хзвенка именно для работы с БД и применяется).
Ок, извиняюсь...
Dozent вне форума Ответить с цитированием
Старый 16.10.2013, 13:23   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

alextrof94, если сервер приложений в локальной сети, то в дельфях полный джельтменский набор для программирования клиента и сервера, начиная с ClientDataSet, DCOMConnection, SocketConnection, RemoteDateModule и заканчивая DataSetProvider. И разумеется ADOConnection и ADOQuery или их аналоги
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 16.10.2013 в 13:26.
Аватар вне форума Ответить с цитированием
Старый 16.10.2013, 14:15   #10
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Меня похоже не поняли.
Сервер приложений будет принимать запросы от клиентов - обрабатывать их (отклонять повторное подключение по данным логину и пассу, если уже таковой зашел; сравнивать IP на частое подключение с косячной инфой; и прочая фигня по безопасности) - передавать запросы к бд, расположенной на хостинге, принимать ответ - и передавать данные из ответа клиенту.
Собственно между клиентом и сервером приложений соединение tcp, а между сервером приложений и бд на хостинге хз (хз через что там с бд можно работать).
Клиент будут устанавливать люди.
Сервер приложений на выделенном IP у друга на отдельном невостребованном пк.
БД - на sprinthost'е (под сайт).

Хочется попробовать обезопасить программу от взлома насколько это возможно.
Программа подразумевает подключение к серверу приложений, пока работает (если нет интернета, то и толку от программы 0).
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 16.10.2013 в 14:18.
alextrof94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие контролы лучше использовать? медведко ASP.NET 1 08.01.2012 07:00
Какие бази использовать?? Kobylyansky БД в Delphi 4 22.04.2010 11:54
Какие компоненты zmey31313 Компоненты Delphi 3 21.01.2010 00:34
Подскажите пл3 какие классы использовать. mopmuk Помощь студентам 0 17.12.2009 22:19
какие языки программирования и базы использовать? кто выпил мое пиво Помощь студентам 1 24.01.2009 13:45