INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA

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

Download "INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA"

Transcrição

1 INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA CURSO ESPECIALIZAÇÃO EM ORIENTAÇÃO A OBJETO APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento BRASÍLIA - DF 2005

2 1 Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE MONOGRAFIA APRESENTADA AO CORPO DOCENTE DO CURSO DE ESPECIALIZAÇÃO EM ORIENTAÇÃO A OBJETO DO INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA, COMO REQUISITO PARCIAL PARA OBTENÇÃO DO TÍTULO DE ESPECIALISTA EM ORIENTAÇÃO A OBJETO. Orientador: Prof. M.Sc. Wagner Castilho BRASÍLIA - DF 2005

3 2 APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento MONOGRAFIA APRESENTADA AO CORPO DOCENTE DO CURSO DE ESPECIALIZAÇÃO EM ORIENTAÇÃO A OBJETO DO INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA, COMO REQUISITO PARCIAL PARA OBTENÇÃO DO TÍTULO DE ESPECIALISTA EM ORIENTAÇÃO A OBJETO. Aprovada por: Prof. M.Sc. Wagner Castilho (Presidente) Prof. M.Sc. (titulação) Prof. M. Sc. (titulação) BRASÍLIA - DF 2005

4 A Jesus Cristo meu Senhor e a meus pais, Braulo e Leni. 3

5 4 Agradecimentos Primeiramente agradeço a Deus que me proporcionou saúde, animo e vigor para chegar até aqui, aos meus pais pela compreensão, dedicação, colaboração e apoio dispensados a mim durante todo este período de estudos, a meus irmãos Rodrigo e Braucileny, a minha namorada Eliana e aos amigos por compreenderem minha ausência.

6 5 Filho meu, não te esqueças dos meus ensinos, e o teu coração guarde os meus mandamentos; porque eles aumentarão os teus dias e te acrescentarão anos de vida e paz. Confia no Senhor de todo o teu coração e não te estribes no teu próprio entendimento. Reconhece-o em todos os teus caminhos, e ele endireitará as tuas veredas. Não sejas sábio aos teus próprios olhos; teme ao Senhor e aparta-te do mal; Feliz o homem que acha sabedoria, e o homem que adquire conhecimento; O temor do Senhor é o princípio da sabedoria; bom entendimento tem todos os que obedecem aos seus preceitos. (...) ; Adquire a sabedoria, adquire a compreensão; não te esqueças das palavras da boca da Minha boca, nem delas te apartes. Não desampares a sabedoria, e ela te protegerá; ama-a, e ela te guardará. A sabedoria é suprema; portanto, adquire a sabedoria. Sim, com tudo o que possuir adquire o entendimento. O que adquire sabedoria ama a sua própria alma; o que conserva o entendimento prospera. Demais disto, filho meu, atenta: Não há limite para fazer livros e o muito estudar é enfado da carne. Pv 3.1-2, 5-7, 13; Sl a; Pv 4.5-7; 19.8 e Ec 12:12.

7 6 RESUMO Este Trabalho apresenta a evolução das tecnologias aplicadas a serviços distribuídos, e a nova tendência de aplicações distribuídas, que evoluiu a ponto de tornar-se independente de hardware, sistemas operacionais e protocolos proprietários, voltados aos web services e com a possibilidade de ser utilizado adotando tecnologias abertas e livres. Apresenta também como configurar um servidor web service utilizando a linguagem de programação aberta Java e o sistema operacional livre Linux.

8 7 ABSTRACT This work showed the evolution of technologies, and a new tendence Este Trabalho apresenta a evolução das tecnologias aplicadas a serviços distribuídos, e a nova tendência de aplicações distribuídas, que evoluiu a ponto de tornar-se independente de hardware, sistemas operacionais e protocolos proprietários, voltados aos web services e com a possibilidade de ser utilizado adotando tecnologias abertas e livres. Apresenta também como configurar um servidor web service utilizando a linguagem de programação aberta Java e o sistema operacional livre Linux. Tradução para o inglês do Resumo. Apresentação concisa dos pontos relevantes da dissertação, capaz de informar o seu conteúdo de forma suficiente ao leitor, para que este possa decidir sobre a conveniência da leitura do texto inteiro. Descreve, em cerca de 350 a 450 palavras, o objetivo, o referencial teórico, a metodologia, principais resultados e conclusões.

9 8 Sumário 1. INTRODUÇÃO JUSTIFICATIVA E RELEVÂNCIA DO ESTUDO FORMULAÇÃO DO PROBLEMA OBJETIVOS Objetivo Geral Objetivos Específicos ORGANIZAÇÃO DO TRABALHO REFERENCIAL TEÓRICO TECNOLOGIA OPEN SOURCE Historia da Linguagem de programação C/C História da Linguagem de Programação Java Sistemas operacionais UNIX e UNIX-LIKE Projeto GNU História do Sistema Operacional Linux MIDDLEWARE PARA APLICAÇÕES DISTRIBUÍDAS DCOM - Distributed Component Object Model CORBA - Common Object Request Broker Architecture EJB - Enterprise Java Beans RMI - Remote Method Invocation WEB SERVICES Principais Características Principais Vantagens Tecnologias aplicadas a Web Services XML - Extended Markup Language Analizadores XML SOAP Simple Object Access Protocol WSDL Web Services Description Language Mapeamento nos termos de WSDL para termos Java UDDI Universal Description, Discovery and Integration...58

10 Segurança em Aplicações distribuídas Criptografia Algoritimos Criptográficos Assinaturas Digitais Certificados Digitais Segurança aplicada a Web Services Autenticação Autorização Integridade de Dados Garantia de Confiabilidade Modelo de web services Tipos de chamadas a Web Services Aplicação Relações Comerciais com Utilização de Web Services Microsoft Alerts MS Passport SPB - Sistema de Pagamentos Brasileiro MobMed Sistemas Móveis de Informação Médica CASO DE APLICAÇÃO PROCEDIMENTOS Instalando e configurando o Java Persistente a usuário: Persistente ao Sistema: Instalando e configurando o Tomcat Persistente a usuário: Persistente ao Sistema: Instalando e configurando o Axis Persistente a usuário: Persistente ao Sistema: Instalando e configurando o eclipse Integrando jdk 1.5 com o as bibliotecas AXIS via console Variaveis de Ambiente METODOLOGIA

11 10 5. CONCLUSÃO REFERÊNCIAS

12 11 Índice de Figuras FIGURA 1 - CRONOLOGIA DE TECNOLOGIAS PARA DISTRIBUIÇAO DE SERVIÇOS...30 FIGURA 2 - COMUNICAÇÃO ENTRE PROCESSOS EM COM...32 FIGURA 3 - INTERAÇÃO DE OBJETOS COM TECNOLOGIA DCOM...33 FIGURA 4 - ESTRUTURA ORB...35 FIGURA 5 - COMUNICAÇÃO RMI-IIOP DO EJB...37 FIGURA 6 - INTERAÇÃO DE OBJETOS COM TECNOLOGIA RMI...39 FIGURA 7 - INTERFACE DO USUÁRIO...44 FIGURA 8 - TECNOLOGIAS APLICADAS A MIDDLEWARE...44 FIGURA 9 - INTERAÇÃO CLIENTE/SERVIDOR COM WEB SERVICE...46 FIGURA 10 - CHAMADAS SOAP RPC...51 FIGURA 11 - FUNCIONAMENTO PROTOCOLO SUPERFICIAL DE COMPUTAÇÃO SOAP...51 FIGURA 12 - ARQUITETURA NÃO HIERÁRQUICA SOAP...52 FIGURA 13 - ESTRUTURA DE ENVELOPE SOAP...53 FIGURA 14 - ESTRUTURA DE INVOCAÇÃO DE UM WEB SERVICES...53 FIGURA 15 - ESTRUTURA BÁSICA DE UM WEB SERVICE...67

13 12 Índice de Tabelas e Quadros TABELA 1.CRONOLOGIA DO LINUX...28 TABELA 2.ESQUELETO DE UM WSDL...55 TABELA 3.NAMESPACES UTILIZADOS EM DOCUMENTOS SOAP...56 TABELA 4.MAPEAMENTO ENTRE TERMOS WSDL PARA TERMOS JAVA 58 TABELA 5.UDDI BUSINESS REGISTRY NODE URLS...59 TABELA 6.UDDI V2 TEST NODE URLS...59 TABELA 7.UDDI V3 BETA TEST NODE URLS...60 TABELA 8.ARQUIVO ~/.BASH_PROFILE...90 TABELA 9.CONFIGURANDO JAVA DE MANEIRA PERSISTENTE AO USUÁRIO 91 TABELA 10.ARQUIVO /ETC/PROFILE...91 TABELA 11.CONFIGURANDO JAVA DE MANEIRA PERSISTENTE AO SISTEMA 93 TABELA 12.ARQUIVO ~/.BASH_PROFILE...96 TABELA 13.CONFIGURANDO O TOMCAT USANDO O ARQUIVO ~/.BASH_PROFILE...98 TABELA 14.CONFIGURANDO O TOMCAT USANDO O ARQUIVO /ETC/PROFILE TABELA 15.RESULTADO DO COMANDO NETSTAT...103

14 13 TABELA 16. CONFIGURAÇÃO DE PORTA PARA O TOMCAT TABELA 17.ARQUIVO ~/.BASH_PROFILE...106

15 14 Lista de símbolos e abreviaturas SIGLA SIGNIFICADO API Application Program Interface BC Banco Central do Brasil BDE Base Data Enviropment BSD Berkeley Standard Distribution (JANG, 2002) Berkeley Software Distribution (NEMETH, 2002) CDB CIP CLR COM CORBA CPMF CSRG CTS DCOM DEC DOC DOT NET DTD EJB FTP HTML HTTP IDE IL IOF IP J2EE JIT JVM LAN MIME ODBC OLE OMG ORB ORPC PE RAD RCP RDB RMI SGML SMTP Berkeley Systems Division (MCCARTY, 2002) certificado de depósito bancário Câmara Interbancária de pagamentos Common Language Runtime Component Object Model Common Object Request Broker Architecture Contribuição Provisória sobre Movimentação ou Transmissão de Valores e de Créditos e Direitos de Natureza Financeira Computer Systems Research Group Common Language System Distributed Component Object Model Digital Equipment Corporation Documento de Credito Nome coringa utilizado para definir linguagens da família.net Document Type Definition Enterprise Java Beans File Transfer Protocol Hyper Text Markup Language Hyper Text Transfer Protocol Integrated Development Environment Intermediate Language Imposto sobre Operações Financeiras Internet Protocol Java to Emprise Edition Just-it-Time Java Virtual Machine Local Area Network Multipurpose Internet Mail Extensions Object Data Base Client Object Link Embed Object Management Group Object Request Broker Object Remote Procedure Call Portable Executable Rapid Application Development Remote Call Procedure Recibo de Depósito Bancário Remote Method Invocation Standard Generalized Markup Language Simple Message Transfer Protocol

16 15 SOAP SQL SSL TCP TED TI UDDI URL W3C WAN Web WSDL WWW XLINK XML XPOINTER XSD XSL GPL GNU DES RSA DNS Simple Object Access Protocol Structured Query Language Secure Socket Layer Transmission Control Protocol Transferência Eletrônica Disponível Technology Industry Universal Description, Discovery and Integration Uniform Resource Locator World Wide Web Consortium World Area NetWork Rede mundial de computadores Web Service Description Language Word Wide Web XML Link Language Extended Markup Language XML Pointer Language XML Schema Definition Extensible Style Language General Public License GNU is not Unix Data Encryption Standard Rivest, Shamir and Adleman Algorithm Dinamic Name Service

17 16 1. Introdução 1.1. Justificativa e Relevância do estudo A nova era dos serviços distribuídos, tem apresentado o Web Service como uma solução simples, aplicável e econômica, onde os recursos podem ser reutilizados e fornecidos como serviços remotos, e da mesma forma consumidos localmente de servidores internos ou externos a rede Formulação do Problema 1.3. Objetivos Objetivo Geral Apresentar um estudo para uma solução web service, em plataforma e linguagens livres, de modo a atender pequenos nichos de mercado com soluções distribuídas Objetivos Específicos Descrever e apresentar as vantagens de um web services; Apresentar os protocolos comuns utilizados pelo web services (XML, SOAP, WSDL, UDDI); Apresentar o processo confecção de um web services utilizando recursos da plataforma livre de desenvolvimento Java em sistema operacional livre Linux; Comentar em que um web services pode ser útil aos pequenos nichos de mercado; 1.4. Organização do Trabalho

18 17 2. Referencial Teórico 2.1. Tecnologia Open Source Historia da Linguagem de programação C/C++ Segundo Deitel (2001), em 1967 foi desenvolvida a linguagem BCPL por Martin Richards como uma linguagem para escrever softwares de sistemas operacionais e compiladores. Ken Tompson modelou os recursos da linguagem B baseados na linguagem BCPL e utilizou a linguagem B, para criar as primeiras versões do sistema operacional UNIX nas dependências do Bell Labs em 1970 sobre um supercomputador DEC PDP-7. Em 1972 Dennis Ritchie, desenvolveu a linguagem C, a partir da linguagem B e originalmente implementada em um DEC PDP-11. Na linguagem C houve melhorias consideráveis em relação a sua antecessora, tornando-se popular por ser a linguagem de desenvolvimento do sistema operacional UNIX. A alta portabilidade tornou, a linguagem C, a principal linguagem de desenvolvimento de sistemas operacionais, a disponibilizando para maioria dos computadores em várias plataformas. (DEITEL, 2001) De acordo com Deitel (2001), a grande disseminação da linguagem C, nestas diversas plataformas de hardware, originou diversas variações semelhantes da linguagem, as quais freqüentemente eram incompatíveis que impossibilitavam sua portabilidade. Em 1980, Bjarne Stroustrup, começou a trabalhar numa extensão da linguagem C, denominada C++, a qual aprimorou vários recursos e sobre tudo incorporou a programação orientada a objetos na linguagem. C++ assume as

19 18 características de uma linguagem híbrida, possibilitando programar tanto no estilo estruturado quanto no estilo orientado a objetos, ou ambos. Em 1983, foi criado o comitê técnico X3J11 sob o American National Standards Committee on Computers and Information Processing (ANSI) com o propósito de fornecer uma diretiva independente de hardware e sem ambigüidade da linguagem, que foi aprovada em (DEITEL, 2001) Em 1990, foi publicado o ANSI/ISO 9899:1990, posteriormente denominada ANSI C, uma parceria entre o ANSI e a International Standards Organization (ISO) padronizando a linguagem C em escala mundial. A variante C++ também foi padronizada pelos comitês ANSI e ISO com a ANSI 92. (DEITEL, 2001) História da Linguagem de Programação Java A linguagem Java começou em Dezembro de 1990, desenvolvida nos laboratórios da Sun Microsystems, como parte do projeto Green, um pequeno trabalho de pesquisa em componentes eletrônico inteligentes, liderados por Patrick Naughton e Sun Fellow. O projeto Green trabalhava em um protótipo de dispositivo manual chamado star 7 do tipo PalmPilot, que podia se comunicar com outros do mesmo tipo. (CADENHEAD, 2001; DEITEL, 2001; HORSTMAN, 2003) O objetivo original era desenvolver o sistema operacional do protótiopo na linguagem C++, entretanto, James Gosling, membro do projeto Green, irritado com o desempenho da linguagem, desenvolveu uma nova linguagem para implementar o sistema operacional responsável por manipular o protótipo, de modo que fosse

