Objective
With the popularization of the Internet, more and more people choose to shop online. The competition for online stores is also in full swing. In addition to the usual discount promotions, there are timed snapping and a love-hate second kill activity. The large number of users accessing the store at the same time is a great challenge to the hardware and software performance of the e-business system. Once the performance is not up to the requirements, or access interruption, the loss is not only a large number of turnover, but also the decline in user trust, resulting in user churn. Therefore, more and more enterprises in the purchase of E-commerce software, not only focus on its functionality, performance has become a serious consideration of important aspects.
E-commerce performance problems often appear in a large number of users at the same time transaction, the page response speed is slow, and even a system error occurred. There is also in a short period of time, even if the system load did not change, the system performance has significantly decreased, resulting in the system can not be stable operation for a long time. These problems will seriously affect the user trading experience, and bring direct or indirect significant economic losses to the enterprise.
IBM WebSphere Commerce, based on WebSphere application Server, is a very sophisticated e-business application solution for Business (business-to-business) or Enterprise to Customer (business) for enterprise users, and is the first choice for a top enterprise. is recognized as the industry's leading e-business solution. It provides a next-generation solution designed to address the business's e-commerce needs and help businesses of any size to support their customers on demand. WebSphere Commerce provides a tightly integrated set of software modules that help enterprise customers achieve fast, highly automated, and trans-channel marketing and sales processes.
In recent years, with the explosion of China's E-commerce market, WebSphere Commerce in China more and more customers, the local implementation team is increasingly demanding. In terms of performance improvement, it is better to perform high-performance design during the implementation period than to tackle the problem after performance problems occur. To optimize and improve the performance of e-commerce system requires not only strong theoretical knowledge, but also strong practical experience. This series is based on the author's actual participation in the WebSphere Commerce e-business application background, based on the theory and Practice, the detailed introduction in the actual development and maintenance work of the specific use of experience, in order to help development and service personnel in the product development and early on the line can do performance optimization.
WebSphere Commerce supports multi-channel (multi-channel) access, where the Web is the primary access channel, so the discussion in this series is based on performance optimization in WEB applications. This article will not cover the content of High-performance programming, as it will be a much larger knowledge system. This article provides, is for the function design completes, before the on-line can do some performance optimization principle and the practice.
Basic Conceptual model
WebSphere Commerce is not an isolated system, it is based on a complex application on WebSphere, such as an error: The reference source was not found as shown is a basic WebSphere application concept model, which is itself made up of WEB servers, application servers, and database servers , a firewall is set up between the three layers of the system and between the WEB server and the extranet to improve the security of the system. In many cases, content distribution networks (CDN) are used to cache static content. Therefore, considering the performance of the system is not only to consider the performance of the application, you should fully consider the client, proxy caching server, WEB server, WebSphere application server and database server performance.
Figure 1. WebSphere Application System Conceptual model
Performance concerns for e-business applications
For the performance of E-commerce applications, the general focus on the following several typical aspects:
Page/Client response time: The response time directly affects the end-user's experience, which in turn affects user loyalty to a large extent.
Server throughput: The number of transactions that the system can handle per hour is common. For example, the maximum number of web browsing times that can be accepted per hour, and how many orders can be taken per hour by an E-commerce website.
Maximum number of concurrent users: under normal operating conditions, the system can withstand the maximum number of simultaneous user access and has no significant impact on the response time experienced by the user.
Long-term Stability: Any ecommerce site does not want its own system to be slower or even downtime, which can make a very bad impression on the end user, which also brings great losses to the business. Whether the application service system can run stably for a long time is not only related to the hardware of the server, but also has a great impact on the software itself.
Maximum data size: Current hardware/software conditions, to ensure normal access to the maximum tolerance data scale.
Scalability: As the volume of business increases, flexibility to increase the system's business processing capacity by adding hardware.
Most of the performance optimization of e-commerce system is to promote the above several performance concerns as the goal. And for each goal, can start from many levels.
For example, if you want to reduce the response time of a page, you first need to understand what factors affect the response time. The browser's page request is sent over the network to the CDN and the WEB server for resolution. The WEB server is then sent to the application server for processing. If a dynamic cache hit, the response result is returned directly, and the application server executes the command and calculation if it is not hit. If there is a database access requirement, it is sent to the database server and returned after execution. After the entire server is processed, the response begins to be transmitted over the network to the browser end, and the browser parses and draws the response, and finally displays it on the browser. The above is a simple response time calculation model, if it is in the case of large concurrency, there will be in some steps of contention and waiting for resources, response time calculation will be more complex.
Figure 2. Composition of page response time