Today, with the rapid development of the information industry, competition among enterprises will become more intense. With the continuous expansion of scale and continuous updating of business, enterprises urgently need complete distributed solutions to manage complex heterogeneous environments and achieve complete integration between different hardware devices, software systems, network environments and database systems.
Throughout the development history of human computers, the information industry will undergo cyclical changes every ten to fifteen years. From 1950 to 1970, enterprises mainly adopted the mainframe-terminal architecture, while enterprise application systems adopted the Provide users with resource sharing services in a single, centralized manner. In the early 1980s, open systems and relational database management systems were widely adopted by enterprises. Unlike centralized systems, application logic was dispersed between the master and slave ends. With the popularity of Windows, the 1990s was the era of graphical applications, and the Client/Server architecture was also widely adopted. In the late 1990s, distributed object technology appeared in the information industry. Applications can be distributed on different system platforms, and the mutual communication of objects between heterogeneous platforms can be achieved through distributed technology. Integrating existing enterprise systems into distributed systems can greatly improve the scalability of enterprise application systems. The emergence of multi-tier distributed applications in the late 1990s pointed the way for enterprises to further simplify the development of application systems.
In the traditional Client/Server structure, application logic is usually distributed between the client and the server. The client issues a data resource access request, and the server returns the results to the client. The disadvantage of the Client/Server structure is that when the number of clients increases, the performance of the server will be greatly reduced because load balancing cannot be performed. Once application requirements change, both client and server applications need to be modified, which brings great inconvenience to application maintenance and upgrades, and the transmission of large amounts of data also increases the load on the network. In order to solve the problems of Client/Server, enterprises can only transform to multi-layer distributed applications.
In a multi-tier distributed application, one or more layers of application service programs can be added between the client and the server. This program is called an "Application Server". Developers can place the business logic of enterprise applications on the middle-tier server instead of the client, thereby isolating the business logic of the application from the user interface and providing users with a thin (thin) application while ensuring the functionality of the client. ) interface. This means that if the application code needs to be modified, it can be done in one place (on the middle-tier server) rather than thousands of client applications. This allows developers to focus on the analysis, design and development of the core business logic of the application system, simplifies the development, update and upgrade of enterprise systems, and greatly enhances the scalability and flexibility of enterprise applications.
When enterprises need to establish Web-based commercial application systems, the multi-layer distributed architecture also provides powerful advantages, providing a "thin client" architecture for Web-based commercial applications, allowing browser-based customers to communicate with intranet resources. Enable effective interaction without requiring complex application configuration work on the client side. Multi-tier distributed solutions build bridges between heterogeneous platforms and enable Web-based business applications to be integrated with existing enterprise systems.
At present, a large number of enterprises in our country still adopt the Client/Server architecture, while in Western developed countries, the transformation of enterprises from traditional application systems to multi-layer distributed application systems has become the mainstream in the industry. It is believed that multi-layer distributed systems will be more widely used in our country.
Challenges brought by multi-tier distributed applications
Although the multi-layer distributed architecture provides great advantages to enterprises, it is more difficult to develop multi-layer distributed applications than the traditional Client/Server approach, which brings new technical challenges to developers. It mainly includes the following three aspects:
1. Diversification of distributed object standards
If enterprises want to build multi-layer distributed systems, they must follow distributed industrial standards. What standards are based on directly affects the openness and scalability of enterprise application systems. There are currently three main standards for distributed objects: Microsoft's DCOM, Sun Microsystems' Enterprise JavaBeans/RMI, and OMG (Object Management Group)'s CORBA (Common Object Request Broker Architecture). DCOM is a distributed object standard based on the Windows environment, so the types of supported platforms are limited. RMI and Enterprise JavaBean are distributed object architectures based on Java language, which are suitable for the cross-platform needs of large enterprises. However, the actual application system environment is generally established by multiple different programming languages and relies only on one programming language. Enterprise applications are rare. CORBA is a distributed object standard developed by the OMG organization with the participation of more than 800 large software and hardware companies. It is supported by large companies such as IBM, Sun Microsystems, Oracle, Sybase, Novell, and Netscape. The CORBA standard realizes the integration between different platforms. Communication and interoperability of objects. As long as software vendors follow the IDL (Interface Definition Language) for communication between application objects and ORB, they can provide or obtain services in the form of objects. ORB allows developers to completely eliminate the need to consider heterogeneous platforms, Different communication protocols or different programming languages cause differences, and focus on the development of application logic. It can be seen that CORBA provides an open and flexible distributed standard, which is suitable for enterprises to build multi-layer distributed application systems.
2. The development of multi-tier distributed applications is very complex
If multi-layer distributed applications are developed in the traditional way, developers need to have deep computer system-level knowledge and master knowledge in various aspects such as concurrency, security, scalability, and transaction processing. Moreover, it is necessary to achieve effective management of access to system resources, such as management of threads, memory, database connections, and network connections. These complex tasks greatly consume developers' energy and limit the progress of development work. The development of enterprise application systems requires developers to focus more on the development of business logic rather than wasting more time on system-level development.
3. Distribution and management of distributed applications are also a challenge
Most distributed applications are composed of hundreds or thousands of components, and each component has properties that need to be configured during distribution. Typically, how you configure component properties depends on the platform on which the component is located. Therefore, after the application is distributed, how to manage the distributed components will be a challenge. Managers need to ensure that application components can run correctly, can be located on any machine within the corporate network, and can detect processing errors (including system errors, network interruptions, application errors, etc.) in a timely manner.
In the traditional sense, network system management (such as SNMP) can only obtain the running status of applications by analyzing the status of the host. However, for distributed application systems, an application does not run on a certain host. Therefore, the manager The status of the entire network needs to be managed, which requires the support of appropriate tools.
Requirements for multi-tier distributed applications
Developing enterprise multi-tier distributed applications usually requires the following:
Easy to develop
Although the multi-layer distributed architecture requires deep computer system-level knowledge as a foundation (for example: database, transaction processing, network security, CORBA technology, etc.), for IT developers, it does not require a deep understanding of the underlying complexities of the system. With technology, powerful multi-layer distributed application systems can be developed quickly and easily in a friendly visual integrated development environment (IDE).
Simplify distribution and management work
Developers require the ability to test and modify distributed applications in an integrated development environment to improve application performance, and to achieve distribution and management of applications in the same environment. Since many applications include thousands of components distributed throughout the enterprise, a centralized management tool is needed to manage and control distributed applications and implement error detection and correction functions.
Robustness Requirements for Enterprise Applications
A complete enterprise distributed multi-tier application should meet the requirements of transaction processing, security management, fault tolerance, load balancing, scalability, and high performance.
Features an open, industry standards-based architecture
What enterprises need are open, industry-standard-based solutions that can interact with other standards-compliant systems.
Can be integrated with various databases and existing systems
Enterprise distributed applications must be able to access enterprise data resources, and enterprise data is usually stored on currently popular large-scale databases (such as Oracle, Sybase, etc.), or accessed through TP Monitor (such as: IBM CICS, BEA Tuxedo), so it is required Enterprise distributed systems can be integrated with databases and existing systems.
Support different platform environments
Enterprise multi-tier distributed applications need to support different platform environments. The server side should support Windows NT or UNIX platforms, and customers on different platforms can access applications on the server, including: HTML, Java applets, Java applications, Dynamic HTML, C++ Applications etc.
Enterprise Application Server
Based on the above reasons, when enterprises transform to multi-tier distributed applications, they need the support of application servers, so that different application technologies can be integrated together, making the development, distribution, and management of multi-tier distributed applications easy. Easier. Many enterprises have now used application server technology, which has greatly enhanced the performance of enterprise applications. However, the application server technology currently in use in my country cannot fully meet the needs of enterprises to establish multi-layer distributed applications. These application servers are mainly divided into the following two categories:
Web-based application server
Web-based application servers generally provide a development environment for Web-based Internet applications and are suitable for establishing Web-based Client/Server application systems. In this system, the Web application server usually runs on the Web Server to handle client requests. ODBC and JDBC are usually used to connect to the database. This type of application server is generally easy to use and supports server application development based on EJB (Enterprise JavaBeans). However, the shortcomings of this kind of application server include: it does not support transaction processing, has poor security, has limited support for existing trading systems, and has low performance.
Middleware-based application server
Middleware-based application servers can provide enterprises with more powerful functions by integrating with existing systems (such as TP Monitors), including: transaction processing, security management, fault tolerance, load balancing, etc., but most solutions are based on Client/Server architecture, or limited to three-tier architecture, is not suitable for building distributed Web applications, and does not have an effective development and management environment.
Note: Load balancing is a set of servers composed of multiple servers in a symmetrical manner. Each server has an equal status and can provide external services independently without the assistance of other servers. Through some kind of load sharing technology, requests sent from the outside are evenly distributed to a certain server in the symmetric structure, and the server that receives the request responds to the customer's request independently. Balanced load can evenly distribute customer requests to the server array, thereby providing fast access to important data and solving the problem of a large number of concurrent access services. This cluster technology can achieve performance close to that of a mainframe with minimal investment. Advantages of network load balancing: First, network load balancing technology ensures that the server can respond quickly even under heavy load; second, network load balancing only needs to provide an IP address (or domain name) to the outside world; Third, when one or several servers in the network load balancing are unavailable, the service will not be interrupted. Network Load Balancing automatically detects when a server is unavailable and can quickly redistribute client traffic among the remaining servers. This protection measure can help you provide uninterrupted services for key business programs, and can increase the number of network load balancing servers according to the increase in network access; fourth, network load balancing can be implemented on ordinary computers .
This article comes from the CSDN blog. Please indicate the source when reprinting: http://blog.csdn.net/deantry119/archive/2009/12/28/5089598.aspx