Você está na página 1de 28

UNIVERSIDADE DO CONTESTADO

CURSO DE SISTEMAS DE INFORMAÇÃO

ALISSON MÜLLER MEDEIROS

JAVA VOLTADO A SISTEMAS INTEGRADOS DE GESTÃO

CANOINHAS
2010
ALISSON MÜLLER MEDEIROS

JAVA VOLTADO A SISTEMAS INTEGRADOS DE GESTÃO

Projeto apresentado para a disciplina de TCC


02, do curso de Sistemas de Informação, da
Universidade do Contestado, no 8º semestre de
2010, sob orientação do professor Jeferson
Knop

CANOINHAS
2010
SUMÁRIO
1 INTRODUÇÃO..........................................................................................................5
1.1 TEMA..................................................................................................................5
1.2 APRESENTAÇÃO .............................................................................................5
1.3 PROBLEMA.......................................................................................................6
1.4 JUSTIFICATIVA..................................................................................................7
1.5 OBJETIVOS.......................................................................................................8
1.5.1 Objetivo Geral.............................................................................................8
1.5.2 Objetivos específicos..................................................................................8
2 PROCEDIMENTO METODOLOGICO......................................................................9
3 PLANO DE METAS.................................................................................................10
4 SISTEMAS INTEGRADOS DE GESTÃO (ERP)....................................................11
4.1 O QUE É ERP..................................................................................................11
4.2 HISTÓRIA DO ERP..........................................................................................11
4.3 O MERCADO DE ERP.....................................................................................11
4.4 CARACTERÍSTICAS.......................................................................................12
4.4.1 Contabilidade ...........................................................................................12
4.4.2 Plano de Contas.......................................................................................12
4.4.2.1 Ativo..................................................................................................12
4.4.2.2 Passivo..............................................................................................13
4.4.2.3 Despesas...........................................................................................14
4.4.2.4 Receitas.............................................................................................14
4.4.3 Custos......................................................................................................14
4.4.3.1 RKW..................................................................................................15
4.4.3.2 Custos Standart.................................................................................15
4.4.3.3 Custos...............................................................................................15
4.4.4 Compras...................................................................................................15
4.4.5 PCP (Planejamento e Controle de Produção)..........................................15
4.4.6 Faturamento..............................................................................................15
4.4.7 Livros Fiscais...........................................................................................15
4.4.8 Financeiro.................................................................................................15
4.4.9 Folha de Pagamento...............................................................................16
4.4.10 ERP Vertical............................................................................................16
4.5 BI BUSINESS INTELLIGENCE.......................................................................16
4.5.1 Data Warehouse......................................................................................16
4.6 SUPPLY CHAIN MANAGEMENT...................................................................16
4.7 METODOLOGIAS DE IMPLEMENTAÇÃO.....................................................16
5 ORIGEM DO JAVA E O CONCEITO MULTIPLATAFORMA.................................17
5.1 FUNDAMENTOS DO JAVA.............................................................................17
5.1.1 Ideia Multiplataforma................................................................................19
5.2 CARACTERISTICAS DO JAVA.......................................................................19
5.3 MAQUINA VIRTUAL........................................................................................21
5.3.1 JVM (Java Virtual Machine)......................................................................22
5.4 GARBAGE COLLECTOR (GERENCIADOR DE RECURSOS DA MEMÓRIA)
.................................................................................................................................22
5.4.1 Funcionamento do gerenciador de memória............................................23
6 Arquitetura em Camadas......................................................................................25
6.1 Histórico...........................................................................................................25
6.2 Arquitetura 2 Camadas....................................................................................25
6.3 Arquitetura 3 Camadas (MCV).........................................................................25
6.4 Arquitetura 4 Camadas....................................................................................25
7 CRONOGRAMA......................................................................................................26
5

1 INTRODUÇÃO

1.1 TEMA

JAVA VOLTADO A SISTEMAS INTEGRADOS DE GETÃO

1.2 APRESENTAÇÃO

Os Sistemas Integrados de Gestão que já possuem amplo espaço no


mercado, apresentam uma expansão. O que era só para as grandes empresas está
sendo disseminado para as pequenas e médias. O mercado exige cada vez mais
inovação, devido ao grande número de desenvolvedores e a popularização de novas
tecnologias. Com clientes dos mais variados tipos e metodologias que buscam
soluções, a qual é oferecida em conjunto com uma consultoria tanto de gestão como
tecnológica.
6

1.3 PROBLEMA

Com o agrupamento de todos os processos de uma empresa em um único


Sistema, surgi o conceito de pacotes de gestão, o qual engloba as melhores práticas
do mercado, independente de plataformas e dispositivos.

O Sistemas Integrados de Gestão necessita de diversas ferramentas para seu


desenvolvimento. Web Services, Desktop e dispositivos móveis utilizam ferramentas
distintas, tornando o procedimento da manutenção de código e integração da equipe
instável. Devido a cada membro da equipe focar uma ferramenta, o deslocamento,
ruptura, remoção... de um destes pode gerar dificuldades, sendo que a
especialidade de cada pode comprometer o trabalho do todo, devido ao
desmembramento do grupo.

Com a distribuição de dispositivos móveis e acesso a internet, as bases de


dados são abastecidas por vários meios. Cada meio é uma forma de acesso ao
dado, o qual passa por alguns caminhos até ser globalizado. A partir disso
pensamos em mensurar até que ponto é possível a criação de um software de
sistema de Gestão Integrada que utilize a mesma ferramenta para cada plataforma
em uma única base de dados?
7

1.4 JUSTIFICATIVA

Os Sistemas Integrados de Gestão ganham cada vez mais espaço, a


multinacional SAP em 2005 contava com 700 clientes, sua meta para 2010 é de 7
mil clientes. Isso atesta a expansão e o aumento de setores da economia agrupados
pelo mercado. As equipes de desenvolvimento crescem e os problemas também.
Por usar mais que uma ferramenta gera a necessidade de profissionais abranjam
conhecimento nas quais são utilizadas. Com as mais diversas ferramentas a
manutenção de código gera procedimentos gigantescos. Utilizando de uma mesma
ferramenta e a Orientação a Objetos isso pode ser diluído. Java oferece a solução
para o problema, o mesmo código pode ser usado em diversas plataformas o que
torna o processo de manutenção de código melhorada.

As informações podem ser acessadas de várias formas, para que possa


sempre estar atualizada. Utilizar de uma única base de dados, as informações
sempre estarão disponíveis e seguras para serem utilizadas. Através de ferramentas
que integrem as formas de acesso com o Banco de Dados, cada forma sendo
adequada a plataforma pela qual será utilizada.
8

1.5 OBJETIVOS

1.5.1 Objetivo Geral

•Estudar a estrutura da plataforma Java com seus recursos voltados ao conceito


de Sistemas de Gestão Integrada, tanto para aplicações web, desktop e móvel,
integradas a uma única base de dados.

1.5.2 Objetivos específicos

•Analisar o conceito de Sistemas Integrados de Gestão, seu histórico e


metodologias de implementação.

•Realizar estudo sobre Java, para aplicações desktop, web e moveis, e analisar
meios de integração entre as plataformas.

•Estudar as metodologias de desenvolvimento em camadas para Sistemas


Integrados de Gestão.

•Estudar formas de gerencia de Banco de Dados com aplicações distribuídas e


as respectivas trocas de arquivos.

•Demonstrar através da Análise, Projeto e Desenvolvimento de um protótipo das


tecnologias estudadas.
9

2 PROCEDIMENTO METODOLOGICO

Pretende-se realizar o trabalho utilizando-se os métodos descritos a seguir:

• Fazer um levantamento bibliográfico, na internet, em livros, em revistas,


artigos científicos clássicos e atuais relacionados ao tema. Este levantamento
continuará ao longo de todo o desenvolvimento do trabalho;

• Construir o histórico da plataforma Java, descrever as principais


características de tecnologia, linguagens de programação e conectividade
com o banco de dados.

• Elaborar analise do Mercado, história, conceito dos Sistemas Integrados de


Gestão e um pouco sobre sua implantação.

• Verificar a viabilidade do desenvolvimento em camadas, seus benefícios e os


resultados.

• Após a elaboração teórica do trabalho, será desenvolvido como estudo de


caso um aplicativo sob cada plataforma, visando a conclusão dos objetivos
práticos, e analisando se é possível integrar as ferramentas dentro de uma
mesma ferramenta.

A característica do projeto, é um estudo do desenvolvimento de um Sistema


Integrado de Gestão através de Java e utilizando camadas.
10

3 PLANO DE METAS

• Capítulo 01: Conceito de Sistemas Integrados de Gestão Servidores;


Evolução ao longo dos anos; Mercado, Conceito e Implantação;

• Capítulo 02: Origem do Java; A ideia de um ambiente multiplataforma;


Maquinas Virtuais; Gerenciamento de memória (Garbage Colletor);

• Capítulo 03: Desenvolvimento em Camadas; As vários metodologias de


desenvolvimento; O que é apresenta melhores Resultados;

• Capítulo 04: Banco de Dados Distribuídos: Integração de base de dados;


Estruturas XML;

• Capítulo 05: Demonstrativo Prático: Gráficos analisando o desempenho de


carregamento de dados de cada aplicativo implementado; Tabela comparando
os principais pontos importantes de cada plataforma; Conexão a banco de
dados;

• Capítulo 06: Conclusão;


11

CAPITULO I

4 SISTEMAS INTEGRADOS DE GESTÃO (ERP)

4.1 O QUE É ERP


Para Haberkorn(2003) ERP – Enterprise Resouces Planning ou Planejamento
dos Recursos da Empresa é o nome dado a solução que integra todos os recessos
de uma empresa, sejam eles contábeis, financeiros, de estoque, custos, compras,
produção, entre outros de forma informatizada.

M o v im e n t a ç ã o d e
F o r n e c e d o r B a n c o
T í t u lo s
S ig a E D I F o l- lU o Pw
F o r n e c e d o r

L a n ç a m e n t o s
R e c e b im e n t o d e A t iv o F ix o
C o n t a s a P a g a r A u t o m a t iz a d o s
M e r c a d o r ia s
P e d id o d e
C o m p r a s

L iv r o s F is c a is C o n t r o le d e L a n ç a m e n t o s
Q u a li d a d e
S im u la ç ã o
C o t a ç ã o
F in a n c e ir a

F lu x o
D e
C a ix a
E s t o q / uM e C M P
I m p o r t a ç ã o S o li c it a ç ã o d e
S I S C O M E X C o m p r a s

O r ç a m e n t o

R e q u is iç õ e s
C o n t r a t o d e O r d e n s d e
M R P I
F o r n e c im e n t o P r o d u ç ã o
P o n t o E le t r o n ic o
M a n u t e n ç ã o S im u la ç ã o P r e ç o
I n d u s t r ia l d e V e n d a

P r e v is ã o d e C h ã o d e F a b r ic a
V e n d a s M R P I I
F o lh a d e
P a g a m e n t o
C u s t o s

E s t a t is t ic a
C o le t o r C o n t a b il id a d e
E le t r ô n ic o

P r o d u ç ã o C u s t o s
I n d ir e t o s
P C P

S I G A E I S
F a t u r a m e n t o R a z ã o
E s t o q u e d e D a t a W a r e H o u s e
C M+ V B a la n c e t e
P r o d u t o A c a b a d o W o r k F lo w
C o n s u lt a B a n c o M a r g e m B r u t a D iá r io
R e s u lt a d o s
C lie n t e d e I n f o r m a ç õ e s

L ib e r a ç ã o
C o n t r a t o d e L ib e r a ç ã o d e D u p lic a t a s M o v im e n t o d e
E s t o q u e F a t u r a m e n t o B a n c o
F o r n e c im e n t o C r é d it o R e c e b e r T it u lo s

T E F
12

4.2 HISTÓRIA DO ERP

Segundo Haberkorn(2003) a sigla ERP chegou ou Brasil entre a década de 80


e 90 devido a instalação de empresas estrangeiras do setor. A origem da sigla é
bastante curiosa. As primeiras grandes aplicações comerciais, ainda na época dos
mainframes, em 1960, fui um sistema nomeado MRP I – Material Requirement
Planning, o qual calculava basicamente a necessidade de compra de matérias-
primas e a produção de componentes a partir de previsão de vendas e uma situação
de estoque. Mesmo com o elevado custo para sua implantação já mostrava resultar
em diminuição dos custo em relação ao processo manual.
Isto, em grandes fábricas, com grandes quantidades de produtos acabados,
inúmeros níveis de componentes, cada um formado por um conjunto de matérias
primas e utilizando quantidades diferentes. Mas, se por um lado o MRP informa o
que deve ser produzido e comprado, por outro ele não diz como. E como quem dá a
missão deve fornecer os meios, surgiram a seguir, já na década de 70, os sistemas
MRP II.
A sigla igual é mera coincidência, daí a diferenciação pelo ordinal I e II. MRP II
significa Manufactoring Resiurces Planning, traduzindo Planejamento dos Recursos
da Manufatura. Com o MRP II é possível saber quem vai produzir, quando e com
quais recursos, ou seja, a fábrica é alocada minuto a minuto, operação a operação
de acordo com um calendário pré-definido e um conjunto de recursos disponíveis.
Mas uma empresa não é constituída somente por maquinas e materiais. Tanto
o dinheiro como o pessoal fazem parte. O dinheiro é controlado pelos módulos
financeiros e contábil e gente pelos sistemas de RH. A integração entre todos eles
consiste nos Sistemas Integrados de Gestão.

4.3 O MERCADO DE ERP

4.4 CARACTERÍSTICAS

4.4.1 Contabilidade

Para Haberkorn(2003) é importante destacar que a contabilidade exerce um


papel fundamental em um sistema ERP, pois é para lá que convergem todos os
dados que de alguma forma alteram o patrimônio de uma empresa.
Através dos lançamentos são alimentadas as contas e o estoque. Alterando
quantidades e acrescendo duplicatas, abastecendo todo o sistema e em
consequência valores de custo. Com isso preços de produtos são revistos e
13

duplicatas aparecem no financeiro.

4.4.2 Plano de Contas

As contas necessitam ser descritas para possibilitar um bom levantamento, e


não estáticas para que não possa levantar a origem de seus valores. Segundo
Haberkorn(1999) Dividissem em quatro grandes grupos: Ativo, Passivo, Despesas e
Receitas.

4.4.2.1 Ativo

Dentro do Ativo, vem em primeiro plano o Circulante a Curto Prazo, Caixa e


Bancos devem ser atribuídos por conta bancária, devido a cada uma ter um extrato
diferente. Dentro da conta Bancos temos ainda vários tipos: Conta Movimento, é
vinculada a saques e depósitos. Incluísse também contas de aplicações financeiras
e 13° salário.
A Seguir temos a conta Duplicatas a Receber, que descriminada por clientes
controlada individualmente pelo financeiro. Neste grupo temos as Contas Redutoras
que reduzem o valor da “conta-pai”. Temos Também a conta Provisão para
Devedores Duvidosos consistindo em fazer uma reserva mensal para amenizar
possíveis calotes.
Continuando no Circulante, temos Outros Créditos de alta liquidez tais como
promissórias a Receber, Cheques Pré-datados, Juros a Receber, Créditos de
Funcionários. Outra conta normalmente atribuída no Circulante é o Impostos a
Recuperar(ICMS e IPI). Nela, debita-se o imposto recuperado nas compras de
matéria-prima, já que os itens entram no estoque pelo valor liquido, ou seja,
subtraindo-se os impostos recuperados. No passivo é colocada a conta de impostos
a pagar, contrapartida das despesas. Posteriormente se paga à diferença.
Encerrando o Circulante temos as contas de Estoque. Estas devem estar
absolutamente coerentes com a classificação dos itens cadastrados. Entrando no
Realizável, o qual classificam-se valores depositados em investimentos mobiliários
de difícil liquidez.
No Ativo, temos o grupo Ativo Permanente, que na sua parte mobiliária se
confunde com o Realizável e nele podemos colocar investimentos feitos em
empresas do próprio grupo, patentes e marcas. Já os Ativos Imobilizados
representam terrenos, edificações, instalações, veículos, móveis e utensílios. Como
conta redutora temos Depreciação Acumulada dos itens que sofrem desgastes com
o tempo, um detalhe dessa conta é que ela não gera saída do caixa. E por isso
aparece como entrada, somando ao lucro, no mapa de Origens de Recursos e
Aplicações.
14

4.4.2.2 Passivo

O passivo reflete o Ativo, porém voltado a fornecedores e compras. O ativo é


voltado a Clientes e vendas.
O passivo é dividido em Passivo Circulante, extinguível a longo prazo e
patrimônio Líquido. Vale aqui o mesmo argumento, mencionado em clientes, para a
conta fornecedores. Pode ser sumarizado em uma conta, já que no Financeiro o
controle é individualizado.
O Patrimônio Líquido, ou seja o Ativo menos o Exigível, é constituído pelo
Capital, Reservar e os Lucros Suspensos e do Exercício.
As Reservas são oriundas de valores lançados em despesas ou ativos
pendentes com o propósito de reduzir-se o lucro e a conseqüente distribuição,
retendo-se o recurso para uma determinada finalidade. Reserva para aumento de
capital, reserva legal, reserva para compra de um imóvel, são exemplos que
aparecem em balanços publicados.

//Citação
Página 12 passivo

O Lucro dos Exercício é parte distribuído aos acionistas através


de dividendos e parte transferido para lucros Suspensos.
O Lucro Suspenso representa a resultado da empresa não
distribuído aos acionistas. Tanto as Reservas como o Lucro Suspenso são
depois, por decisão de assembléia, transferidos para uma conta Capital,
sacramentando assim o aumento do valor da empresa. Uma parcela
proporcional desse valor representa cotação de uma ação no mercado da
Bolsa de Valores.
Este é um modelo do plano de contas sugerido pelo SIGA
Advanced. Adequa-se perfeitamente ao esquema de Lançamentos
Contábeis Automáticos. Nada Impede, porém, que a empresa adote outros
princípios. (Haberkrn, et al., 1999 p. 13)

O passivo reflete o Ativo, porém voltado a fornecedores e compras. O ativo é


voltado a Clientes e vendas.

4.4.2.3 Despesas

Para Haberkorn(1999) as Contas Despesa são divididas em 4 grandes


grupos Custos da Mercadoria Vendida, Despesas Gerais de Fabricação,
Administrativas e Vendas.
15

O Custo da Mercadoria Vendida absorve os custos de Matéria prima e todas


as Despesas Gerais de Fabricação. Já as Despesas Administrativas e de Vendas
são subtraídas diretamente do resumo. No caso Despesas Gerais de Fabricação, se
divide me Gastos com Pessoal, Gastos com Fabricação e Gatos Gerais. Em Gastos
com pessoal consideram-se todas as despesas com salário, horas extras e demais
despesas e encargos. Nos Gastos Gerais considera-se o resto, energia elétrica,
água, esgoto, materiais de consumo... etc. Os Gastos Gerais de Produção
contabilizam gastos fixos e variáveis ou diretos. Enquanto a matéria prima é um
custo tipicamente variável as despesas administrativas são tipicamente fixas.
A Contribuição Marginal é basicamente o valor que a empresa ganha se
produzir uma peça a mais. O fato gerador das despesas é a emissão do documento
que torna obrigatório seu pagamento. Os documentos lançados no sistemas só
podem ser quitados mediante seu pagamento. Existe dois regimes para fazer sua
contabilização: Regime de Competência e Regime de Caixa. Regime de
Competência é o resultado das contas que serão pagas e contabilizadas no seu
respectivo mês. Regime de Caixa contabiliza as despesas mediante seu pagamento.

4.4.2.4 Receitas
// pesquisar

4.4.3 Custos
O Modulo de Custo é totalmente integrado à contabilidade. Este sem duvida
é um grande problema para as empresas não só pela inflação, mas pelas margens
de que cada vez ficam menores em função acirrada concorrência global. O custo
pode ser visto sob diferentes óticas. Uma delas, o custo de reposição ou standart,
com base em valores atualizados e quantidade padrão de cada componente.
O custo real pode ainda ser calculado em moeda forte, para inibir os efeitos
da inflação. Para o calculo do custo de reposição ou standart, este é baseado na
estrutura do produto e sua implantação permite não somente o calculo como
também o uso do MRP I e II, as variações de consumo de matéria-prima e eficiência
da mão-de-obra, a determinação dos preços de vendas e a tomada de decisão
sobre o processo da fabricação de determinado item.

4.4.4 Compras

Segundo Harberkorn(2003) o objetivo da informatização do processo de


Compras é suprir automaticamente o estoque com base em critérios pré-
estabelecidos e flexíveis o suficiente para atender as bruscas mudanças que
ocorrem na previsão de vendas. Existem vários métodos para definir o que, quando
e quanto deve ser comprado de cada item dentro de um determinado período.
Uma metodologia recomendada é o MRP I ( Material Requirement Planning
16

ou Planejamento das Necessidades de Materiais). Essa Técnica parte de um plano


de produção enquadrando as vendas e pedidos já encomendados. O futuro é
dividido em períodos que podem ser dias, semanas, meses e anos. O MRP I
consiste em projeções de saldos de estoque baseados em rotinas o sistema calcula
as necessidades.

4.4.5 PCP (Planejamento e Controle de Produção)

O PCP (Planejamento e Controle de Produção), por sua vez, parte do


cálculo das necessidades de cada item a ser produzido (MRP I) e emite as
respectivas ordens de produção, em conjunto com roteiro de operações de carga-
máquina (MRP II Planejamento dos Recursos de Manufatura). Uma rotina simples
porém cheia de dispositivos que atendem toda a dinâmica existente em uma fabrica.
Máquinas e mais máquinas executando as mais variadas operações com um
calendário repleto de horas extras, fins de semana, feriados, greves, ausências,
entre ouras possíveis variações.
O roteiro de operações é definido para cada componente. Informa-se para
cada operação o recurso que ela utiliza, inclusive os alternativos, a ferramenta, a
duração, a descrição, o tamanho do lote padrão e o tempo de setup. O sistema
efetua a alocação dos recurso de forma otimizada programando a fabrica minuto a
minuto, operação a operação sejam tomadas no sentido de evitar os tão usuais
transtornos ocorridos no dia-a-dia de uma manufatura.

4.4.6 Faturamento
O faturamento é uma área onde normalmente há necessidade de fortes
adaptações e é sem dúvida o setor onde sempre existem diferença entre as
empresas. É a condição de pagamento, a política de reajuste de preços e
descontos, o pagamento de comissões, a legislação especifica de ICMS e IPI.
De qualquer forma, todas as exceções apresentadas devem ser
incorporadas ao sistema de modo que apenas a notal fiscal precise ser programada
de forma específica. O módulo de faturamento controla a carteira de pedidos,
administra a liberação pelo crédito e pelo estoque de forma automática e emite todos
os relatórios necessários para o setor de vendas, além de gerar os títulos a receber,
com base na condição de pagamento estipulada no Pedido de Venda.

4.4.7 Livros Fiscais

Segundo Harberkorn (2003) o modulo fiscal existe para que se cumpra


nossa complexa legislação e é ele que se encarrega de emissão dos registros
17

4.4.8 Financeiro

O Modulo financeiro recebe muitas informações de outros módulos, como


título a pagar gerados em compras, os títulos a receber gerados no faturamento,
dados da folha de pagamento, imposto, aluguéis, empréstimo além de outros títulos
informados com o objetivo de manter o fluxo de caixa.
Outros procedimentos como transferência eletrônicas dos títulos para
bancos, e emissão automática de cheques, a geração de borderôs, a baixa
automática de títulos no vencimento, a tesouraria apenas se preocupa com a
estratégia adotada para os recursos financeiros.

4.4.9 Folha de Pagamento

4.4.10 ERP Vertical


Para Haberkorn(2003) os ERPs verticais apresentam todos os módulos de
convencionais e acresce-se específicos de determinados ramos de atividades.
Alguns Exemplos de verticalização: Automação Comercias, Sistemas de Apoio
Logístico, Gestão Educacional entre outros. Cada um apresenta características
especificas, os processos precisam ser mapeados e informatizados.

4.5 BI BUSINESS INTELLIGENCE

4.5.1 Data Warehouse

4.6 SUPPLY CHAIN MANAGEMENT

4.7 CRM – Customer Relationship Managemente


O CRM propõem o atendimento one-to-one onde as necessidades , desejos e
capacidade financeira passam a fazer parte das bases de dados, agora se propõem
ter mais informações que apenas o valor faturado e a data da ultima compra. Com
base nas informações pode se direcionar estratégias de marketing muito mais
dirigido e oficiente pois será feito com embasamento.
18

4.8 METODOLOGIAS DE IMPLEMENTAÇÃO


19

CAPITULO II

5 ORIGEM DO JAVA E O CONCEITO MULTIPLATAFORMA

Este primeiro capítulo será apresentado a origem do Java, seus conceitos e


características, a ideia de um ambiente multiplataforma, características da maquina
virtual, gerenciamento de memória.

5.1 FUNDAMENTOS DO JAVA

De acordo com DEITEL (2003), o Java iniciou a partir de 1991, foi projetado
por um grupo de engenheiros da Sun Microsystems, a qual criou uma filial
denominada First Person Inc., afim de gerenciar este projeto. Seu intuito era o
desenvolvimento de tecnologias de software para dispositivos eletrônicos como
aparelhos domésticos e depois também a televisão interativa.

Conforme PARGA (2005), a Sun necessitava de uma linguagem de


programação que fosse flexível e robusta, se tratando no que seria implantado, ou
seja, para estes tipos de equipamento era necessário gerar um código pequeno e
deveria possui interfaces mais intuitivas do que as existentes naquela época. Como
também viu se que não poderia ficar amarrado em uma só arquitetura específica,
seja nos diferentes tipos hardwares e sistemas operacionais.

Considerando facilidade de desenvolvimento e confiabilidade do código,


James Gosling, membro da equipe com mais experiência em linguagens de
programação, concluiu que as vantagens que contribuíam para a eficiência do C++
não compensavam o alto custo dos testes de depurações.

Segundo Gosling(1996) as linguagens em uso, C ou C++, devem ser


compiladas para um chip, e se há mudanças no chip, todo o software deve ser
compilado novamente. Isso encarece muito o desenvolvimento e o problema é
essencialmente apontado no campo da eletrônica de consumo.
20

Os engenheiros da Sun se basearam na linguagem C++ a qual era orientada


a objetos, analisando o que ela oferecia de melhor e corrigindo suas falhas.
Implementou se melhorias no gerenciamento oferecendo robustez e
interoperabilidade, assim construíram a linguagem Oak.

A Sun Microsystems financiou uma pesquisa corporativa interna com o


codinome Green em 1991. 0 projeto resultou no desenvolvimento de uma
linguagem baseada em C e C++ que seu criador, James Gosling, chamou
de Oak (carvalho) em homenagem a uma árvore que dava para a janela do
seu escritório na Sun. Descobriu-se mais tarde que já havia uma linguagem
de computador chamada Oak. Quando uma equipe da Sun visitou uma
cafeteria local, o nome Java (cidade de origem de um tipo de café
importado) foi sugerido e pegou. (Deitel, et al., 2003 p. 59)

O primeiro projeto que aplicou a linguagem Oak recebeu o nome de projeto


Green, este consistia em um sistema de controle completo de aparelhos eletrônicos
de uma casa. Para ele se construiu um ordenador experimental denominado *7 (Star
Seven). O sistema apresentava uma interface baseada na representação da casa de
forma animada e o controle era apresentado por meio de uma tela sensível ao tato.
Posteriormente, se aplicou a outro projeto denominado VOD(Video ON
Demand) no qual foi empregado como uma interface para televisão interativa.
Nenhum destes projetos transformou o em um sistema comercial, porém foram
desenvolvidos inteiramente em um Java primitivo.
De acordo com PARGA (2005), a First Person foi fechada em 1994 e já
quando tudo parecia ter sido definitivamente esquecido, Bill Joy, cofundador da Sun,
julgou que a Internet poderia chegar a ser um campo adequado para disputar
mercado e viu na Oak o instrumento ideal para enfim realizar seus planos. Após
trocar o nome e modificações de projeto, a linguagem Java foi apresentada à
sociedade em agosto de 1995.
De acordo com GOSLING (2005) a linguagem de programação Java foi
originalmente chamado Oak, sua utilização era em aplicações incorporadas ao
consumidor final, por James Gosling. Após vários anos de experiência com a
linguagem, e contribuições significativas por Ed Frank, Patrick Naughton, Jonathan
Payne, e Chris Warth foi reformulada à Internet. Com o avanço da World Wide Web
desde 1993, visando grande interesse para a Sun, e trazendo a partir de 1995 o
suporte java em um dos primeiros navegadores de internet através de interface
21

chamado Mosaic. A forma final da linguagem foi definida por James Gosling, Bill Joy,
Guy Steele, Richard Tuck, Frank Yellin, e Arthur van Hoff, com a ajuda de Graham
Hamilton, Tim Lindholm, e muitos outros envolvidos no projeto.

A enorme popularidade da World Wide Web ocorrida a partir de 1993, com o


surgimento dos browsers levou à reformulação do Java como uma linguagem para
incorporação em programas baseados em aplicações Web. Conforme Vernners
(1997), a Internet é uma rede mundial, e na WWW é a parte da rede que fornece
acesso multimédia a uma vasta gama de informações. Java tornou se uma das mais
importantes linguagens da web.

5.1.1 Ideia Multiplataforma

Desde quando a Sun iniciou o projeto green, que visava o desenvolvimento


de tecnologias de software para equipamentos domésticos, pensava em não ficar
dependente de um só ambiente operacional ainda mais produtos desta linha aos
quais possuía "n", tipos e modelos.

Necessitou um projeto detalhado para que, se desenvolvesse este modelo de


software. Mesmo o fracasso ocorrido no mercado escolhido, não desistiu se da ideia,
pois esta foi uma solução de grande importância para os aplicativos Web, das suas
primeiras aplicações por seu nome Applets, que poderia ser executado em qualquer
plataforma sem haver uma compilação especifica a cada hardware. Um passo
tecnológico no mercado de software, a qual a Sun Microsystems elencou sob o
Java.

5.2 CARACTERISTICAS DO JAVA

A tecnologia Java é uma ferramenta adequada para ajudá lo a enfrentar os


desafios e aproveitar as oportunidades apresentadas no mercado de
desenvolvimento emergente. Conforme Venners (1997), o seu papel original destina
22

como uma linguagem de programação para microprocessadores incorporados em


aparelhos consumidores, porém o Java foi projetado com uma série de outras
características interessantes.

Java é robusto, o que significa que os erros dos programas em Java não
causam falhas no sistema tão frequentemente como erros nas outras linguagens de
programação. Alguns aspectos da linguagem é permitir que muitos erros potenciais
possam ser detectados antes que um programa é executado.

Java é plataforma independente. Uma plataforma, neste contexto, é apenas


um determinado tipo de sistema de computador, tais como um sistema Windows,
MacOS, LINUX, etc. Java tem como sua marca registrada: "Escreva uma vez,
execute em qualquer lugar.". Isto significa que um programa Java pode ser
executado sem modificações em diferentes tipos de computadores. Isto não é
verdadeiro para outras linguagens de programação de alto nível. Uma razão para o
Java é ser bem adequado para aplicações WWW.

Java foi projetado para redes. A sua aptidão para ambientes em rede é
inerente a sua arquitetura, o que permite ser seguro, robusto e independente de
plataforma assim programas distribuídos através da internet pode ser executado em
uma grande variedade de computadores.

Java é uma linguagem distribuída o que significa que seus programas podem
funcionar em redes de computador. Além da própria linguagem, o Java vem com
uma extensa coleção de bibliotecas de código que tenha sido concebido para ser
utilizado diretamente para tipos específicos de aplicações para torná-lo muito fácil de
construir sistemas de software para desktop e Internet. Esta é uma das razões pelas
quais o Java é tão bem adaptado para apoiar aplicações em redes corporativas.

Java é uma linguagem segura. Destinado para uso em redes, Java contém
funcionalidades que protegem contra códigos não confiáveis que possa introduzir
um vírus ou corromper o sistema de alguma forma. Por exemplo, quando é
executado algo no navegador web, programas Java são impedidos de leitura e
escrita a partir de informações e para o seu computador desktop.

Java é orientado a objetos. Linguagens orientadas a objetos permitem dividir


programas em módulos separados, chamados objetos, que sintetizam o programa
23

de dados e operações. Assim Programação Orientada para Objetos (OOP) e


Projeto Orientado a Objetos (OOD) referem-se a uma forma particular de organizar
programas, um que está rapidamente emergindo como a melhor abordagem para a
construção de complexos sistemas de software. Ao contrário da linguagem C++, em
que possui características orientadas a objetos enxertado sob a linguagem C, Java
foi concebido a partir do zero como uma linguagem orientada para objeto.

5.3 MAQUINA VIRTUAL

Marketing pessoal na Sun Microsystems para o Java: “Write Once, Run


Anywhere”; escreva uma vez e rode em qualquer lugar, este foi o resultado que a
equipe de desenvolvimento atingiu, e desta trouxe grandes facilidades para o
ambiente de desenvolvimento.
Máquina virtual é uma abstração de uma máquina real onde o software simula
um computador executando vários aplicativos. É um ambiente operacional
independente da máquina ou dispositivo em que está hospedada e sendo
executada. Dessa forma, ela constitui uma plataforma, onde o sistema operacional,
a memória, o processador e seus demais recursos são virtual. Conforme Engel
(1999), máquina virtual é o nome definido a um ambiente, como um sistema
operacional que não existe fisicamente, porém é executado sob outro ambiente.
Segundo Wesley (2004), uma maquina virtual realiza a interpretação do
código intermediário, este é gerado como resultado da tradução de uma linguagem
de alto nível. Assim é garantida a portabilidade do código do programa. Isso porque,
como o código está numa linguagem intermediária, ou seja, independente da
arquitetura de um computador real, só é necessário que a máquina virtual esteja
instalada no computador onde o aplicativo será executado. A máquina virtual será a
responsável pela interpretação do código para a linguagem de máquina do
computador em execução.
Dentre as vantagens principais proporcionadas pela máquina virtual pode citar
se o fato dos programas intermediários serem compactos e poderem ser executados
em qualquer plataforma na qual a máquina virtual esteja presente.
24

5.3.1 JVM (Java Virtual Machine)

Segundo BURD (2005) quando se iniciou a tecnologia Java em 1995, se


tornou quase que imediatamente popular. Isto aconteceu por causa da máquina
virtual Java. A JVM é um interpretador de linguagem, que transforma Java byte code
em código nativo para que um determinado computador compreenda. Com a JVM,
um byte code opera em máquinas Windows, Unix, Macs, entre outros.
Isso é chamado de portabilidade, que hoje em dia uma é inovação no
mercado computacional. Pense em todas as pessoas que utilizam computadores
para navegar na Internet. Destas pessoas, nem todas rodam o Microsoft Windows,
ou outro sistema operacional específico, mas cada pessoa do computador pode ter o
seu próprio interpretador de byte codes, ou seja, a sua máquina virtual Java.
De acordo com Venners(1997), cada aplicação Java é executado dentro de
sua própria máquina virtual. Sendo responsável pela interpretação do código
intermediário, chamados também bytecodes, a JVM faz uma validação se estes se
adéquam as especificações não violando a integridade do sistema. A JVM também é
responsável por carregar o programa de forma segura.

5.4 GARBAGE COLLECTOR (GERENCIADOR DE RECURSOS DA MEMÓRIA)

Conforme Rodrigues (2005), gerenciar recursos alocados por aplicativos é


algo vital para o funcionamento eficiente e prolongado de qualquer sistema. O
mecanismo automatizado do GC garante o gerenciamento de recursos alocados,
todavia, em algumas circunstancias a serem abordadas, é tarefa de o desenvolvedor
envolver-se diretamente nesta prática, elaborando o código necessário
explicitamente.
Cada objeto consome parte da memória, de que existe uma quantidade
limitada. Eventualmente, a memória alocada para estes objetos devem ser liberadas
quando não são mais utilizadas. A máquina virtual Java recupera esses objetos
automaticamente através de um processo chamado garbage collector. Segundo
Engel (1999), o Garbage Collector é o processo de coleta automática de lixo da
25

memória, liberando objetos que não são mais referenciados pelo programa.

O mecanismo automatizado do GC garante o gerenciamento de recursos


alocados, todavia, em algumas circunstancias a serem abordadas, é tarefa de o
desenvolvedor envolver-se diretamente nesta prática, elaborando o código
necessário explicitamente.

5.4.1 Funcionamento do gerenciador de memória

De maneira simplificada, GC implementa um mecanismo de liberação de


recursos de memória no heap de objetos.

A ilustração 02 demonstra a ação do garbage collector sobre os objetos


alocados por uma aplicação. Estes objetos são referenciados em tabelas internas
criadas pelo compilador JIT quando da inicialização do GC. Estas referencias são
denominadas raiz pois correspondem à primeira fase de ação do GC no
monitoramento de objetos alocados pela aplicação, ainda referenciados pela
mesma, que o GC não pode liberar. Diante deste fato, o GC constrói suas próprias
estruturas correspondentes aos objetos no heap.

Este diagrama mostra todos os passos que são tomadas quando uma
referência a um objeto é removido da máquina virtual. Isso acontece sempre que o
usuário define explicitamente uma variável para null, sobrescreve uma variável do
ponto de referência para outro objeto, ou provoca a classe que detém a variável de
referência para sair do campo de aplicação. Para cada referência que tenha a
máquina virtual, esta executa este processo de recolha de lixo durante o seu ciclo.

Primeiro, a máquina virtual tenta traçar um caminho a partir da raiz definido


para o objeto. Se encontrar um caminho, não ocorre coleta. Se não encontrar um
caminho, a máquina virtual elimina a referência do objeto da memória. Em seguida,
a máquina virtual determina se ira apontar para os objetos de referencia retirados de
referencia. Se houver objetos de referencia, a máquina virtual determina se a
memória sob a pilha é baixa. Se assim for, ele faz uma verificação de memória. Se a
26

verificação indicar que não há memória livre ou a referência a um objeto já não for
referida com quaisquer referências ou as referências aos dados já foram lixo
coletado, a referencia na referencia é definido como nulo. Finalmente, a referencia
dos objetos são adicionado à fila.
27

CAPITULO III

6 Arquitetura em Camadas

6.1 Histórico
A arquitetura multicamadas se baseia na plataforma J2EE e tem como
objetivo principal diminuir a complexidade e tempo de desenvolvimento de sistemas
de missão crítica, através da definição de um framework composto por um conjunto
de objetos que interagem entre si para prover um ou mais serviços. Tais serviços
ficam disponibilizados em um ou mais servidores de aplicação. A divisão dos papéis
e responsabilidades de cada um desses objetos se faz por meio de camadas,
possibilitando uma maior flexibilidade em função do fraco acoplamento entre elas.

6.2 Arquitetura 2 Camadas

6.3 Arquitetura 3 Camadas (MCV)

6.4 Arquitetura 4 Camadas


28

7 CRONOGRAMA

Atividades Mar. Abril Maio Jun. Jul. Ago. Set. Out. Nov.
Escolha do tema X
Pesquisa bibliográfica X X X X X X X X X
Analise bibliográfica X X X X X X X X X
Montagem do projeto X X
Defesa do projeto X
Entrega do projeto X
Desenvolvimento conceitual X
e Histórico
Analise teórica X X
Elaboração primeira etapa X
TCC (1º, 2º capítulo)
Apresentação (Pré-TCC) X
Entrega da primeira parte do X
TCC (1º e 2º capítulo)
Desenvolvimento prático X X
Analise dos estudos X X
elaborados
Elaboração do Relatorio X X X
final
Revisão final X X X
Apresentação X
Entrega final X
Reuniões com o orientador X X X X X X X X X