Modelo de TCC - ??Web viewModelo de documento digital do programa MS Word disponvel em . ... TCC, ABNT, monografia

Download Modelo de TCC -   ??Web viewModelo de documento digital do programa MS Word disponvel em  . ... TCC, ABNT, monografia

Post on 05-Apr-2018

217 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

Modelo de TCC

1

Universidade Federal de Santa Catarina

Curso de Bacharelado em Sistemas de Informao

Integrao de Bibliotecas Java em Aplicao Desenvolvida com o Framework Ruby on Rails

Autores

DANNY PEREIRA MATTOSFRANCIS NOVELLO SANTOS

Orientador(a): FRANK AUGUSTO SIQUEIRA, DR.

Florianpolis, 14 de maio de 2009.

Integrao de Bibliotecas Java em Aplicao Desenvolvida com o Framework Ruby on Rails

Trabalho de concluso de curso apresentado como requisito parcial para obteno do ttulo de Bacharel em Sistemas de Informao pela Universidade Federal de Santa Catarina

Prof. Frank Augusto Siqueira - Orientador

DANNY PEREIRA MATTOS

FRANCIS NOVELLO SANTOS

Integrao de Bibliotecas Java em aplicao desenvolvida com o framework Ruby on Rails

Trabalho de concluso de curso apresentado como requisito parcial para obteno do ttulo de Bacharel em Sistemas de Informao pela Universidade Federal de Santa Catarina

___________________________________

Orientador: Prof. Frank Augusto Siqueira, Dr.

Universidade Federal de Santa Catarina

frank@inf.ufsc.br

Banca examinadora

___________________________________

Prof. Antnio Carlos Mariani

Universidade Federal de Santa Catarina

a.c.mariani@inf.ufsc.br

___________________________________

Prof. Leandro Jos Komosinski, Dr.

Universidade Federal de Santa Catarina

leandro@inf.ufsc.br

Sumrio

6Lista de figuras

7Lista de tabelas

101 Introduo

101.1 Motivao

111.2 Objetivos do Trabalho

111.3 Justificativa

121.4 Metodologia

121.5 Organizao do texto

132 Comparao entre as Linguagens de Programao Java e Ruby

132.1 Ruby

142.2 Java

152.3 Diferenas bsicas entre as linguagens

173 O Framework Ruby on Rails

173.1 Principais Caractersticas

183.2 Origem

183.3 Componentes

193.4 Conceitos

203.5 Escalabilidade

213.6 Uso do Padro MVC (Model-View-Controller) no Rails

224 Integrao de cdigo fonte ruby e java utilizando o interpretador JRuby

244.1 Spring Framework

254.2 Java Message Service (JMS)

275 Arquitetura da aplicao

285.1 Camada Model (Modelos)

295.2 Camada Controller (Controladores)

295.3 Camada View (Visualizao)

326 A bibliotecas da linguagem java utilizadas na aplicao

326.1 APIS para processamento de XML em Java

346.2 API StAX

366.3 API JNA

366.4 APIS JBoleto e JBarCodeBean

386.5 API iText

407 Desenvolvimento da Aplicao

407.1 Aplicao

427.2 Gerao da estrutura inicial da aplicao no padro MVC utilizando o Rails

427.3 Integrao com a API StAX

467.4 Integrao com a API JNA

477.5 Autenticao com JNA

487.6 Obteno do Status do Servidor com JNA

487.7 Integrao com as APIS JBoleto, JbarCodeBean e iText

528 Concluso

538.1 Objetivos alcanados

538.2 Trabalhos futuros

55Referncias Bibiogrficas

lista de figuras

Figura 1: Modelo MVC do Ruby on Rails.

Figura 2: Mdulo para integrao do Spring.

Figura 3: Controlador do Ruby acessando um bean do Spring.

Figura 4: Arquitetura do Ruby on Rails

Figura 5: Diagrama de Classes da aplicao

Figura 6: Fluxo Principal da Aplicao. Mostra o caminho percorrido pelo usurio ao adquirir um produto em nossa loja virtual e quais linguagens e APIs esto sendo utilizadas nas principais etapas processo.

Figura 7: Fluxo da parte administrativa da aplicao. Demonstra as aes possveis para um administrador do sistema e quais as linguagens e APIs utilizadas em cada funcionalidade.

lista de tabelas

Tabela 1 Tabela comparativa entre as APIs de processamento de XML em Java.

Tabela 2 Tabela com algumas classes do JBoleto.

RESUMO

A crescente demanda por novas aplicaes fez com que a agilidade e a simplicidade se tornassem peas fundamentais no processo de desenvolvimento de software.

Ruby surgiu como uma linguagem de programao extremamente prtica e, juntamente com o framework Ruby on Rails, formou uma das mais poderosas e geis tecnologias de desenvolvimento, despertando o interesse de um grande nmero de desenvolvedores que passaram a estud-la e acompanhar sua evoluo.

Recentemente, a sua capacidade de integrao com a linguagem Java atravs do interpretador JRuby (uma das linguagens mais utilizadas atualmente) fez com que grande parte dos recursos e bibliotecas desta linguagem pudessem ser adicionados no cdigo Ruby, objeto deste trabalho.

ABSTRACT

The raising demand for new applications turn agility and simplicity as fundamental pieces in the process of software development.

Ruby appears as a programming language extremely practice and, with its framework Ruby on Rails, become one of the most powerful and agile development technologies, raising the interest of a great number of developers that started to study and see its evolution.

Recently, its integration capacity with the Java Language through his interpreter JRuby (one of the most used programming languages in the last years) makes that great part of the resources and libraries of this language could be added to the Ruby code, object of this work.

1 Introduo

1.1 Motivao

A linguagem de programao Java tem se apresentado, nos ltimos anos, como uma das principais linguagens de programao utilizadas pelos desenvolvedores em todo o mundo, segundo TIOBE Programming Community Index (JANSEN, 2008). Com isso, tambm foi crescente o desenvolvimento de bibliotecas teis na linguagem que facilitaram as necessidades bsicas e avanadas no desenvolvimento de sistemas.

A linguagem Ruby, diferentemente do Java, uma linguagem de programao interpretada (MATSUMOTO, 1995), com tipagem dinmica e forte, totalmente orientada a objetos (enquanto Java uma linguagem mista que aproveita conceitos da programao estruturada e orientada a objetos). Foi criada pelo japons Yukihiro Matsumoto, que aproveitou as melhores idias das outras linguagens da poca, procurando criar uma linguagem intuitiva, de codificao rpida.

Com o surgimento do framework Ruby on Rails, a linguagem Ruby ganhou grande repercusso e muitos especialistas comearam a apont-la como concorrente ou sucessora da linguagem Java na preferncia entre os programadores (SALVADOR, 2008). Ciente disso, a Sun Microsystems contratou os dois desenvolvedores que estavam trabalhando no interpretador do Ruby para a linguagem Java o JRuby, que ainda era muito instvel (o interpretador clssico, e ainda mais utilizado, escrito em C) - para trabalharem em tempo integral neste projeto dentro da prpria Sun, e anunciou o Ruby como linguagem de primeira classe da plataforma Java a partir da verso 7.

Por essas caractersticas, podemos supor que a linguagem Ruby passar a ser cada vez mais utilizada para o desenvolvimento de aplicaes Web, e a sua integrao com as bibliotecas do Java, sua sintaxe amigvel e simples e sua agilidade, adquirida com o framework Rails, trar um mundo de novas possibilidades, onde a simplicidade a palavra de ordem.

1.2 Objetivos do Trabalho

O escopo do trabalho engloba as linguagens de programao Ruby e Java, o Framework Ruby on Rails e a integrao de bibliotecas da especificao Java linguagem Ruby, utilizando o framework Ruby on Rails e o JRuby (interpretador Ruby para o bytecode Java). Exclui-se do escopo o estudo da integrao em outros ambientes e arquiteturas.

O objetivo principal desse trabalho integrar, a um sistema desenvolvido em Ruby e gerado pelo framework Rails, bibliotecas da especificao Java que contenham funcionalidades que no existam na linguagem Ruby ou que sejam mais robustas ou interessantes de serem utilizadas em uma arquitetura Java (em sistema rodando sob a Mquina Virtual Java - JVM).

Para a realizao desse objetivo, devermos tratar, mais especificamente, cada um dos seguintes pontos:

Realizar um estudo comparativo entre as linguagens Ruby e Java;

Realizar um estudo do framework Ruby on Rails;

Desenvolver um sistema web em linguagem Ruby gerado a partir do Rails, utilizando o JRuby (interpretador escrito em Java), e implant-lo em um servidor Java;

Integrar algumas bibliotecas da especificao Java a este sistema.

1.3 Justificativa

Ao longo dos ltimos anos as equipes de desenvolvimento que trabalham com a linguagem Ruby tm encontrado dificuldades na integrao de algumas bibliotecas da linguagem Java (tanto das especificaes JavaSE standard edition - como JavaEE enterprise edition) linguagem Ruby em uma arquitetura Java (o interpretador JRuby levou sete anos, de 2001 a 2008 para ter uma verso estvel, sendo que os principais desenvolvedores tm trabalhado dentro da prpria Sun desde 2006).

Diante deste cenrio apresentado, justifica-se um trabalho de pesquisa que procure compreender melhor a integrao entre as duas linguagens dentro de um ambiente Java e que procure solues para alguns dos problemas ainda enfrentados pelos desenvolvedores Ruby na utilizao de bibliotecas do Java.

1.4 Metodologia

Utilizaremos o ambiente de desenvolvimento NetBeans que, a partir da verso 6, oferece extenso suporte ao desenvolvimento com Ruby on Rails. Neste ambiente desenvolveremos uma aplicao utilizando a linguagem Ruby utilizando o Ruby on Rails e demonstraremos a insero de funcionalidades de bibliotecas com cdigo Java, a esta aplicao, culminado com a implantao desta aplicao em um servidor Java.

1.5 Organizao do texto

Ao longo deste trabalho abordaremos, primeiramente, cad