CUBA suitable for server web interfaces?

I’m developing a commercial server (c++, with postgres db) which processes financial messages. I want users to be able to login remotely to the server with their browsers to monitor what is going on in the server (static data, logs, transactions etc).
I’m wondering what technology is best suited for creating such a web interface? I’d like to use CUBA but one of my requirements is that the server be easily installed. I don’t have any experience with CUBA yet so I have no idea what is all required to get it to run. I presume a webserver, and java at a minimum, right? I’d like to get a bit of feedback on this.
Thx, Peter

Hi,

this question is quite hard to answer. What is “easy” highly depends on the knowledge of the person installing the server. There are different deployment options for different use-cases. Some of them are easier then others.

It is a scale from "start a CUBA app with a single command like java -jar myapp.jar" to something like “deploy the app to a multi layered horizontal scaled app with load balancing, Health Checks and self healing in place”.

In this regard it is comparable to other ecosystems (inside the Java world as well as outside of it) and their deployment strategies.

Do you want to do the actual “processes financial messages” business logic executed in a CUBA app, or is this another part and you only want to have to display some data with CUBA or will the execution also be part of the CUBA app. In the latter case, depending on how much data you expect to process, the deployment might change as well…

If you can bring a little more light into that topic, perhaps we can give you concrete advice.

Bye
Mario

Hi. Thanks for the reply! All the business logic is in our ‘server’ which is written in C++. The server logs a lot of information in postgres, but postgres also mirrors some of the real time ‘state’ of various objects (trades, orders, etc). I want this c++server/postgres-db to have a web interface where users can remotely update and maintain static data (security information(stocks bonds, futures etc) , connectivity information (feeds brokers etc)) as well as keep track of live information such as transaction status etc. So the user interface needs to have tables (mostly reflecting what’s in the postgres tables with ‘live’ visual updates of order status etc.), it needs some charts to visually monitor whats going on, and it needs some interactive capability to ‘start and stop’ various processes that are running in the c++ server.

Ideally, it would be best if users could just log in directly into the c++ server/dedicated-port and get back interactive html, but I don’t want to start all that from scratch. So I’m willing to put up with a bit more ‘infrastructure’ but it does need to be relatively lightweight (from an installation perspective). The GUI will not have many users - probably 2-3 users max. But this is not a hosted service - it is a licensed server product and it needs to be ‘installable’ without a huge effort on behalf of the user. That’s what I am worried about - having to configure web server, middleware etc for every installation. Essentially you can think of my requirment a bit like an IoT interface - an ‘interactive control panel’ without huge setup.

In general I think CUBA with amCharts and Vaadin definitely have the capability to do what I need. I have just never used this combination before. We are a C++ team, but there are no good C++ solutions for web interfaces other than Wt toolkit which we don’t currently want to use. I think CUBA platform is a good pick since it will allow us to tackle other projects in the future - but it’s a learnign curve for us because we are not really web programmers.
Thx, Peter

This makes sense. I think it is totally valid integration scenario. Although integrating systems via databases can be problematic, generally it works quite good. Especially if you are able to control both sides of the integration (the c++ server & the web UI).

True. Starting something from scratch rarely makes sense :slight_smile: If this UI is not top priority of the app, but rather a nice-to-have addon it totally makes sense to spend as little time as possible in that with something like a RAD tool (which CUBA can be used at - although it is not its main purpose).

Question: how do you deploy the C++ server currently? There is some heavy-lifting involved as well, right? If possible you could homogenize something both with something like Docker. You put both servers in a single / two docker containers and the deployment will be the same for both.

This is not necessary the case. Depends a little on HA requirements etc. But in general, it can be stripped down to a 3-step installation process that can be done in 5 mins…

Have you tried to integrate and display the existing tables from your DB in CUBA? The ease of integration depends a little on how similar the table structure is compared to what CUBA expects…

Bye
Mario

Hi Mario

But in general, it can be stripped down to a 3-step installation process that can be done in 5 mins…

ok, that’s good to know! I suppose that it’s something we just need to try out. But in general your response sounds like it’s not too complicated. Thank you!

Have you tried to integrate and display the existing tables from your DB in CUBA?

No, we haven’t really started with CUBA yet. I’m trying to figure out whether CUBA is the right solution for us without spending a lot of time learning it myself (since somebody else will have to do the development). My database tables mostly have an integer-ID as primary key. Does CUBA has special requirements regarding the structure of database tables?

Thanks, Peter