You are on page 1of 15

An application server is a server program in a computer in a distributed network that provides the business logic for an application program.

The application server is frequently viewed as part of a three-tier application, consisting of a graphical user interface (GUI) server, an application (business logic) server, and a database and transaction server. More descriptively, it can be viewed as dividing an application into: 1. A first-tier, front-end, Web browser-based graphical user interface, usually at a personal computer or workstation 2. A middle-tier business logic application or set of applications, possibly on a local area network or intranet server 3. A third-tier, back-end, database and transaction server, sometimes on a mainframe or large server Older, legacy application databases and transaction management applications are part of the back end or third tier. The application server is the middleman between browser-based front-ends and back-end databases and legacy systems. In many usages, the application server combines or works with a Web (Hypertext Transfer Protocol) server and is called a Web application server. The Web browser supports an easyto-create HTML-based front-end for the user. The Web server provides several different ways to forward a request to an application server and to forward back a modified or new Web page to the user. These approaches include the Common Gateway Interface (CGI), FastCGI, Microsoft's Active Server Page, and the Java Server Page. In some cases, the Web application servers also support request "brokering" interfaces such as CORBA Internet Inter-ORB Protocol (IIOP).

Definition: An application server, or appserver, is software that typically interfaces one or more databases to convey processed data to and from a user interface. The user interface is often web based through a browser, but it may be through other means to client computers in any distributed network situation. The application server and databases may be housed in the same or separate computers. The term server is applied to computers in a number of ways: for instance file, web and printer servers. Application server doesnt necessarily apply to a machine, however, as it is actually a piece of software. Loosely speaking, any software that centrally processes data for distributed client machines can be seen as an application server.

What they do The application servers role is to take care of the business logic in a multi-tier architecture. The business logic is simply the functions that the software performs on the data. Multi-tier refers to the three tiers involved in the system: client application server database. Application servers are written for specific tasks, defined by business needs. Its basic job is to retrieve, process and present data to the user interface, and process any input data whether queries or updates, including any validation, verification and security checks that need to be performed. But what the data is, and what the processes are, vary widely. A common example of an application server is an Internet search engine. In this instance, the client machines are any computer that logs on to the search engines website, and the data input is the search. The application server takes the input and will run several operations on the search term, dependant on the particular search engines technology. Then, queries are made to the search engines database of web content, and the returned data is ordered and presented back to the client machine. Other common examples include: * Online booking systems * Centralised stock control * Online banking * Online dictionaries and other reference

Tiers, n-tiers and multi-tiers Many networks still run on a two tier approach, in which the client computers are connected to a central server, but each client has their own copy of a particular application installed on them. This means all processing happens on the client computers, and the connection to the server is used only for data retrieval. The three tier approach, sometimes called n-tier or more commonly multi-tier, takes the processing away from the clients, leaving them with only data presentation. In this model, the client may be referred to as a thin client. Diagram of a multi-tier application server environment

Interestingly, even though the three tiers are usually split across three separate computers, its still possible for all three tiers of interface, application, and database to sit on a single computer. Advantages of Application Servers Situating the application on a central computer decouples the clients from the processing, allowing the client computers to access the application from any platform. In other words, any Windows or Linux PC or Macintosh running any browser can connect to a web based application server, regardless of their individual specifications. Centralisation of the application holds clear advantages for maintenance and management. The computer that holds the application server can be maintained and upgraded as required to meet demand, and the software can be engineered and developed with a certainty of environment that wouldnt be possible if the processing had to be run on many distributed computers. Disadvantages of Application Servers

There are three main disadvantages of centralised processing. Firstly, if the servers go down then clients simply can't access the application. Secondly, the reliance on network connections, including the Internet, exposes the vulnerability that any network outage also chokes all access to the application. Finally, security, since data which may be sensitive could be transferred over public networks. The way to tackle the first two problems is to ensure adequate redundancy of resources so, backup servers, network and Internet connections are a must. Its almost impossible to cover all angles in this, particularly as most of the WAN is out of management control, and the steps taken to cover outage risk will be governed by how mission critical the application servers availability is. Tackling security issues is always difficult. However, there are a number of methods, encryption and secure connections for instance, that are applied across all forms of sensitive web interaction. These methods equally apply to application server interfacing over the Internet. Development Platforms Java EE, once known as J2EE, is a platform that has become a benchmark for application server developments. Not a standard as such, still compliance with Java EE requirements grants a product significant value status. As a result, Java is widely used as the language of choice for application servers. However, Microsofts ASP.Net platform is also powerful and commonly used, and many developers still use CGI and PERL. The choice of platform for an application server may have technical constraints, and it is down to system analysts and developers to make the choice of suitable solution.

Blade Servers
Definition: blade servers are part of a computer configuration where power, cooling, storage and connectivity are largely provided by an outer housing or chassis. The chassis contains and services a number of specialised, stripped down motherboard units - the blade servers - each one a complete computer or service device containing only vital processing and storage elements. Blade server technology was initially developed in the early millennium through a partnership between IBM and Intel. Later, a number of major companies, led by IBM, formed an industry community in February 2006, with a website base at blade.org. The mission of the community is to accelerate the growth and adoption of [blade] technologies in the market.

As part of the community development, similar to their action with PC specifications in the 1980s, IBM made the specifications for blade servers open allowing any manufacturer to develop and build blade server compatible products and solutions. A number of computer manufacturers has consequently joined IBM and Intel in blade server manufacture. Some of the major players in the field include HP, Sun Microsystems, Dell and Hitachi. The different blade manufacturers vary in specific configurations for their blade servers and chassis, but the basic principle remains: to strip extraneous components from the blades so the blades components can focus on essential processing and services. Computing blade servers are unique computers, often dedicated to a single application, and the

facilities they lack are provided either within the chassis, or, particularly with storage, over a network. However, not all blades are computing blades, but may instead provide connectivity, storage, system management or other services for the system or chassis blades benefit, or even the wider network. Advantages of Blade Servers The chassis and included blade servers may require a substantial initial investment in hardware and implementation for a business, even when compared to traditional rack-servers. However, blade servers bring advantages in space, power consumption, cable reduction, reliability, and economy of scale that may offer considerable longer term benefits. The blade server model promotes thin-client computing, where in an enterprise environment workers can log on to their computer from remote terminals. At their office space, the worker has access to standard input and output functionality through keyboard, mouse and monitor. However, their PC is a blade (often termed a PC blade) held in a chassis, stored in a central, secure location, with centralised management and maintenance. In a wireless setting, they can work on their PC from anywhere in range. If the workplaces network is accessible over the Internet, perhaps through a VPN (Virtual Private Network), then the worker can access their PC from anywhere they have access to a client computer and the web. Of course a number of these advantages are offered by rackmount servers, but the distinct advantages of blade servers lie in redundancy, hot swapping, and reductions in cabling, power and size requirements. The net result is that cost reduction for a blade server versus a traditional rackmount server is claimed to be as much as 25%. Blade Server Chassis The chassis forms the housing for the blade servers, providing the necessary services for the blades. Chassis vary in the number of blades they accept, usually from 6 to 16, though this may

be halved with dual CPU blades of size 2U (1U=one rack unit, which is 44.45mm or 1.75). However, much bigger blade compositions are possible in specialist large-scale requirements.

