• Nenhum resultado encontrado

Coreografia de fluxos de trabalho científicos para computação em grades

N/A
N/A
Protected

Academic year: 2017

Share "Coreografia de fluxos de trabalho científicos para computação em grades"

Copied!
88
0
0

Texto

(1)
(2)
(3)

Orientador: Renato Antnio Celso Ferreira

COREOGRAFIA DE FLUXOS DE TRABALHO

CIENTÍFICOS PARA COMPUTAÇO EM GRADE

Dissertação apresentada ao Programa de

Pós-GraduaçãoemCiêniadaComputação

da Universidade Federal de Minas Gerais

omo requisito parial para a obtenção do

graudeMestreemCiêniadaComputação.

(4)

Todos os direitosreservados.

de Souza, André Cardoso

Coreograa de Fluxos de Trabalho Cientíos para

Computaçãoem Grade/ André Cardoso de Souza. Belo

Horizonte, MG,2009

xvi, 70f. : il. ;29m

Dissertação (mestrado) Universidade Federalde Minas

Gerais

Orientador: Renato Antnio Celso Ferreira

1.Grades Computaionais. 2.Fluxos de Trabalho

Cientíos. 3. Gereniamentode Fluxos de Trabalho.

(5)

Quando a seretaria doCurso forneer esta folha,

eladeve ser digitalizada e armazenadano disoem formato gráo.

Se voê estiver usandoo pdflatex,

armazene o arquivo preferenialmenteem formato PNG

(oformato JPEG épior neste aso).

Se voê estiverusando olatex (não o pdflatex),

terá que onverter o arquivo gráopara o formato EPS.

Emseguida, aresentea opção approval={nome do arquivo}

(6)
(7)

Em primeiro lugar, agradeço a Deus por se fazer presente em minha vida e me fazer

alançar oque minha mente nuna foi apaz de sonhar. Tués o dono de tudo isso.

Agradeço aos meus pais e irmãos pelo inentivo e suporte que sempre me deram,

peloapoioe preoupação, peloarinho evalorização.

Agradeço aos meus parentes e amigos, que dividiram omigo feliidades e

preou-pações, dentro efora dauniversidade.

Agradeço ao meu orientador, Renato, por me dar oportunidade de relizar este

trabalho eme guiarduranteessa aminhada.

Agradeço a todos os demais que ontribuíram para que eu onluísse mais essa

(8)
(9)

As grades omputaionais são um ambiente de omputação distribuída amplamente

utilizado. Utilizadaspredominantementeemambientes aadêmiosede pesquisa

ien-tía, asgradesimpulsionaramaolaboraçãoentre gruposde pesquisamuito distantes

geograamente e permitiram que instituições olaborassem em projetos de âmbito

naional, ontinental e global. Dentre as grades existentes, têm-se destaado aquelas

ujopropósitoériarumambientepara apesquisa naáreamédiae/ouimpulsioná-la.

Umexemploimportantede taltipode gradeéoaGrid,uma graderiadapara

impul-sionar apesquisa sobre oâner. Aoredor de uma gradeomo oaGrid,omunidades

ientías sãoformadasenovasdemandassurgem. Umadas prinipaisdemandas

atu-ais noaGrid é odesenvolvimento de uma ferramenta que auxilieospesquisadores na

utilizaçãode uxosdetrabalhoientíos,quesão sequêniasomplexasde tarefasque

utilizamdadoseserviços disponíveisnagrade. Amde supriraneessidadeda

omu-nidade de usuários do aGrid de uma ferramenta de auxílio à utilização de uxos de

trabalho ientíos, oautor desta dissertação desenvolveu o aGrid horeography

Sys-tem (aOS). Tal sistema permite que um ientista utilize uma desrição, em formato

bemdenido, de um uxo de trabalhopara riá-lo, exeutá-loemonitorá-lo. Entre os

resultados alançados,destaam-se: oemprego de oreograa para exeução de uxos

de trabalhoientíos, odesenvolvimento de meanismos de segurança integrados aos

(10)
(11)

Computational Grids are a broadly used distributed omputing environment. They

are used mainly in aademi environments and sienti researh and have improved

the ollaborationof researh groups in projets deployed in national, ontinental and

global levels. Among existing Grid environments, those seeking to reate or improve

an environment for researhin medialsienes are being given a lotof attention. An

important example of suh a type of Grid environment is aGrid, whih was reated

to improve sienti researh on topis related to aner. In a Grid environment like

aGrid, ommunities are built and new needs arise. One of the main needs of aGrid

is the development of a tool for helpingresearhers to use sienti workows, whih

are omplexsequenes of tasksbuilt ontop of data and servies available inthe Grid.

To meet the need of the ommunity of users of aGrid for a tool tohelp inthe use of

sienti workows, theauthorof this dissertationdeveloped theaGrid horeography

System(aOS).Thedevelopedsystemenablesasientisttoreate,exeuteandmonitor

a sienti workow based on a desription of the workow in a well-dened format.

The main results of this work are: the use of horeography for exeuting sienti

workows, thedevelopmentofseuritymehanismsintegratedtothosealreadyexisting

(12)
(13)

1 Introdução 1

1.1 ProblemaAbordado . . . 4

1.2 Objetivos . . . 5

1.3 PrinipaisResultados . . . 7

1.4 Organização dadissertação . . . 8

2 Visão geral da arquitetura 9 2.1 Revisão de oneitos básios . . . 9

2.2 aGrid . . . 14

2.3 Visãogeral da arquitetura . . . 16

2.4 Sumário . . . 18

3 Trabalhos relaionados 19 3.1 Grades omputaionais . . . 19

3.2 Linguagens para desrição de uxos de trabalho ientíos . . . 20

3.3 Sistemas de gereniamento de uxos de trabalhoientíos . . . 22

3.4 Sumário . . . 24

4 Coreograa de uxos de trabalho para omputação em grades 25 4.1 Serviço de suporte à exeução . . . 26

4.1.1 Instânias de estágios . . . 26

4.1.2 Instânias de uxo de trabalholoal . . . 30

4.2 Serviço de gereniamentode uxos de trabalho. . . 32

4.2.1 Instânia de uxo de trabalho . . . 32

4.3 Interfae om ousuário . . . 33

4.3.1 Desrição de um uxo de trabalhoientío . . . 33

4.4 Meanismos para invoações seguras . . . 35

4.5 Sumário . . . 38

(14)

5.3 Ambiente de testes . . . 43

5.4 Sumário . . . 43

6 Avaliação experimental 45 6.1 Perda de desempenho imposta pelo aOS . . . 45

6.2 Custo omputaionaldariação de um uxo de trabalho . . . 49

6.3 Sumário . . . 52

7 Conlusões 53 7.1 Considerações nais. . . 53

7.2 Trabalhos futuros . . . 54

A Utilização do aOS 57 A.1 Pré-requisitos para utilização . . . 57

A.2 Compilação einstalação . . . 58

A.3 Criação dadesrição de um uxo de trabalho . . . 59

A.4 Instaniação e exeução . . . 59

B Esquemas da desrição de um uxo de trabalho ientío 61

(15)

1.1 Diagrama de um uxo de trabalhoientío . . . 2

1.2 Exeução de uxos de trabalhosegundo o esquema de orquestração . . . . 3

1.3 Exeução de uxos de trabalhosegundo o esquema de oreograa . . . 4

2.1 Invoação de um serviço Web usando mensagem SOAP . . . 10

2.2 Invoação segura de um serviço Web . . . 11

2.3 Delegaçãode uma redenial via aGrid CredentialDelegation Servie . . . 12

2.4 Interação entre os serviços doaOS para riação de um uxo de trabalho . 16 2.5 Fluxos de trabalho são ontrolados pelo aOS através de ontextos dos serviços Web omponentes . . . 17

4.1 Relaionamentosentre oserviço de suporte àexeução e seus ontextos . . 27

4.2 Diagrama dos estadosde uma instâniade estágio . . . 29

4.3 Diagrama dos estadosde uma instâniade uxo de trabalholoal . . . 31

4.4 Relaionamentosentre oSG, seus ontextos e oSE . . . 32

4.5 Interaçõesexistentes nos meanismos de segurança doaOS . . . 36

6.1 Diagrama dos estágiosdo TMA . . . 46

6.2 Diagrama douxo de trabalhoutilizadono segundo experimento . . . 49

B.1 Esquema dadesrição de um uxo de trabalhoientío . . . 62

(16)
(17)

6.1 Desrição de ada estágio doTMA . . . 47

6.2 Conguração dos experimentos realizados para estimar a perda de

desem-penho imposta pelouso doaOS . . . 47

6.3 Temposobservados para exeução doTMA usando o aOS e sem o uso de

ferramenta de auxílioà exeução . . . 48

6.4 Tempodeorrido naexeução das prinipais operações para riação de um

uxo de trabalhoientío atravésdo aOS. . . 51

6.5 Tempodeorrido nainvoaçãodeumaoperação. Forammedidosostempos

(18)
(19)

Introdução

As grades omputaionais,tambémonheidas omo Grids, são um ambientede

om-putação distribuída amplamente utilizado. Uma grade omputaional é onstituída

de reursos omputaionais, muitas vezes no estado-da-arte e geograamente

distri-buídos, e a omuniação entre seus elementos é feita predominantemente através da

Internet. Esse tipodeambientedistribuídotêmsidoestudado,desenvolvidoeutilizado

hámaisdeumadéada, baseando-seiniialmentenotrabalhopubliadoporIanFoster

