We have just released a set of slides introducing ORM, SOA, REST, JSON, MVC, MVVM, SOLID, Mocks/Stubs, Domain-Driven Design concepts with Delphi, and showing some sample code using our Open Source mORMot framework. You can follow the public link on Google Drive! This is a great opportunity to […]
We have just committed some enhancements to interface-based service process.
TSQLRestRoutingREST will now recognize several URI schemes,
root/Calculator/Add?n1=1&n2=2 alternative could
be pretty convenient to be consumed from some REST clients.
Please find here a documentation update.
In addition to regular HTTPS flow encryption, which is not easy to setup due to the needed certificates, mORMot proposes a proprietary encryption scheme. It is based on SHA-256 and AES-256/CTR algorithms, so is known to be secure.
You do not need to setup anything on the server or the client configuration,
just run the
classes with the corresponding parameters.
We tried to make mORMot at the same time fast and safe, and able to
scale with the best possible performance on the hardware it runs on.
Multi-threading is the key to better usage of modern multi-core CPUs, and also client responsiveness.
As a result, on the Server side, our framework was designed to be thread-safe.
On typical production use, the mORMot HTTP server will run on its
own optimized thread pool, then call the
method. This method is therefore expected to be thread-safe, e.g. from the
TSQLHttpServer. Request method. Thanks to the RESTful approach of
our framework, this method is the only one which is expected to be thread-safe,
since it is the single entry point of the whole server. This KISS design ensure
better test coverage.
Let us see now how this works, and publish some benchmarks to test how efficient it has been implemented.
Since Windows XP SP2 and Windows Server 2003, the Operating System provides
a kernel stack to handle HTTP requests. This
http.sys driver is in
fact a full featured HTTP server, running in kernel mode. It is part of the
networking subsystem of the Windows operating system, as a core component.
SynCrtSock unit can now implement a HTTP server based on
this component. Of course, our SQLite3 framework will use it. If it's not
available, it will launch our pure Delphi optimized HTTP server, using I/O
completion ports and a Thread Pool.