Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаленный вызов. детали, реализация, архитектура, у темы новое название! 
:(
    Опции темы
boostcoder
Дата 29.3.2011, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110




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


Добавлено через 1 минуту и 51 секунду

а этот фрагмент кода что Вы процитировали... это к чему? не нравится макрос? так макрос можно и не использовать, если юзеру захочется покодить вдоволь)

PM WWW   Вверх
mes
Дата 29.3.2011, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  29.3.2011,  21:22 Найти цитируемый пост)
 наличие синхронных вызовов? отсутствие компайл-тайм проверки?

не только..

Добавлено через 7 минут и 13 секунд
Цитата(boostcoder @  29.3.2011,  21:27 Найти цитируемый пост)
я придерживаюсь мнения, что продукт должен не только работать

 smile 
Цитата(boostcoder @  29.3.2011,  21:27 Найти цитируемый пост)
но и быть приятным и понятным в использовании. 

вот и я об этом.. в данном коде я вижу, что _каждая_ строчка связывает мне руки.. а связывание редко бывает удобством.. 

Цитата(boostcoder @  29.3.2011,  21:27 Найти цитируемый пост)
возможно от этого я и стараюсь упростить его использование, пренебрегая чем-то...

На мой взгляд Вы все свели к одному частному случаю.. 

Цитата(boostcoder @  29.3.2011,  21:27 Найти цитируемый пост)
не нравится макрос? 

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

Добавлено через 9 минут и 42 секунды
в общем что я вижу - это не distributed communication, a простой remote call, так еще и вся ответственность на порограммисте.. 


--------------------
PM MAIL WWW   Вверх
baldina
Дата 30.3.2011, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  29.3.2011,  22:41 Найти цитируемый пост)
в общем что я вижу - это не distributed communication, a простой remote call, так еще и вся ответственность на порограммисте..  


mes, объясните пожалуйста (концептуально, без кода), чем по Вашему отличается distributed communication от remote call. И как устанавливать удаленное взаимодействие без ответственности программиста 

я так думаю, взаимодействие чего-л. построено на интерфейсе, т.е. соглашении. все, что можно сделать автоматически - это проверить, не нарушается ли оно. с другой стороны я не понимаю сервисов, которые "сами про себя рассказывают или публикуют". тут нужно кое-что еще. нужна возможность
а) выбрать сервис с конкретным известным нам назначением, использующим известный нам интерфейс
б) выбрать один по некоторым (опубликованным) критериям, если таких сервисов обнаружилось несколько
PM MAIL   Вверх
mes
Дата 30.3.2011, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



ура у нас гости smile

Цитата(baldina @  30.3.2011,  08:25 Найти цитируемый пост)
 объясните пожалуйста (концептуально, без кода), чем по Вашему отличается distributed communication от remote call.

в remote call во главе угла сам вызов.. т.е. есть две плоскости (интерфейса) между которыми происходит общение и ничего (для программиста) между ними.. 
в communication вызов представлен сообщением и предоставляет операции над ним..сам непосредственный вызов (инвок) является лишь одной из его возможностей.. т.е. другими словами remote call это частный случай распределенного общения.. 

Цитата(baldina @  30.3.2011,  08:25 Найти цитируемый пост)
 И как устанавливать удаленное взаимодействие без ответственности программиста 

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

Цитата(baldina @  30.3.2011,  08:25 Найти цитируемый пост)
я так думаю, взаимодействие чего-л. построено на интерфейсе, т.е. соглашении. 

 smile 

Цитата(baldina @  30.3.2011,  08:25 Найти цитируемый пост)
все, что можно сделать автоматически - это проверить, не нарушается ли оно.

я б сказал, и если есть возможность, нужно проверить это автоматически.. 

Цитата(baldina @  30.3.2011,  08:25 Найти цитируемый пост)
 с другой стороны я не понимаю сервисов, которые "сами про себя рассказывают или публикуют". 

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

Цитата(baldina @  30.3.2011,  08:25 Найти цитируемый пост)
тут нужно кое-что еще. нужна возможность
а) выбрать сервис с конкретным известным нам назначением, использующим известный нам интерфейс
б) выбрать один по некоторым (опубликованным) критериям, если таких сервисов обнаружилось несколько

 smile, типа того .. 


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 30.3.2011, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, опишите словами, как Вы представляете инициализацию узлов? и кто такой узел, не считая реализации и вызова? т.е. что это за сущность.

Это сообщение отредактировал(а) boostcoder - 30.3.2011, 12:11
PM WWW   Вверх
mes
Дата 30.3.2011, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  30.3.2011,  11:09 Найти цитируемый пост)
как Вы представляете инициализацию узлов? 

по всякому..  вплоть до никак smile 
что именно подразумевается под этим вопросом ?

Цитата(boostcoder @  30.3.2011,  11:09 Найти цитируемый пост)
 и кто такой узел, не считая реализации и вызова? т.е. что это за сущность.

