aboutsummaryrefslogtreecommitdiff
path: root/docs/nelnet.php3
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 21:06:36 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 21:06:36 +0200
commit450c9e0da0fa03f2356dd4f1ba75bb5308f2ad48 (patch)
treeac81b9a3f35a1bfc8f9eaa5ce7d808b25767380e /docs/nelnet.php3
parent10b896b342c9d1051b59840b5a03abc2a4687560 (diff)
downloadnevrax-website-self-hostable-450c9e0da0fa03f2356dd4f1ba75bb5308f2ad48.tar.xz
nevrax-website-self-hostable-450c9e0da0fa03f2356dd4f1ba75bb5308f2ad48.zip
Move old php3 extension to simple php extension
Diffstat (limited to 'docs/nelnet.php3')
-rw-r--r--docs/nelnet.php3530
1 files changed, 0 insertions, 530 deletions
diff --git a/docs/nelnet.php3 b/docs/nelnet.php3
deleted file mode 100644
index 3780c401..00000000
--- a/docs/nelnet.php3
+++ /dev/null
@@ -1,530 +0,0 @@
-<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
-<HTML>
-<HEAD>
- <TITLE>Nevrax.org : docs</TITLE>
- <META name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
- <LINK REL=stylesheet TYPE="text/css" HREF="/inc/css/nevrax.css">
-</HEAD>
-<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
-
-<!-- uplinks -->
-<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
- <TR>
- <TD WIDTH=16><IMG SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
- <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
- <TD WIDTH=16><IMG SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
- <TD><IMG width=6 height=14 SRC="/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
- <TD><IMG width=6 height=14 SRC="/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
- </TR>
-</TABLE>
-
-<!-- banner Nevrax -->
-<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
- <TR><TD BGCOLOR="#000000" BACKGROUND="/inc/img/black_banner.jpg"><A HREF=""><IMG SRC="/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax"></A></TD></TR>
-</TABLE>
-
-<!-- main table -->
-<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
- <TR>
- <TD WIDTH=16><IMG SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
- <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
-
- <!------ Begin Box ------>
- <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
- <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
- <TABLE cellspacing=0 cellpadding=1 border=0>
- <tr><td ALIGN=middle><a class='linkbox' href="/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="/news/" TITLE="News">News</a></td></tr>
- <tr><td ALIGN=middle><a class='linkbox' href="/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
- <tr><td ALIGN=middle><a class='linkbox' href="/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="/docs/" TITLE="Documentation">Documentation</a></td></tr>
- <tr><td ALIGN=middle><a class='linkbox' href="/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="/cvs/" TITLE="CVS Web">CVS</a></td></tr>
-<!-- <tr><td ALIGN=middle><a class='linkbox' href="/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>-->
- <tr><td ALIGN=middle><a class='linkbox' href="/free/" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=/inc/img/picto-free.gif ALT=#></A></td><td><a class='linkbox' href="/free/" TITLE="Free Software">Free software</a></td></tr>
- <tr><td ALIGN=middle><a class='linkbox' href="/download/" TITLE="Rubrique download"><img width=13 height=17 hspace=5 border=0 src=/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="/download/" TITLE="Download">Download</a></td></tr>
- <tr><td ALIGN=middle><a class='linkbox' href="/suggest/" TITLE="Rubrique suggest"><img width=14 height=16 hspace=5 border=0 src=/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="/suggest/" TITLE="FS Suggest">FS Suggest</a></td></tr>
- <tr><td ALIGN=middle><a class='linkbox' href="/faq/" TITLE="Rubrique suggest"><img width=14 height=16 hspace=5 border=0 src=/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="/faq/" TITLE="FAQ">FAQ</a></td></tr>
- </TABLE>
- </TD></TR></TABLE></TD></TR></TABLE>
- <!------ End Box ------>
-
-
- </TD>
- <TD WIDTH=15><IMG SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
- <TD ALIGN=left valign=top><IMG SRC="/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
-
-<!-- title -->
-<TABLE background="/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
-<A HREF="/docs"><img src="/inc/img/t_docs.gif" ALT="docs" HEIGHT=20 BORDER=0></A>
-</td><td><IMG SRC="/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
-</td></tr></table>
-
-<!-- End header -->
-
-
-<!-- Nel Network Library -->
-<table width=100%><tr><td align=left><b>Nel Network Library</b></td><td align=right><b></b></td></TR></TABLE>
-<H1>Introduction</H1>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">This documents
-presents 'NeL Net', the NeL network library.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">NeL is a toolkit
-for the development of massively online universes. It provides the
-base technologies and a set of development methodologies for the
-development of both client and server code.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The NeL Net
-comprises code libraries for inter-server communication and
-server-client communication. It also provides implementations of the
-service executables required by the higher level layers of the code
-libraries.</P>
-<H2>Mission Statement</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The first objective
-of NeL Net is to provide a complete data transfer system that
-abstracts system specific code and provides mechanisms for complete
-control of bandwidth usage by the application code.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">NeL Net has a
-further objective of providing a complete toolkit, comprising further
-layers of library code and core service implementations, for the
-development of performance critical distributed program systems for
-massively multi user universe servers.
-</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The current feature
-requirement list for NeL Net corresponds to the application
-architecture for Nevrax' first product. This notably includes the
-requirement for a centralised login validation system at a separate
-geographical location from the universe servers.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Nevrax is currently
-developing a TCP/IP implementation of the low level network layers. A
-UDP implementation may be developed at a later date.</P>
-<H2>Target Platforms</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The Nevrax team
-expect to run GNU/Linux servers for their first product. As such, GNU/Linux
-is the primary target operating system.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">NeL Net is
-currently tested on GNU/Linux and Microsoft Windows NT platforms.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><BR>
-</P>
-<H1>Statement of requirements</H1>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The Network library
-addresses the following problems:</P>
-<H2>Client -&gt; Server communication</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The product
- code (also referred to as app code) on the Client needs to be able
- to pass blocks of information to the network layer for communication
- to the server. The network code is responsible for ensuring that
- the blocks of data arrive complete server-side. In the majority of
- cases the blocks of data from the client will be significantly
- smaller than the maximum packet size, which means that the network
- code should not need to split data blocks across network packets.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">In order for
- the app code to control the flow of data to the server, the network
- code should buffer sends until either an app-definable time has
- elapsed or an app-definable packet size has been reached.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Note: The
- information sent from the client to the server will generally be
- small in size, typically representing player actions such as
- movement.
- </P>
-</UL>
-<H2>Server -&gt; Client communication</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The app code
- on the Server needs to be able to pass blocks of information to the
- network layer for communication to the client. This problem is
- exactly the same as the Client -&gt; Server problem, described
- above.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The app code
- is responsible for limiting the amount of data sent to each player
- each second by prioritising the information to be dispatched. In
- order to achieve this, the network code should buffer sends until
- the app code explicitly requests a buffer flush. The network API
- should provide the app code with the means of tracking the growth of
- the output buffer.
- </P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Note: The
- information sent from the server to the client will often be large
- in size, as the server must inform the player of changes of state
- and position of all other characters and objects in the player's
- vicinity.
- </P>
-</UL>
-<H2>Inter-Process communication across servers</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The different
- processes that make up the game need to be able to send messages to
- each other to request or exchange information.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">There needs to
- be a transparent routing mechanism that locates the services to
- which messages are addressed and dispatches them.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">There needs to
- be a standard framework that handles the queue of incoming messages
- and manages the dispatch of messages to different modules within a
- process. (e.g. A process that manages a set of AI controlled
- characters may have one module that handles incoming environment
- information, another that treats other processes' information
- requests, and so on).</P>
-</UL>
-<H2>On the fly backup management</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">There needs to
- be a reliable centralised system for backing up and retrieving world
- data.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The system
- must be capable of treating large volumes of data as 'transactions'.
- This means that if a server goes down - when it comes back up
- transactions will never be 'half complete'. Any transactions that
- had been begun but not finished must be automatically undone.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The backup
- system must be capable of managing a 'backup schedule' under which
- it sends backup requests to scheduled processes and treats the
- return data.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The backup
- system must be capable of handling spontaneous backups from
- different processes (particularly the player management processes
- who are capable of backing up players at any time).</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The backup
- system will be called upon to retrieve player data whenever a player
- logs in. This operation must be reasonably fast.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The backup
- system will be called upon to supply data to each system at system
- initialisation time. The backup system should supply such systems
- with their complete data sets.</P>
-</UL>
-<H2>General requirements</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The app code
- is responsible for network traffic and must be capable of much lower
- level access to the Network library than the above requirements
- suggest.</P>
-</UL>
-<H2>Login/ logout management</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The product
- that Nevrax is developing handles multiple instances of the game
- world running on different server sets (known as 'Shards') with a
- single centralised login manager.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The login
- manager must:</P>
- <UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Receive login
- requests from client machines</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Validate
- login requests with the account management system</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Provide the
- client with the active shard list</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Negotiate a
- connection with the shard of the client's choice</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Dispatch the
- shard's IP address and a unique login key to the client</P>
- </UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The login
- manager must refuse attempts to login multiple times under the same
- user account. This implies that the login manager must be warned
- when players log out.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The login
- system should include client and shard modules that provide a high
- level interface to the login manager, encapsulating communication.</P>
-</UL>
-<H2>Account management</H2>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">No choice has
- been made as to what solution to take to account management at NeL.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">It is
- sufficient to know that we need a standard API for the account
- management system capable of validating logins.</P>
-</UL>
-<H1>Technical design details</H1>
-<H2>Design outline</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The NeL network
-library provides a single solution which caters for all of the Server
--&gt; Client, Client -&gt; Server and Inter-Process communication
-requirements.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">This solution is
-structured as a number of layers that are stacked on top of each
-other. The API gives the app programmers direct access to all of the
-layers.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">There is a program
-skeleton for the programs within a shard who are capable of
-communicating with each other via layer 5 messages. Programs of this
-form are referred to as 'Services'.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The backup system
-is a standalone service (a service being a process which exposes a
-standard message interface) which will encapsulate a 3rd party
-database.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The login manager
-and account manager are standalone programs at an isolated site.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">In a nutshell the
-network support layers include:</P>
-<TABLE WIDTH=568 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=1 CELLSPACING=0>
- <COL WIDTH=112>
- <COL WIDTH=450>
- <TR VALIGN=TOP>
- <TD WIDTH=112>
- <P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Layer 4</P>
- <P STYLE="margin-top: 0.11cm">(Top Layer)</P>
- </TD>
- <TD WIDTH=450>
- <P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Inter-Service
- message addressing layer</P>
- <P STYLE="margin-top: 0.11cm">Handles routing of messages to
- services, encapsulating connection to naming service and handling
- of lost connections.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=112>
- <P STYLE="margin-top: 0.11cm">Layer 3</P>
- </TD>
- <TD WIDTH=450>
- <P STYLE="margin-top: 0.11cm">Message management layer<BR>(Handling
- of asynchronous message passing, and callbacks)</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=112>
- <P STYLE="margin-top: 0.11cm">Layer 2</P>
- </TD>
- <TD WIDTH=450>
- <P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Serialised data
- management layer</P>
- <P STYLE="margin-top: 0.11cm">Supports the standard serial()
- mechanism provided by NeL for handling data streams.</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=112>
- <P STYLE="margin-top: 0.11cm">Layer 1</P>
- </TD>
- <TD WIDTH=450>
- <P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Data block
- management layer<BR>(buffering and structuring of data with
- generic serialization system)</P>
- <P STYLE="margin-top: 0.11cm">Also provides multi-threading
- listening system for services</P>
- </TD>
- </TR>
- <TR VALIGN=TOP>
- <TD WIDTH=112>
- <P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Layer 0</P>
- <P STYLE="margin-top: 0.11cm">(Bottom Layer)</P>
- </TD>
- <TD WIDTH=450>
- <P STYLE="margin-top: 0.11cm">Data transfer layer<BR>Abstraction
- of the network API and links (PC may be across a network, or local
- messaging)</P>
- </TD>
- </TR>
-</TABLE>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><BR>
-</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><BR>
-</P>
-<H2>Layer 0</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Layer 0 includes
-the following classes:</P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CSock&nbsp;:
- Base interface and behavior definition for hierarchical descendents</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CTcpSock&nbsp;:
- Implementation of a socket class for the TCP/IP protocol</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CUdpSock&nbsp;:
- Implementation of a socket class for the UDP protocol</P>
-</UL>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>Layer 1</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Layer 1 includes
-the following classes:</P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CBufNetBase&nbsp;:
- Buffer functionality common to client and server</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CBufClient&nbsp;:
- Implements client-specific buffer functionality
- </P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CBufServer&nbsp;:
- Implements server-specific buffer functionality</P>
-</UL>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>Layer 2</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Layer 2 includes
-the following classes:</P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CStreamNetBase&nbsp;:
- Stream functionality common to client and server</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CStreamClient&nbsp;:
- Client-specific stream functionality</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CStreamServer&nbsp;:
- Server-specific stream functionality</P>
-</UL>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>Layer 3</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Layer 3 includes
-the following classes:</P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CCallbackNetBase&nbsp;:
- Functionality common to client and server</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CCallbackClient&nbsp;:
- Client-specific functionality</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CCallbackServer&nbsp;:
- Server-specific functionality</P>
-</UL>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>Layer 4</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>System Services</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The following
-system services are provided as part of NeL. For each of these
-services there exists an API class that may be instantiated in any
-app-specific service in order to encapsulate the system service's
-functionality.</P>
-<H3>The Naming Service</H3>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">A standalone
-program used by all services to reference each other.</P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">All services
- connect to the naming service when they are initialised. They
- inform the naming service of their name and whereabouts.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The naming
- service is capable of informing any service of the whereabouts of
- any other service.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">When more than
- one instance of the same service connect to the naming service we
- anticipate the possibility of the naming service managing simple
- load balancing by distributing connection requests to the given
- service across the available instances.</P>
-</UL>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><I><B>API class:
-</B>CNamingClient</I></P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Generates
- dynamic port numbers</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Registers the
- application service's name with the naming service.</P>
-</UL>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Retrieves the
- IP address and port number for a named service.</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><I> See
- technical documentation for details</I></P>
-</UL>
-<H3>The Time Service</H3>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Provides standard
-universal time (in milliseconds) for the services within a shard and
-also for remote clients across the internet.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><I><B>API class:
-</B>CUniTime - See technical documentation for details</I></P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Synchronises
- the local machine time with the universal time</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Provides
- access to the universal time</P>
-</UL>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><I>See
- technical documentation for details</I></P>
-</UL>
-<H3>The Log Service</H3>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Provides a
-centralised information logging system.</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><I><B>API class:
-</B>CNetDisplayer</I></P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Allows any log
- message to be directed to the log service (instead of or as well as
- the screen, a disk log file, etc)</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">This is a
- displayer in the logging system (see misc library for details)</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><I>See
- technical documentation for more details</I></P>
-</UL>
-<H2>The Service Skeleton</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The network library
-presents a generic service skeleton, which includes the base
-functions of a distributed service. At initialisation time it
-performs the following:</P>
-<UL>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Reads and
- interprets configuration file and command line parameters</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Redirects the
- system signals to NeL handler routines</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Connects to
- the Log Service</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Connects to
- the Time Service and synchronises clock with universal time</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Creates and
- registers callbacks for network layer 3</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Sets up the
- service's 'listen' socket</P>
- <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Registers
- itself with the Naming Service</P>
-</UL>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The skeleton also
-handles exceptions and housekeeping when the program exits (whether
-cleanly or not)</P>
-<H2>Login system</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H3>Login manager(stand alone)</H3>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H3>Login client API</H3>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H3>Login shard API</H3>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>Account manager (stand alone)</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">Stand alone program
-that handles the list of users permitted to connect to shards managed
-by a given Login Manager.
-</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">NeL provides a
-skeleton program that includes the communication protocols for the
-Login manager.</P>
-<H2>Backup Service</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-<H2>Administration</H2>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">NeL provides the
-base mechanisms for administering a NeL shard. Two basic services
-are provided:</P>
-<P STYLE="margin-top: 0.21cm; margin-bottom: 0cm">The <B>Admin
-Service </B>(1 per shard)</P>
-<UL>
- <LI><P STYLE="margin-bottom: 0cm">Provides an entry point for
- cluster administration.</P>
- <LI><P STYLE="margin-bottom: 0cm">Provides access to logging
- information and mechanisms for starting or restarting services</P>
-</UL>
-<P STYLE="margin-top: 0.21cm; margin-bottom: 0cm">The <B>Admin
-Executor</B> (1 per server)</P>
-<UL>
- <LI><P STYLE="margin-bottom: 0cm">This is the relay for the Admin
- Service.</P>
- <LI><P STYLE="margin-bottom: 0cm">Fetches statistics on the local
- machine and relays them to the Admin Service</P>
- <LI><P STYLE="margin-bottom: 0cm">Launches and controls the services
- running on the local machine.</P>
-</UL>
-<H1>Future plans</H1>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">The purely network
-library is typically self-contained, and not much subject to
-modification, unless one wants to change the entire paradigm around
-which the platform runs. Addition of a specific and non-standard
-network or network API would be the only reason one would change
-layer 1.
-</P>
-<P STYLE="margin-top: 0.11cm; margin-bottom: 0cm"><FONT COLOR="#0000ff">****
-Document under construction</FONT></P>
-
-<!-- footer -->
-<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
-</TD>
-<TD WIDTH=15><IMG SRC=/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML> \ No newline at end of file