Tải bản đầy đủ (.pdf) (32 trang)

Tài liệu Module 7: Selecting Solution Technologies doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (343.41 KB, 32 trang )


Module 7: Selecting Solution
Technologies

214 Module 7: Selecting Solution Technologies



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 Physical
Design
Module 1: Course Overview
Modu le 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
Microsoft Technologies
Module 10: Completing the
Physical Design
Module 11: Designing the
Presentation Layer


Module 12: Introduction to
Functional Specifications
Designing Business
Solutions
Overview
Considerations by Type
of Technology
Activity 7.2: Determining the impact of
Technology on a Windows DNA Design
Review
Distributed Applications
Using Windows DNA
Technology
Selection Process
Activity 7.1: Determining
Technology Requirements
Module 7: Selecting
Solution
Technologies
Module 7: Selecting Solution Technologies 215



!
!!
!

Overview
In this module
In this module

"
Distributed Applications Using Windows DNA
"
Technology Selection Process
"
Activity 7.1: Determining Technology Requirements
"
Considerations by Type of Technology
"
Activity 7.2: Determining the Impact of
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.
216 Module 7: Selecting Solution Technologies



!
!!
!

Distributed Applications Using Windows DNA
"
Windows DNA Architecture Model
"
Core Structure of Windows DNA
"
Key Benefits of Windows DNA

In this section
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.
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.
Module 7: Selecting Solution Technologies 227



Evaluate Reuse vs. Buy vs. Build Options
"
Reuse by:
$
Extending current components
$
Leveraging system services
$

Reusing code libraries
"
Buy considering:
$
Compliance with enterprise architecture
$
Vendor stability
"
Build to meet specific requirements


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.
228 Module 7: Selecting Solution Technologies



Iterate Selection Process
"
Select a candidate technology based on:
$
Ability to meet requirements
$
Acceptably addressing considerations
"
Validate candidate technology by:

$
Addressing greatest risks first
$
Creating prototypes
$
Looking at evaluation editions
"
Iterate to a new technology if candidate technology
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.
Slide Objective

To explain that technology
selection is an iterative
process.
Lead-in
As with the other aspects of
your design, technology
selection is an iterative
process based on early
validation.
Module 7: Selecting Solution Technologies 229



Activity 7.1: Determining Technology Requirements


In this activity, you will identify the technology requirements in a scenario of
the Ferguson and Bardell, Inc. (F&B) case study.
After completing this lab, you will be able to:
"
Demonstrate the ability to read a business document and identify what types
of technologies a scenario requires.

Slide Objective
To introduce the activity.
230 Module 7: Selecting Solution Technologies



!

!!
!

Considerations by Type of Technology
In this section
In this section
"
Communications
"
Operating Systems
"
System Services
"
Development Tools
"
Data Access
"
Data Storage
"
Security
"
Incorporating Windows DNA


In this section, you will learn about the specific considerations necessary in
investigating the separate categories or types of technology. Each technology
type has different characteristics that provide the necessary services for a
Windows DNA–based application design. In addition, you should examine
specific considerations when selecting candidate technologies.
Slide Objective

To provide an overview of
the topics and activities in
this section.
Module 7: Selecting Solution Technologies 231



Communications
"
Provisions
$
Component interoperability
"
Considerations
$
Distribution of components
$
Remote component interaction
$
Network topologies


Components provide a mechanism for encapsulating a specific portion of an
application’s code and logic. These components can be located and executed in
a simple and consistent manner regardless of the programming language being
used to call the components.
Many components can exist and are executed on a local system completely
within its processor and memory resources. However, components should also
provide a mechanism for being located and executed on remote systems. The
project team should carefully consider the distribution of components in an

application and the deployment of those components. These issues could impact
development and maintenance considerations later in the project.
Executing remote components should appear to be the same as executing the
component on a local system, except that the remote system’s processor and
memory are used for the main application logic. Keep in mind that the location
of components can have a direct impact on performance and on the deployment
model for the application.
As remote components are called, these calls should be capable of using any
common network protocol currently available to the local and remote system.
Consequently, the components should be independent of the actual network
protocol. As remote components are reliant upon a network and network
protocols to execute, they are subject to the same network-related issues as any
other network-based application. Issues such as firewalls, routing, bridging,
name resolution, and bandwidth bottlenecks directly affect the performance of
remote components and their ability to execute.
Slide Objective
To identify some key
considerations when
selecting communication
standards.
Lead-in
You should consider the
following key issues when
selecting communications
standards.
232 Module 7: Selecting Solution Technologies



Operating Systems

