ATUALIZAO DO ERP DELSOFT EM SEUS CLIENES, UTILIZANDO WEB SERVICE
RIO DO SUL JULHO 2006
2
ALFONSO NOERENBERG JUNIOR
PROTTIPO DE UM SISTEMA PARA AUXLIO NA ATUALIZAO DO ERP DELSOFT EM SEUS CLIENES, UTILIZANDO WEB SERVICE
Trabalho de Concluso de Curso elaborado para o Curso de Bacharel em Sistemas de Informao, da Faculdade de Cincia e Tecnologia, da Universidade para o Desenvolvimento do Alto Vale do Itaja.
Orientador: Prof. Paulo Jos Fiamoncini
RIO DO SUL JULHO 2006
3
TERMO DE APROVAO
ALFONSO NOERENBERG JUNIOR
PROTTIPO DE UM SISTEMA PARA AUXLIO NA ATUALIZAO DO ERP DELSOFT EM SEUS CLIENTES, UTILIZANDO WEB SERVICE
Trabalho de Concluso de Curso de Bacharel em Sistemas de Informao, Faculdade de Cincia e Tecnologia da Universidade para o Desenvolvimento do Alto Vale do Itaja, pela seguinte banca examinadora:
Banca Examinadora:
__________________________________ Prof. Paulo Jos Fiamoncini Orientador
__________________________________ Prof. Marco Aurlio Butzke
__________________________________ Prof. Fbio Alexandrini
Rio do Sul, julho de 2006.
4
DEDICATRIA
Dedico este trabalho aos meus pais e aos meus irmos pelo apoio que me deram durante todo o curso.
5 AGRADECIMENTOS
Primeiramente agradeo aos meus pais Alfonso Noerenberg e Anita Noerenberg, pelo apoio que me deram em toda a trajetria do curso e durante o desenvolvimento do projeto de concluso de curso. Agradeo tambm a Delsoft Sistemas pelo acompanhamento no desenvolvimento, tempo disponibilizado, por ter disponibilizado equipamento e software para o desenvolvimento do projeto e do relatrio. Agradeo aos professores que lecionaram durante o curso, por terem nos passado seus conhecimentos, muitas vezes alm do contedo do curso. E por fim, porm no menos importante, agradeo ao meu orientador do trabalho de concluso de curso por ter me auxiliado em minhas dvidas durante o desenvolvimento do projeto e do relatrio.
6
NDICE
RESUMO ..............................................................................................10 1- INTRODUO..................................................................................11 2 - JUSTIFICATIVA...............................................................................13 2 - OBJETIVOS.....................................................................................14 3 - FUNDAMENTAO TERICA.......................................................15 3.1 - Web Service ................................................................................................................................................. 15 3.2 - WSDL........................................................................................................................................................... 16 3.3 - Internet......................................................................................................................................................... 17 3.4 - Protocolo TCP/IP ..................................................................................................................................... 18 3.4.1 - Arquitetura TCP/IP........................................................................................................................... 19 3.5 - Protocolo SOAP........................................................................................................................................... 21 3.5 - Segurana..................................................................................................................................................... 22 3.5.1 - Mas quem so os hackers? .................................................................................................................... 23 3.5.2 - Para que essa segurana?....................................................................................................................... 23 3.5.3 - E como podemos nos proteger?............................................................................................................. 24 3.5.4 - Firewall.................................................................................................................................................. 26 3.5.4.1 - Funcionalidades ............................................................................................................................. 27 3.5.5 - Criptografia ........................................................................................................................................... 29 3.6 - Genexus ........................................................................................................................................................ 30 3.7 - Linguagens de Programao...................................................................................................................... 32 3.7.1 - Java........................................................................................................................................................ 32 3.7.1.1 - A Linguagem................................................................................................................................. 32 3.7.2 - Visual Basic........................................................................................................................................... 34 3.7.2.1 - Histrico ........................................................................................................................................ 34 3.7.2.2 - Conceitos Usados em Visual Basic ............................................................................................... 35 3.8 - Banco de Dados ........................................................................................................................................... 35 3.8.1 - SQL Server ............................................................................................................................................ 36 3.8.2 - Oracle .................................................................................................................................................... 36 3.8.2.1 - Estrutura do Banco de Dados ........................................................................................................ 38 3.8.3 - PostgreSQL ........................................................................................................................................... 39 3.9 - Apache Tomcat............................................................................................................................................ 40 3.10 - ERP............................................................................................................................................................. 40
7 4 - DESENVOLVIMENTOS DO SISTEMA............................................42 4.1 - OBJETIVO DO SISTEMA........................................................................................................................ 42 4.2 - MODELAGEM DE DADOS...................................................................................................................... 42 4.2.1 - Web Service .......................................................................................................................................... 42 4.2.2 - Software Cliente .................................................................................................................................... 42 4.3 - ESQUEMA TCNICO............................................................................................................................... 43 4.4 - ANLISE DO SISTEMA........................................................................................................................... 44 4.4.1 - Autenticao.......................................................................................................................................... 44 4.4.2 - Verificar Atualizaes Existentes e Novos Programas.......................................................................... 45 4.4.3 - Download das Atualizaes .................................................................................................................. 45 4.4.4 - Execuo da Atualizao....................................................................................................................... 46 4.5 - Desenvolvimento.......................................................................................................................................... 47 4.5.1 - Sistema de Cadastro .............................................................................................................................. 47 4.5.1.1 - Menu.............................................................................................................................................. 47 4.5.1.2 - Modelos ......................................................................................................................................... 47 4.5.1.3 - Consulta de Modelos ..................................................................................................................... 48 4.5.1.4 - Programas ...................................................................................................................................... 49 4.5.1.5 - Consulta de Programas .................................................................................................................. 49 4.5.1.6 - Clientes .......................................................................................................................................... 50 4.5.1.7 - Consulta de Clientes ...................................................................................................................... 51 4.5.1.8 - Alteraes ...................................................................................................................................... 51 4.5.1.9 - Web Service................................................................................................................................... 52 4.5.1.10 - Software Cliente .......................................................................................................................... 54 4.5.2 Problemas encontrados ......................................................................................................................... 55 5 - CONCLUSO..................................................................................57 REFERNCIAS.....................................................................................58
8 NDICE DE FIGURAS
Figura 1 : Esquema de funcionamento de um web service .............................................................................. 16 Figura 2: Uma rede baseada no protocolo TCP/IP .......................................................................................... 19 Figura 3: Camadas da arquitetura TCP/IP ...................................................................................................... 19 Figura 4: Datagrama de da camada de Internet............................................................................................... 20 Figura 5: Representao de um firewall............................................................................................................ 26 Figura 6: Estrutura do banco de dados do Web Service.................................................................................. 42 Figura 7: Estrutura do banco de dados do Software Cliente........................................................................... 42 Figura 8: Esquema tcnico de funcionamento do prottipo. ........................................................................... 43 Figura 9: DFD da Autenticao ......................................................................................................................... 44 Figura 10: DFD da verificao de atualizao.................................................................................................. 45 Figura 11: DFD do processo de download das atualizaes ............................................................................ 46 Figura 12 : Menu de do sistema de cadastro das informaes na base de dados do prottipo..................... 47 Figura 13: Tela de cadastro de modelos ............................................................................................................ 48 Figura 14: Tela de consulta de modelos............................................................................................................. 48 Figura 15: Tela de cadastro de programas........................................................................................................ 49 Figura 16: Tela de consulta de programas ........................................................................................................ 50 Figura 17: Tela de cadastro de clientes.............................................................................................................. 50 Figura 18: Tela de consulta de clientes .............................................................................................................. 51 Figura 19: Tela de cadastro das alteraes ....................................................................................................... 52 Figura 20: Estrutura de retorno do web service. .............................................................................................. 53 Figura 21: Funo e parmetros do web service. ............................................................................................. 53 Figura 22: Tela do software cliente. ................................................................................................................... 54 Figura 23: Exemplo do SDT (Structure Data Type). ....................................................................................... 55 Figura 24: Leitura do retorno do web service................................................................................................... 56
9 LISTA DE ABREVIATURAS E SIGLAS
ERP Enterprise Resource Planning ....................................................................... 11 SOAP Simple Object Access Protocol .................................................................... 15 XML Extensible Markup Language ....................................................................... 15 WSDL Web Service Description Language ............................................................. 16 UDDI - Universal Description, Discovery and Integration........................................ 16 URL Universal Resource Locator ......................................................................... 17 ARPA Advanced Research and Projects Agency .................................................... 17 FAPESP Fundo de Amparo Pesquisa de Estado de So Paulo ................................. 18 UFRJ Universidade Federal do Rio de Janeiro ....................................................... 18 LNCC Laboratrio Nacional de Computao Cientfica de Rio de Janeiro ............ 18 RNP Rede Nacional de Pesquisa ........................................................................... 18 TCP Transmission Control Protocol ..................................................................... 18 IP Internet Protocol ........................................................................................... 18 FTP File Transfer Protocol ................................................................................... 20 SMTP Simple Mail Transfer Protocol ..................................................................... 20 POP3 Post Office Protocol ..................................................................................... 20 DNS Domain Name Server ................................................................................... 20 UDP User Datagram Protocol ............................................................................... 20 ATM Asynchronous Transfer Mode ...................................................................... 21 FDDI Fiber Distributed Data Interface ................................................................... 21 PPP Point-to-Point Protocol ................................................................................. 21 SLIP Serial Line Internet Protocol ......................................................................... 21 W3C World Wide Web Consortium ...................................................................... 21 HTTP HyperText Transfer Protocol ........................................................................ 21 TI Tecnologia de Informao ............................................................................ 22 NIDS Network Intrusion Detection System ........................................................... 24 SUID Set User ID ................................................................................................... 25 HTML HyperText Markup Language ...................................................................... 25 SFTP Secure File Transfer Protocol ....................................................................... 25 SCP Secure Copy .................................................................................................. 25 SSH Secure Shell .................................................................................................. 25 NAT Network Address Translation ....................................................................... 27 VPN Virtual Private Network ................................................................................ 27 DMZ Demilitarized Zone ....................................................................................... 28 IPSec Internet Protocol Security ............................................................................. 29 PKI Public Key Infrastructure ............................................................................. 29 SSO Single Sing-On ............................................................................................. 29 MS-DOS Microsoft Disc Operating System ................................................................ 31 JVM Java Virtual Machine .................................................................................... 33 API - Application Programming Interface............................................................... 33 BASIC Begginners Allpurpose Symbolic Instruction Code .................................... 34 SNA Systems Network Architeture ....................................................................... 34 SQL Structured Query Language .......................................................................... 34 ODBC Open Data Base Connectivity ...................................................................... 34
10 RESUMO
Este trabalho de concluso de curso tem como objetivo fazer uma pesquisa para o desenvolvimento de um prottipo de software para consulta de alterao feitas em um sistema ERP utilizando Web Service, demonstrando os programas alterados, as alteraes executadas nesses programas, onde esto disponveis as atualizaes e ainda uma opo para obter essas atualizaes. Para o desenvolvimento deste projeto foi necessrio fazer pesquisas sobre as linguagens Java, para o desenvolvimento do web service, e Visual Basic, para o desenvolvimento dos programas de cadastro e do software cliente, alm de pesquisas sobre os bancos de dados utilizados, a forma de comunicao do web service e sobre a segurana dos dados transmitidos.
Palavras chaves: Consulta, Web Service, Segurana.
11
1- INTRODUO
A internet teve um crescimento acentuado em usurios e qualidade desde meados da dcada de 90, por isso, hoje ela a melhor forma para se atualizar um software, documentos, etc., mas precisamos saber como utiliz-la corretamente.
Hoje, cerca de 24 milhes de computadores so utilizados no Brasil, considerando computadores corporativos e domsticos, segundo pesquisa feita pela FGV-Eaesp (Escola de Administrao de Empresas de So Paulo de Fundao Getlio Vargas) em maro de 2005. Com relao aos usurios desses computadores em corporaes, cerca de 64% deles tem acesso a internet. Porm este valor cai para 48% quando comparamos com o nmero total de funcionrios que a empresa possui. Melhorando esses dados temos ainda que 20% da utilizao dos computadores em corporaes dedicado aos e-mails, 17% em sistemas transacionais, 16% em processadores de texto e planilhas eletrnicas, 14% em navegadores, 12% em banco de dados e 5% em grficos. (CARPANEZ, Juliana, Folha OnLine, 30/03/2005)
Analisando os dados da citao, podemos verificar que, apesar de termos cerca de 64 milhes de computadores no Brasil e que, aproximadamente, 64% deles tem acesso a internet, a maior parte deles tem apenas conhecimento dos softwares que utilizam no seu dia-a-dia, principalmente os softwares de e-mail e os sistemas ERPs (Enterprise Resource Planning). Com isso, as empresas de desenvolvimento de software tm muitos problemas quando necessrio fazer uma atualizao no seu sistema. Essa situao piora quando seus clientes esto localizados a uma grande distncia delas, pois, se o cliente no possuir um funcionrio com conhecimentos em informtica, a empresa de desenvolvimento ter que se deslocar at o seu cliente para fazer a atualizao. Outra situao que acontece quando uma empresa de desenvolvimento quer atualizar o seu sistema em seus clientes a de saber qual a verso do sistema que o cliente possui nesse momento. Isso faz com que seja necessrio enviar todos os arquivos do sistema e no somente os arquivos que possuem atualizao. Assim, tanto o cliente como a empresa de desenvolvimento estaro perdendo tempo que poderia ser utilizado para novos desenvolvimentos no sistema (por parte da empresa) e fazer lanamentos, cadastros, entre outras funes do sistema (por parte do cliente).
12 Com a utilizao de sistemas de informao podemos utilizar recursos para facilitar processos como o de atualizao do sistema, pois, conforme a pesquisa da citao, cerca de 64% dos usurio de computadores tm acesso a internet. Desta forma, com a utilizao de web services, possvel fazer com que os clientes das empresas utilizem um software cliente para se conectar nos web services e obter as informaes necessrias para que o software cliente atualize o sistema e fornea informaes da situao do sistema no cliente para a Delsoft Sistemas.
13 2 - JUSTIFICATIVA
Como o nmero de clientes da Delsoft Sistemas est aumentando e muitos desses clientes no possuem uma rea especfica de informtica, a atualizao do sistema nesses clientes fica mais difcil. Ano 2002 2003 2004 2005 N Clientes 21 25 29 45 Quadro 1 : Quadro com os nmeros do aumento de clientes da Delsoft Sistemas Fonte: Delsoft Sistemas
0 10 20 30 40 50 N Clientes Aumento no N de Clientes Ano 2002 Ano 2003 Ano 2004 Ano 2005
Grfico 1 : Grfico do aumento de clientes da Delsoft Sistemas Fonte: Delsoft Sistemas
comum escutarmos que informtica cria solues para problemas que no tnhamos. No caso dos Web services a questo outra, isto me ocorreu quando estava proferindo uma palestra para desenvolvedores sobre a importncia dos Web services hoje, e via que cada vez que eu dizia eles eram a soluo para reutilizao de cdigo, comunicao entre ambientes heterogneos, etc. via um sorriso no ar. Todos com um sentimento comum de deja v, no rosto, a expresso de j vi este filme. (BOARO, Mrcio, Site Linha de Cdigo, 14/11/2002)
Como na citao de Mrcio Boaro, fiz uma busca por alguma tecnologia que pudesse nos ajudar nesse problema, porm percebi que a melhor forma de resolver esse problema seria desenvolver um software com o qual o cliente pudesse ter informaes sobre atualizaes do seu ERP e que a empresa de desenvolvimento tivesse as informaes necessrias sobre o sistema que est rodando em cada cliente. Outro motivo que me levou a montar este prottipo, que cada atualizao que mandada para os clientes, faz com que pelo menos um dos desenvolvedores utilize seu tempo de para enviar a atualizao, dar suporte para ajudar o cliente a salvar a atualizao no local correto e depois ajudar a executar o processo de atualizao ou, at mesmo, se deslocar at o cliente para fazer a atualizao, desprendendo um tempo ainda maior.
14 2 - OBJETIVOS
2.1 - Geral Desenvolver um prottipo de software para fazer a atualizao de um utilizando recursos de web service e um repositrio de atualizaes na internet.
2.2 - Especficos Pesquisar uma forma para facilitar ao mximo para os clientes atualizarem o sistema, como a forma de apresentar as atualizaes existentes e o cliente selecionar somente as atualizaes que ele precisa fazer. Montar um esquema de pr-requisitos no sistema, para que o cliente no atualize uma parte do sistema sem atualizar outra que necessria para o processo do sistema. Pesquisar os recursos disponveis na ferramenta Genexus gerando para a linguagem Java, no desenvolvimento do web service e de um software cliente para consultar as informaes do web service, e as bibliotecas necessrias para que o web service rode no servidor web Tomcat.
15 3 - FUNDAMENTAO TERICA
Nas fundamentaes tericas, sero apresentadas as tecnologias utilizadas no desenvolvimento do prottipo de sistema para auxlio na atualizao do ERP Delsoft.
3.1 - Web Service
Com a evoluo da internet, tambm os recursos existentes nela melhoram muito. Por exemplo, quando a internet surgiu, voc podia simplesmente abrir um navegador e visualizar documentos que outros querem disponibilizar na internet, hoje ns podemos fazer a transferncia de grandes arquivos, temos entretenimentos, softwares que fazem inteirao com os seus usurios, como o caso dos Web Services, entre outros recursos. [...] imagine um componente cujos recursos possam ser acedidos na Internet via TCP/IP, independente do Sistema Operacional e de qualquer lugar como se o componente estivesse instalado na sua mquina; um componente que no sofresse as restries dos Firewalls e que fosse totalmente integrado ao seu ambiente [] (Jos Carlos Macoratti)
Os Web Services uma tecnologia que tem por objetivo integrar sistemas distintos atravs da Internet usando protocolos padronizados que garantem a independncia de plataforma e de linguagem de programao em que esses sistemas foram escritos. Assim, possvel disponibilizar uma coleo de mtodos em um servidor remoto e permitir que sejam acessados por programas clientes. (NETO, Agostinho Campos, GUJ Grupo de Usurios Java, 23/11/2004).
Como Agostinho Campos Neto (2004) citou em seu artigo, os Web Services so desenvolvidos para terem inteirao com outros sistemas, independentes da linguagem que os mesmos so escritos, pois eles possuem uma padronizao, que qualquer linguagem que tenha suporte ao protocolo SOAP e manipular arquivos XML (eXtensible Markup Language) pode acessar os mesmos. Rogrio Prez (2004), da revista virtual iMasters, comenta em um de seus artigos A vantagem de utilizarmos um web service para transferir estas informaes entre o servidor e o software cliente que ele transfere estas informaes utilizando o formato XML, desta forma, todos os dados possuem tags e isso faz com que estes dados tenham consistncia, sem
16 falhas, permitindo a troca de dados mais robustos como Arrays, e por trafegar em XML, ele multi-plataforma.
Figura 1 : Esquema de funcionamento de um web service Fonte: Site iMaster Rogrio Perez
Carlos J. Feij Lopes e Jos Carlos Ramalho destacam algumas das tecnologias que o web service utiliza: XML - metalinguagem de anotao na qual esto definidas todas as outras normas que servem de base aos Web Services. SOAP - linguagem de anotao com a qual se pode descrever o protocolo de comunicao, responsvel pela troca de mensagens de e para os Web Services (uma mensagem SOAP um documento XML). WSDL - linguagem de anotao definida em XML e que tem como objetivo descrever a API de um Web Service. UDDI - linguagem de anotao definida em XML com a qual se cria a meta informao caracterstica de um Web Service; vrios registros UDDI so agrupados em repositrios; estes repositrios possuem uma interface/API de pesquisa para permitir a uma aplicao cliente pesquisar e localizar um servio. 3.2 - WSDL
Para que os softwares se comuniquem com o web service, o web service utiliza um linguagem chamada WSDL (Web Services Description Language) para definir os parmetros que devem ser passados, as funes que existem dentro dele e os valores que o ele retornar. Segundo Jos Carlos Macoratti, WSDL um documento em XML que descreve os protocolos que podem ser utilizados para acessar o web service. No WSDL esto definidos: a
17 URL de acesso, o nome do web service, a descrio de cada mtodo e como fazer a solicitao via SOAP, GET ou POST. Rogrio Perez (2004) descreve que WSDL a sigla de Web Service Description Language, padro baseado em XML para descrever o servio onde ele traz os mtodos do web service. Funciona como uma espcie de TypeLibrary do Web service alem de ser usado para a validao das chamadas dos mtodos. Claudimir Zavalik, Guilherme Lacerda e Jos Palazzo M.de Oliveira (2004) dizem que WDSL fornece um modelo e um formato XML para descrio de servios Web. WSDL possibilita uma separao da descrio das funcionalidades abstratas oferecidas por um servio dos detalhes concretos da descrio de um servio, como "onde" e "como" as funcionalidades so oferecidas.
3.3 - Internet
Com o contnuo avano das linguagens de programao voltadas para o desenvolvimento para a internet e o avano da prpria internet vem fazendo com que as empresas e pessoas busquem essa rea de desenvolvimento. Estes avanos trazem tecnologias como o Ajax para deixar estes softwares mais dinmicos, frameworks para aumentar a velocidade de desenvolvimento de um software e ainda os web services, que so utilizados para fazer comunicao entre softwares atravs da internet. Como os Web Services geralmente funcionam como servios na internet e no somente numa rede local, aqui ser apresentado um breve histrico de como a internet surgiu e como chegou ao Brasil. Este histrico est no livro Utilizando na Prtica: Internet e Redes de Computadores de Almir Wirth (2002). A internet teve inicio em 1969 como projeto da empresa ARPA (Advanced Research and Projects Agency) com o intuito de conectar os computadores do Departamento de Pesquisas das Universidades da Califrnia, Los Angeles, Santa Brbara, Utah e do Instituto de Pesquisa de Stanford. Entre 1985 e 1986, foi construda a interligao dos supercomputadores da Fundao Nacional de Cincia e a interligao desta rede com a ARPANET. O backbone de todas as redes de computadores passou a ser chamada de internet. A abertura da internet a nvel mundial ocorreu em 1993, deixando de ser uma instituio de natureza acadmica para se transformar na internet comercial dos dias de hoje.
18 No Brasil, a internet s teve incio em 1988, com a FAPESP (Fundo de Amparo pesquisa do Estado de So Paulo), UFRJ (Universidade Federal do Rio de Janeiro) e do LNCC (Laboratrio Nacional de Computao Cientfica do Rio de Janeiro) e sua explorao comercial teve inicio entre 1994 e 1995 atravs da Embratel e da RNP (Rede Nacional de Pesquisa), que aplicou seu backbone para suportar estes novos servios comerciais.
3.4 - Protocolo TCP/IP
Apesar de o web service ter a possibilidade de transferir as informaes atravs dos mtodos GET e POST, o mais comum ainda utilizando o protocolo SOAP. Como o protocolo SOAP funciona sobre a acamada de aplicao do protocolo TCP/IP (Transmission Control Protocol / Internet Protocol), temos que conhecer um pouco do protocolo TCP/IP. O protocolo TCP/IP (Transmission Control Protocol / Internet Protocol) utilizado na comunicao entre computadores da Internet. Atravs dele pode-se obter um servio confivel, ou seja, um servio em que os dados sejam transmitidos integralmente para os destinos corretos. (WIRTH, Almir - 2002). Julio Battisti (2003) escreve em seu livro Manual Completo para o Exame MCDST: 70-271 que, para que os computadores de uma rede possam trocar informaes necessrio que todos adotem as mesmas regras para o envio e o recebimento de informaes. Este conjunto de regras conhecido como Protocolo de comunicao. Falando de outra maneira podemos afirmar: "Para que os computadores de uma rede possam trocar informaes entre si necessrio que todos estejam utilizando o mesmo protocolo". No protocolo de comunicao esto definidas todas as regras necessrias para que o computador de destino, "entenda" as informaes no formato que foram enviadas pelo computador de origem.
19
Figura 2: Uma rede baseada no protocolo TCP/IP Fonte: Jlio Battisti
3.4.1 - Arquitetura TCP/IP
Para padronizar a forma como os protocolos iriam de comunicar, foram criadas as arquiteturas dos protocolos. A internet utiliza o protocolo TCP/IP, por isso aqui est sendo apresentada a arquitetura do TCP/IP. Abaixo est um esquema das camadas desse protocolo.
Figura 3: Camadas da arquitetura TCP/IP Fonte: Redes de Computadores - Andrew S. Tanenbaum Para entender melhor a funo de cada camada, Carlos Eduardo Trevisan Vasconcelos faz um breve resumo de cada camada.
20 3.4.1.1 - Camada de Aplicao
formada pelos protocolos utilizados pelas diversas aplicaes do modelo TCP/IP. Esta camada no possui um padro comum. O padro estabelecido por cada aplicao. Isto , o FTP possui seu prprio protocolo, assim como o TELNET, SMTP, POP3, DNS e etc..
3.4.1.2 - Camada de Transporte
Camada fim-a-fim, isto , uma entidade desta camada s se comunica com a sua entidade-par do host destinatrio. nesta camada que se faz o controle da conversao entre as aplicaes intercomunicadas da rede. Dois protocolos aqui so usados: o TCP e o UDP. O TCP orientado conexo e o UDP no. O acesso das aplicaes camada de transporte feito atravs de portas que recebem um nmero inteiro para cada tipo de aplicao. 3.4.1.3 - Camada de Internet
Essa camada a primeira normatizada do modelo. Conhecida como camada Internet, responsvel pelo endereamento, roteamento e controle de envio e recepo. Ela no orientada conexo, se comunica atravs de datagramas.
Figura 4: Datagrama de da camada de Internet Fonte: UFRGS (Universidade Federal do Rio Grande do Sul)
O datagrama acima utilizado para padronizar a comunicao na camada de internet.
21 3.4.1.4 - Camada de Rede
Camada de abstrao de hardware tem como principal funo a interface do modelo TCP/IP com os diversos tipos de redes (ATM, FDDI, Ethernet, Token Ring, Frame Relay, PPP e SLIP). Por causa da grande variedade de tecnologias de rede, ela no normatizada pelo modelo, o que prov a possibilidade de interconexo e interoperao de redes heterogneas.
3.5 - Protocolo SOAP
Para que seja vivel a criao de softwares que conectem em servios na internet, necessrio que exista uma padronizao. Para isso, foi criado o protocolo SOAP (Simple Object Access Protocol), que um protocolo que define como as mensagens so transmitidas entre o servio e o software cliente atravs de arquivos XML. Segundo Doug Tidwell, James Snell e Pavel Kulchenko, SOAP como um protocolo empacotando padronizado para compartilhar mensagens entre aplicaes. A especificao no define nada mais do que um pacote simples baseado em XML para transferir as informaes, e um conjunto de regras para traduzir a aplicao e os tipos de dados em XML. O protocolo SOAP um protocolo elaborado para facilitar a chamada remota de funes via Internet, permitindo que dois programas se comuniquem de uma maneira tecnicamente muito semelhante invocao de pginas Web. (SANTANNA, Mauro). SANTANNA apresenta em seu artigo diversas vantagens do protocolo SOAP sobre outras maneiras de chamar funes remotamente: simples de implementar, testar e usar. um padro da indstria, criado por um consrcio da qual a Microsoft parte, adotado pela W3C (http://www.w3.org/TR/SOAP/) e por vrias outras empresas. Usa os mesmos padres da Web para quase tudo: a comunicao feita via HTTP com pacotes virtualmente idnticos; os protocolos de autenticao e encriptao so os mesmos; a manuteno de estado feita da mesma forma; normalmente implementado pelo prprio servidor Web. Atravessa firewalls e roteadores, que pensam que uma comunicao HTTP. Tanto os dados como as funes so descritas em XML, o que torna o protocolo no apenas fcil de usar como tambm muito robusto.
22 independente do sistema operacional e CPU. Pode ser usado tanto de forma annima como com autenticao (nome/senha).
Ainda podemos encontrar no artigo de SANTANNA que os pedidos SOAP podem ser feitos em trs padres: GET, POST e SOAP. Os padres GET e POST so idnticos aos pedidos feitos por navegadores Internet. O SOAP um padro semelhante ao POST, mas os pedidos so feitos em XML e permitem recursos mais sofisticados como passar estruturas e arrays. Independente de como seja feito o pedido, as respostas so sempre em XML. O XML descreve perfeitamente os dados em tempo de execuo e evita problemas causados por inadvertidas mudanas nas funes, j que os objetos chamados tm a possibilidade de sempre validar os argumentos das funes, tornando o protocolo muito robusto.
3.5 - Segurana
No adianta disponibilizar as informaes para seus cliente sem ter uma certa segurana e como, geralmente, os web services esto disponvel na internet, indispensvel a existncia de formas que assegurem que as informaes acessadas no web service, sejam acessadas apenas pelas pessoas autorizadas ou, se alguma pessoa no autorizada conseguir um usurio e senha, sem o software cliente correto, no ser possvel obter as informaes corretas sem a chave criptogrfica. Jeff Forristal e Julie Traxler citam, no livro Site Seguro Aplicaes Web, os ataques ocorridos em fevereiro de 2000 ao eBay, ao Yahoo, Amazon e a outros grandes sites de e- commerce e sites no comerciais, trouxeram o hacking a tona, na comunidade de TI (Tecnologia de Informao) e na imprensa. Todo este destaque despertou a ateno de especialistas em segurana da informao, gerentes de projeto e outros profissionais de TI. Um nmero cada vez maior de empresas vem se dedicando ao aprimoramento da segurana, o que resultou em hackers mais criativos e talentosos, aplicando o conceito de segurana, que deixou de ter importncia apenas no nvel da administrao da rede passando a ter uma importncia maior no nvel do desenvolvimento das aplicaes. Emlio Tissato Nakamura e Paulo Lcio de Geus apontam algumas medidas de segurana que devemos ter no mundo virtual. So elas:
Firewalls: Equivalentes ao controle de acesso na loja real, por meio de porteiros, vigias, limites e portas.
23 Poltica de segurana: Equivalente ao modelo de conduta do cidado visitante na loja e ao de procedimentos, por parte dos funcionrios, para garantir o bom comportamento social dos visitantes e a integridade do patrimnio da loja. Separao entre a rede pblica (servidores externos) e rede interna, equivalente separao entre a parte pblica da loja, na qual os visitantes circulam, e a parte privada, na qual somente os funcionrios transitam.
3.5.1 - Mas quem so os hackers?
Segundo a revista on-line Revista TI, um hacker qualquer profissional que estuda e analisa tecnologias com o intuito de conhec-las profundamente, a ponto de descobrir uma srie de falhas nas implementaes de hardware e software, principalmente envolvendo aspectos de segurana. Ele no usa estas informaes para obter vantagens ou causar danos a terceiros. Por outro lado, um cracker pode ser ou no um hacker, mas ele utiliza as falhas encontradas para prejudicar terceiros ou obter vantagens pessoais. Jeff Forristal e Julie Traxler descrevem Os hackers podem ser vndalos inexperientes, interessados apenas em se destacar, ao desfigurar o seu site ou hackers experientes, que podem comprometer os seus bancos de dados, a fim de obter possveis vantagens financeiras.
3.5.2 - Para que essa segurana?
Nos dias atuais, a maioria das empresas utilizam sistemas ERPs para gerenciar as informaes da empresa. Com isso, suas informaes so armazenadas na forma digital em servidores, e se houver um ataque a esses servidores, as empresas podem perder informaes utilizadas para conquistar seus clientes. Por isso, as tcnicas de segurana so to importantes.
A informtica um instrumento cada vez mais utilizado pelo homem, para que ele possa realizar seus trabalhos de modo mais fcil, mais rpido, mais eficiente e mais competitivo, produzindo assim os melhores resultados. A rede um dos elementos principais, permitindo as conexes entre computadores. A flexibilidade, a facilidade e a disponibilidade dos recursos que so acessveis por meio da rede resultam em uma maior produtividade e, consequentemente, em maiores lucros dentro de uma organizao. (NAKAMURA, Emlio Tissato; GEUS, Paulo Lcio de. Segurana de Redes em ambientes cooperativos, 2002).
24 Emlio Tissato Nakamura e Paulo Lcio de Geus ainda continuam dizendo que a confiabilidade e a disponibilidade dessa estrutura de redes passam, assim, a serem essenciais para o bom andamento das organizaes, fazendo com que elas precisem ser protegidas. A segurana de redes, que podem prover essa proteo, significa, na realidade, muito mais do que a proteo contra hackers, maus funcionrios ou vrus. A segurana significa permitir que as organizaes busquem os seus lucros, que so conseguidos por meio de novas oportunidades de negcios, que so resultados da flexibilidade, facilidade e disponibilidade dos recursos de informtica. Andrew S. Tanenbaum escreve que durante as primeiras dcadas de sua existncia, as redes de computadores foram principalmente usadas por pesquisadores universitrios, para enviar mensagens de correio eletrnico, e por funcionrios de empresas, para compartilhar impressoras. Sob essas condies, a segurana nunca precisou de maiores cuidados. Mas atualmente, como milhes de cidados comuns esto usando as redes para executar operaes bancrias, fazer compras e arquivar suas devolues de impostos, a segurana das redes est despontando no horizonte como um problema em potencial.. Porm, segundo Emlio Tissato Nakamura e Paulo Lcio de Geus, um dos principais problemas para a implantao da segurana o seu oramento, comumente pequeno ou praticamente inexistente. O principal ponto a ser considerado que os executivos geralmente no tm a viso necessria para enxergar a importncia de uma boa estratgia de segurana. Felizmente, isso comeou a mudar com o advento dos vrus Melissa e ExploreZip, que causaram problemas para diversas organizaes, porm em uma rea bem especfica, a de antivrus.
3.5.3 - E como podemos nos proteger?
Quando falamos em como nos protegermos, logo falamos em firewall (servidores que so colocados entre duas redes para fazer o filtro dos acessos entre elas, por exemplo, a internet e sua rede interna), mas segundo Daniel Duclos, um firewall uma boa idia, mas no garante tudo. O invasor pode vir a explorar uma falha (hipottica) no servidor web, por exemplo, e o firewall vai deixar passar o pedido, porque ele no tem como diferenciar um pedido legtimo de um maligno. Manter o sistema atualizado essencial. Utilizar um sistema de detecto de intruso da rede (procure por NIDS, do ingls Network Intrusion Detection
25 System) em conjunto com o firewall uma boa idia para prevenir isso. Mas existem outras medidas: No utilizarmos o servio de telnet (protocolo cliente-servidor de comunicaes usado para permitir a comunicao entre computadores ligados numa rede). O telnet trafega as informaes descriptografadas, em texto claro. A primeira coisa que passa por um telnet um nome de usurio e uma senha, e s isso que um invasor precisa para entrar no seu sistema. Se algum tiver colocado uma escuta entre a sua mquina a mquina a qual voc est acessando pegar sua senha. Por isso devemos utilizar o ssh (, simultaneamente, um programa de computador e um protocolo de rede que permite a conexo com outro computador na rede, de forma a executar comandos de uma unidade remota), que encripta essas informaes. Devemos tomar cuidado com as permisses dos arquivos. No devemos dar SUID (permisso) para programas a no ser que isso seja imprescindvel. Normalmente esses programas j vm com SUID na sua instalao, portanto muito improvvel que seja necessrio dar permisso de SUID explicitamente para qualquer programa. Arquivos SUID so armadilhas potenciais ao seu sistema. Outra coisa com que devemos tomar cuidado com as permisses de arquivos acessveis publicamente, via web ou ftp. Nunca devemos dar permisses 0777 para um arquivo sem um excelente motivo para isso, pois isso permite que qualquer um altere e execute o arquivo, at usurios annimos acessando via web se esses arquivos estiverem debaixo do diretrio html do site. Arquivos html nunca devem ser executveis e dificilmente devem ter permisso de escrita, a no ser para o dono! Devemos ter ateno ao servio de ftp, principalmente se ele permitir logins annimos. Nunca permita diretrios gravveis acessveis ao servio ftp. Uma boa idia se possvel, desabilitar o ftp e utilizarmos o sftp ou scp, que possui um cliente grfico gratuito para MS Windows. Se possvel, copiar os logs para uma outra mquina via syslog. Essa outra mquina deve rodar apenas o syslog e ser acessvel apenas ao servidor ao qual esta ligada. Liberar os servios apenas para as redes que precisam. Mesmo mquinas s devem ser acessveis por quem as precisa acessar. Assim, estaes de trabalho ou mesmo servidores internos no devem ter IPs acessveis via Internet. Se somente a rede interna acessa seu pop, libere o pop apenas para sua rede interna. Se somente voc acessa o ssh, libere o ssh apenas para sua mquina. Se algum no precisa explicitamente de um servio negue-o. Se ningum est usando o servio, desinstale-o.
26 Ter uma poltica de senhas. Devemos evitar a todo custo senhas fracas, fceis de adivinhar. Exemplos dessas senhas so palavras de dicionrio, nomes de pessoas, datas de aniversrios, nomes relacionados ao seu trabalho. Deve-se orientar a todos os usurios do sistema que evitem esse tipo de senhas. Senhas boas so senhas que contenham caracteres no alfas-numricos, como por exemplo !@#$%&, letras maisculas e minsculas, e nmeros.
3.5.4 - Firewall
Uma das principais tcnicas utilizadas para proteger as informaes de uma organizao, o firewall consegue bloquear muitos dos ataques, mas no podemos confiar somente nele para protegermos nosso rede. Tissato Nakamura e Paulo Lcio de Geus comentam que a necessidade de utilizao cada vez maior da internet pelas empresas e a constituio de ambientes cooperativos levam a uma crescente preocupao quanto a segurana. Como conseqncia disso, pode-se ver uma rpida evoluo na rea de segurana, principalmente com relao ao firewall, que um dos principais, mais conhecidos e antigos componentes de um sistema de segurana.
Figura 5: Representao de um firewall Fonte: Info Exame
27 Na Figura 5 podemos observar o funcionamento de um firewall, que funciona como ma barreira entre a internet e a rede interna, dificultando o acesso no autorizado aos recursos de sua rede interna. Tissato Nakamura e Paulo Lcio de Geus ainda apresentam duas definies de firewall: A mais antiga definio para firewall foi dada por Bill Cheswick e Steve Bellovin, em Firewalls and Internet Security: Repelling the Wily Hackers. Segundo eles, firewall um ponto entre duas ou mais redes, no qual circula todo o trfego. A partir desse nico ponto, possvel controlar e autenticar o trfego, alm de registrar, por meio de logs, todo o trfego da rede, facilitando sua auditoria. J Chapman define firewall como um componente ou conjunto de componentes que restringe o acesso entre uma rede protegida e a internet, ou entre outros conjuntos de redes.
3.5.4.1 - Funcionalidades
A seguir sero apresentadas as principais funcionalidades de um firewall apresentadas por Tissato Nakamura e Paulo Lcio de Geus no livro Segurana de Redes em ambientes cooperativos.
3.5.4.1.1 - Definio
Segundo Tissato Nakamura e Paulo Lcio de Geus, o firewall composto por uma srie de componentes, pois cada um deles tem uma funcionalidade diferente e desempenha um papel que influi diretamente no nvel de segurana do sistema. Algumas dessas funcionalidades foram os chamados componentes clssicos de um firewall, definidos por Chapman. As quatro primeiras funcionalidades (filtros, proxies, bastion hosts, zonas desmilitarizadas) fazem parte desse grupo, e as trs funcionalidades restantes (Network Address Translation (NAT), Virtual Private Network (VPN), autenticao/certificao) foram inseridas no contexto, devido evoluo natural das necessidades de segurana.
28 3.5.4.1.2 - Filtros
Segundo Tissato Nakamura e Paulo Lcio de Geus, os filtros realizam o roteamento de pacotes de maneira seletiva, ou seja, aceitam ou descartam pacotes por meio da anlise das informaes de seus cabealhos. Essa deciso tomada de acordo com as regras de filtragem definidas na poltica de segurana da organizao.
3.5.4.1.3 - Proxies
Segundo Tissato Nakamura e Paulo Lcio de Geus, os proxies so softwares que atuam como um gateway entre duas redes, permitindo as requisies dos usurios internos e as respostas dessas requisies, de acordo com a poltica de segurana definida.
3.5.4.1.4 - Bastion Hosts
Segundo Tissato Nakamura e Paulo Lcio de Geus, os bastion hosts so os equipamentos em que so instalados os servidores a serem oferecidos para a internet. Como estaro em contato direto com as conexes externas, os bastion hosts devem ser protegidos da melhor maneira possvel. Essa mxima proteo possvel significa que o bastion host deve executar apenas os servios e aplicativos essenciais, bem como ter sempre a ltima verso desses servios e aplicativos, sempres com os patches de segurana instalados imediatamente aps sua criao.
3.5.4.1.5 - Zona Desmilitarizada
Segundo Tissato Nakamura e Paulo Lcio de Geus, a zona desmilitarizada (DMZ), ou perimeter network, uma rede que fica entre a rede interna, que deve ser protegida, e a rede externa. Essa segmentao faz com que, caso algum equipamento dessa rede desmilitarizada (um bastion host) seja comprometido, a rede interna continue intacta e segura.
29 3.5.4.1.6 - NAT (Network Address Translation)
Segundo Tissato Nakamura e Paulo Lcio de Geus, o NAT no foi criado com a inteno de ser um componente de segurana, mas sim para tratar de problemas em redes de grande porte, nas quais a escassez de endereos de IP poderia ser um problema. Dessa maneira, a rede interna pode utilizar endereos de IP reservados, sendo o NAT responsvel pela converso desses endereos invlidos para endereos reservados, quando a rede externa acessada.
3.5.4.1.7 - VPN (Virtual Private Network)
Segundo Tissato Nakamura e Paulo Lcio de Geus, a VPN criada, inicialmente, para que protocolos diferentes do IP pudessem trafegar pela rede de IP. Como no era aceitvel que as informaes trafegassem sem codificao pela internet, a VPN passou a utilizar conceitos de criptografia para manter a confidencialidade dos dados. Mais do que isso, o IPSec, protocolo padro de fato das VPNs, garante, alm da confidencialidade, a integridade e a autenticao desses dados. 3.5.4.1.8 - Autenticao/Certificao
Segundo Tissato Nakamura e Paulo Lcio de Geus, a autenticao e a certificao dos usurios podem ter como base endereos de IP, senhas, certificados digitais, tokens, smartcards ou biometria. Tecnologia auxiliares so a Public Key Infrastruture (PKI) e o Single Sing-On (SSO).
3.5.5 - Criptografia
Como os hackers esto cada vez encontrando mais brechas (atravs de sniffer, vrus que retornam informaes do usurio para seus desenvolvedores, falhas nos servios que esto rodando no servidor, etc.) para acessarem os servidores e empresas, uma das alternativas a utilizao da criptografia, pois, sem a chave criptogrfica, no ser possvel obter as informaes desejadas.
30 Outra forma de segurana que est sendo muito utilizada a criptografia. Tissato Nakamura e Paulo Lcio de Geus dizem que a criptografia tem uma funo e uma importncia cada vez mais fundamentais dentro as solues de segurana das organizaes. Alm de sua funo primria, que a de garantir a confidencialidade dos dados, a criptografia responsvel pela integridade, autenticao, certificao e no-repdio, propriedades fundamentais em protocolos como o Secure Shell (SSH) e IP Security (IPSec), alm de ser o ponto-chave da Virtual Private Network (VPN) e da Public Key Infrastructure (PKI). Segundo Ryan Russel, a criptografia est por toda a parte atualmente, desde senhas picadas (hashed) at o correio criptografado, das redes privadas virtuais (VPNs) com Internet Protocol Security (IPSec) at mesmo aos sistemas de arquivo criptografados. A segurana motivo para as pessoas optarem pelos dados criptografados e, se voc quiser que seus dados permaneam protegidos, melhor conhecer um pouco a respeito de como funciona a criptografia.. Russel tambm apresenta que a palavra cripto tem origem da palavra grega kruptos, que significa escondido.. Russel cita que segundo Fred Cohen, a histria da criptografia tem sido documentada h mais de 4000 anos, onde alega-se ter sido usada inicialmente no Egito. Jlio Csar usou ainda sua prpria criptografia, chamada Cifra de Csar. Basicamente, A Cifra de Csar realizava um giro das letras do alfabeto para a direita, por trs letras. Por exemplo, S move-se para V e E move-se para H..
3.6 - Genexus
Genexus uma ferramenta de desenvolvimento de alta produo, pois ela possui uma srie de funes que facilitam o desenvolvimento, com isso, reduz o tempo de desenvolvimento. Algumas das facilidades so: Regras de negcios qualquer pessoa que tenha conhecimentos bsicos em programao e no processo que se deseja desenvolver pode definir essas regras; Transparncia no acesso ao banco de dados durante a programao, o programador no tem a necessidade de saber qual banco de dados ser utilizado no cliente; De acordo com as informaes retiradas da pgina da Itec Way, Genexus uma ferramenta utilizada para automatizar a normalizao, gerao e manuteno de base de
31 dados, gerao automtica de programas, anlise de impacto de mudana e regerao dos programas. Utilizando o Genexus, o analista precisa capturar e descrever a viso dos usurios e colocar isso em objetos Genexus. Estes objetos so salvos numa base de conhecimento. Genexus trabalha com o conhecimento respeito da aplicao. Com isto consegue-se independncia entre a estrutura da base de dados, os procedimentos e consultas. Os procedimentos e consultas so definidos sobre a base de conhecimento, no sobre tabelas e ndices. o Genexus quem determina quais as tabelas e ndices que devem ser utilizados. Se a estrutura da base de dados muda, o Genexus encarrega-se de atualizar os programas. So 100% automtico. Genexus conta com uma ferramenta especializada para facilitar o trabalho em equipes: Knowledge Manager. Com esta ferramenta possvel desenvolver mdulos de uma mesma aplicao de forma independente e depois consolid-los para formar uma nica aplicao. O prottipo em Genexus uma aplicao real, um programa executvel, MS-DOS ou Windows, que o usurio final pode levar e testar em seu prprio computador. No se limita a menus e telas. O prottipo em Genexus permite incluir, excluir e modificar dados de uma base de dados real. Depois de testada e aprovada pelo usurio, o modelo passado para a fase de produo, gerados e compilados para que todos os usurios possam utilizar. No necessrio que o analista tenha conhecimento em conexo com bancos de dados, bem como comandos necessrios para inserir, alterar, excluir ou consultar dados no banco de dados, pois a ferramenta constri tudo. Recursos disponveis aos usurios finais: Uma interface padro para todas as aplicaes; Integra o desenho e a prototipao da aplicao, assegurando que as solues correspondero s expectativas; Genexus funciona nvel conceitual, com o conhecimento. Por isto capaz de adaptar automaticamente uma base de conhecimento de uma aplicao para ser utilizado em outras.
Recursos disponveis aos analistas: Faz pelo analista todo o trabalho pesado e tedioso, deixando para ele as decises importantes e as tarefas de maior criatividade; Fcil prototipao, sem custos adicionais;
32 Propagao automtica de mudanas, tanto ao nvel de base de dados como de programas; Permite desenvolver com uma nica ferramenta, programas para as plataformas mais difundidas no mercado;
3.7 - Linguagens de Programao
Como a ferramenta de desenvolvimento utilizada na Delsoft Sistemas o Genexus, o web service, o sistema para cadastro das informaes e cliente do web service sero desenvolvidos com a mesma ferramenta. Porm, os compiladores utilizados para compilar os softwares sero o Visual Basic e o Java. O Visual Basic pelo fato de o sistema ERP da Delsoft Sistemas ser compilado nesta linguagem, o software cliente ser compilado na mesma linguagem e o Java na compilao do web service, pois a linguagem de compilao para softwares web o Java.
3.7.1 - Java
A linguagem Java uma linguagem multi-plataforma, com isso, para executar um software standalone, basta ter a mquina virtual java para o sistema operacional e as bibliotecas que o software utiliza, e para um software para web, necessrio a mquina virtual java, as bibliotecas e um servidor web que suporte a linguagem java. Isso faz com que o programador no precise saber para qual sistema operacional ser desenvolvido o software. Rogers Cadenhead e Laura Lemay descrevem a linguagem Java com sendo uma linguagem orientada a objetos, independente de plataforma e segura, projetada para ser mais fcil de aprender do que C++ e mais difcil de abusar do que C ou C++. Quando a Sun Microsystems lanou a linguagem de programao Java em 1995, ela era um brinquedo criativo para World Wide Web, com potencial para ser muito mais. A palavra potencial um elogio incomum, pois vem com uma data de expirao. Mais cedo ou mais tarde, o potencial precisa ser percebido ou novas palavras so usadas em seu lugar, como decepo, desperdcio e grande decepo para sua me e para mim. 3.7.1.1 - A Linguagem
33 Rogers Cadenhead e Laura Lemay descrevem que hoje, em sua sexta verso principal, com Java 2 verso 1.5, Java parece ter sobrevivido s expectativas que acompanharam sua chegada. Mais de dois milhes de programadores aprenderam a linguagem e a esto usando em lugares como NASA, IBM, Kaiser Permanente, ESPN e Museu de Arte Moderna de Nova York. Ela faz parte do currculo acadmico em muitos departamentos de Cincia da Computao do mundo inteiro. Usada para criar programas simples em pginas Web, a Java pode ser encontrada hoje em dia nos seguintes lugares, entre outros: Servidores Web. Banco de dados relacionais. Computadores mainframe. Telefones. Telescpios orbitais. Assistentes digitais pessoais. Smartcards do tamanho de cartes de crdito.
A linguagem Java dividida, basicamente, em Java SE (Java Standard Edition), Java EE (Java Enterprise Edition), Java ME (Java Micro Edition) e Java Web Service. Mas o que cada um? Ento vamos a uma breve descrio do que o site Wikipdia apresenta de cada uma das quatro subdivises: Java SE a ferramenta necessria para o desenvolvimento de aplicaes em Java. Ela contm todo o ambiente necessrio para a criao e execuo de aplicaes Java, incluindo a mquina virtual Java (JVM) 1 , o compilador Java, as APIs 2 do Java e outras ferramentas utilitrias. Tambm a base para o Java EE e o Java Web Service; Java EE uma plataforma de programao de computadores que faz parte da plataforma Java. Ela voltada para aplicaes multi-camadas, baseadas em componentes que so executados em um servidor de aplicaes; Java ME uma tecnologia que nos possibilita o desenvolvimento de software para sistemas e aplicaes embarcadas, ou seja, toda aquela que roda em um dispositivo de propsito especfico, desempenhando alguma tarefa que seja til para o dispositivo; Java Web Service baseado na tecnologia XML, ele utilizado para a troca de informaes pela rede utilizando padres definidos;
34
3.7.2 - Visual Basic
Linguagem de programao desenvolvida pela Microsoft, ela est sendo utilizada nesse prottipo, pois a ferramenta de desenvolvimento Genexus gera seus cdigos para compilao para esta linguagem desde a sua primeira verso para ambiente Windows. A seguir ser apresentando um pequeno histrico da linguagem segundo Jos Augusto N. G. Manzano.
3.7.2.1 - Histrico
Em 1965, os matemticos Prof. Dr. John Kemeny e Prof. Dr. Thomas Kurtz do Dartmounth College desenvolveram uma linguagem de programao para estudantes, denominada BASIC Begginners Allpurpose Symbolic Instruction Code. Esta linguagem foi criada com o objetivo de tornar mais fcil o aprendizado de programao de computadores. Na dcada de 80, as vrias verses do MS-DOS acompanharam uma verso de um interpretador da linguagem BASIC (GW-BASIC), baseada na estrutura de 1965. Com o lanamento do MS-DOS, verso 5, a Microsoft distribuiu uma nova verso da linguagem BASIC, denominada QBASIC (QuickBASIC). Esta verso segue o estilo estruturado semelhante forma usada nas linguagens Pascal e C, no sendo nada semelhante da linguagem BASIC original de 1965. Aps o surgimento do Windows, foi apresentado em 1991, pela Microsoft, a primeira verso da linguagem Visual Basic. Apesar de antes ter lanado uma verso do Visual Basic para o ambiente MS-DOS. Dentro do ambiente Windows, a linguagem passou a fazer uso de recursos visuais, alm de possuir uma estrutura orientada a eventos, muito mais moderna. J na verso 5.0, lanada em maro de 1995 no Brasil, passou a ser possvel desenvolver de forma rpida aplicaes Cliente/Servidor. No final de 1998 a Microsoft lana a verso 6.0, a qual apresenta uma srie de novidades, tais como: melhor performance de desempenho, utilizando o mesmo ncleo de compilao do Visual C++; ActiveX Data Objects, sendo este um novo padro de acesso a banco de dados, incluindo drivers para o SQL Server 6.5 ou superior, Oracle 7.3.3 e superiores, Access, SNA Server e ODBC; Visual Basic WebClass Designer, que permite a criao de aplicativos para servidores Web; ferramentas visuais integradas para bancos de
35 dados; MSDN Library, sendo este um help adicional para o desenvolvedores profissionais; HTML Dinmico, que permite o desenvolvimento de aplicaes com HTML dinmico e recursos multimdia.
3.7.2.2 - Conceitos Usados em Visual Basic
Jos Augusto N. G. Manzano tambm explica que a linguagem de programao Visual Basic, caracteriza-se por ser orientada a eventos. Desta forma, todas as aes executadas em um programa so processadas dentro dos eventos dos objetos, que pro sua vez so codificados na forma de sub-rotinas do tipo Sub ou Function. A linguagem Visual Basic possui algins conceitos importantes como: Propriedades e Mtodos. O conceito de Propriedade est associado a um objeto, na verdade ao seu conjunto de caractersticas tanto em nvel de aparncia quanto em nvel de posio. Por exemplo, pode-se apontar como propriedade o fato de uma janela estar maximizada ou minimizada. Em nvel de sintaxe, dever ser estabelecido primeiro a indicao do objeto, depois a indicao de sua propriedade: Objeto.Propriedade. O conceito de Mtodo de um objeto se refere aquilo que o objeto faz, ou seja, ao seu funcionamento. Considerando o objeto rdio, com sua propriedade de som sendo apresentada, poder ter modificada a sintonia de uma estao. Deve-se considerar que um mtodo est vinculado ao estado de um objeto e executa nele uma operao. Como sintaxe, uma mtodo pode ser escrito de duas formas: com argumentos e poderia ser escrito Objeto.Mtodo.
3.8 - Banco de Dados
Como a ferramenta Genexus pode gerar softwares e manipulao de dados para diversos bancos de dados e a Delsoft Sistemas possui clientes utilizando estes bancos de dados, vou descrever aqui os dois bancos mais utilizados. O banco de dados, por si s, pode ser considerado como o equivalente eletrnico de um armrio de arquivamento; ou seja, ele um repositrio ou recipiente para uma coleo de arquivos de dados computadorizados. (DATE, C. J., 2003).
36
3.8.1 - SQL Server
O Microsoft SQL Server se popularizou muito nos ltimos anos pelo fato de que grandes empresas tenham adotado o Sistema Operacional Windows em seus servidores, e tambm que a Microsoft tenha lanado uma verso gratuita do banco de dados (MSDE Microsoft Desktop Edition). Outro fato que fez com que o SQL Server seu fcil gerenciamento. Michel de Souza (2004) publicou no site Linha de Cdigo que o SQL Server um sistema de gerenciamento de bancos de dados cliente/servidor de alto desempenho com alta integrao com o Microsoft Windows. Suas caractersticas so: Integrao com os servios de multithreading, agendamento, Monitor de Desempenho, e log de eventos do Windows. Um usurio pode se conectar ao SQL Server com a mesma senha usada para a rede Windows. Replicao nativa permite disseminar informaes para vrios locais, reduzindo a dependncia de um servidor nico, e deixando a informao necessria mais prxima de quem realmente precisa dela. Arquitetura paralela, que executa as funes de banco de dados simultaneamente para diversos usurios e tira proveito de sistemas com mltiplos processadores. Gerenciamento centralizado de todos os servidores atravs de uma arquitetura de gerenciamento distribuda, com uma interface visual de gerenciamento. Outros recursos do SQL Server: Fcil acesso a dados atravs da WEB; Alta escalabilidade; Desenvolvimento mais rpido;
3.8.2 - Oracle
Gerenciador de banco de dados mais conhecido no mundo, o Oracle conseguiu este posto por causa de sua confiabilidade, facilidade de uso, no estar preso a um sistema operacional, entre outras vantagens, a maioria das grandes empresas o utilizam quando
37 necessrio o armazenamento de um grande volume de informaes, no armazenamento de informaes que necessitam de confiabilidade, etc. Segundo publicado por Flvio Aurlio de Morais no site PortaldaProgramacao.com, o servidor Oracle apresenta facilidade de uso, potncia e relao custo/desempenho sem precedentes. Pr-ajustado e pr-configurado para os ambientes de grupos de trabalho, dinmicos e diversificados para os dias de hoje, o Oracle contm um conjunto totalmente integrado de ferramentas de gerenciamento simples de usar, alm de recursos completos de distribuio, replicao e utilizao na Web. Os recursos de acesso a dados distribudos e replicados permitem que os usurios compartilhem dados relacionais entre aplicativos e servidores. As capacidades internas de utilizao da Web proporcionam uma soluo completa para a implementao de uma Intranet. Flvio Aurlio de Morais ainda descreve suas principais funcionalidades: Capacidade para Grupos de Trabalho Distribudos: O Oracle atende s demandas de grupos de trabalho distribudos e diversificados. O servidor Oracle reduz os custos de implementao, ao mesmo tempo em que utiliza a mais ampla variedade de hardwares. Fcil de Usar: O Oracle incorpora recursos de fcil utilizao para ambientes computadorizados com grupos de trabalho distribudos. A ferramenta grfica Oracle Enterprise Manager, totalmente integrada, permite que os administradores executem tarefas complexas de gerenciamento com a facilidade de apontar e clicar atravs do mouse. Acesso a Dados Distribudos: A replicao de dados permite que os usurios criem vrias cpias de leitura de partes de tabelas ou tabelas completas com consistncia transacional e integridade de dados garantida. Atualizaes baseadas em eventos ou conforme demandas proporcionam a flexibilidade mxima. Capacidade de Uso na Web: Aplicativos de Web podem acessar, rpida e facilmente, quaisquer dados armazenados no banco de dados Oracle e podem apresentar documentos Web gerados dinamicamente aos usurios finais. Ajuste Automtico do Banco de Dados: O gerenciador do servidor Oracle otimiza automaticamente o desempenho do banco de dados. Depois de analisar os recursos do sistema e os requisitos de aplicativos durante o processamento do banco de dados, o Oracle Self-Tuner recomenda os valores apropriados para os parmetros mais crticos do banco de dados e aplicaes em momentos de baixa utilizao.
38 Computao Baseada em Redes: Foi projetado para atender demanda dos mtodos de sistemas centralizados em redes e de desenvolvimento orientado a objeto. A NCA proporciona capacidade mxima de extenso, com base em padres industriais abertos, como CORBA e IIOP. Extensvel: O Oracle ConText Cartridge permite que o Oracle gerencie texto com a mesma segurana, escalabilidade, integridade e inteligncia com que gerencia dados estruturados. O Oracle Vdeo Cartridge armazena, gerencia e produz vdeos de alta resoluo e tela cheia, alm de udio de alta fidelidade de um servidor para um cliente, atravs de uma rede. Otimizado para o Sistema Operacional: Para garantir o mais alto nvel de desempenho em todos os sistemas operacionais suportados, o Oracle otimizado para aproveitar recursos especficos do sistema operacional, como o modelo de encadeamento no Windows NT e dos drivers registrar/aguardar e do sistema de E/S assncrono em sistemas Unix.
3.8.2.1 - Estrutura do Banco de Dados
Os arquivos de armazenamento de dados do Oracle no precisam estar no mesmo local onde o banco est instalado, isto , desde que o Oracle tenha acesso aos arquivos de dados, ele pode gerenci-los bastando apenas informar onde estes arquivos se encontram. Um banco de dados Oracle tem uma estrutura fsica e lgica. Como essas estruturas no servidor so separadas, o armazenamento fsico dos dados pode ser gerenciado sem afetar o acesso s estruturas lgicas de armazenamentos. (RAMALHO, Jos Antnio)
3.8.2.1.1 - Estrutura Fsica
A estrutura fsica nada mais que os arquivos de dados que o Oracle gerencia as informaes contidas neles. Segundo Jos Antnio Ramalho, a estrutura fsica desse tipo de banco de dados determinada pelos arquivos do sistema operacional que o constituem. Cada banco de dados Oracle formado por trs tipos de arquivos: um ou mais datafiles, dois ou mais arquivos de registro redo e um ou mais arquivos de controle.
39
3.8.2.1.2 - Estrutura Lgica
Esta a forma lgica de o Oracle separar as informaes dentro dele, pois a estrutura lgica constituda pelas tablespaces e os esquemas. A estrutura lgica do Oracle determinada por um ou mais tablespaces [...] e pelos objetos de esquema do banco de dados. Um esquema uma coleo de objetos que por sua vez so as estruturas lgicas que se referem diretamente aos dados do banco de dados. (RAMALHO, Jos Antnio)
3.8.3 - PostgreSQL
lvaro Pereira Neto descreve o banco de dados PostgreSQL como sendo um Sistema Gerenciado de Base de Dados Relacional de cdigo fonte aberto que baseado nos padres SQL ANSI (American National Standards Institute) 92, 96 e 99, de alta performance, de fcil administrao e utilizao em projetos. Segundo Diogo de Oliveira Biazus, PostgreSQL um SGBD (Sistema Gerenciador de Banco de Dados) objeto-relacional de cdigo aberto, com mais de 15 anos de desenvolvimento. extremamente robusto e confivel, alm de ser extremamente flexvel e rico em recursos. Ele considerado objeto-relacional por implementar, alm das caractersticas de um SGBD relacional, algumas caractersticas de orientao a objetos, como herana e tipos personalizados. Alguns recursos presentes no PostgreSQL: Sub-consultas; Controle de concorrncia multi-verso (MVCC); Integridade Referencial; Funes armazenadas (Stored Procedures), que podem ser escritas em vrias linguagens de programao (PL/PgSQL, Perl, Python, Ruby, e outras); Gatilhos (Triggers); Tipos definidos pelo usurio; Esquemas (Schemas);
40 Conexes SSL.
3.9 - Apache Tomcat
Apache Tomcat um servidor web para aplicaes Java, inicialmente desenvolvido pela Sun Microsystems e depois a Apache Software Foundation passou a manter seu cdigo fonte com o apoio e empresas interessadas e de desenvolvedores annimos espalhados pelo mundo. Budi Kuriniawan escreve que o mais popular e reconhecido como o contentor servlet/JSP oficial o Tomcat. Originalmente projetado pela Sun Microsystems, o cdigo fonte Tomcat foi entregue Apache Software Foundation, em outubro de 1999. Nesse novo lar, Tomcat foi includo como parte do projeto Jakarta, um dos projetos da Apache Software Foundation. Rogers Cadenhead e Laura Lemay tambm descrevem o Apache Tomcat como um servidor de cdigo-fonte aberto, desenvolvido pela Apache Software Foundation juntamente com a Sun Microsystems. Ele pode ser executado junto com outro servidor Web como o servidor Web Apache ou como servidor independente. Tecnicamente, o Apache Tomcat uma parte da plataforma J2EE que abrange as tecnologias Servlet e JSP, e tecnologias de apoio relacionadas e segurana, JNDI Resources e JDBC DataSources. O Tomcat pode ser executado como um servidor web/http, ou pode funcionar como um mdulo para outros servidor web como o Apache http ou o Microsoft Internet Information Service.
3.10 - ERP
Desde quando as empresas resolveram organizar as informaes geradas pela empresa, como gastos, lucros, produo, etc., a idia j era de manter essas informaes centralizadas, porm isso no era fcil de ser feito apenas no papel, por isso, quando o computador entrou nas empresas para armazenar essas informaes, as pessoas logo tiveram a idia de juntar o mximo de informaes possvel em um nico sistema, com isso surgiram os primeiros sistemas de gesto.
41 Um sistema dito ERP tem a pretenso de suportar todas as necessidades de informao para a tomada de deciso gerencial de um empreendimento como um todo. (CORRA, Henrique L.; GIANESI, Irineu G. N.; CAON, Mauro). Embora as melhores alternativas disponveis de sistemas ditos ERP do mercado tenham um escopo que lhes permitiria chamarem-se ERPs, no podemos ainda, com segurana, afirmar que uma soluo ERP tenha tido sucesso completo no uso por um usurio que tenha passado a usar todos os seus mdulos. Isso simplesmente porque ainda no houve tempo suficiente para uma empresa implantar todos os mdulos de uma das solues ERP disponveis. Alm disso, no Brasil, em particular, a maioria das solues ERP mais robusta ainda passa por um grande esforo de tropicalizao, ou, em outras palavras, adaptao dos mdulos originais s particularidades brasileiras.
42 4 - DESENVOLVIMENTOS DO SISTEMA
4.1 - OBJETIVO DO SISTEMA
O sistema tem por objetivo informar ao usurio do sistema ERP Delsoft, quais programas possuem atualizaes e quais so as alteraes que foram feitas nestes programas. Depois de verificado as alteraes, o usurio poder informar quais programas precisam ser baixados e executar esse download. Com os arquivos devidamente salvos no servidor, ser executada a atualizao dos mesmos.
4.2 - MODELAGEM DE DADOS
4.2.1 - Web Service
Figura 6: Estrutura do banco de dados do Web Service Fonte: Acervo do Autor 4.2.2 - Software Cliente
Figura 7: Estrutura do banco de dados do Software Cliente Fonte: Acervo do Autor
43 4.3 - ESQUEMA TCNICO
O cliente far uma conexo com o web service via protocolo SOAP. Ao conectar, ele enviar um arquivo XML com as suas requisies e ficar aguardando o arquivo XML de retorno; Ao receber o retorno, ele processar as informaes contidas no arquivo e as apresentar na tela para que o usurio tenha as informaes sobre alteraes no sistema; O Web Service ficar esperando uma conexo de um cliente. Quando um cliente estabelecer uma conexo, ele vai receber o XML com as requisies do cliente; Ao receber o arquivo, ele vai process-lo verificando usurio, senha e data da ltima verificao, para que seja retornado apenas as alteraes referentes ao modelo que o cliente utiliza, bem como, retornar apenas as alteraes que ainda no foram obtidas pelo usurio; Ao terminar o processamento, o Web Service retornar ao cliente um arquivo XML com o nome dos programas alterados, informaes sobre as alteraes e locais onde podem ser baixadas as atualizaes;
Figura 8: Esquema tcnico de funcionamento do prottipo. Fonte: Acervo do Autor
INTERNET Web Service Cliente 2 Cliente 1 Repositrio de Atualizaes
44 4.4 - ANLISE DO SISTEMA
Agora ser apresentada a forma como o prottipo ir se comportar quando houverem requisies a este web service. 4.4.1 - Autenticao
O software cliente far uma consulta no cadastro da empresa para obter o usurio e senha para conectar no webservice; O software cliente conectar no webservice e, se obtiver sucesso na conexo, enviar as informaes de autenticao para o webservice; O webservice receber o usurio e senha enviados pelo software cliente e verificar se as informaes esto corretas; Se as informaes estiverem corretas, o webservice enviar uma resposta com a expresso OK, caso contrrio, o webservice enviar uma resposta com a palavra ERRO;
Figura 9: DFD da Autenticao Fonte: Acervo do Autor
45 4.4.2 - Verificar Atualizaes Existentes e Novos Programas
Recebendo a mensagem de OK, o software cliente enviar uma solicitao de quais programas existem no webservice; O webservice far uma consulta em sua base de dados e retornar ao software cliente a lista de programas existentes, juntamente com as alteraes que foram feitas nesses programas e o endereo de onde o programa pode ser baixado; O software cliente analisar esses dados e, se existir na lista algum programa que ainda no exista em sua lista, ele o cadastrar, do contrrio, ele verificar se foi feito alguma alterao no programa; Os programas que forem novos ou que possurem alguma alterao, aparecero numa lista para que o usurio marque os programas que ele quer atualizar;
Figura 10: DFD da verificao de atualizao Fonte: Acervo do Autor
4.4.3 - Download das Atualizaes
O software cliente verificar quais programas foram marcados na lista apresentada e far uma consulta no cadastro de programas para saber quais so os executveis que necessitam ser baixados;
46 Obtendo a lista de executveis, ele se conectar no repositrio e comear a fazer o download dos executveis e os salvar num diretrio no servidor para posteriormente executar a atualizao;
Figura 11: DFD do processo de download das atualizaes Fonte: Acervo do Autor
4.4.4 - Execuo da Atualizao
Aps o download de todos os executveis solicitados pelo usurio, o software cliente far uma chamada para o software de atualizao que j existe no ERP Delsoft;
47 4.5 - Desenvolvimento
4.5.1 - Sistema de Cadastro
Para fazer a apresentao deste prottipo, foi desenvolvido um sistema para fazer o cadastro das informaes na base de dados. Depois que o prottipo passar pela avaliao e aprovao dos interessados pelo projeto, essas informaes sero cadastradas pelo Sistema de Ordens de Servio (Sistemas de OS) de Delsoft Sistemas. Apenas os funcionrios da Delsoft Sistemas tero acesso a este sistema de cadastro.
4.5.1.1 - Menu
Atravs deste menu (figura 12), o usurio ter acesso as telas de cadastro das informaes que o prottipo ir utilizar. As informaes so os Modelos, os Programas, os Clientes e as Alteraes.
Figura 12 : Menu de do sistema de cadastro das informaes na base de dados do prottipo Fonte: Acervo do Autor
4.5.1.2 - Modelos
Na tela de Modelos (figura 13) so cadastrados os modelos de sistemas que a Delsoft Sistemas desenvolve. Estes modelos divises dentro de um projeto. A diviso feita atravs da linguagem de programao utilizada bem como o banco de dados que ser acessado pelo sistema.
48
Figura 13: Tela de cadastro de modelos Fonte: Acervo do Autor
As informaes cadastradas atravs desta tela so: Modelo Cdigo seqencial do modelo; Descrio Descrio para identificar o modelo; Mirror Local onde as atualizaes deste modelo estaro disponveis para os clientes; Atualizao Subdiretrio do mirror onde se localizam as atualizaes; Rmenu Subdiretrio do mirror onde se localizam os rmenus (programas gerados pela ferramenta Genexus para fazer a atualizao da base de dados);
4.5.1.3 - Consulta de Modelos
O sistema tem uma tela para que possamos consultar os modelos cadastrados (figura 14). Esta tela pode ser chamada na tela de cadastro de modelos ou no cadastro de alteraes.
Figura 14: Tela de consulta de modelos Fonte: Acervo do Autor
49 OBS.: todas as consultas deste sistema so chamadas atravs da tecla F2 do teclado, sendo que o cursor deve estar no campo que se deseja consultar.
4.5.1.4 - Programas
Todos os programas desenvolvidos so cadastrados pela tela de programas (figura 15) para que possam ser utilizadas no cadastro de alteraes. Este projeto sendo aprovado pela Delsoft, estes programas sero cadastrados pelo sistema de controle de verso que j utilizado hoje.
Figura 15: Tela de cadastro de programas Fonte: Acervo do Autor
As informaes cadastradas nesta tela so: Cdigo Nome do objeto no Genexus; Descrio Descrio para identificar o programa; Data Compilao Data da ltima compilao do executvel; Executvel Os objetos esto separados em vrios executveis por existir uma limitao de nmero de declaraes no Visual Basic, por isso, neste campo cadastrado o nome do executvel onde este objeto se encontra;
4.5.1.5 - Consulta de Programas
Na tela de cadastro de programas podemos fazer consultas (figura 16) para vermos os programas j cadastrados e, selecionando um programa na consulta, podemos visualizar suas informaes na tela de cadastro de programas. Esta consulta tambm utilizada no cadastro de alteraes para consultar o programa que ser alterado.
50
Figura 16: Tela de consulta de programas Fonte: Acervo do Autor
4.5.1.6 - Clientes
Nesta tela (figura 17) so cadastradas as informaes necessrias para que os clientes possam acessar o Web Service e obter as informaes das atualizaes.
Figura 17: Tela de cadastro de clientes Fonte: Acervo do Autor
As informaes cadastradas nesta tela so: Empresa Cdigo atribudo empresa no sistema; Descrio Nome da empresa/cliente;
51 Usurio Usurio utilizado por esta empresa para se autenticar no Web Service e tambm no local onde estaro disponveis as atualizaes; Senha Senha para fazer a autenticao no Web Service e no local onde estaro disponveis as atualizaes; Modelo Modelo do sistema que o cliente utiliza, para que sejam disponibilizadas ao cliente as atualizaes corretas;
4.5.1.7 - Consulta de Clientes
O sistema tambm possui uma consulta dos clientes cadastrados (figura 18). Esta consulta utilizada na tela de cadastro de clientes e na tela de cadastro de alteraes.
Figura 18: Tela de consulta de clientes Fonte: Acervo do Autor
4.5.1.8 - Alteraes
Esta a tela de cadastro de alteraes (figura 19) a serem feitas ou que foram feitas no sistema ERP Delsoft. Esta tela foi desenvolvida somente para fazer a apresentao deste prottipo, pois estas informaes sero inseridas na base de dados atravs do Sistema de OS utilizado pela Delsoft.
52
Figura 19: Tela de cadastro das alteraes Fonte: Acervo do Autor
As informaes cadastradas nessa tela so: Modelo Modelos no qual a alterao ser feita; Programa Programa (objeto no Genexus) que ser alterado; Data Alterao Data que a alterao foi feita; Situao Situao da alterao. Esta situao pode estar como: Aberta, Em Desenvolvimento, Encerrada ou Cancelada, sendo que o cliente s poder consultar as alteraes Encerradas; Cliente Cliente que solicitou a alterao no programa; Descrio Descrio do problema que o cliente est tendo ou a descrio da alterao feita;
4.5.1.9 - Web Service
A Figura 20 apresenta a estrutura de retorno dos dados do Web Service. No caso desse Web Service, o retorno ser um conjunto dessa estrutura, isto , vrios registros com essa mesma estrutura.
53
Figura 20: Estrutura de retorno do web service. Fonte: Acervo do Autor
Como j foi descrito anteriormente, o resultado de um web service em forma de um XML. Na imagem possvel verificar a presena dos campos de retorno que so: Modcod Cdigo do modelo; Modmirror Mirror ou local onde podem ser encontradas as atualizaes; Moddiratu Diretrio onde se encontram as atualizaes dentro do mirror; Moddirrmenu Diretrio onde se encontram os rmenus (programas que atualizam a base de dados) dentro do mirros; Prgcod Cdigo da tela a ser atualizado; Prgexe Executvel onde o programa est contido. Programa que deve ser obtido para se atualizar a tela; Altdta Data da alterao da tela; Altdes Descrio da alterao executada na tela;
Na segunda parte do XML (figura 21) retornado pelo web service temos a funo que deve ser chamada para executar as consultas e os parmetros que devem ser passados para o mesmo.
Figura 21: Funo e parmetros do web service. Fonte: Acervo do Autor
54
A funo que deve ser chamada retalte.Execute e os parmetros esto logo abaixo:
Empusu Usurio que a empresa utiliza para se autenticar no web service; Empsenha Senha para autenticao; Altdta Data a partir da qual deve ser feita a consulta de alteraes;
4.5.1.10 - Software Cliente
Para a apresentao deste projeto, foi desenvolvido um software cliente para verificarmos os resultados obtidos com o web service.
Figura 22: Tela do software cliente. Fonte: Acervo do Autor
Na tela (figura 22) desenvolvida para fazermos a verificao dos resultados do prottipo temos vrios campos para filtros de pesquisas, porm, a inteno que nessa tela sejam apenas apresentados os resultados da pesquisa, sem a existncia dos campos de filtro,
55 pois essas informaes sero coletados diretamente do cadastro que o cliente possui em sua prpria base de dados. Na tela so apresentados os seguintes campos: Usurio Usurio para se autenticar no web service; Senha Senha para autenticao; Data Data utilizada para informar a partir de qual data ser necessrio obter as atualizaes; Modelo Modelo o qual se deseja fazer a pesquisa; Empresa Cdigo do cliente no cadastro do web service; OBS.: J foram executados testes com um cadastro de informaes do cliente na base de dados do cliente, por isso a tela do software cliente possui o campo Empresa.
4.5.2 Problemas encontrados
Durante o desenvolvimento desse prottipo foram encontrados alguns problemas como: Como, para desenvolver o web service no Genexus, era necessrio que o procedimento tivesse como resultado apenas uma varivel, como retornar vrios valores de tipos diferentes? Isso foi resolvido utilizando uma tecnologia do Genexus parecida com o registro do Delphi. Essa tecnologia conhecida como SDT (Structure Data Type).
Figura 23: Exemplo do SDT (Structure Data Type). Fonte: Acervo do Autor
56 Na Figura 22 acima apresentada a estrutura utilizada para o retorno do web service.
No desenvolvimento do software cliente estava tendo problemas com a leitura do retorno do web service. Quando tentava ler os itens contidos na estrutura de retorno, a leitura retornava um erro. Para resolver este problema, o software, antes de ler um item, ele precisa carregar em uma estrutura do tipo item.
Figura 24: Leitura do retorno do web service. Fonte: Acervo do Autor
Durante os testes feitos no web service publicado no Tomcat e rodando em linux, foi apresentado um erro de passagem de parmetros, sendo que o web service era o mesmo utilizado nos testes no Windows.
Para que o web service tivesse maior segurana, foram feitos testes com as funes de criptografia do Genexus, porm foi apresentado o erro de tipo de dados diferente (Type mismatch).
57 5 - Concluso
Foi constatado com este prottipo que com a utilizao de um software que retorne ao cliente as informaes referente a atualizao do sistemas agiliza o processo de atualizao, pois no ser mais necessrio que um funcionrio da Delsoft fique criando documentos referentes as alteraes no sistema. Alm da documentao, tambm no ser necessrio passar ao cliente quais os programas que devem ser obtidos no repositrio da Delsoft, pois o software, alm de informar o caminho onde se encontra a atualizao, ainda tem a possibilidade de o prprio software cliente obter essas atualizaes. Como trabalhos futuros, recomenda-se: Desenvolver uma forma de atualizar a base de dados do cliente de acordo com os programas que o cliente deseja atualizar baseando se em uma estrutura de base de dados armazenada na Delsoft. Como os testes com as funes de criptografia do Genexus apresentaram erro, recomendado o desenvolvimento de uma forma de criptografia das informaes. Pesquisa de sofisticao dos clentes.
58 Referncias
BATTISTI, Julio, Manual Completo para o Exame MCDST: 70-271. Rio de Janeiro: Axcel Books, 2003.
CADENHEAD, Rogers; LEMAY, Laura, Aprenda em 21 dias Java 2. Rio de Janeiro: Campus, 2005.
CARPANEZ, Juliana. Brasil tem 24 milhes de computadores em uso, diz FGV. Disponvel em: < http://www1.folha.uol.com.br/folha/informatica/ult124u18231.shtml >. Acesso em: 15 nov. 2005.
CORRA, Henrique L.; GIANESI, Irineu G. N.; CAON, Mauro. Planejamento, Programao e Controle da Produo: MRP II/ERP. 4 Ed. So Paulo: Atlas, 2001.
DATE, C. J., Introduo a Sistemas de Bancos de Dados. Rio do Janeiro: Editora Campus, 2003.
FORRISTAL, Jeff; TRAXLER, Julie, Site Seguro: Aplicao Web. Rio de Janeiro: Alta Books, 2002.
KRISHNAMURTHY, Balachander; REXFORD, Jennifer, Redes para a Web: http/1.1, Protocolo de Rede, Caching e Medio de Trfego. Rio de Janeiro: Campus, 2001.
KURNIAWAN, Budi, Java para a Web com Servlets, JSP e EJB. Rio de Janeiro: Editora Cincia Moderna Ltda, 2002.
LOPES, Carlos J. Feij; RAMALHO, Jos Carlos. Web Services: Metodologias de Desenvolvimento. Disponvel em: < https://repositorium.sdum.uminho.pt/handle/1822/559 >. Acesso em: 15 jun. 2006.
MACORATTI, Jos Carlos, Web Services, tendncia ou moda? Disponvel em: <http://www.macoratti.net/wbs_1.htm>. Acesso em: 04 mai. 2006.
MANZANO, Jos Augusto N. G., Estudo Dirigido: Visual Basic. So Paulo: rica, 1999.
MORAIS, Flvio Aurlio de, Diferenas entre o Oracle e o SQL. Disponvel em: <http://www.portaldaprogramacao.com/artigos2.asp?n=851>. Acesso em: 06 mai. 2006.
59
NAKAMURA, Emlio Tissato; GEUS, Paulo Lcio de, Segurana de Redes em ambientes cooperativos. So Paulo: Berkeley, 2002.
NETO, Agostinho Campos, WebServices em Java com Axis. Disponvel em: < http://www.guj.com.br/java.tutorial.artigo.159.1.guj >. Acesso em: 15 jun. 2006.
NETO, lvaro Pereira. PostgreSQL: Tcnicas Avanadas: Verso Open Source 7.x. So Paulo: rica, 2003.
PREZ, Rogrio, Viso geral sobre Web Service. Disponvel em: <http://www.imasters.com.br/artigo/1680/webservices/visao_geral_sobre_webservices>. Acesso em: 06 jun. 2006.
RAMALHO, Jos Antnio, Oracle 8i. So Paulo: Berkeley Brasil, 1999.
RUSSEL, Ryan, Rede Segura: Network. 2. Ed. Rio de Janeiro: Alta Books, 2002.
LOPEZ, Alexandre, Fique de olho na segurana. Disponvel em: <http://www.timaster.com.br/revista/artigos/main_artigo.asp?codigo=271>. Acesso em: 26 mai. 2006.
SOUZA, Michel de, Entendendo um pouco sobre o SQL Server (7.0). Disponvel em: <http://www.linhadecodigo.com.br/artigos.asp?id_ac=305>. Acesso em: 06 mai. 2006.
TANENBAUM, Andrew S., Redes de Computadores. 3. Ed. Rio de Janeiro: Campus, 1997.
TIDWELL, Doug, SNELL, James, KULCHENKO, Pavel, Programming Web Services with SOAP. Estados Unidos: OReilly, 2001.
VASCONCELOS, Carlos Eduardo Trevisan, Modelo de Referncia TCP/IP. Disponvel em: < http://www.dc.uel.br/~sakuray/Espec- Comunicacao%20de%20dados/Carlos%20Trevisan%20-%20Danilo%20Filitto/tcpip.htm>. Aceso em: 06 jun. 2006.
WIRTH, Almir, Utilizando na Prtica: Internet e Redes de Computadores. Rio de Janeiro: Alta Books, 2002.
ZAVALIK, Claudimir; LACERDA, Guilherme; OLIVEIRA, Jos Palazzo M.de, Implementando Web Services com Software Livre. Disponvel em: <http://palazzo.pro.br/artigos/04%20Software%20Livre%20-%20Web%20Serv.htm>. Acesso em: 04 mai. 2006.