The services they provide include power, cooling and interfaces, enabling and augmenting the power of the blades themselves. Their design features will focus on connectivity, flexible configuration of blades, strong build for protection and cooling, and elimination of cabling requirements. A blade chassis could theoretically support any blade, but in practice there are issues with manufacturer technologies. Chassis manufacturers may, at worst, support only their own blades, and though there are many open blade chassis architectures these invariably have limits on the blade server models they accept. Hot Swapping One of the important facilities available in blade server chassis is hot swapping. Hot swapping is the ability to add, remove and replace units at need without having to power-off the chassis. Hot swapping can apply to PSUs, network, management and storage units, and the blade servers themselves. Hot swapping, coupled with redundancy, can give significant reliability benefits. For instance, with two PSUs, if one goes down the other can take over and maintain the system without interruption until the first is replaced. It also aids maintenance, because if a blade develops a problem it can be removed and repaired or replaced without disruption of the other blades in the system. Power Since the blade is stripped down of many key features, it relies on the chassis to provide vital services. Power is the first of these, and in all chassis power switching balances power load and requirements across the component blades demands. The technology ensures that power isnt wasted running underused blades, but in times of high demand there is sufficient power available. Employing power supply unit redundancy is necessary for critical servers. The chassiss internal management technology then monitors for malfunctioning units, and alerts network management staff. Hot switchable PSUs enable the faulty components to be replaced without interrupting chassis function. Cooling A full chassis may generate considerable heat from the activity of component blades, so high demand blade servers require effective cooling from their chassis to operate efficiently. The chassis internal management systems monitor heat within the system, and may shut down the entire system if the temperature rises above a certain point. Its critical, then, to follow the directions of the blade server chassis manufacturer when managing the servers cooling. This might include air space around the chassis, the use of plugs for empty bays, and environmental

demands for air temperature and humidity. Connectivity Blade servers always have some limited connectivity, if only Ethernet ports to connect to the chassis. The main external connectivity is by design provided via the chassis. At the heart of the chassis connectivity will be an Ethernet and/or Fibre Channel switch, connecting each of the blade servers to the LAN (Local Area Network). There may be more than one switch unit in a chassis, which can either be used to provide a redundant connection to a single network, or connection to more than one network. Other connectivity is also provided by the chassis, but this is typically limited to USB and VGA for monitor connection, with possibly PS2 connections for I/O with mouse and keyboard. Its also likely that a chassis will contain an optical drive, although at need all of these functions and more can be added to the chassis through the use of specific blades in the system. Storage There may be some limited storage on a blade server, and there may be additional storage provided by a chassis. However, with the use of a SAN (Storage Area Network) the chassis and blades can be completely free of storage, removing the inherent heat, noise, and reliability problems from the system completely. Everything from booting to data storage can be done over the SAN, enabling the blade servers to be focussed entirely on processing. Blade Servers Each blade server is a complete computer, albeit stripped of some functionality. A typical computing blade will contain one or two CPUs with supporting chipset on a specialised motherboard, RAM, and little else. Despite the advantages of storage outside the blade chassis, many blades have the capacity to take one or two hard drives, usually SATA. Other functionality may be

present, such as onboard graphics and VGA output, and USB connectivity, but the more technology that is held on the blade the less advantage is being

taken of the benefits blade server architecture offers. Although most blades provide computing services, there are other common functions that a blade can usefully provide. For instance, some blades are specifically designed to provide storage, offering a large number of hard drives. Others provide connectivity options and system management facilities. The configuration of blades and their functions can be balanced at the time of purchase and modified in ongoing use to meet particular business demands. Blade servers typically have a front panel containing a number of informational LEDs, relating to power and system activity. There may additionally be indicators of system failure, which may be general or specific to blade components. These optional features will invariably come at a cost premium.

Cloud Computing

Definition: Cloud computing is an umbrella term used to describe the use of computing services that are hosted on a network (typically the internet) and used by PCs (or other devices) without having to specify specific servers or systems.

The term has evolved to encompass a mix of many technologies and methods that have existed for years, even decades, as well as more recent developments, that enable computing to be hosted remotely from the user. The main driver for cloud computing though is the increase in speed and reliability of the internet and one of the major characterising features is that services are usually paid for on a pay-as-you-go basis. Webmail A Simple Cloud Computing Example A simple example of cloud computing is webmail. Anyone can access their webmail from anywhere in the world simply by knowing the web address of the webmail service, there's no need to know the name of the server or an ip address or anything else. The webmail provider takes on the job of making sure that there's enough disk space and processing power to allow all their customers to store and retrieve their mail on demand. The user doesn't have to worry about maintaining web clients on their PC or, in the case of companies, local email servers. More Complex Software as a Service Applications Take this example a little further and you can see how different services can be provided to

individuals and small companies at a fraction of the cost of setting up and IT infrastructure, servers and applications. Salesforce.com is a well known example of a customer relationship management (CRM) system that uses cloud computing to provide a fully-fledged software application that can be used by one user or hundreds. By paying an amount per user per month (although there are volume discounts) very small companies can get access to professional CRM functions for a very low initial cost compared to buying, installing and maintaining their own CRM software. Of course the offering form the application provider is Different Cloud Computing Variations This is an example of a cloud computing variant known as software as a Service (SaaS) where an application and your data are hosted in the cloud. There are two other major variants, infrastructure as a service (IaaS) and platform as a service (PaaS). As the names suggest, these variants offer infrastructure or platforms on the web that companies pay to use as and when they need them. Companies can buy time on servers as disk space (IaaS) and deploy their own software and applications on that rented infrastructure. This was initially know as hardware as a service (HaaS) but IaaS appears to have displaced that term.

PaaS describes buying something more than IaaS in that software is included in the offering. A typical PaaS deployment would be workflow or development platforms which teams use over the internet or a private network to collaborate on projects. There is often little or no dividing line between PaaS and SaaS. Supporting Technology for Cloud Computing The idea of cloud computing has been around for a while, with application software providers (ASP) first appearing at the beginning of this century. But it is in recent years that a number of technologies have been developed that make cloud computing more accessible and workable that it might otherwise be. Virtualisation is one of those technologies. It allows many instances of an operating system, or many different operating systems, to run on one server. This allows providers of cloud computing services to make the best use of their hardware and tailor it to customer demand, taking virtual servers up and down and even moving them between physical servers as required. . Stronger Communications Links Inside and Outside the Cloud

Infiniband is another cloud computing enabling technology, a standard for connecting highpowered servers and storage arrays. This has allowed the building of larger server 'farms' in which individual computers can talk to each other and pass computations between them. Infiniband has enable the spread of grid computing which has fuelled the spread of cloud computing. Cloud computing operators need to have strong networks that are laid over the ordinary internet to be able to provide guarantees of service. This technique is known as optimised internet overlay and improve the reliability of communications over the internet. Business Benefits from Using Cloud Computing There's no doubt that cloud computing offers significant advantages to businesses, particularly small businesses and startups. Precious startup capital can be eked out of the initial years by paying low monthly charges for just the software and services that a company needs, when they need them. This offers a startup the same software that multinationals use without having to invest in an IT infrastructure and IT personnel from the word go. Users also only need low-power, low-cost PCs because the power and space that they need for heavyweight applications can be provided by the cloud. Only high intensity applications like heavy database crunching or video processing need be done locally. Possible Disadvantages of Cloud Computing Many people have concerns about the hosting of company and personal data on remote servers and there's no way that cloud computing can operate without strict data privacy agreements and adherence to them. Companies are also unwilling to have their data on the internet where it may be at risk from corruption or theft. There are impacts on company growth and overheads too. Once a company has a significant number of users on a cloud computing platform they are at risk from price rises from the hosting companies. Companies may then find that moving away from a hosted service to their own infrastructure and data is technically and managerial a significant challenge. Support from the Big Boys Whether or not cloud computing is considered to bring benefits or disadvantages all of the major technology companies in computing have thrown their weight behind it including Microsoft, IBM, Google, and Amazon.

Database Management Systems

