Collection
zero Useful+1
zero

Enterprise application system

Computer science terminology
The narrow sense of enterprise application system refers to the simple software system running in the enterprise, while the broad sense of application system is composed of three levels: standardized management mode, knowledge-based business model and integrated software system.
Chinese name
Enterprise application system
Foreign name
Enterprise application system
Type
computer science
Discipline
Interdisciplinary
Nature
system
Concept
Simple software system running in the enterprise

introduce

Announce
edit
The generalized enterprise application system consists of three levels: management mode, business model and software system. The business model reflects the advanced management mode in the enterprise, and directly reflects the behavior of the software system. The reconfiguration of the business model is the key factor affecting the reconfiguration ability of the enterprise application system. conventional Enterprise Modeling Methods, such as CIM2OSA and GRA I/GIM, usually focus on how to use different views to fully describe the enterprise, and less consider the dynamic nature of the model itself.
The narrow enterprise application system refers to a simple software system running in the enterprise, while the broad application system is composed of three levels: standardized management mode, knowledge-based business model and integrated software system, as shown in Figure 1.
Figure 1 Hierarchy of enterprise application system
Modern enterprises are facing huge market pressure, which requires continuous changes in business processes to adapt to the changing needs of the market. Process reengineering is also very frequent. Objectively, enterprise applications must be restructured to quickly respond to changes in enterprise business processes. Therefore, the operability and flexibility of refactoring are very important. And, with the popularization of e-commerce. The demand for cross enterprise supply chain collaboration is also increasing. Therefore, there is a need for a technology that can flexibly integrate heterogeneous systems built in different periods and types as well as software systems across enterprise boundaries. Selection of application system architecture! In fact, it is to seek a compromise between the function and complexity of the system implementation. In this context, enterprise application systems based on various architectures or models emerge as the times require.

Application system architecture

