Return to search

Contratos REST robustos e leves : uma abordagem em design-by-contract com NeoIDL / Lightweight and robust REST contracts : an approach in design-by-contract with NeoIDL

Dissertação (mestrado)—Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Elétrica, 2016. / Submitted by Fernanda Percia França (fernandafranca@bce.unb.br) on 2016-10-04T19:34:39Z
No. of bitstreams: 1
2016_LucasFerreiradeLima.pdf: 3499026 bytes, checksum: deed5aff55581af6d3b7be795b2e8143 (MD5) / Approved for entry into archive by Raquel Viana(raquelviana@bce.unb.br) on 2017-01-06T19:20:46Z (GMT) No. of bitstreams: 1
2016_LucasFerreiradeLima.pdf: 3499026 bytes, checksum: deed5aff55581af6d3b7be795b2e8143 (MD5) / Made available in DSpace on 2017-01-06T19:20:46Z (GMT). No. of bitstreams: 1
2016_LucasFerreiradeLima.pdf: 3499026 bytes, checksum: deed5aff55581af6d3b7be795b2e8143 (MD5) / A demanda por integração entre sistemas heterogêneos fez aumentar a adoção de soluções baseadas em computação orientada a serviços -- SOC, sendo o uso de serviços Web a estratégia mais comum para implementar serviços, com a adoção crescente do estilo arquitetural REST. Por outro lado, REST ainda não dispõe de uma notação padrão para especificação de contratos e linguagens como Swagger, YAML e WADL cumprem com o único propósito de descrever serviços, porém apresentam uma significativa limitação: são voltadas para computadores, tendo escrita e leitura complexas para humanos, dificultando a abordagem Contract-first, estimulada em SOC. Tal limitação motivou a especificação da linguagem NeoIDL, concebida com o objetivo de ser mais expressiva para humanos, além de prover suporte a modularização e herança. Problema. Nenhuma dessas linguagens, incluindo a NeoIDL, dá suporte a contratos robustos, como os possíveis de serem descritos em linguagens ou extensões de linguagens com suporte a Design-by-contract -- DbC, exploradas tipicamente no paradigma de orientação a objetos. Objetivos. O objetivo geral deste trabalho é investigar o uso de construções de DbC no contexto de SOC, verificando a viabilidade e utilidade de sua adoção na especificação de contratos e implementação de serviços REST. Resultados e Contribuições. Essa dissertação contribui tecnicamente com uma extensão da NeoIDL para DbC, contemplando dois tipos de precondição e pós-condição: uma básica, que valida o valor de atributos e dados de saída; e outra baseada em serviços, em que composições de serviços são acionadas para validar se o serviço deve ser executado (ou se foi executado adequadamente, em caso de pós-condições). Sob a perspectiva de validação empírica, contribui-se com dois estudos. Um primeiro, verificou os requisitos de expressividade e reuso da NeoIDL, sendo realizado no domínio de Comando e Controle em parceria com o Exército Brasileiro. O segundo, teve maior interesse na análise da percepção de utilidade e facilidade de uso das construções DbC propostas para a NeoIDL, levando a respostas positivas em termos de facilidade de uso e aceitação. ________________________________________________________________________________________________ ABSTRACT / The demand for integratin heterogeneus systems grows up the adoptions of solutions based on service oriented computing -- SOC, in special with the increasing use of the REST architectural style. Nevertheless, there is no standard way to represent REST contracts. Swagger, YAML and WADL only provide mechanisms to describe services, which leads to a relevant limitation: they are made for computers and are hard for humans to write and read. This hinders the adoption of the Contract-First approach. This limitation motivated the creation of NeoIDL language, designed with the aim to be more expressive for humans, besides providing support to modularization and inheritance. Problem. None of this specification languages, including NeoIDL, gives support to strong contracts as present in languages that supports Design-by-Contract, tipically found in the object oriented paradigm. Objetives. The main objective of this work is to investigate the use of Design-by-Contract constructions in the SOC context, checking the viability and utility of its adoption at the REST contracts specification and service implementation. Results and contributions. This master thesis contributes technically with the extention of NeoIDL towards supporting Design-by-Contract, adding to it two types of pre and post-conditions. The basic type checks the values of incoming and outgoing atributes. The service based type makes employes a kind of service composition by calling another service to check if the main service may be executed (or if it was correctly executed, in case of post-conditions). By the empirical validation perspective, this thesis contributes with two studies: the first, verifies the expressiveness and reusability requirements of NeoIDL, whitin the domain of Command and Control in colaboration with the Brazilian Army. The second study focused on the analysis of utility and easy of use perspectives of the Design-by-Contract constructions proposed. It gave us interesting answers in terms of acceptance and easy to use.

Identiferoai:union.ndltd.org:IBICT/oai:repositorio.unb.br:10482/22101
Date11 July 2016
CreatorsLima, Lucas Ferreira de
ContributorsAlmeida, Rodrigo Bonifácio de
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Repositório Institucional da UnB, instname:Universidade de Brasília, instacron:UNB
RightsA concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor com as seguintes condições: Na qualidade de titular dos direitos de autor da publicação, autorizo a Universidade de Brasília e o IBICT a disponibilizar por meio dos sites www.bce.unb.br, www.ibict.br, http://hercules.vtls.com/cgi-bin/ndltd/chameleon?lng=pt&skin=ndltd sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o texto integral da obra disponibilizada, conforme permissões assinaladas, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data., info:eu-repo/semantics/openAccess

Page generated in 0.002 seconds