31
Universidade Estadual do Centro-Oeste – UNICENTRO Felipe Ribas Forbeck Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao front-end Relatório Final da disciplina Estágio Supervisionado do 4º ano do curso de Ciência da Computação a ser apresentado como forma de requisito à obtenção do título de graduado em Ciência da Computação. Orientador: Fábio Luiz Pessoa Albini Guarapuava 2009

Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao front-end

Embed Size (px)

Citation preview

Page 1: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Universidade Estadual do Centro-Oeste – UNICENTRO

Felipe Ribas Forbeck

Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao front-end

Relatório Final da disciplina Estágio Supervisionado do 4º ano do curso de Ciência da Computação a ser apresentado como forma de requisito à obtenção do título de graduado em Ciência da Computação.

Orientador: Fábio Luiz Pessoa Albini

Guarapuava2009

Page 2: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Resumo

Sabe-se sobre a rápida evolução e tendência dos novos sistemas comerciais, o ambiente web. É de grande valia que as fábricas de softwares de hoje estejam preparadas para desenvolver serviços neste tipo de ambiente, entretanto esperando por várias dificuldades. Cita-se em especial, a migração do ambiente desktop para o web na qual há uma grande diferença visual é encontrada, se tratando das interfaces gráficas. Assim, este trabalho apresenta o desenvolvimento do front-end de uma plataforma tecnológica e de um módulo comercial, cujo projeto emprega um framework JSF com o intuito de facilitar o desenvolvimento e reduzir os impactos da migração de ambiente para o usuário. O foco é manter um visual semelhante ao desktop na web e oferecer novas funcionalidades.Palavras-chave: Sistemas comerciais, plataforma tecnológica, Java, JSF, Front-end

Abstract

It is about the rapid evolution and trend of the new systems business, the web environment. It is of great value to the plants software today are prepared to develop services in this type environment, however waiting for a lot of difficulties. Cites in particular, the migration from the desktop to the web in which there is a great visual difference is found, the case of graphical interfaces. Thus, this paper presents the development of front-end of a technology platform and a business module, the project uses a JSF framework in order to facilitate the development and reduce impacts of migration environment for User. The focus is to maintain a look similar to the desktop on the web and offer new features.Keywords: Commercial systems, Technology Platform, Java, JSF, Front-end

Page 3: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

1. Introdução

Ainda hoje, há empresas que dependem de sistemas antigos, sem documentação

e que se tornam mais dispendiosos a medida que evoluem. E o pior, alguns já não

atendem mais as necessidades dos clientes. Tais sistemas podem ser classificados

como Sistemas Legados. E, por serem utilizados a muito tempo sofrem diversas

alterações que acabam desestruturando suas arquiteturas, ademais, em geral, muitas

equipes trabalham em seu desenvolvimento, assim é difícil conseguir uma

padronização no código fonte. Por isso, o sistema se torna cada vez mais complexo.

Com tais características é fundamental para uma empresa que deseja se manter

no mercado buscar por novas tecnologias. Tecnologias que ofereçam novos recursos,

atendam as necessidades dos clientes e não gerem elevados custos de manutenção e

investimento.

Se tratando de novos recursos é válido citar o ambiente web visto que aparenta

ser uma grande tendência dos novos aplicativos, pois sendo uma rede de

comunicação, hoje não só de computadores, mas de diversos dispositivos (KUROSE,

2006), oferece diversas funcionalidades, uma delas é a facilidade de troca de

informações. Entretanto, as aplicações antigas, em geral, foram desenvolvidas para o

ambiente desktop, estas podem até apresentar os recursos disponíveis da web, como

troca de informações, mas talvez não tenham a mesma abrangência.

Na web, funcionalidades como troca de informações e interação de pessoas em

diferentes lugares através de dispositivos como: computadores, PDAs, Tvs, celulares,

entre outros (KUROSE, 2006), são interessantes tanto para os uso comercial quanto

pessoal. Assim, no ambiente comercial é de grande valia as empresas ofertarem tais

recursos para os seus clientes e buscarem adaptações nas aplicações legadas.

É certo que, em geral, sistemas web não fornecem a mesma interatividade e

usabilidade que um sistema desktop, porém com a evolução das tecnologias tem-se

percebido o investimento e busca por um visual mais agradável, intuitivo, interativo e

próximo aos aplicativos convencionais (desktop).

Assim, conceber interfaces mais amigáveis e semelhantes às interfaces

tradicionais não é mais um desafio tão complexo para os desenvolvedores. Pois novas

ferramentas são desenvolvidas com tais propósitos.

Tais ferramentas utilizam as tecnologias Ajax e RIA. Segundo (AMSTEL,

2009) Ajax é o nome criado pela Adaptive Path e RIA - Rich Internet Applications - é

o nome criado pela Macromedia para definir as aplicações ricas que rodam na Web.

Page 4: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Tecnologias diferentes com o mesmo objetivo: melhorar a experiência do usuário.

Embora estejam em fase inicial de desenvolvimento e de testes com usuários,

muitas destas ferramentas com RIA e AJAX estão sendo utilizadas em grandes

projetos. Pode-se citar como exemplo o framework Java Server Faces (JSF) Icefaces

(ICEFACES, 2009) empregado neste trabalho.

A ferramenta é uma implementação de uma especificação da Sun (SUN, 2009)

utilizada para a criação de interfaces web ricas por meio de componentes visuais para

aplicações JEE (JEE, 2009). O framework sendo open source oferece um conjunto

vasto de componentes para desenvolvimento que podem ser encontrados em

(ICEFACES, 2009). E, além de abordar o conceito RIA apresenta um novo conceito

de navegação de páginas, navegação orientada a estados – uma mesma tela pode ter

diferentes estados / comportamento, depende do contexto (PONTE, 2009).

Assim, apresenta-se a tecnologia JSF Icefaces empregada no desenvolvimento

da camada de apresentação de uma plataforma tecnológica, bem como de um módulo

comercial, Nota Fiscal Eletrônica (FERREIRA, 2009). Sendo o desenvolvimento

desta camada o foco principal deste trabalho.

Page 5: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

2. Problema

Percebe-se uma oportunidade no mercado de trabalho em que acadêmicos

poderiam realizar propostas de inovação tecnológica para as empresas. Tais

acadêmicos forneceriam Know-How de desenvolvimento com determinada tecnologia

para executar determinados projetos testes. Com base nesses projetos as empresas

poderão analisar qual caminho seguir, ou melhor, no quê exatamente investir.

Assim, aborda-se neste trabalho o caso da empresa Teorema Informática, que

mantém um sistema legado Delphi (EMBARCADERO, 2009) e disponibiliza para

seus clientes diferentes módulos comerciais como: Gestão Financeira, Gestão

Comercial, Emissão de Nota Fiscal-e (eletrônica) , entre outros. Este legado Delphi

já não atende a algumas necessidades dos clientes. Como exemplo a demanda de

emissão da nota fiscal eletrônica.

Dessa forma, a empresa busca por projetos que possam superar as limitações da

ferramenta atualmente utilizada e, além disso seja capaz de suprir as necessidades dos

clientes. E, como um dos principais requisitos, o projeto deve ser desenvolvido

especialmente para plataforma web. Visto que a atual tecnologia utilizada possui

algumas limitações para operar em tal plataforma.

Tendo conhecimento sobre a atual situação da empresa, uma proposta inicial

utilizando a tecnologia JEE - Java Enterprise Edition (JEE, 2009) e JSF foi projetada

juntamente à empresa, com intuito de auxilia-la na busca / pesquisa por tecnologias e

tendências dos novos sistemas.

Dentro dessa proposta existem alguns desafios tanto para os desenvolvedores

quanto para os usuários. Pode-se citar a migração de ambiente como principal

obstáculo para o usuário. Já para os desenvolvedores, uns dos principais desafios é

reduzir os impactos dessa migração simulando o ambiente desktop na web.

Para tal efeito, é importante a implantação de novas funcionalidades no sistema,

bem como manter a semelhança do visual tradicional, porém visando telas mais

simples, intuitivas, fáceis de se criar e eficientes quanto as ações do usuário.

Page 6: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

3. Objetivos

O projeto aqui apresentado caracteriza-se como prestação de serviços à empresa

e tem como principal o objetivo desenvolver uma plataforma tecnológica capaz

integrar diferentes módulos comerciais.

A construção da plataforma tecnológica em JEE permitirá que qualquer módulo

comercial em Delphi seja reescrito para a linguagem Java (SUN, 2009) e, assim

poderá ser integrado à plataforma. Espera-se suprir as deficiências e limitações da

atual tecnologia utilizada pela empresa com a abordagem aqui apresentada.

Ademais, como objetivo secundário a conversão de um módulo comercial

Delphi para Java é também aqui descrita. Mais especificamente este módulo se refere

à Emissão de Nota Fiscal-e (eletrônica) – apresentado na seção 4.2.

Vale ressaltar que este trabalho foi desenvolvido em conjunto com (FILHO,

2009) seguindo um padrão de desenvolvimento de sistemas multi-camadas

(SCHLICKMANN, 2009). Assim esta abordagem descreve especialmente o

desenvolvimento da camada de apresentação.

Page 7: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

4. Metodologia

4.1 Plataforma Tecnológica

Como supracitado, a empresa Teorema Informática possui um sistema legado

Delphi com diversos módulos comerciais, esse legado pode ser representado na

Figura 1 – plataforma Pitágoras e Módulos Comerciais, na qual os módulos são

integrados.

Tendo conhecimento da plataforma Pitágoras planejou-se em manter o modelo,

no qual existe um núcleo (ou módulo central) que contém as informações e

funcionalidades em comum à todos os outros módulos. E que, gradativamente, cada

módulo que venha ser convertido para a linguagem Java possa ser integrado a

plataforma.

Assim, fez-se necessário utilizar a tecnologia JEE, que é uma especificação de

implementação para aplicações empresariais de grande porte reduzindo o custo e

complexidade de desenvolvimento, implantação e gerência de aplicações multi-

camadas, centradas no servidor (JEE, 2009). Tal especificação utiliza a linguagem

Figura 1. Plataforma Pitágoras e Módulos Comerciais

Page 8: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Java.

Assim a arquitetura Pitágoras, mais especificamente o núcleo da plataforma,

utilizando a tecnologia JEE foi projetada e implementada conforme ilustra a Figura 2.

Figura 2. Núcleo da Plataforma Pitágoras Java

Em suma, cita-se os pacotes e suas funcionalidades:

- Pitágoras-sar: Contém os processos de inicialização do servidor, bem como é

responsável pelo registro do driver JayBird (ligação entre a base de dados e a

aplicação);

- Pitágoras-server: Fornece operações pertinentes ao servidor de aplicação,

como gerência interna de diretórios;

- Pitágoras-business: Contém a lógica de negócio;

- Módulos: Contém os módulos comerciais disponibilizados pela empresa e já

convertidos para Java;

−Web-Container: Pacote responsável pela gerência do front-end (camada de

apresentação). Tal pacote é composto pelos módulos Managed Beans, JSF Pages e

Page 9: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

JAAS. Sendo estes módulos pertinentes ao controle das telas, implementação das

páginas e controle de acesso dos usuários, respectivamente.

Mais informações sobre os pacotes não pertinentes ao front-end podem ser

encontradas em (FILHO, 2009).

4.1.1. Processo de Implementação da Plataforma

Seguindo a ideia de manter a estrutura da plataforma Pitágoras deu-se início ao

desenvolvimento. Primeiramente um ambiente com ferramentas foi configurado a fim

de auxiliar e otimizar a produção. Principais tecnologias utilizadas:

− Crystal Reports 4 (SAP, 2009);

− Eclipse Galileo (ECLIPSE, 2009);

− EJB 3.0 (EJB, 2009), (FRANTZ, 2009);

− JBoss Application Server 5.10 (JBOSS, 2009);

− Icefaces 1.8.2 (ICEFACES, 2009);

Sendo assim, tendo o ambiente de desenvolvimento configurado iniciou-se o

processo de desenvolvimento com o levantamento e mapeamento das tabelas da base

de dados. Inicialmente, foram mapeadas somente tabelas pertinentes às

funcionalidades básicas como: autenticar, inserir, atualizar, recuperar, excluir usuário.

Para o mapeamento das tabelas foi utilizada a tecnologia (ECLIPSELINK, 2009).

Em seguida, foi criada a camada de negócios utilizando a tecnologia EJB 3.0

(EJB, 2009) e (FRANTZ, 2009). Neste caso, como as operações eram simples, apenas

foram implementados as funcionalidades básicas, menos a autenticação do usuário.

Tal funcionalidade é tratada pela ferramenta JAAS (Java Authentication and

Authorization Service).

Tendo acesso ao banco de dados e podendo realizar as operações conhecidas

como CRUD (PONTE, 2009) (Create, Retrieve, Update, Delete) realizou-se os testes

a partir do cliente, ou seja, por meio de uma interface o usuário efetua as operações.

Assim, na criação da camada de apresentação utilizou-se a tecnologia

Icefaces. O protótipo da tela criada para as operações CRUD com a ferramenta

Icefaces pode ser visualizada no anexo Telas: Funcionalidades Básicas. Vale ressaltar

que cada operação é realizada mudando o estado da tela através do menu superior da

mesma. Exemplo: estado de edição (click sobre o botão lápis); estado de exclusão

(click sobre o botão lixeira) e assim por diante.

É válido ressaltar que tecnologia para o desenvolvimento do front-end,

Page 10: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Icefaces, foi escolhida por meio de pesquisas e com base no comparativo entre

frameworks JSF em (CONCEIÇÃO, 2008). Mostrando-se superior às demais

tecnologias do comparadas. Ademais, a ferramenta é utilizada por grandes

corporações como: Nasa, HP, Siemens, Johnson & Johnson, Sigma, entre outros

(ICEFACES, 2009). Em suma, é uma implementação de uma especificação proposta

pela (SUN,2009) que possibilita criar interfaces web por meio da linguagem Java.

Além disso possui diversas vantagens sobre as demais encontradas no mercado:

− documentação Java;

− manual de auxílio ao desenvolvedores;

− open-source;

− treinamento;

− integração com facelets – tecnologia que permite e facilita a criação de

templates em páginas web.

− versão para mobile.

Entre outras funcionalidades que acrescentam valor e qualidade ao projeto. A

ferramenta oferece um novo conceito de navegação entra páginas, a navegação

orientada a estados (PONTE, 2009).

Assimilar e aplicar tal conceito no desenvolvimento do projeto foi uma

grande dificuldade para os desenvolvedores, pois a força do hábito de se escrever

páginas com regras de navegação dificultou o aprendizado.

Outra grande dificuldade foi implementar a funcionalidade de sobreposição de

telas, anexo Telas: Sistema Java - Figura 4. Pois a ferramenta não fornecia tal recurso

na versão utilizada inicialmente, assim os códigos fontes foram editados para

conseguir tal efeito.

Após ter a implementação das telas que fornecem as funcionalidades básicas

do módulo comercial, ilustradas no anexo: Telas: Sistema Java, foram realizados

alguns testes na aplicação.

Principais testes realizados:

◦ velocidade de renderização das páginas: inicialmente as páginas

demoravam em torno de 2 a 4 segundos para serem renderizadas

(desenhadas), porém o problema foi resolvido com uma nova versão,

1.8.2, da ferramenta Icefaces reduzindo o tempo e tornando a

renderização imperceptível;

Page 11: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

◦ eficiência na autenticação e inicialização do aplicativo para o cliente:

inicialmente o tempo de autenticar e inicializar era em torno de 7 a 10

segundos, pois toda vez que é realizado um login, todas as páginas e

seus Managed Beans (MB) – classes Java responsáveis por controlar

os estados de uma tela, são carregados no servidor. O tempo foi

reduzido para 3 a 5 segundos, pois a correção fez com que as páginas e

seus MB fossem carregados conforme a necessidade.

◦ compatibilidade de browsers: nem todos os browsers aceitam os

mesmos comandos CSS (Cascade Style Sheet), assim fica complexo

escrever funcionalidades para determinados navegadores. Dessa forma

optou-se em homologar a aplicação apenas para o browser FireFox a

partir da versão 3.0.

◦ funcionalidades básicas: apresentou resultados satisfatórios, pois foi

possível efetuar as operações CRUD com sucesso.

Tendo realizado os testes básicos sobre a plataforma e suas camadas, deu-se

inicio ao desenvolvimento de um módulo comercial. Este módulo trata da Emissão de

Nota Fiscal Eletrônica.

4.2. Módulo Comercial: Emissão de Nota Fiscal-e (eletrônica)

Inicialmente, a empresa solicitou a implementação do módulo CRM – Customer

Relationship Management ou Gestão de relacionamento com o cliente, entretanto tal

módulo não é tão utilizado como o de Emissão de Nota Fiscal-e (eletrônica) (NF-e).

Ademais, o NF-e era utilizado com a tecnologia Delphi, que não estava suprindo as

necessidades dos clientes. Assim surgiu a necessidade implementar o pacote NF-e

com outra tecnologia, no caso Java. Então deu-se início a construção do módulo.

Tal módulo tem o objetivo gerar um documento fiscal digital, em outras

palavras, uma nota fiscal digital, que é rigorosamente especificada pelo ENCAT

(Encontro Nacional de Coordenadores e Administradores Tributários Estaduais) e tais

especificações podem ser encontradas no manual de integração do contribuinte

(FAZENDA, 2009). Sendo que este documento fiscal é gerado para aumentar a

fiscalização sobre a movimentação de mercadorias e prestação de serviços no

território nacional [BRITTO, 2008].

O processo de desenvolvimento seguiu os mesmos passos que a construção do

Page 12: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

núcleo da plataforma, ou seja, iniciou-se com o mapeamento das tabelas pertinentes a

NF-e em seguida estudou-se as regras de negócio e o modelo operacional, disponíveis

no manual de integração do contribuinte (FAZENDA, 2009). E então, a camada de

negócios foi construída. Tendo a lógica de negócios implementada deu-se início ao

processo de construção das telas.

Como o módulo já era utilizado no Delphi foram utilizadas as telas do ilustradas

no anexo Telas: Sistema Delphi, como modelos para a criação das novas telas. As

novas telas foram projetadas com o intuito de oferecer uma interface mais intuitiva,

eficiente, com visual semelhante ao desktop e com novas funcionalidades. Assim, as

três telas do sistema Delphi foram transformadas em oito telas JSF. Tais telas podem

ser visualizadas no anexo Telas: Sistema Java.

Quanto as funcionalidades de cada tela e suas respectivas ilustrações são

descritas a seguir:

◦ Tela Consulta Documento Fiscal: permite consultar a situação da nota

fiscal, por meio da chave de acesso, nos servidores do estado receptor. A

identificação do estado receptor é capturada na chave de acesso do

documento. A chave de acesso nada mais é do que um número

identificador do documento fiscal, mais detalhes em (FAZENDA, 2009).

Anexo Telas: Sistema Java – Figura 3;

◦ Tela Configuração de Empresa Emitente: permite visualizar as

configurações de emissão de nota fiscal comum para as empresas

cadastradas. Vale ressaltar que o aplicativo fornece a funcionalidade extra

de trabalhar com mais de uma empresa emitindo notas fiscais

simultaneamente. Assim, essas empresas emitentes cadastradas podem ser

visualizadas nesta tela. Ademais, permite configurar o e-mail para

recebimento do xml (Extensible Markup Language) de distribuição, bem

como a DANFE (Documento Auxiliar da Nota Fiscal Eletrônica). Anexo

Telas: Sistema Java – Figura 4;

◦ Tela Configuração de Parâmetros de Emissão: permite configurar

parâmetros de emissão, impressão, e certificados utilizados pelas empresas

emitentes. Anexo Telas: Sistema Java – Figura 5.

◦ Tela Configuração do Certificado A1 e A3: telas semelhantes e com o

mesmo propósito: configurar o certificado digital (FAZENDA, 2009)

Page 13: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

utilizado na emissão da nota fiscal. Como funcionalidade extra permite

configurar o certificado A3, uma vez que no sistema Delphi só operava

com apenas um certificado A1, no aplicativo Java é permitida a

configuração de vários certificados. Fez-se necessário duas telas pois cada

certificado, A1 e A3, precisa de um tipo de configuração. Visto que A1 é

um arquivo e o certificado A3 é um Java-Card. Os certificados

configurados também podem ser visualizados nesta tela. Anexo Telas:

Sistema Java - Figuras 7 e 8;

◦ Tela Visualização da Transmissão de Documento: permite acompanhar o

processo de transmissão da nota fiscal eletrônica, bem como a contagem

de documentos transmitidos, processados e recusados. Como

funcionalidade extra a aplicação fornece também o log do que esta

ocorrendo durante o processo e este log é apresentado nesta tela para o

usuário. Anexo Telas: Sistema Java – Figura 9;

◦ Tela Visualização de Documentos Transmitidos: permite a busca, por

diferentes critérios, e a visualização das notas fiscais enviadas e aceitas

pela receita. Ademais, possui a função de gerar o xml de distribuição –

arquivo que comprova a autenticidade do documento transmitido; além

disso, o sistema oferece a funcionalidade extra de gerar o arquivo PDF

(Portable Document Format) da DANFE, um exemplo do arquivo pode

ser visualizado no manual de integração (FAZENDA, 2009). Permite

também selecionar vários documentos para gerar o xml e efetuar o

download no formato .zip (compactado) assim, tornando o processo mais

fácil e eficiente para o usuário. Anexo Telas: Sistema Java – Figura 10;

◦ Tela de Inutilização de Documento: permite inutilizar o documento fiscal

com base no parâmetros da tela. Anexo Telas: Sistema Java – Figura 12.

Após o término da implementação das telas uma versão beta do aplicativo foi

disponibilizada para os clientes. Tal versão foi liberada com o intuito de receber um

feedback dos clientes sobre erros, qualidade, dificuldades, modificações e

comportamento do sistema. Vale ressaltar que os testes foram realizados

informalmente e nenhuma metodologia específica foi aplicada.

Após ter realizado as correções no sistema com base no feedback dos clientes,

surgiu a necessidade de integrar o módulo de CT-e (Conhecimento de Transporte

Page 14: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Eletrônico).

Segundo (NEOGRID, 2009) o CT-e foi idealizado para substituir os seguintes

documentos fiscais em papel, utilizados na prestação de serviços de transporte de

cargas: Conhecimento de Transporte Rodoviário de Cargas; Conhecimento de

Transporte Aquaviário de Cargas; Conhecimento Aéreo; Conhecimento de Transporte

Ferroviário de Cargas; Nota Fiscal de Serviço de Transporte Ferroviário de Cargas; e

Nota Fiscal de Serviço de Transporte, quando utilizada em transporte de cargas.

Assim, com a possibilidade de preencher os documentos eletronicamente, as

transportadoras deverão ganhar tempo na liberação de suas cargas na fiscalização de

trânsito, reduzir o volume de papel armazenado e os custos da emissão e prestação de

informações ao fisco. Além disso, no momento da emissão, o CT-e será transmitido

instantaneamente para a Secretaria da Fazenda (de origem, de destino e para a

Secretaria da Receita Federal), permitindo um maior controle e acompanhamento das

operações realizadas pelos contribuintes, que passam a estar interligados com o fisco.

Finaliza (NEOGRID, 2009) , o CT-e terá modelo único de documentos para

uso de todos os modais: aéreo, rodoviário, ferroviário, aquaviário e multimodal

