A platform for easily developing multithreaded/replicated servers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
ERLFS Initial commit of SVN r96 Apr 8, 2009
apps Updated documentation and add the apps directory Oct 28, 2009
bin Updated the date to 2010 Mar 23, 2010
ebin Refactored osp_admin into osp_admin and osp_manager. Modified the con… Nov 5, 2009
include Transition to a more erl-centric model Mar 22, 2010
log Added a git ignore to force the log dir May 5, 2009
servlets Transition to a more erl-centric model Mar 22, 2010
src Joining and web population is complete! Mar 23, 2010
COPYING Updated the date on the license May 13, 2009
compile_servlet.pl Added some extra checks Mar 22, 2010
gen-join.pl Fixed a typo from when updated to OTP Mar 22, 2010
header.erl Transition to a more erl-centric model Mar 22, 2010
join.sh.sample Merge branch 'otp' May 5, 2009
osp-servlet.dtd Initial commit of SVN r96 Apr 8, 2009
setup-osp.sh Added a default mnesia dir so it wouldn't use /tmp, and added a osp_c… May 5, 2009


Open Server Platform
Version 0.4
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.
	Welcome to OSP! Hopefully you'll find it as exciting as we do! Let's 
get started then, shall we?

	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

	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 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

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.