Client SDK
Home/Documents/Development/High-Level Design/Client SDK
by Benad
The ANet Client SDK is a collection of functions given to simplify the development of clients to the ANet protocol.
Table of Contents
The goal of the ANet Client SDK is simplify to its maximum the development of ANet clients. It does so by giving several tools within a library.
- The actual connection with the a Client Connection Module in ANet is done automatically by simply calling the "connect me" function. Disconnection is also done with a simple function.
- Sending and receiving data is simplified. You can send or receive an array of packets with a single function call.
- Functions are given to manage the stored static data[1] and to read/change the configuration file. Functions are given to easily get a list of the available cluster groups and connections without having to "navigate" in the XML structure of the configuration file.
- You can easily establish and use TWDT[2] connections, as if they were BSD sockets.
- Easily receive though callback functions messages from the deamon (or actually the SDK itself) about the status of ANet, of the network and so on.
Obviously, the number of functions implemented in the SDK will increase, based on suggestions given by the client developers. Extensive documentation and examples will be also be given with the SDK.
- The SDK functions should be distributed under LPGL[3], in the form of a dynamic library(1). Thus, developers can make clients that are not distributed under GPL[4] (the ANet deamon is distributed under GPL), for example shareware or commercial.
- It is very important for the SDK to be easy to understand and well documented(2). This means that examples of clients using the SDK should be given. A lot of developer will have only the SDK as their only point of view of ANet, so if it's not a good, it can give a bad impression about the whole system.
Notes
(1) Programs that will use static linking with the dynamic library from the ANet SDK must be distributed with a license that "permit modification of the work for the customer's own use and reverse engineering for debugging such modifications"[3]. What this means is that any part of the ANet project, including the SDK, cannot be patented in any way...
(2) This is something that is usually lacking in most open-source projects: they are so difficult to understand (or to simply interface another program with them) that while their code is "open", their logic is "closed". That's why I'm wasting... err...investing a lot of time writing the documentation.
References
About the references...
[1] Benad: "Static Data". Local link.
[2] Benad: "Anonymous Two-Way Data Transfers". Local link.
[3] Free Software Foundation: "GNU Lesser General Public License". External link.
[4] Free Software Foundation: "GNU Genral Public License". External link.
Last update for this document: July 22, 2001, at 21:36:51 PST