Architecture and Design
The following diagram represents a common application architecture with components grouped by different areas of concern
Architecture and Design Guidelines
Pattern Map
Area | Relevant Patterns |
---|---|
Authentication and Authorization | Direct Authentication |
Brokered Authentication | |
Federated Authentication (SSO) | |
Trusted Sub-System | |
Caching | Cache Dependency |
Page Cache | |
Communication | Pipes and Filters |
Intercepting Filter | |
Composition | Composite View |
Template View | |
Transform View | |
Two-step View | |
Concurrency and Transactions | Coarse Grained Lock |
Implicit Lock | |
Optimistic Offline Lock | |
Pessimistic Offline Lock | |
Transaction Script | |
Capture Transaction Details | |
Configuration Management | Provider |
Coupling and Cohesion | Adapter |
Dependency Injection | |
Data Access | Active Record |
Data Mapper | |
Query Object | |
Repository | |
Row Data Gateway | |
Table Data Gateway | |
Exception Management | Exception Shielding |
Layering | Entity Translator |
Façade | |
Layered Architecture | |
Service Interface | |
Service Layer | |
Logging and Instrumentation | Provider |
State Management | Context Object |
Structure | Client/Server |
N-Tier | |
Software + Services (S+S) | |
Software as a Service (SaaS) | |
Platform as a Service (PaaS) | |
User Experience | Asynchronous Callback |
Chain of Responsibility | |
Validation | Publish/Subscribe |
_Workflow_ | Data-driven workflow |
Human workflow | |
Sequential workflow | |
State-driven workflow |
Business Layer Guidelines
Business Layer – When designing the business layer following are the key activities that you need to perform.
Business Components – When designing the business components following are the key activities that you need to perform.
Business entities – When designing the business entities following are the key activities that you need to perform.
- Identify the consumers of your business layer
- Determine how you expose your business layer
- Determine security requirements of your business layer
- Determine your validation requirements and strategy for business layer
- Determine caching strategy for your business layer
- Determine exception management strategy for your business layer
Business Components – When designing the business components following are the key activities that you need to perform.
- Identify different types of business components
- Determine application design considerations
- Identify transactional requirements
- Identify how business rules are handled
- Identify patterns that fit the requirements
Business entities – When designing the business entities following are the key activities that you need to perform.
- Identify common data formats for business entities
- Determine how data will be used in the application
- Choose your approach for managing rules
- Optionally choose your design for custom objects
- Optionally determine serialization support
Presentation Layer Guidelines
Approach
Use the following steps to help organize your thinking when designing the presentation layer:
- Identify your client type. Choose a client type that satisfies your requirements and adheres to the infrastructure and deployment constraints of your organization.
- Determine how you present data. Choose the data format for your presentation layer and decide how you will present the data in your User Interface (UI).
- Determine your data validation strategy. Use data validation techniques to protect your system from un-trusted input.
- Determine your business logic strategy. Factor your business logic to decouple business logic from presentation layer code.
- Determine your strategy for communication with other layers. If your application has multiple layers, such as a data access layer and a business layer, determine a strategy for communicating from your presentation layer to these other layers.
Design Considerations
Use the following design principles when designing the presentation layer:- Choose the appropriate UI technology. Determine if you will implement a rich client, a web client, or a rich internet application.
- Choose relevant patterns. Review the presentation layer patterns for proven solutions to common presentation problems.
- Design for separation of concerns. Use dedicated UI components to focus on rendering and display. Use dedicated presentation entities to manage the data required to present your views. Use dedicated UI process components to manage user interaction processing.
- Consider human interface guidelines. Review guidelines that have been established for your organization. Review common user interface guidelines based upon the client type and technologies that you have chosen.
- Adhere to user-driven design. Before designing your presentation layer, understand your customer. Use surveys, usability studies and interviews to determine the best presentation design for your customer's needs.
Guidelines Index
J.D. Meier , Alex Homer, Jason Taylor , Prashant Bansode , Lonnie Wall, Rob Boucher, Akshay Bogawat.Guidelines present the "what to do", "why", and "how." They're organized using frames. A frame is simply a collection of hot spot areas to organize the guidance into meaningful buckets.
No hay comentarios:
Publicar un comentario