Saturday, January 7, 2012

Computer software


Computer software, or just software, is the collection of computer programs and related data that provide the instructions telling a computer what to do and how to do it. We can also say software refers to one or more computer programs and data held in the storage of the computer for some purposes. Program software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of software. The term was coined to contrast to the old term hardware (meaning physical devices). In contrast to hardware, software is intangible, meaning it "cannot be touched". Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.
Examples of computer software include:
Application software includes end-user applications of computers such as word processors or video games, and ERP software for groups of users.
Middleware controls and co-ordinates distributed systems.
Programming languages define the syntax and semantics of computer programs. For example, many mature banking applications were written in the COBOL language, originally invented in 1959. Newer applications are often written in more modern programming languages.
System software includes operating systems, which govern computing resources. Today[when?] large[quantify] applications running on remote machines such as Websites are considered[by whom?] to be system software, because[citation needed] the end-user interface is generally through a graphical user interface, such as a web browser.
Testware is software for testing hardware or a software package.
Firmware is low-level software often stored on electrically programmable memory devices. Firmware is given its name because it is treated like hardware and run ("executed") by other software programs.
Shrinkware is the older name given to consumer-purchased software, because it was often sold in retail stores in a shrink-wrapped box.
Device drivers control parts of computers such as disk drives, printers, CD drives, or computer monitors.
Programming tools help conduct computing tasks in any category listed above. For programmers, these could be tools for debugging or reverse engineering older legacy systems in order to check source code compatibility.

History


The first theory about software was proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem (Decision problem).[3] The term "software" was first used in print by John W. Tukey in 1958. Colloquially, the term is often used to mean application software. In computer science and software engineering, software is all information processed by computer system, programs and data.[4] The academic fields studying software are computer science and software engineering.

The history of computer software is most often traced back to the first software bug in 1946[citation needed]. As more and more programs enter the realm of firmware, and the hardware itself becomes smaller, cheaper and faster as predicted by Moore's law, elements of computing first considered to be software, join the ranks of hardware. Most hardware companies today have more software programmers on the payroll than hardware designers[citation needed], since software tools have automated many tasks of Printed circuit board engineers. Just like the Auto industry, the Software industry has grown from a few visionaries operating out of their garage with prototypes. Steve Jobs and Bill Gates were the Henry Ford and Louis Chevrolet of their times[citation needed], who capitalized on ideas already commonly known before they started in the business. In the case of Software development, this moment is generally agreed to be the publication in the 1980s of the specifications for the IBM Personal Computer published by IBM employee Philip Don Estridge. Today his move would be seen as a type of crowd-sourcing.
Until that time, software was bundled with the hardware by Original equipment manufacturers (OEMs) such as Data General, Digital Equipment and IBM[citation needed]. When a customer bought a minicomputer, at that time the smallest computer on the market, the computer did not come with Pre-installed software, but needed to be installed by engineers employed by the OEM. Computer hardware companies not only bundled their software, they also placed demands on the location of the hardware in a refrigerated space called a computer room. Most companies had their software on the books for 0 dollars, unable to claim it as an asset (this is similar to financing of popular music in those days). When Data General introduced the Data General Nova, a company called Digidyne wanted to use its RDOS operating system on its own hardware clone. Data General refused to license their software (which was hard to do, since it was on the books as a free asset), and claimed their "bundling rights". The Supreme Court set a precedent called Digidyne v. Data General in 1985. The Supreme Court let a 9th circuit decision stand, and Data General was eventually forced into licensing the Operating System software because it was ruled that restricting the license to only DG hardware was an illegal tying arrangement.[5] Soon after, IBM 'published' its DOS source for free, and Microsoft was born. Unable to sustain the loss from lawyer's fees, Data General ended up being taken over by EMC Corporation. The Supreme Court decision made it possible to value software, and also purchase Software patents. The move by IBM was almost a protest at the time. Few in the industry believed that anyone would profit from it other than IBM (through free publicity). Microsoft and Apple were able to thus cash in on 'soft' products. It is hard to imagine today that people once felt that software was worthless without a machine. There are many successful companies today that sell only software products, though there are still many common software licensing problems due to the complexity of designs and poor documentation, leading to patent trolls.
With open software specifications and the possibility of software licensing, new opportunities arose for software tools that then became the de facto standard, such as DOS for operating systems, but also various proprietary word processing and spreadsheet programs. In a similar growth pattern, proprietary development methods became standard Software development methodology.

