Data Abstract for JavaScript | RemObjects Software

Data Abstract for JavaScript

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

First introduced in 2011, Data Abstract for JavaScript has grown alongside the web, and is being relied on by developers every day all across the globe, from single-page apps and progressive web apps to Node.js back-ends and WebAssembly-based clients.

Whether you write your client code in plain JavaScript, in TypeScript, or in any of the Elements languages targeting WebAssembly – Oxygene, RemObjects C# (Hydrogene), Silver Swift, Mercury or Go – Data Abstract integrates seamlessly into your modern web toolchain, from Webpack and Vite to Node.js.

Less Clutter, with Schemas

Aren't you tired of writing repetitive fetch calls, hand-crafting REST endpoints, 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 the Modern Web

Data Abstract for JavaScript runs in any modern browser, in Node.js for server-side and command-line tools, and in WebAssembly hosts. Networking is built on the standard fetch API and WebSocket, so the library works with the security, caching, and connection-management infrastructure of the platform – not against it.

The library is delivered as a small, dependency-free bundle, with both ES modules and traditional script-tag distributions, so it fits cleanly into modern bundlers like Webpack, Vite, esbuild, and Rollup, as well as into legacy projects without a build step. Asynchronous APIs are built around modern Promises, so they integrate naturally with async/await, and with whatever frontend framework your team prefers.

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.

This is especially valuable in the browser, where you simply cannot trust client-side code to enforce security: with DA SQL, even a fully open client SQL editor can never bypass the rules you defined on the server.

Work Online and Offline

Web users – especially on mobile – routinely move in and out of network coverage. With Data Abstract's advanced Briefcase mode, your client applications remain functional whether they have a connection to the network or not.

Changes made locally can be persisted (using the browser's local storage) – even across page reloads – and applied at a later time, when the server becomes reachable again. Combined with a service worker, this lets you build truly offline-capable progressive web apps backed by your real data.

Sophisticated reconciliation support makes it easy to deal with the rare case where two users might have tried to apply conflicting updates.

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 JavaScript lets your web and Node.js applications connect to any Data Abstract server – be it a custom server you wrote yourself, or a Relativity Server instance.

And the same back-end can serve your other clients, too. Native Data Abstract client libraries are available for all major non-JavaScript development platforms: .NET and .NET Core, Delphi and C++Builder, Apple's platforms using Xcode with Objective-C and Swift or Elements, and Java/Android.

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 JavaScript 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 JavaScript, 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.