20 19 portável e que gerasse um código intermediário para uma máquina hipotética, denominada de maquina virtual, onde esse código intermediário pudesse ser usado em qualquer máquina que tivesse o interpretador correto. (CADENHEAD, 2001; HORSTMAN, 2003) Devido a vasta experiência, dos engenheiros do projeto Green, com o sistema operacional UNIX, Gosling baseou sua linguagem em C++, e batizou-a de Oak, carvalho em inglês, em homenagem a um carvalho que havia na frente da janela de seu escritório na Sun. Mais tarde o departamento jurídico da Sun Microsystems descobriu outro produto chamado Oak, rejeitando o nome escolhido, quando uma equipe da Sun visitou uma cafeteria local, onde o nome Java, que é a cidade de origem de um tipo de café importado, foi sugerido e aceito. (CADENHEAD, 2001; DEITEL, 2001; HORSTMAN, 2003) Em 1992, o projeto Green apresentou o star 7, um controle remoto extremamente inteligente, que possuía o poder de uma SPARC Station em uma caixa de 15x10x10 centímetros, entretanto não havia interessados em produzi-lo, que levou o pessoal do projeto a procurar outras formas para comercializá-lo. Em 1993, o nome do projeto Green foi alterado para First Person Inc, e tentaram vender a tecnologia por todo ano de 1993 e metade de (CADENHEAD, 2001; HORSTMAN, 2003) Em 1994, a web já estava despontando e o departamento Word Wide Web (www) da Sun crescia cada vez mais, e o navegador de maior utilização era o Mosaic, parcialmente escrito por Marc Andreessen, em um projeto acadêmico de pós-graduação, Andreessen posteriormente tornou-se co-fundador da Netscape.

21 20 Gosling e os desenvolvedores da Sun perceberam que no porcesso cliente/servidor da arquitetura web, se encaixava perfeitamente a neutralidade de arquitetura, que englobava o tempo real, a confiabilidade e a segurança que a linguagem Java oferecia. Então Patrick Naugton e Jonathan Payne elaboraram o navegador Hotjava, escrito em Java, que podia executar applets Java, interpretando os bytecodes intermediários, para mostrar o poder da linguagem. (CADENHEAD, 2001; DEITEL, 2001; HORSTMAN, 2003) O navegador foi apresentado na SunWorld 95 em 23 de maio de 1995 e inspirou a moda Java. Em agosto do mesmo ano, a Netscape se tornou a primeira empresa a licenciar a linguagem Java, incorporando o interpretador em seu porduto, navegador Navigator, que o tounou líder do setor. Posteriormente foi seguido de várias empresas tais como MS, IBM, Symantec, Inprise e outras, que possibilitou que milhões de pessoas pudessem executar programas iterativos direto de seus navegadores pela primeira vez, que impulsionou o crescimento da linguagem Java entre os anos de 1995 e No inicio de 1996 a Sun lançou a primeira versão da linguagem Java e começou a distribui-la livremente no URI (CADENHEAD, 2001; DEITEL, 2001; HORSTMAN, 2003) Sistemas operacionais UNIX e UNIX-LIKE Iniciado em 1965, para mainframes, com codinome de Multiplexed Information and Computing Service ou simplesmente MILTICS, foi o primeiro sistema operacional a propor modo multiusuário, desenvolvido em conjunto entre a Bell Telephone Labs da AT&T, Massachusetts Institute of Technology (MIT) e a General Electric. (MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000)

22 21 Em 1969, Bell labs se retirou do projeto, devido aos vários insucessos, e dois de seus engenheiros de software, Ken Thompson e Dennis Richie, permaneceram trabalhando independentemente no projeto, com o ardente objetivo de transformar o MULTICS em um sistema operacional de múltiplos usuários. (MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000) No inicio da década de 70, eles implementaram um sistema operacional rudimentar, portado para os supercomputadores da Digital Equipment Corporation (DEC) PDP-7, com o nome de UNICS, que mais tarde passou a chamar-se de UNIX e o kernel mostrou notável portabilidade de hardware, se comparado com os sistemas operacionais da época, que eram construídos em assembly especificamente para cada arquitetura. (MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000) Esta portabilidade é devida a linguagem de programação C utilizada que permite ao programador acessar recursos de baixo nível, assim como a linguagem assembly. Thompson e Ritchie criaram a linguagem de programação de alto nível C para multiplataforma. (DEITEL, 2001; MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000) Ao perceberem a amplitude e interesse crescente por seu trabalho, disponibilizaram gratuitamente copias do UNIX a programadores em todo o mundo, com o objetivo de retornarem suas revisões para aprimoramento do UNIX. Esta atitude claramente não comercial gerou disputas jurídicas e nesta época a AT&T era um monopólio nos Estados Unidos da América, onde diversas decisões judiciais e

23 22 reguladoras mantiveram-na afastada de negócios financeiros da área computacional. (MCCARTHY, 2000; JANG, 2003) Como a AT&T estava proibida de lucrar a partir do software, ela manteve a licença do UNIX e em 1974 decidiu distribuir o sistema operacional com código-fonte para universidades, por uma taxa nominal, em troca os advogados da AT&T insistiram que a licença declarava explicitamente, que o UNIX não tinha garantias. Esta técnica de lançamento passou a ser chamada, no que conhecemos hoje de open source, com isso rapidamente popularizou-se em uma série de universidades, que tornou o UNIX a base de várias classes de sistemas operacionais e de projetos de pesquisas no meio acadêmico, entretanto a AT&T não teve permissão jurídica para obter lucro. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000; BALL, 2004) Em 1976, a AT&T distribuiu o UNIX para a Universidade da Califórnia em Berkeley, ao custo dos manuais e fitas. Em 1977 a Universidade da Califórnia em Berkeley iniciou o projeto Computer Systems Research Group (CSRG), como o objetivo de criar o próprio sistema operacional e em longo prazo eliminar todo código-fonte de propriedade da AT&T. Um processo árduo e lento, iniciado no mesmo ano com o 1BSD para supercomputadores PDP-11 da DEC. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000; FERREIRA, 2003) Em 1978 destacou-se uma das variantes do UNIX, escrito na Universidade da Califórnia, Berkeley, o projeto Berkeley Softwares Distribution (BSD) do CSRG, um dos diretores do projeto Bill Joy, tornou-se em 1982, co-fundador da Sun

24 23 Microsystems, responsável pelo SunOS e o Solaris, que são variantes do UNIX e pela plataforma de programação Java. O CSRG foi abandonado antes que o trabalho pudesse ser finalizado, devido Berkeley perder as verbas para a pesquisa em sistemas operacionais, e culminando em 1993 com o 4.4BSD, deixando como produto final um conjunto de código-fonte isento de propriedade da AT&T denominado 4.4BSD-Lite. Conseqüentemente a Universidade da Califórnia e AT&T tornaram-se os maiores centros de desenvolvimento do Unix. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000; FERREIRA, 2003) Com o advento das estações de trabalho na década de 1980, surgiram muitas versões comerciais do Unix, como SunOS e o Solaris da Sun Microsystems, AIX da IBM, digital Unix (OSF/1) da DEC, IRIX da Silicon Graphics e HP-UX da Hewlett Packard. AT&T reteve a licença através dos anos e no início da década de 80 o governo norte americano processou a empresa por antitruste, e em 1982, uma das provisões permitiu a entrada da AT&T no ramo comercial da computação, autorizando a venda do sistema operacional e código-fonte em todas proteções associadas aos direitos autorais. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003; MORIMOTO, 2004; ANONYMOUS, 2000; BALL, 2004; VEIGA, 2004; FERREIRA, 2003) Em 1984, a AT&T, detentora da empresa Bell Labs, iniciou a venda da distribuição UNIX chamada de System V. Infelizmente não foram bem sucedidos com a comercialização do UNIX, e venderam os direitos autorais a Caldeira, que atualmente é conhecida como SCO group, após a fusão com a SCO, em À medida que o UNIX ganhava aceitação no mercado, os preços das licenças aumentavam rapidamente. (NEMETH, 2004; INFO, 2002; NUNES, 2003)

