#1 Re: mORMot Framework » Visual Studio 2015 and mORMot » 2016-03-24 14:33:32

Hi Corrado,  answering also to your private message (i received an email through the auto mailer).

As Arnaud Bouchez wrote above, such a client needs to implement just an http get + json.

There are many ways, a very simple one:
run a mormot server, listening to IP 127.0.0.1 port 7000 for example.
At the client side, from Visual Studio C# or VB.NET:
http get this link: http://127.0.0.1:7000/root/?SQL=select * from your_table_name
it will return a json
Put the link in a browser to see it, if security is disabled you ll see data.
You have to convert this json to C# dataset and then you have it all.

Depends on what else you want to do.
If you want to edit data, I suppose above is not the best way to work.

If you need any example code for the mormot server side, i would start from the examples in the package.

#2 Re: mORMot Framework » Softwares created using mORMot » 2015-12-12 13:23:33

A use case "use mORMot to scale a web application to unlimited users"

Online Gaming Platform

An example production website


Database layer: Interbase 2009, Intebase XE7, Oracle
Application server layer: mix of Delphi and NET 
web server layer: NET

New added:
In memory database + application server layer: mORMot


The problems:
The amount of concurrent active web users increased rapidly,
and we needed to create a kind of cache layer that would serve data instead of the database.
Sounds like a classic easy to solve problem using cache or mirror databases, but:
- amount of data changes in ive betting datasets is 4.000.000 per day (800 updates/sec at peak time)
- data need to be available if requested by the end user in real time (max 500 millisec after change)
- The nature of service required complex select statements (each user can have his own data filters,
  means almost all db tables need to be in cache and accessible with standard sql commands)


We tried several solutions, including mirroring and in memory databases:
- SQL Server with in memory tables: needs 128GB RAM per instance. Queued data after 80 inserts/sec
- Oracle Times Ten: runs ok for selects, but too slow to load data, no way to udpate the cache in real time
- MySQL mirrors: needs the commercial version and expensive hardware to run really "in memory"
- No SQL or key-value (Mongo, Couch etc): It would require to rewrite half the system.
  Could be a solution if we had 50 developers only for this.
- NewSQL (these new fancy NuoDB, VoltDB etc): They dont seem to be ready for main production systems.   
- finally, made a try with mORMot and guess what...


The final solution using mORMot:

An "all in one" in-memory SQLite3 + http server as implemented within mORMot.
-Data is loaded at startup (in 30 sec) from the "main" database.
-Real time data updates after initial load:
Interbase XE7 --> creates an "Interbase event" --> updates the in-memory SQLite3 in mORMot
-In parallel, the mORMot serves all http requests at the application server layer.

In production since October 2015.
Runs super fast and reliable.
hardware required: usual servers, 12-16GB RAM

Can scale to theoretically unlimited users by just adding low cost machines to run separate instances of mORMot based service.



And a big THANK YOU to Arnaud Bouchez and his friends over there!

Board footer

Powered by FluxBB