Skip to content

Commit

Permalink
strip version info and add license page
Browse files Browse the repository at this point in the history
  • Loading branch information
osullivj committed Mar 7, 2017
1 parent d570ae8 commit 789bb2f
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 24 deletions.
37 changes: 34 additions & 3 deletions config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ of interest to users.
* ``DNS_HOST_NAME``: path to a flat text file containing a hostname. If the file exists, SpreadServeEngine will
use this hostname when phoning home to spreadserve.com.
* ``OWNER``: the email address associated with this SpreadServe host by spreadserve.com.
* ``FORMAT_LOADING``: switches cell formatting on or off when loading xlsx files. No impact on xls handing.
* ``FORMAT_LOADING``: switches cell formatting on or off to accelerate loading xlsx files. No impact on xls handing.
* ``XLL_CFG_FILE``: path to the file that specifies the XLLs to be loaded.
* ``XLL_REG_FILE``: path to the file sseng.exe uses to dump signatures of XLL worksheet functions
that have been successfully registered.
Expand All @@ -23,7 +23,9 @@ of interest to users.

The RealTimeWebServer implementation is mostly in one Python module: ``%SSROOT%\py\http\rtwebsvr.py``, which has
gets configuration variables from ``%SSROOT%\cfg\webcfg.py``. If you want to switch SpreadServe to work with
Active Directory authentication, rather than it's default social login, then edit webcfg.py
Active Directory authentication, rather than it's default social login, then edit webcfg.py to configure
user group mappings. You'll also need to supply the ``AUTH`` command line parameter to RealTimeWebServer. See
the command line parameters section below for detail on ``AUTH``.

* ``ADGroupMappings``: a dictionary defining the Active Directory groups that for which user
membership will give view, edit or admin permissions.
Expand All @@ -41,7 +43,7 @@ Active Directory authentication, rather than it's default social login, then edi
new spreadsheets to the repository via the repository page.


**SpreadServe Command line parameters**
**SpreadServe command line parameters**

All SpreadServe processes, whether they are RealTimeWebServer, SpreadServeEngine, Dora, Pan, SocketServer
or DBLogServer take a common set of command line paramters. Some have custom parameters that tailor a specific
Expand All @@ -51,6 +53,14 @@ value eg ``-ENV SIT -NAME DBLogServer``.

* ``HTTP_PORT``: supply this on the rtwebsvr.py command line to change the RealTimeWebServer port. For example
``-HTTP_PORT 80`` to run on port 80.
* ``AUTH``: supply this on the rtwebsvr.py command line to specify the authentication mechanism. The three
possible settings are

* ``sscld``: the default. Cloud authentication with spreadserve.com. To edit permissions at http://spreadserve.com/adm/cldperms.html
you must ensure your email address is set in ``sseng.ini:OWNER``
* ``ssad``: Active Directory. Configure your user group mappings as describe above.
* ``ssna``: No authentication. We suggest you only use this is development and test environments, and not production!

* ``ENV``: Mandatory. Environment that this SpreadServe process belongs to. Several environments can co-exist on the
same host as components will only recognise and communicate with components in the same named environment.
* ``NAME``: Optional. C++ processes will default to the exe name on the dashboard page, and Python processes will
Expand Down Expand Up @@ -100,3 +110,24 @@ made profiles are supplied in the ``%SSROOT%\cfg`` directory. They are...
* ``baseweb``: launches the same three processes as ``base``, but with the addition of the RealTimeWebServer.
* ``demo``: same as ``baseweb``, but adds BlackScholesMockMarketData to pump fake market data into the BlackScholes.xls
example sheet.

**Windows Service**

The ``launch.cmd`` and ``halt.cmd`` scripts described above are appropriate for manually launching and halting
SpreadServe. You may also find them convenient for other job control systems like AutoSys. You can also
configure SpreadServe to run as a Windows Service::

