kinodb generates HTML appropriate to each user’s browser, and supports current versions of Internet Explorer, Firefox, Safari and Chrome. As new browser versions and capabilities are released, we update the delivery framework so that existing applications continue to work. This means that our developers don’t need to spend time hand-crafting HTML for a variety of devices, and that our applications are browser independent and will continue to operate properly for years to come.
kinodb framework
Here's a summary of the features that kinodb developers have access to. These enable them to implement systems with rich and robust functionality - all without the need for the implementation of technical code.
kinodb features

HTML5
About HTML5

Using conventional tools, supporting mobile devices and multiple browser versions is very time-consuming and requires detailed and ever-changing knowledge. With kinodb, applications work without device-specific code, and an update to the framework to deal with a new browser means that it just works.

Using conventional tools, supporting mobile devices and multiple browser versions is very time-consuming and requires detailed and ever-changing knowledge. With kinodb, applications work without device-specific code, and an update to the framework to deal with a new browser means that it just works.

CSS3
About CSS3
kinodb's user interface uses Bootstrap, based on CSS3 standards, to ensure a consistent and clear presentation. Stylesheets are maintained within the same metadata model as everything else about the application, allowing changes (for instance to match corporate branding standards) to be made as managed changes to the overall application.
Developers don't need to delve deep into the technical aspects of managing complex stylesheets in order to be able to cater for devices of varying sizes and capabilities.

Developers can make use of sophisticated CSS styles to create a rich and attractive user interface, without needing to code the HTML and CSS required to implement it.

Developers can make use of sophisticated CSS styles to create a rich and attractive user interface, without needing to code the HTML and CSS required to implement it.

Security Model
About the Security Model
A fully-featured and flexible security model is intrinsic to every kinodb application. Rights (for instance to run a report, view or edit data, or to perform administrative tasks) can be granted to individuals or groups of users by conferring memberships of realms and levels of access within them.
Additionally, row-based security allows combination of realm-based rights with rights derived from data maintained within the system - for instance to allow a user to approve a purchase order if it was generated within their department, its value does not exceed their approval level, and they have been granted at least the 'Approvals' level within the 'Finance' realm.
Realms, realm levels and data-driven criteria are entirely within the control of the developer, allowing the implementation of whatever security model is appropriate to the application.

Rights can be conferred within the application by an administrator or can be sourced from an external authentication mechanism such as an Active Directory implementation.

Rights can be conferred within the application by an administrator or can be sourced from an external authentication mechanism such as an Active Directory implementation.

Single sign-on
Content
kinodb supports industry-standard security protocols to enable integration with enterprise security models.
Authentication and the grant of rights within the application may be managed either within the application itself or, when used in conjunction with an AD / LDAP architecture, externally.

Single sign-on can be configured for some or all users of a system, allowing integration with corporate standards whilst allowing external users to connect with a user name and password.

Single sign-on can be configured for some or all users of a system, allowing integration with corporate standards whilst allowing external users to connect with a user name and password.

LDAP Rights
About LDAP Rights
LDAP (Lightweight Directory Access Protocol) is a standard protocol for the identification of individuals, groups and resources on a network. It is commonly used for the identification of users and their association with groups in order to enable the conferral of access rights.
kinodb can access LDAP repositories using standard Kerberos protocols allowing its interoperation with enterprise-wide rights schemes.

Mapping integration
Mapping Integration
kinodb provides integration with Google Maps as standard, and the framework is extensible to enable integration at the browser with standard XML- and JSON-based mapping interfaces as required.
The same functionality allows integration with a variety of other interfaces and services - either at the server or the browser - such as address validation, data visualisation and diagramming... talk to us about your requirements.

Full support of Google Maps functionality - including the ability to draw markers, lines and polygons onto maps, geolocation services and others, is included in the core kinodb framework.

Full support of Google Maps functionality - including the ability to draw markers, lines and polygons onto maps, geolocation services and others, is included in the core kinodb framework.

Graphing
graphing content card
A variety of standard graph types are included and fully integrated with kinodb's reporting suite. Developers can provide the capability for users to interact with graphs as required - for instance to drill down into the contributing data for a particular histogram bar.

Bar, line, scatter, logarithmic, high-low-close, bubble, pie and other chart types are supported and can be mixed with other report content as required.

Bar, line, scatter, logarithmic, high-low-close, bubble, pie and other chart types are supported and can be mixed with other report content as required.

Reporting
reporting content card
Full reporting capabilities are built into the kinodb framework. Developers can include interactive report content throughout the application, providing the ability to create whatever interface the application requires. No HTML or CSS coding is required to make full use of reporting functionality, and content will be rendered appropriately to the device on which it is accessed (desktop, laptop, tablet or mobile).

As the whole of the application design is maintained within a model, the report designer can use the knowledge of data structures embedded in that model to make the implementation of reports much faster. Complex reports can be developed in a fraction of the usual time, and will work on any device.

As the whole of the application design is maintained within a model, the report designer can use the knowledge of data structures embedded in that model to make the implementation of reports much faster. Complex reports can be developed in a fraction of the usual time, and will work on any device.

XML
xml content card
kinodb represents XML schemas as structured data, and the developer can create maps between the entities defined by the schema and the tables and fields of the application - these are called 'bindings'. A binding may be used to import data stored in an XML document or to create and populate a new XML document from data stored within the application.
A full web service implementation (server and consumer, RESTful and SOAP protocols) allows a kinodb application to communicate cooperatively with other applications as part of a service oriented architecture.
Increasingly, web services rely on JSON in preference to XML. Simply setting a checkbox on a schema will cause JSON to be output rather than XML, with no other changes.

Implementing XML schemas and web services to allow client applications to request or update asset data and to create new assets in their asset register took one day from scratch. Access to the services is controlled by the security model, with tokens required to access the service being allocated by an administrator allowing control and auditing of the activities of client systems.

Implementing XML schemas and web services to allow client applications to request or update asset data and to create new assets in their asset register took one day from scratch. Access to the services is controlled by the security model, with tokens required to access the service being allocated by an administrator allowing control and auditing of the activities of client systems.

JavaScript support
javascript content card
Whilst kinodb applications make use of JavaScript in the user interface and in the implementation of features such as device independence, graphing and diagramming, kinodb developers don't need to write JavasScript to implement feature-rich and responsive applications. The kinodb framework serves code to the browser as required to support the features that the developer is using, and ensures that applications operate correctly irrespective of the device or browser in use.

kinodb's framework includes extensive JavaScript for a variety of purposes, removing the need for developers to spend time implementing detailed user interface functionality. The framework is extensible, so whatever the requirement kinodb can produce what the application requires.

kinodb's framework includes extensive JavaScript for a variety of purposes, removing the need for developers to spend time implementing detailed user interface functionality. The framework is extensible, so whatever the requirement kinodb can produce what the application requires.

End-user documentation
end-user documentation content card
End-user and technical documentation are stored as a part of the application model.
Structured documentation (sections, links, diagrams etc.) can be created within the model, allowing full user documentation to be integrated with the application. Administrators can be granted the ability to edit such documentation, allowing changes to business processes etc. to be reflected within the in-system documentation as required.

The ability to create structured documentation within the application can greatly reduce support overheads. Full integration with the overall application model means that documentation is maintained directly alongside the application itself, and can at all times accurately reflect the purpose and operation of the application.

The ability to create structured documentation within the application can greatly reduce support overheads. Full integration with the overall application model means that documentation is maintained directly alongside the application itself, and can at all times accurately reflect the purpose and operation of the application.

Multi-language implementation
multi-lingual support content card
As the whole of the application is stored in a model, creating and maintaining a multi-lingual implementation can be achieved in a way not open to conventional development tools. Talk to us about how to significantly reduce the costs of implementing an application that allows users to choose their language as they use the system.

Context-sensitive help
context-sensitive help content card
End-user and technical documentation are stored as a part of the application model.
Context-sensitive help can be displayed alongside data entry screens, reports and other output. Where appropriate, administrative users of the system can edit end-user help content to reduce the need for support.

