Business Reference Architecture: Enterprises to Consumers (B2C)
Chapter 1: Business Demand and Design Model
Microsoft Corporation
May 2001
Abstract: This chapter discusses how to design consolidatedretail.com (it belongs to the business needs of the consumer (B2C) website, using Microsoft Business Reference Architecture), and summarizes the actual business requirements determined during this application design. This chapter also provides a 3rd floor application model and phase design process of Microsoft Solutions Framework, MSF.
Please note: Although the business needs mentioned here are only limited to the ability to install the reference example, this "Developer Guide" is very useful, through these clues, you can Upgrade to meet the needs of the production environment.
Introduction
When web users are defined for e-commerce sites, general users may answer the e-commerce site is the online store that can be purchased with a credit card. Although this definition is quite correct, it has not fully illustrated the characteristics of various e-commerce sites currently developed for Internet. In the rapidly developed Internet business era, an efficient e-commerce website is not just a web-based store.
Users are getting higher and higher for e-commerce sites. If a site can't meet their requirements, they will discard it. So what are the requirements of the user for e-commerce? The following table lists some of the main issues that affect application design.
Easy to use / navigation performance High anonymous shopping Maintenance User profile security can improve competitive advantages through a variety of device access sites through manageability
Sketchy, in the above problems, some should be resolved by the application designer, and some seem to be resolved by the enterprise decision makers or basic structural experts. However, if you think about these questions carefully, you will understand why these questions are related to the design of the application.
Easy to use / navigate
The website should be easy to use and navigate. After all, companies do not want consumers to encounter difficulties when buying their own products, and consumers are more willing to consume at the site where they can easily find the checkout page.
One way to make the site is easy to use is to ensure that you are familiar with similar methods on common tasks. This means that the goods can be stored in the shopping basket or basket before consumers complete the purchase (or "checkout"). This metaphor is convenient for people who are not familiar with the computer to understand how to work, thereby caring.
Make the site easy navigation than you first imagined. The Web is completely working in a non-linear manner, and the user clicking on the link is often unpredictable. Therefore, you should make sure that the site is always fully consistent interface regardless of the user is currently seeing, and ensures that you can access important web pages (such as homepage, shopping baskets and user account) just click on a link. Information is located, etc.). On the consolidatedretail.com site, the top flag always contains the page where the shopping basket is located, the consumer account is located and the link to the home page, and the search and directory links are always included on the panel on the left.
There is also a way to ensure that users can find the desired content in the site, which is to include a list of product lists or directories in a logical way. If you divide a directory into several categories and many possible subcategories, you can easily find the products they are interested in. In addition, users should provide search capabilities so that they can be searched when they are not very clear about the display position of some product.
If your site is easy to use and navigate, the consumer will be happy to use. Conversely, if it is more difficult to use, the consumer may discard it, and select the site.
High performance
Among the design of the website, there are many factors affecting its performance. Since different people have different requirements, it is also acceptable to person. Try to minimize response time
Most people think that the site for providing acceptable response time is a good performance site. The response time refers to the amount of time that the user can wait for the time before requesting a certain operation. Ideally, we all want the operation on the site to be executed instantly; Therefore, when designing an e-commerce site, we should minimize factors that have a negative impact on the response time (although they cannot completely exclude them).
The key to e-commerce optimization is to reduce the time consumed to perform operations such as checkout, so that consumers will not give up their purchase of goods because of the queue waiting, you will not lose orders.
Try to enhance scalability
Another important aspect of performance is "scalability." This refers to the ability to add a resource to increase the capacity of the resource. From a user point of view, this means that the site can provide an acceptable response time when a large number of users access the site at the same time. Many developers often get the frustrating news: When the user reaches a certain amount (this quantity is the number of actual life requirements), the performance excellent test site can not be dealt with in the development machine.
So how can we maximize the scalability of the site? Two typical methods are "upward expansion" and "outward expansion".
Expand upward
The first method ("upward expansion") is to enhance the processing power of the server by using a better and / or faster CPU, a larger RAM, faster disk, and the like. This method is very effective, especially on the data layer, some large databases on this layer require relatively strong processing capabilities. However, due to the increase in hardware costs with the processing power, the closer the server, the closer to the top, and this method is more inclusive.
Outward extension
"Outward" is solved from another aspect, namely the "cluster" (or server collection, also known as the "Web field") to share processing workload. The Web field costs more costly, and provides more flexible, scalable solutions. When the load on the site increases, you can easily add the server into the web domain.
Microsoft® Windows® 2000 Advanced Server and Windows Network Load Balanter Server, Windows Network Load Balancing, NLB services, display the entire Web field as a logical server with a single IP on the Internet. After receiving the request, the request is distributed to the server according to the load situation, which can communicate with the backbone network or communicate with the database server. Figure 1-1 shows the basic architecture of the web domain.
Figure 1-1: Web field
Manage the status in the web domain
One of the most important issues is one of the most important issues in the web domain. The status is the session data that must be retained between two user requests; for example, during the user's continued browsing site, it is necessary to maintain the original article in the user's shopping basket. This is necessary, even if each user request may be processed by different servers in the Web field.
Many ASP developers use the Session object to store status data. However, this method should usually avoid using this method. To optimize the software architecture of the site to implement in the server domain, the web front end prohibits maintaining user status in memory. If the front-end server maintains user status, the following issues will appear:
The user session will be included in a particular server (session dependen), which will destroy the request to the server to the server's network load balancing policy. In addition, the reliability of the server domain will also be damaged because the user session cannot be transferred to other servers when the original server fails (and lost session status information in its memory). Memory resources are consumed by the front-end server in the details of the storage user session state, thereby reducing memory available to process requests and cache content. If a popular site can attract a large number of users in a short period of time, the memory demand in status maintenance may be very large. For partial resolution of memory requirements, Commerce Server uses a high speed cache. Cache will be made to the configuration file architecture, discounts, and business activities. In addition to avoiding session correlation, avoiding the front end operation with a long-term operation to be associated to design the front end operation as a fast execution. Since IIS is to handle requests with a buffer pool, the buffer pool contains the number of worker threads thus limited, and thus when these threads have been occupied and the average time of the incoming request is taken when the operation is waiting for a long time. It will increase. Anonymous shopping (browse)
Usually, users are reluctant to log in to the site for forced to log in to the site for the sale of sites. Therefore, the site should allow users to browse goods in anonymous manner without authentication, and even allow them to put some of the items into the basket.
Maintain user profile
When the user accesses the site again, they do not want to re-enter the same information entered when the last visit is entered. Once you provide your own shopping and contact information to your site, users want the site to remember this data.
To achieve this, many sites maintain their user "configuration file" information for each registered user. In most cases, users need to register in order to provide minimum amount of profile information such as user names and passwords. The user then assigns a unique identifier that can be used as the master key of its configuration file data.
After the user is registered on the site, its configuration file information can be saved in the database to call when needed later. Typically, users can add some necessary information, specify some details, such as email addresses, phone numbers, delivery addresses, or any other personal information that allows users to add.
Keep the user profile information is quite useful, whose reasons are as follows:
You do not have to re-enter the data when accessing later. Can be used to analyze the activities of users at sites. Can be used as a personalized basis, allowing you to publish a flag advertisement or discounted activity based on a particular user group. It can be used for business analysis, such as tracking the purchase trend based on a particular profile value.
Improve competitive advantage through manageability
Although application designers are not responsible for business decisions (such as pricing, advertising activities, etc.), the design of e-commerce solutions has a huge impact on how companies deal with market trends and competitors. The management activities carried out by the business manager are subject to the management function of e-commerce site. To succeed, e-commerce solutions must be easy to use, and must have a comprehensive management infrastructure.
There are two basic choices for the design management interface for e-commerce sites. You can create your own custom interface, or you can use a "ready" solution such as Microsoft Commerce Server 2000 Business Desk.
If you build your own management interface, you will be able to design the site management functionality in accordance with your own wishes. However, this will increase a large number of software projects that have been largely developed, which is almost equal to or greater than the workload of the software project itself. By default, Commerce Server Business Desk can meet most of the management requirements of e-commerce sites, if you need to add other features by creating custom modules.
The rest of this chapter will illustrate the actual business needs confirmed during the planning phase of the project, as well as the application models and design processes used in the design of the consolidateDretail.com application. Reference application business needs
Before designing applications, you should clarify which tasks must be performed. Analysis Business Demand is one of the most important steps in application development. Confirm that the purpose of business needs is to create a solution that can meet retailers and consumers. In this way, the demand is converted into a business demand document, which can be used as a guide to the development of the entire project.
This section summarizes the actual demand determined for the reference architecture application consolidatedretail.com. Please note: Business requirements used here are intended to be capable of having a relaxing reference example.
Functional Requirements
ConsolidateDretail.com is designed to meet the following functional requirements:
Easy navigation
The site should be easy to navigate. The link should be clear, easy to understand and practical. Users should be able to move freely between pages and screens.
Easy to use
Applications should be easy to use. You should easily purchase the product and access the "Checkout" page.
The site should use an easy-to-understand metaphor, for example: store the optional item in "Shopping Basket" until the shopper is ready to checkout
Each page on the site should appear exact interface. Important pages or common pages should be accessed only by clicking once.
Availability test
The site should make people who are not familiar with the computer easily understand.
Site Access
Users can access the site by the following methods:
Enter the URL from other sites or email links to links to access
Maintain user registration / configuration file
Regardless of any page from the site, the user must be able to register, so that users do not have to re-enter the same information every time you order. Users can browse the site without registration; but must be registered when checkout. In addition, request registration when applying for email news, special notices, etc.
Registration involves:
Profile information: User name, payment address, main delivery address, phone number and email address. Authentication information: User identity (user ID) and password should be kept in the application. Payment information: Users should enter credit card information and save this information. Applications should be able to save multiple credit card numbers. Preferences: Users should be able to specify whether to get email notifications about delivery status (the default value is "yes"), and whether to get notifications for sales prices and specials (the default is "No"). Address Book: The user should be able to store any plurality of additional delivery addresses.
Keep the user profile information is quite useful, whose reasons are as follows:
You do not have to re-enter the data when accessing later. Can be used as a personalized basis, allowing you to publish a flag advertisement or discounted activity based on a particular user group. Can be used for business analysis, for example, tracking the purchase trend based on a particular profile value.
User registration management
After the user logs in and after authentication, the user should be able to modify, add, or delete registration information. In addition to the User ID field, all other fields should be an editable field.
Login / Authentication
After the user returns to the site after registration, he or she should be able to log in from any page from the site.
Browse
Users should be able to browse the directory. On the home page, the directory list should be displayed to the user. After the user selects a directory, it should display the subcategory or actual product.
Anonymously browse
Users should be able to browse the directory in anonymous manner; ie: the user should be able to view the product without having to log in.
Multi-directory
Applications should support multi-directory. Summary of multi-directory products should be transparent to users.
Products and categories
The application should allow the product to be associated with one or more directories.
Product page
Applications should have a product page, including larger pictures of the product project and / or detailed description of the product item. On this page, the product should be added to the shopping basket. On this page, the user should be able to:
Add product items to your shopping basket to browse the next project to browse the last item Back to the previous page
product search
The homepage and all types of pages and subcategory pages should be available. Users should be able to enter multiple words. If a user specifies multiple words, a Boolean query using the "AND" operator will be constructed based on these words. If the user is on the home page, search will default to "search all categories". Searches executed in category and subclass page will default to "search in the 'category' range". The user can select a particular site area or a particular category to search to overwrite these default settings.
If the site uses a multi-directory, you will perform a search for all directories. If the site shows multiple directories (and there is a layered product list), no search is made in this rule. In the category / product hierarchical structure, each directory is the first level. In this case, it is default that only the current directory where the user is currently search. Users can override the default settings, select some other directories or the entire site. This is similar to the behavior specified by the previously described "Multi-Directory".
By default, you will search for keywords and titles.
Product search results
"Search Results" page should display a series of product projects and their corresponding categories (or directory). The project should be packet according to the category or directory. Each search result should be provided to a hypertext link to the corresponding product page.
Add a project to the shopping basket
Regardless of the product page, users should be able to add one or more items to the shopping basket. These items can come from different directories. Each time you add a project, the number of items in the basket will also increase accordingly. The number is displayed next to the basket icon.
Manage shopping basket
Users should be able to manage shopping baskets at any time. Users can specify a project "Active" (actually purchased tag) or "reserved" (identified as a future possible purchase). Users can check the following options when shopping baskets:
Delete a single item. Changing the number of each item. Retain any items for future purchase. Delete all items in the shopping basket. Keep all items in the shopping basket for future purchase. Move the project into the shopping basket reservation (future purchase) area and from the middle. Retrieve the reserved order.
Keep shopping basket or project
Users should be able to retain all items in the selected item or shopping basket for future purchase. Only users who have registered and logged in can retain their items. If the user has not logged in or registered, it will be prompted to do this. After the user completes this, returns to "reserved shopping basket" operation.
Checkout
No matter from any screen, the user should be able to check out. When checkout, all ordered items (shopping basket) will be displayed to the user. At this point, the user should be able to manage the shopping basket. After confirming the items in the shopping basket, the "shipping" screen will appear. Each project will be associated with the main delivery address of the user. Users can replace this address with an address or new address in an address book. If the user adds a new address, he or she can choose to save the new address in the address book.
After the user assigns an address (or accepts the default address) for each project, he or she can go to the "shipping" screen, select the delivery method of each address. The default mode is determined by the site owner. After the user chooses the delivery method, he or she can continue to the "Order List" screen. This screen should be divided according to shipping address. Under each address, item descriptions, project prices, and pricing are listed (if). The price of the project is subjected to a small count, and the shipping cost is listed as a detailed item and submitted a small count, and finally the tax and total amount under this address will be listed.
After the amount under all addresses, the total is listed at the end of the page. Users can:
Accept order modification order cancel order Continue shopping
If the user selects a modification order, he will return to the Manage Shopping Basket page. If the user chooses to cancel the order, the shopping basket will be empty. If the user chooses to continue shopping, he or she should return to the home page.
If the user chooses to accept orders, he will go to the "Payment" page. This information is displayed if the user has stored credit card information in the Registration page. Users can choose to use saved credit cards, or select ignore saved information and provide new credit card information. If the user adds a new credit card message, he or she should choose to add new information to the saved registration information. After users choose or enter credit card information, he or she can:
Cancel order modification order Continue shopping submission order
If the user submits an order, the confirmation page and the order number will be received.
Shipping choice
The following shipments must be supported:
Shipping Hong Kong ground delivery the next day delivery overnight delivery international delivery
Order status notification
Users can choose to receive email notifications about the order status.
Calculation of shipping costs
Calculation of shipping costs Based on the type of carrier (such as UPS) or other rules set by the site owner.
Tax calculation
The calculation of the tax must be based on the rules set by the site owner. These rules should include:
Sales place delivery address cargo type
At the time of checkout, the tax information will be displayed on the Order List.
Order list
The screen displays the address, project description, project price, shipping cost, tax and cost total count (if any).
address book
The registered users are saved in the address book. Although the site owner can set some restrictions, the address book can still store unlimited shipping address information.
Order cancellation
The user must be able to cancel the order at any time before submitting the order. This action will cause all items in the shopping basket to be emptied. But the reserved project will not be affected.
system requirement
Site must meet the needs of the following system:
Globalization
Applications should be able to customize to accommodate different cultural environments. That is: interface color, navigation layout, page structure, and language should be modified.
performance
Users should experience consistent performance at each access to this site. The performance of the site should be as good as other enterprise e-commerce applications being used.
Scalability
Site should expand the extension overhead. If a faster disk and the CPU are added, the response should be faster. If more servers have been added to the Web field, the response should also be improved. The server in the web domain should be able to properly handle the request.
Usability
The site should be in turn on and run, and there should be no fault. It should be able to capture errors, this feature should not prevent users from accessing the site authorized area. Site should be accessible to users at any time.
Manageability
There should be a management interface on the site, used to modify and manage company reports, directories, orders, shipping costs, tax rates, and user accounts.
safety
Site should protect confidential information, such as credit card numbers. Site should display confidential policies and any related copyright information. User IDs and passwords should prevent unauthorized personnel from accessing sensitive information.
Allow access to a variety of devices
Site must be able to run normally on a variety of client devices. Site should work on a low version of browser and high versions of browsers.
Record business needs in document form
After determining the basic demand, you should capture, transfer, and ratify these needs in the "Content / Range" document, which identifies the application business value, demand and restrictions and the person needed to plan, design, and complete the project. After that, you can start designing.
The next section describes the application design models and design procedures used in the creation process of consolidateDretail.com.
MSF application model
The consolidatedretail.com application is designed to follow the three-layer model defined in the Microsoft Solution Frame (MSF). This model divides the service provided by the application into three abstraction layers so that the application obtained has certain flexibility and scalability. Any layer can be changed and will not have a negative impact on other two layers so that applications will be able to improve applications to meet user needs and technological changes.
These three layers are:
Represents Service: The application's representation service is used to render the data displayed to the user and accept the user's input. Business Services: Sometimes called "Application Services", the application's business service enforces business rules. In a typical e-commerce application, this may include: ensuring that the user must authenticate before the order, retrieve the corresponding content according to the user's configuration file, the check is executed in the correct order in the correct order of. Data Service: Data services in your application include logic required to store, retrieve, and modify data, and data integrity rules for applications must be enforced. In e-commerce applications, this may include processing of directory, user, and order data. Note: For more information on MSF, please visit http://www.microsoft.com/msf (English).
Why use the MSF application model?
In addition to the advantages described above, the MSF three-layer application model has significant advantages in reducing development, deployment, and managing applications. The main advantage of using the MSF three-layer mode in the application architecture is reflected in:
Separation: Since the service is separated from each other, each layer of the application can be developed independently of other two layers. In this way, three different development teams work on the same application project. Distribution: Since the logical layer is independent, they can be deployed on multiple servers in a distributed manner. Reuse: Different client devices can use the services provided by each layer. For example, a business service of an e-commerce site can be used by a set of services to provide an HTML interface to the website; or a mobile phone for supporting WAP can also be represented by another group. Some business services can also be configured as a web service in a variety of industries (LOB) applications or trade partners.
In addition to following the three-layer design model, consolidatedretail.com's designers and developers have followed the MSF design process. This process is described below.
MSF application design process
Regardless of the type of effective application, the first step is to ensure reasonable design. There are many ways for software design, and each has its own advantages and disadvantages. When deciding the design process to be used, ensure that the process provides a clear stage that is divided according to the actual software implementation step; ensuring that the process can be adjusted according to the demand variations of each stage.
The MSF application design model not only defines a service-based architecture not only for distributed applications, but also defines a loop design process. In each round of loops, the software is in the "concept" phase, "logical" phase, " The order of the physical "stage is designed.
Conceptual Phase: In the conceptual phase, it will be seen from the challenge from the perspective of users and / or business. The main goal of the concept stage is to define the concept of challenges and solutions. The "Function Manual" document is the final result of the concept phase. Logical phase: In the logical phase, design goals and challenges will be viewed from the perspective of the project development team. The main goal of the logical phase is to map the concept design to a logical component. The group uses the user program (or user case) identified in the concept phase to build the logical model of each component in an object-oriented software solution. Object-oriented solutions load business functions into the software representation of the actual object, which is defined by the "class" in the object-oriented design. Physical phase: In the physical stage, the goals and challenges will be seen from the perspective of developers. The primary objective of the physical phase is to apply logic design to actual needs and constraints. Since the physical stage is a design problem from the perspective of developers, and the task is to define a physical implementation, the results of the physical design phase are technical specifications documents.
to sum up