During recent years there is a big advancement in high performance distributed computer system in science and industry. These systems can provide transparent and efficient computing. For more complex applications existing scheduling system is limited. IBIS allows easy programming and development of distributed applications,even for dynamic, faulty and heterogeneous environment. IBIS is used in Multimedia computing, Spectroscopic data processing, Human brain scan analysis and Automatic grammar learning.
Ad-hoc collection of compute resources that communicate with one another via some network connection constitutes a real world distributed computing system. Writing applications of such system is difficult. High performance distributed system can be abstracted these complexities by a single software system that applies to any real world distributed system. These system have two logically independent subsystems such as programming system and deployment system.
Ibis uses Java virtual machine technology. Ibis system architecture follows the duel system approach such as the programming system and deployment system. Programming system should allow efficient programming models that support fault tolerance and malleability. Implemented in the Ibis portability layer(IPL). Deployment system contains a GUI and a library for deploying and managing applications implemented on a middleware interoperability layer(MIL). It also provides support for distributed file management, user authentication, resource management and interoperability between different middleware system. IBIS is modular and flexible.
IBIS Programming Language (IPL)
IPL is a Java based communication library. In IPL the resources can be added or removed dynamically. It provides a range of communication primitives including those for point-to-point and multicast communication. It avoids the copy overhead. It incorporates a mechanism ,Join Elect Leave(JEL). JEL is based on the concept of signalling. JEL provides the building blocks for fault tolerance. Java IPL implementations are available using Ibis SmartSocket library,TCP UDP and bluetooth. Also performs implementation using specialised non java libraries such as MX, MPI.
Incoming traffic at a node may be restricted by a firewall. Smart Socket library solves the problem like reverse connection setup, overlay routing,and secure Shell (SSH) tunnelling. When creating a connection, smart socket initially tries to set up a regular TCP connection. Smart sockets also handles machine with multiple network address via multi homing. Extra identity checks in the protocol ensure that it reaches the correct destination.
IBIS Programming Models
- MPJ,MPI binding for java.
- Satin, a divide and conquer model.
- RMI, object oriented remote procedural call.
- Group method invocation(GMI)a generalisation of RMI to group communication, including multicast and all to all communication.
- Maestro, a fault tolerant and self optimizing data flow model.
- Jorus, a programming model for data parallel multimedia applications.
IBIS Deployment System
The JavaGAT provides a high level API that facilitates development of complex applications. This API is object oriented. The primitives provide access to remote data, user authentication, resource management, and storing of application specific data. The JavaGAT also uses intelligent dispatching to integrate multiple middleware systems with different and incomplete functionality into a single, consistent system.
Ibis deploy provides a simple and generic API and GUI that can automatically perform commonly used deployment scenarios. When a distributed Ibis application is running, It also automatically uploads the program codes, libraries, and input files and automatically downloads the output files. Run multiple distributed applications concurrently.
Open Problems And Future Work
Non-Java applications could also use the IPL through the JNI which is complicated. For high programming applications it cannot be used. Intelligent dispatching technique leads to more complex error reporting and debugging if operations fail. JavaGAT introduces runtime overhead. Visual debugging profiling tools should developed for solving these problems.
Ibis reduces the effort needed to create and deploy applications for real-world distributed systems. To achieve this, it integrates solutions to many fundamental distributed computing problems in a single modular programming and deployment system. Two-way connectivity is rare in a real-world distributed system. However, Smart Sockets achieves this in a transparent manner. Ibis also tries to make distributed programming easier by providing high-level programming models on top of these mechanisms