The spread of high-speed broadband networks and the continual increase in computing power have changed how we manage information and information services. Geographically distributed resources, such as data banks and supercomputers, are interconnected and can be exploited by users around the world as a single, unified resource. To a growing extent, repetitive or resource-intensive information technology tasks can be outsourced to service providers, and a new paradigm is emerging in which computing is offered as a utility by third parties. It is no longer necessary for companies to contain their computer work in house, as not only data can be processed and software stored remotely on a “cloud”, but large networks of remote computers can form a “grid” that amounts to considerable power.
The goal of a distributed computing system is to connect users and resources in a transparent, open, cost-effective, reliable and scalable way. Physical resources can be shared, as well as virtual ones, such as operating systems, tasks and applications.
Connecting to the cloud
In general, the cloud can be likened to the electricity supply system, which is spread over large areas but forms a single entity, providing power to millions of devices and customers. Parts are owned and operated by different organizations, and users rarely know about the operational details or the location of the resources they are using.
Technology and Internet companies, such as Google, Amazon, Microsoft and others, have acquired considerable expertise in operating large data centres. Their know-how extends to software for process management and business intelligence, as well as other applications, such as Internet search engines, maps, and e-mail. In cloud computing, these are hosted in a data centre and offered commercially as “software as a service” (SaaS). They no longer need to be installed on the user’s system. This can save licence fees and the costs of maintenance and software updates.
For small and medium-sized enterprises, the ability to outsource can also lower the barriers to entry for many activities that need intensive processing, since it eliminates the need for capital investment. Even some large companies have adopted cloud solutions with the growing capacity and capabilities of service providers. Another approach is to outsource certain tasks to the cloud, such as spam and virus filtering, and to keep others in the corporate data centre, such as storage of sensitive material.
However, to take advantage of cloud computing, one must have access to reliable broadband connections to the Internet. This is not always possible in developing countries, which face such problems as the high cost of software and hardware, poor electricity supplies and limited access to broadband. Although the number of broadband Internet subscribers has grown rapidly worldwide, wide gaps remain. Ubiquitous and unmetered broadband is one of the most important requirements for the success of cloud computing.
There are other challenges too. Issues of privacy, security, liability, access, and regulation must be addressed for the new paradigm to succeed.
Reliability and liability: As with any other telecommunication service, users expect the cloud to be a reliable resource (especially if it is used for “mission-critical” applications), and will expect clear delineation of liability if serious problems occur. Data integrity and accuracy are other facets of reliability. Erroneous results, or lost or altered data can have a serious effect on the cloud user. Service agreements need to address these matters.
Security, privacy, anonymity: Since the physical infrastructure is shared, the levels of privacy and anonymity available to the user of a cloud might be lower than those enjoyed by the user of desktop applications. To protect privacy, care must be taken to guard users’ data (including information on clients), as well as applications for manipulating that data.
Access and usage restrictions: The storing and sharing of data via a cloud could also raise concerns about copyright, licences, and intellectual property. Clouds can be accessed at any time, by any user with an Internet connection, from any place. However, licensing, usage agreements and intellectual property rights may vary in different countries. Governments will need to consider the appropriate polices and regulation needed to provide adequate safeguards. For example, it could be mandated that service agreements between users and providers must include provisions for such items as:
- Basic thresholds for reliability
- Assignment of liability for loss or violation of data
- Expectations for data security
- Privacy protection
- Expectations for anonymity
- Access and usage rights.
Providers of distributed computing and policy-makers must address these issues in order to foster trust.
Joining a grid
Grid computing is another way of exploiting distributed resources. Rather than using data centres, this method harnesses a huge “grid” of machines, each of which might only be as powerful as an ordinary home computer. Grid computing is well-suited to solving resource-intensive problems in science, engineering and commerce. For example, 80 000 central processing unit (CPU) cores are shared within Enabling Grids for E-sciencE (EGEE), one of the largest systems in the world. More than 10 000 users in 140 institutions in 50 countries together produce a reliable and scalable computing resource that is available to the European and global research community. The four Large Hadron Collider experiments at CERN, Europe’s central organization for nuclear research, send more than 150 000 tasks a day to the EGEE infrastructure, generating hundreds of terabytes of data per year.
This grid was also used to help ITU’s Regional Radio Conference in 2006 to establish a new frequency plan for introducing digital broadcasting in the VHF and UHF bands. The complex calculations required major computing capability within a very tight schedule. ITU’s Radiocommunication Sector (ITU–R) deployed a distributed system of 100 high-speed computers capable of running 200 parallel jobs. To complement the local cluster and provide additional flexibility and reliability, it agreed with CERN to use resources from the EGEE grid infrastructure.
Voluntary projects can also benefit from grid computing. Individuals donate unused resources on their home computers to projects such as SETI@home, which searches for signals that might indicate extra-terrestrial intelligence. And grid technology has entered the commercial world too. For instance, the world’s largest banking group HSBC uses a grid with more than 3500 CPU operating in data centres in four countries. By increasing the availability of computing resources and helping to integrate data, grid computing enables organizations to address problems that were previously too large or too complex for them to handle alone.
Another type of sharing comes with utility computing, in which organizations subscribe to an external service provider and pay only for the hardware and software resources they use. In-house data centres may lie idle most of the time, except during times of peak demand. Either a company can switch to buying capacity only when it needs it, or it can sell its excess capacity to other firms. One example is the online retailer Amazon.com, which, in addition to managing its own services, uses its system to host multiple other isolated computing environments for clients.
Parallels can be drawn between the current state of distributed computing and the early days of computer networking: at present, there are independent island systems with little interoperability, and few standards or proprietary management interfaces.
Standardized solutions for automation, monitoring, provisioning and configuration of cloud and grid applications would ensure interoperability. Portability is also a concern. Users may want to employ infrastructure and services from different providers at the same time. Global standards and interfaces would allow them to do so.
On the provider side, there could be an interest in standards for distributed network management, memory management and load balancing, identity management and security, and standards that allow for scalability of infrastructure.