на мой взгляд, объект(функтор) принимающий сообщение вызова...  что он с ним будет делать дальше его проблемы..

Это сообщение отредактировал(а) mes - 30.3.2011, 12:39


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 30.3.2011, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  30.3.2011,  12:39 Найти цитируемый пост)
что именно подразумевается под этим вопросом ?

как Вы представляете информировать узлы о существовании других узлов?

PM WWW   Вверх
mes
Дата 30.3.2011, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



aa. ну так это уровень выше.. далеко не всегда нужна такая информированность, а если и нужна то зависит от модели взаимодействия.. 



--------------------
PM MAIL WWW   Вверх
baldina
Дата 30.3.2011, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  30.3.2011,  11:39 Найти цитируемый пост)
ура у нас гости

я почитываю время от времени, но пока не понимаю главного (может, увяз в деталях? слишком многа букаф): 
есть ряд известных протоколов, позволяющих осуществлять коммуникацию.
есть ряд известных библиотек, позволяющих её использовать

какова цель в данном случае? абстрагироваться от конкретного протокола не получится, это эквивалентно написанию своего протокола. сделать обобщенную библиотеку "на все случаи жизни"? это кажется не очень реальным и нужным.
получить удовольствие от процесса? допустим.
все-таки мне кажется следует начинать с анализа имеющегося, его критики, установки целей.
а пока (если я правильно понимаю происходящее) все крутится вокруг хитростей реализации на С++

Добавлено через 1 минуту и 27 секунд
Цитата(baldina @  30.3.2011,  13:58 Найти цитируемый пост)
сделать обобщенную библиотеку "на все случаи жизни"? это кажется не очень реальным и нужным

может это возможно и полезно, но тогда должен быть серьезный анализ, а результатом что-то типа BGL, только в сфере коммуникаций smile

Добавлено через 9 минут и 27 секунд
Цитата(boostcoder @  30.3.2011,  12:44 Найти цитируемый пост)
как Вы представляете информировать узлы о существовании других узлов?

предлагаю разделить на две части: проект с точки зрения клиента (т.е. он просто заказывает услугу и пользуется ей. детали устройства его не интересует) и проект с точки зрения сервера: эта часть может быть маленькой, а может масштабироваться до сколько угодно. если услугу предоставляет кластер, то средства кластеризации есть отдельная служба, в которую интегрируются серверы (возможно, даже не подозревая об этом). что бы проект масштабировался со стороны сервера, нужно изолировать интерфейс сервера от его реализации, дальше можно разрабатывать отдельно. конечно, это слишком общая схема. сначала надо понять цели))

Добавлено через 10 минут и 54 секунды
Цитата(baldina @  30.3.2011,  13:58 Найти цитируемый пост)
возможно, даже не подозревая об этом

в том смысле, что, например, сервер общается с внешним миром через монитор, который может быть реализован по разному
PM MAIL   Вверх
baldina
Дата 30.3.2011, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  30.3.2011,  11:39 Найти цитируемый пост)
в communication вызов представлен сообщением и предоставляет операции над ним

какие операции? в смысле, что мы с этого имеем?
PM MAIL   Вверх
mes
Дата 30.3.2011, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(baldina @  30.3.2011,  12:58 Найти цитируемый пост)
есть ряд известных протоколов, позволяющих осуществлять коммуникацию.
есть ряд известных библиотек, позволяющих её использовать


Цитата(baldina @  30.3.2011,  12:58 Найти цитируемый пост)
какова цель в данном случае? 

для меня в первую очередь воссоздать в голове полную картину приемлемой для меня модели обсуждаемого взаимодействия..
примеры приводятся для критики и выявления слабых мест.. Другими словами хочется найти те точки опоры, вокруг чего крутится коммуникация.. Хотя бы для того, чтоб смочь составить требования.. Пока я даже не могу многое сформулировать, разве что показать примером и то не всегда точно.. 

Цитата(baldina @  30.3.2011,  12:58 Найти цитируемый пост)
все-таки мне кажется следует начинать с анализа имеющегося, его критики, установки целей.

было бы хорошо.. 

Цитата(baldina @  30.3.2011,  12:58 Найти цитируемый пост)
а пока (если я правильно понимаю происходящее) все крутится вокруг хитростей реализации на С++

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

Цитата(baldina @  30.3.2011,  13:16 Найти цитируемый пост)
какие операции? в смысле, что мы с этого имеем? 

групповую обработку сообщений, 
1. например каждая игра имеет метод make_move, но тип аргументов может разниться... 
по имени сервиса можно узнать какой именно тип имеет сообщение и передать нужному контроллеру.. 
2. на основе групп сообщений публиковать интерфейсы
3. ..

Цитата(baldina @  30.3.2011,  12:58 Найти цитируемый пост)
 BGL

Boost Graph Library ?

Добавлено через 1 минуту и 21 секунду
Основная проблема в том что нет хорошей литературы по этой теме, или может я просто не там ее ищу smile



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 30.3.2011, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



