Classification of Faults in Software

In general there are different categories of faults and they are classified based on the level of severity and complexity. Faults can be categorized in to two important types based on time to recover and they are transient or permanent and in general these transient faults are simple in simple in nature and can be recovered without any special steps from the fault tolerant systems.

Permanent failures are the failures which cause a long term impact on the systems and permanent in nature and the main advantage with these types of failures is that they are easy to be identified and rectified by the fault tolerant systems . Faults can be categorized based on the actual cause for the failures and this classification covers various types of the faults like design failures.

In general these design failures are mainly caused due to design errors at the design phase itself and most of the fault tolerant systems considers these design faults as inevitable in nature and follows the required strategies to implement the fault tolerant systems. Operational failures are caused due to the lifetime failures of the system like disk crash or processor failures. Apart from these classifications following are the important types of the faults that are identified across the fault tolerance systems. 

Timing faults: These faults are occurred when the required service is not completed within the time as defined.

Omission failures: These failures are occurred due to preferment stopping of a particular service across the system.

Crash faults: These faults are occurred due to some hardware crashes across the system like disk failures or processor crashes . 

Based on these categories, the level of impact of these faults is identified on the system and the corresponding fault tolerant systems are developed based on the impact of these models. Among various fault tolerant systems discussed across the literature, fault tolerant systems for distributed systems has a wide role play and there is a lot of research done against this. There are different types of faults that were identified across the distributed systems and few of them are as listed below.

This paper is written and submitted by sai

Fault Tolerance Systems Mechanisms

Fault tolerant systems can act towards the errors across the systems in two different aspects like roll back and roll forward. When an errors has encountered across the system, the roll forward mechanism takes the current system to the required state and corrects the errors and where the roll back mechanism is quite opposite to roll forward, where the system is taken to the previous state or version and from there the error correction mechanism moves the system forward to the required state. In general there are various requirements to be set across the implementation of the fault tolerant systems and few of them are listed below . 

  • There should not be a single point of failure across the system
  • All the required failing components should be isolated to the possible failures in the system
  • Fault contaminant should be at the higher level as per the system definition
  • Various versions of the system should be available for roll back and roll forward
  • Perfect failure recovery methodologies should be implemented across the system to prevent the possible failures . 

From these requirements it is clear that, fault tolerant systems should be designed in a perfect manner to handle the possible errors across the system where the fault tolerant system is being implemented. In general these fault tolerant systems are complex in nature and the level of complexity depends on the risks being incurred on the system.

If the complexity of the fault tolerant system fails to detect the possible errors and failures across any system, it indicates that the risk of the corresponding failure is high than the expected metrics when the initial fault tolerant system is developed .  Performance of the fault tolerant systems depends not only at the hardware level and the actual implementation is done at the application level.

In general the fault tolerant systems are developed based on the principles of the redundancy, where the duplicate or upper versions of the systems are maintained at different levels and they are set back whenever there is fault across the systems being implemented. Replication and redundancy are the commonly identified techniques that were mostly used across the fault tolerant systems.

This paper is written and submitted by sai

Fault Tolerant Systems Definition

In general a fault tolerant system can be defined as the system that can work even under some failure conditions with some external implementations. Fault tolerant systems are estimated against their performance with respective to the operation speed and if in any case the speed of the operation of the fault tolerant systems is decreased, it means that the severity of the failure is high across the system.

In general the performance of the fault tolerance systems depends on various factors and the key factor among them is the ability to detect the faults and recover the system to work back . Fault tolerant system can’t be defined as a property of a particular system and the actual functionality of these systems depends on various factors like the level of interaction with the external environment with respect to the system and also the key attributes that makes the system failure against the defined functionality. 

This paper is written and submitted by sai

Distributed Computing Vs Parallel Computing

Compare Distributed Computing And Parallel Computing

The terms like distributed computing and parallel computing can be referred in the same context, where a common process is used for all the computers that operate across the distributed computing and the tasks are executed parallel similar to that of a parallel computing methodologies.

Parallel computing can be referred as the tightly coupled version of the distributed computing, where the computers across the parallel computing are communicated in a more specific manner when compared to the distributed computing models. Parallel computing uses the shared memory concept, where all the computers share a common memory, where the distributed computing is done at a local memory base and the individual computers across the distributed computing has their own local memory and usage.

Distributed systems has a number of individual nodes with their own memory and processor, where as the parallel computing utilizes a single processor and shared memory.

This paper is written and submitted by sai

Features of Distributed System

 There are number of features that make the distributed systems unique and the most common among them are, these systems have their own local memory and also the entities communicate with each other using a message passing mechanism. Apart from the distributed usage of the individual computers across the distributed systems, these computers also have personal users, where they can use these computers for personal use as well.

Few resources like the processor, memory and data are also shared across the computers of the distributed systems to achieve a common task across the distributing computing process . There are few excellent feature across the distribute systems and they are as listed below. 

  • Distributed systems has default fault tolerant features that can be used to identify and detect the common failures and faults across the network
  • Topology and structure of the distributed systems is not fixed and not know in prior, where there is lot of scope for the changes in the structure
  • An individual computer across the distributed systems have only a limited access to the other computers of the distributed systems and has few knowledge of the complete problem they are set to solve .
This paper is written and submitted by sai

Distributed Systems Definition

In general a distributed system can be defined as a set of autonomous systems that communicate with each other with the help of a computer network. All these computers across the distributed system operate under a common goal and strive to achieve a common task across these distributed systems.

Distributed computing is the field of science that studies the distributed systems and the programs or software module that runs across these distributed systems is known as a distributed program . In general a large computational problem or issues is solved using these distributed computing process and the systems involved across the distributed computing are used to solve these problems across the autonomous operation.

  A single large problem is divided into number of sub tasks and they are solved by the individual autonomous systems across the distributed systems . The numbers of individual computers that operate across the distributed systems are geographically distributed to achieve a common task and they communicate with each other using a distributed program using a common computer network.

This paper is written and submitted by sai

Risk Analysis for a Project

Risk Analysis 

Risk analysis is always important to estimate the success of the project irrespective the risks that can come across the project duration. In general any project include different types of risks and the possible risks that may come across this project are as listed below 

Change in requirements risk 

Change in the requirements can be considered as the major risk in this project. Once the requirements are fixed as per the proposal submitted, and while working with the project there may be chances, where I need to change the requirement due to some reasons like non availability of data, lack of sufficient knowledge or changes from the supervisor side. It would become really a tedious job to handle the changes in the middle of the project and meet the deliverables on time as per the project plan submitted. 

Communication risk 

Communication risk may occur due to lack of proper communication between the developer and the supervisor. If I couldn’t update the status of the project on time and failed to meet the deliverable dates, always I will get a delayed feedback from my supervisor and this would really kill the time and further affects all the deadlines irrespective of the work done till the date. 

Technical risk 

Technical risk may occur due to non availability of technical resources to develop the proposed application. As OPNET modeler is used to develop the simulation and if the license could not achieved, few models can’t be used to develop the simulation. This could be considered as the main risk in this project and if the tool is not ready completing the project and showing the simulation results is really impossible. 

Other risks 

There could be some other risks associated while doing this project like health issues, natural disasters and any other unseen circumstances and there is no define recovery plan to handle these risks. 

Risk Criticality Recovery plan 
Change in requirements risk  Medium Getting the requirements freeze before starting the project 
Communication risk  Low Communicating with supervisor on time with out any delay and doing the necessary corrections on time whenever the feedback is received 
Technical risk  High Getting the licensed softwares with the help of University 
Other risks  High NA

 This paper is written and submitted by sai

Distributed Systems Architecture Models

In general a mobile agent is an autonomous and independent software module that can handle the individual user requests and gather the required monitoring information by visiting all the target nodes across the network. The most common advantages of these mobile agents include dynamic network updates, handling the network traffic, delay and enabling the asynchronous execution of the programs.

In general mobile agent based monitoring can be categorized in to two different types like centralized and hierarchical, where the centralized agent based monitoring returns the updates from a centralized architecture and a hierarchical method visits the nodes across the network based on a predefined hierarchy. The main problem with the centralized method is the scalability and the hierarchy method can solve the scalability issues in many aspects.

Hierarchical monitoring system will partition the network in to different hierarchies and a new monitoring agent is deployed across each hierarchy and thus the problem of scalability can be solved easily. The main aim of this project is to develop a hierarchy based mobile agent based monitoring system, where the complete network is divided in to number of hierarchies and a dynamic mobile agents is created to collect the individual statistics against the nodes of each hierarchy. Entire wireless sensor network is divided in to different hierarchies based on the node models and each and every hierarchy is provided with a software mobile agent module to collect the individual statistics of the nodes and the monitor the faults across the network.

To create an efficient application, some faults like large database requests, heavy network traffic and delays are incurred across the wireless sensor network. Behavior of the network is monitored against these conditions using the mobile agents and the basic monitoring results are tracked and the possible solutions are proposed across this application. 

  This paper is written and submitted by sai

Distributed System Fault Tolerance

There are many problems and faults that occur across the dynamic distributed systems and always a perfect monitoring system is required to handle these many faults. There are many fault tolerant methods in the literature that can monitor the dynamic distributed systems and most of them handle these faults using some agents that can collect the statistics and updates from the distributed systems and sends the inputs to the fault tolerant methods and the actual plan of action is decided based on the inputs from these agents.

The working principle of these agents depends on the application range included across the distributed systems and if the distributed system is all about mobile networks like wireless sensor networks, these agents are known as mobile agents. Mobile agents are responsible to get handle over the networks and monitor the performance of the network across several conditions and update the fault tolerant methods to make sure that the system is on track and always performance as per the predefined conditions and expected outcomes.

In general these mobile agents are asynchronous and dynamic in nature and can handle the monitoring requests from different aspects like network failures across the large scale dynamic distributed systems and many other faults like network topology changes, addition and deletion of the resources across the network. In general there could be number of many domain mangers across the dynamic distributed systems and handling the faults across these domain mangers is really a tedious job. There are different mobile agent based fault tolerant methods to handle these failure and most of them are proved to fail due to the heavy computational overhead in retrieving the updates from the mobile agents.

Always an efficient monitoring system is required to handle these failures and there are number of issues that make the monitoring system perform low due to the continuous increase in the infrastructure and lot of monitoring tasks from different systems and thus a perfect mobile agent based monitoring system is required to handle all these sort of issues. There could be some heterogeneous system updates and most of the managed resources become dynamic and thus the traditional static monitoring and mobile agents are not sufficient and always dynamic mobile agents are required to get the monitoring updates to ensure the top performance of the systems. 

 This paper is written and submitted by sai

Problems in Distributed System

As per the advancement of technology, a new version of distributed systems has arrived with a name known as dynamic distributed system with more advanced features like dynamic data sharing and resource allocation among the autonomous systems dynamically using some algorithms.

There are many existing problems across these dynamic distributed systems and the most common among there are updates to the systems with the change in topology, handling the mobility of the processors, tolerance to the network failures and handling the dynamic database requests.

Message passing is the most predominant tasks that run across these dynamic distributed systems and a lot of shared memory objects are used across this type of communication process and at the same time there is lot of score for faults across the process of sharing the shared memory objects.

Maintenance of the replica database base objects is also common issues that rise across these dynamic distributed systems and the replication process may be interrupted due to the dynamic updates from any of the individual autonomous systems and even the group communication and the logical message passing techniques involved in this type of communication make the distributed system to make porn towards the faults. 

 This paper is written and submitted by sai