double.toString()
должен работать. Не тип переменной Double
, но сама переменная double
.
Существует несколько преимуществ для использования основанных на сообщении систем.
Случайно этими двумя акциями ведущих компаний в этой области является IBM со своим Websphere MQ и сопутствующими товарами, и, TIBCO с их Сервисной шиной предприятия.
Основанная на сообщении архитектура отделяет производителей и потребителей сообщений, оба во времени и пространстве. Это обладает большим количеством преимуществ:
Вы теряете большинство этих преимуществ, когда Вы делаете коммуникацию стиля RPC (т.е. когда Вы блокируетесь при ожидании сервисных ответов),
Один вариант использования - когда у Вас есть пул ресурсов, которые могут работать над данным объектом и списком работы, которая должна быть распределена масштабируемым способом.
У меня когда-то был проект, где я должен был сделать мейнфреймовую интеграцию со многими 3 270 экранных скребков (все замедляются). У меня могло быть самое большее 10 из этих процессов, открытых на поле за один раз. У меня были тысячи учетных записей к экранному царапанью и обновлению, таким образом, я поместил работу в очередь и мои машины (у меня было приблизительно 3 из них), просто взятые объекты работы от очереди сообщений (MSMQ), и сделал их анализ экранных данных, и это было этим. Я мог легко вращать новую машину или деактивировать старые, не прерывая поток работы, так, чтобы было хорошо.
преимущества действительно до отделения частей Вашего приложения. После того как Вам настраивали шину, и приложения добавляются, можно легко расширить приложение путем добавления новых частей, которые можно гарантировать, не будет влиять на другие части. Это - очень хороший способ непрерывного добавления к системе со временем.
например, у нас есть система как это, каждая команда реализована как часть к полному GUI, если мы хотим добавить новую опцию или изменить существующую, мы просто пишем новую часть и добавляем его к системе. Когда это называют, это не имеет никаких зависимостей от остальных. Это означает, что мы можем расширить наше приложение очень легко. Кроме того, у нас есть передача сообщений между узлами в нашей сети - когда что-то изменяется в 1 компьютере, сообщение отправляется всем другим, таким образом, они могут обновить себя. У нас есть сто различных сообщений для различных событий, таким образом, мы можем расшириться, система путем отбрасывания нового сервиса в этом реагирует на соответствующие сообщения.
Архитектура передачи сообщений обычно имеет те же функции как веб-сервисы, у Вас есть дискретные сервисы, которые можно назвать, можно добавить новые легко.
Не думайте, что архитектура передачи сообщений требует воображения (и дорогой!) продукты промежуточного программного обеспечения, хотя, Windows работает на архитектуре передачи сообщений - каждое сообщение WM_*, переданное окну.. хорошо, сообщение, и я думаю, что показывает лучший пример архитектуры - никакая часть системы не должна знать ни о какой другой части, можно расширить его бесконечно, поскольку можно обработать столько средств управления, сколько Вам нравится на любом диалоговом окне и т.д. и т.д.
Передача сообщений является невероятной архитектурой, хотя это может быть медленнее, чем сильная связь Вашего приложения вместе, это не большая часть причины не использовать ее в наше время особенно, если Вы уже используете приложения .NET или сценарии.
Обменивайтесь сообщениями ориентированная система обычно хороши для определенных классов проблем интеграции. Другие альтернативы имеют общее хранилище данных (файл или DB, базирующийся, возможно), чтобы приложения общались с или приложения, интегрирующиеся через RPC.
Преимущества обмена сообщениями по этим шаблонам интеграции состоят в том, что Вы не связываете оба приложения с той же схемой хранилища данных, и Вы не связываете приложения со сценарием интеграции RPC точка-точка (который становится более сложным, больше приложений включено).
Существуют также преимущества асинхронной передачи (как электронная почта по сравнению с онлайн-чатом) и возможности преобразования и маршрутизация сообщений.
Я помог разработать один для системы, которая использовала C# и Дистанционную работу, клиент (сервис или GUI) мог отправить сообщение вместе с некоторыми пользовательскими данными, и получатель (получатели) получит его, или когда они затем соединились или немедленно). Они могли затем обработать сообщение (путем взятия владений его в случае услуг по выравниванию нагрузки). Это также использовалось для обновления графический интерфейсов пользователя, когда длительные процессы закончились.
Сама система обмена сообщениями имела настраиваемые конвейеры, которые обработали каждое сообщение, вот некоторые примеры нескольких конвейеров, которые мы разработали:
Таким образом в ответе на Ваш вопрос, системы обмена сообщениями являются блестящим средством передающей информации о том, когда Вы не знаете или заботитесь, кто клиент.