Chapter 1. Architectural Overview

In this chapter

Introduction
Microsoft Dynamics AX five-layer solution architecture
Microsoft Dynamics AX application platform architecture
Microsoft Dynamics AX application meta-model architecture

Introduction

The Microsoft Dynamics AX solution is an enterprise resource planning (ERP) solution that integrates financial resource management, operations resource management, and human resource management processes that can be owned and controlled by multinational, multi-company, and multi-industry organizations, including the public sector. The Microsoft Dynamics AX solution encompasses both the Microsoft Dynamics AX application and the Microsoft Dynamics AX application platform on which it is built. The Microsoft Dynamics AX application platform is designed to be the platform of choice for developing scalable, customizable, and extensible ERP applications in the shortest time possible, and for the lowest cost. The following key architectural design principles make this possible.

  • Separation of concerns A Microsoft Dynamics AX end-to-end solution is delivered by many development teams working both inside Microsoft, inside the Microsoft partner channel, and inside end-user IT support organizations. The separation of concerns principle realized in the Microsoft Dynamics AX architecture makes this possible by separating the functional concerns of a solution into five globalized, secure layers. This separation reduces functional overlap between the logical components that each team designs and develops.

  • Separation of processes A Microsoft Dynamics AX end-to-end solution scales to satisfy the processing demands of a large number of concurrent users. The separation of processes principle that is realized in the Microsoft Dynamics AX architecture makes this possible by separating processing into three-tiers—a data tier, a middle tier, and a presentation tier. The Microsoft Dynamics AX Windows client, the Microsoft Dynamics AX Enterprise Portal web client, and the Microsoft Office clients are components of the presentation tier; the Microsoft Dynamics AX Application Object Server (AOS), the Microsoft Dynamics AX Enterprise Portal extensions to Microsoft SharePoint Server, and Microsoft SQL Server Reporting Services (SSRS) are components of the middle tier; the SQL Server and Microsoft SQL Server Analysis Services (SSAS) are components of the data tier of the Microsoft Dynamics AX platform architecture.

  • Model-driven applications A Microsoft Dynamics AX application team can satisfy application domain requirements in the shortest time possible. The model-driven application principle that is realized in the Microsoft Dynamics AX architecture makes this possible by separating platform-independent development from platform-dependent development, and by separating organization-independent development from organization-dependent development. With platform-independent development, you can model the structure and specify the behavior of application client forms and reports, of application object entities, and of application data entities that run on multiple platform technologies such as the Microsoft Dynamics AX Windows client, SharePoint Server, SQL Server, and the Microsoft .NET Framework. With organization-independent development, you can use domain-specific reference models, such as the units of measure reference model; domain-specific resource-models, such as the person, product, and location models; and domain-specific workflow models, such as approval and review models, which are relevant to all organizations.

Microsoft Dynamics AX five-layer solution architecture

The Microsoft Dynamics AX five-layer solution architecture, illustrated in Figure 1-1, logically partitions a Microsoft Dynamics AX solution into an application platform layer, a foundation application domain layer, a horizontal application domain layer, an industry application domain layer, and a vertical application domain layer. The components in all architecture layers are designed to meet Microsoft internationalization, localization, and security standards, and all layers are built on the Microsoft technology platform.

Note

The layers in the Microsoft Dynamics AX five-layer architecture are different from the model layers that are part of the Microsoft Dynamics AX customization framework described later in this book. Architectural layers are logical partitions of an end-to-end solution. Customization layers are physical partitions of application domain code. For more information, see Chapter 21.

The Microsoft Dynamics AX application platform and application domain components are delivered on the Microsoft technology platform. This platform consists of the Windows client, the Office suite of products, Windows Server, SQL Server, SSAS, SSRS, SharePoint Server, the Microsoft ASP.NET web application framework, the .NET Framework, and the Microsoft Visual Studio integrated development environment (IDE).

Microsoft Dynamics AX five-layer architecture.

Figure 1-1. Microsoft Dynamics AX five-layer architecture.

