|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите определиться с архитектурой приложения
Добрый день!
Погите, пожалуйста, определиться с архитектурой приложения. Задача такая: 1) сервер - принимает данные от внешнего источника, сохраняет их в БД, производит выборку из БД с параметрами, полученными от клиента, производит некоторые математические расчеты, отправляет результаты (таблицы, сформированные по запросу, результаты математических расчетов) клиенту; 2) клиентские приложения - запускается несколько копий клиентов. Задача клиента - формирование параметров запроса, отправка их серверу на обработку, прием результатов от сервера. С помощью какой технологии лучше и проще организовать такое приложение? Ипользуемая БД в силу специфики решаемой задачи - SQLite. Больше никаких ограничений нет. Третий день рою Инет, так и не нашел ничего подходящего. Подскажите, плиз, в каком направлении копать? |
#2
|
||||
|
||||
А вы уверены, что вам нужен SQL-сервер. Как я понял из описания задачи, у вас на сервере будут производится расчеты, а не выборки. Тогда зачем вам SQL? Если объем вычислений очень велик, то вам лучше мне кажется для этой задачи смотреть в сторону распределенных вычислений. Возможно будет в тему Windows HPC Server 2008.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 28.10.2010 в 11:15. |
#3
|
|||
|
|||
Расчеты несложные, просто они однотипные. И выборки также однотипные, поэтому хочу реализовать это все отдельной программой-сервером. А к этому серверу будут подключаться клиенты, отправлять параметры запросов и получать результаты выборки. По этим результатам у клиентов должны строится графики. И вот мне неясно, как осуществить передачу таблицы результата поиска от сервера к клиенту?
Почему нельзя организовать это в виде одной программы без разделения на сервер и клиент? Потому что в таком случае будут приходить данные и формироваться базы данных для каждой запущенной копии программы. Но все эти базы одинаковые, и мне не нужно их несколько копий. Поэтому хочу сделать программу-сервер, которая бы получала данные и формировала базу, а клиенты подключались бы к этой программе-серверу и через нее работали с БД. P.S. Наверное, непонятно объясняю, сорри... |
#4
|
||||
|
||||
Ага, т.е. выборки все-же предполагаются, тогда конечно надо SQL-сервер использовать, Ну а таблица-результат, это по сути и есть результат выполнения запроса. Выглядит этот процесс обычно так:
На сервере пишется хранимая процедура, допустим для получения координат построения графика функции sin(x). В процедуру передаются значение Х, шаг с которым считать, можно еще сразу передавать размер области отрисовки графика, что-бы вообще только рисовать по полученным координатам. Итогом выполнения хранимки будет таблица с координатами Х,У для построения графика. Если вы будете использовать готовый компонент построения графиков типа TChart, то там уже можно не расчитывать Х,У в хранимке, а просто массив значений передать, а компонент уже сам все красиво нарисует. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Угу, вы все верно понимаете и верно описали алгоритм, который я хочу реализовать. Но проблема в том, что, опять же, в силу специфики решаемой задачи, я работаю с SQLite, которая является встраиваемой БД, не использует парадигму клиент-сервер, и функции сервера придется реализовывать самому. Допустим, я напишу процедуру, которая будет осуществлять выборку по параметрам. А как потом передать результат (таблицу) в клиентское приложение?
|
#6
|
|||
|
|||
Подумал, поискал, решил, что оптимальным будет DCOM, вот только опыта работы с ним нет. Поделитесь, пожалуйста, ссылкой, примером?
|