(Author: Institute of Software FAN Guo Chuang Chen Ningjiang)
Currently in the Internet / Intranet / Extranet environment, most of the enterprise application system uses three or multi-layer application modes. In order to facilitate development, deployment, operation and management of multi-layer structural applications, it is necessary to build a complete application framework based on the underlying technology of network and distributed computing, providing the corresponding support platform as a multi-layer application infrastructure. The key to a support platform is the application server located in the middle layer. Application Server is a platform for creation, deployment, running, integrating, and maintaining multi-layer distributed enterprise-class applications. If the application server combines with the web server, or contains the functionality of the web server, it is called a web application server.
In an enterprise application, the application server can provide the following benefits: Improve the effectiveness of enterprise application development, protect business logic and component reuse; improve the performance of enterprise applications, such as high operating performance and response time, scalability, reliability, etc. To make business applications easier to monitor and manage, reduce system maintenance and upgrade costs. It has become a hotspot in today's industry due to the important role and key position of the application server.
Technical decision camp
From a perspective of implementation, the application server can be divided into J2EE-based solutions, Microsoft .NET solutions, and other technology 3 categories.
In recent years, the most significant progress in the application server market is the emergence of J2EE (Java 2 Platform Enterprise Edition). J2EE is a standard platform based on the development, deployment, operation and management of Sun Company, based on Java distributed applications. It is based on Java 2 Platform Standard Edition (J2SE), inherits many of the standards, and provides comprehensive support for EJB, Java Servlet, JSP. J2EE uses EJB Server as a deployment environment of business components, providing services required by components in the distributed computing environment in EJB Server, such as management of component life cycles, database connection management, distributed transaction support, component naming services, etc. . J2EE is used to implement the application server has its advantage, which can utilize the performance of the Java language itself has a cross-platform, portability, object characteristics, memory management, etc., provides a complete underlying framework for the implementation of the application server. All kinds of services defined in J2EE include JSP and Servlet containers, EJB containers, JDBC, JNDI (Name Directory Services), JTS / JTA (Transaction Services), JMS (Message Services), etc., also provide various application servers. stand by. Currently, J2EE-based application servers mainly include BEA WebLogic, IBM WebSphere, Oracle 9ias, Sun Iplanet, Silverstream Extend, and more.
On the other hand, Microsoft represents another idea on the application server. It can be said that Microsoft's application server solutions also means that a complete Microsoft platform is selected. Microsoft's goal is a distributed web application development environment. It does not provide software or software packages similar to usual application servers, but to see the foundation of Windows NT / 2000 as its application server, with a series of features The package of middleware features to implement the application server platform. Currently, the implementation of the application server is reflected in the Web Application Development Framework of Microsoft named .NET. The .NET strategy introduces many new concepts, including some new technologies, such as web services and C # languages, but .NET is largely developed by Microsoft's previously developed enterprise application platform DNA resolution. Microsoft provides a series of enterprise-class servers in .NET, Microsoft provides a series of XML and Web-based applications, including Application Center, BizTalk Server, Commerce Server, Exchange Server, SQL Server, etc., including Application Center, BizTalk Server, Commerce Server, Exchange Server, SQL Server. Combined with a series of development tools and technologies on the Windows platform (including Visual Studio .NET, ASP .NET, etc.) provide a powerful application server solution. Due to application requirements and technologies, there are still some application servers to use other languages and technology. Macromedia's ColdFusion Server is implemented with a markup language CFML (ColdFusion Markup Language), making it familiar with HTML developers to make application development, which is more advantageous in development and fast productivity. The goal of ColdFusion is to commit to small and medium-sized enterprise applications, but it also has high performance and good reliability, which can still have a certain share in the market. PHP is an open source server-side scripting language that provides an easy programming means for implementing the application server, and the representative of the PHP application server has MIDGARD and PHPLENS. Zope is an open source application server written in the Python language, which also provides a complete implementation framework and means for web applications.
Select standard
Since the function of the current application server product is diverse, the implementation is not the same, and the respective descriptions and understandings are confused. To help companies choose the right application server to build a multi-layer application, quickly implement enterprise information, the author recommends to visit the enterprise application server from the basic characteristics and extension characteristics of the application server.
Basic characteristics refer to the basic operating environment and support standards that should be included in the application server: international standard compatibility, refers to the support level of J2EE and other standards (except); operating system, refers to an operating system platform that supports application servers WEB server, refers to the application server's support policy (such as built-in or integration) and web server products for web servers; data layer support, refers to supported database connection standards (JDBC / ODBC) and database products; object model support, refers to main Support for Distributed Object Models (EJB / CORBA / DCOM).
Extended features describe the features provided by the application server to achieve high performance and competitiveness, including:
Availability refers to the continuity operation of the system in the expected long period of time, ensures and enhances the operating performance and reliability of the application server. Techniques for providing usability have mainly load balancing, failure recovery, caching, etc.
Scalability refers to the increase in the user load, and the system still maintains the same response time. Techniques for providing scalability are primarily a cluster. (It should be noted that the cluster can also be used to achieve availability).
Manageable management refers to the ability to manage applications and deployments on them, including components deployment capabilities, system resources, and performance monitoring and adjustment capabilities. Safety refers to the feature of ensuring applications and data security, including encryption, access control, directory service, authentication, and authorization.
Integration refers to the ability of the application server to connect and integrate with other application systems.
Development effectiveness refers to the ability to support all levels of application development and is used to help improve development efficiency on the application server platform.
Web Services Support Web Services is the standard for e-commerce on the Internet. It allows enterprise applications to access each other through standard protocols, and is also considered to be the standard for enterprise applications on the next-generation iNETRNET, so application servers have necessary for web services.
Trend prospect
In various application servers solutions, J2EE and Microsoft .NET are two mainstream camps, accounting for most of the markets. However, it is necessary to pay attention to the difference is that .NET is a product suite, which is a product strategy, and J2EE is the standard when writing products. For example, in terms of integration of existing systems, J2EE is better than .NET, which can be more easily integrated with Java Connector APIs. Microsoft's solution provides a set of tools for rapid development and deployment applications on the Windows platform, but because Microsoft supports Java support, it affects its accepted level. J2EE's accepted level is high because it defines a specification of the basic service and capabilities of application servers in the Java architecture, providing a feasible way for different manufacturers' application server products. The J2EE application server allows users to create applications created under this standard, more importantly, under the conditions that meet J2EE compatibility, the application components on different application servers can be well interoperable. This reduces the risk and cost of transplant, improves the flexibility of the application, helping to protect users' investment. Therefore, many application server vendors have turned to adopt J2EE standards, and the J2EE application server can work well on the Windows platform.
Although it is difficult to say that J2EE and .NET will win in the competition, it can be sure that the J2EE application server has a practical feasibility, having good prospects, is a correct direction of application server research and development.