/open-server-platform

A platform for easily developing multithreaded/replicated servers

Primary LanguageErlangMIT LicenseMIT

Open Server Platform
Version 0.4
3/22/10
Coyright (C) 2010 Jacob Torrey

Open Server Platform (OSP) is an open source (MIT License) project to make it easier to create secure, 
multi-threaded servers that can be distributed (onto the cloud even). You can find more information 
about OSP at http://www.openserverplatform.com. The main repository is on Google Code, but since SVN
is such a nightmare to use, the bleeding edge code will be kept here, and push to Google every time 
something big happens.
			
Introduction
	Welcome to OSP! Hopefully you'll find it as exciting as we do! Let's 
get started then, shall we?

Requirements
	Before you can get started, you'll need a few dependancies installed:
	       -> erlang R13B or newer and the development headers (erlang-dev)
	       -> erlang-os_mon, erlang-mnesia (the OTP stack)
	       -> The XML::Simple perl module
	       -> Netcat

Building
	Once you have the requirements installed, running make from inside of src
should build the system, then you can return to the main OSP directory.

Starting OSP
	Once you have the OSP environment downloaded and built, edit the include/conf.hrl
and run:
	 		./bin/osp_ctl start
	 							
	This will start an OSP instance on the local machine prepared to server
code to remote nodes and running the Mnesia shared state database. It will
also start the administrator console listening on port 9876. Once this script 
is complete, telnet to 127.0.0.1 on port 9876. You are now in the admin 
console for OSP, from whence you can see stats about the current system, add
other nodes to the OSP cluster, and manage running applications.
      In addition to the telnet interface, there is a CLI script in ./bin that
provides a more scriptable interface to the OSP cluster.
      As of version 0.4, there is also a web management console which can be
found at http://localhost:9877 that provides a more user friendly management
interface.

Adding other nodes
	To add other diskless nodes (nodes without a copy of OSP), run gen-join.pl
and copy join.sh and inclue to another machine. Before running the 
join script, type 'add-diskless-ip <ip of joining machine>' on the OSP admin 
console. Now you can run the join script and on the OSP admin console, when 
you run 'stats', you should see your new node. 
	To add nodes that have a local copy of OSP, just edit the join script 
to point to the other nodes and run it. It will automatically detect if there 
is a local copy of OSP and use that one.

Starting applications
	To start applications, connect to the admin console and type 'start
<app name> <port #> <node name>'. If you want to run an application on the 
master server, start it on that one first. If you are starting an application 
on remote machine, you must ensure that it resides on that machine, or if it is
a diskless node, that the compiled application is on the master code server.