Overview


Software includes all the various forms and roles that digitally stored data may have and play in a computer (or similar system), regardless of whether the data is used as code for a CPU, or other interpreter, or whether it represents other kinds of information. Software thus encompasses a wide array of products that may be developed using different techniques such as ordinary programming languages, scripting languages, microcode, or an FPGA configuration.
The types of software include web pages developed in languages and frameworks like HTML, PHP, Perl, JSP, ASP.NET, XML, and desktop applications like OpenOffice.org, Microsoft Word developed in languages like C, C++, Java, C#, or Smalltalk. Application software usually runs on an underlying software operating systems such as Linux or Microsoft Windows. Software (or firmware) is also used in video games and for the configurable parts of the logic systems of automobiles, televisions, and other consumer electronics.
Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, executable code consists of machine language instructions specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state. Programs are an ordered sequence of instructions for changing the state of the computer in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.

Types of software

Practical computer systems divide software systems into three major classes[citation needed]: system software, programming software and application software, although the distinction is arbitrary, and often blurred.

System software


System software provides the basic functions for computer usage and helps run the computer hardware and system. It includes a combination of the following:
device drivers
operating systems
servers
utilities
window systems
System software is responsible for managing a variety of independent hardware components, so that they can work together harmoniously. Its purpose is to unburden the application software programmer from the often complex details of the particular computer being used, including such accessories as communications devices, printers, device readers, displays and keyboards, and also to partition the computer's resources such as memory and processor time in a safe and stable manner.

Programming software


Programming software usually provides tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way. The tools include:
compilers
debuggers
interpreters
linkers
text editors
An Integrated development environment (IDE) is a single application that attempts to manage all these functions.

Application software


System software does not aim at a certain application fields. In contrast,different application software offers different functions based on users and the area it served.Application software is developed for some certain purpose,which either can be a certain program or a collection of some programmes,such as a graphic browser or the data base management system. Application software allows end users to accomplish one or more specific (not directly computer development related) tasks. Typical applications include:
industrial automation
business software
video games
quantum chemistry and solid state physics software
telecommunications (i.e., the Internet and everything that flows on it)
databases
educational software
Mathematical software
medical software
molecular modeling software
image editing
spreadsheet
simulation software
Word processing
Decision making software
Application software exists for and has impacted a wide variety of topics.

The software's license

The software's license gives the user the right to use the software in the licensed environment. Some software comes with the license when purchased off the shelf, or an OEM license when bundled with hardware. Other software comes with a free software license, granting the recipient the rights to modify and redistribute the software. Software can also be in the form of freeware or shareware.

Software as a service

Software as a service (SaaS, typically pronounced [sæs]), sometimes referred to as "software on demand," is software that is deployed over the internet and/or is deployed to run behind a firewall on a local area network or personal computer. With SaaS, a provider licenses an application to customers either as a service on demand, through a subscription, in a "pay-as-you-go" model, or (increasingly) at no charge when there is opportunity to generate revenue from streams other than the user, such as from advertisement or user list sales. This approach to application delivery is part of the utility computing model where all of the technology is in the "cloud" accessed over the Internet as a service.

Advantages


Accessible from anywhere with an internet connection
No local server installation
Pay per use or subscription based payment methods
Rapid scalability
System maintenance (backup, updates, security, etc) often included in service
Possible security improvements, although users with high security requirements (e.g., large corporations) may find SaaS a security concern
Reliability
SaaS has become a common model for many business applications including accounting, collaboration, customer relationship management (CRM), enterprise resource planning (ERP), invoicing, human resource management (HRM), content management (CM), and service desk management.

History

oftware as a service's acronym, SaaS, first appears in an article called "Strategic Backgrounder: Software as a Service." It was published in February 2001 by the Software & Information Industry's (SIIA) eBusiness Division. This 18 page document is one of the most complete essays pertaining to SaaS available today. SIIA developed the backgrounder to analyze the current state of the SaaS market and its near term prospects, and to provide insight for its members who may be profoundly impacted by changes implied in the SaaS mode. Software as a service is essentially an extension of the idea of the Application Service Provider (ASP) model

Philosophy


Software and business professionals generally associate the term SaaS with business software, and as a possibly lower-cost way for businesses to use software as needed rather than license every application on every device. With a well-designed implementation and properly priced licenses, on-demand SaaS provides license benefits without the associated complexity and the potential high cost to equip devices with applications they may not need.
Though many Unix applications already work using the SaaS model, EULA applications did not have this flexibility before SaaS. A licensed copy of a word processor, for example, had to reside on each machine in order to create a document on that machine. The equipped program has no intrinsic value loaded on a computer that is turned off for the night. The same employee would need another fully paid license to write or edit a report at home on their own computer, while the work license is inoperative

Key characteristics


SaaS characteristics include:
Network-based access to, and management of, commercially available software
Activities managed from central locations rather than at each customer's site, enabling customers to access applications remotely via the Web
Application delivery typically closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model, including architecture, pricing, partnering, and management characteristics
Centralized feature updating, which obviates the need for end-users to download patches and upgrades.
Frequent integration into a larger network of communicating software—either as part of a mashup or a plugin to a platform as a service
(Service oriented architecture is naturally more complex than traditional models of software deployment.)
SaaS providers generally price applications on a per-user basis and/or per business basis, sometimes with a relatively small minimum number of users and often with additional fees for extra bandwidth and storage. SaaS revenue streams to the vendor are therefore lower initially than traditional software license fees, but are also recurring, and therefore viewed as more predictable, much like maintenance fees for licensed software.
Some SaaS applications are free to the user, with revenue being derived from alternate sources such as advertising, or upgrade fees for enhanced functionality (often referred to as "freemium"). Examples of free SaaS applications include large players such as Gmail and Google Docs, as well as smaller providers like Wave Accounting (free accounting) and Freshbooks (freemium time tracking and invoicing).
In addition to characteristics mentioned above, SaaS sometimes provides:
More feature requests from users, since there is frequently no marginal cost for requesting new features[citation needed]
Faster new feature releases, since the entire community of users benefits[citation needed]
Embodiment of recognized best practices, since the user community drives the software publisher to support best practice

Benefits Of Softwares


Some of the claimed benefits for SaaS are:
Capital expenditure is reduced by not having to purchase servers or full copies of software. This is counterbalanced by the increased revenue cost of paying for the use of the SaaS
Faster implementation. In some cases the customer can deploy SaaS more quickly as no local installation is required.
Depending on the user, it may remove a non-core activity (deployment and support of the software and its associated infrastructure) freeing up time to focus on core business activities
Reduced need to predict scale of demand and infrastructure investment up front
Possible improvements to reliability if the SaaS provider's infrastructure is more redundant or has higher availability than the user would otherwise have

Implementation Of Softwares


One of the companies that sells that kind of service classifies SaaS into four "maturity levels," whose key attributes are configurability, multi-tenant efficiency, and scalability.Each level is distinguished from the previous one by the addition of one of those three attributes:
Level 1 - Ad-hoc/custom: Each customer has a customized version of the hosted application that runs as its own instance on the host's servers. Migrating a traditional non-networked or client–server application to this level of SaaS typically requires the least development effort, and reduces operating costs by consolidating server hardware and administration.
Level 2 - Configurable: This adds greater program flexibility through configurable metadata, so many customers use separate instances of the same application code. This lets the vendor meet different customer needs through detailed configuration options, while simplifying common code base maintenance and updating.
Level 3 - Configurable, multi-tenant-efficient: This adds multi-tenancy to the second level, so a single program instance serves all customers. This enables more efficient server resource use without apparent difference to the end user, but ultimately faces scalability limits.
Level 4 - Scalable, configurable, multi-tenant-efficient: The fourth and final SaaS maturity level adds scalability through a multitier architecture that supports a load-balanced farm of identical application instances that run on a variable number of servers. The provider can adjust system capacity to match demand by adding or removing servers without further altering the software architecture.
SaaS architectures may also use virtualization, either in addition to multi-tenancy, or in place of it. A principal virtualization benefit is that it can increase system capacity without additional programming. On the other hand, much programming may be required to construct a more efficient multi-tenant application. Combining multi-tenancy and virtualization provides still greater flexibility to tune the system for optimal performance. In addition to full operating system-level virtualization, other virtualization techniques applied to SaaS include application virtualization and virtual appliances.
SaaS application development may use various types of software components and frameworks. These tools can reduce time-to-market and the cost of converting a traditional on-premise software product or building and deploying a new SaaS solution. Examples include components for subscription management, grid computing software, web application frameworks, and complete SaaS platform products

Software User satisfaction


Gartner's 2008 survey of 333 enterprises in the US and UK found a low level of approval from customers, describing overall satisfaction levels as "lukewarm." Respondents who decided against SaaS cited high service cost, integration difficulty, and technical requirements.A recent report from Forrester, “The ROI of Software-As-A-Service,” examined a range of companies that chose SaaS solutions and found that SaaS does result in long-term value. Companies interviewed for the report cited several reasons for their ROI of SaaS:
Rapid deployment
Increased user adoption
Reduced support needs
Lower implementation and upgrade costs

Application service provider


An application service provider (ASP) is a business that provides computer-based services to customers over a network. Software offered using an ASP model is also sometimes called On-demand software or software as a service (SaaS). The most limited sense of this business is that of providing access to a particular application program (such as customer relationship management) using a standard protocol such as HTTP.
The need for ASPs has evolved from the increasing costs of specialized software that have far exceeded the price range of small to medium sized businesses. As well, the growing complexities of software have led to huge costs in distributing the software to end-users. Through ASPs, the complexities and costs of such software can be cut down. In addition, the issues of upgrading have been eliminated from the end-firm by placing the onus on the ASP to maintain up-to-date services, 24 x 7 technical support, physical and electronic security and in-built support for business continuity and flexible working.
The importance of this marketplace is reflected by its size. As of early 2003, estimates of the United States market range from 1.5 to 4 billion dollars. Clients for ASP services include businesses, government organizations, non-profits, and membership organizations.

What are the data transfer limits for each Web hosting package?

Web hosting upgrade packages have unlimited data transfer, so no additional charges will be incurred for any overages. Only the Starter Package is limited to 100MB of data transfer. Contact a support representative for the overage rate for your location.

What is my domain pointer?

A domain pointer is a Web hosting feature that allows you to automatically send Web visitors from one or more of your domain names to your primary website. Domain pointers also give you the ability to point a domain to a subdirectory acting as a stand-alone website.

What is SiteBuilder?

SiteBuilder is a template-driven, online website development tool that allows you to create a rich, customized website without needing to have any knowledge of HTML code.

What is wideband Internet?

The term "wideband" refers to Internet that delivers speeds 50Mbps and higher.

Static IP

For more involved usage, like running one or more servers, utilizing applications that require external access, or allowing a service to run incoming audio or video, you will need a static IP address. Depending how many of these you plan to use for your business will determine how many static IPs you will need.

Dynamic IP

For basic usage, such as surfing the web, uploading and downloading files, or checking email you can use a dynamic IP.

Dynamic Host Configuration Protocol


The Dynamic Host Configuration Protocol (DHCP) is an automatic configuration protocol used on IP networks. Computers that are connected to IP networks must be configured before they can communicate with other computers on the network. DHCP allows a computer to be configured automatically, eliminating the need for intervention by a network administrator. It also provides a central database for keeping track of computers that have been connected to the network. This prevents two computers from accidentally being configured with the same IP address.
In the absence of DHCP, hosts may be manually configured with an IP address. Alternatively IPv6 hosts may use stateless address autoconfiguration to generate an IP address. IPv4 hosts may use link-local addressing to achieve limited local connectivity.
In addition to IP addresses, DHCP also provides other configuration information, particularly the IP addresses of local caching DNS resolvers. Hosts that do not use DHCP for address configuration may still use it to obtain other configuration information.
There are two versions of DHCP, one for IPv4 and one for IPv6. While both versions bear the same name and perform much the same purpose, the details of the protocol for IPv4 and IPv6 are sufficiently different that they can be considered separate protocols

Digital photos in a snap

Windows XP takes the "process" out of processing your digital photos. Just snap and go - it's that easy! You can decide which photos to keep, which ones to alter or enhance, and which ones to leave on the cutting-room floor. Windows XP contains all kinds of helpful and exciting features for viewing photos, as well as printing, storing, and sharing them.