| 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