Microsoft Dynamics CRM is a web-based application that uses a multi-tier architecture enabling the platform to be extended and scaled. Microsoft Dynamics CRM is built on the following components;
- 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.
MS Dynamics CRM provides a set of APIs for interaction between the database and application and to also provides all the building blocks for the Microsoft Dynamics CRM application development. The following diagram illustrates the Microsoft CRM architecture.
The Business Entity Components part of the platform is responsible for creating domain-specific objects. Examples of domain-specific objects in Microsoft Dynamics CRM include Contact, Lead, Opportunity, Account, and Business Unit. These objects are created in response to instructions from the Application platform, ultimately from the Microsoft Dynamics standard UI or from customization code.
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