e CarlKesselmanem[Kesselman e Foster,1998℄. Atualmente,asgradessão utilizadas

nos mais diversos ramos da iênia, omo: Computação, Físia, Mediina, Geologia e

Meteorologia, entre outros.

Utilizadas predominantemente em ambientes aadêmios e de pesquisa ientía,

as grades impulsionaram a olaboração entre grupos de pesquisa muito distantes

geograamente e permitiram que instituições olaborassem em projetos de âmbito

naional, ontinental e global. Projetos omo GriPhyN [Deelman etal., 2004℄,

my-Grid[Stevens et al.,2003℄eaGrid[Saltz et al.,2006℄foramriadostendoomonúleo

a implementação de uma grade sobre a qual pesquisadores de diferentes instituições e

áreasdaiêniapodemolaborardeváriasformas. Dentreessasformasdeolaboração,

destaam-se: o ompartilhamento de dados, a utilização de reursos omputaionais

de outrasinstituiçõespara arealizaçãode experimentosin silio,adisponibilizaçãode

serviços de análise de dados e a omposição de serviços para exeução de seqüênias

omplexas de tarefas.

Dentreasgradesexistentes,têm-sedestaadoaquelasujopropósitoériarum

am-biente para a pesquisa na área média ou impulsioná-la. O aGrid [Saltz etal.,2006℄

é uma grade riada para estimular e impulsionar a pesquisa sobre o âner e tópios

relaionados na área de Biomediina. O aGrid faz parte do aBIG (aner

Biome-dial Informatis Grid) [Kakazu et al.,2004℄, um projeto que abrange todos os EUA.

(20)

pesquisa na área de Biomediina utilizando grades omputaionais. O projeto

OBI-Grid[Konagaya,2002℄,queabrangetodooJapão,tambémévoltadoparapesquisaem

Biomediina.

Aoredordeumagradeomoasitadasaima,omunidadesientíassãoformadas

enovas demandassurgem. Dentrodo aGrid[Saltz et al.,2006℄,por exemplo,

ientis-tas exeutam suas tarefas diárias segundo proessos formados, muitas vezes, por um

onjunto de dados sobre o qual uma adeia de tarefas são realizadas. Como exemplo,

um ientista pode aessarum bano de dados de imagensmédias,seleionar um

on-junto de imagens segundo erto ritério, extrair araterístias de teidos e omparar

tais araterístias om outras imagens de referênia. Muitas das atividades

otidia-nas de um ientista estão implementadas noaGrid, o que permite que sequênias de

tarefas realizadas por ientistas sejam exeutadas usando os reursos da grade. Tais

sequênias de tarefas são hamadas de uxos de trabalhoientíos. Um uxo de

tra-balho ientío, ou apenas uxo de trabalho, pode ser representado por um grafo no

qual os vérties, também hamados de atividades ou estágios, representam fontes de

dadosoutarefas aseremexeutadas sobreosdadoseasarestasrepresentamas

depen-dêniasde dados existentes nasequênia de tarefas, onforme ilustradonaFigura1.1.

O aumento da utilização de uxos de trabalho no aGrid tornou neessária a riação

de uma ferramenta queauxiliasse os ientistas a utilizar uxos de trabalho.

Figura 1.1. Diagrama de umuxode trabalho ientío

Ferramentasde auxílioàutilizaçãodeuxosde trabalho,tambémonheidosomo

sistemasdegereniamentode uxosdetrabalho,podemexeutaruxosdetrabalho

se-gundo dois esquemas prinipais: orquestração e oreograa. O primeiro é semelhante

à estratégia omumente utilizada por um ientista, que onsiste, para ada tarefa,

(21)

outra tarefa. A utilização de um elemento entral que ontrola a exeução de ada

tarefa e intermedia todas as transferênias de dados dene o esquema de

orquestra-ção[Ardissonoet al.,2007℄,onformeilustradonaFigura1.2. Noasodaorquestração,

o elementoentralé um pontode ontenção quandouma quantidade grandede dados

é movimentada, poisada dado émovimentado duas vezes, om exeção dos dados de

entrada da primeira tarefa e os dados de saída da última. O segundo esquema,

o-nheido omo oreograa, onsiste em ongurar ada tarefa para que seja exeutada

independentemente e seus dados de saída sejam enviados para o destino sem atuação

de um elemento entral [Ardissono etal.,2007℄. Ao exeutar um uxo de trabalho

segundo o esquema de oreograa, ada dado é movimentado apenas uma vez, o que

evitaasperdasde desempenhodevidoàstransferênias dupliadasdedadosrealizadas

aousar orquestração,enãoháontençãonoelementoentral. Aexeuçãodeum uxo

de trabalhosegundo o esquema de oreograa é ilustradanaFigura 1.3.

Figura 1.2. Exeução deuxos detrabalho segundooesquema deorquestração

A utilização de serviços om aesso restrito também torna a segurança um fator

importante para a utilização de uxos de trabalho ientíos. Frequentemente,

servi-ços quedisponibilizamdadosondeniais,omoregistrosde paientesde umhospital,

restringem oaesso aum grupode pesquisadores ouinstituiçõespara preservara

on-denialidade dos dados. A forma reomendada de aessar tais serviços é através da

utilização de redeniais, que são haves riptográas que identiam um usuário

numa grade [Butler etal., 2000℄. Uma redenial é utilizada para riptografar a

o-muniação om o serviço e permitir ao serviço identiar o dono da redenial para,

então, autorizar seu aesso. Ospesquisadores utilizamserviçosom aessorestritonas

(22)

Figura 1.3. Exeução de uxosde trabalho segundo oesquema de oreograa

utilizaçãode uxos de trabalho ientios seja apaz de aessar serviços seguros que

porventura façamparte de um uxo de trabalho.

A m de suprir a neessidade daomunidade de usuáriosdo aGrid de uma

ferra-mentadeauxílioàutilizaçãodeuxos detrabalhoientíos,oautordestadissertação

desenvolveu o aGrid horeography System (aOS). Tal sistema permite a

automati-zação da utilização de uxos de trabalho através de uma desrição em formato bem

denido. O aOS também é apaz de prover segurança no aesso a serviços e fontes

de dados om aesso restrito, uma araterístia que não é enontrada em nenhum

outra sistema de gereniamento de uxos de trabalho. Sistemas que auxiliam na

ri-ação, exeução e monitoramento de uxos de trabalho, omo o aOS, são onheidos

omosistemasdegereniamentode uxosdetrabalho[vander Aalst e vanHee, 2002℄.

O desenvolvimento do aOS favoreeu a interoperabilidade através da adoção de

vá-riospadrões, omo: SOAP [W3C, 2007a℄, XPath [W3C, 2007℄, X.509 [ITU-T, 2008℄,

WS-Notiation[OASIS, 2006a℄.

Orestantedesteapítuloéorganizadoomosegue. ASeção1.1desreveoproblema

tratado neste trabalho. A Seção 1.2 disorre sobre os objetivos que foram propostos.

Osprinipaisresultadosalançadossão desritosbrevementenaSeção1.3. ASeção1.4

desreve aorganização dotexto desta dissertação.

1.1 Problema Abordado

Há vários aspetos motivadores do trabalhodesrito na presente dissertação. Aqueles

onsideradosmais relevantes serãoabordadosnestaseção. Oproblema abordadoneste

(23)

de uma iniiativa de âmbito naional do governo ameriano que tem omo objetivo

o desenvolvimento e aprimoramento onstante de uma grade omputaional que seja

utilizada porientistas da área médiaem pesquisas sobre o âner. O aGrid é

utili-zado pormuitas instituiçõese, por isso, possui uma omunidade grande de usuários e

tambémmuitosserviçosdeaessoadadoseanálisededados. OaGridéutilizadoom

frequênia por ientistas que, após planejarem análises a serem feitas sobre um

on-junto de dados, utilizam seus serviços para transformar dados, analisar os resultados

e, possivelmente, submeter os dados resultantes a novas etapas de transformação até

que informações onsideradas relevantes sejam obtidas. Os serviços onstituintes do

aGridsão desenvolvidos omoserviços Web,o quefazomque oaGridseja

onside-rado uma arquitetura orientada aserviços - nasiglaem inglês,SOA: Servie Oriented

Arhiteture. Taltipode arquiteturatêmsido utilizadoporpesquisadores parariação

de sequêniasomplexasde tarefasonheidasomouxosdetrabalhoientíos. Tais

uxos detrabalhosãoproessosexeutadosomfrequêniaporpesquisadores, masseu

desenvolvimento é,muitas vezes, prejudiado pelafalta de espeialistas em

Computa-ção queauxiliemospesquisadores ariaruxos de trabalhoquerealizemasatividades

desejadas. Uma das abordagens para soluionar esse problema é desenvolveruma

fer-ramenta que auxilie pesquisadores a riar, exeutar e monitorar uxos de trabalho,

diminuindo o esforço exigido de um pesquisador para riar um uxo de trabalho que

realize as atividades de sua pesquisa. Tais ferramentas são onheidas omo sistemas

degereniamentodeuxosdetrabalhoientíoseváriosdestesjáforamdesenvolvidos

(leia a Seção 3.3e referênias para detalhes).

Ademandaporumsistemade gereniamentodeuxos detrabalhoqueseja

ompa-tívelom aarquitetura do aGrid eatenda àsneessidades espeías daomunidade

de pesquisadores usuáriosdoaGridéoproblema abordadonotrabalhodesritonesta

dissertação. As neessidades espeías mais relevantes são: o emprego de oreograa

paraexeução de umuxo detrabalhoeaintegraçãoomosmeanismosdesegurança

do aGrid,que inluema utilizaçãode redeniais para invoação de serviços.

1.2 Objetivos

Oprinipalobjetivodotrabalhodesritonestadissertaçãoéautomatizarautilizaçãode

uxos de trabalho por parte dos pesquisadores pertenentes à omunidade do aGrid.

Mais espeiamente, oauxílioaopesquisadordeve ser feitoatravés de um sistemade

gereniamentodeuxosdetrabalhodesenvolvidoomestem. Algumasaraterístias

(24)

Oprimeiroobjetivodotrabalhoériarumserviçoapazdeinstaniaradaelemento

de umuxo de trabalho,riandoatividades exeutáveis eongurando a omuniação

entre atividades que possuem dependênias de dados. Dene-se uma atividade do

uxo de trabalho, também hamada de estágio, omo uma tarefa exeutada omo

parte de um uxo de trabalho. Este primeiro serviço deve realizar a oreograa do

uxo de trabalho. Um aspeto importanteda utilização da oreograa é a realização

de transferênias de dados entre estágios diretamenteentre os mesmos, o quese opõe

aoaso emqueuma úniaentidadeentraliza todasas transferênias,onheido omo

orquestração [Ardissonoetal., 2007℄.

A apaidadede utilizar redeniaispara ongurar invoações de serviços seguros

também deve estar presente, visto que muitos serviços de aesso a dados no aGrid

possuem aesso restrito por meanismos de segurança. A restrição de aesso pode

existir,porexemplo,para ontrolaroaesso adados ondeniaisoupara mensurar a

utilização, por um usuário, de um reurso omputaional ontrolado por otas. Com

estasdemandasatendidas, esse primeiroserviço éapazde riar,ongurar eexeutar

um uxo de trabalho.

Também é um objetivo importante do trabalho a riação de uxos de trabalho a

partirde uma desrição simplesque possa ser onstruída om pouas diuldades por

pesquisadores. Taldesriçãodeveespeiar: osserviçosomponentes, osrequisitosde

segurançade ada serviço, aloalizaçãoemqueada estágioserá exeutado (note que

váriosestágiospodemexeutaromesmoserviçoomentradasdiferentes),asredeniais

utilizadaspara aesso aos serviços seguros e as entradas/saídas do uxo de trabalho.

Umserviço deve,então, ser desenvolvido parareeber adesrição itadae,

utilizando-se das apaidades do primeiro serviço, riar e ongurar ada elemento do uxo de

trabalho. A exeução também deve ser iniiada por esse segundo serviço e este deve

permitirque aevolução daexeução sejamonitorada.

Atendidas as demandasdesritas nestaseção, pesquisadores usuáriosdoaGrid

se-rão apazes de riar e exeutar uxos de trabalho om um esforço menor do que o

exigido atualmente, mesmo sem o auxílio de espeialistas em Computação. Tarefas

realizadas om frequênia, omo transformaçõese análises de dados, serão failitadas

e agilizadas devido à automatização que pode ser feita através de um sistema de

ge-reniamento de uxos de trabalho. A existênia de um sistema de gereniamento de

uxosde trabalhodesenvolvidoespeiamenteparaaomunidade doaGridtambém

impulsiona o desenvolvimento de uxos de trabalho sostiados e a própria

olabo-ração entre instituições, que poderão ompor uxos de trabalho a partir de serviços

disponibilizados porvárias instituições mais failmente. Além disso, omo o aGrid é

(25)

do aGrid e permite que quaisquer serviços que obedeçam aos padrões internaionais

sejam utilizadosem uxos de trabalho.

1.3 Prinipais Resultados

Dentre os resultados alançados, aqueles onsiderados mais relevantes serão desritos

brevementenestaseção. Oprinipalresultadodotrabalhodesenvolvidoéaonstrução

de um sistema de gereniamento de uxos de trabalho ientíos, ao qual foi dado o

nomedeaOS.Talresultado édesumaimportâniapoisonstituiasíntesedetodosos

objetivosdesritos naSeção1.2, ouseja,todas asdemandas existentes naomunidade

de usuários do aGrid quanto ao desenvolvimento e utilizaçãode uxos de trabalho e

que foraminorporadasa este trabalho.

Destaa-se o emprego de oreograa para a exeução de uxos de trabalho. Ao

implementar meanismos para tal, foi possível evitar os ustos adiionais devido a

transferênias dupliadas existentes quando estas são feitas por uma entidadeentral.

Este é um aspeto inovador do trabalho apresentado aqui, já que transferênias são

feitas seguindo o modelo de orquestração na maior parte dos sistemas de

gerenia-mento de uxos de trabalho mais utilizados [Oinn etal., 2004b, Taylor etal.,2003,

Deelman et al.,2005℄ (veja mais detalhes naSeção 3.3).

Odesenvolvimento de meanismos de segurança integrados àqueles utilizadospelo

aGrid também é um resultado importante. Muitos dos serviços Web utilizados no

aGrid provêm aesso a dados de interesse para pesquisas médias que só podem ser

aessados porpesquisadoresdevidamenteautorizados. NoaGrid,porexemplo, dados

de paientes de hospitais são utilizados em pesquisas e a violação de sua

ondenia-lidade pode gerar problemas jurídiospara osresponsáveis pelos dados. Assim sendo,

a inorporação dos meanismos para aesso seguro a serviços restritos é fundamental

para a riação de uxos de trabalhonoaGrid.

Outroresultado que mereeser menionado éo fatode o aOSpossuiruma

arqui-tetura modular e om funionalidades bem enapsuladas em serviços, o que permite

que outrasfunionalidades sejamaresidas failmente, tambémnaformade serviços.

Também foi possível riar e exeutar uxos de trabalho baseando-se numa desrição

em formato XML [W3C, 2008℄, que é um formato amplamenteonheido não só por

espeialistas em omputação, o que failita a riação de uxos de trabalho por parte

de pesquisadores. Outro resultado obtido foi a apaidade de inorporar a um uxo

de trabalhoqualquerserviço Web quepermiteser invoadoapartirde umamensagem

(26)

tante utilizados pela omunidade, omo Data Transfer Servie [Hastings, 2008℄,

a-paz de realizar transferênias de arquivosentre estágios, e Credential Delegation

Ser-vie [Langella,2007℄, importante para a manipulação de redeniais realizada pelos

meanismos de segurança do aOS. É importante menionar ainda que o usto

adii-onal da utilizaçãodo aOS para instaniar e exeutar um uxo de trabalho foi muito

baixo quando omparado ao usto de uma exeução que imita a estratégia utilizada

pelo ientista para invoar diretamente ada estágio de um uxo de trabalho, o que

orresponde aoemprego de orquestração.

1.4 Organização da dissertação

Nesta seção, é desrita a organização do onteúdo desta dissertação nos apítulos

se-guintes. Coneitos neessáriosaoentendimentodotrabalhodesritonesta dissertação,

assim omo uma visão geral daarquitetura doaOS, são apresentados noCapítulo 2.

Trabalhosrelaionadosaodesritonesta dissertaçãosão apresentadosedisutidos

bre-vementeno Capítulo 3. OCapítulo 4 desreve detalhadamente os meanismos

imple-mentados no aOS e sua arquitetura. O ambiente em que o aOS foi desenvolvido é

desrito, abordando tanto aspetos gereniais quanto operaionais, no Capítulo 5. O

Capítulo6desreve osexperimentosrealizadosutilizandooaOS,alémdeapresentare

analisarosresultados obtidos. Trabalhosque poderão sueder oapresentado aquie as

onsideraçõesnais dotrabalhosão apresentados noCapítulo 7. Por m, são listadas

(27)

Visão geral da arquitetura

Uma vez apresentadas as razões que motivaram o desenvolvimento deste trabalho e

antes de prosseguir om a desrição detalhada do que foi feito, serão apresentadas,

nesteapítulo,algumasdesriçõesedisussõesqueontribuirãoparaoentendimentodo

restantedotrabalho. Umonjuntode oneitosimpresindíveisaoplenoentendimento

do trabalho realizadoé denido na Seção 2.1. O aGrid [Saltz etal., 2006℄, grade em

uja omunidade surgiu o problema motivador dotrabalho desritonesta dissertação,

e seus serviços prinipais são desritos na Seção 2.2. Enm, a arquitetura do aOS é

desrita, emlinhas gerais, naSeção 2.3.

2.1 Revisão de oneitos básios

Nesta seção,são apresentados algunsoneitosimportantesparaoplenoentendimento

do trabalho desrito nesta dissertação. Muitos dos oneitos apresentados

orrespon-dem a elementos que fazem parte do sistema desenvolvido ou dos quais o sistema

desenvolvido depende. Será também disutida, de forma breve, a forma omo ada

oneito surgiu.

Umoneito bastanteonheidoemCiêniadaComputaçãoéaexeuçãode

opera-çõesde formaremota. A formamais simplesde realizartal tarefa onsiste nomodelo

de hamadaremotadeproedimento(RPC)[Nelson, 1981℄,quedesreveomoum

mé-todoinvoadoporumapliativopodeserexeutadoemoutroomputador. Talmétodo

remotoédenidoporumaassinatura semelhanteaqualquerproedimentoloal. Após

oRPC, tambémsurgiuum paradigmanoqualéutilizadoum par de apliações

onhe-idas omo liente e servidor, através das quais é possível que o liente exeute uma

operaçãoespeíanoservidor. ComosurgimentodaWeb, omodeloRPC deuorigem

a um modelo no qual aomuniação é realizadasobre a Web eonjuntos de métodos

(28)

pelo protoolo SOAP [W3C, 2007a℄, que dene uma mensagem de invoação de um

serviço omoum arquivoXML [W3C, 2008℄. Umamensagem SOAP ontém a

assina-tura dométodoa ser invoado no serviço Web etambém ontém osdados de entrada

em formato XML. O serviço Web, ao reeber uma mensagem SOAP e interpretá-la,

exeuta a operação orrespondente e envia os dados de saída ao hamadoromo uma

mensagem SOAP. Um onjunto de serviços Web é hospedado num servidor Web, que

tambémprovê o ambiente de exeução dos mesmos.

Figura 2.1. Invoação deumserviço Webusando mensagemSOAP

Serviços Web podem exigirque seus lientes o aessem de formasegura,

prinipal-mente quando é neessário restringir o aesso a dados ondeniais disponibilizados

atravésdo serviço ouontrolar autilizaçãode reursos ompartilhadosporum grupo.

Segundo o padrão WS-Seurity [OASIS, 2006℄, uma invoação segura utiliza um par

de haves riptográas públia/privada, hamado de redenial. O WS-Seurity

as-sume que uma redenial obedee ao padrão X.509 [ITU-T, 2008℄. Para invoar um

serviço de forma segura, são seguidas as seguintes etapas: onstrução da mensagem

SOAP,enriptaçãoouassinaturadamensagem,enviodamensagemparaoserviço,

de-odiação da mensagem no serviço, autorização ao liente para exeutar e exeução.

Deformasemelhante, oretornodainvoaçãopara olienteéfeitoomo segue: riação

da mensagem SOAP pelo serviço, odiação ou assinatura da mensagem, envio ao

liente, deodiaçãodamensagemSOAP peloliente. A formaomo érealizadauma

invoaçãosegura é ilustradanaFigura 2.2.

Épossívelaum usuário delegaratarefa de invoação de um serviço aum tereiro.

Issoé neessário, prinipalmente, quando deseja-se utilizar uma ferramenta de auxílio

e a invoação de um serviço não é feita diretamente pelo usuário, mas sim pela

fer-ramenta. No aso de um serviço sem restrições de aesso, não é neessária nenhuma

ação adiional por parte do usuário. Porém, no aso em que o serviço a ser invoado

exigeaesso seguro, é neessário que o usuário transra sua identidade eseus direitos

(29)

Figura 2.2. Invoaçãosegura de umserviço Web

válida por um período restrito e permite que outro liente seja identiado omo se

fosse odono daredenial. Dessaforma,outro liente pode aessar oserviço de forma

segura e exeutá-lo em nome do dono da redenial. Neste trabalho, o proesso de

delegação de redeniais é realizado através do aGrid Credential Delegation Servie

(CDS) [Langella,2007℄, um serviço do aGrid que permite a riação de redeniais

delegadas. Conforme ilustrado na Figura 2.3, para que uma redenial pertenente a

um usuário

A

sejadelegada a

B

,

A

deverequisitaraoCDSariaçãodeumaredenial

delegada assoiadaa

B

einformaroendereçodoCDSa

B

. Aredenialdelegadadeve

então ser reuperada por

B

junto ao CDS, que veria a identidade de

B

e entrega a

redenial delegada por

A

. Feito isso,

B

pode invoar um serviço ujo aessosó

pode-ria ser feito por

A

. É importanteressaltarque a revogação da redenial de

A

ousua

expiração invalida a redenial delegada a

B

, o que signia que

B

não poderá mais

agir emnome de

A

se a redenial de

A

tornar-se inválida. Outroaspeto importante

é a restrição douso da redenial para invoação de uma lista de serviços. A

utiliza-ção de talformade restriçãodiulta ações maliiosaspor parte de quem reebe uma

redenial delegada. Infelizmente, tal tipo de restriçãonão foi implementada no CDS

e o Globus [Foster, 2005℄ também não possui suporte a tal tipo de restrição. Assim,

usuários do aOS e serviços Web que se baseiam no Globus não poderão restringir o

uso de uma redenial delegada a uma listade serviços.

Umahamadaremotade proedimentoérealizada, geralmente, de formasínrona,

ou seja,aexeução do proedimentorequisitadobloqueiaa exeuçãodoproedimento

que o invoou. Um problema reorrente em tais asos oorre devido à longa duração

que uma exeução remota pode apresentar, o que leva a uma falha presumida pelo

liente. Umainteração assínrona é útilpara viabilizar, então, exeuções remotas que

duram um tempomuito longo. Éomum, por exemplo,em serviços Web, a existênia

de operaçõesquereebemomoparâmetro um objetoqueé utilizadoparainvoar um

(30)

imple-Figura 2.3. Delegação deumaredenial via aGrid Credential Delegation

Ser-vie

padrão internaional é o WS-Notiation [OASIS, 2006a℄). Tal meanismo tem omo

prinipalobjetivo permitir a interação baseada em eventos entre serviços Web. É

im-plementada denindo, num serviço Web, uma lista de tópios de notiação. Outros

serviçospodemadastrar-senoserviçoomoobservadoresdeumdos tópios,passando

areeberumamensagemsemprequeuma mudançaoorrernotópioobservado. Com

base em tal esquema de notiação, é possível implementar hamadas remotas

assín-ronas. Notiações também podem ser utilizadas para monitorar o estado de uma

exeução edetetar aoorrêniade falhas. Alémdisso, podem ser implementados

me-anismosde garantiadaqualidadedeserviço atravésdomonitoramentode tópiosque

armazenemindiadores daqualidade de um serviço.

Além dos apliativos que utilizam meanismos baseados no paradigma

li-ente/servidor para exeutar, total ou parialmente, utilizando reursos remotos,

tam-bém existem outros paradigmas que utilizam reursos dessa forma. Um

para-digma que difere dos demais apresentados aima é o paradigma de troa de

mensa-gens [Gropp etal.,1996℄. Tal paradigma onsiste na utilização de mensagens para

transferênias de dados entre proessos, os quais, por sua vez, proessam tais dados

e podem enviar resultados a outros proessos. O paradigma de troa de mensagens

é bastante apropriado para onstrução de apliaçõesque distribuem o proessamento

entre vários proessos que exeutam o mesmo algoritmo. É bastante omum o

desen-volvimentode apliaçõesqueutilizamtroademensagens sobreum ambienteomum

onjunto de reursos homogêneos loalizados numa únia rede loal ou que querem

garantir a exeução de seus serviços através de repliação massiva. Tal arquitetura é

onheidaomoaglomeradodeomputadoresouluster. Porhospedar-senumamesma

redeloale,poronsequênia,num mesmodomínioadministrativo,hápouas

deman-dasde segurança,omoautentiaçãoeriptograa,sobreaexeuçãodeapliaçõesnum

(31)

váriosdomínios administrativos. Tais reursos são, omumente, integrados num

ambi-ente onheido omo gradeomputaional.

As grades omputaionais têm sido utilizadas por pesquisadores para

disponibili-zar grandes quantidades de dados e exeutar proessos para transformar ou analisar

taisdados. Taisproessos são onstituídos porvários reursos disponíveisnumagrade

e, muitas vezes, são desenvolvidos em olaboração por várias instituições. O uso de

tais proessos tornou-se bastante difundido em diversas áreas da iênia e uma

de-manda por automação do uso dos mesmos surgiu naturalmente. Assim, foram

desen-volvidos modelos para representação de taisproessos. Tal representação foi

padroni-zada [OASIS,2007, W3C, 2005℄ onstituindo-se, prinipalmente, das tarefas a serem

realizadas, hamados de atividades ou estágios, e das dependênias de dados e de

ontrole entre as mesmas. Os proessos desenvolvidos sobre grades omputaionais e

representados da formadesrita aimasão hamadosde uxos de trabalhoientíos.

Além dos elementos itados,um uxo de trabalho ientío tambémpode possuir

es-truturas de ontrole, omo: (i) exeução ondiional de um onjunto de estágios, (ii)

exeução repetitiva,(iii)exeução obrigatoriamenteemparalelo,(iv) exeução

obriga-toriamente emsequênia, entre outros.

A popularização do uso dos uxos de trabalho ientíos - ou, simplesmente,

u-xos de trabalho - fez om que os mesmos fossem utilizadospor muitos pesquisadores

que não são espeialistas em Computação. Por isso, surgiu uma demanda por

fer-ramentas de auxílio ao desenvolvimento e exeução de uxos de trabalho. Várias

ferramentas de auxílio foram desenvolvidas om o objetivo de suprir tal demanda

e aram onheidas omo sistemas de gereniamento de uxos de trabalho

ientí-os [vander Aalste van Hee, 2002℄ (na sigla em inglês, WFMS). Os WFMSs podem

permitira pesquisadores que não são espeialistasem Computação: utilizarinterfaes

gráas para riar um uxo de trabalhoa partir das atividades que o ompõem,

exe-utar um uxo de trabalho, monitorar uma exeução, entre outras funionalidades. O

uso de WFMSs é bastante difundido atualmentee simplia a utilizaçãode uxos de

trabalhoevitandoqueum pesquisadorrealizeertastarefasneessárias atalutilização

e que exigem onheimento ténioemComputação.

Esforços têm sido empregados para a padronização do desenvolvimento e uso de

WFMSs. Uma das iniiativas prinipais diz respeito à forma omo um uxo de

tra-balho é representado eexeutado [Peltz, 2003℄. Os oneitos mais importantes em tal

iniiativa são as denições de orquestração e oreograa. Na orquestração, é

empre-gado um elemento entralizador que onhee o papel de todos os estágios e oordena

as ações realizadas durante uma exeução. Em partiular, tal elemento entralizador

(32)

entralizadorum ponto de ontenção quandograndes quantidades de dadossão

trans-feridos. Oemprego de orquestração paraexeuçãode um uxo de trabalhoéilustrado

naFigura 1.2. Em oposição à orquestração, na oreograa, ada estágio é informado

detodasasaçõespelasquaiseleéresponsávelnouxodetrabalho, tornando-se,então,

apazde atuar de formaindependentee olaborar para aexeução de todoo uxo de

trabalho. Empartiular,adaestágiorealizaastransferêniasneessáriasparaos

está-giosquedependemde seus dadosde saída,evitando,assim,osurgimentode um ponto

de ontenção omo o presente na orquestração de um uxo de trabalho. O emprego

de oreograa pode exigira adição de elementos extras a um uxo de trabalho a m

de fazer om que um estágio possa ser exeutado de forma independente e transferir

seus dados de saída para outro estágio. A Figura 1.3 ilustra a exeução de um uxo

de trabalhosegundo o esquema denido omo oreograa.

Na próxima seção, serão apresentadas as araterístias do aGrid e seus

servi-ços prinipais. Em seguida, a arquitetura do sistema de gereniamento de uxos de

trabalhodesenvolvidoé apresentada emlinhas gerais.

2.2 aGrid

Esta seção desreve o aGrid [Saltz etal.,2006℄, grade em uja omunidade surgiu o

problemaabordadonesta dissertação. Seus prinipaisserviços tambémserão desritos

brevemente.

O aGrid [Saltz etal., 2006℄ é uma grade omputaional riada para estimular a

pesquisa sobre o âner e tópios relaionados na área de Biomediina. Sua

arqui-tetura é baseada em serviços Web e em padrões omo Simple Objet Aess

Proto-ol (SOAP) [W3C, 2007a℄, XPath [W3C, 2007℄, Web Servies Resoure Framework

(WSRF)[OASIS, 2006b℄,WS-Notiation[OASIS, 2006a℄,X.509 [ITU-T, 2008℄,entre

outros. Possui serviçosqueprovêm funionalidadesomo: registroedesoberta de

ser-viços, padronização de estruturas de dados que representam oneitos, segurança. Os

prinipais serviços que partiipam no provimento das funionalidades serão desritos

abaixo. Além destes, serão desritos ostipos de serviços riados por usuários.

O registro e a desoberta de serviços são possíveis através do serviço de

indexa-ção[Covitzet al.,2003℄. Éreomendadoqueadaserviço doaGridregistre-seno

ser-viçodeindexaçãoamdequeoonjuntodeserviçosonheidossejaomaisabrangente

possível. No momento em que um serviço se registra, são armazenadas informações

omo: loalização do serviço, instituição hospedeira, et. O índie pode ser aessado

(33)

OutrafunionalidadeimportantenoaGridéadeniçãodeoneitosdodomíniode

apliaçõeseapadronizaçãodas estruturasde dadosqueosrepresentam. Tal

funiona-lidadepermitequeserviçosqueutilizamosmesmosoneitos, omoooneito deuma

lâminademirosópio,sejaminteroperáveisatravésdautilizaçãodamesma

representa-ção do oneito utilizado,omoimagensdigitalizadas para representar uma lâminade

mirosópio. As deniçõesde oneitos dos domíniosdas apliaçõesdoaGrid são

ar-mazenadasnoEnterpriseVoabularyServie(EVS)[Covitz etal.,2003℄. Taisoneitos

são refereniadosnaformadeanotaçõesemdeniçõesdelassesUMLorrespondentes

às estruturasde dadosquerepresentam oneitos. Taisdenições são armazenadasno

serviço hamado de aner Data Standards Repository (aDSR) [Covitz etal., 2003℄.

Assim, épossívelaosserviçosdesenvolvidos noaGridutilizarumaúniarepresentação

deoneitosrelevantesparaváriasapliaçõese,poronsequênia,sereminteroperáveis.

Os requisitos de segurança do aGrid são satisfeitos por uma infraestrutura

ha-madadeGridAuthentiationandAuthorizationwithReliablyDistributedServies

(GA-ARDS)[Langellaetal., 2007℄. DentreasfunionalidadesprovidaspeloGAARDS,duas

das mais importantes são: ogereniamentode ontasde usuáriose adelegaçãode

re-deniais. ODorian[Langellaet al.,2006℄éumserviço quepermiteariaçãodeontas

de usuário e o gereniamento de ontas registradas no aGrid. O Dorian é apaz de

riar redeniais para usuários do aGrid e armazená-las para que os usuários a

re-uperem depois, através de uma autentiação baseada em nome de usuário e senha.

A delegação de redeniais é implementada pelo aGrid Credential Delegation Servie

(CDS) [Langella,2007℄. O oneito de delegação de redeniais, bem omo a forma

om queo CDSé utilizadosão desritas naSeção 2.1.

No aGrid, serviços desenvolvidos pelos usuários podem ser lassiados em duas

ategorias: serviçosde dadoseserviçosde análise. Serviçosujafunção éproporionar

o aesso a um onjunto de dados são hamados de serviços de dados. Um requisito

destes serviços é a representação dos dados onforme a denição armazenada pelo

aDSR [Covitzet al.,2003℄. Além disso, éneessário quea reuperação de dados seja

realizadautilizandoCQL[aGrid,2007℄,umalinguagemdeonsultadesenvolvidapara

uso no aGrid. A segunda ategoria de serviços desenvolvidos pelos usuários são os

serviçosde análise. Taisserviçosproporionamaexeuçãodeproedimentosde análise

de dados. Osproedimentos preisam ser aessíveisatravés de interfaes orientadas a

(34)

2.3 Visão geral da arquitetura

Nesta seção, os serviços que fazem parte da arquitetura do aOS são desritos

resu-midamente. Os mais importantes meanismos utilizadossão itados. Alguns detalhes

sobrea implementaçãodos serviços tambémsão menionados.

Figura 2.4. Interação entre os serviços do aOS para riação de um uxo de

trabalho

A arquitetura do aOS é omposta por dois prinipais: o responsável pelo serviço

desuporteàexeução de uxosde trabalho(SE)eoresponsávelpeloserviçode

geren-iamento(SG).Oserviçode suporteàexeuçãoéresponsávelporinstaniarelementos

de um uxo de trabalho e ontrolar a exeução de ada um destes. O SE é apaz de

riar estágios, ongurá-los e exeutá-los, mas não é apaz de ontrolar um uxo de

trabalhoomo um todo. O serviço de gereniamento de uxos de trabalho é

respon-sável porinstaniar um uxo de trabalhoompleto a partir de uma desrição de seus

omponentes,entradas esaídas. Umestágio ériadoatravésde uma hamadaaoSEe

aloalizaçãoemqueomesmoéinstaniadofazpartedadesriçãodouxodetrabalho.

A riaçãode um uxo de trabalhoé ilustradana Figura2.4. Note quea interação do

usuário om o aOS é assínrona e, por isso, permite que uxos de trabalho longos

sejamexeutados semprejuízodaomuniaçãoom ousuário,quepoderiaser perdida

noaso de uma omuniação sínrona devido aotimeout daexeução das operações.

Os omponentes do aOS foram implementados omo dois Web om o auxílio

(35)

Glo-niaçãoneessáriosaoseu usonoaGrid[Saltz etal.,2006℄epossuamprotótipospara

operaçõesdenidas pelousuárioqueonstarão dainterfaedoserviço. Geralmente, as

operações dos serviços Web não possuem estado, sendo exeutadas apenas om base

nos valores de seus parâmetros de entrada. No entanto, om o desenvolvimento de

serviços responsáveis por múltiplos reursos, a gerênia de tais reursos foi

padroni-zada de formasemelhanteao padrãode projetofatory [Gammaetal., 1994℄,segundo

oqualinstânias deum objetonão sãoriadasdiretamente, masatravésde umalasse

fábria. ParaumserviçoWeb,opadrãofoihamadodeWSRF[OASIS, 2006b℄edene

omo riar um ontexto do serviço (um reurso om estado) para aessar um reurso

espeío. No aOS, os elementos de um uxo de trabalho foram representados por

ontextos dentro de ada serviço Web, onforme ilustra a Figura 2.5. Isso foi

possí-vel porque o Introdue pode tornar um serviço Web apaz de instaniar tais tipos de

reursos.

Figura 2.5. Fluxos de trabalho sãoontrolados peloaOSatravésde ontextos

dosserviçosWeb omponentes

Entre osmeanismosimplementadospeloaOS mereemdestaque aoreograade

uxosdetrabalhoeamanipulaçãoderedeniais. Aoreograafoiimplementada

atra-vés de um dos ontextos doserviço de suporte àexeução. Tal ontexto éresponsável

pelaexeução de um estágioe tambémpode ser ongurado para realizar

transferên-ias dedadosapartirdeum estágiodouxode trabalhosem atuaçãodeuma entidade

entralizadora. OaOStambémimplementameanismosqueutilizamredeniaispara

invoar serviços de forma segura. É neessário que o usuário delegue uma redenial

ao aOS, através do serviço de delegação de redeniais do aGrid [Langella,2007℄, e

(36)

2.4 Sumário

Neste apítulo, foram apresentados vários oneitos neessários ao entendimento do

trabalho desrito nesta dissertação. Também foi apresentada, de forma resumida, as

araterístiase os serviços prinipais do aGrid [Saltz et al.,2006℄. Por m, foi

des-ritaa arquitetura do sistemadesenvolvido para abordar oproblema de desenvolver e

exeutarom failidade uxos de trabalho ientíos no ambiente do aGrid. No

Ca-pítulo3,serão apresentados vários trabalhos ujotema serelaionaaoabordadonesta

dissertação. A soluçãodesenvolvidapara oproblema abordado,osistema hamadode

(37)

Trabalhos relaionados

Existem muitostrabalhos quesão relaionados de algumaformaaodesritonesta

dis-sertação. Alguns delesserãodesritos nesteapítulo. Exemplosde grades

omputaio-nais são desritos naSeção3.1. Emseguida,aSeção3.2apresenta algumaslinguagens

utilizadas para desrever uxos de trabalho ientíos. A Seção 3.3 desreve vários

sistemas de gereniamento de uxos de trabalho.

3.1 Grades omputaionais

O trabalhoapresentado nesta dissertação baseia-se, em grande parte, nos oneitos e

natenologiadas gradesomputaionais. Porisso, algumasdelasserão desritasnesta

seção.

O aGrid [Saltz etal., 2006℄ é uma grade omputaional riada para estimular a

pesquisasobreoâneretópiosrelaionadosnaáreade Biomediina. Suaarquitetura

ébaseadaemserviçosWebeinluiomponentesapazesdeproverautentiaçãoatravés

de redeniaisX.509 [ITU-T, 2008℄etransferêniasde arquivos. OsserviçosdoaGrid

obedeem a vários padrões abertos, omo SOAP [W3C, 2007a℄, WSDL [W3C, 2007b℄

e WSRF [OASIS, 2006b℄.

O projeto GriPhyN [Deelman etal., 2004℄ têm desenvolvido uma grade om o

ob-jetivo de gereniar grandes quantidades de dados, que hegam a petabytes, para a

realização de experimentos na área de Físia. Foi onstruído om auxílio das

biblio-teas do Globus [Foster, 2005℄ e também apresenta arquitetura baseada em serviços

Web. Resultados intermediários e demais tipos de dados podem ser armazenados,

manipulados e movimentados através de vários serviços implementados na grade. Os

grandesexperimentos queguiamodesenvolvimentodoGriPhyNestudamAstronomia,

deteção de ondas gravitaionaisde Einsteine partíulas daaltaenergia.

(38)

do Reino Unido e foi onstruído para prover o aesso a reursos omputaionais e

dadosapesquisadoresdaquelepaís. ÉutilizadoempesquisassobreBioquímia,Físia,

Mediina, Demograa, entre outros. Semelhantemente a outras grades itadas, os

serviçosqueompõemagradesão serviçosWeb, assimomo asinterfaesdos reursos

omputaionaisutilizados porpesquisadores emseus experimentos.

TeraGrid[Cattlet, 2005℄éumagradeomputaionalriadaparapesquisa ientía

emáreasdiversas. UtilizaasbiblioteasdoGlobus[Foster, 2005℄paraonstruira

infra-estruturaquedisponibilizaaseususuários. PodemserexeutadossobreoTeraGrid

vá-riostiposde apliações,omo: serviçosWeb,tarefas GRAM[Feller et al.,2007℄

aplia-tivosMPICH [Karonisetal., 2003℄ ePBS [Henderson, 1995℄. Transferênias de dados

podemserfeitasentreomponentesdagradeatravésdoGridFTP[Allok etal., 2002℄.

O TeraGrid têm sido utilizado por pesquisadores das áreas de Biomediina,

Astrono-mia,Químia, entre outros.

O Enabling Grids for e-Siene (EGEE) é uma grade omputaional iniiada na

Europa e utilizada em âmbito global. Pesquisadores que a utilizam são oriundos dos

mais diversos ramos da iênia, omo: Astronomia, Astrofísia, Geoiênias e

Ciên-ia da Computação. Sua infra-estrutura baseia-se no gLite [Laure et al.,2006℄, um

arabouço para riação de apliações em grade que possui uma arquitetura baseada

em serviços. O EGEE utiliza também padrões adotados internaionalmente a m de

garantir a interoperabilidade entre os diversos reursos onstituintes da grade. Entre

asfunionalidadespresentes noEGEEdestaam-semeanismosde segurançabaseados

em redeniais X.509 [ITU-T, 2008℄, assim omo armazenamento e transferênia de

arquivos.

3.2 Linguagens para desrição de uxos de trabalho

ientíos

Existem várias linguagens riadas om o objetivo de desrever uxos de trabalho

i-entíos. Neste trabalho, foi riado e utilizado um formato para desrever uxos de

trabalhoientíos, que édesrito na Seção 4.3.1. O formato para desrição utilizado

é o equivalente à serialização em formato XML do objeto desritor exigido pelo SG

para riação de um uxo de trabalho. Apesar de não ter sido riada uma linguagem

para desrever um uxo de trabalho, existem várias linguagens quepoderiam ter sido

utilizadas. A utilização do formato adotado permite que as linguagens apresentadas

sejamutilizadaspara aessar oaOS, desde quesejam implementadostransformações

(39)

algu-são desritas.

WS-BPEL[OASIS,2007℄éumalinguagemquepermitedesreverproessosde

negó-iosquerepresentamuxosde trabalhoientíoseassumeoempregodeorquestração.

Tallinguageméumpadrãojáestabeleidoquebaseia-senalinguagemXMLepermite

que sejam desritos vários elementosde um uxo de trabalho, omo: serviços a serem

invoados,transferêniasde dados, parâmetrosde entradaesaída. Tambémépossível

utilizar atividades-omoexeuçãoondiional, sequêniade operações, operações

pa-ralelas,esolhadentre umonjuntode operaçõeseexeuçãorepetitiva-paradesrever

aformaqueumuxo de trabalhodeveser exeutado. Meanismosparatratamentode

falhas tambémpodem ser desritos num doumentoWS-BPEL. Algumas ferramentas

foramonstruídaspara exeutaruxos de trabalho,tantoientíosomode natureza

omeriala partir de doumentos emonformidade om a espeiação WS-BPEL.

AlinguagemSu [Oinnet al.,2004a℄éutilizadapeloTaverna[Oinn etal., 2004b℄

omo padrão para desrição de uxos de trabalho. Sua espeiação simples de um

uxo de trabalho permite que desrições sejam riadas rapidamente e sua exeução

não seja atrasadapor esforçosempreendidos em umadesrição muitasvezes

desnees-sariamenteomplexa. Osestágios deum uxo de trabalhosão desritos porelementos

hamados proessadores em um doumento Su. Ligações de dados desrevem as

dependênias de dados entre estágios,que denotam transferênias de dados realizadas

emtempode exeução. Nãoépossívelapliartransformações, omo onsultas XPath,

aos dados de saída antes de serem transferidos de um estágio para outro. É possível

espeiariteraçõesemestágioseoordenaçãoentre estágios. A espeiaçãode

oor-denação signiaqueaexeução deum estágionão podeser iniiadaantes dotérmino

de outro,mesmo que não haja dependênias de dados entre os mesmos.

WS-CDL[W3C, 2005℄foi propostapara desrever proessosde oreograa que

en-volvem um onjunto de serviços. Permite desrever as interações entre os diversos

serviços partiipantes de um uxo de trabalhode um ponto de vista global. Seu

prin-ipal objetivo é desrever detalhadamente as interações entre serviços que pertenem

a diferentes domíniosadministrativosa m de que os mesmos sejamdesenvolvidos de

maneira independente e,ainda assim,sejam apazes de olaborar para arealização de

uma mesma tarefa. A linguagem possui suporte a atividades semelhantes às

presen-tes naespeiação doWS-BPEL,omo: sequêniade operações, operaçõesparalelas,

(40)

3.3 Sistemas de gereniamento de uxos de trabalho

ientíos

Nesta seção, são desritas algumas ferramentas existentes para gereniamento de

u-xosde trabalhoesão destaadassuassimilaridadesediferençasquandoomparadasao

aOS.Existemvários sistemasdegereniamentodeuxos detrabalho,masadisussão

realizadaaqui será restrita aos seguintes sistemas: Triana [Tayloret al.,2003℄,

Pega-sus[Deelman etal.,2005℄,Anthill[Tavares et al.,2007℄eTaverna[Oinn et al.,2004b℄.

Triana [Tayloret al.,2003℄ é um sistema de gereniamento de uxos de trabalho

quepermitea onstrução,exeuçãoe monitoramentode um uxo de trabalho. Fluxos

de trabalho podem ser onstruídos e exeutados através de uma interfae gráa. A

exeução de umuxo de trabalhousandoTriana não érestritaaosistemade exeução

desenvolvido para Triana, mas pode ser feitoutilizando-se qualquer sistema de

exeu-ção, desde que este possa ser aessado através de um Triana Controlling Servie, um

serviçoominterfaedenidaequeatuaomointermediárionaexeuçãodetarefas

ne-essáriasparaexeução de um uxo de trabalho. Triana exeutaum uxo de trabalho

por orquestração e, por onsequênia, todas as transferênias de dados são realizados

poruma entidade entralizadora.

Pegasus [Deelman et al.,2005℄ é um sistema de gereniamentode uxos de

traba-lho que realiza o mapeamento de um uxo de trabalho abstrato nos reursos de uma

grade para riar um uxo de trabalho onreto. Um uxo de trabalho abstrato é um

onjuntode tarefasinteronetadasporanaisdeomuniaçãoquedesrevemumuxo

de trabalhosem menionar osreursos omputaionais neessários para sua exeução.

Omapeamentode talonjuntonoonjuntodos nósde proessamentoexistentes numa

gradeonstitui ouxo de trabalho onreto. O sistemanão restringe a exeuçãoa um

tipode estágioapenas, onformemostradoem[Mandal etal., 2007℄. Pegasustambém

implementameanismos de reuperação de falhasepode armazenar dadosproduzidos

duranteaexeuçãodeumuxo amdequesejamutilizadosemexeuçõesposteriores.

Issooorrequando dadosutilizadosemertopontodaexeuçãode um uxo de

traba-lhoforamproduzidospreviamenteporoutro uxo eoustode uma segunda produção

dos dados émaior que ousto de reuperar dados previamenteproduzidos.

No trabalho desrito em [Tavares etal.,2007℄, é apresentado um sistema no qual

Anthill[Ferreiraetal., 2005℄,om auxíliode Mobius[Oster e Saltz,2004℄, éestendido

etorna-seapazde: riaruxosdetrabalhoapartirdeumadesriçãoemformatoXML,

exeutaruxosdetrabalhoomtolerâniaafalhaseproverarmazenamentodistribuído

(41)

onforme estabeleidopela MPI [Gropp etal.,1996℄, logoelenão éapaz de exeutar

uxosdetrabalhoformadosporserviçosWebomoosWFMSsdesritosanteriormente.

Alémdisso,Anthillfoiriadoparadarsuporteauxos detrabalhointensivosemCPU

num ambiente de aglomerado de omputadores. O modelo ltro-uxo adotado pelo

Anthillpossui algumas araterístias singulares que não são enontradas nos demais

sistemas, omo ópias transparentes de estágios e uxo rotulado, o que dá ao Anthill

a apaidadede rotearmensagens entre ópias transparentes baseando-se noonteúdo

das mensagens.

Taverna [Oinn etal., 2004b℄ é um sistema que foi riado om o objetivo de dar

suporte a uxos de trabalho daárea de Biomediina,embora não se restrinja a estes.

Seu omponenteprinipaléumainterfae gráaatravésdaqualum uxode trabalho

pode ser: desenvolvidoom o auxíliode diagramas, exeutado emonitorado. Taverna

utiliza não só serviços Web omo omponentes para riação de um uxo de trabalho

ientío, mas tambémé apazde exeutar uxos de trabalhoonstituídospor sripts

Beanshell e RShell,além de um onjunto de serviços analítiose de aesso abano de

dados disponibilizados pela omunidade de usuários. Wei Tan et al [Tan etal.,2008℄

desenvolveram umaextensãoquearesentaaapaidade dedesobrir serviços aGrid

e utilizá-lospara onstruir um uxo de trabalho, fazendo om que Taverna seja apaz

de exeutar uxos de trabalho onstituídos por serviços aGrid. Taverna é apaz de

invoardeformaseguraumaoperaçãodeumserviçoWeb,mas, paratal,requerqueas

redeniais utilizadaspara uma exeução de um uxo de trabalho sejam, sem auxílio

do sistema,enviadas àsmáquinas emque ada serviço seguro estão hospedados.

O aOS é um WFMS que utiliza oreograa para exeutar uxos de trabalho

i-entíos. Como eleevitarealizartransferênias de dadosdupliadas omo um sistema

que utilizaorquestração poderealizar, tambémevitaasperdas de desempenho

orres-pondentes. O sistema implementaum meanismo para invoar operações de serviços

Web de forma segura, utilizando redeniais delegadas pelo usuário ao aOS através

do serviço de delegação de redeniais do aGrid[Langella, 2007℄. OaOS é apaz de

inorporar a um uxo de trabalho qualquer serviço Web uja interfae seja desrita

por um doumento WSDL [W3C, 2007b℄, pois baseia-se apenas no SOAP, que é um

padrãoaberto,parainvoaroperaçõesde serviçosWeb. Nãosão implementados

mea-nismos parareuperaçãode falhase reutilizaçãode dados,meanismosesses queestão

presentes emoutros WFMSs. No entanto,o aOSfoidesenvolvidode formaquenovos

omponentes e meanismos podem ser aresentados om failidade à sua arquitetura

(42)

3.4 Sumário

Neste apítulo, foram desritos vários trabalhos que estão relaionados ou se

asseme-lham de alguma forma ao trabalho desrito nesta dissertação. As grades

omputa-ionais onsideradas mais relevantes, algumas linguagens para desrição de uxos de

trabalhoientíos e os mais importantes sistemas de gereniamento de uxos de

tra-balhoforamdesritos.

A seguir, a abordagem esolhida para o problema de riar e exeutar uxos de

trabalhono aGrid om failidade e eiênia, que onsiste na riaçãode um sistema

de gereniamento de uxos de trabalhoientíos, é desrita em detalhes no próximo

(43)

Coreograa de uxos de trabalho para

omputação em grades

Este apítulodisorresobreaabordagemutilizadaparaoproblemade riareexeutar

uxosdetrabalhonoaGridomfailidade. Talabordagemonsistenaimplementação

de um sistema, o aGrid Choreography System (aOS), que realiza todas as tarefas

neessárias para riar e exeutar um uxo de trabalho a partir de uma desrição do

mesmo. OaOSpossuiumaarquiteturaom2omponentes,implementadosatravésde

2serviçosWeb: (i)oserviçodesuporteàexeução(SE),queéresponsávelpelariação

e exeuçãodoselementosdeum uxo de trabalho,e (ii)oserviço de gereniamentode

uxos de trabalho(SG), que é responsável por interpretar uma desrição do uxo de

trabalho e riar o mesmo. A riação e exeução de um uxo de trabalho é feita pelo

SG através de hamadas ao SE, mas apenas o SG é apaz de ontrolar um uxo de

trabalhoomo um todo. OdesenvolvimentodoaOS foirealizadodentrodoambiente

de inubação de projetos do aGrid, o que exigiu que tal desenvolvimento fosse feito

em onformidade om as diretrizes estabeleidas para integração futura ao projeto

prinipal. Entre tais diretrizes destaam-se: a adoção de padrões estabeleidos, a

realização de testes automatizadosno sistema e a disponibilzação públia do

ódigo-fonte.

Nas seções seguintes, são desritos a arquitetura do aOS, os meanismos

imple-mentados para permitira invoação de serviços Web de formasegura e a interfae do

aOS om o usuário, queinlui o formato dadesrição de uxos de trabalhoutilizada

neste trabalho. A Seção 4.1desreve o serviço de suporte à exeução emdetalhes. O

serviço de gereniamento de uxos de trabalhoientíos édesrito naSeção 4.2. Em

seguida, a interfae do aOS om o usuário é desrita na Seção 4.3. Os meanismos

implementados para a utilização de serviços seguros emuxos de trabalho, dos quais

(44)

oonteúdo deste apítulo.

4.1 Serviço de suporte à exeução

Oserviçodesuporteàexeução(SE)entralizaariaçãoeonguraçãodosestágiosde

um uxo de trabalho e ontrola a exeução dos mesmos. Foi implementado omo um

serviço Web, esrito em Java om auxílio do Introdue [Hastingset al.,2007℄, apaz

de riar 2 tipos de ontexto: instânias de estágios e instânias de uxo de trabalho

loal. As instânias de estágios, desritas na Seção4.1.1, são responsáveis por invoar

um estágio de um uxo de trabalho e transferir dados a partir deste. As mesmas

estão sempre assoiadas a uma instânia de uxo de trabalho loal. As instânias de

uxode trabalholoal, desritasnaSeção4.1.2, representam oonjuntoformadopelos

ontextos que estão assoiados aos omponentes de um uxo de trabalho loalizados

nomesmo servidor Web (note que todos os omponentes do aOS são serviços Web).

As instânias de uxo de trabalho loal são também responsáveis por reuperar as

redeniais delegadas pelo usuário ao aOS, armazená-las e entregá-las às instânias

deestágio quepreisam das mesmasparainvoaruma operaçãode um serviço seguro.

Osmeanismosqueutilizamredeniaisparainvoaroperaçõesdeserviçossegurossão

detalhadosna Seção4.4.

Para instaniar um uxo de trabalhoutilizando o SE, deve-se riar uma instânia

de uxo de trabalholoal(IFTL) emprimeirolugar. Atravésda IFTL riada, podem

ser riadasasinstânias de seus estágios,onforme ilustradonaFigura4.1. Instânias

de estágiosnão podem ser riadas diretamente peloSE, poisé neessário garantir que

todas as instânias de estágio possuam uma assoiação om uma instânia de uxo

de trabalho loal. Assim, a interfae do SE possui apenas um método, responsável

pelariação de uma instânia de uxo de trabalholoal. Para exeutar os estágios, é

neessário prover àsinstânias de estágiosas entradas neessárias à exeuçãoe iniiar

a exeução de ada estágio invoando os métodos orrespondentes nas instânias de

estágio.

4.1.1 Instânias de estágios

Uma instânia de estágio é um ontexto do SE que representa um estágio do uxo

de trabalho. Uma vez assoiada a uma operação de um serviço Web, uma instânia

de estágio atua omo intermediária em todas as ações que o aOS pode realizar em

relação àquela operação. A seguir, serão desritas as araterístias presentes numa

(45)

Figura 4.1. Relaionamentos entre o serviço de suporte à exeuçãoe seus

on-textos

Uma araterístia fundamental para que a utilização de um sistema de

gerenia-mentode uxosdetrabalhosejasimpleséaapaidadedeinvoarserviçosWeb semos

lientes para aesso aos serviços, riados durante o desenvolvimentodestes. No aOS,

umainstâniadeestágiopodeinvoarqualquerserviçoWebquesejaapazdeproessar

mensagens dotipo SOAP [W3C, 2007a℄,que é um padrão aberto amplamente

empre-gado. Umainstâniade estágioéapaz deonstruir umamensagem SOAPeutilizá-la

para invoar uma operação espeía de um serviço Web. A instânia de estágio é

assoiada sempreaumaúnia operaçãoempartiulare,porisso, deve ser ongurada

om asseguintes informaçõesdaoperaçãoquesedeseja invoar: URLdoserviço Web,

nome daoperação,tipode retornoe umalistade pares

h

nome, tipo

i

orrespondente à

lista de parâmetros. Estas informações, além dos valores dos parâmetros de entrada,

são neessárias paraa riaçãodamensagem de invoação. Talapaidadefazom que

o desenvolvimento de um uxo de trabalho demande um esforço menor,mudanças na

implementaçãode um serviço aarretempouas mudanças paraqueomesmoseja

exe-utadopeloaOS,alémdajámenionadaompatibilidadeomumaquantidademuito

grande de serviços. Umainstânia de estágioé apaz de invoar tantoum serviço que

esteja no servidorWeb loalquantoemum servidor remoto,embora ainvoação loal

tenhao benefíiode evitarosustos, muitasvezesaltos, de umahamadaremotafeita

na grade omputaional.

Aexistêniadeserviçosujaexeuçãoémuitolongatornaaapaidadede exeutar

serviços de forma assínrona uma araterístia também importante. No aOS, uma

instâniade estágiopossui aapaidadede exeutarum estágioujaexeuçãoémuito

longa. O iníio de uma exeução é realizado de maneira assínrona pela operação

iniiaExeução. Durante sua exeução, a operação iniiaExeução ria um uxo de

exeução além doprinipal eretorna, mantendoo uxo de exeução seundárioainda

(46)

a notiação é interpretada por quem a reebe omo um sinal de que a hamada

assínrona foi onluída. É importante ressaltar que a invoação de uma operação de

um serviço Web em si não é neessariamente assínrona e operações que não foram

implementadas para serem exeutadas de formaassínrona utilizamum tempo limite

de espera parasaberquando uma invoaçãofalha. Para amenizar este problema,uma

instâniade estágioongura otempolimitede espera dahamadaom omaiorvalor

possível. Esta onguração permite que operações permaneçam emexeução por até

aproximadamente24 dias.

A instânia de estágio também é o prinipalresponsável pela apaidade do aOS

de utilizar oreograa para exeutar um uxo de trabalho. Ela pode ser ongurada

paratransferirosdadosdesaídadoestágiopeloqualéresponsávelparaoutrosestágios.

Mais preisamente, ela pode entregar dados para outras instânias de estágio. Como

asinstâniasdeestágiorealizamastransferêniasde dadosindependentemente, nãohá

neessidadede umelementoentralatuanteemtodasastransferêniasentreinstânias

de estágio e a oreograa é empregada ao invés de orquestração. O dado de saída

pode ser transformado antes de ser transferido, atravésda apliação de uma onsulta

XPath [W3C, 2007℄sobreeleam de obterumaparte espeía. Aonguraçãodas

transferêniasde dados que uma instâniade estágiodeverealizar onsistenuma lista

de pares formados por uma onsulta XPath [W3C, 2007℄ a ser apliada ao dado de

saídae o endereço dainstâniade estágio àqual odado resultante deve ser enviado.

Para riarumainstâniadeestágio,éneessário requererariaçãodamesmaà

ins-tâniadeuxo de trabalholoalàqualdeseja-seassoiar onovo ontexto. A operação

riaInstâniaDeEstágio é a operação a ser utilizada para tal e deve reeber a

desri-ção da instânia a ser riada onforme desrito anteriormente. Uma vez riada, uma

instâniadeestágioéonguradatantoomsua listade parâmetros,atravésda

opera-ção onguraEntradas, quanto om a desrição das transferênias de dados a realizar,

feitaatravésdaoperaçãoonguraTransporteDaSaída. Neste ponto,aonguraçãoda

operação a invoar está ompleta. Para exeutar o estágio assoiado, os valores dos

parâmetros de entrada devem ser forneidos através da operação assinalaEntrada e a

exeução deve ser iniiada através da operação iniiaExeução. Os valores dos

parâ-metros de entrada devem ser forneidos no formato XML [W3C, 2008℄, pois esse é o

formatomaisapropriadoparainlusãodeumobjetonarequisiçãoSOAP[W3C, 2007a℄

utilizadapara iniiara exeução doestágio.

Para possibilitar o monitoramento da exeução de um estágio, foi riado um

on-juntodeestadosnos quaisumainstâniadeestágiopodeestar. Assim,aadaoperação

exeutada por uma instânia de estágio, uma mudança de estado pode oorrer. Um

(47)

mos-trado naFigura4.2. É possívelmonitorarasmudançasde estadode uma instâniade

estágioatravésdenotiações, oquepossibilita,porexemplo,exeutaraçõesdeaordo

om oestadoatualde umainstâniade estágio. Umaapliaçãopode adastrar-separa

reeber notiações de uma instâniade estágio utilizandoa operação

adastraMoni-toramento.

Uma instânia de estágio também pode exeutar um estágio por várias iterações.

Isso é feito sempre que se veria que foram forneidos mais dados de entrada omo

valor de um parâmetro do que o neessário para uma exeução, em outras palavras,

é forneido um arranjo em lugar de um únio objeto. Quando isso oorre, o

está-gio orrespondente é exeutado uma vez para ada elemento pertenente ao arranjo

forneido.

(48)

4.1.2 Instânias de uxo de trabalho loal

Umainstâniade uxo de trabalholoal(IFTL) éum ontexto do SEque representa

umuxo de trabalholoal,onformedenido naSeção2.1. Talontextoé responsável

pelariação de instânias de estágioe atua também ontrolando o uso de redeniais

dentro doSE.

A riação de instânias de estágio é realizada através do método

riaInstâniaDe-Estágio onstante da interfae de uma IFTL e que tem omo parâmetro a desrição

itadana Seção 4.1.1. A partir do ontexto reém-riado, é possível ongurar e

exe-utar um estágio do uxo de trabalho loal. É importante menionar que, apesar da

deniçãopreverapenasumuxodetrabalholoalpormáquinahospedeira,oaOSnão

impõerestrições quanto aonúmero de instânias de talontexto riadas numa mesma

máquina,ouseja, umuxo de trabalhopode ter maisde uma IFTLpormáquina. Um

motivo que pode levar à riação de várias IFTLs por máquina é o balaneamento da

argaorrespondenteao ontrole das instânias de estágio.

UmaIFTLéresponsávelporreuperarearmazenarredeniais,alémdeforneê-las

àsinstânias de estágioqueasutilizampara invoarserviços de formasegura. Através

do método aresentaCredenial é possível assoiar uma redenial a uma instânia

de estágio. O parâmetro do método é, na verdade, o endereço de uma redenial

de-legada ao SE através doaGrid Credential Delegation Servie (CDS) [Langella, 2007℄

onformedisutidonaSeção2.1am de queoSEetodos osontextos riadosporele

possam identiar-see agiremnome do dono daredenial. Talendereço éutilizado,

então, pela IFTL para reuperar uma redenial do CDSe assoiá-la a uma instânia

de estágio existente. Caso uma redenial seja assoiada a vários estágios, ela é

reu-peradadoCDS apenasao fazeraprimeiraassoiaçãoeé apenasassoiada aos demais

estágios. Uma vez que uma instânia de estágio do uxo de trabalho loal requisite

umaredenial para invoar um serviço seguro, aIFTL fornee a redenial assoiada

à instânia de estágio. É possível substituir uma assoiação entre uma redenial e

um estágioporuma assoiação om outra redenial. Isso pode oorrer,por exemplo,

quandoumaredenialdelegadaestápróximade expirar. Feitaumasubstituiçãoomo

aitada, anovaredenial será forneidaemresposta às subsequentes requisições por

partede instânias de estágio.

O monitoramento do estado de ada instânia de estágio de um uxo de trabalho

loal também é responsabilidade de uma IFTL. Tal tarefa é realizada om auxílio

dos tópios de notiação disponibilizados por uma instânia de estágio, através dos

quaisépossívela uma IFTL adastrar-se,usando aoperaçãoadastraMonitoramento,

Imagem

Figura 1.1. Diagrama de um uxo de trabalho 
ientí
o
Figura 1.2. Exe
ução de uxos de trabalho segundo o esquema de orquestração
Figura 1.3. Exe
ução de uxos de trabalho segundo o esquema de 
oreograa
Figura 2.1. Invo
ação de um serviço Web usando mensagem SOAP
+7

Referências

Documentos relacionados

Numa corrida rápida, de velocidade, teria as minhas hipóteses, mas dar cinco voltas ao recinto enlameado da escola era mais apropriado para o Mário e o Xavier, por exemplo,

a) “O velho dá um passo à frente, três passos atrás, dois passos à frente” _________________. b) O velho estava desorientado

Estratégias (Plano de Ações Prioritárias): estas estratégias estão relacionadas com o crescimento da organização. Os sócios que não estivem dispostos a investir,

Os ativos financeiros disponíveis para venda são ativos financeiros não derivados que: i) o Grupo tem intenção de manter por tempo indeterminado, ii) são designados como

Epistemologicamente falando, hoje atravessamos uma crise paradigmática que tem sido problematizada por pesquisadores de diferentes matrizes teóricas, mais recentemente, com

Este cuidado contínuo com a qualidade de cada processo inerente à acção de formação é ainda reforçado com a garantia de repetição de qualquer acção de

O plug-in desenvolvido, acrescenta algumas funcionalidades à gestão de tarefas e compromissos do Outlook, com os seguintes objetivos: facilitar a gestão pessoal

À vista de tudo quanto foi dito, a forma mais adequada para compreender a questão parece ser a seguinte: (i) os direitos fundamentais são, em princípio,