DCOM Explained
by Rosemary Rock-Evans
Digital Press
ISBN: 1555582168   Pub Date: 09/01/98

Table of Contents


Index

Accessing data, 208
ACID properties, 146-47
ACLs (Access Control Lists), 224-25, 237
Active data objects, 20
Active Data Objects and OLE DB, 187-211

accessing data, 208
back to basics-storing data, 187-92
database connectivity middleware, 192-98
developers accessing data types, 204-7
Microsoft and database connectivity, 198-210
OLE DB, 203-4
Open Database Connectivity (ODBC), 198-203
outgoing Data Objects, 207-8
outgoing interfaces, 207-8
stream and storage objects, 209-10

Active Directory, 23, 252, 256-58

Active Directory Server Interface (ADSI), 257
Lightweight Directory Access Protocol (LDAP), 257
replication, 256
and repository, 258

ActiveX, 19, 39-52

compilers, 42
component market, 45-47
described, 40-44
languages of development, 44
memory management, 43-44
miscellaneous tools, 52
and standardization, 44-45
thread support, 42-43
tools, 47-48
Visual Studio 97, 48-52
Win32 APIs, 41-42

AddRef, 15

method, 81

Administration, 261-68

configuration, 264-65

configuring transaction data, 264
MSMQ, 265
setting up directory, 264
setting up security data, 265

event/problem monitoring, capture, and diagnosis, 265
installation, 263-64
Performance Monitoring, 267-68

MSMQ, 267-68
Transaction Server, 267-68
Windows NT, 267-68

range of tools, 261-63

ADSI (Active Directory Server Interface), 23, 257
AdviseSink, 207
Agents, SMART, 249
Aggregation and containment, interface, 13-14
Anchors defined, 119
APIs, 20, 23

implemented in COM Library, 27
Win32, 41-42

APPC (Advanced Program to Program Communication), 75
Applets defined, 121
Application developer options, distributed, 130-31
Applications

COM, 27-28
needing strictly ordered processing, 167

Architectures, 155

Java and three-tier, 124-25
two types of service, 3

ASCII (American Standard Code for Information Interchange), 74
Assurance, delivery, 179-80
Asynchronous processing, 163

support, 90-91

Audit, 229-30, 283
Authentication, 222-24

authenticode, 234-36
digital certificates, 223-24
Microsoft Certificate Server, 233
services, 63
smart cards, 224, 234
user ID, 232
user names and passwords, 222

Authenticode, 234-36
Authorization, 224-25, 237-38

services, 63

AWT (Abstract Windowing Toolkit), 121
Backups, 150
Blocks, executable, 9
Book

description of, 1
no bias contained, 1-2
purpose, 1

Borland’s Delphi 3, 52
Broadcasting

defined, 84
and multicasting, 83-86, 178-79

BSC (Backup Site Controller), 171
Buffer pool management, 137-38
Call back object, 91
Capture, monitor and, 265-66
Cards, smart, 224, 234
Cedar, 71-77, 158

CICS calls, 75-76
configuration, 73
contents, 72-73
data conversion, 73-75
defined, 21, 71-73
miscellaneous functions, 76
using DCOM on MVS, 76-77

Certificates, digital, 223-24
CGI (Common Gateway Interface), 119-21
Checking, integrity, 228-29, 238
Class defined, 8
Class Factory, 253
Class ID (CLSID), 9
Class Table, 253
Client Software, 171
Clients, 28-29

of events, 207

CLSID (Class Identifier), 9, 15, 254
Codes, status, 196
COM, 15, 27-37, 252

applications, 27-28
client, 28-29
IDispatch, 35-37
interface, 17-18
Interface Definition Language (IDL), 29-30
Library, 27
MIDL compiler, 30-32
proxies and stubs, 32-33
server defined, 29
TI (Transaction Integrator), 21, 71
Type Library, 35
Vtables, 33-35

Commands, semantics of, 195-96
COMMAREA (communication area), 75
Commit and rollback, 150
Communication, distributed interprocess, 3
Communication functions

broadcasting and multicasting, 83-86
context bridging, 83
miscellaneous, 79-86
triggering, 79-83

Communications

one-to-one, 83
one-way, 83
point-to-point, 83

Compilers

ActiveX, 42
MIDL, 30-32

Components

defined, 8
market, 45-47

Configuration, 264-265
Connectable objects defined, 84
Connection

independence, 166
point defined, 85

Containment, interface, 13-14
Contents, 256-57

data, 165
message, 165-66

Context bridging, 83
CORBA (Common Object Request Broker Architecture), 1-2, 7, 86, 249

products, 245

COS (CORBA Object Services), 249
CoTaskMemAlloc, 96
CoTaskMemFree, 96
Cryptographic keys, 223
CSPs (Cryptographic Service Providers), 230-31
Data

accessing, 208
content, 165
formats, 65-66
packing/unpacking in message, 65
storing, 187-92
types, 196

developers accessing, 204-7

Data Objects, outgoing, 207-8
Database

connection pools, 155-56
connectivity

and Microsoft, 198-210
middleware, 192-98

objects using

DML, 204-5
ODBC, 205

DBMSs, history of, 189-92
DCE (Distributed Computing Environment), 8

DCE RPC, 62-63
defined, 59-60
directory service, 62
Distributed File Service (DFS), 64
security services, 63-64
services, 61-64
threads service, 63
time service, 61-62

DCE RPC, 62-63

and MS RPC, 59

DCOM (Distributed Component Object Model), 1-3

concepts used in, 7-15

Class ID (CLSID), 9
classes, objects, and components, 8-9
Globally Unique Identifiers (GUID), 7-8
inheritance, 12-13
interface, 10-12
interface containment and aggregation, 13-14
IUnknown Interface, 14-15
Monikers, 15
polymorphism and encapsulation, 12

defined, 3-6
and Internet, 115-33
is middleware, 4-5
and MS RPC, 57-58
and other platform support, 101-13

communication-level services, 107-8
concepts supported, 106-7
existing platforms, 102-6
Hewlett Packard, 104
management layer services, 108
miscellaneous services, 109-10
services supported, 107-10
translation services, 109
what is provided?, 106
wrapping, 110-12

and other types of middleware, 6
overall analysis of, 279
services of, 17-25

active data objects, 20
Active Directory, 23
ActiveX, 19
Cedar, 21
COM interface, 17-18
LDAP/ADSI, 23
Microsoft Message Queue Server (MSMQ), 22
Microsoft Transaction Server (MTS), 21
Microsoft’s core Remote Procedure Call (MS RPC) technology, 20
OLE DB, 20
OLEMSGing, 23-24
security services, 23
Windows NT, 18-19

strengths of, 270-71

cheap, 270
good services, 270
integrated, 270
Microsoft, 270-71
visionary, 270

using on MVS, 76-77
weaknesses of, 271-79

complex, 271-72
legacy system integration difficulty, 272-73
new and possibly unstable, 273
not yet enterprise level, 273-74
other platform support is weak, 274-79

and Windows NT, 87-99

DCOM and threads service, 89-90
Distributed File Services (DFS), 93-95
memory management, 95-96
Microsoft’s thread service, 93
multithreading, 89-93
shared memory, 96-97
threads defined, 90
threads usage, 90-92
timing services, 97

DE-Light Web Client, 115
Dead letter queues, 176
Deferred delivery, 181-82
Delivery

assurance, 179-80
deferred, 181-82
guaranteed, 179-80

Delphi 3, 52
Denali, 129
DES (Data Encryption Standard), 63
Developers accessing data types, 204-7
DFS (Distributed File Services), 64, 93-95
Diagnosis, event/problem monitoring, 265-66
Digital Certificate Authority, 223
Digital Certificate Privileges, 225
Digital certificates, 223-24
Directory defined, 241-51
Directory services, 62, 241-60

active directory, 256-58

Active Directory Server Interface (ADSI), 257
Lightweight Directory Access Protocol (LDAP), 257
replication, 256
and repository, 258

directory defined, 241-51
making good, 244-51

file per machine, 245-46
no directory, 249-51
replicated files, 246-47
replication with publish/subscribe, 247-49
single file approach, 245
in summary, 251

Microsoft’s, 251-56
Microsoft’s Registry service, 252-56
and middleware, 244

Distributed application developer options, 130-31
Distributed interprocess communication, 3
Distributed Transaction Processing support; See DTP (Distributed TransactionProcessing) support
Distributed two-phase commit, 152
DMLs (Data Manipulation Languages), 153

database object using, 204-5
dialects of, 195
different, 194-95
translation of, 193-96

DPL (Distributed Program Linking), 75
DSA (Digital Signature Algorithm), 227
DTC (Distributed Transaction Coordinator), 155
DTP (Distributed Transaction Processing), 153

support, 145-61

ACID properties, 146-47
architecture, 155
commit and rollback, 150
database connection pools, 155-56
distributed transaction defined, 147
distributed two-phase commit, 152
locks, 150-52
Microsoft Transaction Server (MTS), 155
middleware, 147-48
MTS in operation, 159-61
platforms, 155
resource managers, 148-49
resource managers supported, 158-59
standards, 152-54, 156-58
in summary, 154-61
transaction defined, 145-46
transaction manager, 155

DTPM (Distributed Transaction Processing Middleware), 24, 147-48
DTPWG (Distributed Transaction Processing Working Group), 153
EBCDIC (Extended Binary-Coded Decimal Interchange Language), 74
Encapsulation and polymorphism, 12
Encryption, 226-28, 238

public key, 226-27
secret key, 227-28

Event Interface defined, 84
Event/problem monitoring

capture, and diagnosis, 265
diagnosis, 266
monitor and capture, 265-66
problem resolution, 266-67

Events, 84

clients of, 207

Executable blocks defined, 9
Explorer

Microsoft Internet, 127-29
tools, 261

Falcon, 163-85
Fault handling, 67-69
Field, HRESULT, 69
File approach, single, 245
File per machine, 245-46
Files

host-specific, 245, 252
replicated, 246-47

FoxPro, Visual, 52
FrontPage, 51
Functions

communications, 79-86
of protection, 218-22
and risks, 220-22

Guaranteed delivery, 179-80
GUID (Globally Unique Identifiers), 7-8, 10
Host-specific files, 245, 252
HRESULT field, 69
HTML (HyperText Mark Up Language), 118-19
HTTP (HyperText Transfer Protocol), 117-18
Hypertext reference, 119
IAdviseSink, 207
IDispatch, 35-37
IDL (Interface Definition Language), 10, 29-30, 56
IETF (Internet Engineering Task Force), 230
IIS (Internet Information Server), 73, 129-30
IMAlloc Interface, 96
Independence, connection, 166
Information Store, 171-72
Inheritance, 12-13
Installation, 263-64
Integrity checking, 228-29, 238
Interfaces, 10-12

COM, 17-18
containment and aggregation, 13-14
engine, 112
IMAlloc, 96
IUnknown, 14-15
language mapping, 206
and MS RPCs, 55-57
outgoing, 207-8
Outgoing or Event, 84
XA, 154

Internet

and DCOM, 115-33

Common Gateway Interface (CGI), 119-21
distributed application developer options, 130-31
Hyper Text Mark Up Language (HTML), 118-19
HyperText Transfer Protocol (HTTP), 117-18
Internet technology explained, 116-22
Java and three-tier architectures, 124-25
Microsoft Internet Information Server (IIS), 129
middleware in practice, 123-24
and middleware vendors, 115-16
middleware vendors’ support, 123-26
Uniform Resource Locators (URLs), 117
Web pages and Java, 121-22