Announce
edit
Design and performance are two basic points of actual frame selection, and balance is the main purpose of frame selection. Lightweight frameworks and heavyweight frameworks focus on different issues.
The lightweight framework focuses on reducing the complexity of development, and its processing capacity will be weakened accordingly (such as weak transaction function and lack of distributed processing capacity). It is more suitable for developing small and medium-sized enterprise applications. On the one hand, the lightweight framework is used because the POJOs based method is used for development as far as possible, so that applications do not rely on any container, which can improve the development and debugging efficiency; On the other hand, most lightweight frameworks are open source projects. The open source community has provided good design, many rapid construction tools and a large number of readily available open source code for reference, which is conducive to the rapid development of projects. For example, Tomcat+Spring+Hibernate has become a preferred architecture choice for many developers to develop J2EE applications for small and medium-sized enterprises. With the emergence of alternative frameworks, developers can choose lightweight frameworks corresponding to the three levels of enterprise applications according to their needs. The content in Section 2 of this article is for reference. As a heavyweight framework, EJB framework emphasizes high scalability and is suitable for developing large-scale enterprise applications. In the EJB architecture, all problems related to infrastructure services and underlying allocation problems are handled by the application container or server, and the EJB container provides special system performance solutions by reducing the number of database accesses and distributed processing, which can fully solve system performance problems. The emergence of lightweight frameworks is not a negation of heavyweight frameworks, and to some extent, the two can be said to be complementary. Lightweight frameworks are striving to develop stronger and more complete enterprise applications; The new EJB specification EJB 3.0 is trying to simplify the use of J2EE so that EJB is not only good at dealing with large enterprise systems, but also developing small and medium-sized systems, which is also an effort to lightweight EJB. It is also a good solution to combine lightweight framework and heavyweight framework for large enterprise applications and small and medium-sized applications that may involve capacity expansion in the future.
EJB based heavyweight framework
Because the EJB container can handle system performance, transaction mechanism, security access rights, distributed computing and other issues well, developing based on the EJB framework can ensure the smooth development of enterprise applications, rather than replacing a set of software systems when they grow to a certain scale, and can ensure that developers focus most of their efforts on the development of business logic. Enterprise applications developed with EJB framework must inherit or rely on EJB container. EJB fully considers the requirements of top large-scale projects, and can solve almost all problems involved in enterprise applications. The corresponding EJB based framework is also a heavyweight framework with complex functions.
The EJB 2.1 framework specified in the J2EE 1.4 standard lacks design and is too complex to implement. The goal of EJB 3.0 proposed by the current new specification of J2EE 5.0 is to simplify development. It draws on some ideas based on POJO. Compared with EJB 2.1, it has two important changes: first, it uses the program annotation tool in Java 5, which replaces too many XML configuration files and eliminates the requirement of strict component model; The second is the O/R Mapping model based on Hibernate and TopLink.
The standard implementation of three levels of enterprise applications defined in the new specification of J2EE 5.0 is as follows: the presentation layer adopts JSF (Java Server Face). The core of JSF's development process is event driven. The encapsulation of components and tags is very high. Many typical applications no longer need developers to handle http. The whole process is realized through IoC (dependency injection); The business component layer uses the session bean of EJB 3.0. EJB 3.0 allows developers to develop applications using loosely coupled components. These components are coupled through their own published commercial interfaces, instead of the strict component model that a bean must follow as defined in the EJB 2.1 specification, each EJB class must inherit from an abstract class, and provide a callback hook for the container; The persistence layer adopts the EJB 3.0 entity bean persistence model, absorbs some ideas of Hibernate, and adopts the O/R Mapping mode. EJB QL also has many important changes.
Lightweight framework based on POJOs
Applications developed on the POJOs based lightweight framework can run independently without relying on the EJB container. The lightweight framework technologies corresponding to the three levels of Java enterprise applications have been developed to a certain extent. The popular frameworks for these three levels are as follows:
At present, the popular open source presentation framework mainly includes Struts and Tapestry. Tapestry is different from the Struts application framework in that it is based on components rather than scripting languages (such as JSP and Velocity). Components are composed of a definition file (in XML format), an HTML template, and a Java class; There are also many lightweight solutions in the business component layer, including Spring, Hivemind, etc. However, the most widely used framework is Spring framework, which is based on IoC and AOP (aspect oriented programming). IoC makes it easy to assemble beans, provides concise AOP and implements transaction management based on it, but it does not have the ability to handle distributed applications. The core point of Spring is to support reusable business and Data Access Objects Such objects can be reused between different J2EE environments (Web or EJB), independent applications, and test environments; The persistence layer frame mainly includes Hibernate, various JDO products, and iBATIS. Hibernate is an open source O/R Mapping framework. It encapsulates JDBC with very lightweight objects. It can be used in any situation where JDBC is used. It can replace CMP in the J2EE framework where EJB is used to complete the task of data persistence. IBATIS is a simple SQL Map tool that maps manually written SQL statements in the xml configuration file to Java objects.
Frame comparison of presentation layer
MVC design pattern is no longer the characteristic of a certain presentation layer framework, but the commonness of these frameworks. The Struts framework is relatively widely used due to its early appearance. Its community is very active, and it is easy to find many ready open source function tags for use and sample programs for reference. However, the coarse-grained display of its components in the page and the restrictions of framework classes are too rigid in many cases, which will bring some additional code overhead to the development of the presentation layer. JSF is similar to Struts to a large extent, except that its component concept does not have the limitation that Struts must inherit ActionForm. JSF is more delicate than Struts in event granularity. Another advantage of JSF is that it has the support of Sun Corporation and other large companies behind it. Tapestry is a complete component framework. Tapestry components can be nested and wrapped around other components, so they can be combined to form a larger component or logical page. The behavior pattern of components provides great convenience for Web page programming, and event processing is also very convenient. Therefore, if you want to build a system that requires high flexibility on the page, you can consider using Tapestry.
Business component layer framework comparison
The EJB 2.1 framework is a little too complex, with the following shortcomings: ① The EJB model needs to establish many component interfaces and implement many unnecessary rollback methods; ② EJB deployment description is complex and error prone; ③ Developers cannot test without an EJB container. The EJB 3.0 standard framework developed by the JCP (Java Community Process) has been improved for the above shortcomings. The framework supports all major J2EE vendors. EJB 3.0 and Spring have a common core design concept: passing middleware services to loosely coupled POJOs.
The EJB 3.0 framework is highly integrated with the application server, and the service integration code is also packaged behind a standard interface. On the one hand, EJB framework has mature EJB container support, and enterprise applications based on EJB framework have excellent performance; On the other hand, the EJB container design always looks bloated in its kernel because it considers many functions, which is also a kind of weight performance. The existence of unnecessary things will definitely affect the efficiency. EJB cannot perform configurable cutting on the whole EJB, including EJB containers, according to project requirements. The Spring framework is above the application server and service library. The code for service integration belongs to the framework and is exposed to application developers. Its ability to integrate with application servers is weaker than EJB 3.0. However, the separable configuration of Spring framework modules reflects its flexibility over EJB 3.0.
Persistence layer framework comparison
Container managed persistence (CMP) is a way to manage the persistence of Entity beans in EJBs. The EJB 2.1 persistence model is too complex and has basic defects. The EJB 3.0 persistence layer has made corresponding improvements to the defects of EJB 2.1, adopting a mechanism similar to Hibernate. Hibernate has the following basic advantages: ① Hibernate uses Java reflection mechanism instead of bytecode enhancement program to achieve transparency; ② Hibernate is easy to use; ③ The flexibility of mapping is excellent. It supports various relational databases, from one-to-one to many to many complex relationships. Hibernate also has some disadvantages. It limits the object model used (for example, one persistence class cannot be mapped to multiple tables). Using the O/R Mapping mechanism provided by iBATIS, business logic implementers are faced with pure Java objects. This layer is basically the same as the O/R Mapping through Hibernate. For specific data operations, Hibernate will automatically generate SQL statements, while iBATIS requires developers to write specific SQL statements. Compared with Hibernate and other "fully automatic" O/R mapping mechanisms, iBATIS provides more free space for system design with the workload of SQL development and the concessions on database portability. As a beneficial supplement to the implementation of "fully automated" ORM, the emergence of iBATIS is of special significance. [1]