Computer appliance

From Wikipedia, the free encyclopedia

Jump to: navigation, search

A computer appliance is generally a separate and discrete hardware component specifically designed to provide a specific compute resource, and which often resides on a dedicated hardware platform.

These devices became called "appliances" because of their similarity to home appliances, which are generally "closed and sealed" – not serviceable by the owner. In computer appliances the hardware is also usually sealed and not repairable or upgradeable by the user.

Contents

[edit] Background

Traditionally, software applications run on top of a general-purpose operating system, which uses the hardware resources of the local commodity server (primarily memory, disk storage, CPUs and networking bandwidth) to meet the computing needs of the hosted application set. If the local resources in any of these areas are insufficient, performance suffers. Traditionally either one or more applications must then be:

  • Re-hosted on a larger system (vertical scalability). This approach often leverages platform virtualization techniques in an attempt to optimally allocate computing resources among multiple "virtual systems" on the new server.
  • Broken into many separate instances, each of which is then deployed on a different inexpensive commodity server (horizontal scalability). Aside from often requiring changes to the application, and a refactoring of associated data, this approach can also lead to "server sprawl".[1]

Using the computer appliance model[2] the application set can remain deployed on the original host system, since the external appliance supplies (typically massive amounts of) the computing resource the applications are contending for.

[edit] Tradeoffs of the Computer Appliance Approach

The major downside of deploying a Computer Appliance is that since they are designed to supply a specific resource, they often include a customized operating system running over specialized hardware, neither of which are likely to be compatible with the other systems previously deployed in the typical data center.

On the upside, such a Computer Appliance "decouples" the resource it supplies from the systems where the applications using that resource reside. Once such a resource is decoupled and centralized, it can theoretically be shared among many systems, vastly expanded, centrally managed, and optimized, all without requiring changes to any other system in the data center.[3][4]

[edit] Types of Appliances

The variety of Computer Appliances reflects the wide range of computing resources they provide to applications. Some examples:

  1. Storage Computing Appliances provide massive amounts of storage and additional higher level functionality (ex: Disk mirroring and Data striping) for multiple attached systems using the transparent local Storage area networks paradigm.[5]
  2. Java Computing Appliances[6] transparently rehost Java applications, using techniques like pauseless Garbage Collection and Optimistic Thread Concurrency to provide massive amounts of usable memory and CPUs.
  3. Network Computing (Internet) Appliances are general purpose routers[7] which provide Firewall protection, Transport Layer Security, messaging, access to specialized networking protocols (like the ebXML Message Service) and bandwidth multiplexing for the multiple systems they front-end.

[edit] Internal Structure

There are several design patterns adopted by Computer Appliance vendors, a few of which are shown below. Since the whole concept of an appliance rests on keeping such implementation details away from the end user, it is difficult to match these patterns to specific appliances, particularly since they can and do change without affecting external capabilities or performance.

  1. Special Chip The vendor builds an ASIC, without any separate "software" or operating system. The appliance has a limited interface, usually terminal console or web-based, to allow some basic configuration by the IT staff. The manufacturer often provides some way of accessing deeper configuration mechanisms. Azul Systems' Vega 3 Java Compute Appliance is an example; special hardware modifications to the chip enable Java application scaling.
  2. Special Software Kernel The vendor uses or creates a general-purpose computer, and designs a new operating system that integrates the application into the operating system. Cisco's IOS is an example; the Unix-like operating system has firewall functions and network/firewall configuration commands built into it. Sometimes, the device is also sealed, so the consumer has no access to reinstall the operating system or replace it with another operating system. The consumer may also be restricted to a small group of configuration commands, while the more detailed and lower level functions of the operating system are only available to the vendor. The more this "locked down" approach is carried out, the closer this type of device comes to appearing like an ASIC device.
  3. Specialized Application Off the shelf computers and operating systems are used, but the user interface and "box" are designed so the user cannot access anything on the computer, except for the application interface that the vendor has created. Since the underlying computing architecture is locked down and essentially invisible, it becomes difficult to discern that the device really functions on top of general purpose hardware and operating systems. Linux, and BSD to a lesser degree, has become the operating system of choice for this type of appliance. Recently the term software appliance has also been used to describe such a pre-packaged, black-box combination.
  4. Virtual Appliance Here the hardware itself has disappeared entirely and become a so-called virtual appliance (also known as a virtual software appliance) using any one of a number of virtual machine technologies. Within this virtual machine is essentially the same stack of software plus the operating system as in the Specialized Application alternative above).

Sometimes, these techniques are mixed. For example, a VPN Appliance might contain a limited access software firewall running on Linux, with an encryption ASIC to speed up VPN access.

Some Computer Appliances are solid state, while others use a hard drive to load an operating system. Again, the two methods might be mixed -- an ASIC print server might allow an optional hard drive for job queueing, or a Linux-based device may encode Linux in firmware, so that a hard drive is not needed to load the operating system.[8]

[edit] The Consumer Computer Appliances

Aside from its deployment within the data center, many additional varieties of Computer Appliances are directly used by the general public. These include:

[edit] See also

[edit] References

  1. ^ Server Sprawl- The High Cost of Server Sprawl, SQL Server Magazine Nov. 2006
  2. ^ The rise of the Computing Appliance - Computer Weekly, June 2007
  3. ^ Network Appliances - Network World, Jan 2007
  4. ^ Computing Appliances - The Monash Report, Dec 2006
  5. ^ SAN Data Center- Network World
  6. ^ Java Compute Appliance- JDJ Magazine
  7. ^ Routers- About.com
  8. ^ Smith, Bob; Hardin, John A; Phillips, Graham; Pierce, Bill. Linux Appliance Design: A Hands-On Guide to Building Linux Appliances. No Starch Press. pp. pp. xvii. ISBN 1-59327-140-9. http://books.google.com/books?id=uVu0ax6C3uIC&pg=PA81&dq=%22network+appliance%22+date:2003-2009&lr=&num=100&as_brr=3&sig=QE5mXmjxjbgmQtw11DsRYlnewnE#PPR17,M1. Retrieved on 2008-05-06. 
Personal tools
Languages