"
Provisions
$
Primary interface to hardware
$
Native services
"
Considerations
$
Type of device
$
Quality and quantity of native services
$
Organizational readiness requirements


The operating system is the primary interface to the hardware device. It
provides organization and access functions for secondary storage such as disk
or tape drives. It also provides the framework for running applications and
provides the necessary services for those applications.
Operating systems also provide many native services that can be used when
implementing new applications. These native services can include items such as
data storage, security, communications, message queuing, and using the
Internet.
When choosing an operating system, the type and purpose of the device in
question have a direct impact on the decision. Different types of devices have
different requirements. Types of devices include consumer devices, hand-held
computers, desktop computers, servers, and specialized devices particular to a
specific industry.
The project team should also consider the native services provided by an

operating system. Each operating system offers a different set of services. Keep
in mind that services offered by the operating system can reduce the workload
of the development team. For example, if the operating system provides for
multitasking support for applications, then the development team does not have
to work as much to implement multitasking for a new application.
An organization’s readiness for an operating system will also play an important
role in the decision. An operating system decision will not only affect the
developers or team members of a project, but also the entire organization.
Training issues must be investigated while the organization prepares for the
new application.

Slide Objective
To identify some key
considerations when
selecting operating systems.
Lead-in
You should consider the
following issues when
selecting operating systems.
Module 7: Selecting Solution Technologies 233



System Services
"
Provisions
$
Transaction services
$
Asynchronous services

$
Messaging services
$
High-availability services
"
Considerations
$
Interoperability with other applications
$
Concurrent use requirements


The project team should evaluate what system services will be needed and what
technologies will provide those services. Many system services were once
programmed into each application, but many systems now offer system services
independent of a specific application.
Transactional services provide the mechanisms and framework for a
transaction-based application. In a transactional system, a sequence of steps can
be grouped together as a single transaction. If any of the steps fails, the entire
transaction fails and can be reversed (referred to as a rollback).
Asynchronous communication services do not require immediate
communication. Not to be confused with electronic mail, these services provide
a message-based manner for execution. A requesting application can be
guaranteed that a message will arrive at the remote system, but the requesting
application is not dependent on a response within any given period.
Messaging services are more than just electronic mail. They also provide an
excellent method of routing information and efficiently delivering information
that is not time dependent to many individuals.
Systems services can also provide many high-availability services such as fault
tolerance or load balancing.

Interoperability is the primary consideration for system services. If services
such as load balancing or transactional systems are provided outside the
application, it is important that they cooperate well with a wide range of
operating systems, communications systems, development systems, and
industry standards.
Finally, the project team should consider the concurrent use requirements of the
application to determine the required system service support. For example, an
application with a small number of concurrent users may not need transaction
services, while an application with many concurrent users requires transaction
services for performance scalability.
Slide Objective
To explain system services
and the considerations for
using system services.
Lead-in
You should think about the
following key issues when
looking at system services.
234 Module 7: Selecting Solution Technologies



Development Tools
"
Provisions
$
Implementation of applications and components
$
Rapid development capabilities for faster implementation
"

Considerations
$
Available skill set of development resources
$
Ease of development
$
Impact on other technology decisions
$
Requiring different tools for different tasks


The development tool or tools provide the ability to actually develop separate
parts of an application, including the separate services and components. These
tools can also decrease the time required to create applications. They can
include integrated development environments, source code control, COM
components, wizards, and code libraries.
The project team should consider several major items when evaluating
development tools. The developers’ skill set is the first consideration. New
tools will require additional training and learning time for the developer staff
and could impact schedule and resource constraints. But although it is an
important criterion, the existing skill set of the development team should not be
the only consideration in choosing a development tool. Specific project
requirements may suggest a tool that requires team training or outsourcing to a
third-party development team.
Some development tools are easier to use than others. Consider the amount of
time a particular development tool will require to implement a project. Often,
there is a tradeoff involving the complexity of the development tool and the
efficiency of the developed product. For example, assembly language can be
used to develop an extremely quick application, but the development would
likely take much longer than using a tool such as Microsoft Visual Basic.

Keep in mind that the choice of development tools will affect other technology
decisions. For example, a specific operating system may be required for using
the tool or for implementing solutions created by the tool.
Finally, recognize that different parts of a solution may require using different
development tools. The development team may write most of an application in
an easy-to-use development tool while writing heavily used components in a
separate development tool to provide better performance.
Slide Objective
To identify some key
considerations in selecting
development tools.
Lead-in
You should think about
some of the following issues
when selecting development
tools.
Module 7: Selecting Solution Technologies 235



Data Access
"
Provisions
$
Connectivity to many data stores
$
Simplified access to data stores
"
Considerations
$

Support from industry standards
$
Performance
$
Required support for many client interfaces
$
Type of data being accessed


Data access services provide standardized connectivity to many different data
stores. Standard data access services provide the application with a standard
mechanism for accessing data regardless of the back-end data storage device.
This mechanism reduces the workload on the development resources because
there is no longer a reason to program directly to the database.
Data access services provide simplified access to data stores by eliminating the
need for the developer to directly access the data store. As a result, the
developer learns a single set of standard interfaces and those interfaces
communicate with the specific database.
Data access service candidates should support industry standards. One of the
benefits of data access services should be the team’s ability to efficiently use
the service regardless of the chosen data store. Requirements may exist that
involve accessing legacy databases to retrieve data. Client platforms must be
able to access needed data. Development of this type of application will be
simpler when using standard access mechanisms.
Performance is another concern. The data access service that you choose must
support the performance needs of the application. Often, prototype systems can
be created to validate the performance characteristics of data access services.
Data access services should not force the development team to use a specific
language and should not require a specific client interface to be created. This
independence from the requesting client allows the development team to use the

most effective tools to process the data, regardless of how the data is accessed.
An additional consideration with data access is the type of data being accessed.
These types include but are not limited to flat files, indexed content, relational
databases, hierarchical databases, structure data, and nonstructural data. Each of
these data types might require a different type of data access technology.
Slide Objective
To identify some key
considerations in selecting
data access methods.
Lead-in
You should think about the
following issues when
selecting data access
methods.
236 Module 7: Selecting Solution Technologies



Data Storage
"
Provisions
$
Storage for all company information
"
Considerations
$
Multiple locations
$
Different structures
$

Access by numerous users
$
Support for different use patterns
$
Special performance metrics requirements


Data storage systems are responsible for storing all of a company’s information,
including employee, company, and customer information.
The location of the information is important. Information can be stored on a
single machine, in a server farm, or distributed on client machines. Data storage
location directly impacts the performance of the application and how it is
developed.
When investigating data storage considerations, the project team should
examine the structure of the stored information. Examples of a data storage
structure include relational, object-oriented, or unstructured data stores. Even
items such as electronic mail servers are data storage devices.
The number of users that will access a data store is also important. When
considering the load that an application must handle, consider the difference
between the total number of users and the total number of concurrent users. For
example, consider a Web application designed to handle requests for
information. There may be one million requests for information over the course
of a week, but there may never be a time when there are more than 5,000 users
on the system at the same time. In this case, the system should be capable of
handling more than 5,000 users to ensure that the system can grow as demand
grows. However, there is no reason to design a system that can handle one
million users concurrently.
The project team should consider whether the data store will be updated
frequently or infrequently, mostly read or mostly write, and how current the
information needs to be. Each of these considerations will influence the data

storage selection.
Finally, the project team must look at a data store’s performance requirements.
Examples include response times and transactions per second. Different types
of applications require different performance considerations. One type of
performance counter that is important is response time. Response time for a
transaction is the time it takes for the transaction to complete and allow the user
to begin another transaction.
Slide Objective
To identify some key
considerations in selecting
data stores.
Lead-in
You should think about the
following key issues when
selecting data stores.
Module 7: Selecting Solution Technologies 237



Security
"
Provisions
$
Authentication, access, encryption, and auditing
"
Considerations
$
Client capabilities
$
Who controls the clients

$
Sensitivity of information


When looking at security for a new application, it is important to understand the
difference between authentication and access. They should be thought of as two
separate steps in the process of giving users access to resources. Authentication
determines if an individual is who they claim, while access permits that
individual to perform actions within the system. Security services can also
provide encryption to protect the information as it is transported or stored.
Finally, auditing creates a permanent record of who is trying and who is
performing what actions within the system.
An important consideration when implementing security for an application is
the security capabilities of the client. These capabilities may be robust, as they
are in a Windows 2000 client (which may support advanced security
capabilities such as encryption). Alternatively, other clients may be limited in
their security capabilities, such as an older version of a Web browser.
The project team should also consider who controls the client platform for the
application. If the organization controls the client platform, then the
organization may have the ability to enforce certain security features on the
client machines. However, the organization often does not control the client, as
in the case of a public Web site. In this case, the project team should take care
to implement security policies that are secure and that the target audience can
easily use.
The sensitivity of the information will also determine the required security
level. Certain types of data do not need intense security (for example, office
telephone numbers), while more sensitive information may require high
security (for example, personal medical records). These considerations will
determine the type of security that will need to be implemented with the new
application.

Slide Objective
To identify some key
considerations in selecting
security services.
Lead-in
You should think about the
following key issues when
selecting security services.

×