Лучше всего Публикуйте/Подписывайте [закрытое] “Промежуточное программное обеспечение”

Так там какой-либо способ получить тип объекта, который устанавливается в NULL? Я думал бы, что должен будет быть способ знать то, что вводит место хранения, без него присваиваемый что-либо.

Не обязательно. Лучшее, которое можно сказать, - то, что это object. null ссылка не указывает ни на какое место хранения, таким образом, нет никаких метаданных, из которых это может сделать то определение.

лучшее, которое Вы могли сделать, изменить его, чтобы быть более универсальным, как в:

public void GetParameterValue<T>(out T destination)
{
    object paramVal = "Blah";
    destination = default(T);
    destination = Convert.ChangeType(paramVal, typeof(T));
}

тип T может быть выведен, таким образом, Вы не должны должны быть давать параметр типа методу явно.

9
задан David 10 July 2009 в 23:13
поделиться

8 ответов

Вы можете изучить RabbitMQ .

5
ответ дан 4 December 2019 в 13:04
поделиться

Look a bit deeper into the various JMS implementations.

Most of them are not Java only, they provide client libraries for other languages too.

Suns OpenMQ have at least a C++ interface, Apache ActiveMQ provides client side libraries for many common languages.

When it comes to message formats, they're usually decoupled from the message middleware itself. You could define your own message format. You could define your own XML schema and send XML messages. You could send BER encoded ASN.1 using some 3. party library if you want. Or format and parse the data with a JSON library.

2
ответ дан 4 December 2019 в 13:04
поделиться

We use the RTI DDS implementation. It costs $$, but it supports many quality of service parameters.

There is a free DDS implementation called OpenDDS, but I've not used it.

I don't see how you can get around the need to predefine your data types if the target language is statically typed.

3
ответ дан 4 December 2019 в 13:04
поделиться

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

https://public.msli.com/lcs/muscle/

1
ответ дан 4 December 2019 в 13:04
поделиться

Вы можете взглянуть на PubSubHubbub . Это расширение для Atom / RSS, позволяющее использовать pubsub через веб-перехватчики. Интерфейс - это HTTP и XML, поэтому он не зависит от языка. Теперь, когда его используют Google Reader, FriendFeed и FeedBurner, он получает все большее распространение. Основной вариант использования - это блоги и прочее, но, конечно, у вас может быть любая полезная нагрузка.

Единственная реализация с открытым исходным кодом, о которой я знаю, - это эта для Google AppEngine. Говорят, скоро появится поддержка самостоятельного хостинга.

0
ответ дан 4 December 2019 в 13:04
поделиться

Существует также OpenSplice DDS. Этот похож на DDS RTI, за исключением того, что это L GPL!

Проверьте это out:

0
ответ дан 4 December 2019 в 13:04
поделиться

Как указывалось в более ранней публикации в этой теме, одним из ваших вариантов является OpenSplice DDS, который является реализацией стандарта OMG DDS с открытым исходным кодом (тот же стандарт, реализованный NDDS).

Основные преимущества OpenSplice DDS по сравнению с другим промежуточным программным обеспечением, которое вы рассматриваете, можно резюмировать следующим образом:

  • Производительность
  • Расширенная поддержка QoS (постоянство, отказоустойчивость, своевременность и т. Д.)
  • Центричность данных ( например, возможность запроса и фильтрации потоков данных)

Я хотел бы понять, в чем заключаются ваши проблемы с IDL. DDS использует IDL как независимый от языка способ определения типов данных пользователя. Однако DDS не ограничивается IDL, вы можете использовать XML, если хотите. Преимущество указания ваших типов данных и отделения их представления от конкретного языка программирования заключается в том, что промежуточное ПО может:

(1) снять с вас бремя сериализации данных,

(2) генерировать очень много времени / эффективная сериализация

(3) обеспечивает сквозную безопасность типов,

(4) разрешает фильтрацию содержимого по всему типу данных (а не только по заголовку, как в JMS) и

(5) включить оперативную совместимость между языками программирования (например, Java, C / C ++, C # и т. д.)

В зависимости от системы или приложения, которое вы разрабатываете, некоторые из вышеперечисленных свойств могут быть бесполезными / актуальными.В этом случае вы можете просто сгенерировать один или несколько «Типов DDS», которые будут содержать ваши сериализованные данные.

Если вы думаете о JMS, она предоставляет вам 5 различных типов тем, которые вы можете использовать для отправки ваших данных. С DDS вы можете сделать то же самое, но у вас есть возможность точно определять типы тем.

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

-AC

4
ответ дан 4 December 2019 в 13:04
поделиться

Три, которые я использовал:

  • IBM MQ Series - слишком дорого, сложно работать.

  • Tico Rendez Мое любимое, но дорогое и требует платы за обслуживание.

  • ActiveMQ - Я использую это в настоящее время, но обнаружил, что он часто дает сбой. Также для этого требуются некоторые проекты, портированные с Java, например spring.net. Он работает, но я не могу рекомендовать его из-за проблем со стабильностью.

Также использовал MSMQ в попытке создать свой собственный Pub / Sub, но, поскольку он не обрабатывает его из коробки, вы застряли при написании значительного количества кода.

1
ответ дан 4 December 2019 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: