RedOctober Posted June 5, 2018 Share Posted June 5, 2018 I'm concerned that uniGui is very limited in the number of users it can serve. Given two servers with identical hardware and both having Apache as the web server, can I serve more users with a Java based system versus a uniGui system? (Consider which one uses more memory per user and has more interpretive steps.) On average, how many users do other forum member's applications typically serve? Let's pretend I want to build a web based dating site (I don't but it's a good scenario) that will serve 50,000 users in one country alone. Is uniGui a good choice, or, would I have to throw $6,000,000 worth of hardware at it to support that many users? unGUI is stateful, which is understandable, because as soon as you introduce Authentication and Authorization, you have to keep track of sessions. But this can also be extremly limiting if your sessions take up a lot of memory. As far as performance goes, how does uniGui stack up against something like Delphi MVC Framework by Daniel Teti? DelphiMVCFramework is apparently very fast, and is stateless, but Daniel is just recently having to maybe introduce state, to get Auth and Auth. I'm considering a purchase of the "Complete" version, so I don't want to find out 6 months into my uniGUI project that even with modern hardware I can't serve more than 100 users, because the time lag is too great. Thanks in advance for any help you can provide. Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted June 5, 2018 Administrators Share Posted June 5, 2018 Theoretically, there is no limit to number of sessions that a uniGUI server might serve. The only limit is system resources. However, in a real life scenario various factors may limit this. From what I can see, the average number of concurrent users on a typical uniGUI application developed for a closed network is around a few hundreds (maybe even less around 50 -100). Regarding your concerns, we are working on a new server technology for uniGUI to address such scenarios. It is called uniGUI HyperServer and it is currently beta. HyperServer is an internal load balancer which will distribute sessions among multiple internal processes. These processes are called nodes. HyperServer will also enable remote deployment for your applications. You will be able to upgrade your binaries from a remote location and without a need to restart your server. Regarding resource consumption, it is really related to your application design and optimization level. If you can optimize your session's memory usage, you'll be able to increase number of concurrent sessions dramatically. Again, you need to make sure that your DB backend is also scalable. Next step for HyperServer will be implementation of an inter-server load balancer. This will enable you to deploy your uniGUI apps in a server-farm. ... ... ... 4 Quote Link to comment Share on other sites More sharing options...
RedOctober Posted June 5, 2018 Author Share Posted June 5, 2018 Thank you for the detailed answer. This is very much what I expected. About databases. I normally use Firebird. When building uniGUI apps, what is the recommended database for maximum scalability? I hear of people using MongoDB but after doing some reading, Mongo has it's own problems and limitations. Does uniGUI support MongoDB? Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted June 5, 2018 Administrators Share Posted June 5, 2018 Thank you for the detailed answer. This is very much what I expected. About databases. I normally use Firebird. When building uniGUI apps, what is the recommended database for maximum scalability? I hear of people using MongoDB but after doing some reading, Mongo has it's own problems and limitations. Does uniGUI support MongoDB? If you are creating too many sessions then your db library must provide a very good pooling solution or you must choose a scalable middle tier. Problem here is that you can't keep too many connections alive for all the sessions. Some DB engines put a limit on max number of concurrent connections. That's why pooling or a middle tier is needed. ... Quote Link to comment Share on other sites More sharing options...
Abaksoft Posted June 5, 2018 Share Posted June 5, 2018 Theoretically, there is no limit to number of sessions that a uniGUI server might serve. The only limit is system resources. However, in a real life scenario various factors may limit this. From what I can see, the average number of concurrent users on a typical uniGUI application developed for a closed network is around a few hundreds (maybe even less around 50 -100). Regarding your concerns, we are working on a new server technology for uniGUI to address such scenarios. It is called uniGUI HyperServer and it is currently beta. HyperServer is an internal load balancer which will distribute sessions among multiple internal processes. These processes are called nodes. HyperServer will also enable remote deployment for your applications. You will be able to upgrade your binaries from a remote location and without a need to restart your server. Regarding resource consumption, it is really related to your application design and optimization level. If you can optimize your session's memory usage, you'll be able to increase number of concurrent sessions dramatically. Again, you need to make sure that your DB backend is also scalable. Next step for HyperServer will be implementation of an inter-server load balancer. This will enable you to deploy your uniGUI apps in a server-farm. ... ... ... Good News ! +1 Quote Link to comment Share on other sites More sharing options...
Tokay Posted June 6, 2018 Share Posted June 6, 2018 Does uniGUI support MongoDB? UniGUI is not depend on the databases. If your favorite DB is supported in the Delphi in TDataSet manner then it supported by UniGUI. 1 Quote Link to comment Share on other sites More sharing options...
Stemon63 Posted June 6, 2018 Share Posted June 6, 2018 Hi RedOctober, MongoDB is supported by Firedac and Devart (also by Mormot ORM), so Db access is not related to UNIGUI itself.... Farshad, + 100 for HyperServer. (Still waiting for ...) :-) Quote Link to comment Share on other sites More sharing options...
Mohammed Nasman Posted June 7, 2018 Share Posted June 7, 2018 HyperServer is step forward for scalability and reliability of uniGui apps 1 Quote Link to comment Share on other sites More sharing options...
Administrators Farshad Mohajeri Posted June 7, 2018 Administrators Share Posted June 7, 2018 (Still waiting for ...) :-) I know! Quote Link to comment Share on other sites More sharing options...
Stemon63 Posted June 8, 2018 Share Posted June 8, 2018 HI Farshad, thanks :-) There are few little things that Unigui don't have for porting TOTALLY a desktop VCL application without losing any "ergonomic" features: grid scroll (virtual, without pagination), advanced lookup (with grid inside and input validation during typing), true editing in grid (cell by cell, without click or enter for edit) for a fast user input (like vcl dbgrid). With this little features, i can distribuite to my customer a web version of desktop application, without big difference and with a "wow" factor. I hope to install the same Unigui application as standalone, local network and enterprise (with HyperServer and balancing) remote farm. Please make me happy :-) Good job! 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.