#1 2012-10-30 20:54:02

ccMcBride
Member
Registered: 2012-10-30
Posts: 1

newbie questions

I am steadily working through the documentation, but haven't found the answers yet.
Using Delphi XE (may be moving to XE 3 pro if I can work this out) and Windows 7.  Will eventually be trying to port it all to the cloud.

1) the client/server examples have the server running as a service.  is it possible to make it into an isapi dll to be run under IIS?  If so, what are the steps (I know with datasnap, I just basically turned it into a library)
2) given a 20 year old pre-existing database structure(currently in MSSQL)  - all tables have an identifier field (recID) which I added 5 years ago, and  string field called UID, which is generated through code - and this UID is used to link master/details, codes, etc, and many will refer to the same table in multiple ways(like my order table links to my tech table in 5 different places)[there are reasons that I won't get into as to why the UIDs are still in use instead of recID)
is it possible/feasible to implement the ORM features? 
If so, can you point me in the direction to get started,
If not, is there a way to fake it?(like somehow loading it through queries as needed?)

3) while the backend will be written by me in Delphi, the front end will be written by other people using jsp, html, whatever.  Is there anything special I need to do in order to allow this to happen without any issues on their end?

4) will there be any issues running it under https?

Offline

#2 2012-11-02 12:41:41

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,603
Website

Re: newbie questions

1) I do not find any big benefit about using mORMot within IIS as an isapi.dll - it will be slower, and you would expect a 32 bit IIS only, since mORMot is not fully 64 bit compatible yet.

2) Such external tables mapping is not handled yet. This is on the road map.
Current external tables shall have the mORMot layout, i.e. an ID stored as an integer, auto-generated by the framework.
Faking it should be possible, by inheriting from TSQLRestServerStatic which allows to set an alternate per-table database engine - but this is not very easy, so you should better wait for the new feature of the roadmap.

3) Our JSON / RESTful content is quite standard, so you can use any HTTP client with JSON serialization to work with a mORMot server.

4) I did not use https yet, but since mORMot uses the standard high-speed http.sys kernel mode server, I do not see any potential problem here.
I heard that if you host it under XP SP3, https is not working as expected, due to a bug in Microsoft's code. But should work with newer versions.

Offline

#3 2013-08-13 10:18:57

eug
Member
Registered: 2013-08-13
Posts: 1

Re: newbie questions

Why you think that hosting mORMot within IIS is slower?
IIS is based on http.sys too. It is possible to create an asynchronous non-blocking isapi extension.
Yes, by default IIS process each request in a separate thread, but as MSDN states http://msdn.microsoft.com/en-us/library … s.90).aspx isapi extensions HttpExtensionProc function can queue request and return HSE_STATUS_PENDING result.
For example Node.JS running under IIS has almost the same performance as not running under IIS.

There are many benefits using mORMot within IIS as an isapi.dll, but the main is - possibility to share the same port with other sites on the same machine.

Last edited by eug (2013-08-13 10:21:01)

Offline

#4 2013-08-13 11:28:37

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,603
Website

Re: newbie questions

It will be slower, since you will add one layer above the http.sys driver.
ISAPI is not a light layer, and using it instead of mORMot light classes and IOCP process will cost.
And I'm not convinced ISAPI would be stable enough. Do you really love error 500 and restart your instance?

Thanks to http.sys, you can share the same port between mORMot and IIS, if the URI are registered as expected (i.e. not overlapping).

Offline

#5 2013-11-11 07:14:30

nirnir
Member
Registered: 2013-11-11
Posts: 66

Re: newbie questions

Hi,
I want to join the discussion , I'm considering replacing my datasnap with mormot .
if you want to add your solution into an organization it is very important to be able to add it to already working web server
using its IIS and port 80 .
The organization IT/security people will fail you for any non standard integration.
Can you give me some more details about how it can coexist with IIS

Offline

#6 2013-11-11 07:32:59

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,603
Website

Re: newbie questions

As stated by the documentation, if you are using the http.sys based server, you can SHARE an URI with IIS.
That is, you can specify which URI will be served by IIS and which one will be served by the mORMot service.

See http://msdn.microsoft.com/en-us/library/ms730158.aspx

because WCF and IIS 6.0 both use the kernel-mode HTTP stack (HTTP.sys), IIS 6.0 can share port 80 with other self-hosted WCF services running on the same machine...

HTTP.sys acts as a port-forwarding service, for HTTP (port 80) traffic.

It is much better for performance than hosting the service within an ISAPI dll for instance.

Offline

Board footer

Powered by FluxBB