Consuming Restful WebApi for all the data within Clarion Application (SOA)


#1

Hi All,
I am in the process of designing a new application. My preference is to have this based on a Service Oriented Architecture. Clarion Desktop Application + WebAPI (data source)

There are 2 ways I think the data can be accessed:

  1. Directly access to be SQLDB from my application.
  2. Through a WebAPI (Restful), written in ASP.NET MVC Web API. (SOA) ( I know this can be done using Nettalk Server as well).

There will be native Android and iOS applications which will need to connect to my data and this is the reason I am thinking of the second option.

Technologies:
C10 EE, Nettalk10 and other Capesoft templates like StringTheory, JFiles, XFiles

Is this the right approach?
Has anyone done something like this, where the entire application is getting all the data from the WebAPI?
How about the browses, it’s filter etc?
Will there be performance issues you can foresee?

I welcome all tips, suggestions, advice etc.

Regards

Mathew


#2

Hi Matthew,

What you’re looking for here (I think) is data flexibility. The data needs to be accessed from multiple platforms, and so a service approach makes a lot of sense.

I would caution against direct access to SQL primarily because the service approach gives you more control over who has access to which data. There are also obvious advantages from a security point of view to not expose the SQL database directly to the internet.

From a NetTalk Desktop program point of view there are 2 approaches you could take when using a service as the source of the data.

a) Download whatever data you need from the service, into memory tables as you need it. The upside of this approach is “no local storage”. The downside is limited memory availability, and the “cost” (in time mostly) of downloading the bulk of your data set each time. You also need a hand-code approach to push changes back to the server.

b) Implement a disconnected desktop client as per here; https://www.capesoft.com/docs/NetTalk11/NetTalkApps.Htm. Since you are developing a new system it’s ideal from that point of view. The advantage of this approach is that you are still updating your local data set using the service - but the program carries on working even if the desktop LAN is offline. Of course then you can build your Android and iOS clients around the same data-synchronisation process - and add whatever other server-side-services you like to support them.

Lastly - if you do plan to make the server using ASP.NET then you can at least wizard up a NetTalk server to act as a reference point. You can then quickly have a working prototype, and you can then replace the server with ASP.NET whenever you like.

Cheers
Bruce


#3

Thanks Bruce.

I am already working on it. The disconnected architecture you’ve mentioned on the nettalk link is very similar to what I have in my mind too. I’ll get back if I have any more queries.

Meanwhile, if there are anyone else who would like to share their thoughts, please do so.

Regards

Mathew