and Microsoft, 126-31
technology explained, 116-22

Internet Explorer, 127-29
Interprocess communication, distributed, 3
Intersite routing, 183
Intrasite routing, 183
IUnknown Interface, 14-15
Java

language, 121
Remote Client services, 115
and three-tier architectures, 124-25
Virtual Machine, 121
and Web pages, 121-22

Jolt, 115
Journaling defined, 173
Kerberos, 231-32
Keys

cryptographic, 223
public, 226-27
secret, 227-28

Known user, 130-31
Language mapping, interface, 206
Languages of development, 44
LDAP (Lightweight Directory Access Protocol), 23, 257
LDAP/ADSI, 23
Load balancing, 139-42
Locks, 150-52
Machine, file per, 245-46
Management, buffer pool, 137-38
Managers

resource, 148-49
shared property, 142

Mapping

interface language, 206
relational, 205

Market, component, 45-47
Memory

leak defined, 95
management

ActiveX, 43-44
DCOM and Windows NT, 95-96

shared, 96-97

Message passing vs. message queuing, 164-67
Messages

contents of, 165-66, 177-78
packing/unpacking data, 65
prioritization, 177
queuing vs. message passing, 164-67
routing, 182-84
status, 196

Microsoft

Active Service Pages, 129
Certificate Server, 233
and database connectivity, 198-210
DCOM (Distributed Component Object Model), 3
Interface Definition Language (IDL), 10, 29-32
and Internet, 126-31
Internet Explorer, 127-29
Management Console, 262
products and services

audit, 283
authentication, user ID, 232
authorization, 237-38
encryption, 238
integrity checking, 238

Registry service, 252-56
Repository, 258
thread service, 93

Middleware

database connectivity, 192-98
DCOM is, 4-5
and directory services, 244
distributed transaction processing, 147-48
miscellaneous types of, 6
in practice, 123-24
vendors, 115-16
vendors’ support, 123-26

MIDL (Microsoft’s IDL), 29

compilers, 30-32

Models, translation of underlying, 193-94
Monikers defined, 15
Monitor and capture, 265-66
MQSeries, 154
MS RPC (Microsoft’s core Remote Procedure Call), 53-69

and DCE RPC, 59
DCE services, 61-64

DCE RPC, 62-63
Directory service, 62
Distributed File Service (DFS), 64
Security services, 63-64
Threads service, 63
Time service, 61-62

and DCOM, 57-58
Distributed Computing Environment (DCE) defined, 59-60
function of, 55
and interfaces, 55-57
Remote Procedure Call (RPC) defined, 53-54
RPC service functions, 64-69

coordinating transmission, 67
handling faults, 67-69
handling network calls, 67
packing into and unpacking from buffers, 66
packing/unpacking data in message, 65
session handling, 67
translation of data formats, 65-66
transmitting message, 66-67

technology, 20

MSMQ (Microsoft Message Queue Server), 22, 163-85, 265

background, 168
Backup Site Controller (BSC), 171
broadcasting and multicasting, 178-79
Client Software, 171
deferred delivery, 181-82
defined, 167-68
delivery assurance, 179-80
guaranteed delivery, 179-80
Information Store, 171-72
main concepts and modules, 169
main modules, 170-71
message content, 165-66, 177-78
message passing vs. message queuing, 164-67
message prioritization, 177
message routing, 182-84
miscellaneous functions in, 184
performance monitoring, 267-68
platforms, 168-69
polling, pulling, and notification, 176-77
Primary Enterprise Controller (PEC), 170
Primary Site Controller (PSC), 170
queues, 172-76
routing servers, 170-71
session handling, 178
Site Gate, 171
sites and connected networks, 169-70
uses of service, 166-67

applications needing strictly ordered processing, 167
replacing batch transaction systems, 167
replacing paper, 167

MSMQ, Performance Monitoring, 267-68
MTS (Microsoft Transaction Server), 21, 135-62, 155

asynchronous processing support, 143-45
automatic multithreading, 138-39
background, 135-36
buffer pool management, 137-38
distributed transaction processing support, 145-61
load balancing, 139-42
in operation, 159-61
services provided, 136-37
shared property manager, 142
triggering, 143

Multicasting

and broadcasting, 83-86, 178-79
defined, 84

Multithreading, 89-93

automatic, 138-39

MVS, 73, 76-77
Name translation, 193
NDR (Network Data Representation), 65
Networks, sites and connected, 169-70
NNTP (News Transfer Protocol), 117
Nonrepudiation, 229
Notification defined, 177
Notifications, 84
NT, Windows; See Windows NT
Object oriented storage mechanism, 209
Objects

defined, 9
storage, 209
stream, 209

OCG (Office Components Group), 45
ODBC (Open Database Connectivity), 20, 198-203

database object using, 205

ODSI (Open Directory Service Interface), 257
OLE DB, 203-4

and Active Data Objects, 187-211

accessing data, 208
back to basics-storing data, 187-92
database connectivity middleware, 192-98
developers accessing data types, 204-7
Microsoft and database connectivity, 198-210
Open Database Connectivity (ODBC), 198-203
outgoing Data Objects, 207-8
outgoing interfaces, 207-8
stream and storage objects, 209-10

OLEMSGing, 23-24
OLETX, 21, 156-58
One-to-one communication defined, 83
One-way communication, 83
ORB (Object Request Brokers), 7
OSF (Open Software Foundation), 59-60
OSI TP, 158
OTS (Object Transaction Services), 21
Outgoing Data Objects, 207-8
Outgoing or Event Interface defined, 84
Outgoing interfaces, 207-8
Packing/unpacking data in message, 65
Pages, static, 129
Passwords, and user names, 222
PC/SC Workgroup (Personal Computer/SmartCard Workgroup), 224
PCT (Private Communication Technology), 230
PEC (Primary Enterprise Controller), 170
Performance improvement, 91
Performance Monitoring, 267-68

MSMQ, 267-68
Transaction Server, 267-68
Windows NT, 267-68

Platform support, DCOM and other, 101-13
Platforms, 155, 168-69
POEMs (PLATINUM Open Enterprise Management System), 243
Point-to-point communication defined, 83
Polling defined, 176
Polymorphism and encapsulation, 12
Pools, database connection, 155-56
Persistent storage mechanism, 209
Private queues, 176
Problem monitoring, capture, and diagnosis, 265
Processing

applications needing strictly ordered, 167
asynchronous, 90-91, 163

Products

CORBA, 245
RPC, 245
Visigenic VisiBroker, 249

Properties, ACID, 146-47
Property manager, shared, 142
Protection

functions of, 218-22
mechanisms of, 222-30

audit, 229-30
authentication, 222-24
authorization, 224-25
encryption, 226-28
integrity checking, 228-29
nonrepudiation, 229

Proxy object defined, 32
PSC (Primary Site Controller), 170
Public key, 226-27
Public queues, 174-76
Publish and subscribe, 247-49
Pulling defined, 176-77
QueryInterface defined, 14
Queues, types of, 172-76

dead letter, 176
private, 176
public, 174-76
receipt, 174
target, 174
transmission, 172-74

Receipt queues, 174
Reduction, 15
Reference, hypertext, 119
Registry service, 251
Relational mapping, 205
Release, 15

method, 81

Replicated files, 246-47
Replication, 256
Repository, 258
Request, 84
Request/reply defined, 83
Resource managers, 148-49
Resources, DTPMs coordinate multiple, 148
Restores, 150
Risks

and functions, 220-22
security

of data and functions on machines, 214-15
of data going across network, 214
rationale for, 215-17
reality of risks, 217
who are at risk, 213-17

Rollback, and commit, 150
Routing

intersite, 183
intrasite, 183
message, 182-84
servers, 170-71

RPC (Remote Procedure Call)

defined, 53-54
products, 245

Running Object Table, 253
Runtime environment, 106
Sandbox, 128

defined, 122

SCM (Service Control Manager), 254-55
SDK (Software Development Kit), 106
Secret keys, 227-28
Security, 213-40

functions of protection, 218-22
functions and risks, 220-22
mechanisms of protection, 222-30

audit, 229-30
authentication, 222-24
authorization, 224-25
encryption, 226-28
integrity checking, 228-29
nonrepudiation, 229

Microsoft’s products and services, 232-38

audit, 283
authentication, 232-36
authorization, 237-38
encryption, 238
integrity checking, 238

policy setting, 217-18
risks

of data and functions on machines, 214-15
of data going across network, 214
rationale for, 215-17
reality of risks, 217
who are at risk, 213-17

services, 23, 63-64
third-party security products

Cryptographic Service Providers (CSPs), 230-31
Internet EngineeringTask Form (IETF), 230
kerberos, 231-32
Microsoft uses, 230-32
Secure Sockets Layers (SSLs), 230

Select Component Manager, 52
Semantics of commands, 195-96
Server defined, 29
Servers, routing, 170-71
Services, directory, 241-60
Session handling, 178
Shared memory, 96-97
Shared property manager, 142
Single file approach, 245
Site Gate, 171
SMART Agents, 249
Smart cards, 224, 234
Software

client, 171
systems, 242

Source code, 39
SSLs (Secure Sockets Layers), 230
Standardization and ActiveX, 44-45
Standards, 156-58
Static pages, 129
Status codes and messages, 196
Storage

of data, 187-92
mechanism

object oriented, 209
persistent, 209

objects, 209

Stream objects, 209
Stub defined, 33
Subscribe and publish, 247-49
SYNCPOINT, 158
Syntax, variations in, 195-96
Systems software, 242
Target queues, 174
Thor, 208
Thread service, Microsoft’s, 93
Threads

defined, 90
service, 63
support of, 42-43
usage, 90-92

Time service, 61-62
Timing services, 97
TIP (Transaction Internet Protocol), 158
Tools

ActiveX, 47-48, 52
Explorer, 261
range of, 261-63

TransAccess, 21-22, 74
Transaction manager, 155
Transaction processing support, distributed, 145-61
Transaction Server, Performance Monitoring, 267-68
Translation

of DML, 193-96
name, 193
process of, 193-94
of underlying models, 193-94

Transmission queues defined, 172-74
Triggering, 79-83, 143
TTP (Trusted Third Party), 223
Type Library, COM, 35
UDF (Uniform Data Transfer), 66
Unified Modeling Language, 258
Unknown user, 130-31
URLs (Uniform Resource Locators), 117
Users

IDs, 232
known, 130-31
names and passwords, 222
unknown, 130-31

UUID (Universal Unique Identifiers), 8
VCL (Visual Component Library), 52
Vendors, middleware, 115-16
Viper, 135-62
Visigenic VisiBroker product, 249
Visual C++, 49-50
Visual Basic 5.0, 49
Visual FoxPro, 52
Visual Interdev, 50-51
Visual J++, 50
Visual Studio 97, 48-52
Vtables, 33-35
Win32 APIs, 41-42
Windows NT, 18-19

about, 87-88
Performance Monitoring, 267-68

Windows NT and DCOM, 87-99

Distributed File Services (DFS), 93-95
memory management, 95-96
multithreading, 89-93

DCOM and threads service, 89-90
Microsoft’s thread service, 93
summary, 93
threads defined, 90
threads usage, 90-92

shared memory, 96-97
timing services, 97

Wrapping, 110-12
XA, 156-59

interface, 154
standard, 21


Table of Contents