Re[27]: КОП в linux
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 23.06.06 14:38
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> C>Высказывание Мартина Фаулера: "The first rule of distributed programming

>> C>is don't do distributed programming".
>> Не хорошо пинать классиков, но здесь я с ним не соглашусь
C>Нет, правило хорошее. Если что-то можно не распределять — то лучше не
C>распределять.

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

C>Ничуть. Это "вызов удаленных процедур", и эмуляция прямого синхронного

C>вызова — лишь один из вариантов.

Я говорил об RPC именно как о Remote Procedure Call, а call -- это синхронный вызов. И вся цель RPC в том, чтобы скрыть от программиста факт распределенности.

>> C>В RPC — аналогично. В *правильном* RPC.

>> Интересно, вот требуется в некий вызов добавить парочку параметров. Как
>> это сделать в RPC кроме как добавить новый вызов?
C>Добавить новый метод с двумя параметрами А как ты это в С++ делаешь?

В том-то и дело, что в C++ я делаю метод, но вынужден оставлять и старый для совместимости. Либо рефакторить код, чтобы убрать использование старого метода. Между тем, если метод изначально имел формат:
void do_something( const params_t & params );

то расширение структуры params_t не будет сказываться на вызовах do_something.

Вот тестовые протоколы, которые должным образом структурируют информацию (как, например, заголовки HTTP, XML, YAML) как раз позволяют использовать подобный прием.
В бинарном формате такие фокусы позволяют проделывать ASN1 представления (ну и моя ObjESSty ). Однако, как я уже говорил, с бинарными данными приходится больше возиться при их портировании на другие языки программирования.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.