Vous êtes sur la page 1sur 11

Uma abordagem da DSL Guaran

Marco Aurlio da Rocha Leite Instituto de Informtica Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal 15.064 91.501-970 Porto Alegre RS Brazil
marco.leite@gmail.com

Abstract. If a company has multiple independent systems that perform the various tasks and must be integrated in an easy and dynamic it is best to use the Guaran DSL because the software is a domain language for designing EAI systems. This language was designed with the goal of providing support for integration solutions with a high level of abstraction without worrying about technical details of the deployments. Resumo. Se uma empresa possui vrios sistemas independentes que executam as mais variadas tarefas e devem se integrar de uma maneira fcil e dinmica o melhor utilizar o Guaran DSL, pois o software uma linguagem de domnio para projetar sistemas EAI. Essa linguagem foi projetada com o objetivo de fornecer suporte a solues de integrao com um alto nvel de abstrao sem se preocupar com detalhes tcnicos das implantaes.

1. Introduo
um framework web leve para PHP (Hypertext Preprocessor) 4 e 5 ou Java (linguagem de programao), com um sistema veloz de modelos, visualizaes e controladores em que voc pode escrever a sua aplicao web de uma maneira fcil e rpida. Ela expansvel atravs de bibliotecas, e as j existentes bibliotecas do PHP j so integradas ao Guaran DSL (Domain-Specific Language), alm disso, ele tem dois editores grficos: Eclipse e o Visual Studio. O Guaran DSL fornece um metamodelo a onde suporta uma serie de conceitos aonde os programadores podem usar para elaborar as suas solues EAI (Enterprise Application Integration), devem ter solues especificas para problemas especficos de integrao. Esses modelos so grficos e permitem ter solues EAI com um nvel elevado de abstrao. O software tambm fornece um conjunto APIs (Application Programming Interfaces) aonde um programador pode usar para traduzir seus modelos para o cdigo Java. Os modelos resultantes obtidas com Guaran DSL so independentes de plataforma, os programadores no precisam ter habilidade em uma tecnologia de integrao de baixo nvel quanto for projetar as suas aplicaes, e os projetos podem ser reutilizados. O Software Guaran dividido em duas partes: o Guaran DSL e o Guaran SDK (Software Development Kit), sendo o SDK dividido em duas partes: Framework e Toolkit.

2. Guaran Software Development Kit (SDK)


Guaran SDK uma ferramenta de software Java que permite implementar e executar solues de integrao de projetos com Guaran DSL. A arquitetura do Guaran SDK est organizada em duas camadas. A primeira camada, referida como a estrutura, fornece um resumo de toda a implementao bsica dos conceitos de DSL. A segunda camada, conhecida como toolkit, fornece uma concreta implementao da estrutura, bem como, um sistema de runtime baseado em tarefas. Guaran SDK um kit de ferramentas de desenvolvimento de software que d suporte para implementar solues de integrao concebido com Guaran DSL. Guaran DSL uma linguagem especfica de domnio (DSL) para projetar EAI, em solues com um alto nvel de abstrao. A implementao desta linguagem Java fornecido pelo Guaran SDK, onde organizada em duas camadas. A primeira camada, referida como a estrutura, fornece uma implementao abstrata de todos os conceitos bsicos da DSL. A segunda camada, conhecido como toolkit, fornece uma implementao concreta do quadro, bem como, um sistema de runtime baseado em tarefas que podem ser usados para executar as solues. Os modelos resultantes projetados com Guaran DSL so independentes de plataforma, os engenheiros no precisam ter habilidades em uma tecnologia de integrao de baixo nvel ao projetar suas solues. Alm disso, este projeto pode ser reutilizado para gerar automaticamente as solues de EAI executveis para diferentes tecnologias alvo. Um vislumbre da Integrao Stack com os nveis de abstrao para uma soluo de integrao. Funcionalidade e estrutura de uma soluo de EAI so completamente definidas usando o processo de linguagem, portas, tarefas, decorador, faixas e laos de integrao. As tarefas do guaran so baseadas nos Enterprise Integration Patterns (Padres EIP) por Gregor Hohpe e Bobby Woolf. possvel projetar a estrutura interna de todos os tipos de processo (embalagens e processos de integrao) e suas portas de comunicao ( EntryPort, ExitPort, SolicitorPort e ResponderPort) usando tarefas, mas tambm possvel, para criar fluxos de integrao que permitem aos aplicativos colaborarem entre si, ligando estes processos por meio de ligaes de integrao. Os aplicativos ao participarem da soluo de integrao so documentados usando decoradores, bem como suas camadas sendo usado como interface de comunicao. A arquitetura desta ferramenta est organizada em duas camadas, a saber: framework e toolkit.

2.1. Diagrama Guaran SDK

Figure1. DiagramaSDK

2.2. O Framework
A primeira camada, referida como a estrutura, fornece uma implementao ou resumo de todos os conceitos bsicos da DSL.

2.2.1. Messages
As mensagens so usadas para encapsular os dados que so manipulados de uma soluo de EAI.

2.2.2. Tasks
O pacote de tarefa fornece as bases para implementar tarefas especficas de domnio no toolkit.

2.2.3. Ports
Portas reduzem a distncia a partir do mecanismo de comunicao utilizado para interagir com o ambiente.

2.2.4. Process
Os processos so as unidades de processamento central, numa soluo de integrao. Eles so compostos de portas e tarefas, estendem as classes e implementam a interface ItaskContainer.

2.2.5. Adapters Este pacote fornece as bases para implementar adaptadores no toolkits. 2.3. O Tookit A segunda camada, conhecido como toolkit, fornece uma implementao concreta do programa, bem como, um sistema de runtime baseado em tarefas.
A estrutura oferece dois pontos de extenso, a saber: Tarefas e adaptador. Criou-se uma ferramenta central que fornece extenses para lidar com uma variedade de tarefas suportadas pela maioria dos padres de integrao, e fornecem adaptadores ativos e passivos que permitem o uso de diversos protocolos de comunicao de baixo nvel.

2.3.1 Router Um roteador uma tarefa que no altera as mensagens processadas, mas encaminha-as atravs de um processo. Isso inclui a filtragem de mensagens que no satisfazem a condio ou a replicao de uma mensagem, a mencionar algumas tarefas nesta categoria. 2.3.2 Modifer Um modificador uma tarefa que adiciona dados de uma mensagem ou remove os dados a partir dele, enquanto este no resultar em uma mensagem com um esquema diferente. Isto inclui enriquecendo uma mensagem com a informao contextual ou promoo de alguns dados para os seus cabealhos, para mencionar alguns exemplos nesta categoria. 2.3.3 Transformer
Um transformador uma tarefa que traduz um ou mais mensagens em uma nova mensagem com um diferente esquema. Exemplos dessas tarefas incluem a diviso de uma mensagem em vrios queridos ou agreg-los de volta.

2.3.4 Timer
Um temporizador uma tarefa que executa uma vez relacionada ao, por exemplo, atrasando uma mensagem ou produzindo uma mensagem a intervalos regulares.

2.3.5 StreamDealer
Um trfego de fluxo uma tarefa que lida com um fluxo de bytes e ajuda zip / unzip, criptografar / descriptografar, ou codificar / decodificar isso.

2.3.6 Mapper
Um mapper uma tarefa que muda a representao das mensagens processadas por ele, por exemplo, a partir de um fluxo de bytes em um documento XML.

2.3.7 Communicator
Um comunicador uma tarefa que encapsula um adaptador. Comunicadores servem a dois propsitos: Primeiro, eles permitem que os adaptadores possam ser exportados para um registro, para que possa ser acessado remotamente, em segundo lugar, um comunicador pode ser configurado para pesquisar periodicamente por um processo ou aplicao usando um adaptador. Um adaptador ativo permite consultar periodicamente o processo de aplicao com o qualquer interface, um adaptador passivo exporta uma interface para um registro, para que outros aplicativos ou processos possam interagir com ele.

Note-se que as portas de entrada e sada pode ser implementadas usando adaptadores ativos ou passivos. O pacote ativa dividido em dois pacotes para fornecer implementaes que so baseados em JBI (Java Business Integration) e RMI (Remote Method Invocation) protocolos respectivamente. Note-se que apoiar adaptadores JBI permite plugue Guaran SDK em uma variedade de ESB (Enterprise Service Bus), por exemplo, nossa implementao de referncia est pronto para ser conectado ao abrir o ESB. Isto, por sua vez, permite que processos do Guaran SDK para ter acesso a uma variedade de aplicaes no atual ecossistema (programas principais da empresa) de software, incluindo arquivos, bancos de dados, servios web, feeds RSS, sistemas de mensagens SMTP, filas JMS, DCOM servidores, e assim por diante. O pacote RMI fornece vrias implementaes que se destina a ser usada para interagir com um Servidor RMIcompliant.

2.4. O Runtime
O runtime fornece uma implementao para o sistema de execuo baseado em tarefas em que Guaran SDK depende.

3. Benefcios
O Guarana DSL utiliza um protocolo de meta-objeto (MOP) em tempo de execuo permitindo a composio dinamica de meta-objetos, a qual possibilita uma maneira mais simples de composio desses objetos, tornando a reconfigurao dinamica. O cdigo integrado muito flexivel ele tambm faz uso das mais recentes modificaes e tambm faz calculos pessados de pre-renderizao muito rapido com chamadas inteligentes. Essa ferramenta tem os seguintes beneficios: - Integrao Liga as usas aplicaes a fim de alcanar uma maior interoperabilidade e um melhor desempenho de seus sistemas. - Reduo de custos Reduz os custos de integrao, fazendo a automatizao dos processos, paga-se somente o que for utilizado. - Nuvem Migram suas aplicaes locais para uma nuvem sem medo, facil acesso. - Produtividade Obtens maior eficiencia com a integrao de software de maneira progressiva e expansivel, com isso se ganha com mais integrao e produtividade. - Reduo de tempo H na pratica uma reduo em 70% no tempo de projeto. - Flexibilidade

Ele faz com que se adapte a soluo de integrao com o negocio e no o contrario isso aperfeioa o ambiemte de programao a empresa.

4. O que pode melhorar


Por enquanto o Guaran DSL este somente portado para JVM. A um queixa tambm da pouca documentao dos softwares e poucos exemplos. mais adequado para a modelagem de sistemas distribudos, pois apresenta elementos prprios de modelagem das suas solues de integrao. Ainda no possvel a gerao automtica de cdigo diretamente da modelagem.

5. Diagrama da DSL Guaran

Figure2. DiagramaGuaranDSL

6. Componentes da DSL Guaran o termo utilizado para descrever o elemento do software que encapsula uma srie de funcionalidades. Este processo de comunicao entre componentes denominado composio. Um objeto no implementa uma interface, um objeto a instncia de uma classe que implementa uma interface. Os componentes bsicos so: portas de comunicao, processos, slots e tasks. 6.1. Portas de Comunicao
Abstrai-se a distncia a partir do mecanismo de comunicao de um aplicativo necessria para comunicar com outro aplicativo em outro lugar. Na verso atual da linguagem, h quatro tipos de portas suportadas:
Tipo de Porta Porta de entrada Porta de Saida Porta de Solicitao Porta de Respota Descrio Permite um processo receber informaes de um aplicativo. Permite um processo enviar informaes para um aplicativo. Usada para solicitar informaes a partir de um aplicativo. Usada para responder a mensagens de solicitao recebidas das aplicaes.

6.2. Processos
Dependem de tarefas para realizar suas atividades de orquestrao. Simplificando, um processo pode ser visto como um processador de mensagens.

6.3. Tasks
So blocos de construo que permitem a execuo de uma ao atmica em mensagens que fluem internamente num processo.

6.4. Slots
So usados para conectar e dessincronizar a comunicao entre duas tarefas ou uma tarefa e uma porta.

7. Guaran uma implementao na rea de call center de um Banco