cd %SSROOT%\py\util
..\..\sh\sspy windows_service.py install
Then you can use Windows' Services GUI to configure Automatic or Manual startup, and to start and stop the service.
We recommend you do not use the Local System account to run SpreadServe as a Windows Service, and instead configure
it to run under Administrator or some other user account. SpreadServe's RTD capabilities, as implemented in SSAddin,
rely on Registry ClassId and ProgId lookup that access the HKCU hive, and they don't wotk under Local System. Once
you've created the service you can start and stop SpreadServe at the command line like so::

sc start SpreadServe
sc stop SpreadServe
To automate SpreadServe start and stop times on a specific host you can use Windows Task Scheduler to invoke
``sc start SpreadServe`` and ``sc stop SpreadServe``.
34 changes: 18 additions & 16 deletions guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ SpreadServe User Guide
Once you've installed SpreadServe, you can start and stop it's server processes using a couple of scripts in the sh subdirectory.
Here's how you would start SpreadServe::

cd c:\SpreadServe\ss0.4.2\sh
cd %SSROOT%\sh
launch SIT baseweb

And here's how you can halt SpreadServe::

cd c:\SpreadServe\ss0.4.2\sh
cd %SSROOT%\sh
halt SIT
The launch script takes two parameters: environment name (SIT), and profile (baseweb). SpreadServe processes use the environment
Expand Down Expand Up @@ -71,7 +71,7 @@ Try clicking on Swaps under InterestRateDerivatives.xls and you should see this.
.. image:: img/ss_live3.jpg

This is just what you'd see in Microsoft Excel if you loaded the same SpreadSheet. Try it and see for yourself.
You can find the spreadsheet in the SpreadServe directory tree at ``py/http/repo/InterestRateDerivatives.xls``.
You can find the spreadsheet in the SpreadServe directory tree at ``%SSROOT%\py\http\repo\InterestRateDerivatives.xls``.
Now in Excel all the cells are editable, both those with formulae, and those holding raw data. You can change the cells
and see the spreadsheet recalc. In the SpreadServe GUI you can change the raw data cells, but you can't edit the formula cells.
In the SpreadServe GUI try clicking on any of the cells that have the dot dot dot underlining. You'll see a pop up that
Expand All @@ -90,6 +90,8 @@ The repository table also allows you to upload spreadsheets from your local file
When you've OKed the file selection dialog, hit the Upload button to persist the spreadsheet in the repository directory on the server.
Next time you hit the load button your spreadsheet will be listed.

.. _Constraints:

**Constraints**

* Limited VBA support. SpreadServe does not support XLAMs. Only embedded VBA can be used. Range can't be used as parameter type. Parameters
Expand Down Expand Up @@ -131,7 +133,7 @@ are supplied with SpreadServe: BlackScholesMockMarketData and dblog.
One of the sample connector programs supplied with SpreadServe injects mock market data into the Black Scholes spreadsheet.
You can run BlackScholesMockMarketData like this::

cd c:\SpreadServe\ss0.4.2\py\smpl
cd %SSROOT%\py\smpl
..\..\sh\sspy black_scholes_mock_mkt_data.py -ENV SIT
Note that you may need to change the path and environment name to match your install. Once BlackScholesMockMarketData is running,
Expand All @@ -145,16 +147,16 @@ spreadsheet, and take its data from a real time market data system.
dblog consists of two processes; one coded in Java, for JDBC DB connectivity, and one in Python, built on SpreadServe's SocketServer
implementation. Here's how you launch the Python SocketServer part of dblog::

cd c:\SpreadServe\ss0.4.2\py\sock
cd %SSROOT%\py\sock
..\..\sh\sspy dblog.py -ENV SIT
And this is how you launch the Java process::

cd c:\SpreadServe\ss0.4.2\sh
cd %SSROOT%\sh
dbconn
There are several configuration dependencies here, and this will only work out of the box if you have a MySQL install on your SpreadServe host.
We'll detail the config below. Assuming your config is correct you'll see operations tracked in the database. Try loading the InterestRateDerivates.xls
We'll detail the config below. Assuming your config is correct you'll see operations tracked in the database. Try loading the InterestRateDerivatives.xls
spreadsheet, navigate to the TermStructures sheet, and change the Rate cell from 4.4% to 5.4%.

.. image:: img/ss_live4.jpg
Expand All @@ -171,8 +173,8 @@ Notice how that last row in the SSOPS table records the timestamp, the spreadshe

**dblog configuration**

The configuration for the dblog Python SocketServer process is in ``cfg\dbcfg.py``, and the Java process gets its config from cfg\dbconn.props. The Python
variables in dbcfg.py should match your DB schema, and in dbconn.props the connection details must match your JDBC driver and DB connection. If you're
The configuration for the dblog Python SocketServer process is in ``%SSROOT%\cfg\dbcfg.py``, and the Java process gets its config from ``%SSROOT%\cfg\dbconn.props``.
The Python variables in dbcfg.py should match your DB schema, and in dbconn.props the connection details must match your JDBC driver and DB connection. If you're
not using MySQL, you'll need to add the relevant JDBC driver to the lib directory, and fix the CLASSPATH setting in sh\dbconn.cmd to pick up the jar.

**XLL configuration**
Expand All @@ -183,11 +185,11 @@ To add an XLL to your SpreadServe deployment you need to edit ``cfg\xll.txt``. I
file:///c:/SpreadServe/ss0.4.2/bin/quantlibxl-vc110-mt-s-1_4_0.xll;cdecl;refreshdata
file:///c:/SpreadServe/ss0.4.2/bin/SSAddin.xll;stdcall;refreshdata

To add your XLL, copy it to the ``ss0.4.2\bin`` directory, then add another line to xll.txt modelled on the the lines that reference xlcall32.dll
To add your XLL, copy it to the ``%SSROOT%\bin`` directory, then add another line to xll.txt modelled on the the lines that reference xlcall32.dll
and the QuantLib XLL. Note that each line has three parts separated by semicolons. Firstly the path to the XLL, then the calling convention, and
finally an RTD switch. The calling convention should be ``cdecl`` or ``stdcall``; XLLs implemented in C++ will probably be ``cdecl``, and those in
C# ``stdcall``. However this is not a hard and fast rule, and if you're not sure which calling convention your XLL uses then examine it with
dumpbin or depends and look at the exported symbols. `This article <http://blogs.msdn.com/b/oldnewthing/archive/2004/01/08/48616.aspx>`_ by the
immortal Raymond Chen will enable you to determine whether you're seeing symbols using stdcall or cdecl. The third part of the line will be
`refreshdata` or `norefreshdata`. It should always be set to the former unless you're using an XLL which generates RTD updates and you want to
disable them.
finally an RTD switch. The path must be explicit and absolute, you can't use the ``SSROOT`` environment variable. The calling convention should be
``cdecl`` or ``stdcall``; XLLs implemented in C++ will probably be ``cdecl``, and those in C# ``stdcall``. However this is not a hard and fast rule,
and if you're not sure which calling convention your XLL uses then examine it with dumpbin or depends and look at the exported symbols.
`This article <http://blogs.msdn.com/b/oldnewthing/archive/2004/01/08/48616.aspx>`_ by the immortal Raymond Chen will enable you to determine whether
you're seeing symbols using stdcall or cdecl. The third part of the line will be `refreshdata` or `norefreshdata`. It should always be set to the former
unless you're using an XLL which generates RTD updates and you want to disable them.
1 change: 1 addition & 0 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Contents:
guide
config
spec
license
cont1


Expand Down
12 changes: 7 additions & 5 deletions install.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ repackaging simple and modular, and to minimise system wide host impact.

**Installing SpreadServe for the first time**

* Download the installer from our download page to your target Windows host.
* Launch the ss_install_0.4.2a.exe installer by double clicking, or running it at the command line.
* Download the latest installer from http://spreadserve.com/s3/downloads.html to your target Windows host.
* Launch the installer by double clicking, or running it at the command line.
* Check the license terms and click "I Agree".
* Choose your install options

