Ada_Ru форум

Обсуждение языка Ада

создание сервера приложений

Оставить новое сообщение

Сообщения

Andry Ogorodnik
создание сервера приложений
2007-03-30 10:04:40

Хочу спросить совета общественности по поводу следующеа нетривиальной

задачи. Может кто-то что и посоветует.

 

Необходимо написать сервер приложений, который будет инкапсулировать

"бизнес логику". Клиент(ы) - програма на дельфи. Сервер хочется

написать на ада.

 

Кинет кроме того, что дожен использовать функциональность,

предоставляемую сервером, долже еще и от него получать

сообщения/уведомления.

 

Как мне виделось начальное решение - паписать сервер и модуль доступа

к нему используя технологию GLADE, т.е. для того, чтоб прога на дельфи

могла достучатся до сервера - сделать модуль доступа в виде DLL (so) с

экспортом нужных процедур. Но оказалость что это невозможно. По

крайней мере у меня неполучилось.

 

Вторая идея - использовать PolyORB (CORBA). В этом случае дельфу

прикрутить к серверу можно и не используя прослойки. Но остается

проблема пересылки сообщений от сервера клиенту. Насколько я знаю в

CORBA клиент инициирует соединение и использование процедур сервра, а

вот сервре неможет ниче от клиента получить/передать самостоятельно.

Т.е. он неможет быть инициатором передачи события.

 

Есть идея для создания рассылки сообщений сервером использовать

сокет-соединение. Клиент слушает порт и при поступлении на него

"команды" начинает у сервреа запрашивать чего он там хотел. Но

насколько эта идея "правильная" незнаю :( Как то может эжто и коряво.

 

Вобщем хотелось бы услыщать мнение со стороны как бы эту задачу

решить. Возможно кто-то уже что-то подобное делал.

 

Заранее благодарен.

Andry Ogorodnik wrote:

Есть идея для создания рассылки сообщений сервером использовать

сокет-соединение. Клиент слушает порт и при поступлении на него

"команды" начинает у сервреа запрашивать чего он там хотел.

Если уж сокетом, то не так.

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

Если и слушать, то не порт а открытый сокет.

То есть открыть сокет с сервером, а потом читать из него то что туда сервер написал.

Но это конечно же низкий уровень, со всеми вытекающими от сюда опасностями.

Andry Ogorodnik wrote:

 

Вторая идея - использовать PolyORB (CORBA). В этом случае дельфу

прикрутить к серверу можно и не используя прослойки.

У меня это пару лет назад работало.

 

Но остается

проблема пересылки сообщений от сервера клиенту. Насколько я знаю в

CORBA клиент инициирует соединение и использование процедур сервра, а

вот сервре неможет ниче от клиента получить/передать самостоятельно.

Т.е. он неможет быть инициатором передачи события.

 

Есть идея для создания рассылки сообщений сервером использовать

сокет-соединение. Клиент слушает порт и при поступлении на него

"команды" начинает у сервреа запрашивать чего он там хотел. Но

насколько эта идея "правильная" незнаю :( Как то может эжто и коряво.

 

Клиент всегда может создать объект на своей стороне и передать объектную ссылку серверу. Сервер по этой объектной ссылке способен добраться до клиента.

 

В CORBA более правильным может быть использование службы событий COS Event. Там создаётся один большой канал для рассылки событий, на него "цепляются" поставщики и потребители, и когда поставщик отправляет в канал сообщение то последнее доставляется до всех потребителей.

 

Если же использовать службу оповещения COS Notification, то можно ещё и события фильтровать и приоритеты назначать.

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти