Data Abstract for Java | RemObjects Software

Data Abstract for Java

For over a decade now, Data Abstract has been bringing secure, scalable multi-tier database access to the Java world.

Built on the strong foundation of the Data Abstract framework that has been trusted by thousands of developers since 2003, the Java edition lets you target Android, the JVM, and any other system running Java – from single-developer shops all the way to Fortune 500 companies.

Whether you write your client code in Java itself, in Kotlin, or in any of the Elements languages – Oxygene, RemObjects C# (Hydrogene), Silver Swift, Mercury or Go – Data Abstract integrates seamlessly with the Java toolchain you already use, from Android Studio to IntelliJ IDEA.

Less Clutter, with Schemas

Aren't you tired of writing repetitive networking code, hand-crafting JSON parsers and POJOs, and dealing with brittle endpoint-per-feature APIs that need to be rewritten every time the back-end changes?

Data Abstract does away with this with one powerful concept: The Schema.

Schema Modeler

The Schema lives in a single .daSchema file shared with your server, and contains all information about the data tables and commands your server exposes. It is backed by a powerful editor, the Schema Modeler, that lets you visually create, maintain and test your data access.

Schema Modeler shows you both a live view into your database(s) and the tables you have chosen to expose on your server. You can add and update tables in your schema easily via drag-and-drop.

You decide which tables and which fields will be visible to applications, whether they can be modified, and so on. You can even change the names as they will appear to client apps, to truly abstract (see what we did there?) the real database structure – more on that, below.

Built for Android and the JVM

Data Abstract for Java is built to fit naturally into the Java ecosystem. The libraries ship as standard .jar files (and .aar for Android), with no native dependencies, so they integrate cleanly into Gradle and Maven build pipelines.

For Android, Data Abstract handles the platform's networking and threading idioms – you don't need to worry about NetworkOnMainThreadException or building your own background queue. Asynchronous APIs let you keep your UI thread responsive while data loads in the background.

DA SQL

SQL is the de-facto standard language for data queries, and DA SQL brings it to the client tier, without compromising data security and integrity.

DA SQL allows you to (entirely optionally, of course) write SQL statements client-side, to express simple and complex data queries. Unlike with other systems, this SQL will not be passed through directly to the back-end database, but it gets processed and run against the schema in the middle tier – preserving all the security and data integrity you have in place, and never allowing rogue requests from a client to bypass it to access data or make changes they are not allowed to.

Of course DA SQL can be used internally, but you can also (safely) expose it to your end-user, letting them craft their own dynamic queries on the fly.

Work Online and Offline

With Data Abstract's advanced Briefcase mode, your client applications remain functional, whether they have a connection to the network or not. This is especially valuable for Android apps, where users routinely move in and out of network coverage – your app stays responsive, lets users keep working, and syncs back to the server when connectivity returns.

Changes made locally can be persisted – even across application restarts – and applied at a later time, when the server becomes reachable again. And this entire process can be transparent to the end-user if so desired.

Sophisticated reconciliation support makes it easy to deal with the rare case where two users might have tried to apply conflicting updates – including a ready-made Reconciliation flow your application can use as is, or build upon.

Abstracting the Database Structure

One of the powerful benefits of Data Abstracts Schema model is that it allows you to fully abstract what your actual database looks like from what the client applications will see and interact with. This can be helpful in many scenarios:

  • Maybe you have a legacy database with ugly names, such as the all too common ALL_CAPS_WITH_UNDERSCORES format many older databases use. You can pick prettier names in your Schema, and your client developers will never have to see the ugly names.

  • Maybe you have an old and a new database that use vastly different naming conventions, but you want to create one set of client apps that can talk to either.

  • Maybe you later want to make changes to names in the database, but not break existing clients. You can keep the old name in the schema mapped to the renamed fields or tables in the back-end.

  • Maybe you have multiple very different (but conceptually similar) databases, possibly provided by different customers, and maybe even using different database types. With Data Abstract, you can write one app, that sees one database structure, that can talk to any of them.

...and many other scenarios.

Compatible With Other Platforms

Data Abstract for Java gives you native client libraries for Android, the JVM, and any other system running Java – letting you reach a huge range of devices and servers with a single codebase.

But Data Abstract is much more than just a Java framework. Native client libraries are available for all major non-Java development platforms: .NET and .NET Core, Delphi and C++Builder, Apple's platforms using Xcode with Objective-C and Swift or Elements, as well as JavaScript and WebAssembly. The same server can serve all of these clients, equally well.

Data Abstract was also designed from the ground up to be wire-compatible with non-DA clients, and data from a Data Abstract server can be accessed using (sometimes less efficient and capable) open standards such as OData and REST, if needed.

Relativity Server

While you can build your own middle-tier server from scratch (in .NET, Delphi, or one of the Elements languages) and add all the custom functionality you need, in many cases DA and the schema provide everything out of the box, and there is no need for any custom server code at all.

For these cases, there is Relativity Server.

Relativity Server is a pre-built server application that you can deploy royalty-free to host any number of independent Data Abstract middle-tier servers, each with any number of schemas. It provides all the functionality of a custom server, without the need to build and maintain your own server project.

You can think of Relativity Server being to your middle-tier what SQL Server, Oracle, or any other database system is to your database: you just provide the actual data, you're not building your own database engine.

And of course, since Relativity Server is based on DA, you can always migrate from it to a custom server later, if you need to add custom functionality. Or migrate a custom server to Relativity, if you don't.

Try Data Abstract Now

Give Data Abstract for Java a try for 30 days – free and without any commitment.

You can download the trial from this site, below.

 

Get Your Copy Now

Take your data access to the next level with Data Abstract for Java, at only $1499 for a yearly license. Data Abstract is also part of the full Suite Subscriptions, or for multiple platforms.

Site licenses, volume discounts, and packages including all Data Abstract platforms are available, as well.

To stay in the loop, follow @RemObjects on Twitter.

And discuss the product or get support, in our Data Abstract forum on RemObjects Talk.

This includes full technical support during your trial period as well, of course!

Close

How can we help?

Your Name:
Your Email Address:
 
Your Question:
Close

Thank you!

Your message has been sent, and someone will get back to you soon, usually within a business day.

For technical or support questions, please also check out our RemObjects Talk support forum, as well as out other Support Options.