• Nenhum resultado encontrado

Abordagens baseadas em Model Checking

Apesar da t´ecnica de verifica¸c˜ao baseada em model checking ter sido desenvolvida inicialmente para a an´alise de projetos de hardware e protocolos de comunica¸c˜ao, a veri- fica¸c˜ao de sistemas de software tem se mostrado um campo atrativo para a aplica¸c˜ao desta t´ecnica. Uma ´area de software que tem explorado sua aplica¸c˜ao, devido `a sua natureza distribu´ıda e com forte conota¸c˜ao na perspectiva do controle, ´e a composi¸c˜ao de servi¸cos web.

Os trabalhos empregando model checking para verificar propriedades das composi¸c˜oes de servi¸cos web tem apresentado uma diversidade de formalismos usados para expressar o modelo do sistema. Dentre estes formalismos, as redes de Petri [55] tem sido empregadas para modelar a perspectiva de controle em processos de neg´ocios, workflows e composi¸c˜oes de servi¸cos web [63, 64, 65]. Explorando as propriedades estruturais e comportamentais das redes de Petri, ´e poss´ıvel verificar propriedades das composi¸c˜oes de servi¸cos web, como por exemplo, deadlock-free, liveness, reachability e boundness. As v´arias d´ecadas de pesquisa na ´area de redes de Petri tem gerado um significativo n´umero de ferramentas para o emprego de model checking baseado em redes de Petri.

Em [66], os autores exploram as t´ecnicas estruturais das redes de Petri para verificar propriedades comportamentais de composi¸c˜oes de servi¸cos web. As propriedades com- portamentais verificadas s˜ao denominadas compatibilidade fraca (quando a composi¸c˜ao ´e deadlock-free), compatibilidade (quando a composi¸c˜ao ´e deadlock-free e livelock-free) e,

compatibilidade forte (quando a composi¸c˜ao ´e compat´ıvel, tem garantia de termina¸c˜ao e

n˜ao possui atividades “mortas”). A verifica¸c˜ao realizada n˜ao considera as propriedades n˜ao-funcionais dos servi¸cos e tamb´em n˜ao usa dados ou informa¸c˜oes descritas semantica- mente.

Os autores em [67] prop˜oem uma linguagem de modelagem baseada em pi-calculus, denominada BP-calculus. A defini¸c˜ao formal da composi¸c˜ao de servi¸cos (expressa em

BP-calculus) e a propriedade a ser verificada (expressa em pi-logic [68]) s˜ao passados

para a ferramenta HAL. A ferramenta realiza a verifica¸c˜ao formal de sistemas modelados em pi-calculus. Caso a propriedade n˜ao seja satisfeita, a ferramenta retorna um contra- exemplo, na forma de um trace de execu¸c˜ao, que ocasionou a falha na verifica¸c˜ao da propriedade. A partir deste trace de execu¸c˜ao, o projetista pode corrigir o problema e submeter novamente a composi¸c˜ao para ser verificada pela ferramenta.

Petri colorida [70], denominado Semantic Web Services Coloured Petri Net (SWSCPN), para verificar a corre¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos. O modelo permite expressar as rela¸c˜oes l´ogicas entre os sub-processos da composi¸c˜ao e verificar a corre¸c˜ao do modelo por meio do emprego de algoritmos de verifica¸c˜ao aplic´aveis `a rede de Petri colorida. Os algoritmos propostos visam verificar as propriedades de reachability e bound-

ness, al´em da consistˆencia semˆantica dos parˆametros dos servi¸cos compostos. Entretanto,

a consistˆencia semˆantica verificada n˜ao se refere `a an´alise de conceitos definidos em uma ontologia, mas simplesmente a tipos de dados convencionais.

Em [71], os autores prop˜oem uma ferramenta para modelar e verificar formalmente composi¸c˜oes de servi¸cos web. A ferramenta permite que o projetista construa graficamente o processo, o qual ´e expresso como uma open workflow net [72]. A open workflow net permite modelar o envio de mensagens ass´ıncronas. O processo modelado pelo projetista ´e convertido para a linguagem SMV, requerida pelo model checker NuSMV. Em rela¸c˜ao `as propriedades a serem verificadas, o model checker NuSMV requer que estas sejam expressas em l´ogica temporal [51]. O model checker NuSMV ´e executado a fim de verificar se o modelo satisfaz a propriedade requerida.

O trabalho descrito em [73] aborda o problema da verifica¸c˜ao de composi¸c˜ao de servi¸cos atrav´es da modelagem da composi¸c˜ao com a linguagem de especifica¸c˜ao formal LOTOS [74]. Os autores prop˜oem o mapeamento de cada padr˜ao de fluxo de controle [75] para a linguagem LOTOS. A verifica¸c˜ao que propriedades (expressas em l´ogica temporal) s˜ao satisfeitas pelo modelo da composi¸c˜ao ´e realizada automaticamente atrav´es do uso do model checker CADP [76].

No trabalho apresentado em [77], os modelos de processos OWL-S s˜ao traduzidos para a linguagem PROMELA4 e ent˜ao executados diversos tipos de verifica¸c˜ao usando o

model checker SPIN. Entretanto, na tradu¸c˜ao do modelo de processo para a linguagem

PROMELA n˜ao s˜ao consideradas as pr´e-condi¸c˜oes e os efeitos.

O trabalho apresentado em [78] prop˜oe o mapeamento dos padr˜oes de workflow para a linguagem PROMELA, a qual ´e usada como linguagem de especifica¸c˜ao para o model checker SPIN [79]. Como a maioria das ferramentas de verifica¸c˜ao baseadas em model checking, as propriedades s˜ao expressas atrav´es de f´ormulas de alguma variante da l´ogica temporal, neste caso, da l´ogica temporal linear [52]. A abordagem proposta neste trabalho foi avaliada atrav´es da especifica¸c˜ao e verifica¸c˜ao de processos de neg´ocios relacionados a dois cen´arios cl´assicos descritos em [2]: Loan Approval e Travel Agency.

4Process

A estrat´egia de verifica¸c˜ao proposta em [80] transforma os processos de neg´ocio em modelos PROMELA, os quais s˜ao simulados pelo model checker SPIN [81] a fim de ve- rificar propriedades expressas em L´ogica Temporal Linear. A transforma¸c˜ao mapeia os tipos semˆanticos (conceitos) usados no processo de neg´ocio para tipos de PROMELA, en- tretanto, os relacionamentos hier´arquicos entre conceitos (relacionamento IS-A) n˜ao s˜ao considerados na transforma¸c˜ao.

A proposta apresentada em [82] trata da verifica¸c˜ao de propriedades de servi¸cos web semˆanticos descritos em OWL-S, tomando como base para tal verifica¸c˜ao o modelo de processo do servi¸co. O modelo de processo ´e traduzido para um conjunto de processos CSP (Communicating Sequential Process) [83], considerando sua descri¸c˜ao IOPE e o fluxo de dados entre os subprocessos. Com base nessa tradu¸c˜ao, ´e empregado o model

checker PAT (Process Analysis Toolkit) [84] para verificar propriedades como deadlock- free, divergˆencia e reachability.

2.3

Conclus˜oes

Este cap´ıtulo apresentou os aspectos te´oricos que fundamentam o desenvolvimento do tema de pesquisa abordado nesta tese, assim como uma revis˜ao da literatura abordando os trabalhos direcionados para a quest˜ao da verifica¸c˜ao de composi¸c˜oes de servi¸cos web.

Os aspectos te´oricos descritos neste cap´ıtulo est˜ao relacionados a duas ´areas de pes- quisa que tem sido amplamente estudadas nas ´ultimas d´ecadas: i) representa¸c˜ao de co-

nhecimento e ii) verifica¸c˜ao formal de programas.

