INTEGRAÇÃO DE SISTEMAS DE POSTAGEM UTILIZANDO WEBSERVICE E HIBERNATE Osiris Parizi Anhanguera Educacional RA: 2226536446 RESUMO [email protected] Este trabalho apresenta as principais características do desenvolvimento de aplicações para integração de sistemas utilizando a linguagem Java, seus recursos e tecnologias. Uma destas características é de utilizar o paradigma de Orientação a Objeto, o que torna o Java de certa forma incompatível com os Bancos de Dados relacionais e, para amenizar este problema, foram criados os frameworks para persistência de dados que utilizam o conceito de ORM (Object Relational Mapping) e realizam o mapeamento Objeto/Relacional. Um destes frameworks, talvez o principal, é o Hibernate que será utilizado neste projeto para criação de um sistema para a geração de postagens de encomendas utilizando o WebService dos Correios. Palavras-Chave: Integração, Postagem, Correios, WebService, XML, Java, Hibernate, MySQL. ABSTRACT This work gives the main characteristics of application development for systems integration using Java languageand its resources and technologies. One of these characteristics is to use the Object Oriented paradigm, which makes Java in a way incompatible with relational databases, and to minimize this problem, were created for data persistence frameworks that use the concept of ORM (Object Relational mapping) and perform the mapping Object / Relational. One of these frameworks, perhaps the main, is that Hibernate is used in this project to create a system to generate postings orders using the WebService Post. Keywords: Integration, Postage, Correios, WebService, XML, Java, Hibernate, MySQL. Anhanguera Educacional S.A. Correspondência/Contato Alameda Maria Tereza, 2000 Valinhos, São Paulo CEP. 13.278-181 [email protected] 7 8 Integração de sistemas de postagens utilizando WebService e Hibernate 1. INTRODUÇÃO A possibilidade se comprar e vender através da internet é uma das bases de uma mudança em nossa sociedade, uma nova tendência chamada “Era Digital". Esta nova realidade aliada à crescente evolução das técnicas de segurança da informação aplicada aos sites, tem revolucionado o comércio eletrônico brasileiro que vive hoje um grande momento de crescimento. Visando este novo mercado as empresas tem se pautado na internet como base para sua estratégia de vendas e marketing. Com o crescimento das vendas realizadas através da internet, aumenta também o número de empresas que necessitam de sistemas informatizados para a geração e controle de suas encomendas, pois as entregas deixam de ser feitas diretamente ao consumidor e passam a utilizar os meios "postais" para envio dos produtos aos clientes. Assim, a maioria da empresas que já possuem sua loja virtual na internet e, também seus softwares de controle, precisam adaptá-los para que possam trocar informações com os sistemas das empresas responsáveis pela entrega de seus produtos. No entanto, a integração de sistemas informatizados sempre foi um grande desafio para as empresas desenvolvedoras de software e seus clientes. A dificuldade de se trabalhar com diferentes tipos de Sistemas Operacionais, Plataformas, Bancos de Dados e, principalmente, diferentes padrões de desenvolvimento motivou a criação de ferramentas e tecnologias específicas para realizar esta integração. Dentre elas, temos a tecnologia de WebService, que utiliza a linguagem XML e adota um padrão específico para troca de informações entre sistemas. Diante deste cenário, o objetivo geral deste artigo é realizar um estudo sobre as tecnologias aplicadas ao desenvolvimento, bem como propor a criação, de um sistema para geração de postagens de encomendas. Este sistema será responsável pela conexão do software de venda da empresa (independentemente da tecnologia utilizada em seu desenvolvimento), ao WebService dos Correios e terá como resultado os rótulos de postagem utilizados no endereçamento dos objetos postais. Foi escolhida a linguagem Java devido às suas características de ser multiplataforma e independente de Sistema Operacional. Aliado ao Java será utilizado o framework Hibernate, que possibilita de forma simplificada a portabilidade a diversos Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi Bancos de Dados, permitindo que o software a ser desenvolvido possa realmente realizar a integração de diferentes tipos de sistemas. 2. TECNOLOGIAS UTILIZADAS Este capítulo tem o objetivo de demonstrar os principais recursos e características das tecnologias utilizadas no desenvolvimento do trabalho proposto. (Melhorar) 2.1. Linguagem JAVA Java é uma linguagem de programação desenvolvida por James Gosling e seus colegas da Sun Microsystems no início da década de 90. Sua sintaxe é muito semelhante à do C++, porém ela simplificou muitas características que faziam do C++ uma linguagem complexa, confusa e de difícil aprendizado. (Java) Projetada inicialmente para ser utilizada "embarcada" em dispositivos eletrodomésticos, como por exemplo forno de micro-ondas e decodificadores de TV a cabo, a linguagem Java deveria ser leve e de código bastante otimizado, pois estes dispositivos possuíam capacidade de processamento e memória muito pequenas. Além disso, para que pudesse ser utilizada por diversos fabricantes a não deveria ser vinculada a uma arquitetura específica de hardware. (CORE JAVA) Posteriormente, por oferecer suporte a várias arquiteturas de máquinas host e possibilitar a criação segura de componentes de software, a plataforma Java foi utilizada para resolver os problemas de construção de sistemas para dispositivos que utilizavam rede. Para atender a esses requisitos, o código compilado deveria sobreviver ao transporte em redes, operar em qualquer cliente e garantir ao cliente que era seguro executar o componente recebido via rede. Esse foi o princípio dos atuais componentes Java que rodam sobre o navegador Web, conhecidos hoje como Applets. (Java) Atualmente o Java é uma das linguagens mais utilizadas no mundo. Características próprias e inovadoras como JavaBeans, JDBC (Java Database Connectivity), Applets, AWT (Abstract Window Toolkit), Swing, RMI (Remote Method Invocation), Annotations e Generics aliadas às tecnologias Enterprise Edition como por exemplo EJB (Enterprise Java Beans), WebServices e JSF (Java Server Faces) vem mudando a forma como desenvolvemos software. Impulsionados por um Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 9 10 Integração de sistemas de postagens utilizando WebService e Hibernate mercado sem monopólios, novas empresas, novos modelos, novos sistemas e novas ideias surgiram, abrindo as portas para inovações que conhecemos hoje. (revista EasyJava 01). 2.1.1. Principais Características da Linguagem JAVA Orientação a objetos A primeira característica do Java, de orientação a objeto, refere-se ao método de programação e de design da linguagem. O objetivo principal da programação orientada a objetos é desenvolver partes de código mais genéricos para que o software possa se tornar mais reutilizável entre diversos projetos. Um componente genérico "cliente", por exemplo, deve ter o mesmo conjunto básico de comportamentos entre projetos diferentes, especialmente quando esses projetos se sobrepõem em algum nível básico, como fazem normalmente as grandes organizações. Neste sentido, os objetos de software podem ser vistos como componentes conectáveis, que ajudam o desenvolvedor do software a criar projetos em grande parte a partir de peças menores, já existentes, e com eficiência e qualidade comprovadas, levando assim a uma enorme redução no tempo de desenvolvimento. Independência de Plataforma A segunda característica, independência de plataforma, significa que programas escritos em linguagem Java devem ser executados da mesma forma em diversos tipos de hardwares. Para isso o compilador realiza a transformação do código Java para um bytecode intermediário (Java Bytecode). Em seguida, o código é executado em uma máquina virtual, um programa escrito em código nativo do hardware da máquina host, que interpreta e executa o bytecode Java genérico. Bibliotecas adicionais, padronizadas são utilizadas para permitir o acesso aos recursos das máquinas host (como gráficos, threads e rede). Embora não haja uma etapa de compilação explícita, em algum momento, o bytecode de Java é interpretado ou convertido em instruções nativas da máquina. Existem também compiladores Java que compilam para código nativo, conhecidos como compiladores GCJ (GNU Java Compiler), removendo a fase Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi intermediária bytecode, mas o programa gerado por estes compiladores só pode ser executado em uma única arquitetura. (Java) Figura 1 - Compilação do código fonte em JAVA (Fonte: http://docs.oracle.com). Figura 2 - Independência de Plataforma no JAVA (Fonte: http://docs.oracle.com). Coleta de Lixo Automática A ideia principal do modelo de gerenciamento automático de memória do Java é que os programadores devem ser poupados do trabalho de realizar o gerenciamento de memória forma manual. Em algumas linguagens, o programador aloca memória para criar qualquer objeto armazenado na pilha e é responsável por realizar o desalocamento manualmente depois, para que esta seja liberada e para excluir esses objetos. Se um programador se esquece de desalocar memória ou não escreve um código o faça no momento oportuno, pode ocorrer um vazamento de memória: o programa vai consumir uma quantidade possivelmente grande de memória. Além disso, se uma região de memória é desalocada duas vezes, o programa pode se tornar instável e pode falhar. Em linguagens de programação onde o lixo não é coletado Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 11 12 Integração de sistemas de postagens utilizando WebService e Hibernate automaticamente, há um certo grau de sobrecarga sobre o desenvolvedor e complexidade do código para controlar e finalizar as alocações. Em Java, este possível problema é evitado pela coleta de lixo automática. O programador determina quando os objetos são criados, e o Java Runtime fica responsável por gerenciar o ciclo de vida do objeto. O programa ou outros objetos podem fazer referência a um objeto, mantendo uma referência a ele. Quando não há mais referências ativas, o coletor de lixo do Java automaticamente o exclui, para evitar um vazamento de memória. Comparando Java e C++, é possível em C++ desenvolver uma funcionalidade semelhante (por exemplo, um gerenciamento de memória para classes específicas pode ser projetado em C++ para melhorar a velocidade e reduzir a fragmentação de memória), com o custo de tempo extra de desenvolvimento e de alguma complexidade de aplicação possível. Em Java a coleta de lixo é interna e praticamente invisível para o desenvolvedor. Ou seja, os desenvolvedores não tem nenhuma noção de quando a coleta de lixo será realizada. (Java) 2.2. Hibernate O desenvolvimento de software Orientado a Objetos utilizando-se Bancos de Dados Relacionais normalmente é uma tarefa complexa. O consumo de tempo e os custos para o desenvolvimento são significativamente maiores devido a uma incompatibilidade entre o paradigma de dados representados em objetos e o de bancos de dados relacionais. O Hibernate é um framework Java responsável por realizar o Mapeamento Objeto/Relacional, utilizando a técnica de mapeamento de dados a partir de uma representação do modelo de objeto versus representação relacional (e vice-versa). Ele não realiza somente o mapeamento de classes Java para tabelas de banco de dados, mas também fornece informações para consulta e recuperação dos dados. Ele pode reduzir significativamente o tempo gasto com o desenvolvimento em comparação com outras formas manuais de manipulação direta dos dados usando em SQL e JDBC. Segundo o guia de referência do Hibernate, o objetivo principal deste framework é diminuir em cerca de 95% a carga de trabalho aplicada ao desenvolvedor para execução de tarefas relacionadas à programação para persistência de informações em bancos de dados, eliminando a necessidade de manipulação direta dos códigos Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi SQL. No entanto, diferentemente de outros frameworks para persistência de dados, o Hibernate mantém o desempenho e poder do Servidor de Banco de Dados SQL. (JBOSS) 2.2.1. Portabilidade de Bancos de Dados Seguindo estes princípios, outra grande vantagem na utilização do Hibernate (além do ganho de tempo na programação) é a portabilidade de Bancos de Dados proporcionada ao sistema. Através dele é possível adaptar facilmente uma aplicação para utilização de um determinado SGBD, sem que seja necessário realizar grandes mudanças no código fonte da aplicação. Esta é principal razão pelo qual este framework é amplamente utilizado em sistemas que operam com diversos tipos diferentes de Bancos de Dados. O quadro abaixo exibe um trecho de código comum para um arquivo de configuração do Hibernate (hibernate.cfg.xml). Este é o único arquivo da aplicação que necessita ser alterado quando ocorre a migração do banco de dados (além dos drivers específicos do SGBD). Os trechos em negrito representam as linhas de códigos referentes às configurações do banco de dados. <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/trabalho</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"/>123456</property> <mapping class="br.com.dominio.modelo.Usuario" /> </session-factory> </hibernate-configuration> Figura 3 - Exemplo de arquivo de configuração do Banco de Dados no Hibernate Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 13 14 Integração de sistemas de postagens utilizando WebService e Hibernate Banco de Dados Dialeto DB2 DB2 AS/400 DB2 OS390 PostgreSQL MySQL5 MySQL5 with InnoDB MySQL with MyISAM Oracle (any version) Oracle 9i org.hibernate.dialect.DB2Dialect org.hibernate.dialect.DB2400Dialect org.hibernate.dialect.DB2390Dialect org.hibernate.dialect.PostgreSQLDialect org.hibernate.dialect.MySQL5Dialect org.hibernate.dialect.MySQL5InnoDBDialect org.hibernate.dialect.MySQLMyISAMDialect org.hibernate.dialect.OracleDialect org.hibernate.dialect.Oracle9iDialect Oracle 10g Oracle 11g Sybase Sybase Anywhere Microsoft SQL Server 2000 Microsoft SQL Server 2005 Microsoft SQL Server 2008 SAP DB Informix HypersonicSQL H2 Database org.hibernate.dialect.Oracle10gDialect org.hibernate.dialect.Oracle10gDialect org.hibernate.dialect.SybaseASE15Dialect org.hibernate.dialect.SybaseAnywhereDialect org.hibernate.dialect.SQLServerDialect org.hibernate.dialect.SQLServer2005Dialect org.hibernate.dialect.SQLServer2008Dialect org.hibernate.dialect.SAPDBDialect org.hibernate.dialect.InformixDialect org.hibernate.dialect.HSQLDialect org.hibernate.dialect.H2Dialect Ingres Progress Mckoi SQL Interbase Pointbase FrontBase Firebird org.hibernate.dialect.IngresDialect org.hibernate.dialect.ProgressDialect org.hibernate.dialect.MckoiDialect org.hibernate.dialect.InterbaseDialect org.hibernate.dialect.PointbaseDialect org.hibernate.dialect.FrontbaseDialect org.hibernate.dialect.FirebirdDialect Figura 4 - Bancos de Dados suportados pelo Hibernate (Fonte: http://docs.jboss.org). 2.2.2. Linguagem HQL O framework Hibernate utiliza uma poderosa linguagem para consulta aos Bancos de Dados relacionais. Semelhante, em sua sintaxe, ao SQL a linguagem HQL (Hibernate Query Language) é totalmente orientada a objetos contemplando inclusive as funções de herança, polimorfismo e associações. "HQL não é uma linguagem de manipulação de dados como o SQL. É utilizado apenas para a recuperação do objeto, não para atualizar, inserir ou excluir dados. Sincronização de estado de objeto é o trabalho do gerenciador de persistência, não o desenvolvedor." (Bauer e King, 2005, p.141). Segundo Bauer e King (2005, p. 142) o HQL permite, entre outras funcionalidades, aplicar restrições em objetos relacionados bem como recuperar as propriedades únicas de uma entidade. Além disso é possível também ordenar os resultados da consulta, paginar os resultados, realizar agrupamento com Group By e Having, utilizar funções de agregação como Sum, Min, e Máx, recuperar vários objetos por linha utilizando Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi Outer Join, chamar funções definidas pelo usuário do SQL (Stored Procedures) e utilizar Subconsultas (consultas aninhadas). Recomendações para a Edição (Estilo: <Secao>) Os estilos mais utilizados na escrita de um artigo científico nos padrões da AESA serão <Secao> e <Subsecao>. A seleção destes estilos ocorre quando for necessário começar uma nova seção ou uma nova subseção. Há alguns detalhes sobre retoques finais para o espaço sobre os cabeçalhos na seção 2.11 deste documento. 2.3. Fontes Usadas (Estilo: <Subsecao>) Todas as fontes usadas neste documento são fontes TrueType a saber: texto principal: Book Antiqua; texto secundário: Times New Roman; títulos, seções e subseções: Arial e Arial Narrow; equações: Symbol. A fonte Book Antiqua foi escolhida como base para os textos dos artigos científicos da AESA. Embora não seja tão comum como a fonte Times New Roman, o resultado final em arquivos de formato PDF, ou impressões no papel, é bastante agradável à leitura. A fonte Arial e sua derivada Arial Narrow são utilizadas nos títulos do artigo, do resumo, do abstract, de seção e subseção. 2.4. Citações e Referências Bibliográficas A citação e a correspondente apresentação de referências bibliográficas concentram o maior número de inconformidades dos artigos submetidos às revistas da AESA. Nesta subseção serão apresentados exemplos de citações e referências com o objetivo de auxiliar os autores. Os padrões e exemplos apresentados na seqüência foram baseados no sistema de chamada autor-data, conforme a NBR6023-2002 e NBR10520-2002. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 15 16 Integração de sistemas de postagens utilizando WebService e Hibernate Citações Indiretas As referências sem citações literais devem ser incorporadas ao texto, entre parênteses, indicando o sobrenome do autor em letras maiúsculas e o ano da publicação (SOBRENOME DO AUTOR, ano). A indicação de páginas é opcional, uma vez que a citação faz uma referência indireta à origem das idéias. Este parágrafo é um exemplo de uma citação indireta para um livro. Citações indiretas visam referenciar o texto no qual o autor baseou suas idéias (GOMES, 1998). GOMES, L. G. F. F. Novela e sociedade no Brasil. Niterói: EdUFF, 1998. Citações Diretas Quando o autor citado integra a frase, só o ano e página serão colocados entre parênteses. Por exemplo, Autor (ano, p. xx-yy) é uma forma de citação direta. O sobrenome do autor, neste caso, terá apenas a primeira letra em maiúsculo, pois faz parte do texto. Este parágrafo é um exemplo de uma citação direta para um artigo e/ou matéria de um periódico (revista, boletim, etc.). São exemplos de publicações periódicas: fascículo ou número de revista, número de jornal, artigos científicos de revistas, editoriais, matérias jornalísticas, seções, reportagens, etc. Segundo relato publicado por Sekeff (2002, p. 30-36), as citações diretas são transcrições textuais de parte da obra do autor consultado. SEKEFF, Gisela. O emprego dos sonhos. Domingo, Rio de Janeiro, ano 26, n. 1344, p. 30-36, 3 fev. 2002. Transcrições com Mais de Três Linhas As transcrições diretas de mais de três linhas serão destacadas no texto em parágrafo especial, centralizadas e com 1 cm para dentro de cada margem (direita e esquerda), com espaço simples. Ao final, apresenta-se (SOBRENOME DO AUTOR, ano, p. xx-yy). Como um exemplo de transcrição direta com mais de três linhas, ilustra-se a transcrição de uma monografia em meio eletrônico (livro e/ou folheto). A introdução apresentada por Assis (2000) demonstra um alto domínio da língua Portuguesa: As crônicas da vila de Itaguaí dizem que em tempos remotos vivera ali Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi um certo médico, o Dr. Simão Bacamarte, filho da nobreza da terra e o maior dos médicos do Brasil, de Portugal e das Espanhas. Estudara em Coimbra e Pádua. Aos trinta e quatro anos regressou ao Brasil, não podendo el-rei alcançar dele que ficasse em Coimbra, regendo a universidade, ou em Lisboa, expedindo os negócios da monarquia. (ASSIS, 2000, p. 1). Importante: deve-se usar o estilo <CitacaoMaisTresLinhas> e ao final do texto transcrito é imprescindível apresentar a citação do nome do autor em letras maiúsculas, o ano e o número da(s) página(s). ASSIS, Machado de. O Alienista. [S.I.]. Virtual Books, 2000. Disponível em: <http://virtualbooks.terra.com.br/freebook/port/download/O%20Alienista.pdf>. Acesso em: 30 jan. 2008. Transcrições com Menos de Três Linhas As transcrições literais curtas serão integradas ao parágrafo, colocadas entre aspas e seguidas pelo sobrenome do autor do referido texto (com letras maiúsculas), ano de publicação e página(s) do texto citado, entre parênteses (SILVA; SOUZA; DEMAIS, ano, p. xx-yy). O texto em destaque deverá aparecer entre aspas, não sendo permitido a utilização de formatação em itálico, negrito ou sublinhado. Este parágrafo é um exemplo de uma transcrição direta de até três linhas de um artigo de jornal. A investigação afirma que “Antes do recesso parlamentar de julho, a CPI havia aprovado requerimento com a solicitação às operadoras para o envio de informações sobre 409 mil grampos telefônicos autorizados pela Justiça em 2007” (GUERREIRO; GIRALDI, 2008). GUERREIRO, Gabriela; GIRALDI, Renata. CPI vai tentar reverter liminar que garante às teles sigilo de clientes grampeados. FolhaOnline. São Paulo, 5 ago. 2008. Disponível em: <http://www1.folha.uol.com.br/folha/brasil/ult96u429847.shtml>. Acesso em: 5 ago. 2008. 2.5. Figuras e Tabelas A inserção e formatação de figuras num artigo se torna relativamente simples com o modelo apresentado nesta seção. Na Figura 1, nota-se uma imagem centralizada dentro de um quadro, terminando com uma legenda descritiva. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 17 18 Integração de sistemas de postagens utilizando WebService e Hibernate Figura 1. Exemplo de uma imagem inserida no artigo (Estilo: <LegendaFigura>). Note os estilos utilizados para apresentação da Figura 1: a figura possui um estilo chamado <Figura> no qual são definidos os espaçamentos que a envolvem dentro do quadro. Além disso, o parágrafo possui a opção “Manter com o próximo”, a qual evita que a imagem e seu quadro se separem da legenda que vem abaixo; a legenda utiliza o estilo <LegendaFigura> no qual as distâncias para o quadro e o próximo parágrafos ficam determinadas automaticamente. Para inserir uma imagem no artigo, utilize a figura apresentada como ponto de partida. A seguir é apresentado um procedimento para evitar problemas. a) Copiar a figura, o quadro e a legenda para a posição desejada do artigo (utilizar as teclas de atalho Ctrl+c e Ctrl+v). b) Na posição desejada, apaguar a figura (por exemplo, a descrição de um músculo da Figura 1) que acompanha este modelo. c) A partir do comando de menu “Inserir > Imagem > Do arquivo...”, selecionar o arquivo que contém a imagem desejada. d) Uma observação importante: ao longo de anos utilizando o programa Word, os autores deste modelo recomendam o uso do formato PNG para imagens de telas de computador e programas. Para imagens criadas a partir de fotografias, recomenda-se o uso do formato JPEG. Estes formatos são as melhores opções em relação ao resultado final da relação tamanho/qualidade. Quando o autor possuir outros formatos, poderá utilizá-los neste modelo, mas é importante verificar sempre os resultados finais de tamanho e qualidade do artigo, principalmente quando o mesmo é convertido para o formato PDF. Semelhante ao apresentado para figuras, a formatação de tabelas possui estilos próprios. Um exemplo desta formatação pode ser observada na Tabela 1. Para tabelas, a legenda utiliza o estilo <LegendaTabela> e sua posição correta de apresentação é no topo da respectiva tabela. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi Tabela 1. Exemplo de um Título para uma Tabela. Título Coluna [Unidade] Total Linha 1 1 2 3 6 Linha 2 4 5 6 15 Linha 3 7 8 9 24 Linha 4 10 11 12 33 Este parágrafo possui um estilo especial: <TextoAposTabela>. Esse estilo é necessário para que o primeiro parágrafo após uma tabela mantenha uma distância que não atrapalhe a formatação do texto em seu entorno. Para evitar que uma tabela seja dividida em páginas diferentes, deve-se selecionar da primeira à penúltima linha da tabela e no menu “Formatar > Parágrafo”; na aba “Quebras de linhas e de página” deve-se selecionar a opção “Manter com o próximo”. Após realizada essa formatação, será possível notar pequenos quadrados pretos do lado esquerdo das linhas da tabela. Estas informações serão úteis para a boa apresentação de dados em tabelas no artigo científico. 2.6. Referências Automáticas Um recurso que permite o Word poupar o tempo de formatação e organização de textos científicos é a criação de referências automáticas a legendas de figuras, tabelas e equações (descrinos na subseção 2.7). As legendas de figuras e tabelas deste documento possuem numeração automática, ou seja, o Word fica responsável por organizar a seqüência numérica dessas legendas. Para visualizar tal automatização, deve-se acessar o menu “Ferramentas > Opções”, aba “Exibir”, escolher “Sempre” na lista “Sombreamento de campos:”, conforme ilustrado na Figura 2. Para fazer referências à numeração de figuras e tabelas, basta utilizar o comando de menu “Inserir > Referência > Referência cruzada...”. Crie a referência selecionando o número da figura desejada. Na lista “Escolher referência para:” devese selecionar “Apenas nome e número”. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 19 20 Integração de sistemas de postagens utilizando WebService e Hibernate Figura 2. Opção para visualizar campos numerados automaticamente. Por exemplo, para criar esta referência entre parênteses (Figura 2), fazem-se as escolhas conforme a ilustração da Figura 3. Importante: para evitar transtornos durante a leitura de um artigo, deve-se desmarcar a opção “Inserir como hiperlink”. Caso essa opção fique habilitada no momento de inserir uma referência cruzada, as referências se comportarão como hiperlinks para as respectivas figuras e tabelas. Isto pode causar problemas durante a revisão do artigo, caso o leitor clique sem intenção nas referências automáticas. Figura 3. Configurando uma referência automática. No próximo item será tratada a formatação, apresentação e referências automáticas para equações. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi 2.7. Equações Antes de começar a criar equações, é necessário configurar o Microsoft Equation para utilizar fontes e tamanhos compatíveis com o padrão das revistas científicas da AESA. Para estabelecer essa formatação, é preciso aplicar um clique duplo na Equação (1) e fornecer os seguintes valores para os diálogos mencionados. É claro que estas ações somente serão possíveis com o uso do arquivo digital Word que descreve o modelo. N a bk D k k 1 c d e (1) Quando estiver no modo de edição de equações, escolhe-se o comando de menu “Estilo > Definir...” selecione ou confirme os tipos de fontes conforme descrição feita na Tabela 2, caso já não estejam definidos. Tabela 2. Formatação de Fontes para Equações. Atributo Nome da Fonte Texto Times New Roman Função Times New Roman Variável Times New Roman Grego minúsculo Symbol Grego maiúsculo Symbol Símbolo Symbol Matriz/vetor Times New Roman Número Times New Roman No menu “Tamanho > Definir...” forneça os valores de tamanho para as fontes conforme descrição feita na Tabela 3. Tabela 3. Formatação de Tamanho para Equações. Atributo Tamanho Inteiro 12 pt Subscrito/sobrescrito 7 pt Sub-subscrito/sobrescrito 5 pt Símbolo 18 pt Subsímbolo 12 pt Um exemplo da definição da seleção/confirmação dos tipos de fontes pode ser visto na Figura 4. Devem-se observar os estilos que possuem aplicações especiais de Negrito e Itálico para as fontes selecionadas. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 21 22 Integração de sistemas de postagens utilizando WebService e Hibernate Figura 4. Diálogo de configuração de estios de fontes para o Microsoft Equation. As equações do artigo serão construídas com o editor Microsoft Equation. O estilo de parágrafo para a apresentação de uma equação é <Equação> e o alinhamento é centralizado, conforme o exemplo de formatação da Equação (2) a seguir. x b b 2 4ac 2a (2) Para criar as equações do artigo, sugere-se copiar o parágrafo de formatação da Equação (2) do arquivo digital do modelo Word e então colar na posição desejada do artigo científico. Após conferir a formatação do parágrafo como <Equacao>, o autor pode editar a equação exemplo formatando o conteúdo de acordo com as suas necessidades. Para fazer referências à numeração de equações, deve-se utilizar o comando “Inserir > Referência > Referência cruzada...”, semelhante ao que se faz para adicionar uma referência automática à legenda de um gráfico ou imagem. No entanto, para equações, é necessário um passo extra para que a inserção da referência contenha apenas o número da equação, e não a equação toda. Antes de inserir a referência, separe o número da equação em uma nova linha por meio de um “Enter” entre a abertura do parênteses “(“ e o número identificador da equação. A referência será criada ao selecionar o número da equação desejada. Na lista “Escolher referência para:” é preciso selecionar “Apenas nome e número”. Na Figura 5 é apresentado um exemplo de como ficam as opções mencionadas. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi Figura 5. Diálogo de inserção de referência cruzada. Após isto, deve-se unir o “(“ com o identificador da equação, conforme estado inicial antes da criação da referência automática. Como resultado deste procedimento, pode-se apresentar uma referência à Equação (1) e uma referência para a Equação (2). 2.8. Notas de Rodapé Para facilitar o trabalho de formatação do artigo científico, sugere-se evitar a criação de notas de rodapé, uma vez que o controle das mesmas não é algo muito fácil com o uso do programa Word1. É usual encontrar problemas de notas que insistem em se posicionarem na página seguinte àquela desejada. Além disso, destaca-se que referências bibliográficas não devem ser colocadas em notas de rodapé. 2.9. Itens Numerados ou Não Numerados Este modelo de documento possui alguns estilos pré-formatados para a criação de listas de itens numerados (ou não). Para os itens numerados, é importante não alterar o tipo apresentado que utiliza letras minúsculas (a, b, c e assim por diante). A seguir são indicados alguns exemplos com a apresentação do nome do estilo utilizado. A seguir é uma lista de itens não numerados (Estilo <Item>). Primeiro elemento da lista (primeira letra maiúscula); segundo elemento da lista (primeira letra minúscula); Embora não seja indicada sua utilização, apresenta-se aqui um exemplo de uma nota de rodapé. É importante lembrar que no padrão AESA não devem ser apresentadas em notas as referências bibliográficas (Estilo <NotaRodape>). 1 Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 23 24 Integração de sistemas de postagens utilizando WebService e Hibernate o elemento final da lista possui ponto final. Esta é uma lista de itens numerados (Estilo <ItemNumerado>). a) Primeiro elemento da lista. b) Segundo elemento da lista. c) O elemento final da lista possui ponto final. Observação: caso uma lista, numerada ou não, for apresentada como uma seqüência de frases terminadas com ponto-e-vírgula “;”, somente o primeiro item começará com letra maiúscula. Caso os itens sejam terminados com ponto final “.”, então todos os itens iniciarão com letra maiúscula. 2.10. Configurando a Impressora Correta (Estilo: <Subsecao>) É muito comum a experiência de formatar um documento no Word e ao abri-lo em outro computador observar que foi perdida a formatação original? Muitos usuários do Word já passaram por esta experiência. O interessante deste fato é constatar que a causa do problema está na impressora selecionada para o documento. Mesmo que o artigo não tenha sido impresso, o Word associa o documento com a impressora padrão configurada no sistema operacional Windows. Por causa da dependência do programa Word em relação ao driver de impressora em uso pelo Windows, sugere-se que seja instalado um driver de impressora PDF, configurando-o como impressora padrão. Embora seja chamada de impressora, não se trata de um componente físico ligado ao computador, mas sim de um conteúdo de software instalado no Windows. No Windows XP, deve-se seguir um procedimento para instalar uma impressora de arquivos PDF baseada em software freeware (não é necessário comprar uma licença de uso). Nos próximos parágrafos, está descrita uma forma de obter uma impressora PDF e como configurá-la para uso com o programa Word. No site <http://www.primopdf.com> é possível fazer o download do programa PrimoPDF (arquivo de tamanho 10.8 MB). Deve-se instalar o programa seguindo as opções default. A partir deste momento há um gerador de arquivos PDF gratuito em seu computador. Por fim, deve-se acessar o “Painel de controle > Impressoras e aparelhos de fax” e marcar a impressora PrimoPDF que aparece na lista como a impressora padrão do Windows XP. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi Após as configurações anteriores, toda vez que um documento for impresso, surgirá um quadro de diálogo para o usuário confirmar o caminho e o nome do arquivo que será gerado como, por exemplo, “C:\Meus documentos\RDIRE-2008Machado-Sub.PDF”. Sempre que for necessário editar o arquivo, deve-se certificar de que este driver de impressora está sendo usado. Importante: não é necessário imprimir o artigo no formato PDF para submetêlo a uma revista científica da AESA. A troca de arquivos com o conselho editorial das revistas continuará sendo realizado por meio de arquivos Word (DOC). No item 2.11. Retoques Finais, a seguir, é apresentado um exemplo de como selecionar a impressora PrimoPDF sem imprimir o arquivo. Após a fase de redação e formatação de um artigo nos padrões da AESA, pode-se voltar a configurar como padrão para a impressora que anteriormente estava em uso pelo Windows. 2.11. Retoques Finais Como passo final da fase de formatação do artigo, faça uma verificação do resultado do trabalho seguindo as recomendações dos itens da lista a seguir. a) Observar a ocorrência de algum “Enter” como espaço entre parágrafos, legendas, tabelas, etc. Em caso positivo, então não foram utilizados corretamente os estilos deste modelo. b) Observar se houve uso da tecla “Tab” para recuo da primeira linha de algum parágrafo. Em caso positivo, então também pode ter ocorrido algum tipo equívoco com o uso dos estilos. c) Todas as figuras e tabelas inseridas no texto necessitam de legendas. Além disso, as figuras e tabelas devem ser citadas ao longo do texto, e a apresentação deve vir após a citação, ou seja, uma figura, tabela ou equação só pode aparecer no texto após ser realizada a sua citação. Para estas regras, não há exceção. d) O parágrafo após uma tabela possui o estilo <TextoAposTabela>. e) No Word, deve-se escolher o comando “Arquivo > Imprimir...”. No quadro “Impressora” é importante certificar-se de que esteja selecionada a impressora “PrimoPDF”. Não é preciso imprimir ou mesmo encaminhar o artigo no formato PDF; basta fechar o diálogo de impressão a partir do botão “Fechar”. Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 25 26 Integração de sistemas de postagens utilizando WebService e Hibernate 2.12. Submissão do Artigo Para que um artigo seja enviado a uma revista da AESA é importante confirmar a correta nomenclatura do respectivo arquivo DOC. Não devem ser utilizados acentos e caracteres especiais, como o trema e o cedilha. O seguinte padrão deve ser seguido: [sigla da revista]-[ano]-[Sobrenome do primeiro autor]-[fase]-[X].doc Exemplos: RDIRE-2008-Machado-Sub.doc RCGER-2007-Silva-Cor-1.doc RTCOM-2008-Petronio-Cor-2.doc Para a classificação da fase, utilize as seguintes abreviaturas: Sub: versão de submissão do artigo. Cor: versão corrigida do artigo. Utilize um número inteiro seqüencial X para identificar a rodada de troca de arquivos (1, 2, 3 e assim por diante). Importante: não devem ser utilizados espaços ou trocados o caractere “-” por “_”. 3. CONSIDERAÇÕES FINAIS Nada resta senão desejar aos futuros autores boa sorte na preparação de seus artigos. A Anhanguera Educacional conta com trabalhos relevantes para publicação em suas revistas científicas. Desta forma, abre-se um importante canal para o envio de críticas e sugestões, com objetivo de alimentar o processo contínuo de melhoria da qualidade das Revistas Científicas da Anhanguera. O contato deve ser estabelecido por meio do seguinte endereço eletrônico: [email protected] Ou pela Coordenação das Revistas Científicas: [email protected] Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 Osiris Parizi AGRADECIMENTOS (ESTILO <SECAOSEMNUM>) Este arquivo de modelos teve inspiração no modelo utilizado no XVII Congresso Brasileiro de Automática, realizado em Juiz de Fora, MG, em 2008. Agradecemos aos autores originais. REFERÊNCIAS (ESTILO <SECAOSEMNUM>) BAUER, C; KING, G. .JPA com Hibernate, 2007 COSTA, V. R. À margem da lei: o Programa Comunidade Solidária. Em Pauta: revista da Faculdade de Serviço Social da UERJ, Rio de Janeiro, n. 12, p. 131-148, 1998. GOMES, L. G. F. F. Novela e sociedade no Brasil. Niterói: EdUFF, 1998. PUCCI, B.; OLIVEIRA, N. R.; SGUISSARDI, V. O ensino noturno e os trabalhadores. 2. ed. São Carlos: EdUFSCar, 1995. 148 p. REVISTA BRASILEIRA DE GEOGRAFIA. Rio de Janeiro: IBGE, 1939- . Trimestral. SÃO PAULO (Estado). Decreto nº. 42.822, de 20 de janeiro de 1998. Lex: coletânea de legislação e jurisprudência, São Paulo, v. 62, n. 3, p. 217-220, 1998. SILVA, M. M. L. Crimes da era digital. .Net, Rio de Janeiro, nov. 1998. Seção Ponto de Vista. Disponível em: <http://www.brazilnet.com.br/contexts/brasilrevistas.htm>. Acesso em: 28 nov. 1998. Marcelo Augusto Cicogna Informações sobre Marcelo... Jeanne Dobgenski Informações sobre Jeanne... Thais Sousa Informações sobre Thais... Adriano Thomaz Informações sobre Adriano... Nome da Revista Vol. V, Nº. N, Ano 2008 p. 7-27 27