os termos de SOA Desmistificando SOA, a arquitetura orientada a serviços, possui um

Tamanho: px
Começar a partir da página:

Download "os termos de SOA Desmistificando SOA, a arquitetura orientada a serviços, possui um"

Transcrição

1 soa_ Desmistificando os termos de SOA Tire suas dúvidas a respeito dos termos mais comuns referentes a SOA Alexandre Saudate é formado em Sistemas de Informação pela USP. Trabalha com SOA e correlatos desde 2008, e é autor do livro SOA Aplicado: Integrando com web services e além, publicado pela Casa do Código. SOA, a arquitetura orientada a serviços, possui um ecossistema vasto em termos e ferramentas próprias. Muitas vezes, problemas complexos a serem resolvidos em SOA podem requerer o conhecimento destas ferramentas. Quando isto acontece, vale a pena conhecer onde o desenvolvedor/arquiteto está se metendo. Como monitorar a performance do seu negócio eficientemente? Como estabelecer correlações entre os serviços sendo invocados, e tomar atitudes em relação a isso? Como prover uma arquitetura SOA altamente escalável? A partir do conhecimento sobre os termos que serão apresentados, você terá condições de conduzir suas próprias pesquisas a respeito destas e outras questões que poderão surgir quando estiver projetando sua própria arquitetura orientada a serviços. SOA SOA significa Service-Oriented Architecture, ou arquitetura orientada a serviços. Trata-se de um paradigma arquitetural que define técnicas para modelagem, desenvolvimento e gerenciamento de serviços. Orientar alguma coisa, em desenvolvimento de software, significa desenvolver utilizando as melhores práticas e técnicas da tecnologia à qual seu sistema é orientado. Quando desenvolvemos um software orientado a serviços, portanto, devemos utilizar as melhores práticas desta técnica. Algumas dessas práticas são:» Desenvolver os contratos antes das implementações (contratos estes que, assim como o desenvolvimento com uma linguagem orientada a objetos por exemplo representam a maneira como o cliente do serviço interage com o mesmo);» Utilizar serviços agnósticos de implementações (ou seja, desenvolver serviços que, de fato, são interoperáveis por exemplo, um serviço construído em Java que possa ser consumido em C#);» Analisar os níveis corretos de granularidade (ou seja, analisar quais as capacidades exatas que um único serviço deve ter). Em relação ao design dos serviços, estes devem seguir os seguintes princípios:» Ter contratos padronizados; / 54

2 Muito se fala em SOA, e tanto iniciantes quanto os mais experientes podem ficar perdidos em meio a tantos termos. O que é BPEL? O que é ESB? O que é CEP? Neste artigo, você conhecerá tanto termos SOA quanto alguns correlacionados.» Ter baixo acoplamento em relação a outros serviços;» Serem abstratos em relação às implementações;» Devem ser reutilizáveis;» Devem ser independentes de outros serviços;» Não devem armazenar estado;» Oferecer mecanismos de descoberta;» Não oferecer impedimento à utilização em uma composição. Vale lembrar que estes não são obrigatórios, porém, altamente recomendados. isso porque todos estes princípios vão ser responsáveis, cada um à sua maneira, de promover uma arquitetura eficiente e reutilizável. Vários destes princípios são seguidos por diversas tecnologias. As mais proeminentes, no entanto, são REST e SOAP (WS-*). Serviço Um serviço é um componente de lógica de negócios, ou seja, qualquer componente que ofereça uma funcionalidade do negócio. Além disso, estes componentes devem seguir os princípios de design citados acima. Em SOA, estes serviços são o centro do universo, ou seja, as aplicações devem ser pensadas em termos destes serviços. isto porque estas aplicações devem ter conhecimento de que estão em um ecossistema completo de aplicações, onde existe interação entre estas. Em uma arquitetura orientada a serviços, os serviços serão os responsáveis por prover os pontos onde as aplicações podem interagir umas com as outras. Na prática, serviços podem ser web services tradicionais, REST, EJBs etc. - sendo que os mais tradicionais, nesta área, são aqueles baseados em WS-* e SOAP. REST também tem sido uma abordagem bastante promissora, dada a capacidade de interação com serviços desse tipo. REST É um estilo de desenvolvimento de serviços proposto por Roy Fielding em sua tese de doutorado. Roy Fielding foi um dos desenvolvedores do protocolo HTTP e, como tal, uma das maiores autoridades sobre o assunto. Quando ele propôs o modelo REST, ele claramente intencionava transmitir todo o conhecimento adquirido no desenvolvimento do protocolo HTTP como diretivas para um modelo que pudesse ser utilizado no desenvolvimento de aplicações modernas (e não apenas na web, como era o caso até então). Possui uma sequência de princípios básicos:» Utilização adequada de MiME Types (como text/html, text/xml, text/json etc.) nas transferências de dados;» Utilização de URLs condizentes com o que se procura (por exemplo, /pessoa para tratar pessoas e /veiculos para tratar veículos);» Utilização de métodos HTTP (GET, POST, PUT, DELETE etc.) adequadamente;» Utilização de hiperligações entre dados;» Utilização de códigos de status do HTTP. Um dos principais impactos de REST, no entanto, foi a contraposição ao estilo RPC (Remote Procedure Call), predominante no segmento até então. Por exemplo, uma das características do RPC é informar ao servidor qual método estamos invocando. Em REST, essa prática é abolida, partindo do pressuposto de que o trio URL bem definida + método HTTP adequado + MiME type correto são suficientes para encontrar o método correto. Por exemplo, o método GET é comumente utilizado para recuperar informações. Em REST, caso o cliente queira recuperar informações de clientes, basta enviar o método GET 55 \

3 com a URL /clientes e o MiME type adequado para o servidor. Uma limitação do estilo, no entanto, está na modelagem de modelos mais complexos, como busca com informações complexas, re-adaptação de cenários RPC para REST, segurança (limitada ao já existente no HTTP/HTTPS ou implementações customizadas), e outros. Para estes cenários, o mais recomendado é utilizar WS-* e SOAP. WADL É um descritor para aplicações baseadas em REST. Este descritor tem por objetivo endereçar questões relacionadas à dinâmica de serviços REST, como URis não específicas, diferentes MIME types etc. Um exemplo de WADL está apresentado na Listagem 1. Listagem 1. Exemplo de WADL. <application xmlns= > <doc xmlns:jersey= jersey:generatedby= Jersey: /02/ :17 AM /> <grammars> <include href= application.wadl/xsd1.xsd > <doc title= Generated xml:lang= en /> </include> <include href= application.wadl/xsd0.xsd > <doc title= Generated xml:lang= en /> </include> </grammars> <resources base= > <resource path= /person > <method id= create name= POST > <request> <ns2:representation xmlns:ns2= xmlns= element= person mediatype= application/xml /> </request> <response> <representation mediatype= <?xml version= 1.0 encoding= UTF-8 standalone= yes?> application/xml /> </response> </method> <resource path= /{id} > <param xmlns:xs= name= id style= template type= xs:long /> <method id= retrieve name= GET > <response> <representation mediatype= application/xml /> </response> </method> </resource> </resource> </resources> </application> No WADL, é possível observar duas seções distintas, grammars e resources. A primeira vai especificar os formatos de dados que serão utilizados como entrada e saída dos serviços. A segunda vai especificar as URLs utilizadas para consumo dos serviços (em REST, também conhecidos como recursos), URLs derivadas, tipos de dados aceitos como entrada e saída, métodos HTTP utilizados etc. Vale ressaltar que o WADL não é uma unanimidade entre a comunidade. Alguns são favoráveis ao uso do mesmo, outros são contra. Argumentos a favor dizem que o mesmo facilita no consumo destes serviços, já que não há necessidade de realizar descoberta prévia do que os serviços expõem já que tudo está especificado no WADL. Argumentos contrários dizem que o uso de um WADL poderia engessar o cliente, tirando o dinamismo pretendido por REST. SOAP / WS-* SOAP e WS-* são os elementos fundamentais dos agora chamados web services clássicos. Estes foram adotados já há vários anos pelo mercado em geral, e tiveram suas especificações definidas por vários consórcios, dentre os quais os mais proeminentes são a W3C (World Wide Web Consortium) e a OASiS (Organization for the Advancement of Structured Information Standards). SOAP significa Simple Object Access Protocol. É um protocolo de aplicação largamente utilizado em grandes empresas para realizar comunicação entre sistemas. É fortemente baseado em padrões e técnicas de XML, como XSD, XPath, Xquery e outras. Contém três partes principais: Envelope (a raiz do conteúdo), Header (utilizado para tráfego de meta-informações) e Body (utilizado para tráfego de informações de requisição, respostas e mensagens de falha). É fortemente ligado a um WSDL e a WS-* como um todo. O WSDL (Web Services Description Language) descreve o formato de entrada e saída de serviços num formato geral, e SOAP dá corpo a essa entrada e saída. O WSDL possui cinco partes principais (sendo extensível, ou seja, podendo possuir mais partes): types, message, porttype, binding e service. O WSDL pode conter apenas as três primeiras, e se assim o fizer, é chamado de WSDL abstrato. Essas três primeiras partes descrevem o formato da entrada e saída do serviço, utilizando XSDs (XML Schema Definition). Até esse momento, o WSDL é independente de SOAP, podendo também descrever outros formatos (sendo que o segundo mais formato é o que se convencionou chamar de POX Plain Old XML). Ele passa a descrever um documento SOAP apenas nas seções binding e service. Se o WSDL contém estas seções, ele é chamado de WSDL concreto. Quanto à descrição do formato do envelope SOAP, / 56

4 existem pelo menos cinco formatos mais conhecidos: RPC literal, RPC encoded, document literal, document encoded e document literal wrapped. No formato RPC (Remote Procedure Call) literal, a definição dos métodos a serem chamados no servidor fica descrita apenas no WSDL, e não na implementação do serviço. Neste modelo, o servidor deve se encarregar de receber a requisição do cliente, fazer parse da mesma, identificar qual é o método que está sendo invocado e, então, despachar a mensagem para a implementação. É um formato complexo, visto que as validações da mensagem geralmente são dependentes do contrato (WSDL). O formato RPC encoded é parecido com o RPC literal, com a adição de que os tipos dos dados devem ser passados na própria requisição, como o exemplo mostrado na Listagem 2. Listagem 2. Exemplo de requisição RPC. <soap:envelope> <soap:body> <mymethod> <x xsi:type= xsd:int >5</x> <y xsi:type= xsd:float >5.0</y> </mymethod> </soap:body> </soap:envelope> Note que, na maior parte dos casos, este tipo de informação é desnecessária, já que a tipagem está presente nos XSDs. Além disso, este formato foi declarado não-interoperável (ou seja, que não se adequa bem a ambientes com múltiplas linguagens de programação) pela WS-i, uma organização responsável por definir padrões de interoperabilidade entre web services. No formato document literal, não há definição formal de qual método está sendo invocado. Neste ponto, o corpo da requisição SOAP é um pouco mais semelhante ao de uma requisição REST. No entanto, pela dificuldade de se entregar esta mensagem para a implementação, geralmente algum mecanismo de endereçamento fica implícito, como o uso do header HTTP SOAPAction ou alguma especificação formal como WS-Addressing (que explicarei mais à frente). O formato document encoded é semelhante ao document literal, com a adição de exigir que a tipagem dos dados seja fornecida em conjunto (assim como acontece em RPC Encoded). Este formato também não é interoperável. O formato document literal wrapped atua de maneira que o método é, novamente, inserido na requisição, mas ao contrário do RPC, esta definição do método fica inserida em um XSD, facilitando a validação do corpo da mensagem e até mesmo melhorando o mecanismo de entrega. Este formato de dados é o padrão utilizado pelo JAX-WS (o framework padrão para definição de web services em Java), e é o que possui menos falhas, de acordo com [1]. Quanto a WS-*, trata-se de um nome comumente atribuído ao conjunto de especificações definidas para web services clássicos. Estas especificações compreendem uma série de mecanismos úteis para uso em cenários que envolvem web services, como mecanismos de segurança (WS-Security), transações (WS- -Transaction), endereçamento (WS-Addressing), e assim por diante. WS-Policy É uma especificação utilizada para definir políticas (ou seja, maneiras de utilizar) web services clássicos. Estas políticas podem envolver praticamente qualquer coisa, como o protocolo de transporte que deve ser utilizado pelo web service (HTTP/HTTPS, por exemplo); SLA do serviço etc. Em geral, é utilizada para descrever o uso de outras especificações. WS-Security É a especificação padrão para endereçar questões relacionadas à segurança. Estas questões envolvem o já citado protocolo de transporte, o sistema de autenticação/autorização etc. Pode incluir outras especificações/extensões, como WS-SecureConversation (utilizada para estabelecer contextos de segurança, ou seja, mecanismos seguros a serem utilizados em várias trocas de mensagens) e WS-Trust (utilizada para definir mecanismos de utilização de tokens seguros). WS-Transaction É uma especificação guarda-chuva para questões relacionadas a transações. Engloba WS-Atomic- Transaction (para transações de curta duração) e WS- -BusinessActivity (para transações de longa duração). WS-Addressing É uma especificação para tratar endereçamento de dados. Pode ser utilizada tanto para tratamento de requisições dinâmicas (ou seja, para especificar, em tempo de execução, o endereço de um determinado web service), quanto para tratamento de web services assíncronos (ou seja, é o mecanismo que o cliente vai utilizar para informar ao servidor o endereço para resposta de uma mensagem). MTOM / xop MTOM significa Message Transmission Optimization Mechanism, e XOP significa XML-binary Optmized Packaging. São mecanismos usados em conjunto para tratar da transmissão de dados binários em SOAP. Basicamente, o mecanismo funciona em conjunto com HTTP, de maneira que o conteúdo binário é 57 \

5 trafegado separado do envelope SOAP e, depois, ambos são recombinados através de um ID da mensagem. Diferenças entre REST e WS-* Para ficarem claras as diferenças entre REST e WS-*, listo aqui algumas delas: CONTExTO REST WS-* CONTRATO TIPOS DE DADOS SEGURANÇA Qualquer formato endereçado pela WS-Security ou extensões proprietárias INTEROPERABI- LIDADE FACILIDADE DE USO MODELAGEM MANUTENIBILI- DADE PERFORMANCE WADL + Interface Uniforme (padronização de métodos HTTP + códigos de status + URLs) Qualquer um que possa ser definido por um MIME Type Baseada no modelo HTTP / HTTPS ou extensões proprietárias Sim Tende a ser fácil Orientada a recursos tende a ser difícil Clientes podem deixar de funcionar silenciosamente após uma alteração no serviço Mais rápido pode trafegar apenas o estritamente necessário WSDL SOAP (baseado em XML) e binário (endereçado pela especificação MTOM/XOP) Possui variantes não-interoperáveis (ou seja, não homologadas pela WS-I) Tende a ser difícil Similar a RPC tende a ser fácil Em geral, os clientes são compilados por geradores de código fazendo com que eles deixem de funcionar caso o serviço não seja mais compatível Mais lento inclui overhead do protocolo SOAP ESB Significa Enterprise Service Bus. É um padrão de projeto SOA (catalogado por Thomas Erl em [2]) utilizado para endereçar, de uma única vez, padrões de integração de sistemas [3]. Um ESB tem uma posição central em uma arquitetura orientada a serviços. Suas atribuições incluem roteamento de mensagens, transformação, enriquecimento, composição, monitoração, entre outras. Por possuir todas estas atribuições, geralmente ele é o ponto de comunicação entre o cliente e o serviço final, sendo que este serviço final pode ser tanto um web service simples (WS-* ou REST), quanto uma composição de serviços. Em caso de uma composição, é bastante comum encontrar cenários em que a própria composição não entrega mensagens diretamente aos serviços, mas sim, invoca o ESB novamente. isso facilita o monitoramento da saúde da arquitetura como um todo. Existem várias implementações de ESB (na casa de dezenas). Para mencionar algumas, temos:» Oracle Service Bus;» ibm Websphere ESB;» Progress Sonic ESB;» Mule ESB;» Apache ServiceMix;» Fuse ESB. Um caso curioso é o do Apache Camel. Este framework contém todas as funcionalidades de um ESB, sem ser considerado um. isto porque o Apache Camel não possui um papel centralizado, ou seja, fica embutido na aplicação. Para que isto fique mais claro, veja a figura 1. A figura 1 mostra o papel de um ESB; observe que é uma posição central, ou seja, deve contar com o próprio servidor de aplicação no próprio conjunto de máquinas. O Apache Camel não tem essa posição central, sendo várias vezes embutido em outras aplicações, ao invés de ter esse papel centralizador. Quanto à forma, não existe padronização em relação a como os ESBs expõem suas regras. Cada um tem seu próprio mecanismo (e, muitas vezes, sua própria nomenclatura) para isso. Por exemplo, o Apache ServiceMix utiliza o Apache Camel para definição de suas rotas. O Apache Camel, por sua vez, trabalha com a definição das rotas tanto na forma de arquivos XML (integrados com o Spring) quanto em puro Java. Listagem 3. Fragmento de definição de rotas do Camel. <camel:route> <camel:from uri= file:src/data?noop=true /> <!--Print the message to standard out, just as a test--> <camel:convertbodyto type= java.lang.string /> <camel:to uri= stream:out /> <camel:to uri= activemq:personnel.records /> </camel:route> A Listagem 3 mostra um fragmento de definição de roteamento utilizando o Apache Camel. Nesta listagem (definida dentro de um arquivo Spring), é possível ver as tags from e to. Estas tags mostram, respectivamente, o consumo de uma mensagem (no caso, do sistema de arquivos, da pasta src/data) e a entrega da mesma a um determinado ponto. Neste / 58

6 Figura 1. Papel de um ESB em SOA (fonte: soasimples.com). caso, a mensagem tanto foi entregue para a saída padrão do sistema (ou seja, para ser impressa no console) quanto para uma fila JMS do ActiveMQ. BPM / BPMN / BPMS BPM significa Business Process Management. É um conceito utilizado para realizar análise de processos de negócio e otimizá-los. É comumente habilitado através de uma notação chamada BPMN (Business Process Modeling Notation), e pode ser dividido em fluxo abstrato ou concreto, sendo que o concreto é automatizado através de um BPMS Business Process Management Suite. Estas suítes geralmente recebem como entrada um fluxo BPMN e, através de extensões, permitem a um desenvolvedor programar o comportamento de cada definição no fluxo. A figura 2 mostra um exemplo de um fluxo definido no Oracle BPM Studio. Figura 2. Definição de fluxo BPM no Oracle BPM Studio (fonte: docs.oracle.com). Cada uma das caixas representa uma atividade diferente, dentro do contexto de um mesmo processo de negócios. O desenvolvedor pode receber o fluxo BPMN definido em qualquer ferramenta (como,k por exemplo, o Bizagi BPM Suite) e então, portar este fluxo para o Oracle BPM Studio, onde o processo poderá ser automatizado. Após a definição do que cada atividade deve fazer, o BPM Studio receberá um pacote com o fluxo e, geralmente, disponibilizá-lo para a empresa como um web service. Diferenças entre os ESBs Cada tipo de ESB apresenta vantagens e desvantagens que justificam o modelo de precificação. Assim como Application Servers, existem diferenças fundamentais entre cada um, em termos de funcionalidade, escalabilidade, performance, compatibilidade com outros produtos etc. BPEL Significa Business Process Execution Language. Na prática, trata-se de um XML que define um conjunto de operações a serem efetuadas com um conjunto de web services e expô-los como um único serviço. O formato deste XML é regido pela OASiS. Existem muitas comparações de BPEL com BPM. No começo, muitos acreditavam que deveria ser o BPEL quem automatizaria os fluxos BPMN, e muitos acreditaram na ideia. Com o passar dos anos (e as empresas ganhando mais maturidade em SOA), esta ideia foi descartada. Hoje, o BPEL serve apenas como motor de orquestração de serviços ou seja, uma engine centralizada capaz de atuar como máquina de estados para estas composições, realizando procedimentos complexos de comunicação entre vários web services diferentes. Vale ressaltar que a maioria das engines BPEL lida apenas com web services WS-*. Existem diversas engines BPEL atualmente. Para citar algumas, temos:» Oracle BPEL Process Manager;» Apache ODE;» Websphere Process Server. A figura 3 mostra um exemplo de definição de fluxo BPEL (no JDeveloper 11g, ferramenta utilizada para definição BPEL para o Oracle BPEL 11g). Assim como em BPM, cada caixa neste fluxo conterá a definição de uma atividade diferente. A grande diferença é que o BPEL contém atividades muito mais técnicas, que não devem sofrer interferência de analistas de negócio ou correlatos. 59 \

7 when Uma pessoa tem somente dor-de-cabeca. then O diagnostico e Enxaqueca end Figura 3. Exemplo de definição BPEL no Oracle BPEL (fonte: docs. oracle.com). BRMS Significa Business Rules Management Suite. É um tipo de ferramenta utilizada para gerenciar e executar regras de negócio, que são tipicamente definidas através de linguagem específicas de domínio (Domain-Specific Language - DSL). Existem várias ferramentas deste tipo disponíveis no mercado, dentre as quais alguns exemplos são o JBoss BRMS / JBoss Guvnor (respectivamente, versão paga e aberta do mesmo produto), o Websphere ilog e o Oracle Business Rules. O JBoss BRMS utiliza como mecanismo de execução o Drools. Um exemplo de arquivo Drools é o apresentado na Listagem 4. Listagem 4. Exemplo de regra Drools (fonte: docs. jboss.org). rule Hello World dialect mvel when m : Message( status == Message.HELLO, message : message ) then System.out.println( message ); modify ( m ) { message = Goodbyte cruel world, status = Message.GOODBYE }; end Esta é uma regra definida em um dos dialetos embutidos do Drools (no caso, o mvel). No entanto, é possível definir as DSLs até ficar como o exemplo mostrado na Listagem 5. Listagem 5. Exemplo de regra com DSL no Drools (fonte: rule Enxaqueca Note que o uso de um BRMS, em SOA, facilita a flexibilização de fluxos de dados, dado que as regras ficam definidas num formato que é mais facilmente editável e que tem mais afinidade com o negócio em si. O BRMS é responsável por expor estas regras como web services ou algum outro formato de fácil interação, e as outras aplicações podem consumir estas regras e alterar a lógica de acordo com os resultados, transformando o BRMS num sistema que apenas acrescenta flexibilidade às aplicações como um todo. CEP Significa Complex Events Processing. São ferramentas utilizadas para habilitar a reação de uma arquitetura a eventos, ao invés de requisições puras. Estes eventos são parecidos com requisições, mas as ferramentas CEP os utilizam para realizar correlações em busca de padrões. Estes padrões podem ser utilizados para re-ordenar um fluxo de vendas, detectar intrusos, ataques DDoS, falhas de componentes etc. Um exemplo do mundo real sobre este tipo de processamento é um carro. Carros têm diversos tipos de sensores para medir velocidade, temperatura do motor, nível de combustível etc. Um sistema computadorizado poderia tirar proveito de um sensor de nível de pressão do ar nos pneus e, a partir de correlações entre as medições recebidas num determinado período de tempo, indicar se o pneu está furado ou não. Note que esta informação pode, também, ser correlacionada com outras, a fim de determinar problemas mais graves. Por exemplo, se o computador detectar que uma medição não foi disponibilizada em certo período de tempo, pode inferir que o pneu nem sequer está no carro! Alguns exemplos de ferramentas CEP:» Oracle CEP;» Esper / Nesper (versão Java e.net, respectivamente). Geralmente, as ferramentas são aderentes a uma linguagem chamada EPL Events Processing Language. Esta linguagem é bastante parecida com SQL, no sentido de filtrar eventos a partir de uma nuvem de eventos com certas cláusulas. Por exemplo, para filtrar a média de preço dos papéis da ibm na bolsa, levando em consideração um espaço de tempo de 30 segundos, pode-se utilizar o comando apresentado na Listagem 6. Listagem 6. Exemplo de query EPL (fonte: esper. codehaus.org). / 60

8 select avg(price) from StockTick.win:time(30 sec) where symbol= IBM Em relação a SOA, o processamento de eventos pode ser utilizado para interceptar as requisições a serviços para gerar estes eventos, que podem ser utilizados para desvendar padrões complexos e, de acordo com os resultados, invocar outros serviços. No exemplo da Listagem 6, por exemplo, o sistema de CEP pode ser utilizado para invocar um serviço de compra de papéis caso o preço médio (em certo período de tempo) atinja um valor mínimo, por exemplo. BAM Significa Business Activity Monitoring. O BAM realiza interceptação dos dados (da mesma maneira que as engines de CEP) para manter rastreamento de KPis (Key Performance Indicators - Indicadores chave de performance). Esses KPis representam números que são essenciais para o funcionamento da empresa - total de vendas em um dia, número de vendas de determinado produto no mês, rendimento bruto e líquido dessas vendas etc. Com o uso de um BAM, é possível visualizar dashboards (gráficos indicadores) desses números. Dependendo da ferramenta, estes dashboards podem ser visualizados em tempo real, ou seja, eles se movimentam de acordo com a performance do negócio. Alguns exemplos de BAM:» Oracle BAM;» Websphere Business Monitor;» WSO2 BAM. A figura 4 mostra estes dashboards no Oracle BAM. outros protocolos, como SOAP. isto facilita a exposição destes tipos de componentes em outros formatos sem a necessidade de utilizar um ESB. implementações incluem a utilizada no Oracle Fusion Middleware (que contém outros componentes, como Oracle BPEL, Oracle BAM, Oracle WebLogic), assim como implementações abertas como o Apache Tuscany. Algumas vezes, é utilizada com frameworks parecidos como o JBi Java Business Integration. Arquiteturas Correlatas SOA possui uma relação íntima com vários tipos de arquitetura. Como o leitor deve ter percebido, a arquitetura orientada a serviços em si não tem por intuito promover escalabilidade no entanto, isto é facilmente alcançado através do emprego de outras arquiteturas. A seguir, você confere algumas destas. Shared-Disk Shared-disk é uma alternativa a um sistema de clusters tradicional, onde o servidor espalha para outros nós as sessões de usuário. Em shared-disk, cada nó desconhece a própria existência dos outros nós. Tudo o que estes sistemas compartilham, uns com os outros, é o disco. Note que, neste caso, o disco pode ser qualquer coisa, desde o próprio sistema de arquivos de uma máquina, até um NAS (Network-Attached Storage). Note que isto inclui um banco de dados, ou seja, se você possui um banco de dados compartilhado entre várias máquinas que não conhecem umas às outras, você está usando uma arquitetura shared-disk. Figura 4. Exemplos de dashboards no Oracle BAM (fonte: www. oracle.com). SCA Significa Service Component Architecture. Suas implementações habilitam a exposição de componentes de serviços (como EJBs, filas JMS etc.) com Figura 5. Formato geral de uma arquitetura shared-disk. Onde isso se encaixa em SOA? No próprio fato das máquinas não conhecerem umas às outras. isso requer que a aplicação não mantenha estado ou persista o estado em locais que não no próprio servidor de aplicação - o que é um casamento perfeito com a 61 \

9 teoria de orientação a serviços, especificamente em relação ao princípio de design de não armazenar estado. Com máquinas que não mantêm estado, é possível distribuir componentes de uma mesma aplicação (ou várias) por várias instâncias, sem problemas de escalabilidade ou performance. Ao contrário, ao fazer isso, a escalabilidade é alcançada através da escalabilidade horizontal, ou seja, através da adição de mais máquinas no conjunto, é possível obter mais poder de processamento. Quanto à performance, a distribuição da aplicação em serviços equaliza as necessidades de processamento para todos, fazendo com que todas as máquinas ajudem umas às outras. A grande desvantagem desta é que a máquina (ou máquinas) que são responsáveis pelos bancos de dados tornam-se pontos únicos de falha, além do fato da escalabilidade do banco de dados ser limitada. Para contornar este tipo de problema, a arquitetura shared-nothing foi desenvolvida. Shared-Nothing Shared-nothing é similar a shared-disk, com a adição de que as máquinas não compartilham nada - nem mesmo o banco de dados. Perceba que é um conceito mais abstrato e substancialmente mais complexo para ser implementado. No entanto, este sistema tem a adição de não possuir um ponto único de falhas, ou seja, se um banco de dados falha, as outras máquinas não dependem de apenas um. quando se faz uso de bancos de dados que também tenham arquitetura shared-nothing, como Cassandra ou HBase. Neste tipo de arquitetura, deve ser necessário que a aplicação decida em qual (ou quais) máquinas armazenar quais dados e onde. Se os dados forem distribuídos em regiões geográficas distintas, por exemplo, diminuem as chances de indisponibilidade. Além disso, se um conjunto de dados de um tipo (por exemplo, de clientes) forem armazenados em uma máquina e de outro tipo (por exemplo, veículos) em outro, se houver indisponibilidade de uma máquina a aplicação não estará inteiramente comprometida (ou seja, se o banco que contém dados de veículos sair do ar, ainda será possível consultar clientes). Event-Driven Architecture (EDA) EDA é um tipo de arquitetura que pode complementar uma arquitetura SOA tradicional. isto é relativo ao uso que se faz de ferramentas de análise e processamento de eventos (ver CEP). Quando o uso de eventos é extensivo, o resultado é uma arquitetura orientada a eventos EDA. O que isto tem a ver com SOA? Estes eventos podem ser utilizados para disparar serviços. Ou seja, as implementações dos serviços disparam eventos que, por sua vez, alimentam engines de eventos que por sua vez invocam serviços com os resultados dos processamentos dos eventos. Conclusão O universo SOA é imensamente vasto, tendo um ecossistema rico em ferramentas com os mais diversos usos possíveis. Neste artigo, você pôde vislumbrar tanto os termos mais comuns em SOA (como REST, SOAP e WSDL) quanto termos pouco utilizados e restritos a nichos, como CEP e SCA. Vale lembrar que todas estas ferramentas têm usos distintos e todos muito importantes. Todas são ferramentas que resolvem necessidades reais de mercado. Um bom profissional, com conhecimento destas ferramentas, estará sempre apto a resolver os problemas mais complexos. /referências Figura 6. Formato geral de uma arquitetura shared-nothing. Em uma arquitetura shared-nothing, as máquinas que servem à aplicação em si decidem o local onde realizar o armazenamento das informações. isso é particularmente útil para aplicações de nível global, pois as máquinas podem decidir armazenar dados em bancos que estejam geograficamente mais próximos. Este tipo de tomada de decisão é mais simples > [1] Which style of WSDL should I use? com/developerworks/webservices/library/ws-whichwsdl/ > [2] SOA Design Patterns Thomas Erl, Prentice Hall, > [3] EAI Patterns / 62

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com REST Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com 1 RESTful REpresentation State Transfer Estilo de arquitetura de software para sistemas distribuídos Termo proposto por Roy Fielding

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education RestFull WebServices Rafael Nunes Arquiteto de Software / Instrutor Globalcode 1 REST Integrando aplicações e disponibilizando serviços sem complicar a vida de ninguém. 2 Agenda > Integrando Aplicações

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

INT-9: Implementing ESB Processes with OpenEdge and Sonic David Cleary

INT-9: Implementing ESB Processes with OpenEdge and Sonic David Cleary Implementando Processos ESB com OpenEdge e Sonic Paulo Costa Global Field Services Agenda Desenvolvendo Processos de Negócio Visão geral da tecnologia Desenvolvendo um processo de negócio do início ao

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Arquitetura Orientada a Serviços (SOA) Copyright e-core LTDA, 2010. Todos os direitos reservados.

Arquitetura Orientada a Serviços (SOA) Copyright e-core LTDA, 2010. Todos os direitos reservados. Arquitetura Orientada a Serviços (SOA) Visão Geral e-coree Estabelecida em 1999 Escritórios rios no Brasil e EUA Aproximadamente 100 profissionais Atua em prestação de serviços offshore desde 2004 Roteiro

Leia mais

Arquitetura Orientada a Serviço

Arquitetura Orientada a Serviço Arquitetura Orientada a Fabio Perez Marzullo IEEE Body of Knowledge on Services Computing Sponsored by Technical Committee on Services Computing, IEEE Computer Society 1 SOA e Web Services SOA é um modelo

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

SOA na Prática Ricardo Limonta

SOA na Prática Ricardo Limonta SOA na Prática Ricardo Limonta Arquiteto JEE Objetivo Apresentar os conceitos de Arquiteturas Orientadas a Serviços; Entender a relação entre SOA e a tecnologia Web Services; Implementar SOA com Web Services

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada

Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada Insight completo sobre IDG/Oracle Relatório de pesquisa de SOA Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada Alinhamento

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Arquiteturas SOA, WOA, e REST

Arquiteturas SOA, WOA, e REST Arquiteturas SOA, WOA, e REST Aplicação de Software Social Fred Figueiredo Luiz Borges Pedro Pires Arquiteturas SOA, WOA e REST Desenvolvimento de aplicações orientadas ao fornecimento de serviços que

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML. Web services Um web service é qualquer software que está disponível através da Internet através de uma interface XML. XML é utilizado para codificar toda a comunicação de/para um web service. Web services

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

Manual dos Serviços de Interoperabilidade

Manual dos Serviços de Interoperabilidade MINISTÉRIO DO PLANEJAMENTO, ORÇAMENTO E GESTÃO Secretaria de Logística e Tecnologia da Informação Manual dos Serviços de Interoperabilidade Sumário Lista de Figuras...3 Lista de Tabelas...4 Introdução...5

Leia mais

REST Um Estilo de Arquitetura de Sistemas Distribuídos

REST Um Estilo de Arquitetura de Sistemas Distribuídos REST Um Estilo de Arquitetura de Sistemas Distribuídos Márcio Alves de Araújo¹, Mauro Antônio Correia Júnior¹ 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Monte Carmelo MG Brasil

Leia mais

MVC e Camadas - Fragmental Bliki

MVC e Camadas - Fragmental Bliki 1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura

Leia mais

Implementação de uma Alçada Decisória usando a Suíte SOA IBM BPM

Implementação de uma Alçada Decisória usando a Suíte SOA IBM BPM Implementação de uma Alçada Decisória usando a Suíte SOA IBM BPM Juan Manuel Bonomi Garay 10 de Outubro de 2013 WebSphere Agenda Modelagem do processo Websphere Business Modeler (BPMN) Implementação da

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

DATA WAREHOUSE. Introdução

DATA WAREHOUSE. Introdução DATA WAREHOUSE Introdução O grande crescimento do ambiente de negócios, médias e grandes empresas armazenam também um alto volume de informações, onde que juntamente com a tecnologia da informação, a correta

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br BPMN

Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br BPMN Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br BPMN Benefícios da modelagem Em uma organização orientada a processos, modelos de processos são o principal meio para medir o desempenho

Leia mais

Integração Orientada a Serviços

Integração Orientada a Serviços Integração Orientada a Serviços Porto Alegre, Agosto de 2006 Agenda Sobre a e-core SOA O que é? Web Services x SOA Principal Motivação - Integração SOI ESB BPEL JBI ServiceMix Solução Proposta A Empresa

Leia mais

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações

PROGRAMA DE MBA em Gestão e Engenharia do Produto. O Produto Internet e suas Aplicações Universidade de São Paulo Escola Politécnica Programa de Educação Continuada em Engenharia PROGRAMA DE MBA em Gestão e Engenharia do Produto O Produto Internet e suas Aplicações Tecnologias de Informação

Leia mais

Serviços Web: Arquitetura

Serviços Web: Arquitetura Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

Especificação de Requisitos

Especificação de Requisitos Projeto/Versão: Versão 11.80 Melhoria Requisito/Módulo: 000552 / Conector Sub-Requisito/Função: Multas Tarefa/Chamado: 01.08.01 País: Brasil Data Especificação: 13/05/13 Rotinas Envolvidas Rotina Tipo

Leia mais

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar Primeiro Técnico Protocolos de Internet (família TCP/IP e WWW) Prof. Cesar 1 TCP - Transmission Control Protocol Esse protocolo tem como principal objetivo realizar a comunicação entre aplicações de dois

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho. Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

Leia mais

Versionamento de Código. Núcleo de Desenvolvimento de Software

Versionamento de Código. Núcleo de Desenvolvimento de Software Versionamento de Código Núcleo de Desenvolvimento de Software Por quê? Facilidades de utilizar um sistema de versionamento de código. Várias versões Quando se salva uma nova versão de um arquivo, a versão

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

Extração de Requisitos

Extração de Requisitos Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo

Leia mais

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013. PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013. ACRESCENTA A ARQUITETURA DE PADRÕES TECNOLÓGICOS DE INTEROPERABILIDADE -, NO SEGMENTO ORGANIZAÇÃO E INTERCÂMBIO DE INFORMAÇÕES, O PADRÃO TECNOLÓGICO

Leia mais

EAI Manual do Administrador

EAI Manual do Administrador EAI Manual do Administrador 1 Definição de Host Application O que é um Host Application? Significa Aplicativo Hospedeiro, é o nome dado ao ambiente EAI que estará executando no seu computador ou em um

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

WEBDESIGN. Professor: Paulo Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira

WEBDESIGN. Professor: Paulo Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira WEBDESIGN Professor: Paulo Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Escola CDI de Videira 1 CDI - Curso de Webdesign - Prof. Paulo Trentin Objetivos para esta aula Debater sobre

Leia mais

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa Web Service Plínio Antunes Garcia Sam Ould Mohamed el Hacen Sumário Introdução conceitual O Web Service

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura

Leia mais

TRIBUNAL DE CONTAS DO DISTRITO FEDERAL

TRIBUNAL DE CONTAS DO DISTRITO FEDERAL TRIBUNAL DE CONTAS DO DISTRITO FEDERAL TÉCNICO EM ADMINISTRAÇÃO PÚBLICA E ANALISTA (EXCETO PARA O CARGO 4 e 8) GABARITO 1. (CESPE/2013/MPU/Conhecimentos Básicos para os cargos 34 e 35) Com a cloud computing,

Leia mais

Regulamento do Grupo de Coordenação da Transição da Administração da IANA. V.10 (27 de agosto de 2014)

Regulamento do Grupo de Coordenação da Transição da Administração da IANA. V.10 (27 de agosto de 2014) Regulamento do Grupo de Coordenação da Transição da Administração da IANA V.10 (27 de agosto de 2014) O Grupo de Coordenação da Transição da Administração da IANA (ICG) deve ter um resultado prático: uma

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

BPM e SOA. Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas BPM e SOA Grinaldo Lopes de Oliveira (grinaldo@gmail.com) Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Como funcionam as organizações? O que ébpm Business Process Management (BPM)

Leia mais

APOO Análise e Projeto Orientado a Objetos. Requisitos

APOO Análise e Projeto Orientado a Objetos. Requisitos + APOO Análise e Projeto Orientado a Objetos Requisitos Requisitos 2 n Segundo Larman: n São capacidades e condições às quais o sistema e em termos mais amplos, o projeto deve atender n Não são apenas

Leia mais

Manual de Integração WebService

Manual de Integração WebService Manual de Integração WebService Sumário 1. O que é a Integração WebService? 2. Envio Simples 3. Consultar Status da Mensagem 3.1 Consultar Mensagens Recebidas 4. Tecnologia do WebService Facilita 1. O

Leia mais

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior Sistemas ERP Introdução Sucesso para algumas empresas: acessar informações de forma rápida e confiável responder eficientemente ao mercado consumidor Conseguir não é tarefa simples Isso se deve ao fato

Leia mais

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1 TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais