Platform Overview

The platform is the heart of Microsoft CRM. When you use the Microsoft CRM SDK, you are building on top of this system. The Microsoft CRM platform supports smaller deployments and can scale for Application Server Providers (ASP) models as well. The focus of the security model is to provide protection of the platform from unauthorized access across the Web. The main platform components are:

  • The database
  • System services (workflow)
  • The object model
  • A query processor that supports the object model
  • Secured spontaneous queries that use an Extensible Markup Language (XML) fetch statement to protect the physical database

When you develop an application using the Microsoft CRM platform, you use messages formatted as XML strings to communicate with the underlying platform layer. You use SOAP to communicate between an application and the platform.

The platform is responsible for creating domain-specific objects. In Microsoft CRM, these objects include contact, lead, opportunity, account, and business unit, among others. The goal of the platform is to implement the service-specific rules by manipulating and combining the underlying domain objects.

The platform does not impose business-specific logic. This layer imposes only generic domain constraints. It contains the building blocks for an application, but by itself is nothing more than a collection of related objects. However, you can assume that the interaction between those objects within the domain implements more extensible logic, such as the quote-to-order-to-invoice processing and pricing logic.

The platform does more than just contain the Microsoft CRM business objects. It is responsible for controlling access to objects through security, for controlling access to the database, and for raising events for workflow processes and custom business logic implementations. Think of the platform layer as providing all of the "hard" plumbing work necessary to implement a complete Microsoft CRM application. The platform layer provides for both inbound and outbound e-mail message processing through the CRM-Exchange E-mail Router. The platform also implements a replaceable pricing module for opportunities, quotes, orders, and sales invoices.

Data Tier

The data tier is the lowest level of the platform and consists of a database (loosely speaking) and a well-defined data access layer. The data management tier in Microsoft CRM supports Microsoft SQL Server 2000 as the primary data store. The data access layer provides a consistent programming interface for the service developer, which abstracts platform business logic from the underlying data source. The platform tier is the only direct consumer of this layer.

The data store hides the data access mechanism and exposes a common interface, in this case the Transact-SQL programming language. Microsoft CRM uses an internal object-based data management layer to shield the platform code from the data access code. Just as it is not possible for an application developer to directly access the database; it is also not possible for a platform developer. The CRMQuery class, along with the Fetch query language, exposes the object-based data management construct to the application.

Access the Platform: An Example

The following steps illustrate how the system handles a sample request from an application:

  1. A user submits a request to create a new account.
  2. The request goes through the platform API that passes the user credentials.
  3. The platform API calls the object model that verifies user authentication.
  4. The object model then requests the logical properties of an object that is accessible by the caller.
  5. Then, the query builder requests the building of a Transact-SQL query.
  6. The query builder gets the request, uses the metadata to build a physical query, and then returns the Transact-SQL statement to the caller.
  7. The query then passes to the data access layer, which returns a property bag to the caller.
  8. Then, the data serializes to XML, back to the API, for consumption by the application.

The following sections provide more information to help you understand this example.

© 2005 Microsoft Corporation. All rights reserved.