Russian Qt Forum
Ноябрь 24, 2024, 23:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Совет по архитектуре сервера приложений.  (Прочитано 3760 раз)
andrewshkovskii
Гость
« : Сентябрь 16, 2010, 23:11 »

Доброго времени суток, друзья!
Начну с предыстории  : выпала учесть мне диплом писать, да по IT специальности. Долго с другом выбирали темы, ходили к "будущим" руководителям..И вот появилась одна годная идея - попробовать автоматизировать некоторые процессы работы сотрудников кафедры.
Конечно , до этого предпринимались дипломные разработки с целью автоматизации, но до конца они никогда не доводились, потому что каждый раз все начиналось с 0 :
исследование пр.области, новая схема, новая СУБД, новый софт..
Но я решил пойти иным путем - хоть и с 0, но сделать уже раз и навсегда. Отсюда возникла идея написать сервер приложений, некую прослойку между клиентским софтом и БД, который бы поддерживал всяческие CRUD'ы и выполнял различные запросы, которые бы хранились  в неком "Хранилище запросов" (для легкого доступа к редактированию, и добавлению).
Но проблема состоит в том, что если написать такой сервер , то любые приложения, которые будут писаться под него в дальнейшем могли бы легко работать с ним, будь это Java-приложение, C#, delphi или веб-морда.
Отсюда возникла следующая идея - что это будет некий HTTP сервер, т.е принимать запросы/данные по HTTP протоколу, выдавая их обратно тем же путем, в виде какого-нибудь JSON'a .

Пользователей такого сервера будет не много  - не более 10 человек, а вот приложений, может быть достаточное количество.

Собственно главный вопрос : в правильном ли направлении я думаю, сгодиться ли такая архитектура для решения поставленной задачи, или же это слишком для такой, в принципе, не сложной задачи?
Ах да, сервер будет писаться на C++/Qt.
Заранее спасибо за конструктивную критику.
Записан
Denjs
Гость
« Ответ #1 : Сентябрь 17, 2010, 00:54 »

Теоретически, есть такая штука как SOA. весьма ныне популярная и хорошо продаваемая.
Есть воплне себе стандраты на это дело, определяющие инерфейс взаимодействия между клиентским ПО и сервером приложений или серверами предоставляющими различные сервисы.

Если на пальцах - то SOA - это расширение идей компонентно-ориентирвоанной архитектуры и модульнсти на сеть. Т.е ты пользуешься компонентами и модулями, которые лежат "где-то там" - доступны через сеть. Ты отправляешь им запросы и получаешь ответы через сетевое взаимодействие.

Для клиентского приложения даже будет не важно кто и где работает - важно что бы этот сервис был зарегистрирован и доступен, и отвечал по стандартным протоколам. думать я вам предлагаю в направлении веб-сервисов)

Имхо, если вы реализуете систему, платформу/шаблоны для клиента и сервера, которые потом можно будет использовать/поплнять - особенно, если реализованные вами интерфейсы будут соответствовать стандартным - то вы волне сможете заложить основу для дальнейшего развития ваших наработок - именно развития системы для кафедры - что бы идущие за вами не начинали с нуля. а пополняли систему новыми сервисами, а в своих программах использовали уже созданные сервисы.
 
но задача серьезна)))

Думаю вполне вы сможете использовть какой-либо из опенсорсных/бесплатных серверов приложений для того что бы сделать на нем ряд базовых сервисов. Уверен на них есть стандартные решения для реализации тех-же веб-сервисов. И далее вы сможете интегрировать/публиковать туда приложения/сервисы на чем угодно. т.е. часть сервисов будет работать на Java, часть на PHP (тот-же LAMP) часть вообще будет бинарными системами, и работать они будут на разных хостах.

 а вот на QT вы думаю вполне неплохо напишите клиентскую платформу, которая будет интегрировать услуги различных веб-сервисов в одно рабочее пространство на экране пользователя. тут вам поможет и QtScript и многое другое.


PS: ну и конечно, я могу предложить вам QDroid как кроссплатформенную интеграционную платформу на которой вы сможете интегрировать различные бинарные компоненты для QT в единую систему) Вам конечно придется много писать своих компонент, продумывать гуи, который будет вообще способен делать что-то типа настраиваемых "виджетов" в рабочем пространстве (рабочий стол). Верно, не обойдется и без доработок самого QDroid))))
PPS: дада) я предлагаю вам подумать о том, что бы сделать на QT подобие Eclipse ))))
PPPS: но это все имхо и поток мыслей вызванный вашим постом ))))))))
« Последнее редактирование: Сентябрь 17, 2010, 01:26 от Denjs » Записан
UVV
Гость
« Ответ #2 : Сентябрь 17, 2010, 13:29 »

Возьми Ice.
Записан
andrewshkovskii
Гость
« Ответ #3 : Сентябрь 17, 2010, 13:40 »

http://www.zeroc.com/ice.html
Вот это что-ли?
Записан
UVV
Гость
« Ответ #4 : Сентябрь 17, 2010, 15:37 »

Ага
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.104 секунд. Запросов: 21.