[It168 technical analysis comment]
Recently, itpubCommunityIn the ERP section, a user who has been using ERP for many years, Li Xin (not his real name), complained that U9 was using a large number of stored procedures, I also question the world's first SOA-Based ERP system U9. What is the concept of its SOA design architecture reflected in?
The information-related sections of the community have gathered a majority of domestic ERP implementation consultants to discuss the product lines covering mainstream ERP products and technologies at home and abroad. After Li Xin's post was published, he immediately triggered an uproar in the itpub community. As many as ERP consultants and selection experts and implementation technical netizens attended the discussion and expressed their opinions.
Figure: yonyou U9 product SOA concept and architecture being questioned
Misuse of ufida erp memory error process?
The reporter found that almost all core computing of U9 is implemented through the storage process, including MRP computing, ATP computing, cost computing, and password encryption.AlgorithmIt is also implemented in the stored procedure. The entire system uses over stored procedures and over scalar functions similar to stored procedures.
Alone1998, a netizen, said: "pure SOA does not advocate the use of stored procedures/functions, and the database is only considered as a place to store data. All business logic is not implemented in the database, and the business logic is implemented on the application server. From this perspective, U9 is definitely not a strict SOA architecture. However, in actual use, there is a problem with pure SOA architecture efficiency, which requires frequent data reading and writing and high hardware requirements (one of our ERP systems uses a similar architecture, 4 Minicomputers are used as application servers and Oracle Database UNIX operating systems ). to solve this problem, we need to break this mode. The compromise is to restrict the use of stored procedures. This requires careful system design. It is unclear whether UFIDA has done so ."
When the reporter interviewed other technical staff, they expressed the opposite opinion, believing that the design concept of SOA is not directly related to whether to use a large number of stored procedures.
"Other ERP products, such as Oracle EBS, also use a large amount of stored procedures. It is totally wrong to use this to accuse and question the SOA design philosophy and R & D technical strength! We can discuss whether some business logic computing must be implemented in the background through stored procedures ." A technical consultant who has been engaged in ERP implementation for many years said in an interview.
The ERP system involves a large number of business logic processing and computing operations, and all these business logic processing and computing operations are implemented in the background database. It does seem to be contrary to the idea of hierarchical design architecture. The idea of hierarchical development and design is that business logic Computing should be encapsulated at the business logic layer as much as possible, rather than putting all of it down to the database layer for implementation.
"If business logic processing and computing are directly implemented using stored procedures, it is not conducive to reuse, nor is it conducive to cross-platform migration of databases (because the SQL standard implementation of most database systems is different, stored procedures that can run normally in a DBMS should be overwritten almost all on another platform). When we are working on a project, if developers do this, it is regarded as a result of laziness." Xiao Li, a Project Director engaged in CRM system development, believes that.
According to the reporter's understanding, there are also critics who believe that U9 now puts the middle layer to work on behalf of the database server, apparently putting the cost pressure on the database server. In addition, security is also a problem, because the system storage process is generally open, and anyone can modify it at will, posing a risk to system stability and security.
"If you use a stored procedure to implement MRP computing, if the computing workload is large, the server's resources will inevitably be exhausted. Once MRP computing is performed, everyone will not be able to work. In addition, this kind of computing resource consumption is unable to know the progress at the front end. Like a dead end, it certainly cannot know when it will end. A large amount of computing results in deadlocks and even paralysis. Based on my past experience, it is very difficult to count more than 100 concurrent jobs, which is unreliable (data loss, crashes, etc ). To reach 200, it may be difficult to purchase the best server ." An ERP Technical Implementation consultant with database management experience thinks so.
Zhang Jintao, manager of the EBU platform development department, explained that the ERP software needs to process a large amount of business data and core computing is implemented through the database storage process. On the one hand, it aims to reduce network data traffic, improve data processing efficiency; on the other hand, make transaction processing and control ratio at the database level in ApplicationProgramIt is more efficient to use distributed transactions and consumes less resources. Another problem is flexibility. A well-designed storage process does not need to be modified when the business logic or rules change.CodeYou only need to modify the stored procedure, which can reduce maintenance costs and upgrade costs for users and software developers. In addition, expansion also has a system robustness and security problem, in non-Telecom-level commercial network environments (for example, most enterprise LAN), minimizing device nodes and layers means higher reliability, minimizing data exposure and transmission over the network means higher security.
In addition, he admitted that using stored procedures may cause system defects. "One drawback of the stored procedure is that it is inefficient for non-data-intensive operations and may occupy too many CPU resources of the DB server, however, the powerful application server's computing power is idle. In addition, for distributed applications that emphasize collaboration, the excessive concentration of computing power reduces flexibility to a certain extent, after all, it is no longer the era of large hosts."
Finally, he thinks that using a large number of stored procedures in U9 products is a more appropriate approach, not all right. "For commercial software, whether or not to choose a stored procedure for core computing cannot be generalized. It should be comprehensively considered based on the characteristics and performance requirements of specific applications, in this process, reliability and effectiveness often play a major role."
This article Reprinted from: http://tech.sina.com.cn/s/2009-08-13/10501026131.shtml