3 research outputs found
Endowing NoSQL DBMS with SQL features through standard Call Level Interfaces
To store, update and retrieve data from database management systems (DBMS), software architects use tools, like call-level interfaces (CLI), which provide standard functionalities to interact with DBMS. However, the emerging of NoSQL paradigm, and particularly new NoSQL DBMS providers, lead to situations where some of the standard functionalities provided by CLI are not supported, very often due to their distance from the relational model or due to design constraints. As such, when a system architect needs to evolve, namely from a relational DBMS to a NoSQL DBMS, he must overcome the difficulties conveyed by the features not provided by NoSQL DBMS. Choosing the wrong NoSQL DBMS risks major issues with components requesting non-supported features. This paper focuses on how to deploy features that are not so commonly supported by NoSQL DBMS (like Stored Procedures, Transactions, Save Points and interactions with local memory structures) by implementing them in standard CLI
Extensão de propriedades SQL a SGBD NoSQL através de call level interfaces
Mestrado em Engenharia de Computadores e TelemáticaOs arquitetos de software usam ferramentas, tais como Call Level Interfaces
(CLI), para guardar, atualizar e retirar dados de Sistemas de Gestão
de Bases de Dados (SGBD). Estas ferramentas estão desenhadas para efetuarem
a junção entre os paradigmas de Base de Dados Relacional e da
Programação Orientada a Objetos e fornecem funcionalidades padrão para
interagir com SGBD. No entanto, a emergência do paradigma NoSQL, e particularmente
de novos fornecedores de SGBD NoSQL, leva a situações onde
algumas das funcionalidades padrão fornecidas por CLI não são suportadas.
Isto deve-se normalmente à distância entre o modelo SQL e NoSQL, ou devido
a restrições de design. Assim, quando um arquiteto de sistema precisa de
evoluir, nomeadamente de um SGBD relacional para um SGBD NoSQL, tem
de ultrapassar as dificuldades que emergem por existirem funcionalidades não
suportadas pelo SGBD NoSQL. Não só isso, mas as CLI costumam ignorar
políticas de controlo de acesso estabelecidas e, portanto, programadores de
aplicações têm de dominar as ditas políticas de maneira a desenvolverem
software em concordância com elas. Escolher o SGBD NoSQL errado pode
levar a problemas de grandes dimensões quando as aplicações pedem funcionalidades
não suportadas ou a que não têm acesso.
Esta tese foca-se em implementar funcionalidades que não são comummente
suportadas por SGBD NoSQL, tais como Stored Procedures, Transações,
Save Points e interações com estruturas de memória local, através de uma
framework baseada numa CLI padrão. O modelo de implementação de funcionalidades
é definido por módulos da nossa framework, e permite a criação
de sistemas distribuídos e tolerantes a falhas, que simulam as funcionalidades
anteriormente referidas e abstraem as funcionalidades da base de dados
subjacente de clientes. Também temos como objetivo integrar a nossa
framework com trabalho anterior, a S-DRACA, uma arquitetura dinâmica e
segura de controlo de acesso para aplicações relacionais, onde as permissões
são definidas como sequências de expressões create, read, update e delete.
Com esta integração, conseguimos fornecer Role-Based Access Control e
outras funcionalidades de segurança a qualquer tipo de SGBD. Desenvolvemos
várias formas de utilizar cada componente (localmente ou distribuído)
e a framework está construída de forma modular, o que permite aos vários
componentes serem utilizados individualmente ou em grupo, assim como
permite o acrescento de funcionalidades ou SGBD adicionais por administradores
de sistema que queiram adaptar a framework às suas necessidades
particulares.To store, update and retrieve data from database management systems
(DBMS), software architects use tools, like call level interfaces (CLI), which
provide standard functionality to interact with DBMS. These tools are designed
to bring together the relational database and object-oriented programming
paradigms, but the emergence of the NoSQL paradigm, and particularly
new NoSQL DBMS providers, leads to situations where some of the standard
functionality provided by CLI are not supported, very often due to their
distance from the relational model or due to design constraints. As such,
when a system architect needs to evolve, namely from a relational DBMS to
a NoSQL DBMS, he must overcome the difficulties conveyed by the features
not provided by the NoSQL DBMS. Not only that, but CLI usually forsake
applied access control policies. As such, application developers must master
the established policies as a means to develop software that is conformant
with them. Choosing the wrong NoSQL DBMS risks major issues with applications
requesting non-supported features and with unauthorized accesses.
This thesis focuses on deploying features that are not so commonly supported
by NoSQL DBMS, such as Stored Procedures, Transactions, Save
Points and interactions with local memory structures, through a framework
based in a standard CLI. The feature implementation model is defined by
modules of our framework, and allows for distributed and fault-tolerant systems
to be deployed, which simulate the previously mentioned features and
abstract the underlying database features from clients. It is also our goal to
integrate our framework with previous work, S-DRACA, a dynamic secure
access control architecture for relational applications, where permissions are
defined as a sequence of create, read, update and delete expressions. With
the integration, we can provide dynamic Role-Based Access Control and
other security features to any kind of DBMS. We developed several ways
of using each component (locally or distributed) and the framework is built
in a modular fashion, which allows several components to be used individually
or together, as well as extra features or DBMS to be added by system
administrators that wish to adapt the framework to their particular needs