The following logical partitions are layered on top of the Microsoft technology platform:

  • Layer 1: Application platform layer The application platform layer provides the system frameworks and tools that support the development of scalable, customizable, and extensible application domain components. This layer consists of the MorphX model-based development environment, the X++ programming language, the Microsoft Dynamics AX Windows client framework, the Enterprise Portal web application framework, the AOS, and the application platform system framework. The architecture of the components in the application platform layer is described in the following section.

  • Layer 2: Foundation application domain layer The foundation application domain layer consists of domain-specific reference models in addition to domain-specific resource modeling, policy modeling, event documenting, and document processing frameworks that are extended into organization administration and operational domains. Examples of domain-specific reference models include the fiscal calendar, the operations calendar, the language code, and the unit of measure reference models. Examples of domain-specific resource models include the party model, the organization model, the operations resource model, the product model, and the location model. The source document framework and the accounting distribution and journalizing process frameworks are also part of this layer. Chapter 19, describes the conceptual design of a number of the frameworks in this layer.

  • Layer 3: Horizontal application domain layer The horizontal application layer consists of application domain workloads that integrate the financial resource, operations resource, and human resource management processes that can be owned and controlled by organizations. Example workloads include the operations management workload, the supply chain management workload, the supplier relationship management workload, the product information management workload, the financial management workload, the customer relationship management workload, and the human capital management workload. The Microsoft Dynamics AX application can be extended with additional workloads. (The workloads that are part of the Microsoft Dynamics AX solution are beyond the scope of this book.)

  • Layer 4: Industry application domain The industry application layer consists of application domain workloads that integrate the financial resource, operations resource, and human resource management processes that are specific to organizations that operate in particular industry sectors. Example industries include discrete manufacturing, process manufacturing, distribution, retail, service, and public sector. Workloads in this layer are customized to satisfy industry-specific requirements.

  • Layer 5: Vertical application domain The vertical application layer consists of application domain workloads that integrate the financial resource, operations resource, and human resource management processes that are specific to organizations that operate in a particular vertical industry and to organizations that are subject to local customs and regulations. Example vertical industries include beer and wine manufacturing, automobile manufacturing, government, and advertising professional services. Workloads in this layer are customized to satisfy vertical industry and localization requirements.

Microsoft Dynamics AX application platform architecture

The architecture of the Microsoft Dynamics AX application platform supports the development of Windows client applications, SharePoint web client applications, Office client integration applications, and third-party integration applications. Figure 1-2 shows the components that support these application configurations. This section provides a brief description of the application development environments, and a description of the components in each of the data, middle, and presentation tiers of the Microsoft Dynamics AX platform architecture.

Application development environments

The Microsoft Dynamics AX application platform includes two model-driven application development environments:

  • Microsoft Dynamics AX MorphX development environment Use this development environment to develop data models and application code using the Application Object Tree (AOT) application modeling tool and the X++ programming language. This development environment accesses Microsoft Dynamics AX application server services through Microsoft Remote Procedure Call (RPC) technology.

  • Visual Studio Use this development environment to develop Microsoft .NET plug-ins and extensions for Microsoft Dynamics AX clients, servers, and services; to develop for Enterprise Portal, and to develop SSRS reports. This development environment accesses the Microsoft Dynamics AX application server services through RPC.

Architecture of Microsoft Dynamics AX.

Figure 1-2. Architecture of Microsoft Dynamics AX.

Data tier of the Microsoft Dynamics AX platform

The SQL Server database is the only component in the data tier. The database server hosts the SharePoint Server content and configuration databases, the Microsoft Dynamics AX model and application database, the SSRS database, and the SSAS database.

Middle tier of the Microsoft Dynamics AX platform

The middle tier includes the following components:

  • AOS The AOS executes MorphX application services that are invoked through RPC technology and Windows Communication Foundation (WCF) technology in the .NET Framework. The AOS can be hosted on one computer, but it can also scale out to many computers when additional concurrent user sessions or dedicated batch servers are required.

  • .NET Framework components These components can be referenced in the AOT so that their application programming interfaces are accessed from X++ programs. The Windows Workflow Foundation (WWF) component is integral to the Microsoft Dynamics AX workflow framework, and WCF is integral to the Microsoft Dynamics AX application integration framework.

  • SQL Server Analysis Services (SSAS) These services process requests for analytics data hosted by the SQL Server component in the data tier.

  • SSRS and Microsoft Dynamics AX reporting extensions The reporting extensions provide SSRS with features that are specific to the Microsoft Dynamics AX application platform. These extensions access the AOS through WCF services and access SSAS through HTTP and HTTPS.

  • Microsoft Dynamics AX Enterprise Portal framework This framework extends the SharePoint application platform with features that are specific to the Microsoft Dynamics AX application platform. The Enterprise Portal framework composes SharePoint content with Microsoft Dynamics AX content accessed from the AOS through the .NET Business Connector and RPC, and content accessed from SSAS and SSRS through HTTP and HTTPS. Enterprise Portal is typically hosted on its own server or in a cluster of servers.

  • Microsoft Dynamics AX Help web service This web service processes requests for Help content.

  • Web services hosted by Microsoft Internet Information Services (IIS) The Microsoft Dynamics AX system services can be deployed to and hosted by IIS.

  • Application Integration services These services provide durable message queuing and transformation services for integration clients.

Presentation tier of the Microsoft Dynamics AX platform

The presentation tier consists of the following components:

  • Windows client This client executes Microsoft Dynamics AX MorphX and .NET programs developed in MorphX and Visual Studio. The client application communicates with the AOS primarily by using RPC. The client composes navigation, action pane, area page, and form controls for rapid data entry and data retrieval. Form controls have built-in data filtering and search capabilities and their content controls are arranged automatically by the Intellimorph rendering technology. The client additionally hosts role center pages rendered in a web browser control.

  • Enterprise Portal web client This client executes MorphX application models, X++ programs, and .NET Framework programs developed in the MorphX development environment, Visual Studio, and the SharePoint Server framework. Enterprise Portal is hosted by the Microsoft Dynamics AX runtime, the ASP.NET runtime, and the SharePoint runtime environments. SharePoint and ASP.NET components communicate by means of the Microsoft Dynamics AX .NET Business Connector.

  • Office clients The Microsoft Word client and Microsoft Excel client are extended by add-ins that work with the Microsoft Dynamics AX platform.

  • Third-party clients These clients integrate with the Microsoft Dynamics AX platform by means of integration service components such as the file system, Microsoft Message Queuing (MSMQ), Microsoft BizTalk Server, and a WCF adaptor.

Microsoft Dynamics AX application meta-model architecture

Microsoft Dynamics AX application meta-model architecture is based on the principle of model-driven application development. You declaratively program an application by building a model of application components instead of procedurally specifying their structure and behavior with code. The Microsoft Dynamics AX development environment supports both model-driven and code-driven application development.

A model of an application model is called a meta-model. Figure 1-3 shows the element types in the Microsoft Dynamics AX application meta-model that you use to develop Microsoft Dynamics AX Windows client applications.

Note

To keep the diagram simple, the figure does not list all type dependencies on model element types.

Element types of the Microsoft Dynamics AX meta-model for developing Microsoft Dynamics AX Windows client applications.

Figure 1-3. Element types of the Microsoft Dynamics AX meta-model for developing Microsoft Dynamics AX Windows client applications.

Application data element types