As the user moves around the application, context help is displayed appropriately. As the user moves around an edit form, help relevant to the focused field is displayed alongside the user's activity.

As the user moves around the application, context help is displayed appropriately. As the user moves around an edit form, help relevant to the focused field is displayed alongside the user's activity.

Web services integration
web services integration content card
kinodb provides a wealth of web services functionality. Services may be implemented (as either client or server) using either RESTful or SOAP protocols, with flexible access controls allowing segregation of both functionality and data access according to the capabilities associated with an administrator-created set of access tokens. This might for instance be used to allow a range of partner organisations access to only the relevant subset of information maintained within a central repository, with auditing of all data requests and updates performed by each authorised organisation.

The kinodb framework makes establishing, administrating and maintaining complex service oriented architectures far more straightforward than is the case with conventional technologies.

The kinodb framework makes establishing, administrating and maintaining complex service oriented architectures far more straightforward than is the case with conventional technologies.

Encrypted data
encrypted data content card
In addition to providing secure transmission of data to and from users' browsers, kinodb provides a set of mechanisms for the encryption of data at rest (stored in the underlying database tables).
These mechanisms can be employed to prevent unauthorised access to stored data, even by those with legitimate access to the database platform itself.
kinodb's most secure encryption mechanism employs a set of administrator-controlled access control lists with conferral of access to each being securely granted via an offer / acceptance process. Keychain entries are encrypted using each user's own password, so even system administrators cannot access data secured in this way.

Users can be required to re-authenticate to the system before accessing secure areas, either by password re-entry or two-factor authentication such as a one-time code transmitted by text.

Users can be required to re-authenticate to the system before accessing secure areas, either by password re-entry or two-factor authentication such as a one-time code transmitted by text.

CSV data interchange
csv data interchange content card
Whilst XML is generally the preferred mechanism for data interchange tasks, providing as it does a formal definition of the data format and support for international character sets, CSV files are a popular means of loading and transmitting data. kinodb provides robust support for the import and export of CSV data files, enabling the quick construction of ad hoc interface mechanisms where this is the most pragmatic option.

kinodb supports the creation of file maps providing a mapping between database columns and CSV data files. This provides a robust mechanism for both import and export of data in this format.

kinodb supports the creation of file maps providing a mapping between database columns and CSV data files. This provides a robust mechanism for both import and export of data in this format.

SQL optimisation
sql optimisation content card
kinodb removes the need for developers to craft SQL statements to access an application's data.
A significant change to the database structure will, in a conventional development environment, require the assessment and re-creation of vast numbers (potentially thousands) of SQL statements. Using kinodb, every change to the application's data structures is immediately reflected in the SQL generated to access the data - within the running application. So a developer can make a change and immediately see its impact.
SQL is generated to query only those fields that are required by a given user performing a specific operation, allowing the most efficient use of database resources.

kinodb's ability to immediately reflect every design change means that the development process is so much faster, and creating the correct data structures for the system's requirements isn't constrained by the complexity of implementation of the 'right' structures for the task.
Also, it's entirely normal to have a moment of realisation half way through implementation that there's a better way of doing something - using conventional tools there's then an internal dialogue about whether we're too far down the road to rework something that really should be better. Using kinodb the decision is easy: make the change now as you don't need to do loads of technical impact assessment & rework.
It's hard to describe the change that this makes to productivity - it really is a completely different way of developing.

kinodb's ability to immediately reflect every design change means that the development process is so much faster, and creating the correct data structures for the system's requirements isn't constrained by the complexity of implementation of the 'right' structures for the task.
Also, it's entirely normal to have a moment of realisation half way through implementation that there's a better way of doing something - using conventional tools there's then an internal dialogue about whether we're too far down the road to rework something that really should be better. Using kinodb the decision is easy: make the change now as you don't need to do loads of technical impact assessment & rework.
It's hard to describe the change that this makes to productivity - it really is a completely different way of developing.