Expand All @@ -24,19 +24,19 @@ repackaging simple and modular, and to minimise system wide host impact.
perhaps as user variables rather than system wide.

* Click Close when the Installer finishes.
* Open a new command shell, cd to ``c:\SpreadServe\ss0.4.2\sh``
* Open a new command shell, cd to ``%SSROOT%\sh``
* ``launch SIT baseweb``
* Point your browser at http://localhost:8090 to see the web UI home page.

**Uninstalling SpreadServe**

* Delete the ``c:\SpreadServe\ss0.4.2`` directory tree
* Delete the ``%SSROOT%`` directory tree
* Go to Control Panel/System/Advanced System Settings/Environment Variables and delete the SSROOT and SSROOTX variables from System variables.
* That's it! SpreadServe does not touch the Windows Registry.

**Directories and environment variables**

By default SpreadServe installs in ``c:\SpreadServe\ss0.4.2``. You can change this in the install process, but below we assume you've taken the default.
By default SpreadServe installs in ``c:\SpreadServe\ss<version>``. You can change this in the install process, but below we assume you've taken the default.
Where relative directories are mentioned, without the full path name, they are relative to the ``SSROOT`` environment variable which SpreadServe requires
to be set to the root of it's install. If you selected the 'Env vars' option in the install you won't need to set the environment variables yourself.
If not, you can set them in a command shell like so::
Expand All @@ -46,6 +46,8 @@ If not, you can set them in a command shell like so::
``SSROOTX`` is the same as ``SSROOT``, but with backslashes translated to forward slashes, and any spaces rendered as %20.

Installing SpreadServe under ``c:\Program Files`` can cause problems for some Addins: see :ref:`Constraints` for more detail.

**Repackaging SpreadServe**

SpreadServe's install process has been designed for repackaging in corporate deployment systems. The first install option,
Expand Down
62 changes: 62 additions & 0 deletions license.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
SpreadServe Licensing
=====================

**Dual license model**

SpreadServe is available under two kinds of license: public and offline.

* Public

* Free: there is no charge for running a public SpreadServe instance as an AMI or as installed via the install kit.
* Phone home: public SpreadServe instances phone home to spreadserve.com. The SpreadServeEngine sends three kinds of
messages back to spreadserve.com

* Handshake: on startup each SpreadServeEngine handshakes with spreadserve.com. If the handshake fails it will shutdown.
* Ping: each SpreadServeEngine pings spreadserve.com every 30 seconds. That's why the Live Engines panel on the
spreadserve.com dashboard flashes every 30 seconds.
* Load: every time a SpreadServeEngine loads a spreadsheet it phones home with the name of the spreadsheet and all
the formulae in the sheet. All that information then becomes searchable for logged in users in the spreadserve.com
dashboard.

* Default: all install kits and AMIs include a public license key.

* Offline

* Chargeable: there's a monthly fee for an offline license.
* Silent: SpreadServe does not phone home home to spreadserve.com when running with an offline license key.
* Time bound: offline license keys can be bought in monthly increments for months and years ahead.
* Host bound: offline license keys are locked to the MAC address of your host.
* Tiered: the license charge scales with the feature set as you add XLL, VBA and RTD capabilities.

**License fee structure**

* Choose one of three currencies: GBP, EUR or USD
* Base

* Standard Excel formula set. No XLL, VBA or RTD.
* 100 per host per month.

* XLL & VBA

* Standard Excel formula set. VBA & XLL. No RTD.
* 300 per host per month.

* XLL, VBA & RTD

* Complete feature set.
* 400 per host per month.

* 3pac: DEV, UAT, PRD

* Three keys for the price of two.
* Suitable for enterprises running development, UAT and production environments.

* 5pac: DEV, SIT, UAT, STG, PRD

* Five keys for the price of three.
* Suitable for enterprises running development, integration, UAT, staging and production environments.

**Consultancy**

Bespoke development, configuration, and deployment services are provided on a day rate.

0 comments on commit 789bb2f

Please sign in to comment.