Так определяется модель и терминология COM .Есть клиенты и серверы. Эта терминология не зависит от того, как размещен конкретный COM-сервер , или как конкретный COM-клиент подключается к указанному серверу - , что будет просто запутанным!:)
(Сама DLL не является COM-сервером: скорее, COM DLL содержит COM-сервер.)
В идеальном мире есть нет необходимости различать внепроцессный COM-объект (который является размещенным как «классическое» определение сервера в отдельном процессе) и внутрипроцессный COM-объект.Однако тот факт, что он находится в процессе, не означает, что это прямой доступ, и COM будет маршалировать через границы потоков!(В этом случае физическое проявление «классического сервера» все еще применяется, только на уровне подпроцесса.)
Я думаю это хорошее краткое введение .Я думаю, что лучше сравнивать COM с CORBA , чем просто библиотеки или классы.То есть COM также определяет правила связи .Этого нет в большинстве библиотек - например, классы в JAR-файлах или не-COM DLL - которые фактически содержат просто «код для выполнения».
Счастливое кодирование.
Здесьэто определение COM , которое я считаю уместным:
Компонентная объектная модель + (COM +) - это двоичный стандарт взаимодействия, определенный Microsoft, который задает модель для связи с распределенными объектами. COM + определяет связь, разделяя объекты на клиентов и серверы. Клиент определяется как объект, который хочет получить доступ к определенной службе, тогда как сервер - это объект, который предоставляет услугу. Клиенти сервер может взаимодействовать друг с другом независимо от языка программирования, на котором они определены, и независимо от операционной системы, которая находится между ними.