From: http://www.cnblogs.com/sunli/archive/2011/02/19/mobile_architecture.html
Today, I attended the Baidu technology Salon held by infoq, "Analysis of basic mobile Internet technologies-wireless search and HTML5 development ", in the last open space session, I presided over the topic "characteristics of the mobile Internet system architecture". Now I will record some of the points of the discussion.
(1) concurrency
Compared with wired Internet, the network speed of mobile Internet is still in the narrow band period, and most network accesses are slow connections. A request takes longer network connection time than a request on the wired Internet. Under the same server QPS, the number of concurrent connections is higher than that in the wired Internet mode. Although the number of concurrent connections on the Web server is very easy to expand by adding machines, pay attention to this problem.Use Asynchronous Network I/O whenever possible.
(2) Traffic
Compared with the subscription billing method of wired Internet, mobile Internet users are basically limited by-traffic subscription mode, which is expensive. Users prefer low-traffic systems, which is the reason for the success of UC browser.
Therefore, in the system architecture, if the client browser supports gzip, try to compress the content as much as possible. If it is an app client program, it is best to use compressed transmission content.
The web page content should be as concise as possible, URL connections should be compressed as much as possible, and baseurl should be omitted.
(3) Security
Online payment for wired Internet is currently very mature. When you make a payment, you can jump to a bank's website or client to make a payment, making users feel safe.However, the mobile Internet service may make payments through API, and users may feel insecure. In this way, some websites may also steal users' money. However, the bank can solve this problem through text message authentication.
The property loss caused by the loss of mobile phones may cause malicious payment. Then the report function is provided. A friend from Feixin said that Feixin could launch a mobile phone number to report the loss and solve the problem successfully.
(4) Speed Optimization
Because of the slow speed of the mobile network, the speed optimization should be paid more attention. For example, JavaScript and CSS files are merged.
Whether the interaction between the app and the server is accelerated using the custom protocol.
Network Operation Failure Handling.
(5) Compatibility
The mobile internet terminal type, screen resolution, and browser type are ever-changing. Even the same browser of a mobile phone can adapt to the screen mode and zoom mode. So many types make page compatibility development very difficult. There are usually dozens of mobile terminal testing machines in the company. Although some vendors provide such service testing services, it is not difficult for developers. For wired Internet websites, You Need To debug IE, Firefox, and chrome browsers.
(6) integration with wired Internet
Most websites are dominated by wired Internet, and mobile Internet versions are also released. However, the features of mobile versions are often reduced, leading to some missing features. Therefore, functions should be unified from the product perspective.
Therefore, the functions of wired Internet, mobile websites, and app clients are unified.
(7) Statistical Analysis
The user behavior analysis statistics of the app client software can be periodically sent to the server. The client collects user operations first, analyzes them, and periodically compresses the results and sends them to the server.Mobile websites can collect statistics by means of server logs and JS probes (only supported by mobile phones in WAP2.0.
(8) test environment simulation
Some people say that the company has developed an app client which is perfect for testing in the company. One day, when developers took out their cell phones on the train and used them on the subway, they found frequent crashes when the network was unstable. So how can we conduct a simulated test in this scenario?
(9) Monitoring of real user access speed
Although some vendors currently perform Speed monitoring and analysis on the mobile Internet over mobile networks. However, their points are basically fixed, which may be good signals. So what is the real user access speed of our applications? How can we make statistics?
According to the application type, some applications may be used at home, companies, and other places with WiFi and good signals. In many cases, some applications are used in poor signals, so the use of third-party monitoring is not completely reliable.
(10) demand changes are more frequent
Due to the characteristics of mobile businesses, real-time requirements for demand changes are higher. How can we quickly and efficiently implement demand changes without affecting system performance? This poses some challenges to mobile developers. Can I only work overtime?
Conclusion: The above figure shows the characteristics of the mobile Internet architecture compared with the wired Internet, most of which are the same as those of the wired Internet, such as the database architecture and Storage Architecture.
From below: http://www.cnblogs.com/sunli/archive/2010/12/20/imcp.html
Next we will introduce the architecture practices of the mobile Internet system using the mobile phone Phoenix network as an example.
I believe that a good system architecture needs to begin with the product requirements, and I also believe that the performance optimization of a system must also be based on the product requirements, therefore, I spent a lot of time analyzing why to design a content platform and how to design such a system from the perspective of product design. This is the system architecture, finally, the system architecture is based on how to optimize the performance to meet non-functional requirements.
As a developer, I have experienced a period of rapid development of the fixed Internet. In the past, we often developed different websites, such as video display systems, news sites, and other content-based systems. In order to improve development efficiency, we abandoned the complexity of website development.CMS system. For example, the CMS system (php168, phpcms, etc.) and portal CMS (customized large-scale CMS system) that are common for Small and Medium websites, CMS system simplifies the difficulty of website development, moreover, a high-performance and stable site can be built without special technologies.
At the beginning of this year, mobile GPRS fees were lowered, 3G networks were developed, and smart phones were widely used. The traffic on our mobile phone Phoenix network increased significantly. As far as I know, many companies have seen high traffic growth (see the third page of the PPT ).
The development of mobile Internet poses a higher challenge to programmers:
1. Multiple operators(China Telecom, China Mobile, China Unicom, and Wi-Fi users). The rate of mutual access is the same as that of China Telecom's North-South communication over the fixed Internet.
2. multiple terminals(Super many mobile phone types, screens, systems, browsers), more adaptation problems (unlike fixed Internet, only IE6, IE7 and Firefox, chrome are compatible)
3. varied demands(Fast requirement). Due to rapid development, the performance of the developed system will be low after a period of time, and the system will often go down. The pressure on programmers will be great. (PS: the wireless technicians of a certain company are already two dead)
4. Traffic surgeThe system must have higher performance and scalability.
5. Almost no static page(Adaptation, output different content based on client and other customer information). Static HTML can be generated on the fixed Internet, and CDN can be used to improve performance, mobile Internet has higher performance requirements.
The architecture of the previous version (wapcms) of the mobile phone Phoenix network uses the common JSP + MySQL + linuxi architecture. (Page 5 and 6 of the PPT ).It is expanded through MySQL master-slave replication, and the front-end uses a self-developed reverse proxy for cache (which integrates the business logic code ).Due to frequent code updates and the addition of many new JSP sites, the code is very difficult to maintain and the performance is very low. At that time, more than 10 machines had to cope with more than 10 million PVS/day, and there would be downtime. You may say that the performance of this system can be optimized. Yes, it can be optimized, and the performance is very low. However, it may not be long before the system is optimized because it is insufficient to cope with the new requirements, then, performance will decline. So we need a system, as Facebook proposed at the meeting, "how to keep the website fast". Yes, it is necessary to keep the website fast, with high performance and stability, no matter how hard the developers are, the system is always fast and the performance is very high. Therefore, we have developed an imcp system.
Imcp (ifeng mobile content platform) is not only the system of our WAP website, but also provides Phoenix Mobile Station, video client, and Phoenix news client. It supports live activity broadcast and online code development, the average performance of a single machine reaches 1800 + PVS/day. On our platform, developers can develop high-performance websites simply by calling the SDK method provided by the system without considering performance issues.
To the PPT page 9th. In order to design a general system platform as much as possible, we split the webpage. We believe that,Web pages are composed of sharable blocks. These blocks contain editable static html blocks (manually edited), automatically generated lists (article list) blocks, recommendation spaces (manually selected by editing), and document blocks.Generally, news sites on the fixed internet can be composed of these blocks. Because our mobile Internet is based on dynamic pages, we also add logical blocks to control the logic of all blocks.
Because developers often need to develop a site similar to the main site for Nokia, but some sites with different content usually need to copy a copy of the code. So we plan againSplit the code into logical blocks for reuse, and reuse pages as much as possible. You can create a site online without the involvement of the O & M department.Therefore, we plan to store our code in the nosql code library, store all the code managed by nosql, and perform online editing through the background. When you access the front-end, go to nosql to get the code for running. Automatic Code deployment across machines and data centers is achieved through nosql master-slave replication.
In this mode, developers only need to perform online development in the background, and do not need to worry about the IP address servers on which the Code runs, and what IP address storage and database to connect, everything is transparent. To get the content of an article, you can directly getdoc (ID.
Ppt13-22 page for some background interface demonstration
The content after the PPT can be basically understood. What makes sense isOur front-end is completely based on nosql dataThis is also a successful use case of nosql. Since the PPT is clear, I will not elaborate on it in detail. The code running performance monitoring on the last page is of reference significance to many friends. by monitoring the code running status, you can view the system's trust in the running performance status in real time.
This time, velocity China 2010 gave me the biggest impression that all companies have underlying teams dedicated to helping developers simplify development complexity and automate the improvement of system performance, stability (so that developers no longer care about these issues ). The same is true for our imcp system. Developers do not need to care about cache or performance. As long as we use the functions provided by our SDK to build a system, the website is always very efficient and the development speed is very fast.