Universidade Federal de Santa Catarina – UFSC Centro Tecnológico – CTC Departamento de Informática e Estatística - INE Disciplina: INE5638 – Introdução a Projetos Modelagem e desenvolvimento de softwares comerciais sobre tecnologia aberta em Web 2.0 “Este trabalho visa propor métodos para pequenas empresas de software que permitam desenvolver aplicações comerciais com baixo custo de ferramentas e redução da dependência do cliente no pós-venda. O desenvolvimento abordará tecnologias abertas para Web 2.0, como frameworks de interface que tragam uma melhor usabilidade e interação mais ágil e natural neste ambiente. O sistema será baseado em web-services e poderá ser mantido e usado independentemente do sistema operacional hospedeiro.” Aluno: Carlos Eduardo SIlva 0413809-0 Orientador: Vitório Bruno MazzolaMotivação Atualmente, empresas de desenvolvimento de softwares para automação comercial baseiam-se primariamente em tecnologias proprietárias para construir suas soluções. Esta tendência, quase totalitária, gera algumas dificuldades e imposições para as empresas que desejam se tornar clientes destes sistemas. Com a falta de opção na hora de escolher as tecnologias, devido aos sistemas necessários serem dependentes de plataforma, os clientes acabam tendo que absorver custos tangenciais ao software-objeto, como sistemas operacionais e aplicativos de suíte de escritório. Além disto, por dependerem de tecnologia fechada para operar seus sistemas informacionais, as empresas perdem a flexibilidade de montar seu parque tecnológico de forma mais ajustada. É necessário um novo paradigma para softwares comerciais, uma nova estrutura de suporte à informação. Estrutura tal que não crie amarras tecnológicas, que prejudicam principalmente as pequenas empresas com menos capacidade de absorção de custos. É preciso usar os recursos financeiros de forma mais inteligente, abrindo caminhos fáceis para decisões importantes na área tecnológica. Com um desenvolvimento de software baseado em tecnologias abertas e conceitos não-convencionais, podemos mudar o atual modelo de compra e adaptação de softwares comerciais, fazendo com que empresas com menos recursos – que são a maioria esmagadora no mercado brasileiro - desfrutem da TI com mais facilidade e de forma ajustada as suas realidades. Objetivos Demonstrar técnicas de programação para Web 2.0, para que seja propiciado um desenvolvimento de aplicativos comerciais de resposta ágil para este ambiente. Demonstrar funcionalidades de frameworks de interface para Web que permitam a simulação de um ambiente desktop no navegador de Internet, com uso de janelas, menus dinâmicos e elementos de interação elaborados. Demonstrar métodos de comunicação entre clientes e servidores via Web, de forma que não seja necessário usar a tradicional estrutura de POST e GET do HTTP para transportar páginas HTML inteiras, o que faz com que a resposta do aplicativo fique prejudicada. Demonstrar um sistema de controle financeiro simples como prova de uso das metodologias e tecnologias descritas no projeto. Conceitos Web 2.0 Termo criado em 2003, refere-se a um novo jeito de se desenvolver aplicativos para a Web. Embora erroneamente remeta à idéia de substituição de tecnologias para a Web, o termo Web 2.0 indica apenas uma tendência dos desenvolvedores em criar softwares mais inteligentes, aproveitando melhor o que a Internet oferece em termos de recursos tecnológicos. Para este trabalho, será usado o termo Web 2.0 em alusão às características de baixo tempo de resposta, interface flexível e interação natural com o usuário através do aplicativo hospedado no próprio navegador Web. Javascript Javascript é uma linguagem de programação com conceitos de Orientação a Objetos. Softwares desenvolvidos em Javascript ficam hospedados internamente no próprio navegador Web. Por ser independente de navegador e sistema operacional, além de não requerer instalação manual do software para ser utilizada, será a tecnologia escolhida para desenvolver a porção cliente deste projeto. CGI Desenvolvido em 1993 pelo NCSA (National Center for Supercomputing Applications), a Common Gateway Interface ou CGI, é uma descrição de protocolos através dos quais programas heterogêneos (diferentes plataformas, linguagens de programação ou sistemas operacionais) podem se comunicar através de um canal de troca de dados como a Internet. Com a CGI, podemos desenvolver páginas da Web dinâmicas ou web-services que serão disponibilizados através da Internet. Perl Practical Extraction and Report Language ou Perl é uma linguagem de programação desenvolvida inicialmente por Larry Wall no final da década de 1980. Com o desenvolver da linguagem durante a década de 1990 e a sua incrível capacidade de aplicar facilmente os conceitos da CGI, o Perl se tornou a linguagem mais utilizada para aplicativos Web. Neste trabalho, Perl será o ator principal que atuará ao lado do servidor, implementando todas as regras de negócio, fazendo consultas à base de dados e retornando os resultados das operações para o cliente através da CGI. XML A eXtensible Markup Language é uma linguagem de marcação com tags personalizáveis. Com esta característica, permite criar linguagens para representar virtualmente todo tipo de dados - de fórmulas matemáticas, passando por estruturas moleculares, até receitas de bolo. Esta linguagem é amplamente utilizada no mundo dos softwares cliente/servidor como forma palpável de padronizar a troca de dados entre sistemas heterogêneos. Neste projeto, toda a comunicação entre os softwares cliente e servidor será feita usando-se XML como linguagem comum. Cliente/Servidor Conceito de desenvolvimento de softwares de forma distribuída. Na arquitetura cliente/servidor, o cliente não precisa implementar todos os serviços de que necessita. Ele pode, através de um protocolo previamente definido, consultar um servidor que implemente os métodos necessários e solicitar que este servidor execute a operação desejada, retornando a resposta através de um canal de comunicação como a Internet. Tecnologias a serem estudadas PWC – Prototype Window Class Framework para interfaces de aplicativos Web que implementa o conceito de janelas, como nos sistemas operacionais modernos. AJAX – Asynchronous Javascript And XML Paradigma de programação para a Web que permite a troca de informações entre cliente e servidor através da Internet de forma assíncrona. XML – eXtendable Markup Language Linguagem de marcação com tags personalizáveis. Será a base para troca de dados entre cliente e servidor para este projeto. Material Para o desenvolvimento do projeto, serão usadas as documentações on-line das tecnologias envolvidas, artigos disponíveis pŕopria Web, além de livros sobre AJAX e Perl. Resultará do desenvolvimento do trabalho um software simplificado de gestão financeira (cliente e contas a receber) para um ambiente de restaurantes.Referências WIKIPÉDIA, Web 2.0 – Disponível em <http://pt.wikipedia.org/wiki/Web_2.0> Acessado em 18 de Julho de 2007. DEITEL, H. M.; DEITEL, P. J.; NIETO, T. R. Internet & World Wide Web. trad. Edson Furmankiewicz. - 2.ed. Porto Alegre : Brookman, 2003. DEITEL, H. M.; DEITEL P.J.; NIETO T. R.; MCPHIE, D. C. Perl: Como Programar. trad. Carlos Arthur Lang Lisbôa. - Porto Alegre : Brookman, 2002.