App server

Doing a bit of testing of RemoteDB, I find it seems to work just nicely and quickly.

But I would like to have a middle layerer that is not just a transporter between the client app and the database.



What concerns me now is that I want to embedd authorization based on data in the database, and then restricting what data can be accessed by who you are logged in as. How can I achive this? The only thing I can find now is starting to process the request, but that seems a bit too low level.



/Anders

RemoteDB is a very different tool. Many purist software architects will raise his eyebrows to it. But the fact is that it's a great tool to get your application running everywhere with minimum effort. It would be nice to have time to build a nice Rest/Json application server and rewrite your client application completely to access such server. But many people need something for yesterday.So in some scenarios, just use RemoteDB and you're done in a couple of days or even less.


I said all of this so we can understand RemoteDB purpose. That's its purpose. If you want to add a log of server-side logic, then you have to go with XData (or similar alternatives, like DataSnap). We intend to keep RemoteDB simple, and especially FAST and easy to use. Nothing prevents you to provide data based on authorization, like you would do in your client-server application. But you have to do it in the client, performing the correct SQL statements to only retrieve data authorized for that logged user in particular

Wagner, Thanks for your fine explanation. Makes it quite clear to me!



/Anders

Wagner,

Just tried to get to know more deeply with big variety of your products (such as XData, Sparckle, RemoteDB, etc).
Your post here at least give me an understanding why this product so simple / limited.

But, again. I have couple of examples from previous projects.

  1. Something like 3-tier app. Not really, but I would say "like 3-tier" server side part serves only licensing.
    So, obviously, needed only transport layer - translate all queries/communications from client app through server app to DBMS.
    Licensing itself pretty simple - counting of users simultaneously connected to database and checking user/password to DBMS.

May be also can be considered as task:
for example, if licenses for SQL are limited, its good approach to connect through one connection (not sure)
more, I need ability to close connection from server app side (for maintenance I need that opportunity, access to DBMS monopolistically)
additionally, I need some kind of simple interaction between clients (like messaging)

Is it (remoteDb / Sparckle) suitable in that case?
Or XData and json as transport unity more suitable?
Make sense if I use both ( XData + Sparckle) in one app?
Can be it also be used in Windows service (and in app in the same time)?

Questions totally theoretical, but answers can be pretty helpful for me.
Thank you so much in advance.

Vitali, I got a little confused by your comments, maybe I got lost in translation. But I would say, if you are going to start a new project, use XData. RemoteDB is better suited to quickly migrate existing client/server database applications.
XData is very easy to use as well. Yes, you can use it as Windows service.

Wagner, thank you for answering.
No, I'm not going to start new project (even if so, Xdata is our choice, no doubt).

My question was just as imagination how to use RemoteDB (and why). So, remembering old projects - like step to understand new technology.

Now pretty clear, actually, that we aren't have room for RemoteDB.

Anyway, can you answer me (it also applicable to XData probably):

  1. Is it possible to close all connections from server side (or notify clients and close from app side)?
  2. Closing connection from server app seems not close active connection to DBMS. Is it ok?

Thank you!
P.S. Sorry for my poor English.

  1. You can close existing server connections using the RemoteDB API: Creating RemoteDB Server | TMS RemoteDB documentation

  2. No. A "connection" in server is actually the active connection to DBMS. There are no other types of "connections" that are kept open besides that.