SourceForge.net Logo
The project main page A list of events with short description in a reverse-chronological order. All type of documents, help, FAQ etc. can be found here. All types of downloads, releases, patches etc. are to be found here. A list of screen-shot images of various releases. Contact us for anything to everything related to the project. We  

    The D16 project core is an open-source (Licensed under GPL GNU GENERAL PUBLIC LICENCE), multi-platform (currently Win32 and Linux), peer-to-peer distributed computing platform. According to Wikipedia Distributed computing is the process of aggregating the power of several computing entities to collaboratively run a single computational task in a transparent and coherent way, so that they appear as a single, centralized system.
D16 is designed and implemented with scalability and security in mind. It can be used for clustering also where there can be theoretically 1 to +INF number of peers!

Support This Project
 

The D16 core project - Core architecture

Specification version-1.0. Document revision-1.0-06/16/05

 The version 1.0 of the core design and architecture of the D16 core project is explained here. Please note that this document is preliminary and is subject to changes partially or wholly, as the design and/or architecture of the project changes. A PDF version of this document can be found in the Documents section along with other project documents. For displaying these documents you may need Adobe Acrobat reader.
Get Adobe reader

The D16 core project consists of (at least)the following components

each of which is explained below.

The D16 tracker server

The Basic architecture is illustrated below with the help of following diagram.


As shown in the diagram, the D16 network consists of a tracker server running D16 core tracker server software, and various peers (which can be home or work PCs, work-stations, main-frames, or even other types of dedicated servers) running the D16 core peer platform software.

All the network activities are made according to the D16 protocol which is a high level protocol layer laid upon the TCP/IP. In D16 protocol every transaction is made using so-called D16 signals, which has mainly three fields. More information on the D16 protocol can be found here.

The peers initially connects to a tracker server whose address is known (which is configurable on the peer platform itself), and sends a registration signal. If the registration signal is accepted, the tracker server enrolls the peer to the peer-list it is maintaining, and sends back an ACCEPT signal indicating the registration was accepted; on the other hand when the registration is rejected, a DECLINE signal is send back.

Another function of the tracker server is to maintain a list of peers currently connected to the network (which may be sorted according to maximum processing power that can be offered, resource contribution and/or connection type/bandwidth). This list is supplied to each registered peer upon request. For a tight network such as clusters and or grids, this operation is comparatively easy and straight forward. But maintaining such a list becomes a tedious process on a loose bound Internet network or on a WAN, where most of the individual peers are not guaranteed to stay connected all the time, or for at least by the time of completion of the distributed tasks; more over they may disconnect from the network unexpectedly, without reporting a DISCONNECT signal to the tracker server. Which in turn causes the tracker server to keep such non-existing peers, enrolled to the peer-list they are maintaining. However this problem can be resolved by accepting a connection error report from other peers as they encounter a connection error with any peer, so that the tracker server can check the connection and remove the entry corresponding to the particular peer, if necessary.

In short the D16 tracker server is a server application which facilitates the following:-

The D16 Network protocol

The D16 network uses D16 protocol – which is a high-level protocol laid upon TCP/IP. D16 protocol uses D16 signals for transmission of control and data. Signals are defined for various purposes (all signals are predefined). A signal has the following structure.


A signal is constituted of fields (normally four in number).

  1. A Tag field

  1. An ID field

  2. -An ID field follows the tag field, which has the information about the peer who sends the signal. It has three parts separated by tag separators in between.

    <IP address><tag sep><Port number><tag sep><Display Name>

  3. A Signal body field

    -Signal body field is the body of the signal. Contains extra data or information, if any, required by the signal. This has only one part and there is no restriction for the internal part of this field. Also there is no restriction on the length of data in this field.

  4. END OF TRANSMISSION field (EOT)
  5. -The signal is terminated by an EOT byte. This field is only one byte in length and contains an EOT character(may differ from an ASCII EOT. Specified in appendix B Constants and symbols used), to indicate that the signal is terminated.

Every field is separated by a field separator (specified in appendix B Constants and symbols used).

The D16 Intermediate Transaction Layer (ITL)

This is the most important part of a peer platform, which connects to the tracker servers and to other peer and communicates with them according to the D16 protocol. The ITL is a program which runs on each peers and performs registration/disconnection and other transactions with the tracker server and other peers. The main job of ITL is to provide manageable services, in the form of various objects, to the D-Script Virtual Machine (DVM), so that the distributed scripts and libraries can make use of them.

D-Script Virtual Machine (DVM)

The D16 network protocol

 


Project logo
© 2004 The D16 project team. All rights reserved.
Site designed and maintained by HK a.k.a. eXeption