O exemplo utilizado ser a modelagem do sistema de telefonia do call center da minha empresa utilizando o exemplo da implantao na UNIJU (A Universidade Regional do Noroeste do Estado do Rio Grande do Sul), citado nas refecias abaixo. A soluo de integrao possui os seguintes requisitos: _ Todas as chamadas ficam registradas no sistema de call center. _ Usurios informam os problemas e esses so repassados para a Central de problemas caso o call center no consiga resolver. _ A central de problemas envia via SMS ou E-mail para os plantes, quando for fora do horrio comercial. O modelo proposto desenhado na Figura 4. O wrapper ligado ao sistema de telefonia possui um timer que requisita as informaes das ligaes de tempos em tempos. Esses dados so recebidos por um splitter que recebe os dados de um grupo de ligaes numa nica mensagem e a divide, de forma que cada mensagem contenha apenas dados de uma ligao. O wrapper de recursos humanos tem como objetivo consultar a base de dados do sistema de RH para adquirir o e-mail e telefone celular do funcionrio responsvel pelo Home Office. Ele possui uma customTask que transforma a mensagem numa consulta ao banco de dados. O wrapper da central de problemas verifica se horrio comercial, quando for envia um sms e um e-mail para o pessoal responsvel do Home Office. O translator traduz a mensagem para o formato especfico do banco de dados e guarda-a. O wrapper do sistema de SMS se conecta aplicao de envio de SMS para guardar essa informao e enviar para o funcionrio. Possui primeiramente um filter que remove mensagens que no possuem e-mail, depois so removidos dados desnecessrios da mensagem pelo slimmer e, por fim, a mensagem traduzida no formato do SMS pelo translator e guardada. O wrapper do sistema de envio de e-mail recebe uma mensagem, e processa e a envia para o sistema que manda e-mails para o usurio do Home Office. Nesse wrapper, primeiramente a mensagem passa por um filtro, que remove as mensagens que no possui e-mail no corpo. Depois a mensagem traduzida para o formato de e-mail por um translator. Logo aps a mensagem vai para um replicator que manda a mensagem replica a mensagem recebida para o wrapper de recursos humanos e para um correlator. O correlator relaciona a mensagem sobre a ligao e a mensagem do sistema de recursos humanos que contm informaes do funcionrio que realizou a ligao e para quem ele despachou a mensagem. O ContentEnricher recebe as duas mensagens e a transforma em somente uma mensagem. Essa mensagem replicada por um replicator que a envia para os wrappers necessrios.

8. Diagrama EAI

Figure4. Diagramada implementaoacima.

9. Concluso
As empresas esto cada vez mais contando com ESBs para implementar solues de EAI. Eles fornecem um nmero de componentes de ligao para que programadores possam usar para se conectar a quase todas as aplicaes existentes com uma linguagem para projetar processos de orquestrao. Esse tipo de linguagem mais comum BPEL, mas, infelizmente, de baixo nvel, uma vez que ele no suporta diretamente muitos padres de integrao do mercado existente. Isto tem motivado muitos programadores a trabalharem em ferramentas especficas de domnio para dotar ESBs com o nvel de abstrao apropriado para solues modelo de EAI. O Guaran DSL, que uma proposta que visa a aumentar o nvel de abstrao de ESBs, em uma tentativa de tornlo mais fcil para os programadores implementarem suas solues de EAI. Ele fornece suporte explcito para solues EAI usando padres de integrao das empresa por meio de modelos grficos, e permite que os programadores de software criem solues de EAI em um alto nvel de abstrao; no s proporciona a DSL a vista de um processo, mas tambm uma vista de todo o conjunto de processos dos quais as solues de EAI so compostas, tanto a nvel de processos e tarefas que podem ter mltiplas entradas e mltiplas sadas e, finalmente, o seu sistema de tempo de execuo fornece um modelo de execuo baseada em tarefas que normalmente mais eficiente do que o baseado em processos. Ele fornece metodologias e ferramentas para projetar e implementar solues de EAI. Embora seja possvel a utilizao de ferramentas atuais para projetar e implementar solues de EAI, ainda necessrio proporcionar ferramentas especficas do domnio de uma DSL que so fceis de manter, a fim de personaliz-los para um determinado contexto. Neste trabalho, temos relatado medidas que podem ser utilizadas como um indicador sobre como caro a manuteno da

ferramenta de software para isso. Por isso o Guaran esta se destacando como ferramenta de EAI por ser fcil, robusto e barato.

10. Referencias
Franz, R. Research Report Un Lenguaje Especfico de Dominio para el Diseo de Soluciones de Integracin. Sept 2008 Frantz, R, Jimenez, C.M., Corchuelo, R.. A Domain Specific Language for Enterprise Application Integration Solutions with Exception Handling. Frantz, R, Jimenez, C.M., Corchuelo, R.. Towards a Fault-Tolerant Architecture for Enterprise Application Integration Solutions Frantz, R., Corchuelo, R., Gonzalez, J.. Advances in a DSL for Application Integration A Proposal to Detect Errors in Enterprise Application Integration Solutions. Disponvel em http://www.guaranaproject.net/rzfrantz/publications/jss-2012.pdf. Acessado em 02/08/2013.

Vous aimerez peut-être aussi