Universidade Federal de Santa Catarina Framework para E-Business Douglas Zin Goulart Índice Introdução ............................................................................................................................... 3 Tema ....................................................................................................................................... 3 Justificativas ....................................................................................................................... 3 Objetivos................................................................................................................................. 4 Objetivos Gerais ................................................................................................................. 4 Objetivos Específicos ......................................................................................................... 4 Metodologia ............................................................................................................................ 5 Ferramentas utilizadas ........................................................................................................ 5 Da tecnologia JSP ........................................................................................................... 6 Do framework Struts ...................................................................................................... 7 Cronograma ........................................................................................................................ 7 Implementação........................................................................................................................ 8 Resultados............................................................................................................................... 9 Bibliografia ............................................................................................................................. 9 Introdução A popularização da Internet, aliada ao barateamento do acesso e de utilização, acabou por revelar esta como o maior canal de distribuição de produtos e serviços da atualidade, provocando profundas mudanças nas estruturas econômicas e industriais. Assim, para designar de uma forma ampla as atividades que utilizam-se da infraestrutura proporcionada pela Internet criou-se o termo “e-business”, ou comércio eletrônico. Como exemplo destas atividades pode-se citar a compra e venda de produtos, atendimento de clientes ou a colaboração entre parceiros. Segundo o tipo de iteração proporcionada pela atividade, pode-se utilizar outras expressões para melhor identificá-las, como B2C (“business to consumer”), quando a atividade envolve transações entre uma empresa e o consumidor final, ou B2B (“business to business”), quando as transações são entre empresas. As atividades de B2B são largamente utilizadas pelas empresas por diversos motivos, como ampliação dos canais de vendas, redução dos custos e disponibilidade de operação 24 horas. Essas atividades estão fortemente relacionadas ao sucesso empresarial, de modo que o aproveitamento das oportunidades oferecidas pelo B2B pode ser um importante diferencial a ser adotado para o aumento da competitividade da empresa. Tema Justificativas A competitividade entre as empresas provoca uma busca contínua por diferenciais, e o B2B pode mostrar-se decisivo, pois não somente aumenta os canais de venda ou provê uma redução nos custos, mas também proporciona maior velocidade na realização dos processos e ainda agiliza a interação com os fornecedores. Assim, mostra-se como uma atividade que não somente pode proporcionar novos processos e oportunidades às empresas, mas que também otimizar as atividades já existentes no ambiente organizacional. A realização deste projeto visa o desenvolvimento de uma aplicação que seja facilmente estendível ou adaptável às necessidades de diferentes empresas de diferentes ramos, de modo que esta aplicação mostre-se uma alternativa viável também para as pequenas e médias empresas. Objetivos Objetivos Gerais Desenvolver uma aplicação que proporcione e-business a empresas cujo ramo de negócio é a distribuição de produtos. A aplicação a ser desenvolvida visa facilitar transações de negócio entre empresas através da internet, possibilitando que as empresas clientes possam efetuar seus pedidos de compra junto às empresas distribuidoras, dispondo de diversas informações sobre os produtos visados, sem que para isso exista a necessidade de uma visita de um representante da empresa distribuidora à empresa cliente. Objetivos Específicos O objetivo do projeto é desenvolver uma aplicação que proporcione a execução de transações entre empresas. A aplicação disponibilizará uma lista dos produtos oferecidos, assim como diversas informações sobre os mesmos, como fotos, textos informativos e os preços de venda nas diversas formas de pagamento aceitas. Para facilitar a localização dos produtos, a aplicação disponibilizará um sistema de navegação entre as categorias de produtos e um sistema de busca pelos produtos que satisfaçam os critérios desejados. Os produtos que o cliente selecionar para seu pedido serão guardados em uma lista, apresentada na forma de um carrinho de compras, onde este poderá ser consultado a qualquer momento pelo cliente. Após a seleção dos produtos, o cliente poderá efetuar a conclusão e efetivação do pedido. Durante este processo será informada pelo cliente a forma de pagamento desejada, e a aplicação informará o valor final do pedido. A alimentação da aplicação com a lista de produtos disponíveis e o preço de cada produto para cada forma de pagamento será feita através da inclusão de um arquivo de dados gerado pela aplicação de gestão da empresa. Esta forma de atualização de dados foi escolhida por facilitar a manutenção e a uniformidade dos dados, removendo assim, a possibilidade de diferenças de preços entre as aplicações utilizadas da empresa. Da mesma maneira, porém de forma reversa, a aplicação de gestão da empresa será notificada dos pedidos efetuados na aplicação B2B também pela inclusão de um arquivo de dados. Essa abordagem visa centralizar os controles de pedidos efetuados, mantendo assim uma base de informações única. Metodologia Ferramentas utilizadas A aplicação será desenvolvida utilizando a linguagem Java, utilizando-se das tecnologias Servlets e JSPs oferecidas pela linguagem. A aplicação também utilizará o framework Struts do projeto Jakarta da Apache. Para a hospedagem da aplicação utilizar-se-á o servidor Web Tomcat, também do projeto Jakarta. O sistema gerenciador de banco de dados a ser utilizado pela aplicação ainda não foi decidido, mas sabe-se que será um banco de dados relacional e preferencialmente gratuito. Da tecnologia JSP A sigla JSP significa “Java Server Pages”, essa tecnologia é utilizada para prover conteúdo dinâmico a um usuário de um site. Toda a lógica e tratamento dos dados acontece durante o processamento do servidor para prover ao browser do usuário uma resposta em formato HTML. A tecnologia JSP faz parte da plataforma conhecida como J2EE, Java 2 Enterprise Edition, da mesma forma que os Java Servlets e os Java Beans. Seu principal trunfo é proporcionar o desenvolvimento rápido de aplicações para Web de forma eficiente, escalável e sergura. A tecnologia JSP tem como função o desenvolvimento de aplicações para Web, criando páginas chamadas dinâmicas, de forma semelhante ao ASP, o Active Server Pages. Todavia, da mesma forma que a tecnologia Java, usufrui da portabilidade, podendo assim ser executado em diversos Sistemas Operacionais. Além disso, o seu processamento se dá de forma mais rápida, uma vez que acontece uma compilação do código fonte e pode ainda utilizar-se do acesso nativo a diversos bancos de dados. Em comparação com a tecnologia Servlet, pode-se dizer que não há nada feito em JSP que não pode ser feito utilizando somente a tecnologia Servlet. Em um nível mais baixo, existe uma tradução do JSP para um Servlet equivalente. A tecnologia JSP entretanto oferece uma maior facilidade de codificação, provendo um desenvolvimento mais rápido e uma manutenção mais simples. Outra grande vantagem é a separação da camada de apresentação da camada de lógica da programação, possibilitando assim o desenvolvimento de sites mais robustos, além do desenvolvimento de ambas as partes ao mesmo tempo, uma pelo programador e outra pelo designer da aplicação. Do framework Struts A Struts Framework é um projeto open source mantido pela Apache Software Foundation. É uma implementação do design pattern MVC, que significa Model, View and Controller, para aplicações Java com internet. O objetivo do design pattern MVC é separar de maneira clara a camada de apresentação, chamada camada View, da camada de Negócio, chamada Model. A arquitetura MVC é um padrão que separa de maneira independente o Modelo, que representa os objetos de negócio, a camanda Model, da camada de apresentação, que representa a interface com o usuário ou outro sistema, a camada View e o Controle de fluxo da aplicação, a camada Controller. O framework Struts se tornou rapidamente um padrão no mercado, obtendo assim integração com diversas IDEs de desenvolvimento, além de proporcionar código útil no desenvolvimento de aplicações para Internet, sendo desnecessário ter de “reinventar a roda” para obter soluções para problemas freqüentes, aumentando assim drasticamente a produtividade. Este framework ainda incorpora design patterns fortemente, sendo que a utilização destes seja encorajada durante o desenvolvimento dos sistemas, desnecessário nesse ponto listar o quão benéfico é a utilização de design patterns no desenvolvimento de sistemas, principalmente nos de grande porte. Cronograma As atividades previstas para o desenvolvimento do projeto, bem como as datas de início e término previsto para as mesmas, seguem relacionadas na tabela abaixo. Descrição da atividade Estudo bibliográfico Análise de requisitos Projeto Implementação Testes Documentação Data de início 01/07/2004 01/09/2004 01/10/2004 01/12/2005 01/04/2005 16/04/2005 Data de conclusão 31/08/2004 30/09/2004 30/11/2004 31/03/2005 15/04/2005 15/06/2005 Implementação A implementação das diferentes funcionalidades do sistema será feita através do agrupamento de funções de contextos semelhantes em um mesmo modulo. Assim, funções como inserção, alteração e exclusão de usuário, por exemplo, estarão presentes em um mesmo modulo. Esta abordagem visa facilitar a implementação, a organização além da manutenção e extensão do sistema, pois as funções relacionadas a um mesmo assunto estarão disponibilizadas no mesmo local. E mesmo a manutenção/extensão do sistema quando feita por diferentes pesssoas será simplificada uma vez que possibilitará a alteração simultânea em diferentes partes do sistema, por exemplo. A organização dos arquivos referentes a interface destas mesmas funcionalidades deverá estar organizado de forma semelhante, pelos mesmos motivos, porém feita através de diferentes diretórios. A implementação da interface do sistema terá sua manutenção especialmente facilitada pela tecnologia JSP disponibilizada pela linguagem Java, uma vez que se trata basicamente de HTML. Assim a organização e a manutenção serão novamente priorizadas. Estas decisões proporcionarão que duas diferentes empresas a partir do mesmo sistema base possam desenvolver novos sistemas, totalmente adaptados as suas necessidades, bem como proporcionar diferenciais competitivos entre elas, mesmo na internet. Podem ainda personalizar tanto a interface que para o usuário final tratar-se-á de dois sistemas completamente distintos. Como elemento de ligação entre a camada Web da aplicação e os módulos de funções específicas haverá um Servlet Controlador que centralizará as ações preliminares que deverão ser executadas antes das funcionalidades encontradas nos módulos descritos acima, e ações que deverão ser executadas após as funcionalidades dos módulos. Pode-se citar como exemplos de ações que deverão ser executadas antes das funcionalidades dos módulos a validação das informações enviadas pelo usuário do sistema. Da mesma forma cita-se como ação a ser executada posteriormente o redirecionamento do usuário para uma página de erro, contendo mensagens informativas sobre um erro encontrado, por exemplo, uma indisponibilidade temporária do banco de dados resultante do processo de backup noturno. Essa decisão facilitará a implementação das funcionalidades presentes nos módulos, de modo que a complexidades destes seja reduzida e específica da funcionalidade a ser implementada. Resultados (Explanação sobre os resultados obtidos). Bibliografia William George Lopes Saab. “E-Business: O uso corporativo da Internet”. Disponível em http://www.bndes.gov.br/conhecimento/setorial/get4is15.pdf Fernando Parreiras. “As muitas faces do E-Business e como encará-las”. Disponível em http://webinsider.uol.com.br/vernoticia.php/id/2133 Harvey M. Deitel, Paul J. Deitel. “Java: Como programar”, Terceira Edição, Bookman. Apache Software Fundation. “The Struts User’s Guide”. Disponível em http://jakarta.apache.org/struts/userGuide/index.html