Module 7: Selecting Solution Technologies 217
Windows DNA Architecture Model
"
Application development model for the Windows
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
"
Exposed services through COM
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.
Slide Objective
To provide a general
overview of Windows DNA.
Lead-in
Windows DNA is the
application development
model for the Windows
platform.
218 Module 7: Selecting Solution Technologies
Core Structure of Windows DNA
"
User interface
"
User services
"
Business services
"
Data access services
"
Data store
"
System services
"
Operating systems
"
Development tools
User
Interface
User
Interface
User Services
User Services
Business
Services
Business
Services
Data Access
Services
Data Access
Services
Data Store
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
provides.
Lead-in
Windows DNA consists of a
variety of presentation,
application, data, and
system services.
Delivery Tip
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.
Module 7: Selecting Solution Technologies 219
Key Benefits of Windows DNA
"
Provides an integrated platform for building distributed
applications
"
Applications can be built faster and easier
"
Supports a wide choice of programming languages and
integrated development tools
"
Provides high levels of interoperability
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.
220 Module 7: Selecting Solution Technologies
!
!!
!
Technology Selection Process
In this section
In this section
"
Determine Technology Requirements
"
Evaluate Solution Requirements
"
Evaluate Business Considerations
"
Evaluate Enterprise Architecture Considerations
"
Evaluate Reuse vs. Buy vs. Build Options
"
Iterate Selection Process
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.
Module 7: Selecting Solution Technologies 221
Determine Technology Requirements
"
Using the business goals and requirements
"
Using the design goals and requirements
"
Identifying project constraints
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.
222 Module 7: Selecting Solution Technologies
Evaluate Solution Requirements
"
Performance
"
Security
"
Supportability
"
Deployability
"
Scalability
"
Reliability
"
Reusability
Every solution will have its own requirements for a successful implementation.
The project team should consider the following requirements when evaluating
technologies and technology 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.
Module 7: Selecting Solution Technologies 223
"
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.
224 Module 7: Selecting Solution Technologies
Evaluate Business Considerations
"
Product cost
"
Return on investment
"
Experience
"
Maturity
"
Competitive advantage
The project team should consider the organization’s needs when looking at
technologies. Some of these considerations are explained in the following
discussion:
"
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.
Slide Objective
To explain that there is more
to a technology decision
than to a feature list.
Lead-in
When evaluating
technologies, it is important
to understand the needs of
the business.
Module 7: Selecting Solution Technologies 225
"
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).
226 Module 7: Selecting Solution Technologies
Evaluate Enterprise Architecture Considerations
"
Adherence to enterprise architecture
"
Alignment with enterprise architecture goals
"
Impact on enterprise architecture
"
Interoperability
"
Opportunity for growth
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.
Không có nhận xét nào:
Đăng nhận xét