A Cloud Based Immune System For Computers Information Technology Essay

Cloud Computing is a Web-based processing, where services are hosted on the Internet. Resources like infrastructure, software, and information are provided to computers and other devices on demand over the Internet.

It is in the 1960s that the concept of Cloud Computing first emerged as described by John McCarthy, “computation may someday be organized as a public utility”. From the 1960s to the 1990s, Cloud Computing has barely improved. In the 1990s, there was a major advancement of bandwidth that triggered the development of Cloud Computing. Salesforce.com, which came along in 1999, introduced the idea of distributing business software through websites. Four years later, Amazon Web Services expended the could-based services to storage, computation as well as human intelligence. Amazon Web Services then built the first Cloud Computing infrastructure that now offers worldwide access. C:UsersKanika AgarwalDesktopTECH COMMUNICATIONS300px-Cloud_computing.svg.png

Cloud computing has already become an integral part of people’s lives today. A search engine that we are use every day is the simplest example. As a recent technology, only few researches have been done in this area. Cloud Computing is still an involving paradigm. Therefore, an accurate and comprehensive definition of Cloud Computing is currently unavailable.

Cloud security involves the same fundamental issues as any computer security program. These include: restricting access to authorized users, maintaining the integrity of data, and ensuring the availability of data and services. When data and services reside on servers external to the campus, safeguarding those assets involves additional concern. Encrypting data transit is important, as are the service provider’s security procedures. Cloud computing typically uses server virtualization, and if the virtualization isn’t secure, data from one segment of a server could escape into another area.

Cloud based immune systems are very efficient in solving problems related to computer software which use the idea of cloud computing. Such softwares gather the data and information from the cloud to process its application. A new approach for managing bugs in computer software, Dimmunix, has been developed by a team led by Prof. George Candea at EPFL. Deadlock immunity is a property by which programs, once afflicted by a deadlock pattern, develop the ability to avoid future occurrences of that deadlock pattern. Overtime, programs with such an “immune system” progressively increase their resistance to deadlocks. Dimmunix is a tool for giving software systems an immune system against deadlocks, without any assistance from programmers or users. It is well suited for general purpose software (desktop and enterprise applications, server software, etc.) and a recent extension allows application communities to collaborate in achieving enhanced immunity. It also enables entire networks of computers to cooperate in order to collectively avoid the manifestation of bugs in software.

Literature Review

The Dependable Systems Lab at EPFL in Switzerland has developed a new IT tool, called “Dimmunix”, which allows programs to prevent future recurrence of bugs without any assistance from the users or programmers. The approach, called “failure immunity”, starts working for the first time a bug occurs. It saves the signature of the bugs, and then observes how the computer reacts and records a trace. When the bug is about to attack again, Dimmunix uses these trace to recognize the error and automatically changes the execution so that the program continues to run smoothly. The use of cloud computing technology means the tool that can protect the entire network of computer bugs, even in an environment like the Internet. (Sparky3887, 2010)

 With Dimmunix, the web browser learns how to avoid freezing when the bugs related to plug-ins happen. Moving a step further, using the latest version of cloud computing technology, they take an advantage of network and therefore immunize the entire communities of computer.

Dimmunix could be compared with the human immune system. When the body is infected, the immune system develops antibodies. Then, when the immune system encounters the same pathogen again, the body recognizes and knows how to effectively combat the disease.

Based on the principle of cloud computing, the computers participating in the Dimmunix application community benefit from vaccines automatically produced whenever the first manifestation of a given bug occurs within that community. The new version of Dimmunix programs is safely protected from the bugs, even in environments as unreliable as the internet.

At present, for the computer programmers, Dimmunix works for all programs used widely by private individuals and companies. It is useful for programs written in Java and C / C + +, obtained on real systems software (JBoss, MySQL, ActiveMQ, Apache httpd, MySQL, JDBC, Java JDK, and Limewire). (Carron-Gasco, 2010)

If the browser crashes or the application gives up the ghost, it might be required to send an error report to the creator of the program. Following the crashes, one would probably start to wonder if the error reports were even read. This is not the case for Dimmunix. It learns from crashes, bugs and errors without assistance from the user or for a programmer, to automatically prevent replication of the same deadlock in the future. 

This approach starts to work for the first time a crash occurs. Dimmunix saves a signature of the error, see how the computer reacts and tracks a record. The next time the bug appears, Dimmunix will be able to recognize the error, step in and influence the application so as to not hit the same deadlock again. Dimmunix does not actually change the code or try to fix the bug. It does not touch the program at all. Dimmunix amends interleaving of program threads ‘from below’ the program in question, so as to run the program without any deadlocks.

Read also  Data storage in Big Data Context: A Survey

With subtle manipulations of the program schedules, the deadlocks can be avoided without compromising the program code or influence the behaviour of typical applications. The Dependable Systems Lab boasts that Dimmunix has been proven to work on many real systems, using all kinds of programming languages such as MySQL, ActiveMQ, Apache and JDK forJava, while only introducing modest performance overhead. It has also proven itself to be effective in a test case of 100 errors, Dimmunix has managed to avoid all the deadlocks and run each test to completion.

The latest version of Dimmunix goes one step further. Inspired by the cloud computing, the software uses the experiences and information from an entire connected community to share bug reports and fixes.

This obviously opens the system up to a host of potential problems such as privacy worries and malicious denial-of-service attacks. There is actually no concern for privacy, because the deadlock signatures solely contain a fingerprint of a segment of execution and absolutely no data, neither of the user nor of the program itself. As for malicious attacks, the new Dimmunix employs a quick verification technique that allows each Dimmunix runtime to receive a deadlock signature and ‘check’ it before actually employing it to avoid hangs. (Brown, 2010)

Results and Discussion

Case Study

The concept of cloud computing evokes different perceptions in different people. The word “Cloud” itself reflects the idea of how it works. In cloud computing, processing is not in a specified, known or in a static place. Cloud computing is still in the phase of a developing technology. Currently there have been some attempts to use this technology in solving the immunity problems in modern computers.

Cloud based immune systems are very efficient in solving problems related to computer software which use the idea of cloud computing. Such software gathers the data and information from the cloud to process its application. These include:

Cloud software development platform: software platform to host cloud-based enterprise applications such as Windows Azure, Google

Software used to maintain cloud based infrastructure (Servers, storage, security and databases) like Amazon Web services and Sun Microsystems etc.

These software integrate the technique of cloud computing in the background to process their applications. The method of how this software uses this particular technique will be discussed below by randomly choosing a simple software more commonly known as Windows Azure.

Azure platform lessens its emphasis on the desktop by shifting more resources to web-based products. It just uses the end user computer to run the software. All the data and information are stored in the cloud. By doing so it has an access to vast amount of data stored in the cloud. Since it is open to a vast arena of cloud, the software has the ability to counter itself from errors that occur as it runs. (Tim Mther, 2009)

3.1 Problems in Cloud Computing

There are a large number of problems/errors that the cloud based software faces in the current era of computing. These errors can be divided into two main categories. They are viruses and issues due to immature technology. Some of them are listed below:

Kernal mode rootkits: This uses the hypervisor technology to run. It affects the system by installing itself as a hypervisor below the OS. By doing so, it becomes more difficult to detect.

Viruses: There are two kinds of viruses. They are non-resident and resident viruses. Non-resident resident viruses consist of finding and replicating modules. Finder modules find new files and call the replicating module to infect that particular file. Resident viruses, when executed, load into the memory and execute when a particular file of its interest start to run. (wikipedia, Computer Viruses)

Lock overhead: the extra resources using for locks like memory space allocated for locks, CPU time to initialise the lock and destroy a lock etc

Lock contention: This occurs whenever one process attempts to acquire a lock held by another process.

Deadlock: The situation when each of the two tasks is waiting for a lock that another task holds. Unless something is done, the two tasks will wait forever. (Wikipedia)

The above mentioned errors are some of the vulnerabilities that can be treated using cloud based immune systems. Here, the deadlock will be studied in detail in order to describe how it can be resolved using cloud based systems. The pros and cons of the particular system will also be discussed below.

Deadlock

A deadlock refers to a specific condition where two or more demanding performance are waiting for each other to free a resource, or many actions are waiting in a circular chain for resource. This results in both the programs ceasing their function. When we consider multiprocessing, in which many processes share a particular type of mutually exclusive resource, deadlock is commonly known as a “software lock” or “soft lock”. It is tremendously vulnerable in the case where multiple threads coexist in the same address space of a system. Dead lock remains the ultimate bug when there is a trade-off among two problems. The deadlocks are troubling mainly because there is no  solution to avoid them and only possible way to attack such a situation is by having a deadlock detector and a breaking mechanism or system. (Deadlocks, 2011)

Read also  Addie Model Used In Training Development Information Technology Essay

There are four essential and adequate conditions known as “Coffman Conditions” for a deadlock to take place. These include:

Mutual exclusion condition-A particular resource that cannot be used by more than one program at a time

Hold and wait condition-Process which holds some resources but at the same time requests for new ones

No pre-emption condition-Resources cannot be forcibly removed from a process holding them but can only be released by the explicit action of the process.

Circular wait condition: More than one processes form a circular chain where each process waits for a resource while the subsequent process in that chain holds.

3.2.1 Avoidance or Prevention

Removing the mutual exclusion condition is one way to avoid the dead lock. Another way is by requiring a process, to request for all the resources they will need before starting up. As it will not be an efficient use of resources, it is better to use algorithms such as lock-free and wait-free algorithms , optimistic concurrency control and solution, that permit pre-emption and avoid circular waits. Dead locks can be avoided if certain information about processes is accessible in advance, but for many systems, it is impossible to know the required resource information well in advance. (Detecting and Ending Deadlocks)

3.2.2 Technology against deadlock occurrence

Algorithms which are used mainly to avoid the dead lock are:

Banker’s algorithm-This is used for the dead lock avoidance but requires the advance knowledge of resource limit, which is impossible most of the time.

Wait/Die and Wound/Wait algorithms-This uses a symmetry-braking technique. It can avoid the dead lock occurrence but it is only by allowing one of the processes to become an unsafe condition.

In most deadlock detections, process restarts are used by employing an algorithm to remove the deadlock by tracking resource allocation and process states. It is because detecting the possibility of a deadlock before it happen is very difficult. The deadlock detection techniques such as Deadlock Checker Tool and Model checking and detecting and Ending Deadlocks are examples. (Deadlocks, 2011)

Model checking-It constructs a ‘ finite state -model’ on which it performs analysis to find out all possible terminal sets in the model, in which each of them represents a dead lock.

Deadlock Checker Tool-It performs a variety of checks on parallel programs written in CSP in order to establish freedom from deadlock.

Detecting and Ending Deadlocks-The SQL Server Database Engine detects deadlock cycles within the Server and chooses one of the sessions as a deadlock victim to be terminated.

3.3 Dimmunix : A Tool for DEADLOCK

Operating reliably without any effect by bugs is one of the biggest challenges in Cloud Computing. Prof. George Candea and Cristian Zamfir worked on a project to solve this problem and came up with a solution, which was developed by DSL (Dependable Systems Lab) at Ecole Polytechnique Fédérale de Lausanne (EPFL) in Switzerland. More commonly known as “Dimmunix”, it has a self-healing mechanism and is called “failure immunity”. It studies the failure which occurs due to bugs for the first time and saves bug’s digital signature. It also observes how a computer reacts subsequently in order to overcome the failure and trace the track of the reaction.

Dimmunix functions on an on-going basis. When the program threads make the method calls, Dimmunix observes its order in which they occur. It then identifies the specific method-call sequences that results in dead-lock. Using the identified method calls and program-execution processes, Dimmunix traces and stores it as a digital signature. (A Cloud-Based Immune System For Computers).When the bug tries to enter the system again, Dimmunix uses this signature to identify the bug and traces the track to prevent the system from deadlock which occurred in the past by the same bug. It does so by making changes in the sequence in which threads run, to prevent the conflicts that can cause deadlock in the host system. So the system continues to work smoothly without any interruption as it worked before the bug entered the system. (Failure Immunity Mechanisms for Embedded Software in Consumer Devices).

Dimmunix is comparable with our immune system, where both have similar functions. When we are infected, the human immune system develops antibodies to protect us from infectious agents. If our body encounters the same agent again, the immune system will recognize the pathogen and fight effectively to overcome the illness. Dimmunix also reacts for bugs in the same manner as how the immune system reacts for pathogen, and prevents system from deadlocks which has been described in the above section. (Deadlock). Dimmunix need no assistance from programmers or users and can act as an immune system in software systems to act against deadlock. For general purpose, softwares such as desktop OS, server software, and enterprise applications, Dimmunix is well suited. A recent extension of Dimmunix can even allow the application communities to collaborate in achieving superior immunity. (Garber) Quoting the lines of Professor George Candea, director of Dependable Systems Lab “We do not touch the program at all. Dimmunix modifies the interleaving of program threads ‘from underneath’ the program in question, so as to essentially trick the program into running without deadlocking.It’s almost as if the program is rolling down the hill, heading for a collision with a tree, and with a slight impulse from the side you alter the program’s trajectory just enough for it to avoid hitting the tree and continue running as if it was never in danger.” (wired.co.uk, 2010)

Read also  Defining The Objectives Used In Different Projects Information Technology Essay

Dimmunix is a prototype tool which does not need a central sever, platform-independent, and even runs on mobile devices. It has been built to work with application written in programming languages like Java, C and C++. It is,also, effective on various systems that consist of MySQL ,SQLite databases, Limewire peer to-peer file-sharing client JBoss application server, Apache ActiveMQ message broker, and Java Development Kit(JDK).

3.3.1 Dimmunix and Cloud computing technology

After the Dependable Systems Lab of Switzerland developed the technology called Dimmunix, it has undergone various kinds of experiments in enhancing that particular technology. One such experiment is the incorporation of cloud computing into the Dimmunix. What is cloud computing and how is it being integrated into Dimmunix? These are the two important questions in this scenario.

“Cloud computing is computation, software, data access and storage services that do not require end-user knowledge of the physical location and configuration of the system that http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Cloud_computing.svg/300px-Cloud_computing.svg.png

delivers that services” (wikipedia, cloud computing). Figure X shows the cloud computing conceptual diagram. Cloud computing is actually a byproduct of the ease of access to remote computing sites provided by the internet. It always works in the form of web based application or tools. End users can use these tools through internet web browsers in such a way that they were installed locally on their own computers.

The key characteristics of cloud computing is that the cloud is in the cloud itself. That is the processing of the data is not taking place in a specified static places.

When Dimmunix integrates this technology, it can do wonders. In cloud computing, once Dimmunix is installed in the computers, it acts like a vaccine for the entire system in cloud. Once the signature of a bug is saved, it will be exchanged among other Dimmunix servers in the cloud and the entire cloud will be protected from a deadlock. The deadlocks need not occur in each and every computer in the network for the first time. If it has occurred in any workplace in a cloud, it is enough to protect the cloud from the same deadlock again. (Dimmunix: A crowdsourced immune system for computers)

This integration of cloud computing in Dimmunix opens the system up to a host of potential problems such as privacy worries and malicious denial of service attacks. Professor Candea assures that “there is actually no concern for privacy, because the deadlock signatures contain solely a fingerprint of a segment of execution [and] absolutely no data, neither of the user nor of the program itself.”

As for malicious attacks, “the new Dimmunix employs a quick verification technique that allows each Dimmunix runtime to receive a deadlock signature and ‘check’ it before actually employing it to avoid hangs.” (wired.co.uk, 2010)

Advantages

Users can install the Dimmunix on individual computers as an efficient immune system against deadlock as it does not need a central server for its function.

According to Researcher George Candea, assistant professor and director of EPFL’s Dependable Systems Lab, Dimmunix technology is platform-independent and could even run on mobile devices. (Garber)

Disadvantages

Dimmunix is not user friendly as it cannot be used by everybody who is a computer literate.

Dimmunix can’t prevent the deadlock occurrence. It needs a particular dead lock to occur at least once in order to develop the immunity. That is, the system must experience a bug-related deadlock before the tool can create defences. It can be considered as Dimmunix’ key weakness.

Another incapability of the Dimmunix is that, its particular approach to handle dead lock situations does not work with deterministic bugs. It is because deterministic bugs can cause crashes under specific circumstances regardless of thread schedules. (Garber)

Suggestions

Currently Dimmunix is only being used to solve deadlock problems. But as seen in section x, there are a lot other bugs out in this computer world. It would be better if the technology can be developed in such a way that it can used to apply as an immune system to such a vast variety of problems.

Order Now

Order Now

Type of Paper
Subject
Deadline
Number of Pages
(275 words)