You are on page 1of 7

Microsoft Dynamics CRM Architecture Overview

The platform is the heart of the Microsoft Dynamics CRM system. When you use the Microsoft
Dynamics CRM SDK, you are building on top of this system. The Microsoft Dynamics CRM platform
supports smaller deployments and can scale for application service provider models also. The security
mode protects the platform from unauthorized access across the Web. The main platform components are
as follows:

Microsoft SQL Server database

Web services

System services (workflow, metadata, and integration)

A query processor that supports the entity model

Secured ad hoc queries that use an XML fetch statement to protect the physical database

Plug-ins for business logic extensibility

Reporting services

When you develop an application that uses the Microsoft Dynamics CRM server, you use Web services to
communicate with the underlying platform layer.
The server platform is responsible for creating domain-specific objects. In Microsoft Dynamics CRM,
these objects include contact, lead, opportunity, account, business unit, and more. 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, the interaction between those objects within the domain can be
assumed to implement more extensible logic such as the quote-to-order-to-invoice processing and pricing
logic.
The server platform also controls access to objects through security, controls access to the database, and
raises events for workflow processes and custom business logic implementations. The platform layer
provides for both incoming and outgoing e-mail processing through Microsoft Exchange.

Feature Overview
The following topics provide an overview of significant features and capabilities of Microsoft Dynamics
CRM. The features described are related to security, organization and business structure, the entity model,
the database, workflow, and extending the system through custom business logic.
Security
The Microsoft Dynamics CRM SDK provides a security model that provides improved data integrity and
privacy, and also supports efficient data access, teamwork, and collaboration.
Organization and Business Structures
There are three primary entities within the organization. These are users, teams, and business units. Users
represent people who use the Microsoft Dynamics CRM application. Teams are arbitrary groups of users
created and defined by a user in an organization. Business units are the structural units of an organization,
as defined by a user in the organization. They are the primary container entity within the organizational
hierarchy. It is the business unit structure that determines and defines the concepts of Basic, Local, Deep,
and Global access. For more information, see Microsoft Dynamics CRM Security and Access Levels
sections. The following diagram is an example of a Microsoft Dynamics CRM business unit structure for
an organization.

The organization in the previous diagram contains six business units in a simple hierarchy. The
business units directly underneath the organization are unrelated in any apparent structural way
except that they all belong to the same organizational structure.
The two business units labeled Department A1 and Department A2 are child business units of
Business A. These two business units have a special relationship with regard to users parented to
Business A. They serve up business objects to users within Business A who have "Deep" access.
Notice that you cannot construct matrix organizations within the Microsoft Dynamics CRM
organizational structure.
Users within Microsoft Dynamics CRM must be "parented" to a business unit and cannot be
parented to the organization object itself. In the previous diagram, this means that users can be
located at any node except the top-level node labeled Organization.
Because of the multi-tenant architecture of Microsoft Dynamics CRM, multiple organizations
can be hosted on a Microsoft Dynamics CRM server.

Entity Model
The entity model is your view to the objects that are used in Microsoft Dynamics CRM. It
supports Microsoft Dynamics CRM requirements for each entity in the system. In Microsoft
Dynamics CRM, the platform consists of several high-level areas: sales force automation,
customer service and support, scheduling, and marketing automation.

Database
Microsoft Dynamics CRM is a metadata-driven product. The metadata layer basically abstracts
the underlying data storage details, such as schema and data access, from the higher level
constructs of domain-logic implementation and user interface. The metadata can be thought of as
a description of the underlying data structures that controls how the application (platform and

user interface) operates and displays itself. This version contains new APIs that allow you to add
or update the metadata.
The platform uses the metadata to buffer itself from changes to the underlying database
structures. If a table definition changes, for example, when columns are added or removed, the
platform code continues to operate without any performance or degradation. This means that
Microsoft Dynamics CRM can be altered significantly to meet a particular business or vertical
definition and still operate without interruption.
The Microsoft Dynamics CRM platform is not the only consumer of the metadata. The
application layer uses the rules in the metadata to present the exact user experience offered by
vertical solutions and customizations. These rules include attribute type definitions, entity
definitions, and attribute context rules. Attribute metadata describes the underlying type structure
of a given attribute. This includes the fundamental data type (such as string, integer, or date)
and the information that effectively limits the attribute's type definition (such as its size and
range values). Attribute context rules describe when and how a given attribute can be used. For
example, some attributes are write-once, such as order numbers. Other attributes are always readonly and are supplied by the platform itself. The metadata captures all these rules about context.
It also captures business-defined rules, such as business-recommended and business-required
attributes.

Workflow
The workflow feature supports extending the functionality of the Microsoft Dynamics CRM
system by enabling the user to create and execute custom business processes. The workflow
feature is built on top of Windows Workflow Foundation, which provides the programming
model, run-time engine, and tools for quickly building workflows.

Business Logic Extensions


Microsoft Dynamics CRM 4.0 provides an extension mechanism for implementing custom
platform-based business logic. Developers are not limited to creating custom business logic
through workflow processes alone. They can also construct business logic that is integrated with
Microsoft Dynamics CRM and executes in response to a particular system event for a specific
entity. Be aware that these business logic extensions are not supported in Microsoft Dynamics
CRM Live.
This extension mechanism supports an event handler interface that is based on a simple pipeline
execution model. The pipeline model allows for event handlers, also known as plug-ins, to be
executed before or after the core operation of the system. The platform metadata stores
information about each entity in the system. This information about entities can be used to track
the list of event handlers, the class names, and whether a given handler is required for an action.
For example, the account object can have several registered handlers. These handlers are stored
in call order, which is determined by priority. When an action occurs caused by user interaction
with the Web application or a Web service call, the platform checks the metadata for registered

event handlers. If a handler is registered for notification, the platform executes a well defined
event handler method, passing it run-time information.

APIs
The platform APIs are your view to the logical Microsoft Dynamics CRM system. The APIs are
somewhat flat and require knowledge of the Microsoft Dynamics CRM Entity Model.
Extensibility Architecture

You can customize Microsoft Dynamics CRM in different areas as shown in the following
diagram. These customization points are shown in the color orange in the diagram.

The previous diagram illustrates the following features:


Customization Tools: Customize, add, and rename entities.
ISV Script/Form Customization: Customize forms by using the client-side scripting.

ISV Code: Add your own features to the application by using the application configuration file
and the SDK.
Custom Reports: Use filtered views to create custom reports within Microsoft Dynamics CRM
and directly in Microsoft Excel, Microsoft Access, and more.
Import/Export: Export your customization for installation into a production environment.
Plug-ins: Augment the Microsoft Dynamics CRM business logic with your own plug-ins, for
both online and offline applications. These extensions can also be used for integration to external
systems. In the previous version, this feature was known as callouts.
Workflow Custom Activities: Call out to external systems from your workflow rules. Create
custom workflow activities that can be used by your workflow rules. In the previous version, this
feature was known as workflow .NET assemblies.
In addition, the following capabilities are also available:
Microsoft Dynamics CRM for Microsoft Office Outlook Customization: Customize your
offline client by using the configuration file and custom code that uses the SDK.

You might also like