diff options
Diffstat (limited to 'docs/nelnet.php3')
-rw-r--r-- | docs/nelnet.php3 | 530 |
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> <A CLASS=uplinks HREF=><b>Home</B></FONT></A> </TD> - <TD><IMG width=6 height=14 SRC="/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle> <A CLASS=uplinks HREF=><b>nevrax.com</B></FONT></A> </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 -> 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 -> 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 -> 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 --> Client, Client -> 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 : - Base interface and behavior definition for hierarchical descendents</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CTcpSock : - Implementation of a socket class for the TCP/IP protocol</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CUdpSock : - 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 : - Buffer functionality common to client and server</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CBufClient : - Implements client-specific buffer functionality - </P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CBufServer : - 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 : - Stream functionality common to client and server</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CStreamClient : - Client-specific stream functionality</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CStreamServer : - 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 : - Functionality common to client and server</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CCallbackClient : - Client-specific functionality</P> - <LI><P STYLE="margin-top: 0.11cm; margin-bottom: 0cm">CCallbackServer : - 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> </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 |