ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF

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

Download "ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF"

Transcrição

1 ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF Daniel Strassburger Edemar Costa Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência da Computação Câmpus Canoas Av. Farroupilha, 8001 Bairro São José CEP Canoas - RS RESUMO 29 de Novembro de 2011 Este artigo propõe a comparação entre dois sistemas orientados a serviços, um deles utilizando o método de ASP. NET Web Services (ASMX) e o outro utilizando o Windows Communication Foundation (WCF). A comparação abordou quesitos fundamentais na comunicação orientada a serviços. São eles: transações, segurança, reúso, interoperabilidade e aplicabilidade. O objetivo é mostrar as vantagens da migração para a nova tecnologia WCF. Palavras-chave: Comparação, Web Services, WCF, ASMX, SOA. ABSTRACT Title: Comparative study between ASP.NET Web Services and WCF Web Services This paper proposes the comparison between two service oriented systems, one of them utilizing the ASP.NET Web Services (ASMX) method and the other utilizing the Windows Communication Foundation (WCF). The comparison treated fundamental questions in the oriented communication services: transactions, security, reuse, interoperability, applicability. The goal is to show the advantages of migration to new WCF technology. Key-words: Comparison, Web Services, WCF, ASMX, SOA. 1 INTRODUÇÃO A comunicação entre aplicações é um item cada vez mais discutido e implementado. Devido à quantidade de tecnologias e métodos difundidos nos dias de hoje, existe grande variedade de formas destinadas a realizar a comunicação entre sistemas. Com a evolução das linguagens, identifica-se alguns conceitos antigos sobre comunicação entre aplicações, como bibliotecas estáticas (.lib) ou dinâmicas (.dll), interoperação e intercâmbio de componentes binários utilizando o COM (Component Object Model). Cada conceito, com suas vantagens e defeitos. No entanto, na era da internet e dos sistemas web, não há necessidade de continuar utilizando alternativas legadas. Sendo assim, criou-se a orientação a serviços, conceito ao qual este método incorporou os benefícios das metodologias anteriores, aperfeiçoando seu desempenho. Claro, a orientação a serviços também apresenta desafios. A engenharia de software moderna é o refinamento contínuo dos níveis sempre crescentes de independência (LÖWY, 2010). O problema é qual e por que escolher tal solução. Com base neste dilema, este artigo abordará um comparativo entre duas soluções de interoperabilidade: uma utilizando clássicos Web Services e outra utilizando WCF Web Services com a linguagem ASP.NET e o Visual Studio 10. O item 2 deste artigo terá enfoque teórico sobre as metodologias e formas de resolver o problema, ao referir-se a serviços, serviços Web, WCF e arquitetura orientada a serviços. O item 3, apresentará a definição da solução proposta, e o item 4 mostrará a validação dos dados. Por fim, no item 6, será feita a conclusão, baseada nos resultados. 2 REFERENCIAL TEÓRICO Tratando-se de exposição e consumo de serviços, muitas soluções podem ser encontradas, como computação na nuvem (cloud computing), software como serviço (SaaS) e serviços web (Web Services). Cada uma destas soluções tem suas peculiaridades. No caso de computação na nuvem, o conceito é utilizar 1

2 recursos que estão fisicamente em outro lugar, longe do usuário. Já com SaaS, temos ferramentas prontas para serem utilizadas e não é necessário licenças de software e sim taxas, diluídas mas vitalícias. A terceira tecnologia é a disponibilização e consumo de Web Services, de forma que a comunicação entre sistemas seja mais rápida, ágil e segura. Os projetistas de software devem optar pela forma de comunicação mais adequada à empresa, visando a maximizar seus resultados e a atender seus requisitos. Principalmente, buscar a redução de custos desnecessários ao negócio, como, por exemplo, gastos com infraestrutura, aplicações comuns etc. Estima-se que até 90% dos custos de TI (tecnologia da informação) são relativos à manutenção em sistemas legados (PIGOSKI, 1996). Com o uso de Web Services, há a viabilidade de comunicação entre aquele que disponibiliza e o que consome o serviço, mas também auxilia a integração e interoperabilidade entre sistemas heterogêneos (tecnologias diferentes, plataformas distintas, sistemas legados etc.). Daí, a importância de utilizar os princípios de arquiteturas orientadas a serviços. 2.1 Histórico Tudo começou pela década de 1920, na Polônia, quando foi construído o primeiro computador eletromecânico, do tamanho de uma máquina de escrever. Na década de 1930, esse computador foi vendido aos alemães, sendo utilizado para criptografar a comunicação. Hoje ele é conhecido como a máquina Enigma. A Enigma não era um computador de propósitos gerais: ela apenas conseguia fazer o ciframento e decodificação (hoje chamamos isso de encriptação e decriptação) (LÖWY, 2007, p. 476). Todo o algoritmo e lógica eram representados por rotores, e se o usuário quisesse mudar este algoritmo teria que alterar a estrutura mecânica da máquina, trocar rotores, ordem, posição inicial e cabos. Segundo Löwy (2010), o algoritmo era dependente do problema para o qual foi programado e do projeto de hardware da máquina. Isso começou a mudar no final dos anos 1940 e início dos anos 1950, quando os primeiros computadores eletrônicos de propósitos gerais passaram a admitir o desenvolvimento de algoritmos. Agora as máquinas podiam executar códigos dirigidos para qualquer problema e não apenas a um problema especifico para diversos problemas. Durante a Segunda Guerra Mundial, foi usado com o objetivo de defesa. Ainda assim, os códigos gerados nessa época eram ligados diretamente ao hardware, não podendo ser executados em outros computadores. Mas isso não era problema, visto que existiam poucos computadores úteis no mundo todo. E, assim, as linguagens foram evoluindo. Na década de 1960 já existiam linguagens de mais alto nível, como Cobol e Fortran, que introduziram o conceito de compiladores: o desenvolvedor escreveria o programa de uma maneira, e o compilador geraria os códigos de que a máquina necessitava. O problema agora era que a linguagem não era completamente estrutural, pois havia recursos de salto (jump) e ir para (go to), que muitas vezes causavam efeitos desastrosos nos algoritmos que os usavam Linguagem estruturada Nos anos 1970, nasceram as linguagens estruturadas, propriamente ditas, como C e Pascal. Uma verdadeira revolução, no qual desassociaram o código gerado de seu formato e estrutura interna, introduzindo o conceito de funções e estruturas. Iniciaram-se também as pesquisas sobre Engenharia de Software, visando à redução de custos. Empresas começaram a tratar do reúso em suas aplicações. Em C, o reúso é feito através da utilização de funções. Mas, com variáveis globais, é comum ocorrerem alterações, o que pode danificar uma ou mais funções. O problema com o reúso baseado em função é que ele é dependente dos dados que manipula (LÖWY, 2007, p. 477) Orientação a objetos Na década de 1980, a solução para estes problemas foi proposta pela criação das linguagens orientadas a objetos, como Smalltalk, C++ e logo em seguida o Java. Agora, a função e os dados estão em um mesmo objeto, resolvendo o problema da linguagem estruturada. As funções se tornaram métodos, nos quais fica encapsulada a lógica da programação, enquanto os dados se tornaram atributos do objeto. Obviamente, a orientação de objetos não era perfeita. O reúso exercido por uma classe que ainda está em formato fonte fica restrito a determinada linguagem. Você não poderia ter um cliente de Smalltalk consumindo uma classe de C++ ou derivando dela (LÖWY, 2007, p. 477). 2

