Summarize the logical design considerations for each of the layers of the Enterprise template and in particular the use of design patterns.. Design Patterns and Design Tools in Logical D
Trang 2with all applicable copyright laws is the responsibility of the user No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Microsoft Corporation If, however, your only means of access is electronic, permission to print one copy is hereby granted
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property
2000 Microsoft Corporation All rights reserved
Microsoft, Active Directory, ActiveX, BackOffice, BizTalk, FrontPage, Microsoft Press, MSDN, MS-DOS, PowerPoint, Visio, Visual Basic, Visual C++, Visual InterDev, Visual J++, Visual Studio, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A and/or other countries
Other product and company names mentioned herein may be the trademarks of their respective owners
Program Managers: Rhy Mednick, Susie Parrent
Instructional Designer: Susie Parrent
Subject Matter Experts: David Chesnut, Sam Gill (TechnoWiz), Michel Pahud
Media Management: David Mahlmann
Editing Manager: Lynette Skinner
Editor: Mick Alberts, Jennifer Linn
Production Manager: Miracle Davis
Print Coordinators: Linda Lu Cannon (Write Stuff), Marlene Lambert (Online Training
Solutions, Inc.)
Build Coordinator: Eric Wagoner
Graphic Artist: Scott Serna
Test Lead: Eric Myers
Manufacturing Manager: John Williams
Group Product Manager: Juan Fernando Rivera
Lead Product Manager, System Services and Infrastructure: Edward Dudenhoefer
Manufacturing Manager: Rick Terek
Operations Coordinator: John Williams
Manufacturing Support: Laura King; Kathy Hershey
Lead Product Manager, Release Management: Bo Galford
Group Manager, Courseware Infrastructure: David Bramble
General Manager: Robert Stewart
Trang 3Instructor Notes
This module provides students with a summary of the important logical and
physical design considerations for each of the layers in the Enterprise template
After completing this module, students will be able to:
! Summarize the logical design considerations for each of the layers of the Enterprise template and in particular the use of design patterns
! Summarize the physical design considerations for each of the layers of the Enterprise template and in particular the use of technology
! Review the key technologies that impact multiple layers
! Summarize the best practices for each of the layers of the Enterprise template
! Discuss future enhancements for Market Purchasing
Materials and Preparation
This section provides the materials and preparation tasks that you need to teach this module
Required Materials
To teach this module, you need the following materials:
! Microsoft® PowerPoint® file 1910A_12.ppt
! Module 12: Summary
Preparation Tasks
To prepare for this module, you should:
! Read all of the materials for this module
Presentation:
60 Minutes
Lab:
00 Minutes
Trang 4Module Strategy
Use the following strategy to present this module:
! Design Patterns and Design Tools in Logical Design The purpose of this section is to summarize the use of design patterns in the logical design of the various layers of the architecture template The review
is done by design pattern category
In the topic “Creational,” note that there are no design patterns that are useful
In the topic “Structural,” note that there are three design patterns—Facade, Composite, and Adapter—that are useful
In the topic “Behavioral,” note that there are three design patterns—
Observer, Iterator, and State—that are useful
In the topic “Other Patterns,” note that there are two design patterns—Authenticate and Queue—that are useful Also note that there are two modeling techniques that are useful: metaphor and entity relationship diagram (ERD)
! Technology Usage in Physical Design The purpose of this section is to summarize the use of technology in the three main functions of an application: external interactions, business logic, and state management For each technology, a summary of its advantages and disadvantages is presented In addition, this section reviews two technologies that are common to the physical design of all components: security and error handling
In the topic “External Interactions,” note that there are six technologies reviewed: thin client, rich client, Message Queuing, Extensible Markup Language (XML), distributed Component Object Model (DCOM), and Simple Object Access Protocol (SOAP)
In the topic “Business Logic,” note that there is only one technology under consideration: COM+
In the topic “Data Store,” note that there are only two technologies under consideration: Microsoft SQL Server™ and Active Directory™
! Best Practices The purpose of this section is to summarize the best practices for the logical and physical designs of an application according to the various layers of the Enterprise template
! Design Validation The purpose of this section is to summarize the validation mechanisms for logical and physical designs
! Future Enhancements to Market Purchasing The purpose of this section is to emphasize that a good design must be easily extensible and that the concept of extensibility can be tested by the introduction of future enhancements to an application
Trang 5# Overview
! Design Patterns and Design Tools in Logical Design
! Technology Usage in Physical Design
! Best Practices
! Design Validation
! Future Enhancements to Market Purchasing
This module presents a summary of the Enterprise template and highlights the important logical and physical design considerations for each of the layers in the Enterprise template
After completing this module, you will be able to:
! Summarize the logical design considerations for each one of the layers of the Enterprise template and in particular the use of design patterns
! Summarize the physical design considerations for each one of the layers of the Enterprise template and in particular the use of technology
! Review the key technologies that affect multiple layers
! Summarize the best practices for each of the layers of the Enterprise template
! Discuss future enhancements for Market Purchasing
In this module, you will
review a summary of the
material presented in this
course
Trang 6# Design Patterns and Design Tools in Logical Design
In this section, you will
review the use of design
patterns in the logical design
of an application
Trang 7Creational
Design Pattern Layer
None System Services
None Data Services
None Data Access Layer
None Business Logic
None Facade
None User Services
The creational design patterns that are proposed by the book Design Patterns by
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, which include Abstract Factory, Builder, Factory Method, Prototype, and Singleton, were reviewed for their application to the various Enterprise template layers The conclusion drawn was that none of these design patterns are necessary because the functionality that the design patterns provide is available through either the operating system or component services
The only design pattern that posed an issue is the Singleton A Singleton ensures that a class has only one instance and provides a global point of access
In this topic, you will see a
summary of the use of
creational design patterns in
the logical designs of
various architecture
template layers
Trang 8Structural
Design Pattern Layer
None System Services
None Data Services
Composite Adapter Data Access Layer
Composite Business Logic
Facade Facade
None User Services
There are eight structural design patterns in the Design Patterns book: Adapter,
Bridge, Composite, Decorator, Facade, Flyweight, and Proxy Three have proven to be useful in the logical design: Adapter, Composite, and Facade Unsurprisingly, the Facade pattern is the cornerstone for the Facade layer As discussed in detail in Module 5, “The Facade Layer,” the Facade pattern provides for a common secure interface to the internals of an application This interface allows user services to become impervious to changes in the internal structure of applications
The Composite structural pattern is useful when an object such as a requisition can contain several objects, such as line item details Composite patterns are useful in the business logic layer and in the data access layer (DAL)
Finally, the Adapter structural design pattern is useful in the logical design of DAL objects that need to create uniform access to different types of data Each DAL component translates the underlying data store into a format suitable for use in the rest of the system
In this topic, you will see a
summary of the use of
structural design patterns in
the logical designs of
various architecture
template layers
Trang 9Behavioral
Design Pattern Layer
None System Services
None Data Services
Iterator Data Access Layer
Observer Iterator State
Business Logic
None Facade
None User Services
There are eleven behavioral design patterns in the Design Patterns book: Chain
of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, and Visitor Three have proven to
be useful in the logical design: Iterator, Observer, and State
The Iterator behavioral design pattern is useful when there is a need to browse through a collection of objects In general, following the lead of Sten and Per
Sundblad in Scalable Visual Basic and MTS Applications, it is useful to modify the definitions of the patterns from the Design Patterns book and combine the
functionality of the List class with that of the ListIterator class The Iterator
design pattern is useful in the business logic layer and in the DAL
The Observer behavioral pattern that manages the changes of state is very useful in the logical design of the business logic layer For example, it can be used where there are many instances when there is a one-to-many dependency between objects such that when one object changes its state, all its dependents are notified or updated automatically
Finally, the State behavioral design pattern that also manages the changes of state is very useful in the logical design of the business logic layer, where there are many instances when the object behavior must change when its state changes
In this topic, you will see a
summary of the use of
behavioral design patterns
in the logical designs of
various architecture
template layers
Trang 10Other Patterns
Design Pattern Layer
Authenticate System Services
ERD Data Services
None Data Access Layer
Queue Business Logic
None Facade
Metaphor User Services
In this course, the work from the Design Patterns book was extended to include
two new behavioral design patterns: Queue, and Authenticate
The Queue behavioral design pattern describes a frequent occurrence in enterprise applications: a many-to-many relationship between objects that cannot interact directly because of both spatial and temporal limitations This phenomenon typically occurs in the logical design of business logic that uses logic from one application in a second application
The Authentication design pattern is usually implemented in the system services, and it defines a many-to-one relationship between objects, so that one
or more objects can request authentication from a single object that will maintain a user database
The user services can use many of the behavioral design patterns However, the most important part of user services is identifying a metaphor The metaphor is the underlying model for representing the interaction between a user and the information system that is supporting the user in the particular system
The data services do not have any design patterns useful for logical design The most appropriate tool to use is entity relationship diagrams (ERD)
In this topic, you will see a
summary of the use of new
behavioral design patterns
in the logical designs of
various architecture
template layers
Trang 11# Technology Usage in Physical Design
The external interactions are the part of an application that permits collaboration with users and other applications
The business logic is the part of the application that is intelligent; it is capable
of making decisions based on pre-defined rules
Finally, state management is the mechanism that serves as an application’s memory This memory could be short-term or long-term, depending on the design
This review looks at the technology according to these criteria rather than according to the Enterprise template layers, since the Enterprise template layers
is only one approach for logical design of an application, while technology application to physical design can be used for any logical design
For each category, the relevant technologies will be presented A brief summary
of the advantages and disadvantages for each technology’s adoption in the physical design will also be presented
In addition, this section includes a review of two technologies that are used in all layers of the Enterprise template: security and error handling These technologies apply to the physical designs of all components in an enterprise application
In this section, you will
review the important
technology considerations in
the physical design of
enterprise applications
Trang 12External Interactions
Standards are still emerging
$Can be used in all layers of the Enterprise template XML
Compensating transactions
$Available on many platforms Message Queuing
Unproven
$Universality SOAP
Configuration management
$Scalability DCOM
Platform specific
$High use of resources Rich client
Poor use of client and network resources
$Any platform, any browser Thin client
Disadvantage Advantage
Technology
At present, there are six technologies that can be used to facilitate the cooperation between an application and its users and an application and its counterpart applications
In the realm of interacting with outside applications and users, there are currently two groups of technologies, which have been labeled thin client and rich client You would choose a thin client for universality and a rich client for performance
In the area of component interoperability, four technologies are proposed, three
of which are in current use (Message Queuing, XML, and DCOM) and one that looks very promising: Simple Object Access Protocol (SOAP)
Of those in current use, both Message Queuing and Distributed Component Object Model (DCOM) are well understood, but there are administration issues
to consider The administration tasks include setting up queues, defining queue attributes, and configuring the components to use other components running on other nodes New Microsoft® back-end servers such as AppCenter server might reduce the administrative burden
Extensible Markup Language (XML), while relatively new, holds excellent promise as a medium for the exchange of data A new Microsoft server, Microsoft BizTalk™, might facilitate the adoption of XML as a data exchange standard
While SOAP has been covered in detail, it was not used in the Market Purchasing application It is still an unproven technology
In this topic, you will see a
summary of the use of
external interaction
technologies in the physical
designs of components that
make up an enterprise
solution