A representa¸c˜ao de conhecimento por meio de formalismos l´ogicos (como a l´ogica des- critiva), provˆe os mecanismos necess´arios para a representa¸c˜ao de estado empregada na abordagem de verifica¸c˜ao funcional das composi¸c˜oes de servi¸cos web semˆanticos. Tamb´em s˜ao amplamente explorados os servi¸cos de inferˆencia providos pelos mecanismos de ra- cioc´ınio subjacentes `as bases de conhecimento formalizadas em l´ogica descritiva.

Outra ´area servindo como base te´orica para a pesquisa desenvolvida nesta tese ´e a de verifica¸c˜ao formal de programas, mais especificamente a l´ogica de Hoare. Este formalismo ´e empregado como base para o desenvolvimento do sistema de dedu¸c˜ao permitindo verificar propriedades de composi¸c˜oes de servi¸cos web semˆanticos.

A partir da revis˜ao da literatura apresentada neste cap´ıtulo, pode-se observar que o problema da verifica¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos tem sido abordado

atrav´es da representa¸c˜ao do modelo da composi¸c˜ao em distintos formalismos e empregadas t´ecnicas correlatas para raciocinar sobre o problema da verifica¸c˜ao das propriedades do modelo.

Como destacado em [85], o m´etodo mais empregado para a verifica¸c˜ao de composi¸c˜oes de servi¸cos web ´e o model checking, devido ao fato de ser particularmente adequado para a verifica¸c˜ao de sistemas distribu´ıdos compostos por m´ultiplos componentes que interagem atrav´es da troca de mensagens, onde a composi¸c˜ao de servi¸cos web se encaixa perfeita- mente. Entretanto, [80] destaca a capacidade limitada das ferramentas de model checking (como no caso da linguagem PROMELA e do model checker SPIN) para representar a

rela¸c˜ao hier´arquica entre conceitos ontol´ogicos. Outro aspecto observado nas abordagens

de verifica¸c˜ao de composi¸c˜oes de servi¸cos web ´e que as propriedades verificadas, em geral, se restringem a propriedades gen´ericas [82] [69] [77] [86] (como por exemplo, deadlock-

free), negligenciando a verifica¸c˜ao do aspecto funcional das composi¸c˜oes de servi¸cos web.

A l´ogica de Hoare tamb´em tem sido empregada na verifica¸c˜ao de corre¸c˜ao de com- posi¸c˜ao de servi¸cos web [56, 57, 58]. Entretanto, estes trabalhos tem se concentrado na verifica¸c˜ao de composi¸c˜oes de servi¸cos web sint´aticos, i.e., n˜ao consideram servi¸cos web descritos semanticamente atrav´es de conceitos ontol´ogicos.

A revis˜ao da literatura realizada n˜ao permitiu constatar a existˆencia de uma abor- dagem baseada na l´ogica de Hoare para raciocinar sobre composi¸c˜oes de servi¸cos web semˆanticos que empregue uma linguagem de asser¸c˜ao baseada em l´ogica descritiva para expressar as especifica¸c˜oes de corre¸c˜ao parcial. Os autores em [87] destacam que o em- prego de formalismos mais expressivos, como a l´ogica descritiva [32], para expressar as anota¸c˜oes semˆanticas nas atividades de workflows ´e um tema de pesquisa a ser explorado. Esta combina¸c˜ao da l´ogica de Hoare e a l´ogica descritiva apresenta uma perspectiva interessante e promissora para raciocinar sobre a corre¸c˜ao de composi¸c˜oes de servi¸cos web semˆanticos, pois a verifica¸c˜ao ocorre dentro de um mesmo framework l´ogico (ambos servi¸cos web semˆanticos e especifica¸c˜oes de corre¸c˜ao parcial s˜ao expressos em l´ogica des- critiva), sem a necessidade de mapear o problema para outro formalismo, o que poderia impor eventuais restri¸c˜oes nas capacidades de racioc´ınio.

Documentos relacionados