(segunda fase do projeto). A validade jurídica do Conhecimento de Transporte

Eletrônico será garantida pela assinatura digital do emitente (garantia de autoria e de

integridade) e pela autorização de uso do documento eletrônico, fornecida pelo fisco,

assim como ocorre com a NF-e.

A transportadora deverá imprimir o Documento Auxiliar do CT-e (Dacte) para

acompanhar a carga durante o transporte, antes do início da prestação do serviço. O

Dacte é uma representação simplificada do CT-e. Contém informações básicas sobre

a prestação em curso (emitente, destinatário, valores etc).

Coordenado pelo Encontro Nacional dos Coordenadores e Administradores

Tributários Estaduais (ENCAT), o projeto do CT-e é desenvolvido pelas Secretarias

de Fazenda dos Estados e do Distrito Federal, Receita Federal do Brasil, Suframa,

ANTT, Anac, NTC & Logística e 42 empresas voluntárias de transporte de cargas dos

diversos modais.

Com o mesmo propósito do módulo de NF-e, o módulo de CT-e foi

desenvolvido e integrado a plataforma Pitágoras, entretanto vale ressaltar que apenas

o modelo Conhecimento de Transporte Rodoviário de Cargas foi implementado, pois

a empresa atende clientes apenas neste modelo.

No desenvolvimento da camada de apresentação para o módulo CT-e

Page 15: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

percebeu-se semelhança entre as funcionalidades do NF-e. Assim, a fim de ganhar

produtividade o módulo CT-e e NF-e foram mesclados. Com isso, um novo módulo,

para a empresa foi criado: Gestão de Documentação Eletrônica (DOC-e).

Dessa forma, não houve a necessidade de se criar novas telas, apenas reutilizar

e adaptar as já existentes. Percebe-se no anexo Telas: Sistema Java que todas já estão

convertidas para o novo modelo e permitem operar tanto com NF-e quanto CT-e.

Vale ressaltar que ambos os módulos possuem funcionalidades semelhantes

sendo suficientes para unifica-los

Page 16: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

4.1. Cronograma

4.1.1 Cronograma proposto

ATIVIDADE / MESES JanFevMarAbrMaiJunJulAgoSet Outa. Estudo de tecnologias e levantamento

bibliográfico

X X X X X X X X X

b. Preparação do ambiente de desenvolvimento Xc. Desenvolvimento da camada de persistência X Xd. Implementação das funcionalidades básicas X X Xe. Definição dos templates de interface gráfica X Xf. Construção do módulo comercial X X X X Xg. Criação da camada de apresentação para o

módulo comercial

X X X X X

h. Teste / validação do protótipo X Xi. Relatórios X X

4.1.2 Cronograma realizado

ATIVIDADE / MESES JanFevMarAbrMaiJunJulAgoSetOut Nova. Estudo de tecnologias e levantamento

bibliográfico

X X X X X X X X X X

b. Preparação do ambiente de

desenvolvimento

X

c. Desenvolvimento da camada de

persistência

X X

d. Implementação das funcionalidades

básicas

X X

e. Definição dos templates de interface

gráfica

X

f. Construção do módulo comercial X X X X X Xg. Criação da camada de apresentação

para o módulo comercial

X X X X X X

h. Teste / validação do protótipo X X X X X Xi. Relatórios X X X

4.1.3 Observações sobre o cronograma

A extensão do tempo apresentada no cronograma realizado é justificável. Pois,

houve dificuldades para alcançar uma das principais funcionalidades do aplicativo, a

sobreposição de telas. Funcionalidade esta que a ferramenta Icefaces não fornecia até

sua atual versão (ICEFACES, 2009). Assim, levou-se tempo para estudar os códigos

fonte da mesma e efetuar as devidas alterações. Apesar do tempo gasto para alcançar

Page 17: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

tal funcionalidade, o desenvolvimento da camada de apresentação teve continuidade

por meio de interfaces protótipos.

Apesar irregularidade com o cronograma proposto o projeto foi concluído,

apenas demandou-se mais tempo devido as necessidades da empresa, como o módulo

de CT-e. E como incremento ao projeto, pode-se citar o desenvolvimento de tal

módulo. Visto que a proposta apresentada descrevera a implementação de apenas um

módulo comercial. Além disso, a junção dos módulos NF-e e CT-e criando o DOC-e

demandou pouco tempo no desenvolvimento, entretanto retardou o processo de

redação do projeto.

Page 18: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

5. Resultados e Discussão

Há aproximadamente dois meses o aplicativo esta sendo utilizado pelos clientes

da empresa e apresenta resultados satisfatórios.

Demonstra ser mais eficiente que a ferramenta Delphi utilizada inicialmente,

bem como fornece novas funcionalidades paras os usuários.

Após a disponibilização da versão beta foram realizadas algumas correções,

bem como liberadas novas versões.

