One of the upgraded features of OpenInsight 10 will be OECGI4, the newest version of our web support routines. One of the enhancements to OECGI4 (available as both a Windows executable for Windows web servers, and as a PHP routine for Windows or Linux web servers) is additional support for some of the less well known "verbs" used in the HTTP/HTTPS protocol. When using OECGI to support or access web pages, the HTTP and HTTPS protocols use the "POST" and "GET" verbs to submit, and request, information respectively. These have been in common use since the World Wide Web first standardized on the HTTP/HTTPS protocols. But in addition to the familiar POST and GET, HTTP/HTTPS defines other verbs that can be useful when writing RESTful interfaces.
REST stands for REpresentational State Transfer, and is in a way the underlying principle of the Web. When a client makes an HTTP or HTTPS request from a server, the response from the server contains not only the specific information needed to answer that request, but also details that the client can use to get more information, all "bundled up" in the answer. For example, when a request for a web page is made, the web page may contain images, or stylesheets, or script calls. The client has no way of knowing, in advance, if there is one, or a hundred, images in the returned page - but the page itself contains the instructions the client can use to retrieve the images, or the style sheets, or the script pages. The page may even include the data and instructions needed for the client to retrieve other pages (via links, or via pagination). Because of its familiarity, this may seem simple and straightforward when it comes to web pages, but the concept (that nothing is "predefined", but rather everything is embodied in the responses) can be expanded upon to make much more advanced inter-operating systems.
REST can be used, not just for retrieving and updating web pages, but also to enable computer programs, as well as people, to interact with web services. By building a RESTful interface, a web service designer opens up their web site to the possibility of having other software query it for information, or update it with changes, thus allowing anyone else to put different user interfaces (if any!) on these interactions. While not required for REST, using HTTP and HTTPS, and the additional HTTP/HTTPS verbs, is currently the most common way of implementing this.
In addition to "POST" and "GET", HTTP/HTTPS (and OECGI4) support the verbs "PUT", "DELETE", and "PATCH." In the RESTful programming world, the "GET" verb is used to retrieve information - either about the other available interfaces this RESTful interface supports, or information about specific "objects". For example, if you were to create a customer maintenance web service, the "GET" verb might be used to retrieve the list of customers, or the information about a particular customer - or the list of commands that can be applied to those customer "objects". The "POST" verb is commonly used to create new "objects" - in our example, the "POST" verb might be used to create a new customer. "PUT" and "PATCH" both are commonly used to update existing "objects" - in our example, either "PUT" or "PATCH" may be used to change the customer’s phone number (PUT may wipe out any data in fields that aren’t specified, while PATCH should only update the specified fields). Finally, "DELETE" is most commonly used to remove "objects".
When using OECGI4, you can examine the request parameter to find the "request method" (defined in the INET_EQUATES insert), and - with the appropriate INET_XXX stored procedures - you can begin to implement your own web service.
Interested in learning more about RESTful programming? For additional information, please see the following resources:
Revelation Software's Java library for OpenInsight access, oiJio, allows Java developers to connect with an OpenInsight OEngineServer, perform basic file i/o, and invoke Basic+ routines.
Communication can be performed in "stateful" or "stateless" mode. In stateless mode, a client connects to the engine server, makes its request, receives any results, and then disconnects; in this fashion, the OEngine is available for subsequent requests from the same, or different, client. This provides the most efficient throughput for multiple users. Conversely, in stateful mode, the Java client will connect to the engine server, make one or more requests, receiving any results, and maintain its connection until the session is complete, at which point it should disconnect. Because the client does not disconnect after each request, additional requests from other clients must "consume" additional OEngines; this method, then, provides a simpler interface at the expense of scalability.
In addition, in stateful mode, developers can choose to run in either synchronous or asynchronous mode. In asynchronous mode, the oengine can generate events which the client must handle.
Examples of the different modes are illustrated in the sample code, contained in the included DemoOIJIOclass.java file.
Your guide to licensing Revelation Software products from development through deployment. By clicking on the “Yes” button on the Software License Agreement window, you agree to abide by the terms and conditions of this license agreement. If you have any questions, please contact our Customer Service Department at (800) 262-4747 or (201) 594-1422. UK and Western European customers should contact +44 (0)208 912 1000; Asia and Pacific customers should contact +64 (9) 534 9134.
THIS IS A LEGAL AGREEMENT BETWEEN YOU (Licensee) AND REVELATION SOFTWARE (Revelation). READ THESE TERMS AND CONDITIONS BEFORE OPENING THE MEDIA PACKAGE AND/OR INSTALLING OR DOWNLOADING THE PRODUCT. IF YOU DO NOT AGREE WITH THEM, YOU SHOULD PROMPTLY RETURN THE PRODUCT TO REVELATION OR ABORT THE INSTALLATION PROCESS. This AGREEMENT governs the use of the software and documentation contained in the OpenInsight Products. Installation, copying, downloading, or any other use of the software indicates your agreement with the terms and conditions set forth herein.
I. GRANT OF LICENSE
Revelation grants Company a non-exclusive license to install and use one (1) copy of the software and one (1) copy of the documentation on one (1) computer. Company may make one (1) copy of the software for backup purposes only consistent with and under the limitations of 17 U.S.C. § 117. All other rights are reserved to Revelation. This software is protected by copyright law, international copyright treaty and by Revelation’s defined licensing requirements.
The Works includes a full development copy of OpenInsight and access to the “WORKS Members” section of the Revelation Website as well as access to technical support from Revelation Software. A Works subscription license includes a Setup executable which can be downloaded from the Works Download section of the Revelation Software web site. The Setup executable will install a two (2) user development copy of OpenInsight for use of the Works subscription member on the appropriate computer. If there is more than one developer, these additional developers are added to the OpenInsight Works development license through a supplied authorization code via the purchase of a TeamWorks license. Every OpenInsight Works Developer must be properly licensed. Revelation provides these licenses via TeamWorks. Each additional Works user is provided with an additional two (2) users applied to an OpenInsight license that resides on the network server and increments the number of concurrent Works developers that can access that copy of OpenInsight. For example, if five Works developers require access to OpenInsight on a network, the first Works developer license will be the two (2) user licenses created with the Setup executable. The remaining four Works developers would apply the appropriate authorization code to the copy of OpenInsight on the network which would then add eight (8) additional user licenses bringing the total number of user license to ten (10). OpenInsight Works or TeamWorks development licenses cannot be distributed to more than one server. If you need to deploy the development application on multiple servers, additional copies of OpenInsight Works or TeamWorks must be purchased.
Every individual who accesses the “WORKS Members” section of the Revelation web site for upgrades, content, services, etc. must have an active Works Subscription. Proper licensing can be determined by ensuring each individual has his/her own unique user name and password. A Works Subscription is not transferable or shareable (i.e. multiple users logging in using the same user account).
Every OpenInsight Network User License user must be properly licensed. The Developer Class engine provides the capability for a single user or multiple users to create files, create or modify dictionaries, create or delete indexes, as well as any application components (forms, programs, menus, etc). It does not allow applications to be deployed. Network User Licenses are available in increments of any number of users and are supplied electronically for one use on one installation of one OpenInsight serial number. A Network User License cannot be duplicated nor can it be applied more than once. If you need to deploy the application on multiple servers, additional Network User Licenses must be licensed or Enterprise Licensing must be purchased.
This license includes (1) Network User License File and a serial number which can have an unlimited number of users on a single server. This license also includes Revelation Software’s Universal Network Driver (NUL). This license is subject to an annual license renewal fee.
This license includes (1) or more Network User License Files and serial numbers for a minimum of seventy five (75) concurrent users. These license files can be applied across multiple servers within the Enterprise. This license also includes Revelation Software’s Universal Network Driver (NUL). This license is subject to an annual license renewal fee.
This license includes (1) or more Network User License Files and serial numbers for a minimum of one hundred and fifty (150) concurrent users. These license files can be applied across multiple servers within the Enterprise. This license also includes Revelation Software’s Universal Network Driver (NUL). This license is subject to an annual license renewal fee.
A Web User License enables the publication of Revelation data to the World Wide Web. The web User License provides users with access to application extensions within the context of a web browser or HTTP enabled tool. It can be used in conjunction with Works Licenses and/or Network User Licenses for both testing and production web environments:
The Revelation Universal Driver and Universal Driver Heavy are licensed per server. The implementation and use of these products work in conjunction with properly licensed network user licenses (OpenInsight Network User Licenses). A Network Product cannot be duplicated nor applied more than once. If you need to deploy the application on multiple servers, additional Network Products must be purchased or Enterprise licensing must be purchased.
Network User Licenses for OpenInsight 10.0 and above are subject to an Annual License Renewal fee. The annual license renewal fee is charged (1) year from the date of initial license purchase. Failure of payment of the annual license renewal fee is a direct violation of this Agreement.
The term of this Agreement shall commence on the date Company installs the software. This Agreement remains in effect until terminated. This Agreement shall automatically terminate without notice if you fail to comply with any term or condition of this Agreement. Upon termination of this Agreement, Company shall cease use of the Product and, upon request, return to Revelation or certify destruction of the Product, including documentation and any related materials.
Revelation Software warrants the physical media and physical documentation provided by Revelation Software to be free of defects in materials and workmanship for a period of ninety (90) days from the original purchase date. If Revelation Software receives notification within the warranty period of defects in materials or WORKMANSHIP, and determines that such notification is correct, Revelation Software will replace the defective media or documentation. YOU MAY NOT RETURN ANY PRODUCT UNTIL YOU HAVE OBTAINED A RETURN AUTHORIZATION NUMBER FROM REVELATION SOFTWARE’S CUSTOMER CARE DEPARTMENT. REVELATION SOFTWARE SPECIFICALLY DISCLAIMS ALL OTHER WARRANTIES, REPRESENTATIONS, OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTY OR CONDITION OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ALL OTHER IMPLIED TERMS ARE EXCLUDED.
Specifically, Revelation Software makes no representation or warranty that the software or documentation is "error-free" or meets any user's particular standards, requirements, or needs. In all events, any implied warranty, representation, condition, or other term is limited to the physical media and documentation and is limited to the 90-day duration of the limited warranty.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL REVELATION OR ITS SUPPLIERS BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, DIRECT, INDIRECT, SPECIAL, PUNITIVE, OR OTHER DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OR INABILITY TO USE THE PRODUCT, EVEN IF REVELATION HAS BEEN ADVISED OF THE POSSIBLITY OF SUCH DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO RECIPIENT.
IN NO EVENT SHALL REVELATION’S TOTAL LIABILITY TO RECIPIENT FOR ALL DAMAGES, LOSSES AND CAUSES OF ACTION EXCEED THE AMOUNT PAID BY RECIPIENT (IF ANY) FOR THE PRODUCT.
If any provision of this Agreement is found void or unenforceable, the remainder will remain valid and enforceable according to its terms. If any remedy provided is determined to have failed of its essential purpose, all limitations of liability and exclusions of damages set forth shall remain in effect.
Use, duplication or disclosure of the software and documentation in this package, by the U.S. Government is subject to the restricted rights applicable to commercial software under clauses 52.227-19 of the FAR and 252.227-7013 of the DFARS.
This Agreement shall be deemed to have been executed and delivered within the State of New Jersey and this Agreement and the rights and obligations of Revelation and Company shall be construed, interpreted and governed under the laws of the State of New Jersey, U.S.A. Company absolutely and irrevocably consents and submits to the jurisdiction and venue of the courts of the State of New Jersey and of any federal court located in the State of New Jersey in connection with any actions or proceedings arising out of or relating to this Agreement and agrees that any actions or proceedings arising out of or relating to this Agreement shall be brought in the courts of the State of New Jersey or in the United States District Court for the District of New Jersey, Eastern District. In any such action or proceeding, Company hereby absolutely and irrevocably waives personal service of any summons, complaint, declaration or other process and hereby absolutely and irrevocably agrees that service thereof may be made by certified first class mail directed to Company at the address set forth below.
You may not alter, merge, modify or adapt the software in any way including disassembling or decompiling. You may not rent, loan, or lease the software or any copy.
You may transfer all of your rights to use the software to another person within the same company, provided that you transfer to that person all of the software, CD’s, diskettes, and documentation provided in this package (including this statement), and transfer or destroy all copies in any form. Once you transfer the software, you no longer have any right to use it. The person to whom it is transferred may use it only in accordance with the copyright law, international treaty, and this statement.
If the Company merges with, is acquired by, or otherwise sells or transfers all or substantially all of its business to a third party, the Company may assign this Agreement to the third party and agrees in writing prior to any such transfer, to be bound by all of the terms and conditions of this Agreement. Except as set forth above, this Agreement shall not be assigned or transferred without the written consent of Revelation Software.
An upgrade version of the software constitutes a single product. An upgrade and the original software that you upgraded cannot both be available for use at the same time, cannot be applied to more than one licensed product, and cannot be transferred separately, without written permission from Revelation Software.
Company understands that the product is subject to regulations by agencies of the United States Government as well as laws and regulations of other applicable countries, which prohibit export, or diversion of certain technical products to certain countries and individuals. Company shall comply in all respects with all applicable export and re-export restrictions applicable to the product or related materials.
During the term of this Agreement, Company shall permit Revelation Software or Revelation Software’s authorized representative, upon reasonable notice and during normal business hours, to (a) inspect and audit the Company’s books and records relating to this Agreement and (b) perform data processing audits to ensure compliance with this Agreement.
This Agreement is the complete and exclusive statement of the agreement between Company and Revelation Software regarding the subject matter hereof and supersedes all agreements and any other communications, whether oral, written or implied, between Company and Revelation Software. This Agreement may be modified, changed, or revised only by a written agreement between Company and an authorized officer of Revelation Software.
OpenInsight is a trademark of Revelation Software All other brand and product names are trademarks or registered trademarks of their respective holders.
Who should purchase the Universal Driver 4.7?
Multi-user applications written in OpenInsight versions prior to 9.0 or Arev 3.12 require the Universal Driver. If your application is based on OpenInsight 9 then there is no need to purchase the Universal Driver. The Universal Driver NUL (Network User License) is already included with OpenInsight 9 and later. The Universal Driver NUL edition is compatible with all existing database files but it is only forward compatible with the OpenInsight 9 development environment. For mixed environments with OpenInsight 9 and any prior Revelation Software development tool the for-purchase Universal Driver is required since it is compatible with all supported versions of the Revelation Software development tool. For a complete list of supported versions please refer to the Network Product Matrix.
Why should you purchase the Universal Driver?
If your application was developed in Arev 3.12 or OpenInsight versions prior to 9.0 the Universal Driver is required for multi-user access. The following points list the advantages of the Universal Driver compared to previous network drivers such as the All Networks Driver.
Protection from data corruption.
Data corruption can occur for a variety of reasons, including bad network cabling, power fluctuations, hardware errors, no record locking, or users aborting processes. Often it is impossible to predict or prevent such events. The Revelation Universal Driver protects you against data corruption when such events do occur by recognizing that an error occurred and notifying the user, while protecting the data table from incomplete transactions, virtually eliminating data corruption errors (Group Format Errors).
Increased speed performance.
The Revelation Network Products are designed to enable database activity to be off-loaded onto the file server. This architecture dramatically reduces the amount of network requests. The reduction of network requests translates to increased performance. Benchmarks show a dramatic performance increase on local area networks (LANs), and an even greater increase on wide area networks(WANs).
Costs mount very quickly when your users can't use the system. The real cost of data corruption is the downtime created while the appropriate back-ups are found and restored. If the system can't be restored with a recent back-up, the information must be re-entered, taking additional precious resources.
Why should I upgrade to the Universal Driver 4.7?
Versions of the Universal Driver after 3.0 are compatible with all previous versions of Linear Hash files. Also included with the Universal Driver 4.7 is a console application (the UD Manager) that allows you to manage record locks without having to stop the Linear Hash Service, as well as view the active connections to your applications.
What has changed from the Universal Driver 4.6?
Universal Driver Manager is now compatible with 64bit systems.
The ability to select and unlock multiple records from the Universal Driver Manager is now available. Previous versions allowed only one record to be selected during each unlock.
Server side install program now recognizes Arev 3.12 as a valid installation location.
What has changed from the Universal Driver 4.5?
NSIS replaces Install Shield as the installer.
UD 4.6 will now be offered in two versions: The free bundled version supplied with OpenInsight 9.0 and above network user licenses and the standard version to be used with OpenInsight 8.0.x and below. The free bundled version will only work with OpenInsight 9.0 and above network user licenses; it will not function with versions of OpenInsight 8.0.x and below as well as Advanced Revelation.
The Universal Driver 4.6 will no longer support unlimited-length record keys. Record keys can now be a maximum of 552 characters long. Any keys that exceed this limit will now be "illegal" and applications will be unable to either read or write them. The server event log will report Linear Hash error 1016 for this condition. Since this will make the records unreadable, they will be treated as though there is a "group format error" (GFE) in any table that contains them, and so the Database Manager tool in OpenInsight release 9.1 to Verify LH has also been updated to report there "errors", and the "fix" option has been updated to copy them to a new table called DUMP_FIX_SAVE.
Another, more critical fix, is that currently, the "Fix GFEs" option on the Verify LH menu silently considers any records with keys greater than 50 characters long to be GFEs. Anyone running the "Fix GFEs" option, either from Verify LH menu, will lose any records that have keys longer than 50 characters. As a result of this issue, we are including with the Universal Driver 4.6 a RDK containing a FIX_LH routine. This updated routine removes the "50-character-throwaway" functionality and replaces it with the "552-character-save" functionality.
What are some of the other great features of the Universal Driver?
There is only one REVPARAM file no matter how many different subdirectories you have with .LK and .OV files.
There is support for files larger than 4 gigabytes.
There is support for large frame sizes up to 100K.
You can 'hide' your .LK and .OV from your users.
The LHVerify facility is integrated onto the server side, allowing much faster performance.
Registry settings and REVPARAM file created automatically.
What configurations does the Revelation Universal Driver 4.6 work with?
Server Version Minimum
Windows 64bit and 32bit versions of Server 2003 and Server 2008. Server 2012.
Novell Not available at this time
Linux Not available at this time
Will the Universal Driver work with Windows 95/98/NT workstations?
No, it will only work with workstations running XP and later.
Will the Universal Driver 4.7 work with Arev?
Yes, the Universal Driver will work with Arev 3.12 and OpenInsight 4.1.3 and above. The Universal Driver NUL version will not work with Arev or OpenInsight versions prior to 9.
What is the pricing?
The price for a new install of the Universal Driver 4.7 is $2,635.00.
Upgrade pricing is as follows:
From Universal Driver 4.0 and Universal Driver 4.6 to Universal Driver 4.7 is free.
From Universal Driver 3.0 to Universal Driver 4.7 is $787.00.
From Revelation 2.1 Service to Universal Driver 4.7 is $1,095.00.
From Revelation 1.5 Service to Universal Driver 4.7 is $1,315.00.
Crossgrade from NLM to UD 4.7 is $1,430.00.