Definition: A Database Management System (DBMS) is a collection of software programs which enable large, structured sets of data to be stored, modified, extracted and manipulated in different ways. Features: Database Management Systems have often been characterized as Attribute Management Systems. Attributes are pieces of information (with unique values) that describe an object (for e.g. size, color, and shape) and combine many of the services necessary for advanced attribute management without the need for a variety of different programs. Database Management Systems employ the use of a query language and report writers to interrogate the database and analyze its data. Queries allow users to search, sort, and analyze specific data by granting users efficient access to the required information. For example, one would use a query command to make the system retrieve data regarding all articles of clothing which come in the color blue. The most common query language used to access database systems is the Structured Query Language (SQL). The DBMS also provides security features that protect against unauthorized users trying to gain access to confidential database information; and prevent data loss in case of a system crash. Depending on the settings, users are allowed access to either all, or specific database subschemas, through the use of passwords. For example, while a database may contain detailed customer information, certain users may only be allowed access to customer names and addresses, while others may be able to view payment specifications. Access and change logs can be programmed to add even more security to a database, recording the date, time and details of any user making any alteration to the database. Furthermore, the DBMS is also responsible for the databases integrity, ensuring that no two users are able to update the same record at the same time, as well as preventing duplicate entries, such as two employees being given the same employee number. Database Models: Database information normally consists of subjects, such as customers, employees or suppliers; as well as activities such as orders, payments or purchases. This information must be organized into related record types through a process known as database design. The DBMS that is chosen must be able to manage different relationships, which is where database models come in.

Hierarchical databases organize data under the premise of a basic parent/child relationship. Each parent can have many children, but each child can only have one parent. In hierarchical databases, attributes of specific records are listed under an entity type and entity types are connected to each other through one-to-many relationships, also known as 1:N mapping. Originally, hierarchical relationships were most commonly used in mainframe systems, but with the advent of increasingly complex relationship systems, they have now become too restrictive and are thus rarely used in modern databases. If any of the one-to-many relationships are compromised, for e.g. an employee having more than one manager, the database structure switches from hierarchical to a network.

In the network model of a database it is possible for a record to have multiple parents, making the system more flexible compared to the strict single-parent model of the hierarchical database. The model is made to accommodate many to many relationships, which allows for a more realistic representation of the relationships between entities. Even though the network database model enjoyed popularity for a short while, it never really lifted of the ground in terms of staging a revolution. It is now rarely used because of the availability of more competitive models that boast the higher flexibility demanded in todays ever advancing age. Relational databases (RDBMS) are entirely unique when compared to the aforementioned models as the design of the records is organized around a set of tables (with unique identifiers) to represent both the data and their relationships. The fields to be used for matching are often indexed in order to speed up the process and the data can be retrieved and manipulated in a number of ways without the need to reorganize the original database tables. Working under the assumption that file systems (which often use the hierarchical or network models) are not considered databases, the relational database model is the most commonly used system today. While the concepts behind hierarchical and network database models are older than that of the relational model, the latter was in fact the first one to be formally defined. After the relational DBMS soared to popularity, the most recent development in DMBS technology came in the form of the object-oriented database model, which offers more flexibility than the hierarchical, network and relational models put together. Under this model, data exists in the form of objects, which include both the data and the datas behavior. Certain modern information systems contain such convoluted combinations of information that traditional data models (including the RDBMS) remain too restrictive to adequately model this complex data. The object-oriented model also exhibits better cohesion and coupling than prior models, resulting in a database which is not only more flexible and more manageable but also the most able when it comes to modeling real-life processes. However, due to the immaturity of this model, certain problems are bound to arise, some major ones being the lack of an SQL equivalent as well as lack of standardization. Furthermore, the most common use of the object oriented model is to have an object point to the child or parent OID (object I.D.) to be retrieved; leaving many programmers with the impression that the object oriented model is simply a reincarnation of the network model at best. That is, however, an attempt at the oversimplification of an innovative technology.

Database Management System Software: There are innumerable numbers of DBMS software available in the market. Some of the most popular ones include Oracle, IBMs DB2, Microsoft Access, Microsoft SQL Server, MySQL and FileMaker. MySQL, one of the most popular database management systems used by online entrepreneurs is one example of an object-oriented DBMS. Microsoft Access (another popular DBMS) on the other hand is not a fully object oriented system, even though it does flaunt certain aspects of it.

You might also like