25 24 Devido às limitações acarretadas pelos direitos autorais, os acadêmicos não podiam compartilhar seus dados em pesquisas. Com o objetivo de reconquistar a liberdade acadêmica, em 1983, Douglas Comer desenvolveu o XINU, UNIX escrito ao contrário. Em meados da década de 80 o MIT desenvolveu o X Window System, sistema de janelas que atribui uma interface gráfica cliente/servidor, para sistemas operacionais Unix, independente da arquitetura de hardware. Em 1986, Andrew Tannenbaum desenvolveu o MINIX, como alternativa educacional, não baseado no projeto BSD e livre de qualquer código-fonte do UNIX da AT&T, e o tornou disponível em seu livro, Sistemas Operacionais: Projeto e Implementação. Em 1988, o XConsortium, uma organização sem fins lucrativos, foi criada para garantir a evolução do X Window System. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000; FERREIRA, 2003) Devido a este grande crescimento, houve a necessidade de padronização, que em 1990 o Instituto de Engenheiros Elétricos e Eletrônicos (IEEE), desenvolveu o padrão Portable Operating System Interface Unix (POSIX), com o objetivo de uniformizar as características dos sistemas operacionais Unix. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000; FERREIRA, 2003) A maioria das distribuições UNIX da família *BSD (BSD/OS, FreeBSD, NetBSD e OpenBSD), são baseados no 4.4BSD-Lite, os demais UNIX (HP-UX, Solaris e Írix) descendem da linhagem original da AT&T. (NEMETH, 2004; MCCARTHY, 2000; JANG, 2003)

26 Projeto GNU Em 1983, o cientista do MIT Richard Stallman, programador no laboratório de inteligência artificial na área de melhorias para sistemas operacionais de supercomputadores DEC PDP-10, lançou o projeto GNU not Unix (GNU), que tinha como objetivo criar um sistema operacional padrão Unix gratuito, o qual como o primeiro Unix, teria seu código-fonte distribuído de forma livre, de modo que os programadores pudessem ler, modificar e redistribui-lo sem restrições. (INFO, 2002; FERREIRA, 2003; MCCARTHY, 2000; JANG, 2003) A experiência de Stallman no MIT ensinou-lhe que a internet é um meio de comunicação incrível, o qual poderia ser utilizado para aprimorar e adaptar o software em velocidades deslumbrantes, superando a melhor taxa apresentada pelo modelo tradicional de desenvolvimento. (MCCARTHY, 2000; JANG, 2003; ANONYMOUS, 2000) Com intuito de organizar o projeto GNU, baseado no dinamismo da internet, Stallman, em 1984, criou a Free Software Foundation (FSF), uma corporação sem fins lucrativos que busca promover o o uso do software gratuito e eliminar restrições à cópia, redistribuição, entendimento e modificação de software, imposto pelo corphight. (INFO, 2002; FERREIRA, 2003; NEMETH, 2004; MCCARTHY, 2000; JANG, 2003) O objetivo de Stallman era organizar um grupo onde o livre compartilhamento de software fosse ativamente encorajado, entretanto era necessário um sistema operacional de código-fonte livre que não tivesse sob os direitos autorais da AT&T. (INFO, 2002; FERREIRA, 2003; MCCARTHY, 2000; JANG, 2003)

27 26 Para garantia da liberdade a FSF desenvolveu a General Public License (GPL), com a finalidade de proteger o corpo do software gratuito daqueles que poderiam utilizá-lo para criar sistemas de propriedade com código-fonte fechado. (INFO, 2002; FERREIRA, 2003; MCCARTHY, 2000; JANG, 2003) Jang (2003), afirma que a GPL garante três princípios básicos: 1. Todo Software GPL precisa ser distribuído com uma copia completa do código-fonte, devidamente documentado; 2. Qualquer software acrescentado a Software GPL também precisa estar claramente documentado. Se o novo software interagir com o Software GPL, todo o pacote, precisa ser distribuído como Software GPL; 3. Qualquer Software GPL será distribuído sem garantias. Estas regras da GPL, disponíveis no anexo B, fundamentam os conceitos de copyleft, que se opõem ao copyright, cujo propósito é proteger os direitos de propriedade intelectual sobre software de fornecedores comerciais. No início da década de 90 a FSF já tinha obtido ou escrito todos os componentes importantes para o sistema operacional GNU, totalmente compatíveis com Unix, exceto o kernel. (INFO, 2002; FERREIRA, 2003; NEMETH, 2004; MCCARTHY, 2000; JANG, 2003) História do Sistema Operacional Linux O Sistema Operacional Linux foi criado em 1991, pelo finlandês, Linus Trovalds, que na época era estudante de computação na Universidade de Helsinque na Finlândia, quando resolveu melhorar o MINIX, uma variante do sistema

28 27 operacional Unix concebida para fins didáticos, que possui seu código fonte no livro Sistema Operacional: Projeto e Implementação, de Andrew Tanenbaum. Aos poucos Trovalds aperfeiçoava o MINIX de modo a atribuir características melhoradas ao sistema operacional. (FERREIRA, 2003; INFO, 2002) No inicio Trovalds acreditava que este projeto seria apenas um substituto para o MINIX com melhorias onde ele achava ruim ou insuficiente, quando percebeu já havia criado um novo Shell, termo UNIX direcionado à interface texto entre o usuário e o sistema operacional. Este Shell muito semelhante ao Bourne Shell original do UNIX, foi finalizado em agosto de 1991 e tornou menos difícil a criação e compilação de outros programas no linux. (FERREIRA, 2003; INFO, 2002) Em 17 de setembro de 1991 o linux passou a ser distribuído gratuitamente num servidor da web com a versão 0.01 contendo aproximadamente 10 mil linhas de código, em outubro do mesmo ano veio à versão 0.02 e evoluindo gradativamente, quando em novembro foi apresentada a versão Os internautas apareciam com dúvidas para instalar e melhorar o sistema operacional, que começava a fazer barulho na comunidade underground de tecnologia, onde rapidamente substituiu o MINIX. (FERREIRA, 2003; INFO, 2002) Hoje o linux é um sistema operacional completo na versão 2.6.X com mais de 10 milhões de linhas de código, 180 mil programadores, espalhados pelo mundo, trabalhando em suas melhorias, e utiliza diversos pacotes do projeto GNU, tais como utilitários, ferramentas de desenvolvimentos e aplicativos, sem os quais o linux não seria como se conhece hoje. (FERREIRA, 2003; INFO, 2002)

29 28 Segundo ANONYMOUS (2000), durante muitos anos o UNIX foi executado em hardware cujo preço era muito alto. O linux é executado em quase qualquer plataforma, incluindo os processadores: Advanced Micro Device (AMD): Família k6, Athlon, Duron, Opteron, Semprom ; International Business Machines Corporation (IBM): Cyrix e PowerPC; Digital Equipment Corporation (DEC): Alpha; Intel Corporation (Intel): Família 80x86, Celeron, Xeon, Família Pentium; Sparc International Inc: Família Sparc. Tabela 1. Cronologia do linux ANO EVENTO 1969 Ken Thompson criaram o Unix, executado em um supercomputador PDP- 7 da DEC 1970 Thompson e Dennis Richie instalaram o Unix em um PDP-11. Richie cria a linguagem de programação C para ser portável em arquiteturas de hardware diferentes Foi lançada a 1ª versão do Unix, escrita na linguagem Assembly 1973 Richie e Thompson escreveram o primeiro compilador C para Unix. e a 4ª versão do Unix é escrita na linguagem C A AT&T autoriza a distribuição do código-fonte do Unix para as universidades Foi lançada a 6ª versão do Unix. Sua distribuição é ampliada nas universidades. a Universidade da Califórnia, em Berkeley, começa a trabalhar no BSD Unix Foi lançada a 7ª versão do Unix, sob taxas de licensas A AT&T lançou o Unix System III 1983 A AT&T lançou o Unix System V. A Universidade da Califórnia, em Berkeley, lança o BSD Unix 4.2, que foi utilizado pela Sun Microsystems para base de criação do SunOS; Stallman cria a FSF O servidor de janelas X Window começa a ser desenvolvido no MIT

30 Primeira versão comercial do X Window, executado no VAXstation- II/GPX, o X10R Foi lançado o BSD 4.3; A AT&T lança o Unix System V release 3; a Sun e a AT&T concordam em fundir o BSD Unix e o Unix System V Foi Criado a organização aberta, Xconsortium, para garantir a evolução do X; Lançamento o X11R3; Minix foi criado por Tannembaum A AT&T lança o Unix System V release 4, que promove relativa unificação do BSD Unix e do Unix System V; O MINIX é colocado à disposição na internet; Trovalds assiste sua primeira aula de C Trovalds iniciou o desenvolvimento do Linux A Sun lança o Solaris, baseado no Unix System V resease 4; o kernel 0.01 é discutida na internet. Em dezembro foi lançado do Linux 0.99pl Foi lançada a 1ª distribuição Linux em um CD-ROM, e distribuída pela Yggdrasil Foi Lançada versão livre do X Windows, o Xfree Project; Surgem outras distribuições Linux, tais como Red Hat, Slackware e outras Surgem as primeiras versões modularizadas do Linux A Caldeira lança a versão 1.0 com o Netscape e o WordPerfect for X, inclusos. Fonte: FERREIRA, 2003 com adaptações Middleware para Aplicações Distribuídas As aplicações distribuídas existem há vários anos, e o seu objetivo principal é fornecer componentes de softwares remotos. Dentre os middleware para tecnologias de aplicações distribuídos, dos mais conhecidos e utilizados, tem-se: Component Object Model (COM) e Distributed Component Object Model (DCOM), tecnologias da Microsoft Corporation (MS), Enterprise Java Beans (EJB) e Java Remote Method Invocation (RMI), tecnologias da Sun MicroSistems, e Common Object Request Broker Architecture (CORBA), tecnologia do Object Management Group (OMG).

31 30 Fi gura 1 - Cronologia de tecnologias para distribuiçao de serviços Fonte: Ogbuhi, Estas tecnologias para distribuição de serviço são apresentadas por GOMES (2002) como modelos de componentes que trazem novas oportunidades para distribuição de regras de negócio. Todas as aplicações distribuídas em objetos necessitam dos seguintes requisitos, como exposto por SUN (2005): Localizar objetos remotos; Comunicação com os objetos remotos, Recuperar dados passados por parâmetros ou retorno de valores dos respectivos objetos remotos. Segundo BOND (2002), Um componente de software é uma unidade funcional que pode ser usada dentro de uma estrutura específica, onde as estruturas de componentes têm evoluído para dar suporte ao desenvolvimento de aplicativos simplificados. Usando uma estrutura de componentes, um contêiner fornece aos componentes certos serviços padrões, como comunicação e persistência, estes mecanismos são usados para definir os componentes e a comunicação entre eles, o

32 31 que torna possível escrever ferramentas que examinem componentes e exibam suas informações para um gerador de aplicativos, como uma ferramenta visual para Rapid Application Development (RAD). Os princípios de componentes se aplicam também a componentes não visuais. Aplicativos distribuídos inteiros podem ser criados a partir de componentes. Uma das vantagens das estruturas de componentes distribuídos é que elas fornecem independência de linguagem. (SEI, 2005) DCOM - Distributed Component Object Model A tecnologia COM apresentada pela MICROSOFT (2005), utilizada nos sistemas operacionais da família Windows, como ferramenta para habilitar comunicação de componentes de softwares que é usado por seus desenvolvedores para re-usabilidade, unindo os componentes para construir as aplicações, e favorecer os serviços oferecidos pela plataforma Windows. A família de tecnologia COM inclui COM+, DCOM, e controles ActiveX. A família de tecnologia COM, segundo SEI (2005), refere-se a especificações e implementações desenvolvidas pela Microsoft Corporation que prove um framework para integrar os componentes. Este framework suporta interoperabilidade e re-usabilidade de objetos distribuídos permitindo aos desenvolvedores construir sistemas reunindo componentes reutilizáveis de diferentes fabricantes que se comunicam via COM em redes heterogêneas.

33 32 DCOM é usada em aplicações como a família de produtos MS-Office. E a tecnologia COM OLE, permite vincular dados de documentos Word dinamicamente em planilhas excel e a automação COM permite usuários construir scripts em suas aplicações para efetuar repetitivas tarefas ou controlar aplicações diferentes. (MICROSOFT, 2005) O artigo publicado por SEI (2005), considera a família COM como apenas uma tecnologia que prover um gama de serviços para interação de componentes, promovendo integração de componentes em uma simples plataforma sobre redes heterogêneas. E ainda diz que as extensões COM e DCOM são simplesmente unidas em tempo de execução, tanto para acesso local quanto remoto, que pode ser observada na figura abaixo. Fi gura 2 - Comunicação entre processos em COM Fonte: SEI, Em seu artigo RAJ (2005) apresenta o protocolo Object Remote Procedure Call (ORPC), como protocolo de chamada para tecnologia COM, como apresentada

34 33 na figura seguinte. O ORPC estabelece uma camada que interage entre os componentes COM e os serviços em tempo real. Onde o servidor DCOM é o corpo do código capaz de servir os objetos de maneira particular em tempo de execução. Cada servidor de objetos DCOM pode suportar múltiplas interfaces representando diferentes comportamentos dos objetos. Fi gura 3 - Interação de objetos com tecnologia DCOM Fonte: SEI, CORBA - Common Object Request Broker Architecture CORBA é apresentado por RAVAGNANI JUNIOR (2001) como uma especificação de arquitetura desenvolvida para ambientes heterogêneos distribuídos que utiliza a tecnologia de orientação a objetos. Essa especificação foi criada pelo Object Management Group (OMG), que é uma organização internacional da indústria de software independente, fundada em maio de 1989, suportada por seus próprios membros associados. O objetivo primário consiste em alcançar sistemas baseados em objetos que dispõem de ambientes distribuídos heterogêneos com características de re-usabilidade, portabilidade e interoperabilidade, permitindo que

35 34 as aplicações façam solicitações a objetos, de uma forma transparente, independente, indiferente à linguagem, sistema operacional ou considerações de localização. Segundo OGBUJI1 (2002), a tecnologia CORBA surgiu de um esforço fora da industria para padronizar os processos na tecnologia distribuída. Nesta época o OMG focalizou as requisições em objetos remotos para atravessar plataformas de aplicações distribuídas. Por este motivo tenta-se emitir como um objeto estado e gerenciar um ciclo de vida transparente. Em seu artigo RAJ (2005) apresenta o Internet Inter-ORB Protocol (IIOP), como protocolo confiável para chamadas a objetos remotos em CORBA. Toda arquitetura CORBA depende de um Object Request Broker (ORB). O ORB age como um barramento de objetos central sobre o qual cada objeto CORBA interage transparentemente com outros objetos CORBA locais ou remotos. Cada servidor de objetos CORBA tem uma interface que divulga o conjunto de métodos disponíveis. Para requisitar um serviço, um cliente CORBA adquire uma referência ao servidor de objetos CORBA, como apresentado na figura abaixo.

