top | item 13856414

Show HN: SpreadServe – Cloud automation for Excel spreadsheets

55 points| osullivj | 9 years ago |spreadserve.com | reply

28 comments

order
[+] osullivj|9 years ago|reply
Hi, long time trading systems hacker and originator of SpreadServe [1] here with some background: I was inspired to build it after finding myself in a meeting in a London Investment Bank in 2014 hearing a manager say "the traders have defined the accrual calcs in a spreadsheet, now we just need a couple of C# devs for a few months to build a real server to do the calcs". I realised I'd seen that pattern repeat time and again over the ten years I'd spent working on London trading floors. By hacking together Excel Addins in C++ myself I'd enabled an options trader to build a program trading system in Excel by plugging his pricing sheets into Liffe's ETO limit order books. I put an exotics trader on Bloomberg by connecting his huge 30 tab sheet to my etrading gateways, then gradually replaced the spreadsheet with C++ pricing servers. My own XLL Addin was running on hundreds of trading desktops, and I'd helped any number of traders lash together ad hoc pricing and risk spreadsheets with XLLs connecting them to market data, prices and quotes [2]. The same cycle kept repeating: trader whips up spreadsheet, sheet becomes business critical, trader tires of manual keying of data, hitting F9, and the flakiness of huge Excel sheets and demands the dev team replace the sheet with a scalable service. Then the dev team takes months to replicate the spreadsheet functionality in a C++, C# or Java server, and the trader gets frustrated by lengthy change cycles.

I realised that we can escape that frustrating cycle by building a server runtime for spreadsheets. Just as node.js took JavaScript to the server side, SpreadServe is "node.xls": an asynchronous scalable server side runtime for Excel spreadsheets that supports XLLs, RTD & VBA as well as a REST API, RDBMS integration and websockets subscribers. As Felienne says [3] "spreadsheets are code". But that code is trapped in a desktop IDE for grid based visual functional programming: Excel! And that's not the right environment for reliable automated operation. So SpreadServe's aim is to separate the development and rumtime environments for calc heavy spreadsheets: Excel for rapid change cycles by tech savvy power users like traders, then SpreadServe for production scalability, resilience and audit logging.

[1] http://spreadserve.com

[2] http://babbingtonslade.com/industries/

[3] https://etrading.wordpress.com/2015/08/13/spreadsheets-are-c...

[+] eb0la|9 years ago|reply
I really like the concept of excel calc automation. Just one humble suggestion: add some eye candy to make me feel I am driving the batmobile.

Sincerely, your landing page gives you a very good impression about what spreadserve does and how sophisticated it its - but once you land on the server page it doesn't look as impressive. It works really good but I don't have the feeling I am given some superpower/I'm driving the batmobile.

[+] macca321|9 years ago|reply
I had a summer job in 1997 at a large Insurers (kill me), and people on my team would spend at least half an hour a day waiting for networked, dependent Excel files to calculate after opening them.

Since then, I have always suspected it was still a problem in large financial institutions, although the few times I mentioned it to people they looked at me blankly. Now I feel vindicated!

Out of interest, does the Financial Industry use any analogues to source control and unit testing for spreadsheets?

[+] cm2187|9 years ago|reply
When you say VBA support, does that mean that Spreadserve will calculate VBA UDF like any other function? (One of the main limitations of spreadsheetgear which seems fairly similar).
[+] aed|9 years ago|reply
This is awesome. Excel is such a valuable tool for its ease in prototyping and testing calculations, but the "classic" challenge is when/how to operationalize it.
[+] polskibus|9 years ago|reply
I did several Excel to App implementation for the reasons you mention and more.

I'd like to better understand the architecture of your proposal to consider it for my future projects. Does it run real Excel instance under the hood? Or is there a full emulation/interception going on?

Can you cope with several linked excel spreadsheets at the same time ? Can you handle custom DLL loading/extending? Or perhaps, are you willing to share a whitepaper/architectural outline?

[+] osullivj|9 years ago|reply
I'm using the Open Office Calc engine under the hood for Excel formula emulation. I extend that with my own implementation of the Excel4 API's xlcall32.dll, so that XLLs can invoke the Excel4 API. I also emulate Excel's built in RTD client, so that XLLs that supply an RTD server can push real time data into a sheet. Feel free to download the install kit [1], or email me on [email protected] for more detailed discussion. Thanks for the interest!

[1] http://spreadserve.com/s3/downloads.html

[+] magmasystems|9 years ago|reply
Knowing John's work at various investment banks, I would venture to guess that Spreadserve will be a top-notch product. Scaling Excel is something that has been needed for a long time. How many times have we, in IT, gotten complaints from traders and quants about Excel crashing with a large number of calcs?
[+] wslh|9 years ago|reply
How does it compare with HPC Services for Excel? https://msdn.microsoft.com/en-us/library/ff877824(v=ws.10).a...
[+] osullivj|9 years ago|reply
HPC requires you to refactor your spreadsheets to distribute the workload across the nodes. XLL C++ code needs to be tweaked to make them parallelizable. And the resulting ensemble still needs to be driven from a desktop Excel. SpreadServe takes unmodified spreadsheets and runs them on a server, completely automated and decoupled from any GUI.
[+] sklarsa|9 years ago|reply
Really nice work! As someone who has automated several spreadsheets by essentially reimplementing them in a "proper" language like C# or Python for several financial institutions, I see the immediate need for a product like this across all business units. Not only does your product help save time and resources, but your focus on proper testing can easily help reduce very costly errors (which happen more often than one would like to think).

One question, how does your product integrate with 3rd party APIs like Bloomberg or SNL?

[+] osullivj|9 years ago|reply
Thanks! SpreadServe has 3 APIs: REST/websockets, C++ and Python. A SpreadServe deployment is a cluster of servers. So if you wanted to push Bloomberg market data into a spreadsheet you'd code a new server component in C++ and/or Python against the BBG API.
[+] sipos|9 years ago|reply
What is the licensing model? Completely open source, free for small time use with license fees for heavier use, charge for all commercial use, undecided yet?

I ask out of interest rather than because I am thinking of licensing it. I can see it will be highly useful though to those that need it.

[+] chatmasta|9 years ago|reply
This is really good.

What is your sales plan?

[+] osullivj|9 years ago|reply
Free public licensed [1] SpreadServe deploys phone home to publish spreadsheet info on the spreadserve.com live page [2]. That's the way I aim to build adoption. Offline license keys are chargeable, and stop SpreadServe phoning home. Small hedge funds and asset mgrs are my first target market for paid license keys. I'm not going after big banks early as the enterprise sales cycle is so lengthy and torturous is can kill small vendors. I've seen that first hand, so those customers are for much later.

[1] http://spreadserve.readthedocs.io/en/latest/license.html

[2] http://spreadserve.com/cws/cdashboard.html