Publicado em:
A experimentação computacional trouxe avanços para quase todas as disciplinas da ciência moderna. Melhorias em análise de dados, simulação, geração e validade de hipóteses foram cruciais para várias conquistas recentes. Para aprimorar a estrutura de computação atual, a tecnologia de workflow tem sido explorada para isolar o pesquisador dos detalhes da execução em ambientes distribuídos complexos.
A infra-estrutura computacional atual de suporte a ciência surgiu de ambientes onde computadores de alto desempenho residiam em ambientes controlados, sendo o acesso remoto gerenciado crucial para a utilização da comunidade científica. Tornou-se eficiente em escalabilidade e em compartilhamento distribuído, onde temos atualmente as grades e os sistemas peer-to-peer. Porém, com o passar dos anos, avanços na infra-estrutura de hardware não refletiam com o mesmo impacto na produção científica. O volume de informações produzido e a rapidez com que novos dados eram adquiridos entraram em contraste com o número aproximadamente constante de cientistas em atividade. Logo, novas soluções mais automáticas se tornaram necessárias. O argumento é que ao capturar análise científica explicitamente em estruturas de dados declarativas conhecidas como workflows será facilitado o desenvolvimento de novas ferramentas que permitam aos cientistas lidar com a enorme quantidade de dados produzidas pelos recursos computacionais. Outro dividendo desejável será a facilidade de reprodução de processos científicos complexos, algo que atualmente não é fácil já que a coordenação da execução geralmente não é centralizada, envolvendo vários pesquisadores, cada um com sua própria fonte de dados.
Aplicações científicas podem ser muito complexas, unindo artefatos de software pertencentes a diferentes gerações de tecnologia. É comum encontrar tais aplicações sendo realizadas através de linguagens de scripting que especificam os dados e programas a serem executados, escalonando recursos computacionais e a movimentação de dados. Essa abordagem tem suas desvantagens. Primeiro, modificações são custosas e propensas a erro. Segundo, scripts precisam de intervenção humana para informar localização de dados e realizar a gerência de execução. Terceiro, falhas de execução precisam de intervenção manual para recuperação. Quarto, mudanças de recursos ou fontes de dados precisam de modificações extensas nos scripts. Quinto, a quantidade de código para lidar com informações sobre o estado da execução é grande. Por último, o pesquisador precisa aprender a programar nessas linguagens. Workflows surgem como um profundo aprimoramento dos scripts tradicionais. Eles representam declarativamente os componentes ou códigos que precisam ser executados em uma aplicação complexa, assim como as dependências de dados entre esses componentes.
O sistema Pegasus gerencia o mapeamento e a execução de workflows em recursos compartilhados distribuídos que podem ser altamente heterogêneos. Utiliza descrições de requisitos de cada um dos componentes e descobre máquinas disponíveis no ambiente que satisfazem os requisitos. Leva em consideração tempos de fila ao escolher entre recursos adequados e agrupa tarefas de workflow em um único trabalho para melhorar o desempenho da execução. Também gerência novos dados gerados movendo-os para a próxima tarefa que irá usá-los e registrando-os em catálogos. Faz uso de gerenciamento de réplicas. Inclui diversos algoritmos para otimizar a seleção de recursos não apenas baseado no desempenho das tarefas mas também no diminuição do tempo de fila e movimentação de dados. Outra técnica de otimização é a eliminação de tarefas do workflow se os dados a serem produzidos já existem no ambiente.
Taverna é um sistema voltado para workflows de bioinformática. Fornece um framework para integração de componentes e isola os usuários da diversidade de mecanismos de acesso (Web Services, Java RMI, REST). Possui uma linguagem de definição simples e intuitiva. Um desafio para esse tipo de serviço é a inexistência de descrição semântica para os dados de saída e entrada. Para superar tal carência, workflows podem incluir alguns passos para conversão de dados. O ambiente FreeFluo é utilizado para executar os workflows, sendo que tal ambiente possui um sistema de recuperação de falhas embutido.
Podemos resumir os benefícios chave dos workflows em:
Automação da execução: gerência de dados e execução são lidados de maneira automática, incluindo mecanismos de recuperação de falhas.
Gerência de recursos distribuídos: seja submetendo trabalhos para máquinas remotas ou invocando serviços de terceiros, workflows gerenciam computações distribuídas.
Gerência de computações paralelas: paralelismo é representado do grafo de fluxos de dados.
Exploração sistemática do espaço de parâmetros.
Gerência de evolução das aplicações: aplicações em workflow são modulares por projeto, logo a evolução da aplicação é mais gerenciável.
Armazenamento do histórico de execução.
Reprodutibilidade de alta fidelidade com baixo custo.
A ciência cada vez mais caminha para uma visão complexa de "sistemas de sistemas", onde a interdisciplinaridade é regra, não exceção. Ampla escala significa aumentar a precisão ou resolução de uma solução para um determinado modelo físico. Amplo escopo significa aumentar a complexidade física do modelo de problema. Na interdisciplinaridade, temos uma prioridade para amplo escopo em contraste com ampla escala, que tem tem sido a maior motivação para avanços em infra-estrutura. As novas complexidades para essa mudança de paradigma não são atendidas pelas soluções tradicionais de aumento de poder de processamento e armazenamento do hardware. As novas preocupações são a integração de aplicações e recursos entre si. O comportamento, geralmente ligado a aplicações, é definido pelo nível de conhecimento disponível. Os mecanismos são importantes para implementar os comportamentos, porém são irrelevantes para a definição de tarefas do sistema, pois a escolha do mecanismo não afeta o comportamento do sistema.
A camada de conhecimento de um sistema inteligente está relacionada com a caracterização do sistema em termos de suas respostas para requisições ou objetivos e qual conhecimento é utilizado para atingi-los. Em contraste, a camada simbólica está ligada a implementação dos mecanismos de conhecimento e raciocínio que são usados para explorá-lo. A capacidade dos sistemas de workflow em mapear e executar workflows está ligada com a arquitetura no nível simbólico. A camada de conhecimento de um sistema de workflow estaria ligada aos tipos de tarefas que podem ser alcançadas pelo cientistas.
Os seguintes níveis de abstração estão presentes na especificação de workflows:
Execução: especifica recursos de execução.
Computação: especifica passos computacionais.
Dados: dados de entrada.
Método: processos de alto nível.
Resultados: produtos desejados.
Níveis com identificadores mais altos utilizam informações de níveis inferiores. O nível 1 corresponde a linguagens de scripts. Taverna e Pegasus são capazes de definir workflows de nível 2 e 3. Quanto maior o nível, menor é a quantidade de informações que o usuário deve informar sobre a infra-estrutura. Sistemas que processam workflows de nível 5 são capazes de responder perguntas de alto nível, semelhantes aos questionamentos entre seres humanos. A camada de conhecimento engloba os níveis de 3 a 5. A camada simbólica trata dos dois níveis inferiores. O objetivo é desenvolver sistemas que recebem workflows e requisições descritas nos níveis mais altos e sejam capazes de automatizar a elaboração dos workflows nos níveis mais baixos. Os níveis mais altos dizem respeito aos comportamentos que o sistema pode exibir e o conhecimento necessário para atingir tais comportamentos. Considerando a camada de conhecimento, desconsideramos a programação paralela e os sistemas distribuídos, sendo relevante considerara inteligência artificial como capacitadora de novas habilidades.
Wings é um sistema de workflows que recebe descrições abstratas de análises do usuário e utiliza conhecimento sobre o projeto do experimento, componentes, dados e workflows existentes para elaborar, validar e gerar automaticamente workflows que possuem o detalhamento necessário para execução no sistema Pegasus. Wings assume que todos os componentes, dados e suas propriedades podem ser organizados em hierarquias e possuem restrições associadas a seu uso adequado. Wings usa raciocinadores OWL para descobrir se certo componente pode ser usado para processar um conjunto de dados com determinadas propriedades, se é possível para um componente gerar dados com características específicas e para verificar se os dados podem fluir entre dois componentes de acordo com suas restrições. Se um cientista está criando um workflow interativamente, Wings verifica que todos os fluxos de dados é consistente com as restrições do componentes. Wings também pode selecionar dados de entrad a obedecendo as restrições expressadas no workflow e se várias bases satisfazem as restrições, vários workflows podem ser gerados. Além disso, também é possível orientar a definição do workflow através de restrições nos dados de saída.
As vantagens de uma camada de conhecimento em sistemas workflow são as seguintes:
Automatização da geração de workflow e da verificação repetitiva de restrições: durante a geração de workflows, um algoritmo pode formular centenas de buscas sobre componentes e dúzias de buscas para verificar restrições sobre dados. Um sistema com mais conhecimento pode automatizar essas tarefas.
Exploração sistemática do espaço de projeto do experimento: como o resultado é informado com mais detalhes semânticos, o sistema pode vasculhar quais possíveis experimentos chegariam ao mesmo objetivo.
Validação de workflows: a partir de um rascunho de workflow, o sistema pode verificar se os resultados seriam coerentes.
Geração automática de meta-dados para novos produtos: já que o sistema possui descrições semânticas das transformações realizadas nos dados, ele pode utilizar tais descrições para qualificar as propriedades de seus novos produtos de dados.
Garantias maiores de boa proveniência dos dados: o sistema pode incluir conhecimento sobre workflows bem formados já conhecidos previamente que podem ser reutilizados sobre novos dados.
Reprodutibilidade correta e reuso: as restrições dos componentes e dados de um workflow podem ser checados para garantir seu reuso correto.
Outras possibilidades para melhoria da geração automática de workflow incluem : decomposição hierárquica de tarefas, seleção entre implementações de software de componentes baseada em recursos de execução disponíveis e a seleção dinâmica de componentes baseada em informações obtidas da execução de passos anteriores.
Workflows devem ser objetos de discussão científica, e sua descrição deve ser usada para capturar formalmente um novo método ou processo de análise descoberto durante projeto e testes detalhados. Para adquirir tal importância, descrições de workflow devem se tornar mais próximas da camada de conhecimento e assim mais representativas das preocupações científicas do que detalhes de baixo nível. Uma área relacionada e importante de pesquisa futura baseada na camada de conhecimento é o aprendizado através da utilização de workflows com o objetivo de melhorar e adaptar o comportamento do sistema. Não será necessário supor que os usuários definam modelos reutilizáveis manualmente. Um sistema poderia aprender modelos reutilizáveis observando regularidades e generalizando relatórios de execução provenientes de uma comunidade de pesquisadores. Pode ser imaginado um futuro onde o aprendizado de workflows levaria a novas descobertas científicas feitas pelo sistema.
Os humanos não devem ser gargalos para avanços científicos quando tarefas rotineiras podem ser automatizadas. Workflows podem ser utilizados para automatizar processos para descoberta heurística e detecção de padrões. Através da geração e eliminação sistemática de hipóteses, workflows podem explorar fenômenos cada vez mais complexos. Workflows para detecção de padrões e descoberta devem ser desenvolvidos para processar grande quantidade de dados e extrair fenômenos de interesse potencial. Workflows também pode servir de base para o desenvolvimento de interfaces de interação (portais, aplicações GUI, etc) dinâmicas e mais adequadas para as exigências dos nossos desafios da ciência moderna.
Comentários: Artigo interessante. Acho que a autora conseguiu formalizar bem o que já foi atingido por ambientes de workflow, além de levantar o que pode ser aprimorado nesses sistemas com o auxílio de uma camada de conhecimento. Das perspectivas mais interessantes, acho que a idéia de que o sistema pode aprender e criar novos workflows que levem a descobertas inovadores parece ser o mais interessante.
Post a Comment
Nenhum comentário:
Postar um comentário