UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE SISTEMAS DE INFORMAÇÃO RASCUNHO DO TRABALHO DE CONCLUSÃO DE CURSO RONY REINEHR BRAND FLORIANÓPOLIS, 2005. Sumário 1. Introdução .........................................................................................................................................3 1.1. Tema ............................................................................................................................................3 1.2. Definição do Problema .....................................................................................................................3 1.3. Escopo de Estudo............................................................................................................................3 1.4. Objetivo Geral ................................................................................................................................3 1.5. Objetivos Específicos .......................................................................................................................3 1.6. Motivação ......................................................................................................................................4 2. Contextualização do Ambiente ..............................................................................................................4 2.1. Estado atual da relação das Organizações com seus Clientes ................................................................4 2.2. Relacionamento com o Cliente ..........................................................................................................4 2.3. Ouvidoria .......................................................................................................................................4 2.4. CRM X Ouvidoria .............................................................................................................................5 2.5. A Empresa: OMD Soluções para Ouvidorias ........................................................................................5 2.5.1. 2.5.2. 2.6. 3. A Incubadora: GeNESS ................................................................................................................5 O Produto ..................................................................................................................................5 Outras Soluções Existentes em Ouvidoria...........................................................................................6 Solução: Camada de Persistência em JDO ..............................................................................................7 3.1. Camada de Persistência ...................................................................................................................7 3.2. JDO...............................................................................................................................................7 3.2.1. JDOQL .......................................................................................................................................8 3.2.2. Enhancer (Enxertador) JDO..........................................................................................................8 3.2.3. Exemplo Prático..........................................................................................................................8 4. Desenvolvimento da Camada de Persistência ..........................................................................................9 4.1. Levantamento dos Requisitos ...........................................................................................................9 4.1.1. Levantamento dos Requisitos de Persistência .................................................................................9 4.1.2. Tabela de Serviços X Requisitos de Persistência ..............................................................................9 4.2. Diagrama de Classes ..................................................................................................................... 10 4.3. Implementação dos Serviços de Persistência .................................................................................... 11 5. Comparação das Versões do Software ................................................................................................. 11 5.1. Desempenho ................................................................................................................................ 11 5.2. Portabilidade ................................................................................................................................ 11 6. Conclusão ........................................................................................................................................ 11 7. Referências Bibliográficas ................................................................................................................... 11 Anexos: ....................................................................................................................................................... 12 1. Introdução A idéia deste Trabalho de Conclusão de Curso surgiu através de um problema encontrado na Empresa OMD – Soluções para Ouvidorias, que possuí um Software para Gerenciamento de Ouvidorias. O objetivo do software é ser o mais flexível possível quanto à infra-estrutura existente na organização onde ele será implantado. Para isto o software possui três bases de sustentação: independência de navegador (browser), independência de sistema operacional e independência de banco de dados. As duas primeiras bases já estão resolvidas, uma através de testes entre diferentes navegadores e outra através do servidor Servlet/JSP TomCat, no entanto a última, a independência de banco de dados, ainda não foi desenvolvida. Assim, este trabalho realizará uma ponte entre a Universidade Federal de Santa Catarina e a empresa OMD – Soluções para Ouvidorias, dando um caráter bastante prático, que terá como produto final o Software para Gerenciamento de Ouvidorias Independente de Banco de Dados. Isto será possível utilizando a forma de Persistência de Dados JDO (Java Data Object) para a construção de uma camada de persistência de dados. 1.1. Tema O tema deste Trabalho é o estudo e aplicação de persistência de dados, utilizando JDO, para obtenção de independência de banco de dados para o Software para Gerenciamento de Ouvidorias. 1.2. Definição do Problema O problema a ser resolvido compreende o Software para Gerenciamento de Ouvidorias, fazendo com ele se torne independente de Banco de Dados. Para resolver isto será explanado um pouco sobre CRM, no entanto o foco será a Ouvidoria e o Software para Gerenciamento de Ouvidorias. Através dele, haverá uma diminuição nos custos de implantação, pois o Software possuirá uma camada de persistência que flexibilizará sua implantação utilizando, na maioria dos casos, a infraestrutura existente na organização. A tecnologia é importante e grande facilitadora, no entanto, se forem agregados custos de aquisição de Hardware e Software, podem inviabilizar sua implantação principalmente em organizações de menor porte. 1.3. Escopo de Estudo Neste trabalho será utilizada a tecnologia de persistência de dados JDO, para implementar uma camada de persistência ao Software WEB para Gerenciamento de Ouvidorias para que ele se torne Independente de Banco de Dados, facilitando seu processo de implantação, podendo ser instalado em diferentes Bancos de Dados necessitando de poucas alterações. Ao final, quando a camada de persistência estiver construída, será realizada uma análise de desempenho entre a camada atual e a camada construída com JDO. O framework de persistência de dados JDO, foi escolhido por possuir diversos fornecedores o que não ocorre com outros frameworks de persistência como é o caso de Hibernate, iBatis. Utilizando sua infra-estrutura padrão é possível trocar de fornecedor, além disso, vários fornecedores disponibilizam extensões que trazem maiores facilidade para o mapeamento objeto relacional. 1.4. Objetivo Geral Estudar JDO como forma de Persistência de Dados e aplicá-la ao Software para Gerenciamento de Ouvidoria, tornando-o Independente de Banco de Dados. 1.5. Objetivos Específicos Contextualizar o ambiente do relacionamento com os Clientes, da Ouvidoria e do Software para Gerenciamento de Ouvidorias; Estudar a forma de persistência de dados JDO; Desenvolver a camada de persistência para obtenção da independência de banco de dados. Realizar uma análise de desempenho: camada atual (JDBC) versus camada de persistência (JDO). 1.6. Motivação A motivação surgiu através de um problema encontrado pela empresa OMD Soluções para Ouvidorias, que está incubada no Centro GeNESS (Geração de Novas Empresas de Software e Serviços), desde maio de 2003. O autor deste trabalho é sócio desta empresa desde janeiro de 2004 em conjunto com o Sr. Mário Nelson Alves Jr. Este último tem o título de mestre em Administração com ênfase na área de Ouvidorias. A empresa possui um Software Livre para o Gerenciamento de Ouvidorias, tendo como base três premissas: Independência de Navegador (Browser), conseguida através de testes nos navegadores mais populares do Mercado; Independência de Plataforma de Sistema Operacional, conseguida através do Servidor Servlet/JSP - TomCat, que pode ser instalado em diversas plataformas; E por último, Independência de Banco de Dados, algo necessário ao software para facilitar seu processo de implantação, utilizando a infra-estrutura disponível na Organização, reduzindo assim custos com aquisição de softwares e equipamentos de hardware. 2. Contextualização do Ambiente 2.1. Estado atual da relação das Organizações com seus Clientes Desde a revolução industrial as organizações vêm passando por diversas mudanças e foco. Atualmente muitas destas organizações dizem ter em seus clientes seu maior patrimônio, no entanto, existem muitos clientes insatisfeitos pela forma como são atendidos pelas organizações. É possível perceber que muitas organizações, principalmente as médias e grandes organizações, atendem seus clientes de forma, por vezes, mecanizada, massificada e padronizada. É possível observar isto em serviços de call center com atendentes por vezes mal capacitados, e também em Serviços de Atendimento a Cidadão, que resolvem problemas muito gerais. Numa outra esfera existem organizações, principalmente as de pequeno porte, que tratam seus clientes de uma forma mais personalizada, conhecendo as necessidades dos clientes, ouvindo suas reclamações e sugestões para gerar melhorias nos produtos e/ou serviços. Nestas organizações geralmente os proprietários fazem este papel. No entanto, em organizações de médio e grande porte é difícil os proprietários fazerem este papel. Assim surgiu a Ouvidoria/Ombudsman, e outras tendências para melhorar o relacionamento com seu cidadão-cliente Clientes. 2.2. Relacionamento com o Cliente Neste item serão descritos alguns tópicos de Relacionamento com o Cliente: Conceito Histórico Problemas Encontrados por Organizações de Médio e Grande Porte CRM – Gerenciamento do Relacionamento com os Clientes 2.3. Ouvidoria Devido ao grande volume de serviços prestados, principalmente por organizações de médio e grande porte, alguns erros acabam passando despercebidos e se perpetuam devido à dificuldade da identificação destes problemas, causando insatisfação ou até mesmo, fuga de seus clientes-cidadãos1. Mas como corrigir estes erros? É neste panorama que a Ouvidoria está inserida. Ela visa a aproximação da relação entre a organização e seus clientescidadãos fornecendo um canal de comunicação objetivo, personalizado, a fim de ouvir quais as insatisfações, as sugestões e até mesmo os elogios apresentados pelos seus clientes. Assim, o Ouvidor, funcionário de origem interna ou externa que gerencia o funcionamento da Ouvidoria, passa ser a "voz" dos clientes-cidadãos na organização, sugerindo aos gestores da organização quais problemas estão ocorrendo e também sugestões de melhoria. Para que isto seja possível uma Ouvidoria recebe manifestações dos clientes-cidadãos da organização. Dessa forma, uma manifestação é expressão de um sentimento vivido pelo cliente-cidadão que pode revelar tanto um sentimento de agrado por um bom atendimento ou até denunciar algum ato ilícito praticado por algum funcionário da organização. Cliente-Cidadão é um termo utilizado para abranger tanto o cliente de uma organização da iniciativa privada, bem como, o cidadão que usufrui um serviço da administração pública. 1 Assim, segundo Mario Nelson Alves Jr., estas manifestações2 podem ser classificadas da seguinte forma: Reclamação: são queixas, manifestações de desagrados ou protestos. Denúncia: é mais grave do que uma reclamação; delatar um fato de caráter ético, ilícito, sigiloso ou de risco coletivo. Sugestão: proposta de mudanças, alterações de procedimentos submetidos à apreciação da instituição. Elogio: reconhecimento ou demonstração de satisfação para com o serviço recebido. Informação: fornecimento de dados sobre um serviço ou prestador de serviço. Conforme o número destas manifestações cresce, a organização passa a ter um banco de dados muito importante sobre o seu funcionamento, os problemas vividos pelos seus clientes, sugestões apresentadas, etc. Entretanto, possuir este banco de dados não é suficiente. Neste sentido entra a importância da Ouvidoria possuir um Sistema de Informação eficiente com a elaboração de relatórios e gráficos gerenciais e também possuir profissionais bem capacitados para interpretarem estes relatórios e gráficos transformando-os em informações valiosas sobre o funcionamento da Organização. Por exemplo, em quais unidades, departamentos, setores da Organização que existe maior freqüência de reclamações, quais os assuntos mais freqüentes de manifestações, entre outros. De posse destas informações é compromisso da Ouvidoria repassá-las aos gestores da organização. Por isso a Ouvidoria deve ser um órgão de apoio, conhecido também pelo termo "staff", questionando, propondo soluções baseadas nas manifestações recebidas e também que as unidades contribuam para que haja um bom funcionamento do canal de comunicação entre a organização e seus clientes. Caso não esteja neste nível, pode acontecer dos colaboradores não darem a relevância necessária e o que deveria ser um benefício pode se tornar algo que denigre a imagem/credibilidade da Organização. Desta forma, as organizações que possuem uma Ouvidoria bem implantada poderão ter resultados tais como: obtenção de um processo contínuo de melhoria organizacional e também da sua imagem, melhoria da satisfação e da fidelização dos seus clientes-cidadãos, justificando, portanto os custos envolvidos na sua implantação. 2.4. CRM X Ouvidoria Apesar CRM e Ouvidoria terem conceitos diferentes, eles podem ser complementares melhorando ainda mais seus resultados. Os dois conceitos incluem a personalização do atendimento, conhecendo as necessidades dos usuários, suas insatisfações, tentando adaptar os processos aos clientes, para trazer maior retorno a organização. Nas duas tendências, a organização precisa melhorar seus processos fazendo com que eles atendam da melhor maneira possível seu cliente-cidadão. 2.5. A Empresa: OMD Soluções para Ouvidorias A OMD Soluções para Ouvidorias nasceu a partir de uma dissertação de mestrado que demonstrou a contribuição estratégica das ouvidorias para a melhoria dos serviços prestados pelas organizações. A partir da identificação de uma oportunidade de mercado nesta área, foi elaborado e apresentado um Plano de Negócios à pré-incubadora de base tecnológica da Universidade Federal de Santa Catarina - UFSC. O projeto foi então selecionado e, desde abril de 2003, a OMD Soluções para Ouvidorias está incubada no Centro de Geração de Novos Empreendimentos em Software e Serviços - GeNESS/UFSC, recebendo capacitação técnica e gerencial para o desenvolvimento de suas atividades. 2.5.1. A Incubadora: GeNESS O Centro de Geração de Novos Empreendimentos em Software e Serviços – GeNESS tem como missão incentivar e dar suporte a criação de empresas de base tecnológica, especialmente as de software e serviços, sendo uma referência de apoio à criação de empresas qualificadas para alavancar empreendimentos na área de informática, agindo como uma ponte integradora entre os ambiente acadêmico, cientifico, industrial e de mercado de forma decisiva para a realização do potencial tecnológico no Estado de Santa Catarina. 2.5.2. O Produto O produto é composto pela consultoria para implantação do serviço de Ouvidoria em organizações públicas e privadas, bem como pela adaptação do sistema informatizado para o gerenciamento da Ouvidoria de acordo com as necessidades da Organização. Na Dissertação foi utilizado o termo solicitação, entretanto para as classificações de elogio e sugestão este termo é muito restrito, por isso este termo foi substituído por manifestação, que abrange todas as classificações. 2 CONSULTORIA PARA IMPLANTAÇÃO E ORGANIZAÇÃO DA OUVIDORIA A Consultoria e adaptação do sistema informatizado para o gerenciamento das manifestações apresentadas, compreende as seguintes etapas: 1. Diagnóstico Organizacional - Levantamento de dados e informações sobre a Organização e os serviços prestados aos usuários. 2. Elaboração do Projeto de Implantação da Ouvidoria - Proposição do “modelo conceitual” da Ouvidoria, incluindo a indicação da infra-estrutura necessária para estruturação do serviço na Organização. 3. Estabelecimento do workflow da Ouvidoria - Definição dos fluxos, prazos e responsabilidades para encaminhamento das manifestações apresentadas pelos usuários, consolidados no Manual de Normas e Procedimentos da Ouvidoria. 4. Implantação do sistema informatizado para gerenciamento da Ouvidoria - Instalação e configuração do software para gerenciamento da Ouvidoria, de acordo com as necessidades da Organização. 5. Endomarketing e Capacitação - Preparação da equipe de Ouvidoria e realização de Seminário de Sensibilização para os demais envolvidos. 6. Operacionalização da Ouvidoria - Acompanhamento da implantação das formas de atendimento da Ouvidoria, aplicável de acordo com o modelo de funcionamento proposto: atendimento pessoal, internet, atendimento telefônico, carta/fax, caixa de sugestões nas unidades, etc. SISTEMA INFORMATIZADO PARA GERENCIMENTO DE OUVIDORIAS O software permite a emissão de gráficos e relatórios gerenciais com informações sobre as manifestações mais freqüentes, transformando a Ouvidoria numa poderosa ferramenta gerencial para identificar áreas da Organização que estejam merecendo maior atenção dos gestores, sob a ótica do principal interessado: O CLIENTE-CIDADÃO. Principais Características: Distribuído na forma de “software livre”. Fácil adaptação aos equipamentos e softwares já existentes na Organização. Pode ser acessado pela Internet de qualquer Sistema Operacional (Windows, Linux) e também de qualquer Navegador (Internet Explorer, Mozilla, Firefox, Opera). Emprega a Tecnologia JAVA/WEB (JSP/SERVLET), não sendo necessária a instalação do software para cada usuário. Utiliza qualquer Banco de Dados Relacional (SQL). Registra e controla o recebimento de manifestações originadas por qualquer forma de atendimento: call center, atendimento pessoal, internet, carta, fax, caixa de sugestões, etc. Gerencia o encaminhamento das manifestações para as áreas responsáveis pela resposta na Organização, acompanhando os prazos estabelecidos. Encaminha respostas para o cidadão, disponibilizando-as para call center, Internet, carta, fax, etc. Permite a emissão de gráficos e relatórios gerenciais dinâmicos drill-down (recurso que permite ligação entre relatórios, possibilitando gerar relatórios gerenciais de alto nível, até uma manifestação específica). Possibilita efetuar diversas configurações no Sistema, mesmo quando está ativo (configuração on-line). 2.6. Outras Soluções Existentes em Ouvidoria Identificação de soluções existentes no mercado, verificando pontos fortes e fracos e também comparara-las ao Software para Gerenciamento de Ouvidorias da empresa OMD – Soluções para Ouvidorias. No mercado onde etá inserida a empresa OMD Soluções para Ouvidorias, a maior parte dos concorrentes têm seu foco voltado para a “terceirização” do serviço de ouvidoria, ou seja, as organizações interessadas contratam a prestação deste serviço por um período certo ou indeterminado. Tal situação descaracteriza um dos princípios básicos da Ouvidoria: o estabelecimento de um canal de comunicação entre o cliente-cidadão e o “proprietário” ou “gestor” da organização. A empresa Infoexpert, com sede em Recife-PE, oferece um sistema chamado PROVEDORIA que se propõe a manter a organização informada das falhas ou acertos dos procedimentos adotados, que foram observados pelo usuário desde o início do seu atendimento, inclusive durante o período de pós-atendimento. A partir dessas informações, uma equipe de assessores e especialistas da própria organização, interage com o sistema para corrigir e ajustar os mecanismos e processos, visando garantir uma maior eficiência dos serviços ofertados. Esta empresa está no mercado desde 1999 e maior parte de seus clientes localiza-se na região Nordeste. O software é alugado para seus clientes através de contratos anuais, sendo que seu preço varia entre R$ 250,00 a 900,00/mês por ponto instalado, conforme a complexidade e número de usuários. Um concorrente que se aproxima do produto oferecido pela OMD Soluções para Ouvidorias, atua sob o nome Ombudsman Associados, com sede em São Paulo–SP. Oferece serviço de consultoria voltada para administração pública, incluindo a implantação do serviço de Ouvidoria / Ombudsman, desde a fase de orientação e convencimento da organização (estratégia) , diagnóstico / prognóstico, formatação, comunicação, posicionamento, até seu pleno funcionamento de maneira pro-ativa. Entretanto, com relação ao sistema de informações, não há um produto pronto. Outro grupo de concorrentes é formado por empresas de software não especializadas no desenvolvimento de soluções para ouvidorias. Normalmente o sistema para gerenciamento da demanda da ouvidoria é agregado como mais uma parte do pacote de informatização da organização, como é o caso do produto oferecido pela Cetil Informática, com sede em Blumenau-SC, Soft Micro, com sede em Araçatuba-SP, Softsul – Sociedade Sul-Riograndense de Apoio ao Desenvolvimento de Software e Betha Sistemas Ltda., com sede em Criciúma-SC. Ainda há aqueles que prestam consultoria além do fornecimento do software. É o caso da Ombudsm@n Service, Target Consultoria, com sede em São Paulo-SP e Ouvidoria IPM - IPM Automação e Consultoria Ltda., com sede em Porto Alegre-RS. A própria Associação Brasileira de Ouvidores/Ombudsman – ABO, com sede em São Paulo–SP, presta consultoria para implantação de ouvidorias e a relazação de cursos na administração pública e privada. Verifica-se também que algumas empresas de software desenvolvem apenas o sistema informatizado para gerenciamento da demanda da ouvidoria, normalmente agregando este pacote a um produto maior já instalado na organização. Em comparação com essas empresas, a OMD Soluções para Ouvidorias destaca-se pela consultoria prévia realizada nas dependências da organização, com o objetivo de estabelecer os fluxos, responsabilidades e prazos para encaminhamento das manifestações. Aliado a este fator, o sistema informatizado permite a emissão de gráficos e relatórios gerenciais com informações sobre as ocorrências mais freqüentes, transformando a ouvidoria numa poderosa ferramenta gerencial para identificar áreas da organização que estejam merecendo maior atenção dos gestores, sob a ótica do principal interessado: O CLIENTE; e assim servir de suporte ao processo de tomada de decisões. Outro aspecto importante diz respeito à localização geográfica, tendo em vista que as empresas concorrentes estão situadas em outros Estados, os custos relativos à implantação de ouvidorias em Santa Catarina (passagens e diárias) seriam menores que os da concorrência. Especialmente no Estado de Santa Catarina, onde não há empresas já consolidadas exclusivamente nesta área, a entrada de uma nova empresa no mercado é mais acessível. Além disso, a empresa pioneira pode torna-se um referencial para o mercado. 3. Solução: Camada de Persistência em JDO Este trabalho compreenderá a implementação de uma camada de persistência de dados utilizando JDO, que resolverá o problema existente no Software para Gerenciamento de Ouvidorias tornando-o Independente de Banco de Dados. Neste capítulo será desvendada a forma persistência de dados JDO, por isso, serão definidos alguns conceitos que permeiam a persistência de dados, o JDO, além da construção de um exemplo utilizando JDO, para no quarto capítulo demonstrar o Desenvolvimento da Camada de Persistência. 3.1. Camada de Persistência Camada de Persistência é uma aplicação que visa diminuir a complexidade e tornar mais transparente o armazenamento de dados, principalmente quando existem dois mundos diferentes a exemplo da Orientação a Objetos, onde cada entidade do mundo real é um objeto, tendo de conviver normalmente com Bancos de Dados Relacionais, onde cada entidade do mundo real se torna uma linha de uma tabela, além de possuir diversas diferenças no dialetos de SQL (Structured Query Language), que dificultam bastante a troca de um Banco de Dados Relacional para outro. Para isto construí-se uma camada de persistência, normalmente baseada em alguma API, Template ou Framework de Persistência, a exemplo de JDO, Hibernate, SQLMaps, EJB, entre outros. Estas tecnologias auxiliam bastante o desenvolvedor desta camada de persistência, pois diminui substancialmente a quantidade de código a ser escrito, pois já existem diversas funcionalidades comuns de armazenamento implementadas e outras funcionalidades são obtidas através da especificação de meta dados em XML ou em arquivos de texto, não necessitando recompilação de classes. 3.2. JDO Em 1999, o desenvolvimento da API JDO foi iniciado em 1999 como parte da JCP e teve sua primeira versão lançada em 2002. Ela é uma API que visa facilitar a construção de uma camada de persistência, fazendo com que a camada lógica independa se os dados são persistidos em arquivos, bancos de dados relacionais ou mesmo bancos de dados orientados a objetos. Sua implementação padrão do JDO é o JPOX (Java Persistence Objects) que o JDO voltou a ganhar força, pois a Sun estava preste a descontinuá-lo. Já que ela financiava dois projetos “semelhantes” de persistência o EJB e o JDO. Mas em uma reunião dos fornecedores que compõem o JAVA, viu-se que a duas tecnologias possuíam cada um seu espaço, o EJB devido a sua complexidade deveria ser utilizado em projetos grandes que são críticos, seja pelo número de acessos, número de transações, entre outros. Ele também exige que a aplicação esteja em algum servidor de aplicação, como o JBoss. Já com JDO não existe tal exigência, ele pode estar em aplicações locais e também em servidores WEB como é caso do TomCat, que é utilizado pela maioria das aplicações WEB, sem contar que o seu aprendizado é muito mais suave comparado a EJB. A implementação do JDO é muito mais simples do que os EJBs (Enterprise Java Beans), pois utilizam POJOs (Plain Old Java Objects), que não nada mais são do que Java Bean, com construtor padrão sem parâmetros e métodos get e set para acessar suas propriedades. Ele também é uma solução muito mais leve, podendo utilizá-lo em pequenos e médios projetos. Depois que o Java Bean é compilado e ele passa pelo Enhancer que modifica o bytecode, para que ela passe a implementar a interface PersistentCapacle, de acordo com os metadados especificados para o Objeto, permitindo a persistência dos seus dados. Dessa forma, o trabalho do desenvolvedor é muito mais facilitado, pois ele continua construindo suas classes da mesma forma, bastando apenas especificar o metadados do Objeto e construir uma classe que utilize PersistenceManager que servirá de “Fachada” (Padrão de Projeto Facade) para os Objetos Persistidos. Outra vantagem da API JDO é o fato de existirem diversos fornecedores que possuem uma implementação e também uma linguagem de consulta a JDOQL padrão, assim, se utilizarmos a implementação padrão poderemos trocar de fornecedor sem maiores problemas, algo bastante diferente da linguagem SQL(Structure Query Language) onde cada fornecedor possui sua implementação da SQL, podendo tornar a troca de fornecedor algo bastante trabalhoso e com um tempo considerável. Além disso, muitos fornecedores disponibilizam, seja de forma gratuita ou paga, extensões que adicionam novas funcionalidades ao JDO e também a JDOQL. 3.2.1. JDOQL É a linguagem de consulta utilizada por todas as implementações JDO. Ela é bastante parecida com o Java, não necessitando uso de SQL. Através dela podemos realizar comparações entre objetos, tipos primitivos encontrado no Java, ela também permite a ordenação e procura por determinados Strings. Assim, essa linguagem nos permite realizar consultas bastante complexas, sem a necessidade de aprender uma linguagem como o SQL, mesmo sem a utilização de extensões. Se utilizarmos extensões possuiremos em nossas mãos uma linguagem ainda mais poderosa, com a ressalva que de nem todos os fornecedores implementam as mesmas extensões. Ao obter um objeto persistido é possível definir se deseja obter todo o grafo de relacionamento, ou apenas alguns relacionamentos ou ainda somente o objeto persistido sem seus relacionamentos. Isto torna o JDO muito flexível e gerenciar totalmente o volume de dados que serão retornados através de uma consulta. 3.2.2. Enhancer (Enxertador) JDO O Enhancer JDO é a ferramenta responsável por implementar a classe PersistenceCapable para todas as classes da aplicação que serão persistidas, possibilitando assim seu gerenciamento pelo JDO. Está implementação pode ocorrer tendo como base o código fonte ou o byte-code da classe. Caso está implementação seja feita no código fonte, podese perder as referências de linhas no caso de debug e também não é aconselhável que estas classes sejam colocadas em um sistema de controle de versão, a exemplo de CVS. Por isso, é aconselhável que está implementação seja feita utilizando os byte-codes e que está tarefa seja automatizada utilizando tarefas Ant ou Maven, pois será uma tarefa realizada diversas vezes via linha de comando, torna-se uma tarefa bastante trabalhosa. Entretanto, isto não será aprofundado porque ultrapassa o escopo desse trabalho. Para mais informações sobre esta automatização consulte a Documentação que se encontra no site do JPOX. 3.2.3. Exemplo Prático Descrever um exemplo prático de utilização de JDO, com sua implementação padrão o JPOX. Possivelmente será utilizado o exemplo que se encontra no site do JPOX, o JPoxClinic, que integra o JPOX ao Framework Spring, possibilitando uma melhor integração entre a camada de persistência e a camada lógica além de tornar mais organizados os diversos meta dados e configurações de um sistema. 4. Desenvolvimento da Camada de Persistência A partir disto, serão iniciadas as etapas relacionadas ao desenvolvimento da Camada de Persistência 4.1. Levantamento dos Requisitos Relacionar quais os Requisitos do Sistema Informatizado para Gerenciamento de Ouvidorias. 4.1.1. Levantamento dos Requisitos de Persistência A partir dos Requisitos do Software definidos, será realizada uma análise, verificando quais deles demandam persistência de dados. 4.1.2. Tabela de Serviços X Requisitos de Persistência Como base nos Requisitos de Persistência, estes serão reunidos em Serviço de Persistência que serão implementados. E será definida a ordem em que esses serviços serão implementados. 4.2. Diagrama de Classes 4.3. Implementação dos Serviços de Persistência Descrever os serviços de persistência que serão desenvolvidos, bem como quais requisitos serão implementados em cada um dos serviços. 5. Comparação das Versões do Software Ao final do Desenvolvimento da Camada de Persistência de Dados, será realizada uma análise de desempenho e portabilidade, comparando a atual camada de Acesso Direto a Banco de Dados utilizando JDBC, com a camada de persistência de dados construída em JDO. 5.1. Desempenho Descrever e aplicar critérios de desempenho visando comparar duas camadas. 5.2. Portabilidade Descrever e aplicar critérios de portabilidade visando comparar duas camadas. 6. Conclusão Ouvir ao cliente-cidadão é muito importante, pois conhecendo suas necessidades, suas sugestões, suas reclamações e também seus elogios as organizações terão medidas para sua melhora contínua. É nesta área que a Ouvidoria atua, buscando a melhoria das organizações e da satisfação de seu cliente-cidadão. A Tecnologia dá apoio necessário para a tabulação das informações, identificando áreas que precisem de maior atenção através de relatórios e gráficos gerenciais. É neste contexto que está inserido o Software para Gerenciamento para Ouvidorias e este Trabalho de Conclusão de Curso onde será construída a camada de persistência que dará flexibilidade ao software podendo então, ser instalado em qualquer Banco de Dados Relacional. 7. Referências Bibliográficas Alves Jr., Mário Nelson. A CONTRIBUIÇÃO ESTRATÉGICA DAS OUVIDORIAS PARA A MELHORIA DOS SERVIÇOS PRESTADOS PELAS ORGANIZAÇÕES: UM ESTUDO DE CASO NA SECRETARIA DE ESTADO DA SAÚDE DE SANTA CATARINA. Dissertação de Mestrado. UDESC, Florianópolis, 2002. Disponível em <www.omd.com.br/docs.htm>. Acesso em 05 de Dezembro de 2004. MARAFON, Tiago Antônio. Camada de Persistência em Java Estudo Comparativo entre EJB, JDO e Hibernate. Trabalho de Conclusão de Curso. UFSC, Florianópolis, 2005. OMD Soluções para Ouvidorias. Disponível em <www.omd.com.br>. Acesso em 01 de Junho de 2005. OMD Soluções para Ouvidorias. Plano de Negócios OMD Soluções para Ouvidorias. Florianópolis. Junho de 2005. OMD Soluções para Ouvidorias. Apostila do Curso de Capacitação de Ouvidores – Módulo I. Florianópolis. Novembro de 2004. OMD Soluções para Ouvidorias. Apostila do Curso de Capacitação de Ouvidores – Módulo II. Florianópolis. Julho de 2005. JPOX Java Persistence Objects. Disponível em: <http://www.jpox.org/>. Acesso em 03 de agosto de 2005. Anexos: Telas do Software Código Fonte