Awake SQL is a virtual JDBC Driver and a open-source framework that enables remote JDBC access through HTTP.
Regular JDBC calls can be included in the code of Java desktop apps like with a local database that accesses remote SQL databases in the cloud.
Awake SQL is a feature-rich utility: main data types are implemented, including blobs/clobs, and transactions are supported
Security has been taken into account from the design stage: server-side configuration lets admins specify strong authentication and security rules in order to protect the databases.
Detailed instructions on how to install and use the Awake SQL utility on your Mac are available HERE.
Here are some key features of "Awake SQL":
· Compatible with Servlets 2.5+ containers, JDBC 4+ drivers and main SQL compliant databases.
· Supports Windows, Unix/Linux and MacOS X on client side and server side.
Intensively tested with main databases and JDBC Drivers:
· HSQLDB (HyperSQL Database).
· MySQL / MariaDB.
· Oracle Database.
· SQL Server.
· Sybase ASE.
· Sybase SQL Anywhere.
· Allows regular and non-modified JDBC syntax for all operations.
· Optimized and designed to manage heavy traffic with connection pooling, data streaming, stateless sessions, etc.
· Full default configuration included for easy start.
· Configuration neutral. Configuration is done through getters in Java classes using Dependency injection. This allows you to easily define your configuration strategy and implementation : ini file, XML, etc. Just use or overload any or all of the few configuration methods with your own code.
· Client/Server communications and exchanges entirely done in http or https on standard ports. (No firewall configuration required).
· Supports multi databases configuration per installation.
· Supports simultaneous Connections from client side.
· Supports JDBC calls from Java Threads.
· Entirely coded in Java.
· Also packaged as a real JDBC Driver for use with third party programs and/or explorer tools like SquirreL.
· Developed by Swing/JavaFX developers for Swing/JavaFX developers.
· Supports SQL Commit & Rollback.
· Supports main JDBC data types for columns: Boolean, Integer, Short, Double, Float, BigDecimal, Long, String, Date, Time, Timestamp.
· Supports unknown data type through generic Object wrapping.
· Supports Blobs and Clobs with no size limits.
· Supports queries returning ResultSet with no size limits.
· Support setting limits on the size of requests.
· Uses input streams and output streams I/O for Blobs/Clobs updates and reads.
· Uses input streams and output streams I/O for ResultSet transfer.
· Includes built-in and easy to use helper classes for GUI Progress Bars implementations.
· Full support of database catalog queries (DatabaseMetaData and ResultSetMetaData.)
· Supports encryption with SSL/TLS.
· Enables to force the use of an encrypted http Secure connection prior to sending login & password to the Server Manager.
· Supports strong authentication using cryptography.
· Supports connections through client side proxy.
· Supports end-to-end http session encryption using AES 256bit.
· Allows to define any server side authentication mechanism.
· Full security configuration through programmable server rules in Java.
· Allows to filter IP, SQL requests types, tables, PreparedStatement parameters, client usernames.
· Enables fine granularity analysis of JDBC calls before allowing effective server side execution.
· Allows to define if the database catalog may be queried.
· Allows to send alerts when an unauthorized JDBC/SQL call is detected.
· Allows to immediately discard and revoke a client login when an unauthorized JDBC/SQL call is detected.
· Java 6 or later
What's New in This Release: [ read full changelog ]
· AwakeSqlConfigurator allows now to define if the passed username is allowed to query the database catalog through Connection.getMetaData().
· The servlet name was not correctly displayed when testing the configuration. This has been fixed.
· Misc javadoc errors have been corrected.
Upgrading from previous version 1.3.1:
· Client side behavior is unchanged and does need to be redeployed.
· Binary compatible both on client and server side: you don't need to recompile your source code