System Architecture Design Notes (78)-Application Server Technology

Web application development has roughly gone through three stages.

In the first stage, everyone uses the server extension interface provided by the Web server to develop in C or Perl languages, such as C GI, API, etc. This method allows developers to freely process various different Web requests, dynamically generate response pages, and achieve various complex Web system requirements. However, the main problem of this development method is that it requires a high quality of developers. It is often necessary to understand the underlying programming methods and understand the HTTP protocol. In addition, debugging of this system is also quite difficult.

In the second stage, everyone started to use some server-side scripting languages ​​for development, mainly including ASP, PHP, Livewire, etc. The implementation method is essentially to put a universal scripting language interpreter on the Web server, which is responsible for interpreting various scripting language files. The primary advantage of this method is to simplify the development process, so that the development of the Web system is no longer the job of computer professionals. In addition, because these languages ​​generally adopt the method of embedding scripts in HTML, it is convenient for the artists and programmers in actual development to cooperate in stages. For some languages, interpreters under multiple platforms are provided, so the application system has a certain sense of cross-platform. However, the main problem of this development method is that the scalability of the system is not good enough. Once the system is busy, it lacks effective means to expand. In addition, from the perspective of a picky person, this approach is not conducive to the implementation of various performance-enhancing algorithms, cannot provide high-availability effects, and the integration effect will be relatively poor.

In order to solve these problems, a new Web application development method has emerged, that is, the application server method. Currently, application servers have become a very critical middleware technology in e-commerce applications. Nowadays, major software vendors have used application servers as the basis of their e-commerce platforms, such as IBM's Websphere, Oracle's Internet application server, and Sybase's Enterprise application server.

1 The concept of application server

Application server is a new technology generated under the rapid development of enterprise-level applications on the Internet today and the emergence and rapid expansion of e-commerce applications. Through it, an enterprise's business activities can be safely and effectively implemented on the Internet to realize e-commerce. . It is not a software in the traditional sense, but a platform that can provide e-commerce through the Internet. In the distributed, multi-layer structure and enterprise-level application development based on component and server-side programming, it provides a platform for development, deployment, operation, management and maintenance. It can provide the function of software "cluster", so that multiple different, heterogeneous servers can work together and back up each other to meet the availability, high performance, reliability, and scalability required by enterprise-level applications. Therefore, in a sense, the application server provides an "enterprise-level application operating system."

Application servers that implement J2EE specifications are called J2EE application servers. Business opportunities in modern society are fleeting, and e-commerce applications require the rapid development of powerful systems. Application server can help enterprises quickly build an Internet-based e-commerce system, and has extremely high stability, scalability and security. It can:

(1) A more reasonable division of labor and enterprise-level application development, speed up application development, and reduce application development

The application server separates system functions from business functions, allowing programmers to concentrate on business functions. More and more components are built/deployed in the system, and when it is a distributed architecture, system functions will become more and more important. The more complex it is; at the same time, the demand for reliability (load balancing, fault tolerance, and failure recovery) will also increase. Developers only focus on the functions of the coding business, and have little interest in system-level functions. Because the realization of system-level low-level functions generally requires very complex professional skills, the reasonable separation of function realization can allow for the optimization of skills.

The modular approach adopted in the development of the application server provides a large number of reusable modules. A new system can be completed quickly by combining some existing frameworks and modules, plus certain development. The newly developed code can be used as a module for reuse in the future, which is very important for reducing development costs and increasing development speed.

In addition, in order to facilitate development, some application servers also provide a development version of the server for various debugging tasks. The application server generally also provides an integrated development environment, which integrates local editing, uploading, project management, and debugging tools, so that the development work is completed in one interface. There are also some development environments that provide the development environment of the back-end system at the same time for simultaneous development and management. In addition, some products have built-in automatic code generators, database design aids, etc., such as ORM (Object Relation Mapping, object-relational mapping), etc., which effectively increase the development speed and reduce the amount of application development.

(2) Platform for application design, development, deployment, operation, management and maintenance

Application server is not only a platform for application development, including the design mode and programming environment of the presentation layer, application layer and data layer; at the same time, it is also a deployment and operation platform for multi-layer structure applications, which configures, starts, monitors, and adjusts multi-layer structure applications , And assume different responsibilities at different stages of development.

Design: The application server completes the low-level communication and services, and shields complex low-level technical details, and provides users with a programming interface with simple structure and complete functions, allowing users to concentrate on the design of business logic.

Development: The application server provides a completely open programming language and application interface, and users can work with any development tools they are used to. In addition, the application server itself also provides tools and means for rapid development to help users improve development efficiency.

Deployment: The application server can be deployed on any hardware platform, any operating system, and can be distributed in a heterogeneous network. The application server helps users configure system parameters in a complex network environment to maximize the performance of the system and have the best Stable and reliable.

Operation: The application server adopts open technical standards, which provides a complete standard implementation, that is, provides a system operating environment, and any system based on the same standard can run well in this environment. During operation, it provides services such as name resolution, routing, load balancing, and transaction control of the application system, and provides functions such as system fault tolerance, repair, migration, upgrade and expansion. Management: The application server allows users to conveniently manage their own resources through a graphical interface, and can dynamically monitor and manage them while the system is running.

(3) Make the application independent of the underlying platform, facilitating the realization and expansion of business logic

A good application server can make the application independent of the operating system/database platform by providing extensive support for the operating system/database platform, or adopting platform-independent technologies, such as J2EE. Obviously, it can ensure that enterprise applications have good portability and protect the company's investment in applications and development skills. On the other hand, under the fierce market competition, the business logic of an enterprise cannot remain unchanged. With the expansion of production and operation, the first problem that needs to be solved is to conveniently expand the existing business system on demand. And upgrade. Application server technology can solve this problem well because it adopts a three-tier structure system. The application server regards the business process as a single layer, and customers can concentrate on designing this layer according to their own business logic. Application servers can provide this design capability. When customers expand their business, they only need to focus on improving the design of the middle layer, and the original system can be upgraded smoothly and conveniently.

(4) Provide ready-made, stable and robust, flexible and mature infrastructure for enterprise applications

In the competition of building e-commerce applications, many companies have no time to calmly "work out" an e-commerce architecture system. Through the application server, you can immediately have a mature architecture, including the basic platform, standards, application development tools and prefabricated components. On the other hand, with the accelerating pace of economic globalization, many companies serve the world. Computer business systems need to provide 24-hour uninterrupted services. The stability of the system under heavy load and long-term operation is crucial. . The application server guarantees this through a distributed system. The performance is: when the system processing capacity is not enough, it can be solved by simply adding hardware; dynamically adjusting the load between different hosts can maximize the use of system resources and improve the stability of the single machine ; When a machine in the system fails, its work can be undertaken by other machines without affecting the overall operation of the system, that is, there is no single point of failure.

The current application server solutions on the market basically have these functions. Therefore, when purchasing application server products, companies cannot simply judge the pros and cons. Instead, they need to fully understand what their needs are, and then discuss the On technical issues, determine the solutions that suit you, and finally find products that use these solutions to complete your own system.

2 Main application server

2.1 BEA WebLogic

BEA Web Logic, as a new generation of Java-based Web application server, is a product that meets the high performance and reliability requirements of Web sites. While providing traditional application server functions, it also provides many functions for today's Internet technology and Java technology, and it complies with the latest Java standards.

Installing Web Logic is very easy. The Web Logic EJB Deployer Tool provides control over managing multiple EJB .jar files and configuring Web Logic Server deployment features and resources. The Deployer Tool supports two-level EJB deployment legitimacy testing. It automatically checks features and references to ensure that they contain the correct values, and verifies that the classes required by key EJBs conform to the EJB 1.1 specification.

A graphical utility called the Web Logic Zero Administration Client (ZAC) Publishing Wizard allows users to create, publish, and manage software packages including applications, applets, or Java code libraries. ZAC enables users to develop client-side Java applications and package and distribute these applications.

2.2 IBM WebSphere