mes, мне кажется, что нужно написать конечный код, который, собственно и будет целью.

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

baldina, по поводу имеющихся - покажите ту, которую Вы выбрали. я таковой не нашел, из кучи пересмотренных реализаций.
PM WWW   Вверх
mes
Дата 30.3.2011, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  30.3.2011,  14:02 Найти цитируемый пост)
у меня же, проблема в том, что есть реальная задача

вот я уже сколько прошу кусочек оттуда, пока кроме пересылки вызова увы ничего нет  smile 

я кстати понял чего я вчера не мог объяснить.. 
возьмем с++ : есть функция как механизм и интерфейс (ОО) как протокол взаимодействия, при этом последний зависит от задачи.. 

так и здесь : если с первым, мы в принципе разобрались и имеем как минимум два варианта, то для протокола нужно установить требования описывающие модель взаимодействия.. Так вот мои внутренние возмущения были в следствии того, что сам механизм скрыт, а представленные интерфейсы не позволяют решить задачу, которую я представляю, а реальную не знаю.. 
фуф.. не знаю понятно ли я выразился или нет... smile попозже попробую еще раз перефразировать.. 

Это сообщение отредактировал(а) mes - 30.3.2011, 16:19


--------------------
PM MAIL WWW   Вверх
baldina
Дата 30.3.2011, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(mes @  30.3.2011,  14:51 Найти цитируемый пост)
смочь составить требования

неплохо бы с этого начать. хотя бы определить сферу применения

Цитата(mes @  30.3.2011,  14:51 Найти цитируемый пост)
1. например каждая игра имеет метод make_move, но тип аргументов может разниться... 
по имени сервиса можно узнать какой именно тип имеет сообщение и передать нужному контроллеру.. 
2. на основе групп сообщений публиковать интерфейсы

не согласен. если априори неизвестен тип, о чем вообще говорить? если же речь идет, что числа могут быть числами или строковым представлением, то лучше как-то абстрагироваться от типа.
а насчет "на основе групп сообщений публиковать интерфейсы" вообще не понимаю. что значит публикация интерфейса? опубликовать можно имя интерфейса и номер версии. ну, допустим, если интерфейс имеет опциональные возможности, то их перечень. но ядро интерфейса должно быть заранее известно (согласовано):
представьте, что вам дали незнакомый аппарат. если вы знаете, что это аппарат для перемещения, то вам потребуется знать где у него старт, стоп, поворот.
если это аппарат неизвестного назначения, то перечисление всех элементов управления вам ничего не даст

Цитата(mes @  30.3.2011,  14:51 Найти цитируемый пост)
Boost Graph Library ?

да

Цитата(boostcoder @  30.3.2011,  15:02 Найти цитируемый пост)
baldina, по поводу имеющихся - покажите ту, которую Вы выбрали. я таковой не нашел, из кучи пересмотренных реализаций. 

вообще мне крайне редко приходится писать программы, использующие коммуникацию, но примеры привести могу:
1. при взаимодействии веб-клиента (естественно, умеющего javascript) с сервером просто и естественно использовать JSON over HttpRequest
2. SOAP. страшный монстр, куча недостатков, но дело свое знает
3. DCOM. еще страшнее, но при использовании соответствующих инструментов (их есть у нас благодаря Microsoft) довольно удобен.

вообще, для разных задач к инструментам предъявляются раёзные требования.

Цитата(boostcoder @  30.3.2011,  15:02 Найти цитируемый пост)
нужно написать конечный код, который, собственно и будет целью

код является целью? я думал целью является решение какой-то задачи... smile

Добавлено через 2 минуты и 15 секунд
boostcoder, опишите плиз (еще раз?) первоначальную задачу, которую Вы решаете. В связи с которой и возникла эта тема

Добавлено через 4 минуты и 45 секунд
Цитата(baldina @  30.3.2011,  18:52 Найти цитируемый пост)
вообще, для разных задач к инструментам предъявляются раёзные требования

например, С++ для универсального взаимодействия не лучший инструмент. При наличии рефлексии и мультиметодов вы бы давно "написали конечный код", который был бы краток и понятен
PM MAIL   Вверх
boostcoder
Дата 30.3.2011, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(baldina @  30.3.2011,  18:52 Найти цитируемый пост)
2. SOAP. страшный монстр, куча недостатков, но дело свое знает
3. DCOM. еще страшнее, но при использовании соответствующих инструментов (их есть у нас благодаря Microsoft) довольно удобен.

вот и я о том же.

Цитата(baldina @  30.3.2011,  18:52 Найти цитируемый пост)
код является целью? я думал целью является решение какой-то задачи...

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

Цитата(baldina @  30.3.2011,  18:52 Найти цитируемый пост)
опишите плиз (еще раз?) первоначальную задачу, которую Вы решаете. В связи с которой и возникла эта тема

удаленный, двунаправленный вызов функций/методов. по умолчанию асинхронный. опционально, синхронный. простой в использовании. для с++.

PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.