Module 3: Services-Based Approach to
Solution Design
56
Module 3: Services-Based Approach to Solution Design
Module Overview
Module 12: Introduction to Functional
Specifications
Module 11: Designing the
Presentation Layer
Module 1: Course Overview
Module 10: Completing the Physical
Design
Designing Business
Solutions
Module 9: Designing Solutions with
Microsoft Technologies
Module 8: Solution Design and the
Component Object Model
Module 2: Solution Design Using the
MSF
Module 3: A Services-Based
Approach to Solution Design
Module 4: Business Solution
Conceptual Design
Module 7: Selecting Solution
Technologies
Module 5: Business Solution Logical
Design
Module 6: Beginning Physical
Design
Review
Services-Based
Approach
Module 3: A Services-Based
Approach to Solution Design
Activity 3.1:Identifying
Services
Value of a Servicesbased Approach
Module 3: Services-Based Approach to Solution Design
57
! Overview
Slide Objective
To provide an overview of
the module topics and
objectives.
"
Services-Based Approach
"
Activity 3.1: Identifying Services
"
Value of a Services-Based Approach
"
Review
In this module...
In this module...
In addition to the Microsoft® Solutions Framework (MSF) Process Model for
Application Development, the MSF Application Model is used when designing
business solutions. As you will learn in this module, the application model
provides for a layered, services-based approach to designing applications.
After completing this module, you will be able to:
"
Describe the principles of the MSF Application Model.
"
Identify the service layers of the MSF Application Model.
"
Explain the value of the MSF Application Model in designing solutions.
58
Module 3: Services-Based Approach to Solution Design
! Services-Based Approach
Slide Objective
To provide an overview of
the services-based
approach.
Lead-in
In this section, you will learn
about the concepts behind
the MSF Application Model.
"
Definition of an Application Model
"
MSF Application Model
"
Definition of a Service
"
User Services
"
Business Services
"
Data Services
"
Example of Services
"
Services-Based Application
In this section...
In this section...
There are several ways to approach application design. Microsoft advocates an
approach that considers the layers of an application as the key to successful
design. The MSF Application Model identifies the services layers that enable
you to design modular, distributed applications.
In this section, you will learn about the MSF Application Model, including the
differences between user, business, and data services
Module 3: Services-Based Approach to Solution Design
59
Definition of an Application Model
Slide Objective
To generally define an
application model before
discussing the specifics of
the MSF Application Model.
Lead-in
Before we look at the MSF
Application Model and its
composition, let us first look
at what an application model
is.
"
One piece of an organization’s enterprise architecture
"
Describes how applications should be structured within
the organization
"
Used to promote consistency and reusability across
application development efforts
An application model is a conceptual view of an application that establishes the
definitions, rules, and relationships that will structure the application. It serves
as a basis for exchanging ideas during the logical design of an application. An
application model is simple and intuitive to enhance communication. The
emphasis is logical, not physical. The application model shows how the
application is structured, not how it will be implemented or deployed.
A simple analogy helps to understand the concept of a model. When someone
mentions a house, we assume, without knowing any particulars, that the house
has an entrance, bedrooms, bathrooms, a kitchen, and so on. Even if a particular
house differs from this model (for instance, it may have a sleeping loft rather
than bedrooms), the model serves as a starting point for discussing form and
function.
Similarly, an application model describes in general terms what an application
is.
60
Module 3: Services-Based Approach to Solution Design
MSF Application Model
Slide Objective
"
A model for designing n-tier, client-server applications
"
To introduce the MSF
Application Model as the
basis for understanding the
services-based approach.
Defines an application as a logical network of
cooperative, distributable, and reusable services
Lead-in
The design for the MSF
Application Model was
based on the experiences
gained from working on
enterprise applications.
Delivery Tip
Do not focus too much on
the graphic, because it will
be presented in greater
detail in the next several
slides.
The MSF Application Model:
"
Promotes a consistent approach to the design and development of
client/server applications.
"
Provides a standard set of definitions for the application logic in a
distributed, n-tier application.
"
Makes it easier to use component technology to implement distributed, ntier applications that have the flexibility, scalability, and maintainability
needed to address the needs of mission-critical, enterprise-wide
applications.
"
Shifts from the traditional view of monolithic applications supporting
specific business processes to the concept of systems of interoperable
applications built upon a common set of components.
"
Describes a way of consistently applying the skills and resources of an
application development organization across multiple projects.
"
Defines a framework for organizing teams, introducing parallelism into the
development process, and identifying required skills.
Module 3: Services-Based Approach to Solution Design
61
Definition of a Service
Slide Objective
To define a service and to
provide a lead-in to the
more detailed content on the
different types of services.
"
$
Is accessed through a published interface
$
"
Can be bought, built, or reused
$
Lead-in
The MSF Application Model
defines an application as a
logical network of services.
To better understand what
that means, let us take a
look at what a service is.
A unit of application logic that performs an action
Is valued by the consumer, not the supplier
MSF Application Model has three categories of services
Business
$
Explain that the consumersupplier relationship is a
metaphor for the interaction
between services.
User
$
Delivery Tip
$
Data
A service is a unit of application logic that implements operations, functions, or
transformations applied to objects. Services can enforce business rules, perform
calculations or manipulations on data, and expose features for entering,
retrieving, viewing, or modifying information.
The MSF Application Model is a paradigm for structuring applications. In the
model, an application is constructed from a logical network of consumers and
suppliers of services. These services can be distributed across both functional
and physical boundaries to support the needs of many different applications.
62
Module 3: Services-Based Approach to Solution Design
User Services
Slide Objective
To establish what a user
service is and distinguish it
from other types of services.
Lead-in
The first of the three service
categories is the user
service.
"
Units of application logic that provide the function
behind the user interface
$
$
$
Provide the navigation functionality to
a user interface
Facilitate communication between the
user interface and the business services
Control user interface elements
User Services
The user of an application can be a person or another application. Therefore an
application’s interface may be a graphical user interface and/or a programmatic
interface. Consider the graphical user interface of an application as form, while
the user services provide the function behind that form. The user services also
provide the interface for other systems.
An application’s user services manage the interaction between the user and the
application. To achieve this requires an understanding of the user, the activities
they will need to perform, and the interaction styles best suited to the different
combinations of user and activity.
Module 3: Services-Based Approach to Solution Design
63
Business Services
Slide Objective
To establish what a
business service is and
distinguish it from other
types of services.
"
Lead-in
The second of the three
service categories is the
business service.
Units of application logic that control
the sequencing and enforcing of
business rules
$
$
$
Ensure transactional integrity
Facilitate communication between
user services and data services
Transform data into information by
applying business rules
Business Services
Business services transform data into information through the appropriate
application of rules.
A well-designed business service isolates business-rule enforcement and datatransformation logic from the service consumers — user and other business
services — and from the underlying data services. Isolating the businessservices logic from the user and data services yields the following advantages:
"
Flexibility in deciding how and where to deploy the business services.
Possible choices include components on an application server and stored
procedures located in the database management system (DBMS) or even on
the client.
"
Improved maintainability of business rules and logic by isolating changes
from the application’s user and data services. This isolation allows the
developer to make changes in how business decisions are made, while not
having to worry about updating or changing the underlying data stores or
the client front-end.
"
The ability to transparently replace implementations of business services.
For example, the set of business rules embodied within a set of business
services may vary from country to country; however, the interfaces to those
services remain constant throughout their application.
64
Module 3: Services-Based Approach to Solution Design
Data Services
Slide Objective
To establish the
characteristics of a data
service.
Lead-in
The third of the three
service categories is the
data service.
"
Units of application logic that provide access and
maintain the integrity of the application data
$
$
$
Maintain availability of persistent
application data
Facilitate communication between
the business services and the data store
Provide the low-level ability to
define, create, read, update,
and delete data
Data Services
Data services are the units of application logic that provide the lowest visible
level of abstraction used for the manipulation of data. Data services maintain
the availability and integrity of both persistent and nonpersistent data. Data
services control and provide access to data in such a way that business services
need not know where the data is located, how the service is implemented, or
how it is accessed.
Data services implement the data storage and representation of relationships
that relate the business schema onto the target data store. These services are not
restricted to permanent, nonvolatile, or structured data. Data services can be
designed to access and manipulate any data store.
Module 3: Services-Based Approach to Solution Design
Examples of Services
Slide Objective
To further explain services
by using an example.
Lead-in
You begin the design by
identifying high-level
services that are based on
the need of the users. You
then break those services
down into their specific
service categories to
highlight the different types
of services.
"
High-level Service: Show Current Timesheet
"
Service Category Breakdown
$
Display Timesheet (user service)
$
Fill Timesheet (user service)
$
$
Retrieve Timesheet Information (business service called
by Fill Timesheet)
Get Timesheet Data (data service called by Retrieve
Timesheet)
The functionality of a time-reporting system can be described by using user
services, business services, and data services.
65
66
Module 3: Services-Based Approach to Solution Design
Services-Based Application
Slide Objective
To illustrate the relationship
between the services of the
application model and the
user interface and date
store.
User Interface
Lead-in
The MSF Application Model
service layers are
sandwiched between the
user interface and the data
store.
Presentation
Layer
User
Services
Service
Layers
Business
Services
Business
Layer
Data
Services
Data
Layer
Data Store
The application model provides a logical, three-tier, services-based approach
for designing and developing software applications and business solutions. In
this definition, an application is a logical (not physical) network of cooperating
services that must function and work together to achieve a common goal.
These services can be distributed across both functional and physical
boundaries to support the needs of the business solution. The possible breadth
of application of each service allows for parallel development, better use of
technology, easier maintenance, and increased flexibility in the distribution and
deployment of each logical service in the solution.
Module 3: Services-Based Approach to Solution Design
Activity 3.1: Identifying Services
Slide Objective
To introduce the activity.
Now that you have learned about the MSF services-based approach to design,
you can apply the services-based approach to everyday activities.
In this activity, you will identify the layers in a provided scenario.
After completing this lab, you will be able to:
"
Demonstrate your understanding of the concepts of user interface, user
services, business services, data services, and data store.
67
68
Module 3: Services-Based Approach to Solution Design
! Value of a Services-Based Approach
Slide Objective
To introduce this section
"
Reusability
"
Flexibility of Distribution
"
Parallelism in the Development Effort
"
Other Benefits
In this section...
In this section...
Now that you know what the services-based approach to design is and have
practiced using that approach, you will learn about the value of the approach.
In this section, you will learn about the advantages that a services-based design
affords the design team during the solution-design process.
Module 3: Services-Based Approach to Solution Design
69
Reusability
Slide Objective
To highlight how the
modularity of design allows
for service reuse.
Lead-in
Traditionally, multiple
solutions meant multiple
implementations of similar
logic. With the servicesbased approach, application
logic can be shared, thus
ensuring logic consistency
and saving development
time.
Traditional View
Application 1
Application 2
Product
Services View
Customers
Customers
Application 3
Application 1
Application 2
Orders
Customers
Product
Orders
Database
Customer
Database
Customer
Database
Orders
Database
Monolithic Services
Product
Customer
Database
Network of Cooperating
Services
Traditionally, applications have been developed independently, each project
focusing exclusively on its own needs. This approach produces applications that
have an extremely narrow focus. In these independently developed applications,
features and informational views that should be consistent across multiple
business applications are unlikely to be similar in function or appearance. In
this case, when a business rule or information view changes, each application
that works with it will also have to be modified.
Delivery Tip
Point out the area of overlap
between the two
applications. These services
have to be designed and
developed only once. They
can then provide consistent
service to all applications
that use them.
By using a services-based, modular approach, developers can design and
implement systems whose applications operate not only through shared data,
but also through shared business logic, by running on components located both
on application servers and on shared pieces of user interface running on a client.
70
Module 3: Services-Based Approach to Solution Design
Flexibility of Distribution
Slide Objective
GUI
GUI
Browser
User
Services
User
Services
User
Services
User
Services
Business
Services
Client
Multitier,
Internet/Intranet
Messages
Business
Services
Data
Data
Services
User
Services
Business
Services
Data
Services
Business
Services
Data
Services
Data
Services
Data
Services
Data
Services
DBMS
DBMS
DBMS
Servers
The MSF Application Model
provides maximum flexibility
for distributing services
where it makes the most
sense for those services to
reside.
Multitier
GUI
Client
Lead-in
Thin Client,
Fat Server
Fat Client
Servers
To show some of the many
ways that the services could
be distributed.
DBMS
The services-based approach provides maximum flexibility to deploy
application logic where it best meets the performance and usage requirements
of the application. It also supports greater interoperability. With today’s
technologies, services are provided with a transparency of location, enabling
them to be distributed in the best configuration for the particular business
solution, whether that means all on one client machine or across multiple
machines around the world.
Module 3: Services-Based Approach to Solution Design
71
Parallelism in the Development Effort
Slide Objective
Milestone
1
To show that using the
services-based approach
enables parallel
development efforts.
Lead-in
If applications are designed
by using the services-based
approach, then they can be
segmented into five distinct
parts that can be worked on
in parallel.
Milestone
2
User interface
User services
Business services
Data services
Database
One of the major advantages that the application model for solution design
offers is the ability to do more than one development task at a time. Because the
application model defines an application structure as having five distinct parts,
each of these parts can be worked on in parallel. In the past, with monolithic
implementations, all development had to be done sequentially, because there
were no distinctions between the different types of functionality.
72
Module 3: Services-Based Approach to Solution Design
Other Benefits
Slide Objective
To provide additional
benefits of using the
services-based approach.
Lead-in
In addition to the three
benefits just mentioned, this
approach is beneficial in a
few other key areas.
The MSF Application Model:
"
Provides a consistent approach to application design
"
Provides a framework for designing n-tier, distributed
applications
"
Provides a model for managing the complexity of
distributed application design
"
Provides the ability to leverage the specialized skills
and tools required
"
Eases the adoption of new technologies
By using a consistent approach to application design, applications can be
designed, developed, and implemented more uniformly. This provides
increased opportunities for reuse.
The three categories of service defined by the MSF Application Model map
closely to three skill sets for client/server application development. The
traditional approach to client/server architectures has always separated data
from user interface and business rules. By using this approach, you can divide
the complexity of a distributed application design into smaller, more
manageable pieces.
A distributed, component-based implementation makes it easier to incorporate
new client and server technologies. For example, a new set of user services
could be developed to incorporate new interaction techniques, such as voice
recognition or handwriting, without having to reengineer the application’s core
business services.
Module 3: Services-Based Approach to Solution Design
! Review
Slide Objective
To reinforce module
objectives by reviewing key
points.
Lead-in
In this section, you will learn
some practical guidelines for
practicing the concepts of
this module, and you will
test yourself on your
understanding of those
concepts.
"
Guidelines
"
Review Questions
"
Looking Forward
In this section...
In this section...
73
74
Module 3: Services-Based Approach to Solution Design
Guidelines
Slide Objective
To present some general
guidelines related to the
information in this module.
Lead-in
The following are some
general guidelines to
consider.
To design a successful solution, you should:
"
Create multiple service-layer designs
"
Separate business and data services in designs
"
Design user services to facilitate user interface
implementations
All new applications should be designed by using service-layers. This type of
structure will lead to better applications that can be more easily extended and
updated in new versions.
It is especially important to distinguish between the business and data services.
In the past, many designs blurred the line between business and data services
considerably. Separating these services in the application design will allow for
more flexibility during development and can aid important factors such as
scalability for an application.
When designing user services, keep the proposed user interface in mind.
Because user services will directly interact with and provide services for the
user interface, it is important that they work well together and that the
combination provides the necessary functionality.
Module 3: Services-Based Approach to Solution Design
75
Review Questions
Slide Objective
To reinforce module
objectives by reviewing key
points.
"
Describe the principles behind the MSF Application
Model
"
Identify the service layers of the MSF Application Model
"
Explain the value of the MSF Application Model in
designing solutions
Lead-in
The review questions cover
some of the key concepts
taught in this module.
1. What is the MSF Application Model?
A set of standards and guidelines for designing distributed, multitier,
client/server applications to implement by using Microsoft componentbased tools and definitions.
2. What are the service layers of the MSF Application Model?
User services, business services, and data services.
3. What is the value of a services-based approach to solution design?
It provides a modular and distributed approach to design solution
components. This modularity allows for the use of resources, skills, and
assets to help benefit the solution development process.
76
Module 3: Services-Based Approach to Solution Design
Looking Forward
Slide Objective
To provide a context in
which students can frame
what they have just learned
and foreshadow what they
will be learning.
Module 12: Introduction to
Functional Specifications
Module 11: Designing the
Presentation Layer
Module 10: Completing the
Physical Design
Module 9: Designing Solutions
with Microsoft Technologies
Module 1: Course Overview
Designing Business
Solutions
Module 8: Solution Design and
the Component Object Model
Module 7: Selecting Solution
Technologies
Module 2: Solution Design Using
the MSF
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
By learning about the MSF Application Model and the MSF Process Model for
Application Development, you have completed building the foundation for
learning how to design business solutions.
You have learned how a services-based approach enables you to separate and
modularize the parts of a business solution. You have also learned where design
fits into the MSF Process Model.
Next, you will learn how to create a conceptual design for a solution.
Conceptual design begins the design process that will continue through the rest
of the course.