3 De acordo com Löwy (2007), a herança não é a melhor solução para o reúso, e em alguns casos provê mais problemas do que soluções. O desenvolvedor tem que estar familiarizado com a classe base da derivação, e isso produz uma dependência vertical devido à hierarquia de classe. Outro problema ocorria quando os objetos eram distribuídos entre processos ou computadores. Por exemplo, não era possível utilizar C++ comum para a invocação. A solução era criar processos host e utilizar uma tecnologia alternativa para chamadas remotas, como soquetes TCP (Transmission Control Protocol) para fazer chamadas a distância. Essas chamadas eram muito diferentes das chamadas originais da linguagem, consequentemente, não era possível beneficiar-se delas Orientação a componente Figura 1 Linguagem estruturada e orientada a objetos (SANTOS) 1. E mais uma vez a necessidade de evolução era iminente, exigindo melhor interoperabilidade entre sistemas. Em 1994, após um longo período de utilização das bibliotecas estáticas (.lib) e dinâmicas (.dll), foi criada, pela Microsoft, a tecnologia COM. A orientação a componente permite interoperação e intercâmbio de componentes binários (LÖWY, 2007, p. 477). Apesar de ser uma tecnologia inovadora, o COM não foi muito bem-sucedido, pois a maioria dos desenvolvedores tinha problemas graves com sua implementação. Ela era feia sem necessidade, porque era construída sobre um sistema operacional que não sabia de sua existência, e as linguagens usadas para escrever componentes COM eram orientadas a objeto, mas não a componentes (LÖWY, 2007, p. 478) Orientação a serviços Com este breve histórico de engenharia de software, é possível notar um padrão: novas tecnologias e métodos de desenvolvimento sempre incorporam os benefícios das antecessoras e aprimoram vários outros quesitos não abordados antes. Com outras palavras, dependência é ruim, mas é necessária. Um aplicativo absolutamente independente é inútil porque não adiciona nenhum valor (LÖWY, 2007, p. 479). Ciente das dificuldades das tecnologias antecessoras, a orientação a serviço surgiu como uma alternativa para os problemas encontrados na orientação a objeto e na orientação a componente. A ideia principal da orientação a serviço é a de que os desenvolvedores devem se preocupar com as regras de negócio e deixar que os quesitos segurança, escalabilidade e interoperabilidade, a linguagem faça por si. Toda a sequência de comunicação entre serviço e cliente é feita através de mensagens padronizadas. O serviço, por sua vez, envia um metadado também padronizado, que descreve o que o serviço pode fazer e como os clientes devem invocar as operações. 1 Figura obtida no site 3

4 2.2 O que são Serviços Web? A criação, a popularização e a evolução da internet trouxeram muita facilidade e comodidade aos usuários. No entanto, à medida que a rede foi crescendo, novas necessidades foram surgindo, como, por exemplo, a necessidade de integração dos sistemas computacionais de uma empresa. Esses sistemas implementam os processos de negócio e a troca de informações com fornecedores, clientes e sócios. O objetivo é sobreviver e obter sucesso no atual contexto da economia de mercado, que tem exigido que os serviços sejam disponibilizados via web. Foi neste contexto que surgiu a tecnologia de serviços web, a qual visa à integração de sistemas computacionais e de serviços, de forma que esta integração seja independente da localização geográfica destes sistemas e serviços, da plataforma sobre a qual os mesmos são executados, da linguagem de programação em que foram implementados etc. No final de 2000, ano do surgimento dos serviços web, as empresas Oracle, HP, Sun, IBM, BEA e Microsoft (maiores fornecedoras de software para TI do mundo) anunciaram a intenção de utilizar esses padrões em seus produtos. Desde então, esta tecnologia tem sido alvo de muitas pesquisas e investimentos a fim de que se possa especificar e padronizar protocolos para solucionar alguns dos problemas ainda existentes em sua arquitetura. O objetivo é ter uma infraestrutura confiável para o seu desenvolvimento e implantação, de modo que ela seja adotada de forma mais efetiva comercialmente. Nos últimos anos, a necessidade de conectar pessoas, informações e processos mudou a forma como o software vem sendo desenvolvido. Sistemas bem-sucedidos de TI exigem cada vez mais interoperabilidade entre plataformas e serviços flexíveis que possam evoluir facilmente com o tempo. Isso tem levado ao domínio de XML (Extensible Markup Language) como a linguagem universal para representar e transmitir dados estruturados que sejam independentes de linguagem de programação, plataforma de software e hardware. Criado sob a ampla aceitação de XML, os serviços da web são aplicativos que usam transportes, codificações e protocolos-padrão para troca de informações. Um serviço web é um sistema de software projetado para suportar interação máquina-máquina interoperáveis sobre uma rede (BOOTH et al., 2004). Com amplo suporte entre fornecedores e empresas, os serviços da web permitem que sistemas de computação em qualquer plataforma se comuniquem pelas intranets e extranets da empresa, e na internet, com suporte para segurança de ponta a ponta, serviços de mensagens confiáveis, transações distribuídas e muito mais. Utilizando serviços web, pode-se trocar dados com acoplamento fraco na forma de mensagens XML entre sistemas heterogêneos. O acesso remoto a dados e a lógica da aplicação são conceitos antigos, mas atuando com baixo acoplamento tonaram-se inovadores. Tentativas anteriores como o modelo de objetos componentes distribuídos (DCOM - Distributed Component Object Model), Internet Inter-ORB Protocol (IIOP) e Java Remote Method Invocation (RMI) requeriam forte integração entre o cliente e o servidor. Ao invés de usar o contrato baseado em XML, que é essencial para serviços da web, eles usavam os formatos de dados binários, específicos do sistema operacional e de sua implementação. Enquanto DCOM, IIOP e Java / RMI exigem uma tecnologia de determinado componente ou convenção no chamado de objetos, os serviços da web não. A única suposição feita entre o cliente e o servidor é que os destinatários vão entender as mensagens que recebem. Em outras palavras, o cliente e o servidor concordam com um contrato, neste caso, um contrato que é definido usando WSDL e XSL Schema Definition (XSD). Em seguida, o cliente e o servidor comunicam-se por mensagens, confirmando que honraram o contrato através de um transporte especifico, como o Hypertext Transfer Protocol (HTTP). Como resultado, temos programas escritos em qualquer linguagem e sendo executados em qualquer sistema operacional usando qualquer modelo componente e podendo utilizar o serviço web. Além disso, a flexibilidade de um formato de texto como XML permitirá a evolução da troca de mensagens de maneira fracamente acoplada. Esse fraco acoplamento é obrigatório em ambientes em que não seja possível a atualização simultânea de todas as partes na troca de mensagens. Os serviços da web baseiam-se em um conjunto central de padrões que descrevem a sintaxe e a semântica da comunicação por software: o XML fornece a sintaxe comum para a representação de dados; o protocolo Simple Object Access Protocol (SOAP) fornece a semântica para a troca de dados; o Web Services Description Language (WSDL) fornece um mecanismo para descrever as capacidades de um serviço da web. 4

5 Especificações adicionais, conhecidas de modo geral como arquitetura WS-*, definem a funcionalidade de detecção, os sistemas de eventos, os anexos, a segurança, os serviços de mensagens confiáveis, as transações e o gerenciamento dos serviços da web. Estas características dos serviços web se devem, em grande parte, ao fato de basearem-se em normas padrões, dentre as quais se destacam: XML, SOAP, WSDL e UDDI (Universal Description, Discovery and Integration). O acesso a um serviço web é semelhante a qualquer requisição feita através de uma URL (Uniform Resource Locator). A diferença está no conteúdo do que é enviado na requisição do cliente para o servidor. Os clientes enviam um documento XML, formatado de maneira especial, de acordo com as regras da especificação SOAP (CERAMI, 2002). 2.3 ASP.NET Web Services Dentre várias definições para Web Services encontradas, uma delas é; o Web Service é a lógica da aplicação disponível para outros programas, através de protocolos padrões da web e independente de qualquer plataforma. Sobre a lógica da aplicação, pode-se afirmar que o Web Service expõe alguma lógica ou código da aplicação, que podem ser cálculos ou operações ao banco de dados, por exemplo. Levando em conta que a maioria dos sites, hoje, são acessados via navegador, logo Web Services serão acessados por programas. Todo o conceito de Web Service é baseado em protocolos padrões da Web, como HTTP, XML, SOAP, WSDL e UDDI, que serão mostrados em detalhes, mais adiante, neste artigo. Um Web Service pode ser implementado por qualquer plataforma. Os padrões citados anteriormente não são proprietários, e são suportados pela maioria dos fabricantes e desenvolvedores de plataformas (BASIURA, 2001). Segundo Josuttis (2007), existem cinco padrões fundamentais para Web Services. Dois deles são padrões gerais que já existiam e foram usados no desenvolvimento dos Web Services: XML é usado para descrever modelos, formatos e tipos de dados, ou seja, é a linguagem sobre a qual são construídas todas as linguagens de Web Services. HTTP é o protocolo que irá transportar as mensagens geradas pelos Web Services. Os outros três padrões fundamentais são específicos para Web Services: WSDL é usado para definir interfaces de serviço. Ele irá descrever dois diferentes aspectos de um serviço: sua assinatura (nome e parâmetros) e detalhes de protocolo e localização. Este padrão descreve exatamente o que o Web Service faz e como invocá-lo. SOAP é o padrão que define o protocolo do Web Service. Enquanto HTTP é o protocolo usado pela internet, SOAP é o formato específico para a troca de dados via Web Service. UDDI é o padrão para gerenciamento do Web Service, ou seja, registra e encontra serviços WSDL O WSDL descreve o serviço na forma bottomup (de baixo para cima). Inicia com os tipos usados e termina com a localização (ou endereço) do serviço. Com isso, são formadas três camadas. A primeira camada descreve a interface do serviço. Esta interface pode consistir em uma ou mais operações com entrada ou saída de parâmetros que usam tipos específicos na primeira sessão do arquivo WSDL. Existem algumas diferenças entre a versão WSDL 1.1 e a 2.0, mas não é o objetivo abordar com detalhes cada diferença, e sim mostrar a evolução do protocolo. No WSDL 1.1, os parâmetros dos serviços são definidos nas sessões <message>, enquanto na versão WSDL 2.0 são definidos como qualquer outro tipo na seção <types> (JOSUTTIS, 2007). A segunda camada define o binding (ligação) do Web Service. Isto é, o protocolo e formato para o qual as operações do Web Service são fornecidas. A terceira camada define a localização física (endereço, URL) onde o Web Service está disponível. A figura 2 mostra as duas estruturas de WSDL 1.1 e WSDL

