« Amazon Example | Main | file for lab today »
A closer look at the Application Layer
"Application layer" describes that part of an ebusiness 3-tier architecture which is the operating environment for application software. Though the presentation layer (i.e the user interface) and the data layer (i.e a relational database management system) perform essential functions the core logic which defines the behaviour of an ebusiness system reside at this level.
Here we will take a closer look at the application layer and some of the tools & techniques which are used to create and manage it. In the process we can stand to learn a lot about how components in a distributed system interact, in general.
Review: Business Logic - Because the application layer is what defines the behaviour of an ebusiness system, where business rules like ordering options, payment options, and shipping options are defined and enforced, this layer is sometimes broadly referred to as the system's business logic.
Let's use our Amazon example to take a closer look at how that business logic is carried out. Here we have an ebusiness system which uses a three-tier client/server architecture to present, sell, and ship books (among other things). The central elements of the system, then, should support these functions. This is the core business logic and in many eBusiness systems an enterprise class suite of applications (built, bought, or provided by a partner), for large companies, an ERP system, would specialize in these tasks. But there's more. Every shopping experience will be different just as every user and every product, and every client system might be different. The application layer, in addition to providing core functions such as inventory management, sales order processing, accounting, and human resource management, must also manage the complex process of providing a dynamic, personal and interactive experience to a diverse set of users. It must act as a coordinator of requests and responses between a user and an underlying software application.
In this example the elements of the application layer include web servers and enterprise systems.
The goal of the application layer is to service, even exceed, the needs of both the customer, and to support the business function by collecting all the necessary information needed to manage and support a transaction (for example). This can be an incredibly difficult job. Business transactions, and business systems can be very complex to start with. But the fact that, in eBusiness, your customers, each with their own unique personal preferences, each with their own unique technology, are accessing your services remotely and automatically, makes for some very tricky coordination. By now you know that there is no such thing as one-size-fits-all solutions in eBusiness. You can't design a system for one type of operating system alone, or for one kind of browser, or language. Interoperability is critical. Systems have to offer broad support and to expect the unexpected. At the same time it would be prohibitively expensive, confusing and complex to use a collection or series of contingent systems to support your businesses various ebusiness needs. What is needed is an intelligent system that can anticipate and coordinate user needs, business needs, and unexpected circumstances. And a system that dynamically can customize a generic, or standard, business function into a highly personalized customer experience supportive of that customers unique preferences and technology environment. To do this ebusiness developers and designers use different tools and techniques which together deliever a dynamic customer experience and at the same time normalize eBusiness processes so that underlying programs can perform business functions in a more predictable, standard fashion. They use a tiered apporach of separating each user interaction into layers, another use of abstraction, which breaks down requests for managing with standard functions and then rebuilds the results of those functions into personalized, tailored responses. Some of those tools are mentioned here.
By strategically combining these tools ebusiness systems can respond to specific personalized requests while at the same time standardizing or abstracting the core business functions into basic core functions. Programs, based on powerful programming languages can be, built, bought, or provided by partners and used to form a basic, abstract collection of logical functions which serve a business in general terms. If a business system recognizes their customer (i.e they have a customer account) and knows something about the product in question (i.e it has a material master record, it is found in inventory), it can respond in a way that supports the scenario; it can effect a transaction. But what about additional preferences or constraints a user might have in interacting with the service? Scripting languages can add a greater degree of dynamic customization and control to web sites and the processes they manage. At the time a web site is requested a brief set of instructions might respond to the information it has available like the sort of browser that is in use, like the credential or cookie being passed by the user to initiate a more customized and personalized request to the business functions of the underlying program. And what drives scripts? Scripts are typically called by the web site itself, that is the files that provide a template for building web pages.
So what is a web site?
You're now familiar with HTML, the popular markup language, that browsers use to format and present web sites. HTML files, used in combination with cascading style sheets, are important for formatting and presenting the content of a web site, but they aren't the only elements that define a web site. Start to think of a web site, not as a destination or as a single file or program, but rather a window to a collection of resources which in a dynamic process meet a users needs through a combination of documents, scripts, and programs.
Each "window" you, as a user, are given to interact with a computer system using the web is defined by a collection of documents managed by a web server. These documents coordinate the activities of that web site in response to a user request and also, to some extent, those of the client when they receive and interpret the response. These documents may contain instructions and templates inherently. They may also contain pointers and scripts which call for an external resource, another document or a program for example, to perform a task. The sum of these tasks is to provide, in a new collection of documents --a response to the user whose client in an instant receives and interprets those documents to present to the user in context and in a meaningful, logical, and persistent manner.
Posted by Mark Hemphill on November 8, 2007 in Module III - Software | Permalink
Comments
Does ERP refer to the relationship between hardware and software???
Posted by: Johnny Kelly | Nov 28, 2007 3:31:36 PM
Is there a more basic definition for website than that one?
Posted by: Colin Butler | Dec 3, 2007 11:00:36 PM
The Application layer seems to handle the tasks that the users requests. That is the use of a bank machine or even by the click of a mouse. The application layer is divided up into different tools and every tool works in conjunction to create a friendly user interface.
That is my 2 cents on this blog. I could be completely wrong or completely right but thats the interpretation from the reading.
Posted by: Laura | Dec 4, 2007 8:37:35 PM


