📜 ⬆️ ⬇️

Hivext: Web Services Platform

Hivext Technologies

We continue to acquaint Habr's readers with the development in the field of platform building applications. Refreshing memory, we recall that Hivext is a web services platform for web applications, the purpose of which is to provide a set of services for the full and convenient development of Web, Desktop and Mobile applications.

In this article we will cover the topic of architecture, what the platform represents and how it should look like according to the developers, we tried to answer these questions in the form of a block diagram, which has already appeared in the report on the platform at CodeCamp 2009.
')
Also in this article we will review and tell about the main changes and improvements since the last publication of the article. Two “tasty” services were added to the platform.

At the moment we have implemented a set of the most important services, which makes up most of the basic capabilities of the platform. But about them a little bit later. Initially, we consider the platform architecture.

Schematic representation of the platform on the web


Common scheme

Internal Hivext Network

DBMS servers - application databases, storage of types, objects and other data.
Application servers - computing resources, business logic support for applications, services, application file resources.
Web services servers are platform services divided by namespaces (users, data, security, development, storage).
www-server project - documentation, feedback from the developers.

External network

Developers - creating new applications, expanding platform services.
Netizens - audience using web applications.
External www-servers - application resources and data can be placed (duplicated) on external servers.
Desktop applications - can exchange data via services or store data remotely in a database (a single write / read interface simplifies the exchange / storage).
Mobile devices (portable devices) - applications use platform power to solve tasks set by the developer, which will allow creating more functional applications with minimal costs.

Design features


It’s necessary and sufficient to start working with the platform.
Ready-made applications can be hosted on any hosting, can be run locally, or it can be a desktop application. Thus, the platform provides complete freedom of action regarding the location of the entry point into your application.

On the documentation server there is a more detailed description (ello world doc.hivext.ru/index.php/We are starting_development ) the order of actions that must be done at the beginning of developing applications based on Hivext paltform.

Major Additions / Changes


At the next stage of development, the platform was supplemented with the following features:

Total, in aggregate, the following services are currently implemented:

The work of the services was designed taking into account both their joint and separate use. For example, many session methods can be decoupled from mandatory user identification (an example of the Picture Gallery application (more later in the article), where the Structures service is completely untied from the Identification and Authentication service, which allows users to interact with the service without mandatory registration and authentication).

Let us dwell on two new services, Structures and Access Control.

Service Structures

The structure service allows you to flexibly manage the database, create tables, fields with an indication of the type, make entries in the tables, and carry out associations between the data. The service is based on ORM technology (Object-relational mapping, a programming technology that links databases with the concepts of object-oriented programming languages, creating a “virtual object database”). This allows you to maximally abstract from the DBMS and cost the logic of the application based on objects.

The structure service contains its own SQL like processor for structured queries. All SQL queries are divided into criteria, which eliminates the possibility of malicious injections. In addition, another interesting query language is implemented - JSONQL. Query conditions by criterion are formed in the form of a JSON string. For example: {name: {like: ['Bublik', 'Marcipan']}}.

The Access Control service is closely associated with the service of structures, which allows you to set access rights to types and objects.

Service Access Control

The service is based on two different access control systems Role-grained rights and the discretionary system based on lists (Access Control List - ACL). The service integrates these systems into a flexible tool. You can use both role-based methods for setting rights and ACL methods. Role-based differentiation is more suitable for a preliminary description of access policies for groups (guests, users, administrators, etc.). Access control based on ACLs is more convenient for connecting a newly created object to a small group of specific users). In most cases, it is sufficient to describe the access policies through Roles. In any case, when searching for a particular right, the system goes from private to general (that is, the access rights established for specific user connections with the object than the rights set for groups).
As a result, we have a very flexible system of access rights.

Summarize


With the addition of the two services described above, the platform now allows additional:

On the basis of the platform created a test application example "Gallery of pictures." The implementation of such an application, using the available services, is as simple and clear as possible.

doc.hivext.ru/index.php/Javascript. Gallery - step-by-step tutorial "How to create a gallery": the generation of identifiers, the creation of types, setting access rights and the final code. What is remarkable most of the work is done through the API Console, without programming.
code.hivext.ru/examples/js/gallery is the gallery of images itself, working on the services of the platform.
Still virgin gallery screenshot.
Gallery Preview

Current status and development directions


At the recently held in Kiev conference CodeCamp 2009 a report was presented about Hivext. The students were pleasantly surprised and intrigued by the proposed approach to building applications. Judging by the large number of common and personal questions, developers liked the concept of the platform.
In the next two weeks, it is planned to launch a private beta version of the service, which will be announced later. You will be able to personally evaluate the simplicity and at the same time the power of the concept of the Hivext platform. In the future we plan to maximally stabilize the work of current services, as well as add some more very important and necessary services. What kind? We will find out soon.

Platform documentation
API Console (it is also possible to register and “pohimicht” with the services of the platform)
And finally, the forum forum.hivext.ru is open - write, we will be glad to communicate, all questions will be followed by prompt answers.
All the best.

Source: https://habr.com/ru/post/56312/


All Articles