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 <dstrassburger@gmail.com> Edemar Costa <edemar.costa@gmail.com> 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 17 de Abril 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 e o outro utilizando o Windows Communication Foundation (WCF). A comparação tratará quesitos fundamentais na comunicação SOA, são eles: transações, segurança, reuso, interoperabilidade, aplicabilidade. O objetivo é mostrar as vantagens da migração para a nova tecnologia WCF. Palavras-chave: Comparação, Web Services, WCF, SOA. ABSTRACT Title: Comparative between Web Services ASMX and WCF Web Services This paper proposes the comparison between two service oriented systems, one of them utilizing the Web Services method e another utilizing the Windows Communication Foundation (WCF). The comparison will treat fundamental questions in the SOA communication, they are: transactions, security, reuse, interoperability, applicability. The goal is show the advantages of migration to new WCF technology. Key-words: Comparison, Web Services, WCF, SOA. 1 INTRODUÇÃO A comunicação entre aplicações é um item que cada vez mais é discutido e implementado nos dias de hoje. Com a grande quantidade de tecnologias e métodos difundidos existe uma série de formas para realizar a comunicação entre sistemas. Com a evolução das linguagens podemos identificar 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 Modelo de Objetos Componentes (Component Object Model COM). Cada conceito com suas vantagens e defeitos, mas com a era da Internet e sistemas Web, ficou quase impossível continuar com estas alternativas. Sendo assim criou-se a orientação a serviços onde este método incorporou todos os benefícios das metodologias anteriores e aperfeiçoando suas deficiências. Claro a orientação a serviços também tem uma série de desafios a vencer, 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 utilizando a linguagem ASP.NET com o Visual Studio 10. No item 2 deste artigo teremos o enfoque teórico sobre as metodologias e formas como podemos resolver o problema, onde falaremos sobre serviços, serviços Web, WCF e arquitetura orientada a serviços. No item 3 teremos a definição de solução proposta e no item 4 o cronograma. O item 5 abordará alguns detalhes da implementação e sua validação e por fim no item 6 é apresentada a conclusão sobre os 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 possuem suas peculiaridades, no caso de Computação na nuvem temos a 1

2 definição de utilizar recursos que estão fisicamente em outro lugar longe de nossa organização. Já com SaaS temos ferramentas prontas para serem utilizadas e não é necessário mais 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 melhor escolha para a empresa visando maximizar seus resultados e 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. Estimasse que 80% dos custos de TI são sobre manutenção em sistemas. 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.). Por esta razão 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 20 onde foi construído o primeiro computador moderno eletromecânico, do tamanho de uma máquina de escrever. Pela década de 30 foi vendido aos Alemães e utilizado para criptografar toda a comunicação. Conhecido hoje 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 40 e início dos anos 50, pois os primeiros computadores eletrônicos de propósitos gerais para objetivo de defesa. Agora as máquinas podiam executar códigos dirigidos para qualquer problema e não apenas um problema especifico. Ainda assim os códigos gerados nesta época eram ligados diretamente ao hardware não podendo ser executados em outros computadores. Na época isso não era problema visto que existiam poucos computadores úteis no mundo. E assim as linguagens foram evoluindo, na década de 60 já existiam linguagens de mais alto nível, como COBOL e FORTRAN, e introduziram o conceito de compiladores, o desenvolvedor iria escrever o programa de uma maneira e o compilador iria gerar os códigos que a máquina precisa saber. O problema agora era que a linguagem não era completamente estrutural, pois havia recursos de salto (Jump) e ir para (go to) que por muitas vezes causavam efeitos desastrosos em algoritmos que os usavam Linguagem estruturada Nos anos 70 nasceu às linguagens estruturadas propriamente ditas, como C e Pascal, uma verdadeira revolução onde 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 a redução de custos em computadores empresas iniciaram a tratar do reuso em suas aplicações. Em C o reuso é feito através da utilização de funções, mas com variáveis globais normalmente ocorre o problema de alterar uma variável e danificar outra função. O problema com o reuso baseado em função é que ela é dependente dos dados que manipula (LÖWY, 2007, p. 477) Orientação a objetos Na década de 80 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. Funções se tornaram métodos, onde fica encapsulada a lógica e os dados encapsulados no objeto. Mas obviamente a orientação de objetos não era perfeita. O reuso exercido por uma classe que ainda esta em formato fonte fica restrito a uma determinada linguagem. Você não poderia ter um cliente de Smalltalk consumindo uma classe de C++ ou derivando dela (JÖWY, 2007, p. 477). De acordo com Jöwy (2007), a herança não é a melhor solução para o reuso, e em alguns casos provê mais problemas do que soluções, o desenvolvedor tem que estar familiarizado com a classe base da derivação, isso produz uma dependência vertical pela hierarquia de classe. Outro problema ocorria quando os objetos eram distribuídos entre processos ou computadores, não 2

3 era possível utilizar C++ comum para a invocação por exemplo, a alternativa era criar processos host e utilizar uma tecnologia alternativa para chamadas remotas, como soquetes TCP para fazer chamadas à distância, estas chamadas eram muito diferentes das chamadas originais da linguagem, consequentemente não era possível se beneficiar da mesma Orientação a componente E mais uma vez a necessidade de evolução era eminente, era necessário uma interoperabilidade entre sistemas. Após as bibliotecas estáticas (.lib) e dinâmicas (.dll) em 1994 foi criada pela Microsoft a tecnologia COM (Component Object Model Modelo de Objetos Componentes). 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 Se analisarmos este breve histórico de engenharia de software podemos notar um padrão: novas tecnologias e métodos de desenvolvimento sempre incorporam os benefícios das antecessoras e aprimoram vários outros quesitos antes não abordados. 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 da orientação a componente. A ideia principal da orientação a serviço é 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 envia algum tipo metadados também padronizado, assim descreve o que pode fazer e como os clientes devem invocar as operações. 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 seus 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, os quais implementam os processos de negócio da mesma, bem como a troca de informações com seus fornecedores, clientes e sócios, a fim de que a mesma consiga sobreviver e obter sucesso no contexto da economia de mercado atual que tem exigido que serviços sejam disponibilizados via Web. Foi neste contexto que surgiu a tecnologia Web Services, 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 do ano 2000, ano do seu surgimento, as empresas Oracle, HP, Sun, IBM, BEA e Microsoft (maiores fornecedoras de software para TI do mundo), anunciaram as suas intenções de utilizar os padrões Web Services (SOAP, WSDL e UDDI) 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, para que se tenha 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 Extensible Markup Language (XML) 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, 3

4 codificações e protocolos padrão para troca de informações. Uma definição objetiva 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 Web Services, você pode trocar dados com acoplamento fraco na forma de mensagens XML entre sistemas heterogêneos. Apesar de o acesso remoto de dados e lógica de aplicação não é um conceito novo, fazendo isso com baixo acoplamento foi inovador. Tentativas anteriores, como o DCOM, IIOP e Java / RMI, requeria uma forte integração entre o cliente e o servidor. Ao invés de usar o contrato baseado em XML que é a base para serviços da Web, eles usavam os formatos de dados binários que são específicos do sistema operacional e implementação específica. 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 geração de mensagens que honraram o contrato através de um transporte especifico como o HTTP. Como resultado, programas escritos em qualquer linguagem - usando qualquer modelo componente - e executando em qualquer sistema operacional pode acessar Web Services. Além disso, a flexibilidade de um formato de texto como XML permitirá a troca de mensagens evoluírem com o tempo de maneira fracamente acoplada. Esse fraco acoplamento é obrigatório em ambientes onde a atualização simultânea de todas as partes na troca de mensagens não é possível. 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. Especificações adicionais, conhecidas de um modo geral como a 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 suas características devem-se em grande parte ao fato de se basearem em normas standard, de entre as quais se destacam: XML, SOAP, WSDL e UDDI. Um Web Service é semelhante na medida que é acessado através de uma URL. A diferença esta no conteúdo do que é enviado na requisição do cliente para o servidor. Os clientes de Web Service enviam um documento XML, formatado de uma maneira especial, de acordo com as regras da especificação SOAP (CERAMI, 2002). 2.3 ASP.NET Web Services É possível encontrar várias definições para Web Services como, Web Service é a lógica da aplicação disponível para outros programas através de protocolos padrões da Web independente de qualquer plataforma. Sobre a lógica da aplicação podemos definir que o Web Service expõe alguma lógica ou código da aplicação, isto pode ser cálculos ou operações ao banco de dados, por exemplo. Levando em conta que a maioria dos Web Sites hoje são acessados via Web Browser, 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, será mostrado detalhes mais adiante neste artigo. Um Web Service pode ser implementado por qualquer plataforma pois 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 como formato 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 (incluindo HTTPS) é 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: 4

5 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 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 bottom up (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 (chamada de tipo de porta no WSDL 1.1) pode consistir de 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. Existe algumas diferenças entre a versão WSDL 1.1 e a 2.0, não é o objetivo abordar com detalhes cada diferença mas sim mostrar a evolução do protocolo. No WSDL 1.1 os parâmetros do serviços são definidos nas sessões <message>, enquanto na versão WSDL 2.0 são definidos como qualquer outro tipo na sessã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 defina a localização física (endereço, URL) onde o Web Service está disponível. A imagem abaixo mostra as duas estruturas de WSDL 1.1 e WSDL SOAP Figura 1 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>. No elemento Body (corpo) contém o payload (carga útil), que são requisição, 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 2 Exemplo de requisição SOAP. 5

6 A mensagem de resposta a esta requisição deve conter o seguinte formato, mostrado na figura UDDI Figura 3 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 introduzir todas as três funções de um mercado de trabalho: fornecedores que oferecem serviços, consumidores que precisam de serviços, e corretores que reúnem por publicidade e localização de serviços (JOSUTTIS, 2007). Figura 4 UDDI - Fornecedores, consumidores e corretores. 2.4 O que é o WCF? 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 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 sua estrutura bem formada e os padrões de mercado empregados, gerenciamentos de estados, métricas de desempenho e fácil implementação. De fato, o WCF foi construído com os aspectos de Service Oriented Architecture (SOA) em mente. 6

7 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 serviços quando da ocorrência de 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 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 no enterprise; Resumindo, serviços são orientados a mensagens, possuem contratos de serviços e de dados, são multi-protocolos e multi-hosts, 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 = Addess + Binding + Contract) é possível uma grande flexibilidade na implantação e configuração de serviços em diversos ambientes de TI. Desde as versões 1.0 do.net Framework é possível implementar serviços Web como os encontrados no mercado, com a diferença do desenvolvedor poder utilizar os recursos nativos do framework na 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 sistemas distribuídos em um único modelo visando a arquitetura orientada à serviços (SOA). Uma das principais características desta nova API é o fato do WCF ser totalmente desacoplado das regras de negócio que serão expostos pelo serviço. A tecnologia WCF possui 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 você irá fazer e uma ou mais interfaces para implementar o 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, USA, 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, como vemos na figura abaixo: 7

8 Figura 5 - Arquitetura de Referência SOA proposta pela Microsoft. Cambiucci (2009) descreve as principais camadas da arquitetura de referência SOA: Primeiro, notamos uma camada de aplicações compostas ou consumidores, que é destinada para as interfaces de composição de serviços da solução. Aqui, temos nossas 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, temos acamada 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 são exemplos para essa camada; Suportando os serviços acima, encontramos os componentes de serviços que podem ser componentes legados, exportando funcionalidades existentes de nossa infraestrutura; Por último, a camada de integração ou legado (LoB Line of Business Application), onde encontramos nossos sistemas nativos, bancos de dados e soluções existentes que pretendemos exportar para outras áreas da empresa, por exemplo; Atendendo 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 temos formas diferentes de obter resultados que nos levam a ter uma aplicação em SOA. Como 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 à execução do mesmo. Cada uma das seções a seguir irá analisar e discutir essas mudanças, falando também sobre alguns detalhes importantes que, se não se atentar, poderá ter um comportamento estranho durante a execução. 8

9 3 METODOLOGIA Com base nestas diferenças entre WCF e ASP.NET Web Services (ASMX) uma comparação de performance entre estes serviços é vital para uma análise de custo-benefício em sua implementação. Isto ajudará muito em uma analise de migração ou investimentos para começar a utilizar tais tecnologias. Mas não apenas a performance será comparada neste artigo. Serão realizados testes abordando as principais características de cada tecnologia, como segurança, aplicabilidade, reuso e expansibilidade. Será criado um ambiente de testes onde serão executados testes pontuais analisando desempenho, segurança, escalabilidade e aplicabilidade. Será implementado em um ambiente de produção que atualmente utiliza ASP.NET Web Services e será migrado para utilizar o WCF. Serão reestruturadas as camadas da arquitetura com base em SOA. Neste ambiente serão apresentadas três aplicações de uma empresa de venda de computadores. Estes sistemas são: sistema de vendas, suporte e financeiro. Inicialmente o problema de comunicação entre estes sistemas é resolvido através do uso de ASP.NET Web Services e troca de arquivos de importação. Será desenvolvida uma camada para comunicação entre estas aplicações utilizando o WCF e assim efetuar 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 que serão efetuados utilizaremos o mesmo ambiente. Um servidor com processador Intel Xeon Processor X5680 (12M Cache, 3.33 GHz, 6.4), 12 GB de memória RAM e placa de rede 1 Gbps o sistema operacional é Windows Server 2008 R2. Os clientes serão 4 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 2, logo abaixo. Servidor Cliente 1 Cliente 2 Cliente 3 Cliente 4 Switch 3.2 Performance de Transações 1GB Ethernet Figura 6 Infraestrutura para realização dos testes. Inicialmente será desenvolvida duas soluções em cada uma das tecnologias, WCF e ASP.NET Web Services, estas soluções não irão ter nenhuma boa prática inclusa apenas os requisitos mínimos para que se posa efetuar uma transação com sucesso. Cada uma das aplicações será formada de um processo de requisição e resposta, padrão das duas tecnologias. A requisição enviará um número inteiro e será retornada uma coleção de objetos criados no servidor. Esta coleção de objetos será padrão nas duas aplicações, podemos conferir a criação desta carga na figura 3. Ordem[] GetOrdens(int NumOrderns); { Ordem[] ordens = new Ordem[numOrdens]; for (int i = 0; i < numordens; i++) { Ordem ordem = new Ordem(); 9

10 } 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 7 Código que irá criar processamento no serviço. Com este cenário será 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. No teste é será deixado o servidor trabalhando próximo de 100% de processamento em ambos os testes. Faremos testes com um Core e 4 Cores para analisarmos as diferenças. Este teste mostrará o poder de performance do WCF e do APS.NET Web Services, claro que uma aplicação SOA temos muitos mais para avaliar do que transações simples e isso veremos nos próximos itens. Assim o resultado esperado é que o WCF forneça mais transações do que o ASP.NET Web Services. O resultado será apresentado em gráficos mostrando a superioridade do WCF em performance. 3.3 Segurança A proposta consiste também em realizar um estudo sobre segurança onde será abordado quesitos básicos de segurança do ASP.NET Web Services e do WCF. Apesar das duas formas poderem utilizar o protocolo HTTPS o WCF consegue ter mais recursos de segurança nativamente e quando é desenvolvida uma aplicação SOA é fundamental relacionarmos este quesito. Serão abordadas 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. É de comum conhecimento que o ASP.NET Web Services provê a segurança apenas no nível do Internet Information Services (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 todos os requisitos de segurança. 3.4 Representação dos dados Será 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. Análise irá detalhar algumas diferenças nas Classes utilizadas por cada uma das tecnologias, assim identificando 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 10

11 arquivos de importação, muito tempo e confiabilidade se perdem. Até mesmo o desenvolvimento de novas aplicações fica comprometido nesta estrutura. Será 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 será completamente independente das aplicações e adequações serão feitas nas antigas aplicações para que as sejam suportadas as trocas de informações Reuso Será realizada uma analise na estrutura do código visando o reuso. Quanto que é possível reutilizar os Web Services desenvolvidos em ASP.NET e quanto é possível reusar os serviços WCF. Esta analise é um pouco mais cuidadosa devido ao tempo que deve se levar para termos confirmações Migração Com o desenvolvimento desta nova plataforma analisaremos quesitos importantes como o tempo de desenvolvimento, dificuldade da estrutura, compatibilidade. Com o objetivo de definir o cenário de quando é vantajoso realizar uma migração de plataforma, ou quando é interessante desenvolver novamente toda a estrutura de comunicação entre sistemas de uma corporação. 4 CRONOGRAMA Abaixo é demostrado o cronograma proposta para este trabalho. Atividade Início Fim Dias Analise dos requisitos iniciais 01/08/ /08/ dias Revisão de métodos e comunicação 15/08/ /08/ dias Revisão dos requisitos 01/09/ /09/ dias Ajustes de ambiente 05/09/ /09/ dias Programação 10/09/ /10/ dias Métodos de sincronização 10/10/ /10/ dias Testes e validação dos usuários ambiente teste 20/10/ /10/ dias Implementação e testes em ambiente de produção 01/11/ /11/ dias Conclusões e encerramento do projeto 15/10/ /11/ dias 5 CONCLUSÃO Com este estudo será mostrada todas as vantagens do WCF e benefícios com sua utilização. Ganhos de performance e escalabilidade, fundamentais para as organizações hoje em dia. Como o assunto é relativamente novo a documentação sobre tais testes ainda deixam a desejar, este estudo irá ajudar poderá ser uma base de conhecimento e resultados significativos para desenvolvimento de aplicações comerciais. REFERÊNCIAS LÖWY, Juval. Programming WCF Services. 3 ed. Sebastopol: Ed. O Reilly Media, Inc., LÖWY, Juval. Programando Serviços WCF. 1 ed. Sebastopol: Ed. O Reilly Media, Inc., SHODJAI, Payam. Serviços da Web e a plataforma Microsoft. [S. l], MSDN, 28 ago f. Disponível em: < Acesso em: 17 abr KHAN, Iqbal. Address Scalability Bottlenecks with Distributed Caching. [S. l], MSDN Magazine, jun f. Disponível em: < Acesso em: 17 abr CAMBIUCCI, Waldemir. Cenários de implementação de serviços com WCF - Parte 1 : Aspectos de 11

12 SOA. [S. l], MSDN Blogs, jun f. Disponível em: < 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: < Acesso em: 17 abr LIBERTY, Jesse; HOROVITZ, Alex. Programming.NET 3.5. Sebastopol: Ed. O Reilly Media, Inc., jul BOOTH, David et al. Web Services Architecture. [S. l], W3C, fev f. Disponível em: < Acesso em: 24 abr CERAMI, Ethan. Web Services Essentials. 1 ed. Sebastopol: Ed. O Reilly Media, Inc., BASIURA, Russ et al. Professional ASP.NET Web Services. Birmingham: Ed. Wrox Press Ltd, JOSUTTIS, Nicloai. SOA in Practice. Sebastopol: Ed. O Reilly Media, Inc., ago

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

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

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

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

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. (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

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

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

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

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

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

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

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

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

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

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

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

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

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

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

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

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

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

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

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

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

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

IV. Intercâmbio Eletrônico de Dados (EDI)

IV. Intercâmbio Eletrônico de Dados (EDI) IV. Intercâmbio Eletrônico de Dados (EDI) 1. Funcionamento do EDI 2. EDI tradicional X WEB EDI 3. EDI Tradicional 4. WEB EDI Intercâmbio Eletrônico de Dados (EDI) EDI: Electronic Data Interchange Troca

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

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

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

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

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

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

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 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com Análise e Projeto de Sistemas de Informação Andrêza Leite andreza.lba@gmail.com Roteiro Sistemas de Informação Ciclo de Desenvolvimento de SI Projeto Análise Estruturada Análise Orientada a Objetos Como

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

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

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Usando Service Design Thinking para criar SOA Corporativo

Usando Service Design Thinking para criar SOA Corporativo Usando Service Design Thinking para criar SOA Corporativo Hilton Menezes 2013 Introdução Uma área de Tecnologia da Informação - TI ágil pode contribuir significativamente para que o negócio possa fazer

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

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

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

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

Capítulo 9. Gerenciamento de rede

Capítulo 9. Gerenciamento de rede 1 Capítulo 9 Gerenciamento de rede 2 Redes de computadores I Prof.: Leandro Soares de Sousa E-mail: leandro.uff.puro@gmail.com Site: http://www.ic.uff.br/~lsousa Não deixem a matéria acumular!!! Datas

Leia mais

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET 1 IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET Daniel da Silva Carla E. de Castro Franco Diogo Florenzano Avelino daniel.silva1@ext.mpsa.com

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

[ Empowering Business, Architecting IT. ]

[ Empowering Business, Architecting IT. ] SOA coloca TI da Rede Ipiranga em linha com os negócios Setembro/2012 Sumário Matéria publicada na Information Week... 4 Artigo Case Ipiranga... 7 SOA coloca TI da Rede Ipiranga em linha com os negócios

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2) Definição de um Sistema Distribuído (1) Introdução Um sistema distribuído é: Uma coleção de computadores independentes que aparecem para o usuário como um único sistema coerente. Definição de um Sistema

Leia mais

FTIN Formação Técnica em Informática. Sistema Operacional Proprietário Windows Prof. Walter Travassos

FTIN Formação Técnica em Informática. Sistema Operacional Proprietário Windows Prof. Walter Travassos FTIN Formação Técnica em Informática Sistema Operacional Proprietário Windows Prof. Walter Travassos Aula 01 SISTEMA OPERACIONAL PROPRIETÁRIO WINDOWS Competências do Módulo Instalação e configuração do

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Projeto Você pede, eu registro.

Projeto Você pede, eu registro. Projeto Você pede, eu registro. 1) IDENTIFICAÇÃO 1.1) Título do Projeto: Você pede eu registro. 1.2) Equipe responsável pela coordenação do projeto: Pedro Paulo Braga Bolzani Subsecretario de TI Antonio

Leia mais

INTERNET HOST CONNECTOR

INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR IHC: INTEGRAÇÃO TOTAL COM PRESERVAÇÃO DE INVESTIMENTOS Ao longo das últimas décadas, as organizações investiram milhões de reais em sistemas e aplicativos

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

INFLUÊNCIA DA TECNOLOGIA DA INFORMAÇÃO NA GESTÃO DA ÁGUA E ESGOTO

INFLUÊNCIA DA TECNOLOGIA DA INFORMAÇÃO NA GESTÃO DA ÁGUA E ESGOTO INFLUÊNCIA DA TECNOLOGIA DA INFORMAÇÃO NA GESTÃO DA ÁGUA E ESGOTO Paulo Mailson Vieira da Mota Graduando em Sistemas de Informação e Técnico em Informática, Analista de TI do SAAE de Iguatu-CE. Endereço

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

Proposta de Avaliação de Empresas para o uso do SAAS

Proposta de Avaliação de Empresas para o uso do SAAS 1 INSTITUTO DE EDUCAÇÃO TECNOLÓGICA PÓS-GRADUAÇÃO Gestão e Tecnologia da Informação/ IFTI 1402 Turma 25 09 de abril de 2015 Proposta de Avaliação de Empresas para o uso do SAAS Raphael Henrique Duarte

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito

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

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

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

Soluções em. Cloud Computing. Midia Indoor. para

Soluções em. Cloud Computing. Midia Indoor. para Soluções em Cloud Computing para Midia Indoor Resumo executivo A Midia Indoor chegou até a Under buscando uma hospedagem para seu site e evoluiu posteriormente para uma solução cloud ampliada. A empresa

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

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 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Solução Integrada para Gestão e Operação Empresarial - ERP

Solução Integrada para Gestão e Operação Empresarial - ERP Solução Integrada para Gestão e Operação Empresarial - ERP Mastermaq Softwares Há quase 20 anos no mercado, a Mastermaq está entre as maiores software houses do país e é especialista em soluções para Gestão

Leia mais

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013 Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013 Christopher J Fox Microsoft Corporation Novembro de 2012 Aplica-se a: SharePoint 2013, SharePoint Online Resumo: Um ambiente

Leia mais

BlackBerry Mobile Voice System

BlackBerry Mobile Voice System BlackBerry Mobile Voice System Comunicações móveis unificadas O BlackBerry Mobile Voice System (BlackBerry MVS) leva os recursos do telefone do escritório aos smartphones BlackBerry. Você pode trabalhar

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

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

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

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

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA Detecção e investigação de ameaças avançadas. INFRAESTRUTURA DESTAQUES A infraestrutura do RSA Security Analytics Arquitetura modular para coleta distribuída Baseada em metadados para indexação, armazenamento

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