36 35 Fi gura 4 - Estrutura ORB Fonte: RAVAGNANI JUNIOR, 2001 O ORB é responsável por procurar implementações um objeto CORBA, preparando-o para receber e transmitir requisições, e retornar as respostas aos clientes. Uma iteração de objetos CORBA com uma interface ORB ou uma Interface Object Adapter, ambas com igual valor EJB - Enterprise Java Beans Os autores KURNIAWAN (2002) e BOND (2002) concordam que EJB é um componente do lado servidor que encapsula a lógica comercial e dados corporativos, também apresentam o EJB como solução para robustez, escalabilidade, gerenciamento de ciclo de vida e gerenciamento de estados em objetos componentizados. GALVÃO (2002) acrescenta que a especificação EJB define um padrão e genrencia os componentes de negócio distribuídos, seguindo uma especificação própria. Os EJB s são executados em um runtime, simplimente um ambiente de execução, que fornece serviços básicos de gerenciamento de transações. O runtime é geralmente implementado por softwares sofisticados, chamados de Application Servers, ou simplimente servidores de aplicações. (GALVÃO, 2002) Para BOND (2002), um EJB é uma estrutura empacotada contendo informações de configuração, que é basicamente um componente gerenciado, criado, controlado e destruído pelo contêiner Java 2 Emprise Edition (J2EE). Esse controle permite que o contêiner gerencie o numero de EJB s existentes e os

37 36 recursos que estão usando, como memória e conexões de banco de dados. Cada contêiner manterá um conjunto de instâncias de EJB s disponibilizados e prontos para serem atribuídas a um cliente. Neste relacionamento os EJB s tiram o máximo proveito de serviços oferecidos pelo contêiner J2EE, em segurança, transações e ciclo de vida. Há três tipos diferentes de EJB, apresentados por BOND (2002): EJB de sessão, útil para mapear fluxo de regras de negócios, subdividido em EJB de sessão com estado e EJB de sessão sem estado; EJB de entidade usado para mapear uma combinação de dados e a funcionalidade associada, e fundamentado em repositório de dados subjacentes; e EJB dirigido por mensagens que conceitualmente se parece com o EJB de sessão, mas somente é ativado quando chega uma mensagem assíncrona. A tecnologia EJB além de ser desenvolvida em J2EE, a tecnologia mais complexa da plataforma Java, depende de outras tecnologias para funcionar adequadamente,graficamente apresentado na figura abaixo, como afirma KURNIAWAN (2002), tal como Java Remote Method Invocation (RMI), ou sobre o Internet Inter-ORB Protocol (RMI-IIOP), onde ORB é o mesmo protocolo apresentado por RAJ (2005) para um funcionamento confiável do CORBA.

38 37 Fi gura 5 - Comunicação RMI-IIOP do EJB Fonte: Almeida, 2004 O protocolo RMI-IIOP é apresentado por KURNIAWAN (2002) como a versão mais portátil de RMI que pode ser usada com o IIOP e é especialmente utilizada entre comunicações enterprise bean e um cliente RMI - Remote Method Invocation A documentação Java/RMI disponibilizada pela SUN (2005), apresenta o servidor de interface remota como identificador de interfaces, cujos métodos podem ser invocados de uma máquina virtual não local. GALVÃO (2002) apresenta Java/RMI como uma solução simples para a distribuiçao de aplicações Java, permitindo a comunicação entre objetos em máquinas virtuais diferentes, e afirma que o código usado para chamar um método

39 38 de um objeto remoto é praticamente o mesmo que na chamada de um método de objeto local. As aplicações RMI contêm estruturas distintas para representação cliente/servidor. Um servidor de aplicações típico cria uma determinada quantidade de objetos remotos, tornando-os acessíveis, e aguardando as requisições de métodos por clientes a estes objetos remotos. Uma aplicação cliente típica obtém uma ou mais referências de objetos remotos em um servidor e invoca seus métodos. RMI prove um mecanismo que o servidor e o cliente comunicam-se trocando informações entre si, tal como proposto para aplicações de objetos distribuídos. (SUN, 2005) A figura abaixo representa uma aplicação RMI distribuída que usa o registro para obter referência ao objeto remoto. O servidor chama o registro para associar um nome com o objeto remoto. O cliente procura o objeto remoto pelo nome registrado no servidor e invoca um de seus métodos. A figura também mostra que o sistema RMI usa um servidor web existente para carregar bytecodes das classes escritas na linguagem de programação Java, do servidor para o cliente e vice-versa, dos objetos quando necessário. RMI pode carregar as classes bytecodes usando qualquer protocolo URL (HTTP, FTP, file e outros) que é suportado pela plataforma Java. (SUN, 2005)

40 39 Fi gura 6 - Interação de objetos com tecnologia RMI Fonte: SUN, 2005 RAJ (2005) em seu artigo apresenta o Java Remote Method Protocol (JRMP), como protocolo confiável para serialização de objetos na tecnologia Java/RMI. O qual permite objetos serem controlados ou transmitidos como um fluxo, desde que a serialização de objeto seja especificado em Java, ambos, tanto o servidor de objetos Java/RMI quanto o cliente de objetos devem ser escritos em Java. Cada servidor de objetos Java/RMI define uma interface que pode ser usada para acessar o servidor de objetos fora da Java Virtual Machine (JVM) e em outras JVM s Web Services Para EWALD (2002) o modelo de desenvolvimento para aplicações distribuído tem sido rapidamente adotado e desenvolvido, em tal escala como o modelo web. O sucesso fenomenal do modelo de programação web pode ser atribuído a uma característica central: o fraco acoplamento. O fraco acoplamento é bem maior que o modelo tradicional de programação distribuída, baseada em RPC. As interações entre clientes e servidores são simples, trocam mensagens, entre si, que transportam dados do tipo Multipurpose Internet Mail Extensions (MIME-type),

41 40 que a semântica das mensagens podem ser modificadas usando seus próprios cabeçalhos. O destino da mensagem especificada indiretamente usando URL, e este nível de caminho indireto pode ser alavancado para implementar o carregamento balanceado, rastreamento de sessões e outras características. Na própria alta plataforma UNIX, como afirma OGBUJI (2002), HP tentou uma remarcação da estrutura de diretórios para minicomputares da era de computação distribuída para o modernos Web Services. Na primeira metade dos anos 90, os Laboratórios HP começaram a pesquisar como reduzir as técnicas bem conhecidas e custos com ploblemas em sistemas distribuídos. Os principais resutados desenvolvidos guiaram o projeto da HP para e-speak, realizado após 1999, e e- Speak surgiu provavelmente como a primeira tecnologia Web Service, e certamente a primeira tecnologia Web Service desenvolvida comercialmente. Ele usa protocolos genéricos tal como HTTP e representação XML de dados para negociar toda espécie de sistemas em redes como serviços eletrônicos dentro do qual pode rapidamente conectar fluxo de dados. Infelizmente, por causa da visão distante de fluxo do estado atual dos Web Services, a HP recentemente suprimiu o projeto e- Speak em favor de um maior objetivo final oferecido pelos Web Services. A simplicidade das interações em um modelo de programação web torna possível a construção incremental de sistemas. Diferente dos firmemente acoplados RPC e aplicações de objetos distribuídos com os middleware atualmente comercializados. O qual requer todas as peças de um sistema para ser desenvolvido em massa, Você pode adicionar clientes e servidores a sistemas baseados na web à medida que necessário podendo estabelecer conexões a novas aplicações razoavelmente fáceis e ainda fazer deste uma maneira descentralizada sem nenhum

42 41 centro de coordenação além do registro de domínio do Dinamic Name Service (DNS), com um grau de interoperabilidade, escalabilidade e gerenciamento que é altamente notável.(ogbuji, 2002) Como afirma OGBUJI (2002), o CORBA prove menos escalabilidade de mensagens que em algumas outras tecnologias. O mesmo problema importuna as tecnologias COM e DCOM para protocolos de objetos remotos. Ao mesmo tempo, e- mail e web têm sempre apresentado um maior sucesso em relação a arquitetura de desenvolvimento distribuído, e o programador segue a tecnologia de desenvolvimento distribuído que fornece um fraco acoplamento às mensagens e está presente em todo lugar da internet. Padrões que são adotados por todos os principais fornecedores, que possuem diferentes desejos, com o objetivo de reduzir o risco associado com a escolha de tal tecnologia. Durante este periodo outras tecnologias distribuídas mais especializadas emergiram. A popularidade da plataforma Java com sua especialização no protocolo RMI, e o nicho de sucesso da tecnologia MQSeries para Microsoft codimenta a Java messaging. O Web Service atua no modelo de desenvolvimento Web englobando o melhor de ambas técnicas para tecnologias de serviços distribuídos, e para NASCIMENTO (2005), é uma tecnologia idealizada para comunicação entre sistemas, sendo muito usada em aplicações B2B, padronizando a comunicação entre os serviços, possibilitando a independência de plataforma e de linguagem de programação. Romin Irani, em sua contribuição ao livro Profissional Java web services, em parceria com HENDRICKS (2002), relata que os web services são o que há de mais

43 42 recente em desenvolvimento de aplicações, e vem atraindo o interesse de desenvolvedores que trabalham em todas as plataformas, embora os Web Services não sejam a primeira e nem a única tecnologia a permitir composição de RPC s, de um objeto pela rede, eles diferem das tecnologias existentes, pelo fato de usarem padrões neutros de plataforma, como HTTP e XML, que permite ocultar as particularidades relativas à implementação e plataforma de hardware do cliente. A idéia dos Web Services é permitir que aplicações sejam criadas compondo funcionalidades de diversos Web Services. Como são disponibilizados por comunicação via código podem ser implementados em diversas linguagens, tais como, C++,C#, COBOL, Component Pascal, Curriculum, Eiffel, Fortran, Haskell, Java, Microsoft JScript, Mercury Mondrian, Oberon, Oz, Pascal, Perl, Python, RPG, Scheme, SmallTalk, Standard ML, Microsoft Visual Basic e outras. Atualmente há duas grandes plataformas que facilitam o desenvolvimento de um Web Service, dotnet e JAVA. A plataforma dotnet possue Microsoft Visual Studio dotnet, que atualmente é a melhor solução para desenvolvimento em dotnet, mas além desta tem-se iniciativas livres como o Projeto DotGNU que é uma iniciativa da comunidade GNU liderada por Richard M. Stallman, fundador do Projeto GNU e presidente da Fundação para o Software Livre e também o Projeto Mono que é outra alternativa para implementação livre de desenvolvimento da plataforma dotnet sua principal caracteristica é trazer a plataforma dotnet para os sistemas livres e permitir que os desenvolvedores criem aplicações dotnet que as execute sobre qualquer plataforma suportada pelo Mono. O Projeto Mono é liderado pela Ximian, a empresa de Software Livre co-fundada por Miguel de Icaza, que levou o desktop GNOME a um grande sucesso. A plataforma Java possui um grande conjunto de API s para suportar Web Services, fornecidas livremente por empresas de destaque no

44 43 mercado como Sun e IBM, estas podem ser atualmente encontradas no Java XML Pack e no Web Services Developer Pack (WSDP). O fato de estarem incorporados a J2EE é importante para efeito de padronização e depende da estabilização destas API s, que ainda estão em processo de evolução. (DOEDERLEIN, 2001; DOEDERLEIN, 2002) O Web Service pode criar aplicações modulares e independentes que são distribuídas facilmente em qualquer estrutura de redes TCP/IP, pois esse foi um dos princípios fundamentais de sua implementação. Um grande ponto positivo desta tecnologia é na criação de servidores e clientes, que independem da tecnologia utilizada, tais como linguagem de programação e sistema operacional. São aplicações modulares auto-descritivas e podem ser publicadas, localizadas e invocadas de qualquer local na rede (LAN, WAN ou WEB), porta-se como um site que não tem uma interface com o usuário, projetado para ser acessado via programação, como apresentado na figura abaixo. (LOPES, 2002; DOEDERLEIN, 2001)

45 44 Fi gura 7 - Interface do Usuário Fonte: Os Web Services são uma idéia velha dentro de uma proposta nova de arquitetura. Assim como CORBA que utiliza um repositório internacional de objetos distribuídos de tal forma que fosse possível solicitar serviços pela rede, sem importar-se por quem e como este serviço estaria sendo provido. Entretanto a tecnologia não foi aderida pelo mercado, devido as características proprietárias. Além do CORBA isto também aconteceu com as outras tecnologias para distribuição de serviços e objetos remotos em rede, tais como COM, DCOM, EJB e Java/RMI. Estas tecnologias para distribuição de serviço são modelos de componentes que trazem novas oportunidades para a distribuição de regras de negócio, mas o mercado ainda não conseguiu consolidar nenhuma delas como padrão de cooperação entre ambientes corporativos, devido a incompatibilidade de seus protocolos proprietários. Como no quadro comparativo abaixo. (GOMES, 2002; GOMES, 2001; DOEDERLEIN, 2001) Fi gura 8 - Tecnologias aplicadas a middleware Fonte: GOMES, 2002 A utilização em massa de qualquer nova tecnologia implica em mudanças de costumes e paradigmas. E todas estas tecnologias citadas possuem complexidades a mais que precisam ser assimiladas pelo mercado, embora estas interfaces, middleware como são conhecidas, suportem acesso via programação, nenhuma

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

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Aula 2 Objetivo: Saber qual a funcionalidade de um sistema operacional de rede. Sistema Operacional de Rede Definição: Conjunto de módulos que ampliam as tarefas dos sistemas operacionais locais, complementando-os

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

Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE

Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Brasília DF 2005 Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE MONOGRAFIA

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

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

16:21:50. Introdução à Informática com Software Livre

16:21:50. Introdução à Informática com Software Livre 16:21:50 Introdução à Informática com Software Livre 1 16:21:50 Hardware & Software 2 16:21:50 Hardware Hardware é a parte física de um computador, é formado pelos componentes eletrônicos, como por exemplo,

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

Leia mais

Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE

Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Brasília DF 2005 Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE MONOGRAFIA

Leia mais

APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE

APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA ESPECIALIZAÇÃO EM ORIENTAÇÃO A OBJETO APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento Brasília DF 2005 Ricardo

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

Laboratório de Redes de Computadores e Sistemas Operacionais

Laboratório de Redes de Computadores e Sistemas Operacionais Laboratório de Redes de Computadores e Sistemas Operacionais Linux: Introdução Fabricio Breve Introdução O que é Linux? Uma versão do UNIX (re-implementação do padrão POSIX) Principais diferenciais: Gratuito

Leia mais

Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE

Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Brasília DF 2005 Ricardo Brito do Nascimento APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE MONOGRAFIA

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

PLANO DE AULA. Ambiente Operacional Unix Profa. Morganna

PLANO DE AULA. Ambiente Operacional Unix Profa. Morganna PLANO DE AULA 1. Sistema operacional Unix 2. Sistema operacional Linux 3. Utilização dos sistemas operacionais 1 - Sistema Operacional UNIX História 1964 sistema operacional MULTICS (Multiplexed Information

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

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

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

Curso Introdução ao Linux. Desmistificando o Software Livre. Nícholas André - www.iotecnologia.com.br - nicholas@iotecnologia.com.

Curso Introdução ao Linux. Desmistificando o Software Livre. Nícholas André - www.iotecnologia.com.br - nicholas@iotecnologia.com. Curso Introdução ao Linux Desmistificando o Software Livre Nícholas André - www.iotecnologia.com.br - nicholas@iotecnologia.com.br Índice 1 O que é Software Livre? 2 A história por trás do Software Livre.

Leia mais

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL

LINUX. Lapro I Profa. Fernanda Denardin Walker. - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL LINUX Lapro I Profa. Fernanda Denardin Walker - Aula 2 - Material adaptado de: Isabel Mansour, Marcia Moraes e Silvia Moraes SISTEMA OPERACIONAL Para que o computador funcione e possibilite a execução

Leia mais

Como é o desenvolvimento de Software?

Como é o desenvolvimento de Software? Como é o desenvolvimento de Software? Fases do Desenvolvimento Modelo Cascata Define atividades seqüenciais Outras abordagens são baseadas nesta idéia Especificação de Requisitos Projeto Implementação

Leia mais

Serviços Web: Introdução

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

Leia mais

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

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

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

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

Leia mais

SISTEMA OPERACIONAL & SOFTWARE LIVRE

SISTEMA OPERACIONAL & SOFTWARE LIVRE Curso Técnico em Redes de Computadores Disciplina de Sistemas Operacionais Livres SISTEMA OPERACIONAL & SOFTWARE LIVRE Professora: Juliana Cristina dos Santos E-mail: professora@julianacristina.com Site:

Leia mais

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

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

Leia mais

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01. Prof. André Lucio FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 01 Prof. André Lucio Competências do modulo Introdução ao sistema operacional Windows Instalação e configuração do sistema

Leia mais

Introdução ao Sistema UNIX

Introdução ao Sistema UNIX Volnys & Midorikawa (c) 1 Introdução ao Sistema UNIX Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Edson Toshimi Midorikawa emidorik@lsi.usp.br http://www.lsi.usp.br/~emidorik Laboratório

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o

Leia mais

APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE

APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE INSTITUTO CIENTÍFICO DE ENSINO SUPERIOR E PESQUISA ESPECIALIZAÇÃO EM ORIENTAÇÃO A OBJETO APLICAÇÕES DISTRIBUÍDAS COM WEB SERVICE NA PLATAFORMA LIVRE Ricardo Brito do Nascimento Brasília DF 2005 Ricardo

Leia mais

Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br

Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Programação Estruturada Linguagem C Introdução Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Um pouco da história Por que aprender a programar em C Ambiente de Desenvolvimento

Leia mais

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER.

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER. 1 FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TÉCNICO EM INFORMÁTICA PRONATEC PROFESSOR: NATANIEL VIEIRA ALUNOS: ANA CAROLINA, ROMÁRIO, WAGNER. TURMA: 2 TERMOS TÉCNICOS PELOTAS, 2012 ANA CAROLINA, ROMÁRIO,

Leia mais

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE DE TECNOLOGIA SENAC PELOTAS CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

PARANÁ GOVERNO DO ESTADO

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

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

UNIX: Uma Breve Apresentação

UNIX: Uma Breve Apresentação Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 1 1. Introdução Este documento procura explorar os aspectos históricos envolvidos no desenvolvimento do sistema operacional UNIX com o objetivo

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA* PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA* Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 *Adaptado de PACHECO, R C S & RIEKE, R N INE UFSC Disponível em: http://wwwstelaufscbr/~pacheco/dsoo/htm/downloadshtm

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

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

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

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

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

SISTEMAS OPERACIONAIS

SISTEMAS OPERACIONAIS SISTEMAS OPERACIONAIS Tópico 4 Estrutura do Sistema Operacional Prof. Rafael Gross prof.rafaelgross@fatec.sp.gov.br FUNÇÕES DO NUCLEO As principais funções do núcleo encontradas na maioria dos sistemas

Leia mais

Linux. Guia do Administrador do Sistema. Rubem E. Ferreira. Novatec Editora Ltda. www.novateceditora.com.br

Linux. Guia do Administrador do Sistema. Rubem E. Ferreira. Novatec Editora Ltda. www.novateceditora.com.br Linux Guia do Administrador do Sistema Rubem E. Ferreira Novatec Editora Ltda. www.novateceditora.com.br 1 O início de tudo Entre os vários sistemas operacionais existentes, o Unix é um exemplo de maturidade

Leia mais

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 1 Introdução ao Java Objetivos do Capítulo Compor uma visão histórica mínima para a compreensão da origem do Java. Compreender o que é o Java e para que finalidades ele é empregado. Delinear algumas

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

Aula 01. Introdução ao Linux

Aula 01. Introdução ao Linux Aula 01 Introdução ao Linux Introdução Objetivos aprender a usar um novo sistema aprender a usar uma nova interface Como no Windows navegar pela internet (e-mails, facebook, etc) criar pastas e arquivos

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

Introdução a Computação

Introdução a Computação Introdução a Computação 08 - Licenças, Tipos de Softwares, Tradutores. Linguagens de Máquina, de Baixo Nível e de Alto Nível Márcio Daniel Puntel marcio.puntel@ulbra.edu.br Software Livre GPL BSD Software

Leia mais

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos 11 Objetivos Este capítulo apresenta uma introdução aos sistemas distribuídos em geral Arquiteturas de cliente servidor Características das arquiteturas de 2 e 3 camadas Ambiente

Leia mais

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação A camada de aplicação fornece os serviços "reais" de rede para os usuários. Os níveis abaixo da aplicação fornecem

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

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva Introdução à Linguagem Java Departamento de Informática Prof. Anselmo C. de Paiva Breve Histórico Sun Microsystems, 90/91: projeto de uma linguagem de programação pequena que pudesse ser usada em dispositivos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

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

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

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

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

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

Sistema Operacional LINUX

Sistema Operacional LINUX SISTEMA OPERACIONAL Sistema Operacional LINUX Para que o computador funcione e possibilite a execução de programas é necessária a existência de um sistema operacional. O sistema operacional é uma camada

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 Operacionais

Sistemas Operacionais O que é um sistema operacional? Sistema operacional (do inglês OS - operating system) é um programa ou conjunto de programas, que tem a função de gerencias o sistema. O sistema é o todo o hardware (computador),

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

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

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais

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

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com

Modelos de Arquiteturas. Prof. Andrêza Leite andreza.lba@gmail.com Modelos de Arquiteturas Prof. Andrêza Leite andreza.lba@gmail.com Agenda Introdução Arquitetura de Sistemas Distribuídos Clientes e Servidores Peer-to-Peer Variações Vários Servidores Proxy Código Móvel

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Motivação Realidade Atual Ampla adoção das diversas tecnologias de redes de computadores Evolução das tecnologias de comunicação Redução dos

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

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

Programação de Computadores II TCC-00.309 Turma A-1

Programação de Computadores II TCC-00.309 Turma A-1 Material elaborado pelo prof. Leandro A. F. Fernandes com contribuições dos profs. Anselmo A. Montenegro e Marcos Lage Programação de Computadores II TCC-00.309 Turma A-1 Conteúdo Introdução ao Ambiente

Leia mais

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?

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

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

Leia mais

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

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 07 Arquitetura de Sistemas Operacionais Prof. Maxwell Anderson www.maxwellanderson.com.br Introdução Conceitos já vistos em aulas anteriores: Definição de Sistemas Operacionais

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

Software de sistema Software aplicativo

Software de sistema Software aplicativo SOFTWARE O que é Software? Software, logicial ou programa de computador é uma sequência de instruções a serem seguidas e/ou executadas, na manipulação, redireccionamento ou modificação de um dado/informação

Leia mais

Administração de Sistemas Livres. Prof. Lais Farias Alves

Administração de Sistemas Livres. Prof. Lais Farias Alves Administração de Sistemas Livres Prof. Lais Farias Alves Administração de Sistemas Livres Software e Suas Licenças O que é um Software Livre? Software Livre x Software Proprietário Software e Suas Licenças

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

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

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

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

PREPARATÓRIO RIO PARA CAIXA ECONÔMICA

PREPARATÓRIO RIO PARA CAIXA ECONÔMICA PREPARATÓRIO RIO PARA CAIXA ECONÔMICA O que é Software Livre? Software Livre (Free Software) é o software disponível com a permissão para qualquer um usá-lo, copiá-lo, e distribuí-lo, seja na sua forma

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

Leia mais