Skip navigation
Use este identificador para citar ou linkar para este item: http://repositorio2.unb.br/jspui/handle/10482/22101
Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
2016_LucasFerreiradeLima.pdf3,42 MBAdobe PDFVisualizar/Abrir
Título: Contratos REST robustos e leves : uma abordagem em design-by-contract com NeoIDL
Outros títulos: Lightweight and robust REST contracts : an approach in design-by-contract with NeoIDL
Autor(es): Lima, Lucas Ferreira de
Orientador(es): Almeida, Rodrigo Bonifácio de
Assunto: Computação orientada a serviços (SOC)
Design
Contratos REST
Data de publicação: 6-Jan-2017
Referência: LIMA, Lucas Ferreira de. Contratos REST robustos e leves: uma abordagem em design-by-contract com NeoIDL. 2016. xiii, 87 f., il. Dissertação (Mestrado em Engenharia Elétrica) — Universidade de Brasília, Brasília, 2016.
Resumo: 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.
Unidade Acadêmica: Faculdade de Tecnologia (FT)
Departamento de Engenharia Elétrica (FT ENE)
Informações adicionais: Dissertação (mestrado) — Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Elétrica, 2016.
Programa de pós-graduação: Programa de Pós-Graduação em Engenharia Elétrica
Licença: A 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.
DOI: http://dx.doi.org/10.26512/2016.07.D.22101
Aparece nas coleções:Teses, dissertações e produtos pós-doutorado

Mostrar registro completo do item Visualizar estatísticas



Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.