![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » Elevate Web Builder Technical Support » Support Forums » Elevate Web Builder General » View Thread |
Messages 1 to 8 of 8 total |
![]() |
Tue, Sep 16 2014 5:23 AM | Permanent Link |
westereng | Hi!
I'm investigating the use of the EWB web server for a commercial SAAS project in combination with EWB. I like how I can develop delphi modules for it. My question is if the webserver is up to par when it comes too reliability in the sense of speed and the ability to serve many simultaneous users. Anyone using it for commercial purposes? Regards Ronny |
Tue, Sep 16 2014 7:22 AM | Permanent Link |
Matthew Jones | westereng wrote:
> My question is if the webserver is up to par when it comes too > reliability in the sense of speed and the ability to serve many > simultaneous users. I've not looked at the EWB server, but I suspect that you should do your own independent testing of it. I used the RemObjects SDK server which uses Indy, and worked out that I could, on an Azure virtual machine, get 1000 calls a second without trouble. However, this was doing little in the way of processing, and that's where it comes down to your own situation, as it very much depends what the database is doing, and how long that takes, etc. On my system long tasks were queued, and on one I had the add to queue give a hint as to how long it would be taking, so that the caller didn't check too often for completion (which then eats resources). If you might need scaling, then EWB may provide some of that, but again the solution is very much down to your application. That probably didn't help much, but it's my 2 cents worth. 8-) -- Matthew Jones |
Tue, Sep 16 2014 8:40 AM | Permanent Link |
Walter Matte Tactical Business Corporation | I agree with Matthew - I wrote my own server with RealThinClient (RTC) components. The projects I have deployed so far have been for internal consumption by client employees and with not more that maybe 20 simultaneous users with the exception of one for HSUS which was used for a 4 month fundraising campaign which served several thousand hits per day.
RTC has never failed me. The components are rock solid and very scalable via the rtcDataRouter and rtcLoadBalancer components. RTC has published load test results which can be viewed here: http://www.realthinclient.com/testresults/ Highly responsive web apps, for me, boil down to optimized functions and database design in the backend. Walter |
Tue, Sep 16 2014 9:11 AM | Permanent Link |
Matthew Jones | Walter Matte wrote:
> RTC has never failed me. The components are rock solid and very > scalable via the rtcDataRouter and rtcLoadBalancer components. I was going to include mention of the RemObjects scaling components, but for most people it doesn't matter. If you get to that scale, you can afford to work hard on it. One of the reasons I like my new app - the desktop is the server, and any user provides their own. Thus I don't worry about scaling... -- Matthew Jones |
Wed, Sep 17 2014 2:56 AM | Permanent Link |
westereng | Thanks for your insights. I guess some research and testing is due to see if it holds up. I will look into the others sugestions too.
Thanks! /Ronny |
Wed, Sep 17 2014 4:16 AM | Permanent Link |
Matthew Jones | westereng wrote:
> Thanks for your insights. I guess some research and testing is due to > see if it holds up. I will look into the others sugestions too. One thing - if your web site is going to be accessed by 4 million people in 24 hours, all pressing Refresh, I'd be looking elsewhere for your server technology. But I do think that Delphi is quite capable of handling a fair load for corporate use of occasional interaction. You need to have facilities to quantify the times etc. Not hard in a server to write code to time how long a call takes, and how many per second/minute etc. Marco Arment on his podcasts has talked about how his servers never use JOIN because it can scale better - having a single database server and multiple web servers which do the joining effort allows you to add more web servers and keep the database server load low. For my purposes, even with 1000 users hitting per second, I was happy that I could use JOINs etc. I'd have worried at more users, but it wasn't likely to happen (and would have slowed responses only a little due to the activity threads still continuing separately). -- Matthew Jones |
Wed, Sep 17 2014 5:14 AM | Permanent Link |
westereng | "Matthew Jones" wrote:
> One thing - if your web site is going to be accessed by 4 million > people in 24 hours, all pressing Refresh, I'd be looking elsewhere for > your server technology. But I do think that Delphi is quite capable of > handling a fair load for corporate use of occasional interaction. You > need to have facilities to quantify the times etc. Not hard in a server > to write code to time how long a call takes, and how many per > second/minute etc. I think 4 million is aiming a bit high in the beginning ![]() ![]() > Marco Arment on his podcasts has talked about how his servers never use > JOIN because it can scale better - having a single database server and > multiple web servers which do the joining effort allows you to add more > web servers and keep the database server load low. > For my purposes, even with 1000 users hitting per second, I was happy > that I could use JOINs etc. I'd have worried at more users, but it > wasn't likely to happen (and would have slowed responses only a little > due to the activity threads still continuing separately). Yes, joins would be preferable, but if we reach a level where this kind of optimization is needed, we will have to cross that bridge then. I have been looking at your Remobjects suggestion, and it seems to be promising. I wonder if it is possible to write DLL modules for a remobjects sdk server, like you can for EWB server? |
Wed, Sep 17 2014 7:08 AM | Permanent Link |
Matthew Jones | westereng wrote:
> I think 4 million is aiming a bit high in the beginning ![]() > you never know ![]() Indeed - it was Apple "having problems" that made me think I was happy not to have to manage their scale of orders. > I have been looking at your Remobjects suggestion, and it seems to be > promising. I wonder if it is possible to write DLL modules for a > remobjects sdk server, like you can for EWB server? Hmm, the RO SDK basically creates a Windows Service, and you can write whatever code you want. It also includes a web server as part of the library. Thus you can make it into whatever you want. I aim to do a blog or two about my implementation, but am doing contract work at the moment so haven't had time. However, given it is just Delphi, you can get really clever. For example, I have the service auto-update itself so it can be running happily, then I do an update from the subversion deployment repository, and it will spot the update and shut down, update and restart all automatically. The smart bit being that it knows if someone has been using it recently, so it waits for 5 mins since last user action before it does the update. Thus I don't break someone's order process. (I can force it too as well, but obviously don't want to use that.) Anyway, the RO SDK includes such stuff, and the JSON library for calling it from WebBuilder code. I'd say that the key is you are writing to an interface with RO SDK, not talking to a database. Obviously you can return database JSON, but the aim is to put the business logic in the server, and keep the database internals hidden. -- Matthew Jones |
This web page was last updated on Monday, May 29, 2023 at 11:23 AM | Privacy Policy![]() © 2023 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |