Module Overview Module 3: A Services-based Approach to Solution Design Module 4: Business Solution Conceptual Design Module 5: Business Solution Logical Design Module 6: Beginning Physic
Trang 1Module 7: Selecting Solution
Technologies
Trang 2Module Overview
Module 3: A Services-based Approach to Solution Design Module 4: Business Solution Conceptual Design Module 5: Business Solution Logical Design Module 6: Beginning Physical Design
Module 1: Course Overview Module 2: Solution Design Using the MSF
Module 7: Selecting Solution
Technologies
Module 8: Solution Design and the
Component Object Model
Module 9: Designing Solutions with
Overview
Considerations by Type
of Technology
Activity 7.2: Determining the impact of
Technology on a Windows DNA Design
Review
Distributed ApplicationsUsing Windows DNA
TechnologySelection Process
Activity 7.1: Determining Technology Requirements
Module 7: Selecting Solution Technologies
Trang 3! Overview
In this module
Technology on a Windows DNA Design
" Review
Physical design involves evaluating solution technologies In this module, you will learn about some of the solution technology types and some evaluation criteria to consider for each of them Later, you will use this information to investigate specific Microsoft® solution technologies
After completing this module, you will be able to:
" Describe Microsoft Windows® Distributed interNet Applications Architecture (Windows DNA) and how it applies to an application’s development
" Describe a process for selecting solution technologies for implementing the designed solution
" Evaluate implementation technologies from the perspective of the solution requirements, business considerations, enterprise architecture
considerations, and whether the technology should be reused, purchased, or built
" Evaluate the technology implications of solution requirements
" Identify technology types and their evaluation criteria
Slide Objective
To provide an overview of
the module topics and
objectives
Trang 4! Distributed Applications Using Windows DNA
In this section
Windows DNA is an important concept that will be central to developing applications in the future In this section, you will learn what Windows DNA is, the problems it solves, the services it provides, and its key benefits
Slide Objective
To provide an overview of
the topics and activities in
this section
Trang 5Windows DNA Architecture Model
platform
" Specifies:
$ How to develop services-based applications
$ How to extend existing data and external applications to support the Internet
$ How to support a wide range of client devices and maximize the reach of an application
Windows DNA is the application development model for the Windows platform It specifies how to develop service applications based upon the ideas
of user, business, and data services, in addition to using other system services of the Windows platform
Windows DNA also describes how existing applications and data can be used more easily in an Internet environment The multiple service-layer design allows the development team to quickly move an application to an Internet or intranet system Windows DNA also allows for a varying array of client devices, ranging from Windows clients to Web browsers and hand-held computers
All Windows DNA services are exposed in a unified way through the Component Object Model (COM) Windows DNA is a roadmap for creating solutions that build on existing computing investments Its multiple-service-layer design allows applications to quickly access existing data and provide integration with existing applications
Trang 6Core Structure of Windows DNA
User Interface
User Services
Business Services
Business Services
Data Access Services
Data Access Services
Data Store
Microsoft System Services
Microsoft System Services
Microsoft Operating Systems
Microsoft Operating Systems
Microsoft Development Tools
Microsoft Development Tools
The Windows DNA architecture consists of a set of system services and component-based application services that support open technology standards that are exposed in a unified way through COM These services can be thought
of as separate layers Each layer has its own characteristics and provides an isolating buffer to the neighboring services These layers are often separated into the following categories:
" User interface consisting of HTML, DHTML, Native Microsoft Win32®, Active Server Pages (ASPs) applications, and code
" User services consisting of ASP, scripting, Microsoft ActiveX® controls, COM+ components, and Win32 application programming interface (API) applications and code
" Business services consisting of COM+ components, Microsoft Transaction Services, and applications based on Microsoft Message Queue Services
" Data access services consisting of COM+ components, ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC) services
" Data storage services using Microsoft SQL Server™, Microsoft Visual FoxPro®, Microsoft MSDE, and Microsoft Access
" System services consisting of Active Directory™, security, management, networking, and communications
" Operating systems consisting of Microsoft Windows CE, Windows 98, Windows NT®, and Windows 2000
" Development Tools consisting of Microsoft Visual Basic®, Microsoft Visual C++®, Microsoft Visual InterDev®, Microsoft Visual J++®, and Microsoft Visual Modeler
Slide Objective
To explain the service areas
that Windows DNA
The technology categories
presented in this section will
be covered in detail in
Module 9
User services and user
interfaces will be covered in
Module 11
Trang 7Key Benefits of Windows DNA
applications
integrated development tools
Windows DNA provides an integrated platform for building distributed applications The existing Windows DNA system services free the development team from the burden of building or assembling commonly needed, middle-tier services such as asynchronous message queuing, transactions, component services, data access, and Web publishing Applications can be built faster and easier by using the common service infrastructure of the Windows platform.Windows DNA supports a wide choice of programming languages and integrated development tools, which allows the project team to choose the tool that best fits the needs of the current project
Windows DNA is designed to provide a high level of interoperability with existing enterprise applications and legacy systems, which makes it easy to protect and extend current investments
Slide Objective
To describe some of the
benefits of Windows DNA
Lead-in
You will find that Windows
DNA provides many benefits
to application developers
and systems integrators
Trang 8! Technology Selection Process
In this section
In this section, you will learn about the process of selecting candidate technologies for your solution They are termed candidate technologies because they have not been proven and thereby finalized as the optimal technology for your solution You will learn a set of steps that will assist you in evaluating candidate technologies
Slide Objective
To provide an overview of
the topics and activities in
this section
Trang 9Determine Technology Requirements
The first step in selecting technologies for an application is to determine the technology requirements and identify the necessary types of technology
The candidate technologies should meet the business goals of an organization Understanding the business goals and requirements is critical when making technology decisions
The candidate technologies should also meet the design goals of the proposed solution Evaluate the technologies to determine if they supply the needed functionality that has been identified so far in the Microsoft Solutions Framework (MSF) Design Process
In addition, be sure that the candidate technologies will work within the project constraints For example, it might take three months to implement a new networking technology, but the application that relies on the new technology must be available in one month
Slide Objective
To explain that there are
already technology
implications in the current
design materials and to
identify the typical set of
technologies required for the
implementation of a
solution
Lead-in
Before you can select any
particular technology, you
must first determine what is
required of that technology
Trang 10Evaluate Solution Requirements
" One of the first items to consider in the physical design of the solution is the overall performance of the application Even if the solution accomplishes every operation for which it was intended, it will be useless if it does not perform well
" When looking at security for a new application, it is important to understand not only the method of authentication (proving the identity of the user), but also the access rights (what they can see or do) of that user Security is especially important with today’s public systems located on the Internet During physical design, the project team should be looking at the security requirements of the system and determining which of those needs will be met by the existing business environment and which need to be designed into the new system
Understand that the technology selected for security must be supported, just
as the solution built with it must be supported What are the implications of that support for the project and the enterprise? A supportable product has support options such as vendor, outsourcing, and help desk, and it also accumulates support costs such as incidental costs and maintenance
" Other points to consider are deployment, competitive advantage, time to market, and industry perception Keep in mind that supporting an application may mean later upgrades or extended functionality An application development process is not something with an end, but something with a life span Throughout the life of an application, it will likely need updates and extended functionality Attempt to prepare for these changes through the design process to ensure that they are as easy as possible to implement
Slide Objective
To highlight some of the
more common requirements
of any business solution
Lead-in
Every solution will have its
own requirements for a
successful implementation
Trang 11" With today’s large environments, deployment costs of new applications and the complexity of those deployments can be tremendous Many solutions are developed with no thought about what it will take to deploy the application after it is completed Keep in mind that the initial deployment method and costs are not the only ones Inevitably, there will be updates to the system that will also have to be deployed Attempt to design an easily updateable system
" Scalability is an important aspect of performance An application may perform well for a small number of users, but it must also be able to handle the full load of users after it is in a production environment It is important
to begin looking at the number of users that will ultimately be using a system to ensure that it will meet the scalability requirements when under stress
" When considering the reliability of an application, it is important to determine an application’s required degree of reliability As reliability needs increase, costs for implementing the project increase The type of
application determines its reliability needs For example, consider a new application that is responsible for taking orders for a company’s products For every minute that this application is down, revenue is lost Often, the costs associated with a single hour of unplanned downtime are more than what it would cost to implement a highly available system using today’s latest technologies However, other types of applications have no real impact if they are unavailable for a short period of time For example, consider an application that lets everyone in the company view vacation schedules If this application is unavailable for a short time, it will not affect the overall performance of the company It is probably not necessary to invest huge sums of money in high-availability technologies for this type of application
" Reusability considerations are often ignored until too late in the implementation of a new system However, careful planning can create a solution that will have a longer life and provide the foundation for other systems in the future You need to consider the type of solution and how granular, portable, or modular its implementation must be
Trang 12Evaluate Business Considerations
" Understand the complete product cost by considering developer, server, and reseller licenses, as well as upgrade costs Any technology has costs
associated with it that may or may not be obvious, but that nevertheless affect the technology through its life These costs can be initial hardware and software costs, support costs, infrastructure costs, and training costs They can also be either short-term or long-term investments An example of
a short-term investment would be something that solves an immediate need temporarily, such as adding additional memory to older machines to improve performance Long-term investments are items that will bring benefit for years in the future, such as rewiring a campus to support higher-speed networks or purchasing leading-edge hardware for servers and workstations
" Each investment must correspond to a return on investment in some way
Do not select a technology simply because it is new The investment in new technologies should return value to the company by bringing in more revenue or reducing costs
" Understand that the development team’s experience or lack thereof can have
a large impact on the appropriate selection of technology You must consider what experience is available in terms of training (costs or time), consultation (costs or availability), and the current developers’ comfort level with the technical solution
" A mature product is accepted in the market, is well understood, is a repeat
of something done before, is stable, and is supported by available resources
An innovative product is the “latest and greatest” or is “ahead of the curve.”
The project team should make technology choices based upon risk analysis
Trang 13" A major justification for new projects and new technologies is to gain a competitive advantage If a technology can clearly bring a competitive advantage, then it will be supported by business (for example, electronic commerce)
Trang 14Evaluate Enterprise Architecture Considerations
" Interoperability
A major concern from the perspective of enterprise architecture is the extent of change required by the new technology A new technology such as streaming video might require new wiring and networking capabilities A new imaging system might require larger screens Changes of this nature not only require money to purchase new equipment, but also time to learn about the new technologies and to implement them If two technologies are equal in other areas, often the best choice is the one that aligns more closely to the existing enterprise architecture
In addition to looking at the existing enterprise architecture, the project team should also consider any future directions within the enterprise architecture For example, if the direction of the enterprise architecture is to begin using a Windows 2000 server, then this fact should be considered when evaluating candidate technologies
Technologies can also impact the existing enterprise architecture Be sure to evaluate this impact and determine what negative consequences might arise as a result Enterprise architecture deficiencies can cripple an otherwise well-designed application
Interoperability concerns are also important when considering enterprise architecture Even if the design of an application does not specify interoperability as a design goal, it is always wise to keep it in mind when selecting candidate technologies Most applications, regardless of their nature, will eventually need to communicate with other applications Selecting technologies that allow for this type of interaction will allow the solution to be valuable for a much longer time period
Far too often, businesses outgrow new systems even before they are deployed You should remember that the business can and will grow in many ways Businesses can easily double in size due to mergers and acquisitions
Slide Objective
To highlight the need to take
the enterprise architecture
into consideration when
evaluating technologies
Lead-in
Beyond the needs of the
business, there is also the
matter of aligning with the
current enterprise
architecture
Trang 15Evaluate Reuse vs Buy vs Build Options
" Reuse by:
$ Extending current components
$ Leveraging system services
$ Reusing code libraries
$ Compliance with enterprise architecture
$ Vendor stability
Reusability of technologies is an important consideration Developing software
is an expensive and time-consuming process Often the best choice is to reuse
or purchase existing components A common phrase that describes this model is
“Reuse before you buy; buy if you can; build only if you must.”
You can reuse technologies in many ways One way is to simply take existing components and extend their functionality to meet new needs This approach saves the time and effort that would be required to develop new components from scratch Reuse can also involve leveraging existing system services, such
as the security features of Windows 2000 or simply reusing code libraries where appropriate
When attempting to buy technologies rather than build new components, there are several factors to consider First, consider whether the technologies are compliant with the enterprise architecture Second, consider the stability of a vendor If a vendor is supplying a critical component for an application, it may
be necessary to have the component updated at a later time In some situations, the vendor will provide the source code for the component for an additional charge and allow the project team to modify it slightly if needed
Building is required when there are specific requirements for the solution that cannot be met by existing components or services Many business-specific components must be developed to fulfill the requirements of the solution
Slide Objective
To explain that after you
have addressed the issues
of selecting an enterprise
architecture, the decision
about reusing, buying, or
building still needs to be
addressed
Lead-in
After you have considered
the solution requirements,
the business requirements,
and the enterprise
architecture, you still need
to determine the best source
of the technology
Trang 16Iterate Selection Process
$ Ability to meet requirements
$ Acceptably addressing considerations
$ Addressing greatest risks first
$ Creating prototypes
$ Looking at evaluation editions
proves unacceptable
Selecting a candidate technology involves finding technologies that meet the requirements of the proposed solution From the technologies that meet these requirements, the project team must select the technologies that best fit the environment based upon the business, enterprise architecture, and reusability considerations
After the technologies are selected, the project stakeholders should validate the selections to determine the suitability of each technology There are many ways
to validate technologies Look at each of the technologies in terms of risk to determine the shortcomings of each and the possible impact of those drawbacks
on the solution Creating prototypes is another important method of validating technology choices Also, many types of technologies such as operating systems, data storage products, or third-party components have evaluation editions that can be used to compare and contrast the separate candidate technologies
Finally, as with the other stages of the MSF Design Process, you should always look at candidate technologies in an iterative manner to ensure an optimal decision Make the selection, validate the selection, make additional selections for unsuitable technologies, validate the selections, and so on
As with the other aspects of
your design, technology
selection is an iterative
process based on early
validation