1. Trang chủ
  2. » Công Nghệ Thông Tin

Application servers

5 332 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề How did we get to here? What is an application server? Some explanations
Thể loại Chapter
Định dạng
Số trang 5
Dung lượng 40,91 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

The browser used as an application presentation engine and user input collection device rather than a processing engine coupled to a powerful server architecture that provides processing

Trang 1

of the HTML form tags It will only be a matter of time before we will use XML to define our Java Beans and to compile the XML into the Beans byte codes

It is interesting to note that in the current JDK 1.2 release all the AWT and Swing components are implemented as Java Beans

Chapter 9 Application Servers

• How Did We Get to Here?

• What Is an Application Server?

• Some Explanations

Examining what is happening in the information systems (IS) shops of corporate America, we see a move away from the deployment of traditional client/server

applications and a large shift towards multitier, Web based computing Delivery of application functionality in the form of desktop-based, fat client tools is being dumped

in favor of server-generated, lightweight HTML-based user interfaces that derive their presentation layer from the lowly Web browser (that is already installed on almost every desktop in corporate America) The browser used as an application presentation engine and user input collection device (rather than a processing engine) coupled to a powerful server architecture that provides processing power and a multitier approach

to data connectivity provides a very powerful and versatile application delivery

vehicle

How did we arrive at this point? The answer is through the evolution of Web-based computing In the early days of the Web (i.e., the not too distant past) we started to develop applications that used the Web browser as the application presentation layer speaking via the HyperText Transfer Protocol and the Common Gateway Interface to programs being run on the Web server at the request of a browser page Voilà! Our Web server had become an application server; now instead of delivering content to a Web browser, the Web server was delivering an application

Many of the early Web-based applications were pretty simple, consisting usually of an HTML form and a script run by the Web server (these came to be known as CGI scripts) to read data returned to the Web server and act on it As time progressed and applications became more sophisticated, we became quickly aware of the limitations

of using the stateless HTTP and came up with a number of mechanisms (hidden variables, cookies,…) that allowed us to make our applications more stateful and take

on the guise of traditional client/server applications without having to resort to the heavyweight client model

Ahhh, life was good and computing was even better As the Web became more

popular and we (corporate America) decided that we needed to take commercial advantage of the new application deployment platform, we began to notice that there were some flaws in our new paradigm First, applications that operated well for a few users didn't do so well when we tried to scale them to thousands and tens of thousands

of users Second, there was this ever-present pain-in-the-neck of state preservation problem Determined not to let happen to Web computing what happened in

Trang 2

client/server computing, we started to examine our new environment and make

improvements where needed

One of the first things that we noticed was that the CGI scripts that we were using to add the processing power to our Web pages was a pretty bad way to do it There were

a number of options to increasing the throughput We could get rid of those shell and Perl scripts and move that processing to a compiled language (C or C++) that would run faster and free up processor horsepower; or we could take the tried-and-true approach to automotive repair philosophy and "jack up the radiator cap and drop in a new car" (i.e., if our current machine is too slow, save the software and buy a bigger, more powerful machine)

Both of these approaches have severe flaws Replacing the scripts with compiled versions only masked or postponed the real problem and actually introduced a few problems of its own The real problem was in the way that the scripts were being run (i.e., every time a script was called for, the Web server started up a new process to run the CGI program on, and we quickly ran out of system resources) Another problem was that, if we weren't religious about memory management and I/O programming, it was relatively easy for a hacker to figure out how to overload an I/O buffer and get the process to crash hard enough to bring down the entire site or accidentally give over control of the machine to the hacker

Along comes Java and server-side programming, and developers recognize that, because of the Java security model and its lightweight nature, it would be an ideal tool for doing server-side programming

Servlets are born The first servlets showed up as BAT files and scripts that loaded the

Java Virtual Machine and ran the Java code as a CGI program would be run The performance and scalability of these servlets is pretty bad due to having to load so many copies of the JVM, but the stage was set for the servlet API It was only a matter of time until the release of the all-Java Web server and the integration of the JVM into OEM Web server products like Netscape's Enterprise Server that true server-side servlet computing came on the scene

As we looked more seriously at the Web as an application deployment platform, a new type of program called an application server started to appear The application server started out as an application that could be run in conjunction with our Web server and would do things like state management and legacy system access Little by little, the application server architecture took on the general functionality shown in Figure 9-1 Currently there are more than 40 products on the market that all claim to

be application servers

Figure 9-1 General application server architecture

Trang 3

The following common threads run through all the application servers currently on the market and should be a help when comparing marketing information from the various vendors:

1 Inclusion of a high-performance Web server or the ability to integrate any of the popular currently available commercial Web servers easily

2 Integrated development environment or the ability to integrate any of the commercially available development IDEs

3 The ability to interface with Enterprise Resource Planning (ERP) systems especially SAP, BAAN, or PeopleSoft

4 The ability to interface with Transaction Processing (TP) monitors

5 Support for stateless and stateful database connections

6 Connection pooling of database connections

7 Access to legacy applications and legacy databases

8 Massive scalability through hardware replication and load balancing

9 Automatic fail-over capability in the case of a processor failure

10 Support of the Enterprise Java Beans Specification

This is shown in Figure 9-1

High-Performance Web Servers

Web servers have always played a central role in Web-based computing In the past they were used to serve content to users and provide the capability to run CGI scripts

to create dynamic Web pages with database connectivity Newer Web servers have integrated JVMs and support the full servlet API, making the use of CGI

programming unnecessary This new breed of Web servers also support remote

administration via a Web-based GUI interface and even the administration of multiple servers through the same GUI

Integrated Development Environment

Because the environment provided by application servers is so rich and supports so many APIs, OEMs all provide Integrated Development Environments to help the end

Trang 4

user create applications that are timely and supportable Included with the tools are source control and configuration management systems

Interfacing to Enterprise Resource Planning Systems

Today the darling application of the corporate IS shop is the ERP system One of the things that was painfully (and expensively) pointed out to IS Managers over the last 3 years (Y2K preparation) was how terribly dependent corporations were on old legacy systems written 20 and 30 years ago in COBOL and PL/1 One of the options to

becoming Y2K compliant was to move the corporate computing model away from the hodge-podge of legacy applications and databases that had grown up with the

corporations that fostered them and toward a relatively standardized model that had been developed relatively recently under the guise of ERP systems

ERP systems, like SAP, BAAN, and PeopleSoft, are based on a large database model

of the entire corporation After all, most corporations have a similar make-up (i.e., an accounting organization, accounts payable, accounts receivable, payroll, personnel, manufacturing, planning, etc.) If all these functions could share a common database and a common set of processes and procedures, the corporation could run more

effectively and efficiently

Since one system can never meet all possible needs, application servers provide

certified tools that allow interfacing with ERP systems in such a way that application server-based programs will be well behaved and supported even through new releases

of the ERP system software

Ability to Interface with Transaction Processing Monitors

One of the applications that was developed during the client/server paradigm of

application development was a program called a Transaction Processing (TP) Monitor (BEA Tuxedo is the most notable of these) TP Monitors are systems that handle high transaction-rate-based jobs like airline reservation systems, banking systems, and such

To be able to interface with these systems from the Web is crucial to e-Commerce

Support Stateful Applications

One of the hardest things about programming the Web has always been how to make stateful applications In our attempt to do this, we have tried every trick we could come up with from cookies to hidden variables Application servers take a more

rigorous approach by actually maintaining state databases of our applications In most cases, databases are maintained in two forms: a state that can be recovered after a reboot (persistent via a DBMS) and a state that cannot be recovered after a reboot (in memory data caching)

Connection Pooling of Database Connections

One of the lessons we learned from the two-tier client/server model of database

programming is that databases are not good connection managers and that making the initial connection to the database in many cases takes longer than the actual database

Trang 5

activities we are trying to perform To help improve overall database performance, the application server will open a number of database connections at startup and then manage those connections for the various applications that are using the database(s) This way the cost (time) of establishing the database connections is only incurred once (at startup) Once opened, the connections are never shut down; instead, they are shared by the applications After all, a connection is a connection is a

connection…and Web-based applications do not usually need a connection for more than the current query

Access to Legacy Applications and Legacy Databases

There are a number of ways to provide access to legacy system applications

• One is to incorporate a terminal emulator in the form of a Java applet as one of the client interfaces provided by the application server and actually allow the end user to interact with the legacy system

• Another is to provide a screen scraper that allows the data portion of a legacy screen to be scraped out and placed in a dynamic HTML form or a Java applet

• A more common way is to place a CORBA wrapper around the legacy system and provide a new CORBA (Java or C++) client for the user to interface with the application through

For access to a legacy database, the approach is somewhat dependent on the database and the hosting operating system In many cases, we are looking at IBM mainframes and DB2, VSAM, and IMS databases Because these databases are based on IBM's proprietary SNA (System Network Architecture) connectivity scheme rather than TCP/IP, one requirement is the installation of a gateway between the two systems (TCP/IP and SNA) that is responsible for the protocol conversion between the two systems Because DB2 is a relational database, JDBC drivers can be installed on client workstations; they will allow normal JDBC access to DB2 VSAM (Virtual

Sequential Access Method) is an older, flat file data structure in which many legacy databases are maintained In many cases, these databases should have been moved to DB2 years ago, but the "if it isn't broken don't fix it" mentality prevailed IMS is a database model from the 1970s that viewed a database as a hierarchical structure and provided its own database programming language to support it For VSAM and IMS databases there are tools from IBM and companies like Intersolv and Cross Access that allow these databases to be treated as relational tables Because of the number of gyrations that these have to go through to make everything look like a table, the performance is limited

Scalability Through Load Balancing

Scalability is the ability of a system to meet the performance demands of an

increasingly larger user community A single processor, no matter how fast, can only service a finite number of user requests with some degree of performance Adding multiple processors to a box can buy some additional performance but not really increase the overall scalability of the overall system To increase the scalability of the system in a meaningful way requires the introduction of additional processing units (boxes), one of which is to be used as an HTTP dispatcher All requests will come in

to the dispatcher, and the dispatcher will direct the request to the least busy box in the

Ngày đăng: 29/09/2013, 08:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w