The following model element types are part of the Microsoft Dynamics AX application data meta-model:

  • Base enum Use a base enumeration (base enum) element type to specify value type application model elements whose fields consist of a fixed set of symbolic constants. For example, you can create a base enum named WeekDay to name a set of symbolic constants that includes Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday.

  • Extended data type Use an extended data type element type to specify value type application model elements that extend base enums, in addition to string, boolean, integer, real, date, time, UtcDateTime, int64, guid, and container value types. The Microsoft Dynamics AX runtime uses the properties of an extended data type to generate a database schema and to render user interface controls. For example, you could specify an account number extended data type as an extension to a string value type that is limited to 10 characters in length, and that is described using the Account number label when bound to a user interface text entry control. Extended data types also support inheritance. For example, an extended data type that defines an account number can be specialized by other extended data types to define customer and vendor account numbers. The specialized extended data type inherits properties, such as string length, label text, and help text. You can override some of the properties on the specialized extended data type.

  • Table Use a table element type to specify data entity types that the Microsoft Dynamics AX application platform uses to generate a SQL Server database table schema. Tables specify data entity type fields along with their base enum or extended data type, field groups, indexes, relationships, delete actions, and methods. Tables can also inherit the fields of base tables that they are specified to extend. The Microsoft Dynamics AX runtime uses table specifications to render data entry presentation controls and to maintain the referential integrity of the data stored in the application database. The X++ editor also uses table elements to provide IntelliSense information when you write X++ code that manipulates data stored in the application database. Tables can be bound to form, report, query, and view data sources.

  • Map Use a map element type to specify a data entity type that factors out common table fields and methods for accessing data stored in horizontally partitioned tables. For example, the CustTable and VendTable tables in the Microsoft Dynamics AX application model are mapped to the DirPartyMap map element so that you can use one DirPartyMap object to access common address fields and methods.

    Note

    Consider table inheritance as an alternative to using maps because it increases the referential integrity of a database when base tables are referenced in table relationships.

  • View Use a view element type to specify a database query that the Microsoft Dynamics AX application platform uses to generate a SQL Server database view schema. Views can include a query model element that filters data accessed from one table or from multiple joined tables. Views also include table field mappings and methods. Views are read-only and primarily provide an efficient method for reading data. Views can be bound to form, report, and query data sources.

  • Perspective Use a perspective element type to specify a group of tables and views that are used together when designing and generating SSAS unified dimensional models.

  • Table collection Use a table collection element type to specify a group of tables whose data is shared by two or more Microsoft Dynamics AX companies assigned to the same virtual company. An application administrator maintains virtual companies, their effective company assignments, and their table collection assignments. The Microsoft Dynamics AX runtime uses the virtual company data area identifier instead of the effective company data area identifier to securely access data stored in tables grouped by a table collection.

    Caution

    The tables in a table collection should only reference tables inside the table collection unless you write application extensions to maintain the referential integrity of the database.

  • Query Use a query element type to specify a database query. You add tables to query element data sources and specify how they should be joined. You also specify how data is returned from the query by using sort order and range specifications.

MorphX user interface control element types

The following model element types are part of the Microsoft Dynamics AX MorphX user interface control meta-model:

  • Menu item Use a menu item element type to specify presentation control actions that change the state of the Microsoft Dynamics AX system or user interface or that generate reports. If you specify a label for the menu item, the Microsoft Dynamics AX runtime uses it to name the action when it is rendered in the user interface. The Microsoft Dynamics AX form engine also automatically adds a View details menu item to a drop-down menu, a menu that appears when a user right-clicks a cell in a column that is bound to a table field that is specified as a foreign key in a table relationship. The Microsoft Dynamics AX runtime uses the referenced table’s menu item binding to open the form that renders the data from the table. The Microsoft Dynamics AX form and report rendering engines ignore menu items that are disabled by configuration keys or role-based access controls.

  • Menu Use a menu element type to specify a logical grouping of menu items. Menu specifications can also group submenus. The menu element named MainMenu specifies the menu grouping for the Microsoft Dynamics AX navigation pane.

  • Form Use a form element type to specify a presentation control that a user uses to insert, update, and read data stored in the application database. A form binds table, view, and query data sources to presentation controls. A form is opened when a user selects a control bound to a menu item, such as a button.

  • Form part Use a form part element type to specify a presentation control that renders a form in the FactBox area of the user interface. For more information about the FactBox area, see Chapter 5.

  • Info part Use an info part element type to specify a presentation control that renders the result set of a query in the FactBox area of the user interface.

  • Report Use a report element type to specify a presentation control that renders database data and calculated data in a page-layout format. A user can send a report to the screen, a printer, a printer archive, an email account, or the file system. A report specification binds data sources to presentation controls. A report is opened when a user clicks an output menu item control, such as a button.

  • SSRS report Use an SSRS report element type to reference a Visual Studio Report Project that is added to the Microsoft Dynamics AX model database.

  • Cue Use a cue element type to bind a menu item to a presentation control that renders a pictorial representation of a numeric metric, such as the number of open sales orders. A cue is rendered in a Microsoft Dynamics AX Role Center webpage.

  • Cue group Use a cue group element type to specify a group of cues that are displayed together on the Microsoft Dynamics AX Role Center web part.

