Data Abstract uses the "multi-tier" approach to data access. Basically, this means that your apps do not connect directly to the database – but go through a middle-tier server that acts as a "gatekeeper" which controls and coordinates data access.
This has many benefits, from more efficient network transfers, over security, and better control, to who can access and modify what data.
Roughly, the architecture of our app can be visualized like this:
Although your client app is what you are most excited about (of course), it makes sense to look at the three tiers in reverse order. So let's review:
Data Abstract works with pretty much any of the commonly used relational databases available. Out of the box, it supports Microsoft SQL Server, Oracle, PostgreSQL, Interbase, Firebird, NexusDB, SQLAnywhere, AdvantageDB, mySQL, ElevateDB, SQLite and many more – but adding support for a new or more exotic database type is easy and straightforward.
And we add official support for new databases all the time, as well.
Essentially, this means Data Abstract has you covered, no matter what database system you use (or have to use). What's more, in most cases a Data Abstract middle tier can be completely database agnostic – making it easy to switch or upgrade to a different database later on.
With Data Abstract, the database can be hidden behind a firewall and closed to access by anyone except the middle-tier server. This keeps your data safe and secure.
We realize that you want to focus on writing great apps, and not spend much time writing your own middle tier. That's why Data Abstract comes with a ready-to-use middle-tier server called Relativity Server.
You can think of Relativity Server being to your business logic what, say, SQL Server is to your database, or Apache to your website: it's a ready-to-go server implementation that you can use to host the functionality you need.
You would not even consider writing your own database engine – so why bother writing your own middle-tier server?
Relativity Server is easy to install on Windows, Linux, and macOS Servers (and can be run locally during development, as well). If you're using Amazon Web Services, we also have ready-made images that let you deploy Relativity Server onto EC2 with just a few clicks — no Linux knowledge needed.
If you prefer, you can also compile your custom server with the server libraries included in Data Abstract (Server Edition). Practically speaking, your custom server would run the same code that Relativity uses – but it gives you even more flexibility to customize it or add additional non-database functionality via custom Remoting SDK services.
Custom servers can be compiled using .NET, .NET Core, Delphi, or C++Builder, with Data Abstract Server Edition.
Once Relativity server is installed, Data Abstract provides a great visual tool called Schema Modeler that lets you configure your data layer – from connecting to your database to deciding what data to make available.
Schema Modeler is available for Windows and Mac.
In the simplest case, all you need to do is select which tables to publish, and you're set. But you can take more fine-grained control, including writing custom SQL queries, hiding fields, making tables available based on the user, and writing custom business logic.
Once you have published the tables you need, they can be accessed from your client app.
This is where you shine. The Data Abstract frameworks make it easy to access your data from the client apps you write – no matter the platform and the development tool.
Data Abstract has your back on each of these platforms and makes access to your data seamless and fast.
The Data Abstract APIs you will work with are crafted specifically for each development platform, but they follow a shared design. We believe that is the best approach, allowing you to leverage Data Abstract knowledge, once obtained, across all platforms — while still getting the fully native development experience on each platform and no awkward platform-isms.
The core two classes or components you will work with are the Remote Data Adapter that forms the central connection to your middle-tier server and the individual Data Table classes that let you work with the data you retrieved and manage updates. Both of these are straightforward to use, yet powerful under the hood.
The Remote Data Adapter handles all the gritty details of efficiently and securely communicating with the server – one less thing for you to worry about.
We have extensive per-platform tutorials and examples that let you dive into each of the specific APIs, as part of the free 30-day trial: