About Apex InfoTech Information Services Products Consulting Online Courses Certifications Course Schedule Reserve your seat Search Apex InfoTech Home Page
Course ScheduleSearch by Course NumberPrint this documentEmail this documentRegister for this course

Building Distributed Applications with COM+ Services and Microsoft Visual C++

Course 2099: 5 days; Instructor-Led

Introduction
The goal of this course is to provide developers with a solid grounding in COM+ programming techniques and best practices. It is designed for experienced C++ programmers who want to use Microsoft® Windows® 2000 and COM+ to build high performance, scalable, and secure distributed applications. Practical work will revolve around the use of the Active Template Library (ATL) for component development.

Audience
This course is intended for C++ developers with COM and possibly Microsoft Transaction Server (MTS) development experience, who are responsible for building high performance, scalable, and secure distributed applications on the Microsoft Windows 2000 platform.

At Course Completion
After completing this course, students will be able to:
List the services that are provided by COM+ and explain the problems that each service addresses.
Create, administer, and deploy a COM+ application by using the Component Services tool and configuration interfaces.
Describe the COM+ internal system architecture with respect to object activation, deactivation, context, and interception.
Develop distributed transactional COM+ components and exploit object pooling for enhanced performance.
Use the Compensating Resource Manager (CRM) to encompass a non-transactional resource, such as the file system within a COM+ transaction.
Develop systems that take advantage of loosely coupled asynchronous communications by using COM+ Queued Components.
Exploit the COM+ loosely coupled event system for information dissemination in a distributed environment.
Apply declarative and programmatic security techniques to secure a COM+ application.
Describe how COM+ manages concurrency, and list the benefits of the neutral-threading model.

Prerequisites
Before attending this course, students must:
Have a solid understanding of COM fundamentals with at least six months of hands-on working experience developing components by using C++ and ATL.
Be Interface Definition Language (IDL) literate.
Understand the three-tier distributed application design model.

Microsoft Certified Professional Exams
There is no MCP exam associated with this course.

Student Materials
The student kit includes a comprehensive workbook and other necessary materials for this class.
The following software is provided in the student kit:

Macromedia Flash plug-in for Microsoft Internet Explorer
Three Microsoft Platform SDK sample applications:
CatalogExplorer
COMSpy
Visual Studio Analyzer COM+ Event Bridge

Course Outline

Module 1: Introducing COM+
The following topics are covered in this module:
COM+ Overview
An Overview of the Web-Based Retail Application
After completing this module, students will be able to list the inherent problems with distributed systems development that COM+ addresses and list the COM+ services that address each of these issues. This includes:

Listing the advantages of a three-tier approach to distributed systems development.
Listing the services provided by COM+.
Listing the supporting services relied upon by COM+.
Defining the relationship between COM+ applications, components, and classes.

Module 2: Administering and Debugging COM+ Applications
The following topics are covered in this module:
Using the Component Services Tool
Programmatic Administration
Debugging COM+ Applications
Handling Errors in COM+ Applications
Deploying COM+ Applications
After completing this module, students will be able to create, configure, debug, and deploy a COM+ application. This includes:

Creating and configuring a COM+ application by using the Component Services administration tool.
Making programmatic changes to the COM+ catalog by using the COM+ administration objects.
Debugging a COM+ application.
Handling errors in COM+ applications.
Deploying a COM+ application.

Module 3: COM+ Object Management
The following topics are covered in this module:
Contexts and Interception
Object Activation and Deactivation
Object Construction Strings
Object Pooling
After completing this module, students will be able to describe the lifecycle of an object in the COM+ environment and understand how interception helps COM+ add value to configured components. This includes:

Using object constructor strings.
Implementing IObjectControl to receive object activation and deactivation notifications.
Configuring Just-in-Time (JIT) activation and object pooling.

Module 4: COM+ Transactions and State Management
The following topics are covered in this module:
Introduction to Distributed Transactions
COM+ Transactions
Programming COM+ Transactions
State Management and the Shared Property Manager
After completing this module, students will be able to develop transactional COM+ components and exploit object pooling for enhanced performance. This includes:

Configuring a component's transactional attribute by using Component Services.
Monitoring transaction activity.
Managing transactions programmatically by using the IObjectContext and IContextState interfaces.
Developing transactional COM+ components and exploiting object pooling for enhanced performance.
Using the Shared Property Manager (SPM) to manage shared-transient state.

Module 5: The Compensating Resource Manager
The following topics are covered in this module:
The Compensating Resource Manager (CRM)
Developing CRM components
After completing this module, students will be able to use the Compensating Resource Manager (CRM) to combine a non-transactional resource, such as the file system, into a COM+ transaction. This includes:

Configuring COM+ applications for CRM support.
Developing a CRM worker component.
Developing a CRM compensator component.
Monitoring CRMs as they participate in a transaction.

Module 6: COM+ Queued Components
The following topics are covered in this module:
Introduction to Queuing
Developing Queued Components
Queued Components and Transactions
After completing this module, students will be able to use COM+ Queued Components to exploit loosely coupled asynchronous messaging. This includes:

Installing and configuring a queued component in a COM+ application.
Creating an instance of a queued component by using the queue and new monikers.

Module 7: COM+ Loosely Coupled Events
The following topics are covered in this module:
Event Handling Models
Publisher and Subscriber Architecture
Working With Events
Event Filtering
Combining Queued Components with Events
Monitoring COM+ Applications
After completing this module, students will be able to use the COM+ Loosely Coupled Event (LCE) system to notify interested parties that information or data has changed. This includes:

Creating and registering an event class.
Implementing and registering a subscriber component.
Developing an event publisher.
Implementing subscriber filtering.
Implementing publisher filtering.
Publishing events asynchronously.
Delivering events asynchronously.
Monitoring a COM+ application by subscribing to COM+ system events.

Module 8: Securing COM+ Applications
The following topics are covered in this module:
COM+ Role-Based Security
Middle-Tier Access Control
IIS as a COM+ Client
After completing this module, students will be able to use declarative and programmatic techniques to secure a COM+ application. This includes:

Using roles to establish an authorization policy for a COM+ application.
Implementing programmatic security by using security call context information.
Accessing upstream client security details.

Module 9: COM+ Concurrency Management
The following topics are covered in this module:
Apartments pre-Windows 2000
Windows 2000 Apartments and Contexts
Synchronization in COM+
After completing this module, students will be able to understand how COM+ manages concurrent access to objects and compare this to how concurrency management was implemented in COM prior to Windows 2000. This includes:

Configuring components to use COM+ synchronization.
Using system application programming interfaces (APIs) to marshal interface pointers across context boundaries.
Using the Free Threaded Marshaler (FTM) appropriately.
Listing the advantages of the Thread Neutral Apartment (TNA).

For more information or to give feedback, send e-mail to info@OneApex.com or call 949-597-2100