logo

StrixServer

A light http server for StrixStore

Copyright © 2010 StrixDB. Freely available under the terms of the StrixDB license.


Overview

StrixServer provided in the distribution is a light alternative for a SPARQL server. Full featured HTTP1.1 server like Apache or Microsoft IIS offers better scalability, security but are more complex to administrate.

StrixServer is thought for Lua: it could be used has a Lua console, parameters are described in Lua language,  and dynamic Lua pages could be used.

Status

Download and installation

StrixServer can be downloaded as Windows binaries from http://opoirel.free.fr/strixDB/download.html.  Just unzip the distribution StrixDB.x.x.zip file into a folder. The standard distribution includes the server, StrixStore.dll (the RDF ISAPI/Lua Module) and the 2 dll dependencies lua5.1.dll and webGet.dll

StrixServer requires only lua5.1.dll and StrixStore.dll

To check the validity of installation, run once the server with the default configuration file conf.lua :

C:\RDFtest> StrixServer -i -c conf.lua

Then, in a web browser, ask for http://localhost/cgi/?infos You will get ISAPI information.

Ask now for http://localhost/cgi/?graphs     You will get a RDF file describing the graphs in the RDF store: now, only the default graph and empty (0 triples).

History

  • 14-07-2010    Initial release

Reference

Parameters :

name = <string> the server name default = StrixServer
port = <number> port of server default = 80
IPaddress=<string>   default = "localhost"
threadsCount=<number> number of threads default = 10,
maximum allowed = 100
log= <table>if the parameter table is empty {}, there is no no connection log.
Advanced parameters
keepAlive = <boolean> if true, keep the socket connection
alive, even when client don't specify
keepAlive=true
default = false
autoExpires=<boolean> if true each  alive connection is automatically closed after
60 seconds of ianctivity
default = true
queueSize = <number>Length of the queue of pending connections waiting for
a free thread of the pool
default = 10
idleTimeout = <number>time in millisecond before a idle connection is closed.default = 10000
sendTimeout = <number>time in millisceonf before a not responding connection is
considered to be closed.
default =5000
IOCPqueue = <boolean> if true, use the IOCP (windows specific) default = false
DNSlookup = <boolean> if true, resolves addresses with DNS default = false
    

 

About performances

About Threads and Variable visibility

Each call of the RDF store is made inside the context of the calling thread. Each thread has is own Lua environment.

For this reason, lua variables or functions declarated in one thread (one call of StrixStrore) is not visible in other threads.

 it means that each connection is thread-isolated :