Introduction to XACS system development technology and xacs System Development Technology
The XACS system is based on the Java language and adopts the mainstream open-source technical framework. It follows the principle of low coupling and high cohesion in the module design to achieve simple, fast, and easy-to-use development under common applications; it is easy to integrate and deploy in complex environments for large-scale applications. A good modular design can meet the needs of easy integration with other business systems or single-tube systems, and expand Northbound Interface functions.
XACS adopts the following technologies and frameworks:
1. Database MySQL
The MySQL database is integrated in XACS to control the start and stop of MySQL Data with the start and stop of the system. You do not need to install the MySQL database system.
In practical applications, you can also select other database systems, such as PostgreSQL and Oracle, as Hibernate is used in the system, you can easily switch the database system by modifying the configuration file and importing the necessary database driver.
2. Spring framework
Using the IoC container provided by Spring, the dependency between objects can be controlled by Spring to avoid excessive program coupling caused by hard coding. With Spring, you do not have to write code for underlying requirements such as single-instance mode classes and attribute file parsing, so you can focus more on upper-layer applications.
Spring can reduce the difficulty of using various frameworks. Spring provides direct support for various excellent frameworks (such as Struts, Hibernate, Hessian, and Quartz.
In XACS, Spring encapsulates the Hibernate framework, message processing interface, and service interface based on the IoC feature of Spring. Spring manages various application instances in the system. In addition, the automatic injection mechanism reduces the amount of code.
3. Database ORM framework Hibernate
Hibernate is an open-source object relationship ing framework that encapsulates JDBC objects in a lightweight manner, so that Java programmers can use the object programming thinking to manipulate the database as they wish.
Hibernate supports multi-database features. In XACS, you can modify the configuration file to replace the system database.
4. Message bus JMS technology ActiveMQ
ActiveMQ is the most popular and powerful open-source message bus produced by Apache. ActiveMQ can be easily embedded into the system using Spring.
The message bus mechanism is used in XACS to deploy the system on multiple servers for Data Interaction in distributed systems.
5. Web framework Wicket
Apache Wicket, usually known as wicket, is a lightweight component-based, event-driven Java web application framework. It makes it easy to develop web applications. Wicket uses a POJO data beans component so that it can be combined with any persistent layer technology.
Wicket features:
A) The view layer and control layer are separated according to the MVC design principles;
B) Fundamental objects of model design;
C) automatically manage the sincerity of the object;
D) extremely high development efficiency;
E) the learning curve is very low.
6. Web Container Jetty
XACS integrates open-source Java web containers and uses the Jetty server as a component, which facilitates Server Management and enables quick start and stop under integration conditions.
Because XACS complies with the standard Web architecture in Web applications, it can also be easily transplanted to Tomcat, JBoss, and other Java to run.
Comparison between XACS and OpenACS
XACS has referenced OpenACS implementation in TR069 protocol implementation. After studying the OpenACS system source code, it has improved OpenACS and re-designed the user interface from a simple and easy-to-use perspective, the following is a comparison from multiple perspectives.
|
XACS |
OpenACS |
Comparison |
Web capacity |
Jetty |
JBoss |
JBoss is a heavyweight J2EE container and is also a container and server for managing ejbs. Because EJB is available in OpenACS, you must also select the corresponding EJB container, but in this way, it lacks portability. Jetty containers are lightweight Web containers that are easy to use and can be started quickly. XACS can also be transplanted to other Web containers. |
Data Persistence |
Hibernate |
EJB |
The Entity Bean is used in OpenACS to implement O/R ing. Hiberante is used in XACS. The Hibernate framework aims to free developers from tedious data persistence programming and improve development efficiency. |
Web Framework |
Wicket |
Richfaces, Facelets |
Richfaces and Facelets are the user interface component suites for JSF. They are rarely used in China and are a heavyweight development technology. They are difficult to learn and develop and are relatively less efficient. Wicket is developed quickly and easily. By separating the MVC template, it is easy to implement the interface Demo and system development and debugging. |
Database |
MySQL |
MySQL |
The MySQL database of OpenACS is a separate database. If it is migrated to another database, you need to modify the database design and perform additional debugging. XACS is an integrated MySQL database. Of course, you can use an external database and replace the database easily. |
Multi-system support |
Windows/Linux/and other systems supported by JVM |
Linux |
OpenACS can only run in Linux. Currently, only the Linux version is available. You need to develop OpenACS in other systems. The XACS code is out of the system restrictions. In addition to the database needs to be adjusted according to different systems, the system can run on multiple system platforms. |
Message Bus |
ActiveMQ |
JBoss MQ |
OpenACS uses the message bus provided by JBoss, which is inferior to ActiveMQ in terms of performance and is not as good as ActiveMQ in terms of multi-language support, scalability, and ease of use. |
In addition, from the perspective of development, XACS can develop the entire system through an Eclipse project, while OpenACS can develop EJB and web development zones separately, you need to modify many JBOSS configuration files before applying them to the JBOSS container. XACS supports Ant scripts to directly generate system compressed packages and can be further changed to the Daily Build script. Although OpenACS allows users to write their own js scripts as test cases for cpe testing, this method is rarely applied by testers in actual situations, most testers are still used to providing testing methods for the operation interface.
XACS performance indicators
Test server hardware: CPU: I5-3230; Memory: 8 GB
When the default reporting cycle is 1800 seconds (30 minutes), when the number of devices reported is 10000, the processing rate is about 5.6 per second, and the stack allocation and recovery through jvisualvm are basically stable.