Device Independence

Device independence is the process of making a software application be able to function on a wide variety of devices regardless of the local hardware on which the software is used.

Mainframes and Minicomputers

High Level Languages, both those with and without an explicit OPEN command, to open a file, often had the ability to abstractly refer to a data file:

  • READ(11,21,END=9900) NAME
    21 FORMAT(A20)
in FORTRAN said to use "unit" 11 - without naming the file.
in COBOL accomplishes something similar.

Desktop computing

In the early days of computer design and development up until about 1980, software was typically specifically written to operate on the specific hardware where the software was used. The software was intimately linked to the hardware, and could not function independent of it. As computers became less expensive generalized personal computers, the concept of peripheral devices was introduced, where the base hardware could have a variety of different accessory devices from different manufacturers.

At first, software which was to use this accessory hardware was required to be specifically designed to support it. In the time of MS-DOS, game programmers typically had to write custom control software for each type of sound card or video card that might be installed in the user's computer. The need to provide custom support for so many devices consumed a considerable amount of time for software development.

Eventually hardware abstraction layers (HAL) such as DirectX were developed which separate application software from the underlying hardware. The application software does not need to know anything about the hardware on which it was to be used. Instead it discovers the capabilities of the hardware through the standardized abstraction layer, and then use abstracted commands to control the hardware. It is up to the HAL to be able to translate these commands into the specific format required for each device, using device drivers typically provided by the hardware manufacturer.

Virtualization and Emulation

As computing power has continued to increase, there is sufficient processing capacity available for entire hardware devices to be simulated in software. This has brought about the development of the hypervisor and device virtualization and emulation, allowing software written for one specific type of hardware to be reused on completely different hardware, or for seemingly independent operating systems to be made to share a single device.

World Wide Web Usage

The web accessible by any device under any circumstance and by all people. The World Wide Web Consortium (W3C) has initiated the Device Independence Working Group, which aims to unify the web, making it accessible from many types of Internet appliances. Its mission is to avoid the breaking up of the web into spaces which only subsets of devices can access.

One key publication of the Device Independence Working Group is the Composite Capability/Preference Profiles recommendation.

WURFL, the Wireless Universal Resource File, is an open-source product that addresses Device Detection and the ability to serve multiple user-experiences to different classes of browsers and devices, based on the capabilities of the requesting HTTP client.

See also

External links

  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.

Connect with defaultLogic
What We've Done
Led Digital Marketing Efforts of Top 500 e-Retailers.
Worked with Top Brands at Leading Agencies.
Successfully Managed Over $50 million in Digital Ad Spend.
Developed Strategies and Processes that Enabled Brands to Grow During an Economic Downturn.
Taught Advanced Internet Marketing Strategies at the graduate level.

Manage research, learning and skills at defaultLogic. Create an account using LinkedIn or facebook to manage and organize your IT knowledge. defaultLogic works like a shopping cart for information -- helping you to save, discuss and share.

  Contact Us