Non-functional requirements of information management systems in large enterprises and enterprises & Technical Reference of software architecture
Management information systems generally have three typical architecture models.
The main non-functional indicators are compared as follows:
Figure: three typical architecture Modes
Generally, the product model is suitable for customers with a large number of similar functional requirements.
Software developers are pursuing marginal benefits of software, such as anti-virus software, office software, and drawing software, which are generally highly universal and suitable for product models, in terms of enterprise strategy, we generally focus on the share rate, build brands, and reduce the unit cost through a large amount of sales. Management information systems of large enterprises and institutions generally have a large number of individual needs. Obviously, they are not suitable for most cases.
The project model is another extreme
, Fully tailored to the needs of enterprises, but there are also many disadvantages: generally limited by the ability of the development team, investment in financial resources, and other reasons not designed according to high scalability and flexibility, affecting system maintenance; generally, the implementation cycle is long. It is common for more than six months, and some may even last for several years. A large team needs to be maintained continuously, with a large overall investment; statistics show that the failure rate of custom development projects exceeds 50%, which is highly risky.
Of course, sometimes you can only choose this mode, such as the needs of extremely personalized, cannot find similar products or platforms.
An intermediate model is "Platform"
"Service" mode, which can take into account the advantages of the first two modes
Public platforms and most of the standard modules can be selected. On top of them, personalized expansion is carried out through secondary development, modeling, and other means to meet the individual needs of enterprises, is the most reasonable choice for most large enterprises and institutions. Selecting a good architecture for large enterprises and institutions is more important than fully functional. In this mode, individual needs can be met through "services, A good balance can be achieved in terms of meeting Personalized Requirements, reducing the total cost of ownership (non-one-time investment), improving future expansion and adjustment, and integrating with existing systems. The Service mentioned here refers to professional services, which are different from the installation, configuration, training, and a small amount of secondary development. A professional service system based on the division of labor in the industry needs to be established. Nowadays, many enterprise-level management information system providers claim that their software is a platform-based architecture that can meet the needs of large group enterprises. In fact, the platform-based level of these products is uneven (most products are poor ).
Many large enterprises in the group do not have sufficient experience in selection. It is extremely wrong to pay attention to functional requirements and ignore non-functional requirements (I feel very obvious. The larger the number of enterprises and institutions, the higher the proportion of non-functional requirements in the entire selection and evaluation system during the selection of management information systems, and the one-vote rejection of key indicators.
Many large enterprises in China have invested an astonishing amount in informatization. Some enterprises have 17 projects in terms of CAPP, involving four re-selection. If the scale of some enterprises is not large, there will be three sets of PDM products, which are not integrated with each other, and most of them are not suitable for use. Many of them are caused by non-functional reasons,
I have seen too many cases of system failure due to non-functional reasons. The reasons are as follows:
(1) It adopts the traditional C/S architecture and does not support the Internet. When an enterprise expands its business scale, it only needs to change the system. Repeated investment falls to the second level. Data (knowledge) there are many problems with migration and inheritance. If several sets of C/S systems are implemented in each location, integration problems will occur.
(2) because the traditional C/S structure is adopted, and clusters and cache middle-Layer servers that can reduce database load are not used, the database servers will be overwhelmed when the enterprise's data volume and number of users increase, the system performance is declining, but it is powerless.
(3) The scalability and flexibility of the system are insufficient, such as limited workflow modeling and non-pluggable module architecture. It is difficult to meet the needs of enterprises for personalized expansion and the on-demand changes after business adjustment, IT strategy cannot be supported, but it affects the adjustment of enterprise strategy. Some enterprises have two layers of skin, and they do not run according to the IT system at all.
(4) Some enterprises have completely customized and developed their own information systems with a full setSource codeThe system is easy to expand and adjust. In fact, such a system is generally not designed based on scalability and flexibility. Once the core members leave the company and the documents are incomplete, the consequences will be more serious.
In general, the following non-functional requirements should be taken into account when selecting management information systems for large enterprises and institutions:
(1) high concurrency of massive data: Generally, large enterprises and institutions have thousands or tens of thousands of users, and the amount of data involved may be several TB or even dozens of TB, performance requirements under application conditions should be clearly stated.
(2) Internet-based distributed applications: Generally, large enterprises and enterprises have multiple branch structures that span cities, provinces, and even countries. Generally, they must be based on the Internet. The traditional C/S model cannot meet their needs, the relationship between centralized management and distribution management must be well handled.
(3) integration of heterogeneous systems: Generally, large enterprises have various information management systems, which may be heterogeneous, operating systems, and architecture technologies, therefore, how to integrate with many information systems is a challenge.
(4) Business process customization: to conduct new businesses or optimize existing businesses, the system should provide powerful business process customization functions, it must be closely integrated with forms, permissions, task management, and email.
(5) Comprehensive customization capabilities: In addition to business process customization, data Structure customization, function module customization, form customization, report customization, main menu and Home Page customization, and permission customization should also be considered.
(6) architecture changes as needed: for large group enterprises, it must quickly adapt to IT strategies and IT strategies must quickly adapt to enterprise strategies. In addition to comprehensive customization, the system architecture design must be able to change as needed; otherwise, it will imprison enterprises.
(7) Security: omitted
I will summarize the non-functional requirements of large enterprises and institutions as follows:
Figure: major non-functional requirements of large enterprises and institutions
It is impossible to provide the most reasonable software reference architecture technology for information management systems of large enterprises and institutions. In fact, there is no so-called optimal reference architecture, the optimal architecture is based on the cost, progress, functional requirements, non-functional requirements, technical conditions, human conditions, external conditions, and so on. Based on our experience, although there is no optimal reference architecture, there are some best practices and reference values.
||We recommend that you use the B/S (Browser/Server) mode or the Smart Client mode. For example, xbap is a kind of smart client, which can improve the interactive experience for enterprise applications in the B/S mode. Silverlight is also a Smart Client technology.
|High concurrency, massive data, and performance
||Three-tier architecture and above are recommended: the middle layer uses technologies such as cluster, Server Load balancer, and cache. The presentation layer uses performance optimization technologies such as delayed loading, multithreading, Asynchronization, and paging. The database uses technologies such as SQL Performance Optimization, indexing, partitioned tables, materialized views, disk arrays, clusters, and data warehouses. Low bandwidth can also be compressed for transmission.
||Check whether there are high availability requirements. For example, to build a high-availability cluster and maintain the software and hardware of the server without service interruption, You can suspend the use of a server in the cluster for temporary maintenance, for example, you can dynamically add and remove hardware from a high-availability cluster.
||Encrypted transmission, encrypted storage, electronic signatures, identity authentication, access control, backup and recovery, hierarchical management, and audit management. The importance of security for large group enterprises is self-evident.
| distributed and integrated
|| the system itself is based on SOA (a service-oriented architecture ), SOA provides a distributed communication programming framework, which is very important for the complex application environment and integration needs of large and medium-sized enterprises.
In addition, it provides excellent support for centralized management and distributed management. Generally, small systems adopt centralized management, which is impossible for large enterprises. However, the lack of centralized management increases the difficulty of management and increases management costs.
|Scalability and flexibility
||Built on the platform and plug-in system. The platform provides many standard optional modules (which can be subdivided by domain or industry), rather than completely customized. Use mainstream secondary development environments and languages for development. Provides workflow modeling capabilities, preferably mature commercial workflow engines. It is best to provide data model Scalability (often ignored), preferably object-oriented. Provides customization capabilities for various forms. The status model (or lifecycle model) is closely related to permissions, processes, data, and so on. It is best to customize it. You can customize the main menu, home page (similar to Web Part), menu, and other UI interfaces. It is recommended that the permission module also has Scalability (different data types ). Integrates open commercial report engines (such as Crystal Reports ).