Scheduled Jobs
scheduled job content card
kinodb uses scheduled jobs for all kinds of functionality - for instance running interfaces, sending email reminders or performing background processing of large volumes of data.
Scheduled jobs can be run at any frequency or may be invoked as background tasks by user activity.
Jobs are database independent (i.e. they don't rely on PL/SQL or other database-specific language implementations) and are, just like every component of every kinodb application, defined and maintained within the overall metadata model of the application.

Scheduled jobs employ kinodb's built-in 'Actions' processing functionality, enabling access to the full range of kinodb's functionality and ensuring complete integration with the overall system.

Scheduled jobs employ kinodb's built-in 'Actions' processing functionality, enabling access to the full range of kinodb's functionality and ensuring complete integration with the overall system.

Actions
actions content card
Actions are kinodb's version of procedural code... but with a difference. Rather than being standard textual code, compiled into an executable form before running, each line of code contains links to each entity to which it refers. As an intrinsic part of the overall model of the system, Actions have full knowledge of all aspects of the application's data structures, and changes to the data model are immediately reflected in the processing performed by the actions that use it.
The referential linking of application components is employed throughout the model containing the application's definition. This leads to one of the most significant aspects of the model-driven approach: at all times the developer can determine every use of any component of the design. This allows in-depth analysis of the impact of any proposed change before it is made, meaning that changes can be made quickly and safely.

Actions provide a database-independent way of performing a range of data processing and other tasks required to implement the rich functionality of an enterprise application.

Actions provide a database-independent way of performing a range of data processing and other tasks required to implement the rich functionality of an enterprise application.

Change control
change control content card
kinodb's sophisticated change management functionality allows changes made in development environments to be aggregated within a master repository and then propagated to test and production environments when required.
Each change made to any component of the application can be tracked back to the change set of which it is a member.
The entire history of every entity is maintained within the system, offering an unparalleled level of auditability.

kinodb's change management functionality allows us to maintain client-specific variants of the Investment Manager package, each derived from, and receiving changes from, the common core model. This gives our clients flexibility in the functionality that they request from us, without creating what would otherwise be a massive change management problem in any other technology.

kinodb's change management functionality allows us to maintain client-specific variants of the Investment Manager package, each derived from, and receiving changes from, the common core model. This gives our clients flexibility in the functionality that they request from us, without creating what would otherwise be a massive change management problem in any other technology.

Outage Management
outage management content card
Given that the entire definition of each application is maintained as a model within a metadata repository, the process of updating test or production environments during an outage is quick, simple and robust.
Outages can be scheduled in advance, with the system automatically managing the pausing of scheduled jobs, warning users, preventing new transactions applying changes and restarting once completed. This means that even a major application update can be accomplished with minimum impact to both users and support staff.

Having the entire application managed as a single model greatly eases the outage management process, as all of the updates to the system are delivered as a single change set, with their application being fully managed by the kinodb deployment framework.

Having the entire application managed as a single model greatly eases the outage management process, as all of the updates to the system are delivered as a single change set, with their application being fully managed by the kinodb deployment framework.

Logging
logging content card
All kinodb applications come with flexible logging capabilities built in. An administrator can quickly investigate user activities (sessions, browser types, summary of activities) and can configure the system to record activities in specific areas of the system in great detail. Summary performance metrics are available instantly at any time and detailed performance metrics, down to individual SQL statement performance, are also available.

As kinodb generates all of the SQL required for even the most complex application, administrators generally don't need to involve themselves with investigations of SQL statements. But if they do, there's an immediately available capability to analyse the (potentially thousands of) SQL statements executed within a particularly complex report or processing function.

As kinodb generates all of the SQL required for even the most complex application, administrators generally don't need to involve themselves with investigations of SQL statements. But if they do, there's an immediately available capability to analyse the (potentially thousands of) SQL statements executed within a particularly complex report or processing function.

Performance Monitoring
performance monitoring content card
In-built performance monitoring functionality is delivered with every kinodb application. This is effectively a small set of tables and associated processing that can be used to perform a standard set of tests used to deliver an overview of processor, disk storage and network speeds. These tests can be run automatically at preset intervals (using the scheduled job functionality) in order to build up a profile of system performance over time. So if there appears to be a change in performance, or if the system is relocated to another hardware or database platform, you can compare current performance with historical performance.

Isolating the underlying cause of a change in the performance of a complex system can be daunting, but kinodb's inbuilt performance monitoring capabilities are there all the time and can be used when a problem is encountered to diagnose issues.

Isolating the underlying cause of a change in the performance of a complex system can be daunting, but kinodb's inbuilt performance monitoring capabilities are there all the time and can be used when a problem is encountered to diagnose issues.

Outbound Email
outbound email content card
kinodb supports outbound emailing, with the content of the email being derived from application data, for instance by running a report and then including that as the text of the email. Emails may also contain URLs enabling access to any screen within the application - for instance an email might be sent to notify a user of the need to give their approval within the application, and a link provided to enable them to directly access the form where they are able to do this.
All emails are logged within the system and can be audited by an appropriately authorised administrator.

Emails can be sent by kinodb applications for a number of reasons: as a part of a subscription model, where users have requested notification of new data or changes to existing data; as part of workflow applications where users might need prompting to perform actions within the system, or as part of an escalation process.

Emails can be sent by kinodb applications for a number of reasons: as a part of a subscription model, where users have requested notification of new data or changes to existing data; as part of workflow applications where users might need prompting to perform actions within the system, or as part of an escalation process.

Inbound email
inbound email content card
kinodb's inbound email functionality allows the application of rules to incoming emails. These can apply pattern matching to various components of the mail such as the addressee, sender, subject line, body text and so on. It's therefore possible to implement sophisticated routing of emails based on various criteria, the end result being a system that files all incoming content appropriately.

We use email in corresponding with clients about support issues. All incoming emails are filed by support issue reference, the sender and the product to which the issue relates. It means that anyone can get a full view of the history of an issue immediately, which is really helpful.

We use email in corresponding with clients about support issues. All incoming emails are filed by support issue reference, the sender and the product to which the issue relates. It means that anyone can get a full view of the history of an issue immediately, which is really helpful.

PDF Generation
pdf generation content card
As an open standard, PDF files are a pragmatic way of transmitting data outside the system. kinodb supports the generation of PDF files at the application server, either on the request of the user or on a scheduled basis (for instance to run a report, PDF it and then to email it to a list of recipients).

The ability to produce PDFs means that data within the system can be extended to those who don't have direct access - for instance for the production of formal letters to those outside the organisation.

The ability to produce PDFs means that data within the system can be extended to those who don't have direct access - for instance for the production of formal letters to those outside the organisation.

Debugger
debugger content card
Any complex system may exhibit performance problems or unexpected behaviour. Using kinodb, any appropriately authorised user can investigate all aspects of the application's behaviour, from analysing the queries generated to produce a complex report to monitoring the execution of a scheduled task - all in the running application.

Performance analysis, breakpoints, step execution of actions, recording and analysis of SQL statements and more are all available to the developer if required.

Performance analysis, breakpoints, step execution of actions, recording and analysis of SQL statements and more are all available to the developer if required.

Bootstrap
bootstrap content card
Using Bootstrap for client presentation allows developers to adopt a 'mobile first' approach without affecting the user experience for desktops and laptops. Screens automatically adapt to a variety of screen sizes providing an intuitive and consistent user interface.

Creating a user interface that will work across browsers, and on a range of devices, is made simple by the use of the Bootstrap theme. Integration of Bootstrap's styles and components with the kinodb report design tools allows sophisticated interfaces to be developed without the developer writing a single line of HTML or CSS.

Creating a user interface that will work across browsers, and on a range of devices, is made simple by the use of the Bootstrap theme. Integration of Bootstrap's styles and components with the kinodb report design tools allows sophisticated interfaces to be developed without the developer writing a single line of HTML or CSS.