crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> Требуется совет по поводу архитектуры..
defnull
  опции профиля:
сообщение 9.3.2009, 20:38
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Добрый день. Хотел бы посоветоваться по поводу архитектуры разрабатываемой системы.

Задача: есть сервер на котором крутиться PostgresSQL. Есть АРМ разных видов которые должны иметь доступ к данным бд на сервере и которые должны работать с базой параллельно. База данных должна бекапиться удалённо, и удалённо же должно производиться управление учётками пользователей. Проект выполняется с использованием QT на С++. Подключение к БД через qt модуль работы с postgresql.

Возникшие проблемы:
1) не до конца ясно делать ли серверную часть и насколько должны быть толстыми или тонкими клиенты.
2) не понятно какими средствами лучше всего бекапить удалённо базу и как управлять учётками.

Выявил несколько вариантов:
1) Без серверной части. То есть админ ставит БД, подключается к ней со своего (АРМ), заводит пользователей и те напрямую работают с базой.
Из плюсов - вроде бы простота реализации.
Из минусов - сложности контроля пользователей и проблемы с их блокировкой (например надо отслеживать работает ли пользователи в текущий момент с базой чтобы сделанный бекап не был противоречивым) Нельзя проконтролировать пользовательскую активность напрямую с админского АРМ (здесь и далее админская часть на его собственном компе а не на сервере)

2) Серверная часть как прокси. Тоесть клиент вначале подключается к серверной части а та пускает или не пускает его на работу с базой.
Из плюсов: учёт активности пользователей. Возможность заблокировать пользователя почти в любой момент.
Из минусов: Дополнительный расходы на сервер(по два соединения tcp вместо одного когда нет серверной части). Не ясно можно ли просто перенаправлять всю инфу с одного сокета в другой после того как мы пускаем пользователя??? (идея такая.. клиент авторизуется на сервере и тот далее подключается к бд под учётной записью пользователя и передаёт информацию от клиента к бд и от бд клиенту через себя)

3) Клиент проходит авторизацию на сервере а после если авторизация успешна напрямую подключается к БД. При этом от клиента идёт два соединения к Серверу и к БД. Сервер управлять клиентом (например послать запрос чтобы клиент разорвал связь с БД)
Из плюсов: учёт активности пользователей. Возможность заблокировать пользователя почти в любой момент.
Из минусов: Дополнительный расходы на клиента(по два соединения tcp вместо одного когда нет серверной части). Да и в целом схема мне кажеться несколько усложнённой..

А уж с бекапом вообще не ясно как быть. Условия таковы что нельзя использовать сторонние утилиты по резервированию/восстановлению, тоесть даже pgdump использовать по идее нельзя. А если всё же использовать, то надо писать обёртку... Но pgdump вроде бы здесь не подойдёт он ведь должен работать на той же машине где и БД.

Был бы очень признателен если бы кто-нибудь дал развёрнутый ответ что в данном случае предпочтительнее использовать..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 9.3.2009, 22:02
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


ИМХО, лучше использовать 2 вариант.
Минусы этого варианта это вовсе не минусы. Так как 2 соединения на пользователя это ерунда, а в передаче инфы с одного сокета на другой не вижу никаких проблем, сам реализовывал подобное в свое время. Да и можно использовать одно соединение с БД для всех соединившихся пользователей, но ну жно ли.

Вот насчет работы с БД я не могу ничего сказать, так как плохо знаю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 9.3.2009, 22:45
Сообщение #3


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Цитата(defnull @ 9.3.2009, 20:38) *
Был бы очень признателен если бы кто-нибудь дал развёрнутый ответ что в данном случае предпочтительнее использовать..

Не понял юмора.
Предпочтительность использования варианта обычно определяют входные условия: бюджет, ТЗ, требования заказчика к системе.
Если что-то из этого пункта не ясно, заказчика обычно спрашивают.
По требованиям к системе все немного сложнее, но опросные листы поправят дело.
Как с этими вопросами дела обстоят?

так чего?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 9.3.2009, 23:11
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Система является учебным а не реальным проектом. В ТЗ не оговорена конкретная архитектура. ТЗ составляли мы сами, по всем правилам. Хотя теоертически по специальности написание ТЗ не входит в наши задачи нам пришлось его разрабатывать, и не знаю как там в реальных проектах, но мы сдавали ТЗ уже около 7-9 раз..
Фактически нам предоставляется возможность самим выбрать способ реализации. Оговорены лишь те аспекты что я перечислил, остальное на наше усмотрение. Так как должного опыта в этом нет то и спрашиваю совета, заодно хотелось бы избежать заранее подводных камней.

Цитата
Да и можно использовать одно соединение с БД для всех соединившихся пользователей, но нужно ли.


Насколько я понимаю из поставленных перед нами задач требуется именно параллельная работа нескольких пользователей . Как я вас понял вы предлагаете делать всё через одного пользователя последовательно передавая запросы от разных клиентов. Такое не подойдёт=( Хотя никто не мешает делать и под разными пользователями с несколькими соединениями к бд.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 9.3.2009, 23:38
Сообщение #5


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Делайте толстого клиента, а сорцы публикуйте на гуглекоде или ассембле.
А я у вас потом буду подсматривать. :)
У меня самого такая задачка на очереди: http://code.google.com/p/unnstudio/
но это не учебная, а реальная необходимость для работы: задел на будущее под линукс.
по инструментам мы с вами совпадаем...
Может в рамках учебной и сделаете нужный пиплу проект.
а то любой тупой 1С-ник спит и видит 1С под линусом.....(это не шутка)....
Ибо так {вырезано самоцензурой} с этим вайном, что, просто,...........

+Кстати, можно ТЗ посмотреть?

defnull, можешь в аську постучаться?

Сообщение отредактировал trdm - 9.3.2009, 23:41
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.3.2009, 23:40
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(trdm @ 10.3.2009, 2:37) *
натрахались
ребята давайте избегать таких слов
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 9.3.2009, 23:48
Сообщение #7


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


так, а в ответ тишина. понял...
ПС, а чего, удалять свои сообщения нельзя?

Сообщение отредактировал trdm - 9.3.2009, 23:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 10.3.2009, 0:10
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(trdm @ 9.3.2009, 23:48) *
так, а в ответ тишина. понял...
так времени мало прошло и defnull скорее всего не успел прочитать еще. :)
Цитата(trdm @ 9.3.2009, 23:48) *
ПС, а чего, удалять свои сообщения нельзя?
нельзя.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 10.3.2009, 0:24
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Отчего же нельзя, можно=) правда сомневаюсь что там будет что-нибудь особо интересное.
Сейчас по аське постучаться не могу, если всё же интересно могу залить куда-нить ТЗ-шку?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 10.3.2009, 0:30
Сообщение #10


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

Спасибо сказали: 21 раз(а)




Репутация:   6  


Цитата(defnull @ 10.3.2009, 0:24) *
Отчего же нельзя, можно=) правда сомневаюсь что там будет что-нибудь особо интересное.
Сейчас по аське постучаться не могу, если всё же интересно могу залить куда-нить ТЗ-шку?

mailto:trdmval(все известный зверь)gmail.com
Меня собственно всегда клинило при мысли, что у нас в стране учебные программы
пишутся для чего угодно, только не для практического в последствии применения.
В очередной раз вспоминаю, что разработки американских вузов давно и успешно
применяются на практике (Беркли например). И постоянно вспоминаю 2 российских беды...

Сообщение отредактировал trdm - 10.3.2009, 0:33
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.12.2024, 9:53