6 2.3.2 SOAP Figura 2 Estrutura do WSDL 1.1 e WSDL 2.0. As mensagens SOAP contêm um formato XML e o elemento root chamado <Envelope>. Ele pode conter um opcional <Header> e um elemento obrigatório <Body>. O elemento Body (corpo) contém o payload (carga útil), que pode ser uma requisição, uma resposta ou dados de falha. O elemento Header (cabeçalho) pode conter informações adicionais para ajudar a lidar com a infraestrutura de mensagens (como, por exemplo, dicas de roteamento e dicas de segurança) (JOSUTTIS, 2007). Abaixo é exemplificada uma requisição SOAP. Figura 3 Exemplo de requisição SOAP. A mensagem de resposta a esta requisição deve conter o formato mostrado na Figura UDDI Figura 4 Exemplo de resposta a requisição SOAP. Inicialmente, a UDDI era um termo mais amplo, Universal Description, Discovery and Integration Business Registry (resumindo, UDDI Business Registry ou ainda mais curto UBR). A ideia original era 6

7 introduzir as três funções de um mercado de trabalho: fornecedores que oferecem serviços, consumidores que precisam de serviços e corretores que agrupam esses serviços para publicá-los (JOSUTTIS, 2007). 2.4 O que é o WCF? Figura 5 UDDI - Fornecedores, consumidores e corretores. Segundo Löwy (2010), o Windows Communication Foundation é um kit de desenvolvimento de software (SDK) para desenvolvimento e distribuição no Windows. O WCF fornece um ambiente de execução dinâmico para seus serviços, isto é, efetua a compilação e interpreta os códigos dos aplicativos. Embora seja possível o desenvolvimento de serviços sem o WCF, na prática, esse desenvolvimento fica significativamente mais fácil com ele. Esta ferramenta, além de facilitar o desenvolvimento, traz vários benefícios, como mais segurança nos códigos, devido à estrutura bem formada, aos padrões de mercado empregados, aos gerenciamentos de estados, às métricas de desempenho e à fácil implementação. De fato, o WCF foi construído com os aspectos de SOA (Service Oriented Architecture) em mente. Cambiucci (2008) cita alguns. O design e a implementação de serviços são naturalmente desacoplados da lógica de negócios da aplicação. Essa característica é que permite a migração das aplicações atuais para um modelo de serviços. Serviços expõem funcionalidades para clientes remotos através de contratos explícitos de serviços e de dados. Serviços são executados de forma autônoma, não havendo impacto entre eles quando ocorre uma falha. Ou seja, o isolamento é uma condição obrigatória entre serviços, assim como as fronteiras de segurança. Serviços podem ser distribuídos através de diferentes protocolos, o que atende a uma série de cenários presentes no ambiente corporativo. A interoperabilidade é uma exigência. Serviços são agnósticos ao transporte, ou seja, podem ser expostos diretamente na web, via intranet, ou usado como um backend em ambientes corporativos. Resumindo, serviços são orientados a mensagens, possuem contratos de serviços e de dados, são multiprotocolos e multihosts, com aspectos de segurança, isolamento, políticas, monitoração, comportamentos etc. Todos esses aspectos são atendidos pelo modelo de programação do WCF. Ainda, através do ABC do WCF (onde Endpoint = Address + Binding + Contract) é possível uma grande flexibilidade na implantação e configuração de serviços em diversos ambientes de TI. Desde a versão 1.0 do.net Framework é possível implementar serviços web como os encontrados no mercado, com a diferença de que o desenvolvedor pode utilizar os recursos nativos do framework em sua construção. Entre estes recursos estão: autenticação, cache e gerenciamento de estado. A partir do.net Framework 3.0, a Microsoft unificou as várias tecnologias de programação para 7

8 sistemas distribuídos em um único modelo, visando a arquitetura orientada a serviços (SOA). Uma das principais características desta nova API (Application Programming Interface) é o fato do WCF ser totalmente desacoplado das regras de negócio que serão expostas pelo serviço. A tecnologia WCF tem muitas funcionalidades, que visam performance, segurança, disponibilidade, transações, sincronizações e tratamento de erros (LÖWY, 2007). 2.5 Arquitetura orientada a serviços Uma arquitetura orientada a serviços (SOA) é baseada em quatro abstrações principais: um frontend de aplicação, um serviço, um repositório de serviços e um barramento de serviços. O W3C conceitua SOA como um conjunto de componentes que podem ser invocados e ter suas descrições de interface publicadas e descobertas. As tecnologias RMI, DCOM, CORBA e DCE são exemplos de sistemas SOA (HAAS, BROWN, 2004). O frontend da aplicação é desacoplado dos serviços. Cada serviço tem um contrato, que define o que será feito e apresenta uma ou mais interfaces para implementar esse contrato. O repositório de serviços fornece um lar para os serviços, e o barramento de serviços fornece um mecanismo de padrão industrial para a conexão e interação com os serviços. Os arquitetos das empresas veem a SOA como um meio de ajudar os negócios a responder mais rapidamente e com melhor relação custo-benefício às condições do mercado, que estão em constate mudança. Durante o evento SOA & Business Processes Conference 2007, realizado em Redmond, EUA, a Microsoft apresentou para o mercado uma arquitetura de referência para projetos de SOA, como uma proposta para a organização de camadas e serviços, conforme é visto na figura 8. Figura 6 - Arquitetura de Referência SOA proposta pela Microsoft. Cambiucci (2009) descreve as principais camadas da arquitetura de referência SOA. Primeiro, percebe-se uma camada de aplicações compostas, que é destinada às interfaces de composição de serviços da solução. Aqui, as interfaces e aplicações combinam serviços e chamadas de processos da infraestrutura. Logo abaixo, temos a camada de composição de negócios ou processos, onde orquestrações e workflows podem consumir serviços ou tratar regras de negócio, de acordo com as necessidades da solução. Na sequência, aparece a camada de serviços atômicos ou de composição, que implementam as interfaces de serviços propriamente ditas. Baterias de Web Services ou serviços hospedados em servidores IIS (Internet Information Services) são exemplos para essa camada. Apoiando os serviços acima, encontramos os componentes de serviços, que podem ser componentes legados, exportando funcionalidades existentes de nossa infraestrutura. 8

9 Por último, a camada de integração ou legado (LoB - Line of Business Application), em que se encontram sistemas nativos, bancos de dados e soluções que podem ser exportadas, para outras áreas da empresa, por exemplo. Atendendo a todas as camadas, encontramos as bibliotecas comuns, necessárias para a manutenção, administração e operação da solução. Assim, vemos as camadas verticais do desenho, que implementam monitoração, autorização, segurança, controle de acesso, auditoria etc. São bibliotecas básicas, construídas ao longo do projeto ou fornecidas por alguma ferramenta de operação de serviços. Em muitos casos, barramentos de serviços oferecem essas funcionalidades de forma nativa, economizando algum tempo de desenvolvimento para o projeto. Um fator de sucesso em muitos projetos de SOA tem sido a adoção de uma arquitetura de referência, que posiciona corretamente as camadas e componentes da solução. Em muitos casos, essa estruturação garante o respeito de interfaces de forma padronizada, assim como a coesão e responsabilidades previstas para cada camada, fornecendo o mínimo de organização e facilidade de manutenção futura. 2.6 Justificativa Como visto nos itens acima, existe formas diferentes de obter resultados que resulta em uma aplicação SOA. Sendo o conceito de Web Services mais antigo, muitas aplicações já foram construídas neste modelo. Este artigo irá abordar vantagens e auxiliará em uma possível migração de Web Services para WCF, objetivando entender desde a sua estrutura de projeto até detalhes relacionados à sua execução. Cada uma das seções a seguir irá analisar e discutir essas mudanças, mostrando também alguns detalhes importantes que poderão apresentar um comportamento estranho durante a execução, caso não sejam identificados a tempo. 3 METODOLOGIA Com base nestas diferenças entre WCF e ASP.NET Web Services (ASMX), uma comparação de desempenho entre estes serviços é vital para a análise de custo-benefício em sua implementação. Isto ajudará muito em uma migração ou aquisição de investimentos para começar a utilizar tais tecnologias. Mas não apenas a performance foi comparada neste artigo. Foram realizados testes, abordando as principais características de cada tecnologia, como segurança, aplicabilidade, reúso e expansibilidade. Foi criado um ambiente de testes em que foram executados testes pontuais, analisando desempenho, segurança, escalabilidade e aplicabilidade. Além disso, foi realizada a análise de migração em um ambiente de produção que anteriormente utilizava ASP.NET Web Services e passou a utilizar o WCF. Foram reestruturadas as camadas da arquitetura com base em SOA. Neste ambiente foram apresentadas três aplicações de uma empresa de venda de computadores. Essas aplicações são: sistema de vendas, sistema de suporte e sistema financeiro. Inicialmente, o problema de comunicação entre esses sistemas era resolvido através do uso de ASP.NET Web Services e troca de arquivos. Foi desenvolvida uma camada para comunicação entre estas aplicações, utilizando o WCF e, assim, efetuados os testes nas duas formas de solução. O objetivo é mostrar todos os benefícios e detalhes de uma solução robusta e evolutiva, aplicando o WCF em um ambiente real de produção. 3.1 Ambiente Em todos os testes foi utilizado o mesmo ambiente. Um servidor com processador Intel Xeon X5680 (12M Cache, 3.33 GHz, 6.4), 12 GB de memória RAM, placa de rede 1 Gbps e o sistema operacional Windows Server 2008 R2. Os clientes serão quatro computadores com processadores Core 2 Duo 3.0 GHz, 2GB de memória RAM e placa de rede de 1 Gbps. A infraestrutura é detalhada na Figura 7. O servidor web responsável pela exposição dos serviços será o IIS

10 Servidor Cliente 1 Cliente 2 Cliente 3 Cliente 4 Switch 3.2 Performance de operações 1GB Ethernet Figura 7 Infraestrutura para realização dos testes. Inicialmente, foram desenvolvidas duas soluções em cada uma das tecnologias, WCF e ASP.NET Web Services. Estas soluções não terão nenhuma boa prática inclusa, apenas os requisitos mínimos para que se possa efetuar uma transação com sucesso. Cada uma das aplicações será formada por um processo de requisição e resposta, padrão das duas tecnologias. A requisição enviará um número inteiro e terá como resposta uma coleção de objetos criados no servidor. Esta coleção de objetos será padrão nas duas aplicações e pode ser conferida na Figura 8. Ordem[] GetOrdens(int NumOrderns); { Ordem[] ordens = new Ordem[numOrdens]; for (int i = 0; i < numordens; i++) { Ordem ordem = new Ordem(); OrdemLinha[] linhas = new OrdemLine[2]; linhas[0] = new OrdemLine(); linhas[0].itemid = 1; linhas[0].quantidade = 10; linhas[1] = new OrdemLine(); linhas[1].itemid = 2; linhas[1].quantitidade = 5; ordem.ordemitens = lines; ordem.clienteid = 100; ordem.endereco1 = " "; ordem.endereco2 = " "; ordem.cidade = " "; ordem.estado = " "; ordem.cep = " "; ordem.pais = "United States"; ordem.tipoenvio = "Courier"; ordem.cartaocreditotipo = "XYZ"; ordem.numerocartao = " "; ordem.validadecartao = DateTime.UtcNow; ordem.nomecartao = " "; ordens[i] = ordem; } return ordens; } Figura 8 Código que irá criar processamento no serviço. Com este cenário foi possível simular um ambiente de produção e realizar a contagem de transações que cada uma das aplicações pode oferecer por segundo. Nos testes executados, tanto no ASP.NET Web Services quanto no WCF, o servidor trabalhou com o processamento próximo a 100% de utilização. Este teste mostrou o poder de desempenho do WCF e do APS.NET Web Services. Contudo, uma 10

11 aplicação SOA requer análises em diversas variáveis, e isso será abordado nas próximas subseções. 3.3 Segurança Foi desenvolvido um estudo sobre segurança em que foram abordados quesitos básicos do ASP.NET Web Services e do WCF. Apesar de as duas formas poderem utilizar o protocolo HTTPS (Hypertext Transfer Protocol Secure), o WCF consegue ter mais recursos de segurança nativamente e, quando é desenvolvida uma aplicação SOA, é fundamental que este quesito seja relacionado. As principais funcionalidades fornecidas pelo WCF para o gerenciamento de autenticação e autorização de serviços, abordando as vantagens e desvantagens de cada modo, serão explanadas na validação de segurança. O ASP.NET Web Services provê a segurança apenas no nível do IIS, e o WCF já consegue embutir várias funcionalidades em seu código, visto que não é necessariamente publicado pelo IIS. O resultado esperado é um detalhamento dos quesitos de segurança de cada uma das tecnologias, tendo um pouco mais de segurança os serviços em WCF. E será validado na implementação da solução, acionando os principais requisitos de segurança. O ASMX pode confiar somente na segurança baseada no transporte, ou seja, ele somente será seguro se o serviço for exposto através de HTTPS. Só se pode abrir mão do HTTPS se for utilizada a segurança baseada na mensagem, que está disponível no ASMX, através do Web Services Enhancements (WSE). Muitas vezes se utiliza um SoapHeader com usuário e senha. Isso somente terá alguma segurança se utilizar HTTPS ou segurança em nível de mensagem. Do contrário, qualquer um que intercepte a requisição, conseguirá extrair o conteúdo da mensagem e seus respectivos headers. Como já era de se esperar, o WCF fornece ambos os níveis de segurança nativamente. São configurações que se realizam (de forma imperativa ou declarativa), e que o serviço utilizará para efetuar a autenticação e a autorização do cliente. Uma das grandes dificuldades encontradas ao utilizar-se o WCF é que, mesmo se ele for configurado para autenticar o cliente, será necessário utilizar um certificado para garantir a segurança. 3.4 Representação dos dados Foi feita uma análise das diferenças na representação de dados entre ASP.NET Web Services e WCF. Neste item será abordada a maneira como é padronizado o código. A análise detalhou algumas diferenças nas classes utilizadas por cada uma das tecnologias, identificando assim suas vantagens e desvantagens. 3.5 Camada de serviços Neste ambiente de aplicações utilizando a comunicação através de alguns ASP.NET Web Services e arquivos de importação, muito tempo e confiabilidade se perdem. Até mesmo o desenvolvimento de novas aplicações fica comprometido nesta estrutura. Foi criada uma camada de serviços WCF para esta organização de vendas de computadores, inicialmente para ligar apenas os três sistemas informados, vendas, suporte e financeiro. A camada de serviços é completamente independente das aplicações, e adequações foram feitas nas antigas aplicações para que as trocas de informações sejam suportadas Reuso Foi realizada uma análise na estrutura do código, visando o reúso: quanto é possível reutilizar os Web Services desenvolvidos em ASP.NET e quanto é possível reusar os serviços WCF. Esta análise exige um pouco mais de cuidado devido ao tempo necessário para confirmações Migração Com o desenvolvimento desta nova plataforma, analisamos quesitos importantes, como tempo de desenvolvimento, dificuldade da estrutura e compatibilidade. O objetivo é determinar a ocasião mais propícia para realizar uma migração de plataforma ou quando será necessário desenvolver novamente toda a estrutura de comunicação. 11

12 4 VALIDAÇÃO Os resultados obtidos com este trabalho serão abordados nas subseções a seguir. 4.1 Desempenho Com os testes de desempenho, foi identificada uma melhora de 12%, 13% e 52% para requisições de 1, 10 e 100 objetos respectivamente. Nesta seção, a comparação feita tem o objetivo de mensurar o desempenho dos serviços e nenhuma segurança foi utilizada. O WCF binding utilizado foi o BasicHttpBinding. Esta ligação padrão utiliza HTTP como protocolo de transporte. A hospedagem dos serviços foi feita no IIS 7.0, deixando exposto apenas um serviço. O binding utilizado foi o BasicHttpBinding, para o WCF Service e o protocolo HTTP para o ASP.NET Web Service. A figura abaixo ilustra as camadas de um serviço que utiliza este protocolo. Figura 9 Camadas utilizando o BasicHttpBinding. Todos os testes executados empregaram a mesma configuração de hardware apresentada na sessão 3.1. O número de processos-cliente usados no sistema cliente foi suficiente para assegurar que o processador do servidor fosse completamente saturado, ou seja, próximo a 100% de utilização. Os dados coletados e aqui apresentados refletem uma média de várias execuções convergentes, e todos os cuidados foram tomados para garantir sua sustentabilidade. Para criar uma quantidade significativa de requisições aos serviços, foi utilizada a ferramenta WCFStorm (www.wcfstorm.com). 12

13 Operações por segundo Figura 10 WCFStorm. Também foi aplicado um projeto open source para executar estes testes de carga. O projeto utilizado foi o WCF Load Test (http://wcfloadtest.codeplex.com/), Foram levados em consideração os resultados das duas ferramentas. Testes unitários e, posteriormente, testes de carga foram criados para verificar a capacidade de resposta de cada uma das tecnologias. Os testes unitários realizam uma chamada simples ao serviço, que retornou uma coleção de objetos. Nos testes de carga foi criado um cenário onde foi simulado o aumento crescente de usuários até 200, aumentado 10 usuários a cada 10 segundos Throughput Nas comparações de taxa de transferência, quanto maior o valor alcançado, melhor será o resultado. Também será demostrado os resultados de tempo de resposta, neste caso, quanto menor o valor, mais rápido o serviço responde as chamadas. Foram utilizados gráficos de barras para exemplificar os resultados. Como é mostrado na figura 11, o WCF melhorou o desempenho sobre ASMX. No gráfico, três diferentes assinaturas foram utilizadas. Em cada caso, um inteiro é passado do cliente para o servidor, e uma coleção de objetos (1,10 ou 100) é retornado para o cliente. O WCF supera em 12%, 13% e 52% para 1, 10 ou 100 objetos em uma mensagem, respectivamente. 300 Throughput WCF ASMX 50 0 Mensagem com 1 obj Mensagem com 10 obj Mensagem com 100 obj Figura 11 Gráfico de throughput. 13

14 Segundos Tempo de resposta Cada operação leva um determinado tempo para obter o retorno. Como visto na figura 12, o WCF consegue responder a mais transações por segundo, consequentemente, sua taxa de tempo de resposta é mais rápida também. É possível verificar o tempo de resposta no gráfico abaixo Tempo de resposta WCF ASMX Mensagem com 1 obj Mensagem com 10 obj Mensagem com 100 obj Figura 12 Gráfico de tempo de resposta. Desta maneira, o WCF mostra larga vantagem no tempo de resposta de seus serviços expostos. Com estas duas vantagens extremamente importantes comprovadas nos testes, a comunicação através do WCF é uma forma segura, eficaz e rápida para transmitir os dados entre aplicações e clientes Memória Foi analisada a memória do servidor no momento dos testes de carga. Notou-se que a utilização de memória é mais elevada com o WCF. Isso se deve ao nível de complexidade das informações por ele processadas. A ferramenta utilizada para mensurar este recurso foi o Perfmon.exe nativo no Windows Server 2008 R2. Tabela 1 Utilização de memória em %. WCF ASMX Teste Teste Teste Verifica-se que, com aplicações WCF, a memória do servidor deve ser mais elevada para suportar melhor a tecnologia. 4.2 Camada de serviços O problema de comunicação entre aplicações consome boa parte no tempo de desenvolvimento de uma solução. Foi analisado um projeto em produção no qual aplicações comunicavam-se entre si através de Web Services e de exportação e importação de arquivos. A figura abaixo mostra como estava o ambiente originalmente. 14

15 Figura 13 Camada de serviços Foi implementada uma camada de serviços, interligando as aplicações envolvidas, proporcionando desta maneira uma forma centralizada de comunicação. Figura 14 Camada de serviços Assim, obteve-se uma padronização na comunicação entre as aplicações, provendo melhor controle e facilidade para o desenvolvimento, testes e correções, entre outros. O ganho de desempenho é notório, mas difícil de comparar, visto que nem todas as comunicações feitas anteriormente ocorriam através de serviços web e sim por transferência de arquivos ou até mesmo de forma manual. Todas as vantagens explicadas na seção anterior ficaram visíveis nesta implementação, mas não foi possível efetuar testes exatamente iguais, pois a lógica do sistema também mudou Reúso O reúso é um item difícil de mensurar, devido ao tempo que se leva para comprovar sua eficácia. Pelo fato do WCF prover uma interface com o contrato de seus serviços, os serviços ficam mais simples de interpretar, modificar e reutilizar. 4.3 Migração Os ASP.NET Web Services já existem há algum tempo e há muitas aplicações que ainda o utilizam. Esta seção ajudará a entender melhor as diferenças entre ASMX e o WCF, desde a sua estrutura de projeto até detalhes relacionados a sua execução Contratos O ASMX irá se basear nos métodos decorados com o atributo WebMethodAttribute para gerar o 15

16 documento WSDL. Para controlar a visibilidade dos métodos, é necessário adicionar ou remover este atributo. Qualquer tipo complexo referenciado nos métodos será automaticamente inserido na descrição do serviço sem nenhuma configuração extra. Já o WCF trabalha de forma bem diferente. Ele utiliza interfaces para determinar os contratos que o serviço apresenta. Essas interfaces são aquelas tradicionais, já utilizadas no dia a dia, mas decorada com um atributo chamado ServiceContractAttribute. Os métodos são descritos dentro das interfaces e expostos através do atributo OperationContractAttribute Serialização e Desserialização A serialização e a desserialização estão condicionadas ao serializador que cada tecnologia utiliza. O ASMX utiliza o XmlSerializer para transformar os objetos em XML e vice-versa. O XmlSerializer serializa todos os membros públicos (propriedades e campos), sem a necessidade de definir qualquer atributo. É possível controlar a forma como essa serialização será realizada utilizando vários atributos que existem neste mesmo namespace. O WCF, por outro lado, utiliza o serializador DataContractSerializer por padrão. Este serializador trabalha de forma semelhante ao XmlSerializer, com poucas diferenças. Entre essas diferenças está o tratamento do atributo SerializableAttribute, utilizado para manter a compatibilidade com objetos.net Remoting. Outra diferença é a capacidade que este serializador tem de manter membros definidos como private e protected. Este serializador ainda gera um XML mais simplificado, melhorando a interoperabilidade entre as plataformas. Se desejar utilizar o XmlSerializer, basta adicionar ao contrato o atributo XmlSerializerFormatAttribute Protocolo e hospedagem O ASMX só pode ser hospedado no IIS, utilizando o protocolo HTTP/HTTPS. O WCF tem uma arquitetura mais flexível e independente do protocolo, ou seja, ele pode ser executado em HTTP, HTTPS, TCP, MSMQ etc. O WCF também pode utilizar o IIS como host. Mas, além dele, é possível fazer uso de outras aplicações para expor um serviço, como um Windows Service, ou ainda, uma simples aplicação Windows/Console Implantação Assim como em qualquer aplicativo.net, basta mover os serviços para o IIS remoto e tudo já funciona. É necessário certificar-se de que tenha a mesma versão do.net Framework (isso inclui o service pack) instalada no servidor. É importante dizer que ambas tecnologias necessitam de um diretório virtual devidamente criado no IIS, com as permissões também configuradas Cliente Dentro do Visual Studio.NET você tem duas opções para referenciar um serviço: Add Web Reference e Add Service Reference. A primeira opção é utilizada para referenciar um serviço ASMX. A segunda é utilizada para referenciar um serviço WCF. Ao serem acionadas, essa opções criarão automaticamente o proxy, utilizando a API da tecnologia correspondente. 4.4 Segurança A segurança entre ASP.NET Web Services e WCF é fundamental em um ambiente orientado a serviços. Nesta sessão, são apresentadas duas soluções, ambas abordando as funcionalidades de cada uma das tecnologias. Por ser uma tecnologia recente, o WCF provê nativamente muitos recursos para trazer segurança a um serviço ASP.NET Web Service Web services criados com o ASP.NET podem dispor de segurança de autenticação e autorização oferecida por esta estrutura ou customizada. O ASP.NET opera em conjunto com o IIS para prover várias opções de autenticação e autorização. Também é possível criar opções de autenticação com o uso de SOAP Headers. Para isso, é necessário que o serviço tenha uma classe responsável pela verificação das credenciais. 16

17 A figura 15 apresenta um exemplo de utilização do SOAP Header com a instância Authentication. Esta classe irá coletar os dados para autenticação. Figura 15 Exemplo SOAP Header. O atributo Authentication é uma instância da classe AuthHeader, responsável por armazenar e decripitar os dados de autenticação, pois serão enviados criptografados por questões de segurança no transporte. Figura 16 Classe AuthHeader derivando a classe SoapHeader. O cliente irá enviar as credenciais criptografadas e invocar o serviço web. Veja a codificação. Figura 17 Cliente fazendo chamada ao serviço web. O serviço irá decripitar os dados de autenticação e verificar se o usuário possui direitos de acesso. O código abaixo mostra esta sequência WCF Figura 18 Serviços verificando credenciais e atendendo ao cliente. Apesar de serviços WCF não fugirem muito do padrão de segurança de aplicações convencionais, há algumas exceções, e uma delas é a forma de segurança que será aplicada à mensagem. Essa forma de segurança influencia na forma que a autenticação será realizada e como a mensagem será protegida durante a viagem. É importante dizer que se a transferência da mensagem entre o cliente e o serviço, ou entre o 17

18 serviço e o cliente não fosse protegida a autenticação e a autorização estariam completamente vulneráveis, permitindo vários tipos de ataque. Assim como outras configurações, a segurança também é uma característica do binding, podendo efetuar a configuração de forma declarativa ou imperativa. O WCF fornece cinco formas diferentes para tornar segura a transferência da mensagem. Cada uma dessas formas tem suas particularidades e influenciam em como a mensagem será protegida e em como a autenticação será realizada. Abaixo são detalhadas essas formas de segurança. None Como o próprio nome indica, nenhuma espécie de segurança é fornecida e toda a mensagem será trafegada sem criptografia. Transport Esta opção informa ao WCF que o transporte (TCP, IPC, MSMQ ou HTTPS) garantirá a segurança da mensagem, criptografando toda a comunicação. Além disso, fornece integridade, privacidade e autenticação mútua. Um dos pontos negativos deste modo é que a segurança só será garantida se for ponto a ponto. Ou seja, se houver intermediários entre o cliente e o serviço, não há garantia de que a mensagem chegará segura até o destino final. Message Com esta opção, toda a mensagem será criptografada, garantindo a autenticação e a proteção da mensagem (confidencialidade e integridade). Ao contrário da segurança baseada no transporte, a segurança em nível de mensagem garante a segurança end-to-end, independentemente do número de intermediários entre o cliente e o serviço. Isso permite, inclusive, que o serviço seja exposto sob um protocolo não seguro, como é o caso do HTTP. Outro grande benefício é que a segurança se baseia em padrões existentes no mercado, o que garantirá a interoperabilidade. Já um ponto negativo desta opção é a sobrecarga, pois todas as mensagens serão criptografadas e assinadas. Both Como o próprio nome diz, esta opção utiliza a segurança em nível de transporte e em nível de mensagem, ou seja, a mensagem será protegida e, além disso, será transferida por um transporte seguro. Apesar de maximizar a segurança, isso pode causar uma grande perda de performance. Além disso, esse nível de segurança só é permitido em protocolos específicos, como é o caso do MessageQueue, no qual a latência não é sentida. TransportWithMessageCredential Esta opção é uma mistura das duas anteriores. Ou seja, a autenticação do cliente será fornecida em nível de mensagem, enquanto a proteção da mensagem (confidencialidade e integridade) e a autenticação do serviço serão fornecidas pela segurança do transporte. TransportCredentialOnly Apenas a autenticação mútua é fornecida em nível de transporte, não havendo a proteção da mensagem. Esta opção somente está disponível para o ligação basichttpbinding. 5 CONCLUSÃO Com este estudo, foram identificadas as principais vantagens do WCF e os benefícios alcançados com sua utilização. Ganhos de desempenho e escalabilidade, fundamentais para as organizações, são possíveis com a utilização de comunicação WCF. Como o assunto é relativamente novo, a documentação sobre tais testes ainda deixa a desejar, e este estudo poderá ser uma base de conhecimento e poderá trazer resultados significativos para o desenvolvimento da integração de aplicações comerciais. O WCF fornece uma grande quantidade de funcionalidades que facilmente podem ser adicionadas em serviços. Além disso, grande parte dessas funcionalidades pode ser configurada de forma declarativa, através de arquivos de configuração que, na maioria dos casos, trazem enorme flexibilidade. Apesar de ser uma tecnologia com muito mais recursos, o WCF não é complicado, pelo contrário, é bem simples. Ainda há algum receio em sua utilização, pois sistemas legados de intercomunicação de aplicações são extremamente caros e vitais nas empresas. Não é simples conseguir mudar o fluxo de dados de uma hora para outra. Mas, as vantagens obtidas com a programação orientada a serviços trazem benefícios (a curto e a longo prazos) aos quais arquitetos e desenvolvedores de software deveriam estar atentos. Conclui-se que o WCF é uma excelente evolução para os antigos ASP.NET Web Services, e que, na medida do possível, as aplicações legadas (ASMX) deveriam ser substituídas, levando em conta o treinamento de desenvolvedores no WCF para melhor aproveitamento. Apesar de o desenvolvimento ser 18

19 feito em uma plataforma orientada a objetos, o resultado é extremamente satisfatório. Tudo indica que, em um futuro próximo, será criada uma plataforma especifica para desenvolvimento orientado a serviços. 5.1 Trabalhos futuros A orientação a serviços é uma forma de desenvolvimento muito rica, mas pode ser melhor em diversos pontos. Algumas das oportunidades para novos trabalhos são: WCF na nuvem. Ambiente de Desenvolvimento Integrado (Integrated Development Environment IDE) para orientação a serviços. AGRADECIMENTOS Gostaria de agradecer especialmente ao professor Edemar Costa, por acompanhar e auxiliar o desenvolvimento deste trabalho, assim como a todos os professores que fizeram parte de minha formação acadêmica. Um agradecimento especial a minha mãe, Alzira Ferreira Gomes, cujo apoio tornou possível a conclusão da minha graduação nesta universidade. Muito obrigado. REFERÊNCIAS BASIURA, Russ et al. Professional ASP.NET Web Services. Birmingham: Ed. Wrox Press Ltd, BOOTH, David et al. Web Services Architecture. [S. l], W3C, fev f. Disponível em: <http://www.w3.org/tr/ws-arch/>. Acesso em: 24 abr CAMBIUCCI, Waldemir. Cenários de implementação de serviços com WCF - Parte 1: Aspectos de SOA. [S. l], MSDN Blogs, jun f. Disponível em: <http://blogs.msdn.com/b/wcamb/archive/2008/06/25/cen-rios-de-implementa-o-de-servi-os-com-wcf-parte- 1-aspectos-de-soa.aspx>. Acesso em: 17 abr CAMBIUCCI, Waldemir. Uma introdução ao Software + Serviços, SaaS e SOA. [S. l], MSDN Library, maio f. Disponível em: <http://msdn.microsoft.com/pt-br/library/dd aspx>. Acesso em: 17 abr CERAMI, Ethan. Web Services Essentials. 1 ed. Sebastopol: Ed. O Reilly Media, Inc., HAAS, Hugo; BROWN, Allen. W3C Working Group Note. [S. l], W3C Glossary, fevereiro Disponível em: <http://www.w3.org/tr/ws-gloss/>. Acesso em: 17 abr JOSUTTIS, Nicloai. SOA in Practice. Sebastopol: Ed. O Reilly Media, Inc., ago KHAN, Iqbal. Address Scalability Bottlenecks with Distributed Caching. [S. l], MSDN Magazine, jun f. Disponível em: <http://msdn.microsoft.com/pt-br/magazine/ff aspx#>. Acesso em: 17 abr LIBERTY, Jesse; HOROVITZ, Alex. Programming.NET 3.5. Sebastopol: Ed. O Reilly Media, Inc., jul LÖWY, Juval. Programando Serviços WCF. 1 ed. Sebastopol: Ed. O Reilly Media, Inc., LÖWY, Juval. Programming WCF Services. 3 ed. Sebastopol: Ed. O Reilly Media, Inc., PIGOSKI, Thomas M., Practical Software Maintenance. [S. l], John Wiley & Sons, Inc., SANTOS, Victor. Orientação a Objeto Parte I. [S. l], Web Final, julho Disponível em: <http://www.webfinal.com.br/blog/2010/07/03/sexta-net-aula-5-orientacao-a-objeto-parte-i/>. Acesso em: 17 abr SHODJAI, Payam. Serviços da Web e a plataforma Microsoft. [S. l], MSDN, 28 ago f. Disponível em: <http://msdn.microsoft.com/pt-br/library/aa aspx>. Acesso em: 17 abr

ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF

ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF Daniel Strassburger Edemar Costa Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência

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

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

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

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

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

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

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

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

Microsoft.NET. Desenvolvimento Baseado em Componentes

Microsoft.NET. Desenvolvimento Baseado em Componentes Microsoft.NET Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Desenvolvimento Baseado em Componentes Resolução de problemas específicos, mas que podem ser re-utilizados em

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 13 Web Services Web Services

Leia mais

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios

Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas. Criação de uma Serviço de Geração de Relatórios Universidade Federal de Goiás Centro de Recursos Computacionais - CERCOMP Divisão de Sistemas Criação de uma Serviço de Geração de Relatórios Goiânia 12/2011 Versionamento 12/12/2011 Hugo Marciano... 1.0

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

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

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB

CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB CONSTRUÇÃO DE APLICAÇÕES DISTRIBUÍDAS UTILIZANDO SERVIÇOS WEB Deusa Cesconeti e Jean Eduardo Glazar Departamento de Ciência da Computação Faculdade de Aracruz UNIARACRUZ {dcescone, jean}@fsjb.edu.br RESUMO

Leia mais

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES

INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES Sistema de Informação e Tecnologia FEQ 0411 Prof Luciel Henrique de Oliveira luciel@uol.com.br Capítulo 5 INFRAESTRUTURA DE TI E TECNOLOGIAS EMERGENTES PRADO, Edmir P.V.; SOUZA, Cesar A. de. (org). Fundamentos

Leia mais

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.

Consumindo um Web Service através de uma Aplicação Comercial em Android. Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com. Consumindo um Web Service através de uma Aplicação Comercial em Android Alex Malmann Becker www.alex.porthal.com.br alex@porthal.com.br 08/2014 Agenda Introdução Conceitos Web Service Por que utilizar

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

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

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

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

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello

Introdução Serviços Web WSDL SOAP UDDI Ferramentas. Serviços Web. (Web Services) Emerson Ribeiro de Mello 1/39 Serviços Web (Web Services) Emerson Ribeiro de Mello Departamento de Automação e Sistemas Universidade Federal de Santa Catarina 22 de Maio de 2007 2/39 Arquitetura Orientada a Serviços Arquitetura

Leia mais

SOA: Service-oriented architecture

SOA: Service-oriented architecture SOA: Service-oriented architecture Roteiro Breve História O que é Arquitetura de Software? O que é SOA? Serviços Infraestrutura Composição Sua empresa está preparada para SOA? Breve História Uma empresa

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

COMPUTAÇÃO EM NUVEM: TENDÊNCIAS E OPORTUNIDADES DE NEGÓCIOS RELATÓRIO EXECUTIVO DE NEGÓCIOS

COMPUTAÇÃO EM NUVEM: TENDÊNCIAS E OPORTUNIDADES DE NEGÓCIOS RELATÓRIO EXECUTIVO DE NEGÓCIOS COMPUTAÇÃO EM NUVEM: TENDÊNCIAS E OPORTUNIDADES DE NEGÓCIOS TM RELATÓRIO EXECUTIVO DE NEGÓCIOS A visão da computação em nuvem por Aad van Schetsen, vicepresidente da Compuware Uniface, que mostra por que

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UNIVERSIDADE FEDERAL DE MATO GROSSO INSTITUTO DE COMPUTAÇÃO COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO RELATÓRIO DE ESTÁGIO SUPERVISIONADO PROPOSIÇÃO DE UMA NOVA ARQUITETURA BASEADA EM

Leia mais

Introdução à Web Services

Introdução à Web Services Introdução à Web Services Emerson Ribeiro de Mello emerson@das.ufsc.br Universidade Federal de Santa Catarina O que falaremos... Pra que isso? O que é Web Services A camada de protocolos O que são: XML-RPC,

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

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

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

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

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

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL

Web Services. Tópicos. Motivação. Tecnologias Web Service. Passo a passo Business Web Conclusão. Integração de aplicações SOAP, WSDL, UDDI, WSFL Web Services Antonio Dirceu adrvf@cin.ufpe.br Tópicos Motivação Integração de aplicações Tecnologias Web Service SOAP, WSDL, UDDI, WSFL Passo a passo Business Web Conclusão Motivação Integração de Aplicações

Leia mais

Extensões MIDP para Web Services

Extensões MIDP para Web Services Extensões MIDP para Web Services INF-655 Computação Móvel Universidade Federal de Viçosa Departamento de Informática MIDP Architecture MIDP = Mobile Information Device Profile Connection Framework HttpConnection

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

Alinhando a infra-estrutura de aplicações com os negócios através de Application Delivery orientado a serviços

Alinhando a infra-estrutura de aplicações com os negócios através de Application Delivery orientado a serviços Alinhando a infra-estrutura de aplicações com os negócios através de Application Delivery orientado a serviços Visão Geral Desafio Solução Uma implementação SOA (Service Oriented Architecture) bem-sucedida

Leia mais

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões FACSENAC ECOFROTA Documento de Projeto Lógico de Rede Versão:1.5 Data: 21/11/2013 Identificador do documento: Projeto Lógico de Redes Versão do Template Utilizada na Confecção: 1.0 Localização: FacSenac

Leia mais

A Estrutura de um Web Service

A Estrutura de um Web Service A Estrutura de um Web Service Paulo Vitor Antonini Orlandin paulovitor_e@hotmail.com Resumo Atualmente, o Serviço Web é a solução mais utilizada para integração entre sistemas, pois apresenta vantagens

Leia mais

Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML

Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML Acadêmico: Leonardo Chagas D Ippolito Orientador: Prof. Marcel Hugo Blumenau, Dezembro de 2004

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

Projeto: Plataforma de Integração. Data: 01/08/2014

Projeto: Plataforma de Integração. Data: 01/08/2014 Manual do Usuário - Autenticação Plataforma de Integração Arquitetura de Software 1.0 20/03/2014 1 de 8 Histórico de Revisões Data Versão Descrição 01/08/2014 1.0 Criação do documento 04/08/2014 1.1 Revisão

Leia mais

Comunicado Técnico 11

Comunicado Técnico 11 Comunicado Técnico 11 ISSN 2177-854X Maio. 2011 Uberaba - MG Web Services e XML Comunicação Inteligente entre Sistemas Responsáveis: Daniela Justiniano de Sousa E-mail: dsol_dani21@hotmail.com Graduada

Leia mais

Revisão para a prova B2. Conteúdo das Aulas: 10, 11 e 14

Revisão para a prova B2. Conteúdo das Aulas: 10, 11 e 14 Revisão para a prova B2 Conteúdo das Aulas: 10, 11 e 14 Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Disciplina: Serviços de Redes Microsoft Professor:

Leia mais

Uma visão mais detalhada do software HP LoadRunner

Uma visão mais detalhada do software HP LoadRunner Boletim técnico Uma visão mais detalhada do software HP LoadRunner Índice Um novo enfoque no teste de desempenho: a solução HP LoadRunner 3 A solução HP LoadRunner e a terminologia dos testes de desempenho

Leia mais

Componentes para Computação Distribuída

Componentes para Computação Distribuída Componentes para Computação Distribuída Conceitos Foi a partir do fenômeno da Internet (WWW), no início dos anos noventa, que a computação distribuída passou a ter relevância definitiva, a ponto de a Internet

Leia mais

Documento apresentado para discussão. II Encontro Nacional de Produtores e Usuários de Informações Sociais, Econômicas e Territoriais

Documento apresentado para discussão. II Encontro Nacional de Produtores e Usuários de Informações Sociais, Econômicas e Territoriais Documento apresentado para discussão II Encontro Nacional de Produtores e Usuários de Informações Sociais, Econômicas e Territoriais Rio de Janeiro, 21 a 25 de agosto de 2006 PID - Projeto de Interoperabilidade

Leia mais

FERRAMENTAS PARA DESENVOLVIMENTO EM C#

FERRAMENTAS PARA DESENVOLVIMENTO EM C# FERRAMENTAS PARA DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Wyllian Fressatti 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

Criando Web Services. Palestrante: Daniel Destro do Carmo

Criando Web Services. Palestrante: Daniel Destro do Carmo Criando Web Services com Apache Axis Palestrante: Daniel Destro do Carmo Tópicos do Tutorial Introdução O que são Web Services? Padrões Web Services SOAP WSDL Web Services com Java O que é Apache Axis?

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

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

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

PRnet/2013. Linguagem de Programação Web

PRnet/2013. Linguagem de Programação Web Linguagem de Programação Web Linguagem de Programação Web Prnet/2013 Linguagem de Programação Web» Programas navegadores» Tipos de URL» Protocolos: HTTP, TCP/IP» Hipertextos (páginas WEB)» HTML, XHTML»

Leia mais

Arquitetura de Software: Uma Central para Gestão da execução de serviços

Arquitetura de Software: Uma Central para Gestão da execução de serviços Arquitetura de Software: Uma Central para Gestão da execução de serviços ADILSON FERREIRA DA SILVA Centro Paula Souza São Paulo Brasil afs.software@gmail.com Prof.a. Dr.a. MARILIA MACORIN DE AZEVEDO Centro

Leia mais

11/20/10. Resoluções: Teste de Áudio. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares.

11/20/10. Resoluções: Teste de Áudio. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares. Não suporto esses malucos de TI. Só inventam despesas. Não acredito que teremos que pagar por mais softwares. Teste de Áudio Quero adaptar os softs que já temos e você não sabe como faz e diz que não é

Leia mais

Modelos e Arquiteturas de Sistemas Computacionais

Modelos e Arquiteturas de Sistemas Computacionais Modelos e Arquiteturas de Sistemas Computacionais Prof. Ricardo J. Rabelo UFSC Universidade Federal de Santa Catarina DAS Departamento de Automação e Sistemas SUMÁRIO Importância da definição da Arquitetura

Leia mais

3 Propostas de Travessias de Firewalls/NAT

3 Propostas de Travessias de Firewalls/NAT 3 Propostas de Travessias de Firewalls/NAT Este capítulo irá apresentar as propostas deste trabalho para que aplicações que utilizem CORBA como plataforma de comunicação possam atravessar firewalls/nat.

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

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

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

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE. Kellen Kristine Perazzoli 1, Manassés Ribeiro 2 RESUMO INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE Kellen Kristine Perazzoli, Manassés Ribeiro RESUMO O grande avanço tecnológico vivenciado nos últimos anos, os web services vem sendo utilizados trazendo

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

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services

Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services Estudo comparativo das API s JAX-RPC e JAXM na construção de Web Services Danielle Corrêa Ribeiro 1, Elizabeth Mª Martinho da Silva 1, Francisco A. S. Júnior 1, Thatiane de Oliveira Rosa 1, Madianita Bogo

Leia mais

A Figura... mostra a arquitetura técnica de serviços na Web

A Figura... mostra a arquitetura técnica de serviços na Web Este capítulo proporciona uma visão técnica simplificada de um sistema UDDI. A arquitetura técnica de UDDI consiste de três partes: O Modelo de Informação UDDI Um esquema XML para descrever negócios e

Leia mais

Aluno: Paulo Roberto Alves de Oliveira Trabalho da disciplina Segurança em Windows 2010. Comparativo entre Apache e IIS.

Aluno: Paulo Roberto Alves de Oliveira Trabalho da disciplina Segurança em Windows 2010. Comparativo entre Apache e IIS. Aluno: Paulo Roberto Alves de Oliveira Trabalho da disciplina Segurança em Windows 2010 Comparativo entre Apache e IIS. Apache versus IIS 1. Resumo Os programas de computador Apache, da fundação Apache

Leia mais

INTEROPERABILIDADE EM SISTEMAS UTILIZANDO WEB SERVICES COMO MIDDLEWARES

INTEROPERABILIDADE EM SISTEMAS UTILIZANDO WEB SERVICES COMO MIDDLEWARES INTEROPERABILIDADE EM SISTEMAS UTILIZANDO WEB SERVICES COMO MIDDLEWARES Bruno B. Boniati 1, Agner Q. Olson 1, Ms. Edson Luiz Padoin 2 2 Departamento de Tecnologia - 1 Curso de Informática: Sistemas de

Leia mais

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica

MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica MADALENA PEREIRA DA SILVA SLA Sociedade Lageana de Educação DCET Departamento de Ciências Exatas e Tecnológica Desenvolvimento de Web Services com SOAP. 1. Introdução. Com a tecnologia de desenvolvimento

Leia mais

USE O PODER DA NUVEM. VEJA COMO A NUVEM PODE TRANSFORMAR SEUS NEGÓCIOS.

USE O PODER DA NUVEM. VEJA COMO A NUVEM PODE TRANSFORMAR SEUS NEGÓCIOS. USE O PODER DA NUVEM. VEJA COMO A NUVEM PODE TRANSFORMAR SEUS NEGÓCIOS. A computação em nuvem é uma mudança de paradigma no gerenciamento de TI e de datacenters, além de representar a capacidade da TI

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

EXIN Cloud Computing Fundamentos

EXIN Cloud Computing Fundamentos Exame Simulado EXIN Cloud Computing Fundamentos Edição Maio 2013 Copyright 2013 EXIN Todos os direitos reservados. Nenhuma parte desta publicação pode ser publicado, reproduzido, copiado ou armazenada

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

XDR. Solução para Big Data.

XDR. Solução para Big Data. XDR Solução para Big Data. ObJetivo Principal O volume de informações com os quais as empresas de telecomunicações/internet têm que lidar é muito grande, e está em constante crescimento devido à franca

Leia mais

ERP: Pacote Pronto versus Solução in house

ERP: Pacote Pronto versus Solução in house ERP: Pacote Pronto versus Solução in house Introdução Com a disseminação da utilidade e dos ganhos em se informatizar e integrar os diversos departamentos de uma empresa com o uso de um ERP, algumas empresas

Leia mais

2. Gerar um arquivo XSD e referenciá-lo no WSDL, fazendo com que seja possível catalogar o XML Schema no catálogo de XML Schemas da e-ping;

2. Gerar um arquivo XSD e referenciá-lo no WSDL, fazendo com que seja possível catalogar o XML Schema no catálogo de XML Schemas da e-ping; Guia de Orientação para Implementação de Web Services Este documento apresenta alguns direcionamentos referentes à implementação de web services. É uma versão preliminar da construção do Guia de Orientação

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

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos CORBA Common Object Request Broker Architecture Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos Introdução OMG (Object Management Group): uma organização formada por empresas

Leia mais

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE - FANESE CURSO SUPERIOR DE TECNOLOGIA em Gestão da Tecnologia da Informação 1 Ruironaldi dos Santos Cruz ARTIGO ARQUITETURA ORIENTADA A SERVIÇO SOA SERVICE

Leia mais

Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web Desenvolvimento de Aplicações Web André Tavares da Silva andre.silva@udesc.br Método de Avaliação Serão realizadas duas provas teóricas e dois trabalhos práticos. MF = 0,1*E + 0,2*P 1 + 0,2*T 1 + 0,2*P

Leia mais

CA Nimsoft Monitor para servidores

CA Nimsoft Monitor para servidores DOCUMENTAÇÃO TÉCNICA Setembro de 2012 CA Nimsoft Monitor para servidores agility made possible CA Nimsoft para monitoramento de servidores sumário CA Nimsoft Monitor para servidores 3 visão geral da solução

Leia mais

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER TÁSSIO JOSÉ GONÇALVES GOMES tassiogoncalvesg@gmail.com MINICURSO WINDOWS SERVER 2008 TÁSSIO GONÇALVES - TASSIOGONCALVESG@GMAIL.COM 1 CONTEÚDO Arquitetura

Leia mais

4 Solução Proposta. 4.1 Escopo Proposto

4 Solução Proposta. 4.1 Escopo Proposto 30 4 Solução Proposta 4.1 Escopo Proposto Neste trabalho propomos um arcabouço genérico que permite implementar leques de serviços baseados na Simulação de Monte Carlo, utilizando o ambiente de computação

Leia mais

Qual servidor é o mais adequado para você?

Qual servidor é o mais adequado para você? Qual servidor é o mais adequado para você? Proteção de dados Tenho medo de perder dados se e o meu computador travar Preciso proteger dados confidenciais Preciso de acesso restrito a dados Acesso a dados

Leia mais

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

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

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT 1. IDENTIFICAÇÃO Padrão Segmento Código P06.002 Revisão v. 2014 Plataformas Web 2. PUBLICAÇÃO Recursos Tecnológicos Versão Data para adoção Publicação v. 2014 23 de dezembro de 2014 PORTARIA N Nº 225 de

Leia mais

Aplicativo de referência em tecnologias Microsoft

Aplicativo de referência em tecnologias Microsoft Aplicativo de referência em tecnologias Microsoft André Luis Voltolini Sousa Prof. Everaldo Artur Grahl- Orientador Roteiro Introdução Objetivos Fundamentação teórica Especificação Implementação Operacionalidade

Leia mais

O Windows Server 2003 proporciona novos recursos e aprimoramentos em três áreas principais:

O Windows Server 2003 proporciona novos recursos e aprimoramentos em três áreas principais: 1. Introdução Os serviços do Microsoft Internet Information Server (IIS) 6.0 com o Windows Server 2003 fornecem recursos de servidor da Web integrados, confiáveis, escaláveis, seguros e administráveis

Leia mais

Gerenciamento de Rede Baseado em Políticas

Gerenciamento de Rede Baseado em Políticas Gerenciamento de Rede Baseado em Políticas (Policy-Based Networking) Ademir José de Carvalho Junior Recife, Fevereiro de 2007 Resumo: A complexidade das redes baseadas em IP atualmente segue crescendo

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

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

tecnologias web e gestão de identidade

tecnologias web e gestão de identidade tecnologias web e gestão de identidade histórico serviços da era inicial da Internet telnet ftp gopher - estruturas hierárquicas www - hipertexto estudos sobre hipertexto e hipermídia sistemas locais www

Leia mais