Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 6 of 6 total
Thread EDB on mobile
Tue, Feb 25 2014 6:34 PMPermanent Link

Anthony

Hi Tim & Team

I recently received notification of my subscription renewal for VCL C/S for both EDB and DBISAM and also for my RAD Studio from Embarcadero - I forgot that March is the month they all renewed. I'm considering which is best way forward. I'm currently using RAD Studio Pro and have XE5 on SA and also the latest version of Oxygene as Rem Objects kindly honored my SA with Embarcadero.

This coming year I intended to develop the much put off mobile front end to our internal database developed in Delphi and EDB to support.

After some investigation there seems to be so many options and was looking for a simple but secure solution to access our company database in EDB.  I would love your opinions and comments as after reading the newsgroups I'm quite confused as to the the best solution.

Technologies I am aware of are :

SOAP, understand I can create a SOAP server in Delphi Pro but this would be a significant amount of work to integrate the whole database of about 20 tables.

REST, don't believe I can create a REST server in Delphi Pro but the new REST client is available and trivial to use in the Embarcadero examples, but read that EWB uses REST between web application and web server.

DataSnap, Embarcadero constantly advertise this but only available in the Enterprise edition which is a costly upgrade and don't know if their simple Datasnap demo would work with EDB as a database server, may be you could advise.

In addition to all the above is the security aspect with user authentication and encryption between database and server. I also recall reading that there may be a mobile version of the EDB components at some point after the Mac OS version which may be the perfect solution.

I've favored Delphi for development as that's where my experience lies and have not been able to make any progress with the trial of EDB DAC working in Prism. It doesn't seem just as simple as dropping a component on the form like in Delphi and EDB doesn't appear in the Prism data source lists - any pointers in this direction would be appreciated. I'm also assuming that the DAC version of EDB would be compatible with the iOS and Android Oxygene compiler.

I've also taken a look at EWB but not familiar with web development or running web servers and noticed that the date time picker was missing from my quick evaluation but is scheduled for a later release and also not sure how a web application would work for offline mobile access.

I appreciate your time and comments,

Many thanks

Anthony
Fri, Feb 28 2014 5:31 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Anthony,

<< REST, don't believe I can create a REST server in Delphi Pro but the new
REST client is available and trivial to use in the Embarcadero examples, but
read that EWB uses REST between web application and web server. >>

EWB uses a kinda-sorta REST design, not a completely accurate
implementation.  This is because of the way that transactions are handled on
the client - nested transactions are supported, so transactions have to be
sent over in one shot, as opposed to a bunch of PUT calls, or something
similar.

<< In addition to all the above is the security aspect with user
authentication and encryption between database and server. I also recall
reading that there may be a mobile version of the EDB components at some
point after the Mac OS version which may be the perfect solution. >>

Unfortunately, there's a lot of stuff in front of the mobile ports for EDB,
so it will probably be later this year.

<< I've favored Delphi for development as that's where my experience lies
and have not been able to make any progress with the trial of EDB DAC
working in Prism. It doesn't seem just as simple as dropping a component on
the form like in Delphi and EDB doesn't appear in the Prism data source
lists - any pointers in this direction would be appreciated. >>

What exactly do you mean by "Prism data source lists" ?  If you install the
ElevateDB DAC product, then it should set up the VS IDE data provider
settings for you.  I've added VS 2012 installation support recently, so it
is included in the latest EDB build (2.15 B3).

<< I'm also assuming that the DAC version of EDB would be compatible with
the iOS and Android Oxygene compiler. >>

I'd have to check this out, to be sure.  There are some specific un-managed
calls being made in EDB for file I/O, and so they may or may not be portable
to the Mono platform.

<< I've also taken a look at EWB but not familiar with web development or
running web servers and noticed that the date time picker was missing from
my quick evaluation but is scheduled for a later release and also not sure
how a web application would work for offline mobile access. >>

Your best bet for doing mobile work, without being required to target each
mobile platform separately, will be EWB or something like it.  It removes a
lot of duplicate work, gets rid of any app-store requirements, and is much
easier to update.  Plus, the majority of your non-UI code stays the same,
and is simply moved to the back-end in the form of an EWB Web Server module,
or ISAPI/CGI dll/exe.

The only things that are a bit of a pain with the web stuff are the
separation of the UI code from the rest, and the web server implementation
issues (hosting costs, SSL certificate costs, etc.).  But, the first thing
is a net plus in the end, and the second usually already exists in some form
if the company has a web presence already.

Of course, you may want to stick with native, and that's certainly a viable
option.  FireMonkey is getting better every release, and there are 3rd party
native control options also if you don't want to use it.

Tim Young
Elevate Software
www.elevatesoft.com
Sun, Mar 2 2014 12:44 PMPermanent Link

Adam Brett

Orixa Systems

Anthony

I am curious to hear how you progress with this & would be interested in a blog post or update here on the groups as you go forwards.

I have a remote Tablet version of my App. Users need Windows tablets, but the basic principle is very similar to if they were mobile devices.

I use a cloud instance of the company DB replicated between the company server & an Amazon cloud instance using EDB's excellent replication features.

Remote tablet users connect to the Amazon cloud instance via simple IPAddress, just as if it was any ordinary CS EDB application.

The Tablet interface is simpler and minimizes the data passing through the pipe, but is similar to the main application.

This works fine.

I guess you may have issues with security, but I find EDB's Remote access so quick that the extra coding of adding a DataSnap or other layer in between it and the DB seems unnecessary.
Mon, Mar 3 2014 1:24 PMPermanent Link

Anthony

Thanks Tim & Adam for your replies.

I'm assuming Adam your using the Surface Pro for other Intel based Windows tablets rather than the RT version.

We can currently access the EDB database externally and setup the encryption etc settings and the speed is generally very good, but there are times when like quickly checking your email on your phone you need quick information from the database rather than full access to everything and firing up a laptop. I was hoping on starting with a mobile client with a small subset of features - initially thinks like open orders, or a quick note after meeting with a client rather than the full system on a mobile phone. I can imagine in a few years times we would have redeveloped the full system on a mobile phone or tablet but that is a lot of work since our database has evolved since DBISAM 3 days.

The initial problem I'm facing is getting the data from the EDB database onto the mobile device with offline access as mobile signal are still very patchy. EDB mobile clients would be terrific but as these are not available in FMX at present, although Tim I would be interested if the DAC version is compatible with Oxygene's mobile compilers. I have upgraded to VS2013 with the latest Oxygene so will have to try the DAC with an older version of VS.

My next thought was exposing the EDB database as a web service such as REST which seems ideal, Tim is it possible for the native Delphi REST client to communicate directly to your EWB REST service or is the REST implementation too different? Since I only have RAD Studio Pro it seems all the REST server creation tools are Enterprise version or higher, unless there are some other EDB to REST solution I could implement without reinventing the wheel.

Then that's where I thought that if I upgrade to the Enterprise version DataSnap might be an option as the Embarcadero demos make it seem so simple. But there is no special upgrade price from XE5 Pro so its looking like an expensive option and I don't even know if the two technologies are compatible or I have to use the Embarcadero provided FireDAC database drivers.

Anthony
Sat, Mar 8 2014 2:34 AMPermanent Link

Adam Brett

Orixa Systems

>>I'm assuming Adam your using the Surface Pro for other Intel based
>>Windows tablets rather than the RT version.

Yes, actually for field & warehouse work we use a "Toughbook" type tablet, not particularly pretty, but robust.

>>there are times when like quickly checking your email on your phone you need quick information from the >>database rather than full access to everything and firing up a laptop.

The mobile App has to have an Engine, Session & DB component, but you don't have to open all the tables, or views on every version of the application.

I have a very simple application:
* Create & Connect Session & DB.
* Download a list of Farmers using a Query.
* Pump this into a ClientDataset.
* Create a Form with some User-fields.
* Post button calls Database.Execute( 'INSERT INTO XXXXXX (FarmerID, Field1, Field2) VALUES (:Param1, ...)');

I pass the user-entered values into the params and the Database "Execute" runs.

This is very "light" in terms of network usage. Of course the use-case is also very simple ... just adding records for a series of farmers in different locations. However it works, and I can save user-entered data for them to "post" later if they don't have network access immediately.

I think that most of the other complex models (REST, DataSnap etc.) actually rely on mechanisms more or less similar to this one to work. Of course they add loads of extra features and operations, but the above does work, and you can write code to do UPDATEs instead of INSERTs.

>>But there is no special upgrade price from XE5 Pro so its looking like an expensive option and I don't even know >>if the two technologies are compatible or I have to use the Embarcadero provided FireDAC database drivers.

I think if you are doing Mobile development Enterprise is probably the sensible option (even though it is costly!). In Pro you do not get the Mobile Development options, and you can buy these separately but it ends up costing close to the same amount as Enterprise.

I do not think there is any need for FireDAC. EDB's data access components are not Windows specific (I believe!!!) so I think you can write a unit which uses EDB Session, Database and Query components, then include this unit in a Windows project or an Android project.

I only have XE2, which doesn't include Android support ... so I am not certain about it.
Tue, Mar 11 2014 8:00 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Anthony,

<< My next thought was exposing the EDB database as a web service such as
REST which seems ideal, Tim is it possible for the native Delphi REST client
to communicate directly to your EWB REST service or is the REST
implementation too different? >>

It's not really REST, at least not in the strict sense.  EWB's datasets
simply involve a small subset of URLs that contain parameters that specify
whether one is:

1) Loading columns, rows, or BLOBs (requires primary key)
2) Committing a transaction

The data format is always JSON:

http://www.elevatesoft.com/manual?action=viewtopic&id=ewb1&topic=JSON_Reference

<< Since I only have RAD Studio Pro it seems all the REST server creation
tools are Enterprise version or higher, unless there are some other EDB to
REST solution I could implement without reinventing the wheel. >>

If you front-end your ElevateDB database with the EWB Web Server, then you
simply need to exchange data according to the above reference and you're all
set.  Considering that the EWB Web Server has built-in support for
authenticating directly against the ElevateDB database, you'll only need to
implement the client-side JSON handling.  Of course, it will seem like a lot
of work compared to a native EDB solution on the mobile side. Smile

Tim Young
Elevate Software
www.elevatesoft.com
Image