A priori os clientes não apresentaram dificuldades quanto a migração de

ambiente como se esperava, pois o visual agradável, a semelhança com o visual

desktop a eficiência e por operar com janelas aninhadas trazendo novas

funcionalidades, a migração não apresentou problemas. Além disso é notável a

satisfação do usuário em trabalhar com interfaces menos poluídas, mais intuitivas e

rápidas.

Vale ressaltar que o conceito de navegação por estados facilitou o controle e o

fluxo de navegação entre as telas, pois não houve a necessidade de escrever regras de

navegação por páginas.

A criação de telas por meio de componentes, característica dos frameworks

JSF, gera ganho de produtividade. Entretanto é valido ressaltar que até que se gere

ganhos de produtividade há o tempo de conhecer a tecnologia, bem como assimilar o

conceitos nela envolvidos, como por exemplo a navegação orientada a estados. Tal

conceito demandou mais tempo de aprendizado devido os desenvolvedores estarem

familiarizados com o processo de navegação por páginas.

As telas do sistema Java, anexo Telas: Sistema Java, quando comparadas às

telas Delphi, anexo Telas: Sistema Delphi, apresentam menos complexidade e grande

diferença visual, bem como funcional.

Além disso, desenvolver aplicativos para a plataforma web foi mais um desafio

superado, pois os desenvolvedores estavam mais familiarizados com o ambiente

desktop.

Page 19: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

6. Conclusões

Dessa forma, tendo um plataforma tecnológica implantada na empresa, o custo

de integrar novos módulos é mínimo, uma vez que a plataforma disponibiliza as

funcionalidades em comum para os módulos comerciais, bem como mantém um

padrão de desenvolvimento do projeto. Provê também redução nos custos de

manutenção e proporcionando em produtividade.

Ademais, a plataforma opera no ambiente web, tal característica apresenta as

vantagens encontradas neste ambiente e satisfaz o principal requisito do projeto

proposto pela empresa.

Apesar de se gastar tempo no início do projeto utilizando a tecnologia Java,

pois apresenta uma certa complexidade de desenvolvimento, o custo de manutenção é

reduzido. Ao contrário do Delphi, que se desenvolve rápido, entretanto ajustes se

tornam complexos e mais custosos.

Além disso, o framework Icefaces contribuiu positivamente para o

desenvolvimento da camada de apresentação da plataforma Pitágoras, bem como dos

módulos comerciais. A tecnologia JSF proporciona facilidade de desenvolvimento da

camada de apresentação para aplicações JEE.

Entende-se, portanto, que todo o conjunto de tecnologias aplicado ao projeto

aqui apresentado foi suficiente para concretizá-lo, bem como para demonstrar para a

empresa a capacidade da tecnologia abordada.

Dessa forma, os objetivos foram alcançados, a criação da plataforma

tecnológica, bem como a conversão de um módulo comercial (NF-e), ademais a fusão

de dois módulos comerciais gerando o DOC-e. Obtendo assim, a aprovação do

projeto pela empresa e clientes.

Page 20: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

7. Trabalhos Futuros

Em caso de continuidade do projeto espera-se a implementação do PAF-ECF

(Programa Aplicativo Fiscal – Emissor de Cupom Fiscal), criado pela CONFAZ junto

às secretarias da fazenda dos estados, define como deve ser o funcionamento de

aplicativos utilizados nos pontos de venda (PDV) na sua comunicação com os

emissores de cupons fiscais (ECFs) (IONICS, 2009). Além disso, a criação de um

controle de licenças dos softwares fornecidos pela empresa deverá ser implementado.

Page 21: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

8. Referências Bibliográficas

AMSTEL, Frederick V. RIA do AJAX. Disponível em: <http://usabilidoido.com.br/cat_ria_do_ajax.html>. Acesso em: 03 nov. 2009.

BODOFF, Stephanie et al. Tutorial do J2EE Enterprise Edition 1.4. Tradução da 2ª Edição, Editora Ciência Moderna, 2005.

CONCEIÇÃO, Rodrigo M. Java Server Faces (JSF): Um estudo comparativo entre bibliotecas de componentes. Disponível em: <http://www.scribd.com/doc/9197155/JAVASERVER-FACES-JSF-UM-ESTUDO-COMPARATIVO-ENTRE-BIBLIOTECAS-DE-COMPONENTES> Universidade Tiradentes. Aracaju, 2008. Acesso: 07 Nov. 2009.

ECLIPSE. Eclipse.org home. Disponível em: <http://www.eclipse.org>. Acesso em: 05 nov. 2009.

ECLIPSELINK. EclipseLink JPA. Disponível em: <http://www.eclipse.org/eclipselink/jpa.php>. Acesso em: 05 nov. 2009.

EJB. Enterprise Java Beans Technology. Disponível em: <http://java.sun.com/products/ejb/ > Acesso: 05 Nov. 2009.

EMBARCADERO. Delphi from Embarcadero | RAD Application Development Software. Disponível em: <http://www.embarcadero.com/products/delphi>. Acesso em: 03 nov. 2009.

FAZENDA, Ministério da. Projeto Nota Fiscal Eletrônica. Manual de Integração - Contribuinte. Disponível em: <http://www.nfe.fazenda.gov.br/portal/docs/Manual_NFe_V400_2009-09-21.pdf>. Acesso em: 06 nov. 2009.

FAZENDA, Secretaria da. Conhecimento de Transporte Eletrônico de Cargas. Manual de Integração do Contribuinte. Disponível em: <http://www.fazenda.sp.gov.br/cte/downloads/Manual_CTe_v103.pdf>. Acesso em: 02 nov. 2009.

FERREIRA, Wandry Mundin. NF-e (Nota Fiscal Eletrônica) - Informações sobre integração de softwares com a nota fiscal eletrônica. Disponível em: <http://www.unimake.com.br/uninfe/downloads/ArtigoNFe.pdf>. Acesso em: 05 nov. 2009.

FILHO, Júlio César Araújo Galvão. Desenvolvimento de um protótipo de plataforma tecnológica para sistemas comerciais em ambiente Java. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) - Universidade Estadual do Centro-Oeste, Guarapuava, 2009.

FRANTZ, Rafael Zancan. Enterprise JavaBeans 3.0. Disponível em: <http://www.j2eebrasil.com.br/mostrar/101>. Acesso em: 02 nov. 2009.

Page 22: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

ICESOFT. ICEFaces Open Source Ajax, JSF Java Framework. Disponível em: http://www.icefaces.org. Acessado em 11 de abril de 2009.

IONICS. PAF-ECF, A IONICS esta pronta para seus clientes também. Disponível em: <http://www.ionics.com.br/paf/> Acesso: 12 Nov. 2009.

JBOSS. Community driven open source middleware. - JBoss Community. Disponível em: <http://www.jboss.org>. Acesso em: 05 nov. 2009.

JEE. Java EE Technologies at a Glance. Disponível em: <http://java.sun.com/javaee/technologies>. Acesso em: 04 nov. 2009.

KUROSE, James F. Redes de Computadores e a Internet: uma abordagem top-down. 3. ed. São Paulo: Pearson Addison Wesley, 2006.

NEOGRID, Notícias. Conhecimento de Transporte Eletrônico. Disponível em: < http://www.neogrid.com/nfe/noticias.php?p=3&nt=144 > Acesso: 08 Nov. 2009.

PONTE, Rafael. Utilizando Ajax com JSF de maneira eficiente. Disponível em: <http://www.rponte.com.br/2008/04/10/utilizando-ajax-com-jsf-de-maneira-eficiente/ > Acesso: 04 Nov. 2009.

SAP. Crystal Reports for Eclipse. Disponível em: <http://www.sap.com/solutions/sapbusinessobjects/sme/reportingdashboarding/reporting/eclipse/index.epx>. Acesso em: 05 nov. 2009.

SCHLICKMANN, Raquel. Aplicação da arquitetura multicamadas utilizando Java. 1999. 97 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) - Universidade Regional de Blumenau, Blumenau, 1999. Disponível em: <http://www.inf.furb.br/tcc/index.php?cd=6&tcc=443>. Acesso em: 03 nov. 2009

SUN, Microsystems. Developer Resources for Java Technology. Disponível em: http://java.sun.com. Acesso: 11 nov. 2009.

Page 23: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

9. Anexos

10. Telas: Funcionalidades Básicas

11. Telas: Sistema Java

Figura 1 – Tela de Operações CRUD

Figura 2: Tela Home Sistema Java

Page 24: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 3 - Tela Consulta de Documento Fiscal

Figura 4 - Tela Configuração de Empresa Emitente

Page 25: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 5 - Tela Configuração de Parâmetros de Emissão

Figura 6 - Tela Visualização de Certificados Digitais Ativados

Page 26: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 7 - Tela Configuração de Certificado Tipo A1

Figura 8 - Tela Configuração de Certificado Tipo A3

Page 27: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 9 - Tela Visualização da Transmissão de Documento

Figura 10 - Tela Visualização de Documentos Transmitidos

Page 28: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 11 - Tela Download do arquivo XML

Figura 12 - Tela de Inutilização de Documento

Page 29: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

12. Telas: Sistema Delphi

Figura 13 - Tela de Transmissão de NF-e

Page 30: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 14 - Tela Consulta e Inutiliza NF-e

Page 31: Desenvolvimento de um protótipo de uma arquitetura funcional em JEE como modelo para a integração e conversão de sistemas comerciais voltado ao  front-end

Figura 15 - Tela Configurações de Transmissão de NF-e