|
Comments
Did you read today's front page stories & breaking news?
SYS-CON.TV
|
General Java Serving Business Applications
Serving Business Applications
By: Ajit Sagar
Nov. 1, 1999 12:00 AM
In the world of distributed computing, the industry has latched on to another snazzy, buzzword-compliant, omnipotent entity, the Application Server, also known affectionately as the App Server. Here's the sales pitch. You want a robust system? Fault tolerance? Load balancing? Multithreaded transaction support? Well, don't reinvent the wheel. If you're developing an application that solves a particular business problem, concentrate on solving that problem and on developing that application. Don't waste precious resources trying to focus on solving a problem that's outside your area of expertise. After all, if you were in the business of writing compilers, that should have been the highlight of your job description. Similarly, if creating a framework for load balancing, fault tolerance and the like is not your job, let someone else do it. When I look at the stages of my career thus far, I fondly remember the days when I designed and deployed my first commercial product, an electronic private branch exchange (EPABX) with the logic written entirely in -dare I say it? -Z80 assembly. If I mention assembly now, people say, "You must be older than you look." I don't program in assembly anymore, of course; we Java programmers frown on such low-level programming, don't we? Why would you want to deal with those tedious, low-level, limited instruction sets when Java compilers are more than willing to do all that work for you? If your application doesn't need low-level programming, the only reason you'd indulge in such activity is because you think you can do a better job of writing compiler-type code than companies that specialize in it. This month in e-Java we'll take a look at the role played by application servers in multitier computing as well as the impact they'll have in the world of Java-based e-commerce. We'll also examine the categories of application servers that exist today and the facilities offered by these servers. Finally, we'll look at the build versus buy issue vis-a-vis application servers and discuss how one should plan to migrate from the former to the latter.
Evolution of Multitiered Architectures
The next stage in evolution was the three-tier model. This model split the responsibilities of the client into two tiers, one responsible for the presentation, the other for applying the business rules used to serve up the data to the user. The new tier of computing was given the name middle tier. The decoupling of business rules from the presentation logic abstracted the user interface from changes in the mechanism of interpreting data served up by the database servers. The middle tier thus acted as a broker between the data source and the data presentation. It was responsible for several functions - transaction processing, business rule validation, data transport between the presentation tier and the database server, security across the tiers, and so forth. The middle tier achieved these functions through various mechanisms such as transaction processing monitors, messaging systems, message servers and ORB (CORBA/DCOM) architectures. As the three-tier model became popular, it became obvious that it wasn't feasible for one organization to manage all the complexities of the middle tier and focus simultaneously on the business problems it was striving to solve. As a result, the industry saw the emergence of companies that started providing the middle-tier services packaged as reusable third-party tools that could be applied across various industries. These packaged services were offered via a new class of computer servers called application servers. Figure 1 illustrates the topologies discussed above.
Figure 1: Application Server in the Middle Tier
The data served by application servers is typically served over the Web. Application servers today are almost always used in conjunction with a Web server, forming the combination called a Web Application Server. The Web server is responsible for forwarding requests from the client to the application server and returning HTML content back to the Web client. The Web server uses several alternative approaches to achieve this, including CGI, ASP (Active Server Pages), Java Servlets and JSPs (Java Server Pages). The app servers may also use distributed service protocols such as CORBA, RMI and MTS to achieve object-based communication. If we look at the distributed n-tier computing model from the perspective of application servers, the Web application server defines the following divisions of a distributed application:
Web Application Server Services
Splitting the Middle Tier in E-Commerce Applications
One emerging trend in such distributed applications is splitting the responsibility into a front-end Web application server and a middle-tier business logic application server. The front-end application server -an example is ColdFusion from Allaire -is responsible for managing the C2B (customer-to-business) interaction. Such servers offer the functionality typically needed for creating virtual storefronts. In addition to the core services, other modules supported by these servers are payment modules, credit authorizations and user profiles. The middle-tier server is responsible for interacting with back-end systems and for executing business logic. Examples are BEA's WebLogic application server and Netscape Application Server. These servers aren't typically concerned with the end customer, but rather with B2B (business-to-business) applications. Figure 2 shows an architecture that uses this division of labor between the two levels of application servers.
Java and Application Servers
Build vs Buy
Reader Feedback: Page 1 of 1
Latest Cloud Developer Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week
Breaking Cloud Computing News
|
|||||||||||||||||||||||||||||||||||||||||||||||||