2010-07-06 4 views
2

Оба выполняют ту же операцию, котораяSingleton и клиент Активированный объект (САО), Remoitng

MSDN

  • Singleton: «» Единый вызов объектов обслуживания один и только один запрос приходит в .... "
  • САО:„клиент-активированных объекты (САО) являются объектами на стороне сервера, которые активируются по запросу от клиента ....“

в обеих случаях данные не являются общими, бушель t в singleton только один раз, когда клиент может быть подключен за раз, почему кому-то нужно это По какому сценарию Синглтон полезен и есть ли в нем какие-то различия?

ответ

3

Вы пропустите черты линий. Вот определение из MSDN. Я выделяю (жирным) некоторые различия между этими объектами.

  • Single Зов

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

  • Singleton объекты

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

  • Client-Activated объекты (САО)

    Client-активированных объектов (САО) являются объекты на стороне сервера, которые активируются по запросу от клиента . Этот способ активации сервера объектов очень похож на классический COM-компонент. Когда клиент отправляет запрос на сервер с использованием оператора «новый», сообщение с уведомлением об активации отправляется в удаленное приложение. Затем сервер создает экземпляр запрашиваемого класса и возвращает ObjRef обратно в клиентское приложение, которое вызывало его . Затем создается прокси-сервер на стороне с использованием ObjRef.Вызовы метода клиента будут выполнены на прокси. Объекты, активированные клиентом могут хранить информацию о состоянии между метод вызывает для своего конкретного клиента , а не через другого клиента объектов. Каждый вызов «нового» возвращает прокси-сервер для независимого экземпляра типа сервера .

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

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

A Объект Singleton создается только один раз (возможно, на сервере starup) и lifes при условии, что серверный процесс запущен. Он может хранить информацию в переменных и свойствах для обработки клиентских запросов, чтобы каждый клиент работал с одним и тем же объектом, и он не уничтожается после вызова клиента.

Простым примером для отображения различия между одним вызовом и одноэлементным объектом является создание метода Increment() для увеличения переменной (целого) в объекте и записи переменной в Консоль. Объект единого вызова всегда будет печатать одно и то же значение в Консоли (1, если переменная начинается с 0), в то время как одиночный объект всегда будет печатать увеличенное значение (1, 2, 3 и т. Д.) После каждого вызова.

+0

О, так что означает информация о состоянии? (извините за другой вопрос noobish после хорошего ответа) –

+0

@KiNGPiN: Я обновил свой ответ с некоторой информацией о «информации о состоянии» – Jehof

+0

ooh, отлично ... получил это Спасибо! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^