This is the second of a collection of articles that explain, for my experience, the best way to organize a structure of a document for all the most usual cases.
You can find the first part here
In this part of this article will start with the most important aspect the Detail Design.
The Detail Design describe in detail the high level architecture of the solution, graphically and with descriptions in detail.
Detail Design
Detailed design can be divided into three parts based on architecture.
- Presentation Layer: In presentation layer, we will describe the messages flow layer from all actors, for example:
the messages will be received from site1, http post . In order to receive messages from site1 we need to build site1 using technology X.
Describe the work Items for Site1:
- Create new user profiles.
- Modify this feature site
- Upload file
- Business Workflow Layer: In this layer we will describe graphically the messaging flow layer
GRAPHIC DIAGRAM
Describe all steps in the flow, for example:
A. Create New Order: Partner1 will send request either using http URL provided by Hub.
B. When New order is posted to site, ASPX page of site will drop message to MSMQT location on BizTalk Server.
If exist describe particular security aspects, for example,
This request will be encrypted using X.509 certificates.
Describe messaging typology and structure, for example,
Sample EDI Header:
After the Design Detail we will start to describe the others important aspect.
Exception Handling
Describe the methodology used in the solution covering all of the parts, coding, orchestration exception strategy, if necessary graphically too, for example:
In all use cases have Orchestration and there is no custom code involved in it.
Orchestration will have exception handler as shown in figure.
Integration
Describe the most relevant aspect about integration strategy, for example:
BAS Integration: B2B scenario will use BAS for Trading Partner Management.
Trading partner management is done using website provided BAS feature.
BAM Integration: BAM will be used to send alerts and notifications to vendors and broker.
Information required for BAM will be tracked using Tracking Profile Editor as shown in figure.
Other important aspects to cover are:
Boundary Conditions
In this section we will Identify all boundary conditions implied by this design, or to be covered by this design
Security
In this section we will Identify all boundary conditions implied by this design, or to be covered by this design
Authentication
In this section we will Identify all authentication strategy
Authorization
In this section we will Identify all authorization strategy
Impersonation
In this section we will Identify all impersonation strategy
Performance
In this section we will Identify all performance requirements, for example
According to functional specification 1.000.000 orders will be processed End-End per day.
The most important aspect is identify the possible messages peeks, for example
According to functional specification 1.000.000 orders will be processed End-End per day with a peek of 500.000 between 2:00 AM and 3:AM.
Globalization/Localization
In this section we will describe possible Globalization/Localization strict
Test Support
If functional specification contains specific items required to enable testability.
This section identifies specific work and impacts on the algorithms necessitated by test support
Manageability
List policies and settings the admin and IT professionals can set to affect this features behavior.
Supportability
List considerations for supporting the feature: things like tracing, diagnostics.
Serviceability
List any issues and considerations for updating this feature set after it’s been deployed. Do we need to stop the service to replace the component? Do we need to reboot?
Migration
In this section we will describe possible strict and requirements about migration
Multi-Machine Installation
Create and refer to an architecture diagram.
MulTi-Domain Installation
Describe the domain installation, for example:
The scenario will have two domains. One domain for front servers facing outside world.
Another domain will be used for rest for servers which are behind corpnet firewall.
Runtime Considerations
Tuning and Throttling
List considerations on tuning and throttling.
Large Messages
In this section we will list all possible large messages peeks
Multi-Message Box
If exist describe the multi-message box strategy, configuration, scopes
Tracking
Describe the tracking strategy of the solution, for example:
Tracking will be enabled for BAM. Body tracking will be enabled for this scenario.
Threading and Concurrency
Describe possible threading and concurrency issue
Fault Tolerance
Describe the fault tolerance strategy, for example:
SQL Server will be clustered in active-passive node.
Minimum scenario will have 2 BizTalk for fault tolerance.