IBM's Web Sphere emphasizes its integration in application development (Web Sphere Studio and Visual Age for Java), database (DB2) and messaging service (MQseries). These products form the basis of the company's overall e-commerce product strategy. Web Sphere provides a reliable platform for developing e-commerce applications by supporting multiple platforms and complying with the latest Java standards.

The installation of Web Sphere is simple and easy. The control of the WebSphere server and the applications it runs is performed in the WebSphere Advanced Management Console. Since WebSphere can run multiple servers, the user must start each server process separately from the console. If you must reboot the system,

Web Sphere can remember the current status of each different server and automatically restart the running server. IBM provides other products such as Web Sphere Studio and Visual Age for Java that are designed for the development of Java-based applications. The advanced and enterprise editions of Web Sphere are shipped with IBM's DB2 database products and Secure Way lightweight directory access protocol server. The Enterprise Edition includes a component agent application adapter for connecting to external databases, CICS, IMS or MQSeries applications.

2.3 SUN iPlanet

The i Planet application server produced by i Planet, a product of the alliance between SUN and Netscape, meets the requirements of the latest J2EE specification and has passed the test of a full set of J2EE certificate test suites.

The basic core services of i Planet application server include transaction monitor, multiple load balancing options, comprehensive support for clustering and failover, integrated XML parser and extensible format script language conversion (XLST) engine, as well as comprehensive internationalization stand by. Tight integration among other i Planet products including Directory Server, Web Server, and other accessories for EAI (Enterprise Application Integration) has been achieved.

The IPlanet Application Deployment tool is a Java-based program that can guide users through the deployment process of an application. iAS provides a standalone product i Planet Application Builder integrated with third-party tools such as Web Gain Studio, Inspire Juilder, IBM Visual Age, and Sun Forte for Java Enterprise Edition.

2.4 Oracle Internet ApplicationServer

There is no doubt that Oracle’s database products are market-leading products on multiple platforms. With this unique advantage, Oracle’s Internet Application Server (iAS) has been integrated with other Oracle products. For example, you can use Oracle iAS to Web deployment of any Oracle Forms Service based on Oracle Forms applications.

Oracle uses some extended Apache Web Server as the entry point into Oracle iAS. iAS Manager is a tool for configuring and managing applications, providing a unified interface for comprehensively operating various system management functions.

Oracle has developed a plug-in box module for Apache to handle Java applications, Perl programs, PL/SQL programs, and secure web pages on SSL. The plug-in box module is a shared library that can implement program logic access. One or more plugin box instances can be run in the plugin box module, including PL/SQL plugin box, Jweb plugin box, LiveHTML plugin box, Perl plugin box, C plugin box, ODBC plugin box, etc.

iAS allows the development of applications based on CORBA objects, and the communication protocol adopts IIOP. iAS supports the following two application modes: CORBA application and EJB application. Both modes allow different CORBA customers to access. iAS Enterprise Edition is configured with Oracle Portal. Oracle Portal provides the tools needed to deploy enterprise information users. Oracle iAS is a key component of the company's strategy to push applications to the Web. Oracle customers can easily put their Oracle Forms and Oracle Reports to run on the Web. However, Oracle iAS is also more expensive.

2.5 Sybase Enterprise ApplicationServer

Sybase Enterprise Application Server (rEAServer) closely integrates and develops Sybase's Jaguar C and Power Dynamo. It is an enterprise-level application server platform that simultaneously realizes Web online transaction processing (Web OLTP) and dynamic information publishing. It provides extensive support for various industry standards, conforms to the component-based multi-layer architecture, is an application server product that supports all major component models, and in its latest version strengthens the deep support for Power Builder components and EJB. In this way, users can use the flexible development capabilities it provides, make full use of the diversified computing environment, and build a more efficient enterprise Web application system.

EAServer supports a variety of component models, various components can be combined in the same application, supports standard scripting languages ​​and any customer type, and integrates the Power Site development environment to make Web application development and submission convenient and quick. In addition to excellent performance, EAServer also supports multiple database access methods, providing users with reliable security.


Guess you like

Origin blog.csdn.net/deniro_li/article/details/108807929