Workflow element types

Workflow element types define the workflow tasks, such as review and approval, by binding the tasks to menu items. When a form is workflow-enabled, it automatically renders controls that support the user in performing the tasks in the workflow. Workflow elements define workflow documents and event handlers by using class elements. The following model element types are part of the Microsoft Dynamics AX workflow meta-model:

  • Workflow type Use a workflow type element type to specify a workflow for processing workflow documents. A workflow configuration consists of event handler specifications, custom workflow task specifications, and menu item bindings.

  • Workflow task Use a workflow task element type to specify a workflow task. A workflow task comprises a list of task outcomes, event handler registrations, and menu item bindings.

  • Workflow approval Use a workflow approval element type to specify specialized workflow approval tasks. A workflow approval task consists of approve, reject, request change, and deny task outcomes, a list of event handler registrations, and menu item bindings.

  • Workflow provider Use a workflow provider element type to specify the name of a class that provides data to a workflow. Example data includes a list of workflow participants, a list of task completion dates, and a structure of users that reflect positions in a position-reporting hierarchy.

Code element types

The following model element types are part of the Microsoft Dynamics AX code meta-model:

  • Class Use a class element type to specify the structure and behavior of custom X++ types that implement data maintenance, data tracking, and data processing logic in a Microsoft Dynamics AX application. You specify class declarations, methods, and event handlers by using the X++ programming language. Class methods can be bound to menu items so that they are executed when users select action, display, or output menu item controls on a user interface. You can also use a class model element type to specify class interfaces that only include method definitions.

  • Macro Use a macro element type to specify a library of X++ syntax replacement procedures that map X++ input character sequences, such as readable names, to output character sequences, such as numeric constants, during compilation.

  • Reference Use a reference element type to specify the name of a. NET Framework assembly that contains .NET Framework common language runtime (CLR) types that can be referenced in X++ source code. The MorphX editor reads type data from the referenced assemblies so that IntelliSense is available for CLR namespaces, types, and type members. The MorphX compiler uses the CLR type definitions in the referenced assembly for type and member syntax validation, and the Microsoft Dynamics AX runtime uses the reference elements to locate and load the referenced assembly.

  • Job Use a job element type to specify an X++ program that runs when you select the CommandGo menu item or press F5. Developers often write jobs when experimenting with X++ language features. You should not use jobs to write application code.

Services element types

The following model element types are part of the Microsoft Dynamics AX services meta-model:

  • Service Use a service element type to enable an X++ class to be made available on an integration port.

  • Service group Use a service group element type to specify a web service deployment configuration that exposes web service operations as basic ports with web addresses.

Role-based security element types

The following model element types are part of the Microsoft Dynamics AX role-based access control security meta-model:

  • Security policy Use a security policy element type to specify a configuration for constraining the view that a user has of data stored in one or more tables. A security policy configuration consists of a primary table specification and a policy query.

  • Code permission Use a code permission element type to specify one or more access permissions that secure access to logical units of application data and functionality. You can specify data access permissions to secure access to data stored in tables. You can specify code access permissions to secure access to forms, web controls, and server methods.

  • Privilege Use a privilege element type to specify one or more permissions that a user requires to perform a task, such as a data maintenance task; or a step in a task, such as a data view or data deletion step.

  • Duty Use a duty element type to specify a set of privileges that are required for a user to carry out his or her internal control approval, review, and inquiry responsibilities and data maintenance responsibilities.

  • Role Use a role element type to specify the organization role, functional role, or application role that a user is assigned to in an organization. Sales agent is an example of an organization role, manager is an example of a functional role, and system user role is an example of an application role.

  • Process cycle Use a process cycle element type to specify the operations and administration activities that are repetitively performed by users who are assigned duties in the security model. The expenditure cycle, the revenue cycle, the conversion cycle, and the accounting cycle are examples of process cycles.

Web client element types

The elements of the Microsoft Dynamics AX application meta-model that are used to develop Enterprise Portal web client applications are illustrated in Figure 1-4.

The following model element types are part of the Microsoft Dynamics AX web client meta-model:

  • Web menu item Use a menu item element type to specify web navigation actions that change the state of the Microsoft Dynamics AX system or user interface. If a label is specified for the menu item, the Microsoft Dynamics AX runtime will use it to name the action when it is rendered in the user interface.

  • Web menu Use a web menu element type to specify a logical grouping of web menu items. Web menu specifications can group submenus. Web menus are rendered as hyperlinks on webpages.

    Element types of the Microsoft Dynamics AX meta-model for developing Enterprise Portal web applications.

    Figure 1-4. Element types of the Microsoft Dynamics AX meta-model for developing Enterprise Portal web applications.

  • Web content Use a web content element type to reference an ASP.NET user control. ASP.NET user controls are developed in the Visual Studio IDE and are stored in the Microsoft Dynamics AX model database.

  • Web part Use a web part element type to store a SharePoint web part in the Microsoft Dynamics AX model database. The web part will be saved to a web server when deployed.

  • Page definition Use a page definition element type to store a SharePoint webpage in the Microsoft Dynamics AX model database. The page definition will be saved to a web server when deployed.

  • Web control Use a web control element type to store an ASP.NET user control in the Microsoft Dynamics AX model database. The web controls will be saved to a web server when deployed.

  • List definition Use a list definition element type to store a SharePoint list definition in the Microsoft Dynamics AX model database. The list definition will be created on a SharePoint server when deployed.

  • Static file Use a static file element type to store a file in the Microsoft Dynamics AX model database. The file will be saved to a SharePoint server when deployed.

  • Web module Use a web module element type to specify the structure of a SharePoint website. The web modules are created as subsites under the home site in SharePoint.

Documentation and resource element types

Documentation and resource element types are used to reference help documentation and system documentation and to develop localized string resources and information resources.

The following model element types are part of the Microsoft Dynamics AX documentation and resource meta-model:

  • Help document set Use a help documentation set element type to reference a collection of published documents. Help document sets are opened from the Help menu of the Microsoft Dynamics AX Windows client. For more information about creating and updating help documents, see Chapter 16.

  • System documentation Use a system documentation element type to reference system library content and hyperlinks to MSDN content. System content describes the Microsoft Dynamics AX system reserved words, functions, tables, types, enums, and classes.

  • Label file Use a label file element type to store files of localized text resources in the Microsoft Dynamics AX model store.

  • Resource Use a resource element type to store file resources such as image files and animation files. These resources are stored in the Microsoft Dynamics AX model database.

License and configuration element types

The element types of the Microsoft Dynamics AX application meta-model that are used to develop license, configuration, and application model security are illustrated in Figure 1-5. These model element types change the operational characteristics of the Microsoft Dynamics AX development and runtime environments.

Element types of the Microsoft Dynamics AX meta-model for developing licensed and configurable application modules.

Figure 1-5. Element types of the Microsoft Dynamics AX meta-model for developing licensed and configurable application modules.

The following model element types are part of the Microsoft Dynamics AX license, configuration, and application model security meta-model:

  • Configuration key Use a configuration key element type to assign application model elements to modules that a system administrator then uses to enable and disable application modules and module features. The Microsoft Dynamics AX runtime renders presentation controls that are bound to menu items with active configuration keys. Configuration keys can be specified as subkeys of parent keys.

  • License code Use a license code element type to lock or unlock the configuration of application modules developed by Microsoft. Modules are locked with license codes that must be unlocked with license keys. License codes can be specified as subcodes of parent codes.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset