Skip to Main Content
The aims of the research are to investigate techniques that support the development of highly dependable applications in a distributed system environment. Techniques we are investigating include task allocation and fault-tolerant protocols supporting redundant task allocation, load balance, fault-tolerant computing and communication, error detecting and reconfiguration, test case generation and fault injection. The highly dependable environment co-exists with the original communication and operating system. It is transparent to applications that do not need the highly dependable environment. Applications that wish to use the highly dependable environment need only to specify the level of criticality of their tasks in order for the system to assign the level of redundancy and to activate the relevant fault tolerant protocols. The application we intend to implement in the environment is the firewall application. The firewall is run in redundant mode. Each incoming or outgoing packet is checked by two or more copies of the firewall application. Only when the majority of the firewall copies decide to accept the packet, the packet can go through the firewall. Otherwise, the packet will be rejected: Different decisions from the different firewall copies signify a possible hardware fault or a software error in the underlying system.