UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado) FERRAMENTA PARA ADMINISTRAÇÃO DE UM SISTEMA GERENCIADOR DE SUBMISSÕES BATCH RELATÓRIO DE ESTÁGIO SUPERVISIONADO SUBMETIDO À UNIVERSIDADE REGIONAL DE BLUMENAU PARA A OBTENÇÃO DOS CRÉDITOS DE DISCIPLINA COM NOME EQUIVALENTE NO CURSO DE CIÊNCIAS DA COMPUTAÇÃO - BACHARELADO MARCIO ELIAS GONÇALVES BLUMENAU, JUNHO DE 1999. 1999/1-42 FERRAMENTA PARA ADMINISTRAÇÃO DE UM SISTEMA GERENCIADOR DE SUBMISSÕES BATCH MARCIO ELIAS GONÇALVES ESTE TRABALHO DE ESTÁGIO SUPERVISIONADO FOI JULGADO ADEQUADO PARA OBTENÇÃO DOS CRÉDITOS DA DISCIPLINA DE TRABALHO DE CONCLUSÃO DE CURSO OBRIGATÓRIO PARA OBTENÇÃO DO TÍTULO DE: BACHAREL EM CIÊNCIAS DA COMPUTAÇÃO Prof. Everaldo Artur Grahl — Supervisor na Furb Clóvis Murilo Vasselai — Orientador na Empresa Prof. José Roque Voltolini da Silva — Coordenador na FURB do Estágio Supervisionado BANCA EXAMINADORA Prof. Everaldo Artur Grahl Prof. Wilson Pedro Carli Prof. Luiz Heinzen ii DEDICATÓRIA Dedico este trabalho de conclusão de curso à minha família, e em especial aos meus pais Elias e Leonilda Maria Gonçalves, pelo esforço que fizeram para que eu chegasse até aqui. Dedico também à minha namorada, Silene Dalmolin , pelo incentivo e apoio durante a realização deste trabalho. iii AGRADECIMENTOS Gostaria de agradecer à Teclógica Serviços em Informática Ltda e em especial os Srs. Clóvis Murilo Vasselai e Luiz Carlos Scheid pelo grande apoio e compreensão no decorrer deste trabalho, bem como comentar também o quanto é bom trabalhar com estes profissionais qualificados. Agradecer ao professor Everaldo Artur Grahl, pelo incentivo, orientação e atenção dispensada durante a supervisão do estágio. Por fim, agradeço a todos que de um modo ou outro influenciaram na conclusão deste trabalho. iv SUMÁRIO Dedicatória ...........................................................................................................................iii Agradecimentos .................................................................................................................... iv Sumário ................................................................................................................................. v Listas de figuras.................................................................................................................. viii Resumo.................................................................................................................................. x Abstract ................................................................................................................................ xi 1 Introdução........................................................................................................................... 1 1.1 Origem............................................................................................................................ 1 1.2 Objetivos ........................................................................................................................ 2 1.3 Organização .................................................................................................................... 2 2 Conceitos de Banco de Dados............................................................................................ 4 2.1 Sistemas de Banco de Dados ........................................................................................... 4 2.2 Arquitetura de um Sistema de Banco de Dados ............................................................... 6 2.3 Banco de Dados Relacional............................................................................................. 6 2.4 Banco de Dados ORACLE.............................................................................................. 7 2.5 Estruturas do Banco de Dados Oracle.............................................................................. 8 2.5.1 Estruturas Lógicas ........................................................................................................ 9 2.5.2 Estruturas Físicas ........................................................................................................ 11 3 Ferramentas de Desenvolvimento .................................................................................... 12 3.1 FORMS 4.5................................................................................................................... 12 3.1.1 Navegador .................................................................................................................. 15 3.1.2 Editores e Propriedades............................................................................................... 16 3.2 Reports 2.5.................................................................................................................... 17 v 3.2.1 Navegador .................................................................................................................. 19 3.2.2 Editores do REPORT 2.5 ............................................................................................ 20 4 Ferramenta CASE DESIGNER/2000............................................................................... 23 4.1 Introdução..................................................................................................................... 23 4.2 Método CASE da ORACLE.......................................................................................... 23 4.3 Ferramentas do DESIGNER/2000 1.3.2 ........................................................................ 24 4.3.1 Entity Relationship Diagrammer ................................................................................. 25 4.3.2 Data Flow Diagrammer............................................................................................... 26 4.3.3 Function Hierarchy Diagrammer................................................................................. 26 4.3.4 Data Schema............................................................................................................... 27 4.3.5 Module Structure Diagrammer.................................................................................... 27 4.3.6 Forms Generator ......................................................................................................... 27 4.3.7 Reports Generator....................................................................................................... 28 5 Estrutura do Sistema Operacional Unix ........................................................................... 29 5.1 Histórico do Sistema Operacional UNIX...................................................................... 29 5.2 Recursos do Unix.......................................................................................................... 30 5.3 Sistema Hierárquico de Arquivos .................................................................................. 33 5.4 Multitarefa .................................................................................................................... 33 5.5 Multiusuário.................................................................................................................. 34 6 Sistema de Utilitários da Souza Cruz ............................................................................... 35 6.1 Histórico ....................................................................................................................... 35 6.2 Impactos com a Migração ............................................................................................. 35 6.3 Visão Geral................................................................................................................... 36 6.4 Modelo de Dados da Submissão Batch.......................................................................... 37 6.5 Funcionamento do Scheduler ........................................................................................ 37 vi 6.5.1 Pedidos de Execução de Processos.............................................................................. 38 6.5.2 Pedidos de Impressão.................................................................................................. 38 7 Interface do Administrador do Sistema............................................................................ 39 7.1 Apresentação e Objetivos da Ferramenta....................................................................... 39 7.2 Especificação da Ferramenta ......................................................................................... 40 7.3 Módulos da Ferramenta do Administrador.................................................................... 40 7.3.1 Tela Principal ............................................................................................................. 41 7.3.2 Itens do Menu Opções ................................................................................................ 42 8 Conclusões ...................................................................................................................... 55 Referências Bibliográficas ................................................................................................... 56 Glossário e Termos....................................................................................................................58 Anexo 1 Modelo Entidade Relacionamento do Sistema de Submissão Batch ..................... 599 Anexo 2 Modelo Entidade Relacionamento da Ferramenta Interface do Administrador........ 68 Anexo 3 Modelo Físico de Dados da Ferramenta Interface do Administrador....................... 70 Anexo 4 Modelo Hierárquico dos Módulos da Ferramenta Interface do Administrador ........ 72 Anexo 5 Relatórios da Ferramenta Interface do Administrador ............................................ 74 vii LISTA DE FIGURAS Figura 1 : Sistema de banco de dados......................................................................................... 4 Figura 2 : Níveis da arquitetura de um banco de dados ............................................................... 6 Figura 3 : Visão geral das ferramentas do FORMS 4.5 ............................................................ 12 Figura 4 : Visão de um módulo form base table block .............................................................. 13 Figura 5 : Visão de um módulo form control block................................................................... 14 Figura 6 : Componentes de um form ........................................................................................ 15 Figura 7 : Object Navigator do FORMS 4.5 ............................................................................. 16 Figura 8 : Visão geral das ferramentas do REPORTS 2.5 ......................................................... 17 Figura 9 : Componentes de um report ...................................................................................... 19 Figura 10 : Object Navigator do REPORTS 2.5 ....................................................................... 20 Figura 11 : Data model editor .................................................................................................. 21 Figura 12 : Layout editor.......................................................................................................... 21 Figura 13 : Tela de parâmetros em um report........................................................................... 22 Figura 14 : Tela principal do DESIGNER/2000 1.3.2............................................................... 25 Figura 15 : Arquitetura modular do UNIX................................................................................ 31 Figura 16 : Tela principal da ferramenta Interface do Administrador........................................ 41 Figura 17 : Menu da ferramenta Interface do Administrador .................................................... 42 Figura 18 : Inicialização do scheduler ...................................................................................... 43 Figura 19 : Finalização do scheduler ........................................................................................ 44 Figura 20 : Tela de configuração do scheduler ......................................................................... 45 Figura 21 : Log de execução do scheduler................................................................................ 47 Figura 22 : Log de impressão do scheduler............................................................................... 47 Figura 23 : Tela de parâmetros dos relatórios da ferramenta Interface do Administrador .......... 48 viii Figura 24 : Tela de manutenção das filas de execução.............................................................. 49 Figura 25 : Tela de manutenção dos limites de submissão batch............................................... 50 Figura 26 : Tela de transferência de jobs programados ............................................................. 52 Figura 27 : Tela de manutenção dos formulários de impressão ................................................. 53 ix RESUMO Este trabalho descreve manutenções e melhorias sucedidas na aplicação de submissão batch do Sistema de Utilitários da Souza Cruz e relata também os estudos realizados com a intenção de viabilizar a execução deste projeto. Os temas descritos neste trabalho abordam sistemas operacionais (UNIX) , banco de dados (ORACLE), ferramentas CASE (DESIGNER/2000) e ferramentas de desenvolvimento (FORMS, REPORTS). Dentro das manutenções previstas para a submissão batch de processos do Sistema de Utilitários da Souza Cruz foi desenvolvido uma ferramenta para o administrador do sistema utilizando como recursos de desenvolvimento FORMS e REPORTS da ORACLE em modo caracter mode. Esta nova versão do sistema de submissão batch encontra-se no momento em fase de implantação. x ABSTRACT This work describes the maintenance and updating of the submission batch of the utility system of Souza Cruz and also shows the studies involved in the preparation of this project. The subjects described in this work are operational system (UNIX), database (ORACLE), tools CASE (DESIGNER/2000) and developing tools (FORMS, REPORTS). In the expected maintenance of the submission batch of the utility system of Souza Cruz, it was developed a special tool for the administrator of the system, using as developing resources the FORMS and REPORTS of ORACLE in caracter mode. This new version of the batch submission system is under the implantation phase at the moment. xi 1 1 INTRODUÇÃO 1.1 ORIGEM A crescente demanda de produtos e serviços nas empresas faz com que aumente também a massa de informações sobre os mais variados assuntos nas empresas. Estas informações são recursos muito valiosos para as empresas. Diante disto, a empresa Souza Cruz tem a preocupação de gerenciar da melhor maneira possível suas informações, provendo maior segurança e técnicas mais rápidas para a recuperação e processamento de seus dados. O Sistema de Utilitários da Souza Cruz conhecido como DUT (sigla que o identifica) é um sistema com essas características e que possui duas funções distintas: a) controle de acesso dos programas às bases de dados; b) gerência dos pedidos de submissão batch dos usuários. A segurança da informação hoje é um ponto muito significativo para as empresas e é algo tratado com muita cautela, pois existem dentro de uma companhia informações dos mais variados tipos. É através do controle dos programas à base de dados que o sistema DUT consegue manter de forma mais segura o controle de seus dados, não deixando que programas executem em sites não permitidos, que usuários executem funções não cabíveis aos seus perfis , e que dados sejam manipulados por programas não liberados [CAS96]. Um outro aspecto importante para as empresas hoje é a viabilidade de utilizar os recursos computacionais com o intuito de melhorar a qualidade de seus sistemas (como também a estrutura de seus negócios) para uma maior satisfação dos usuários. Com esta intenção, o DUT implementa também um gerenciamento do pedidos de submissão batch dos usuários que é um recurso utilizado para executar nos seus servidores relatórios complexos (Oracle Reports Character Mode), programas PL em SQLPLUS e shells em UNIX [MIT95]. Assim então, os usuários podem executar programas em background (processos que executam independente da sessão do usuário), determinar prioridades para estes programas, visualizar relatórios, visualizar log’s de execução, apontar filas de impressão para processos já executados e aproveitar desta maneira melhor os recursos de informática da empresa. Um ponto bastante importante também é que, com a execução em background, os usuários podem utilizar seus terminais (micro computadores) normalmente para continuarem seus trabalhos, 2 sem a necessidade de ficar com a máquina presa até o final da execução dos programas [CAS96]. O sistema de utilitários da Souza Cruz (DUT) representa hoje para a empresa uma grande ferramenta e é utilizado por todas as suas unidades no país, porém necessita de grandes modificações e implementações para suprir as necessidades atuais da empresa. 1.2 OBJETIVOS O objetivo principal deste estágio é prover manutenções e melhorias necessárias na aplicação submissão batch do sistema de utilitários da Souza Cruz (DUT), isto para tornar as submissões batch nos servidores mais robustas (visto que no momento atual a aplicação possui problemas e necessita de novos recursos). Será desenvolvida uma ferramenta em FORMS e REPORTS da ORACLE para que o administrador responsável pelas submissões possa monitorar os processos submetidos. Para isto, será utilizada a ferramenta DESIGNER/2000 da ORACLE para prover as atualizações necessárias no modelo de dados do sistema. 1.3 ORGANIZAÇÃO A seguir serão descritos brevemente o assunto abordado em cada capítulo do trabalho. No segundo capítulo serão vistos os conceitos básicos de banco de dados relacional como também conceitos específicos e a funcionalidade do banco de dados ORACLE, isto com o objetivo de aprofundar o conhecimento sobre o ambiente de trabalho do Sistema de Utilitários da Souza Cruz. O terceiro capítulo aborda as ferramentas de desenvolvimento FORMS e REPORTS da ORACLE, procurando dar uma visualização rápida de como são os procedimentos de desenvolvimento nestes ambientes. No quarto capítulo será abordado como segue o processo de documentação e desenvolvimento de software na ferramenta CASE DESIGNER/2000. O quinto capítulo apresenta a estrutura do sistema operacional UNIX, visto que o sistema de submissões batch da Souza Cruz utiliza este tipo de plataforma. 3 No capítulo 6 é apresentado um breve histórico e explanado o funcionamento do Sistema de Utilitários da Souza Cruz referente às submissões batch, isto justamente para visualizar o sistema e facilitar o entendimento dos conceitos implementados na nova ferramenta para o administrador do sistema. No sétimo capítulo é apresentada a ferramenta Interface do Administrador, procurando descrever os objetivos para os quais foi projetada e descrever o seu funcionamento. No oitavo capítulo são apresentadas as principais conclusões e sugestões do trabalho. 4 2 CONCEITOS DE BANCO DE DADOS Este capítulo tem como objetivo prover ao leitor conceitos básicos de banco de dados relacional como também conceitos específicos e a funcionalidade do banco de dados ORACLE. 2.1 SISTEMAS DE BANCO DE DADOS Sistema de banco de dados é basicamente um sistema de manutenção de registros por computador – ou seja, um sistema cujo objetivo global é manter informações e torná-las disponíveis quando solicitadas. Trata-se de qualquer informação significativa ao indivíduo ou à organização servida pelo sistema – em outras palavras, que seja necessária ao processo de tomada de decisão daquele indivíduo/organização. A figura 1 mostra uma visão de um sistema de banco de dados [DAT91]. GERENCIADOR DO SISTEMA DE BANCO DE DADOS (DBMS). BANCO DE DADOS PROGRAMAS DE APLICAÇÃO USUÁRIOS FINAIS Fonte: [DAT91] Figura 1. Sistema de banco de dados 5 A figura 1 mostra que um sistema de banco de dados envolve quatro componentes principais [DAT91]: a) Dados: consiste na totalidade dos dados armazenados em um banco de dados. Uma série de arquivos agrupados que aparecem para o usuário como se fosse um único arquivo de dados. Estes dados são integrados e podem ser compartilhados entre diversos usuários ou serem de uso exclusivo de um único usuário; b) Hardware: é a plataforma onde reside o banco de dados. É considerado um fator determinante em questões que envolvam o compartilhamento do banco de dados, ou seja, se o banco de dados será utilizado por vários usuários ou se apenas será utilizado por um único usuário; c) Software: é a interface entre o banco de dados físico e os usuários do sistema. Todas as solicitações de acesso ao banco de dados feitas pelos usuários são manipuladas por estes softwares, os quais são comumente conhecidos como Sistema Gerenciador de Banco de Dados (SGDB), nome que provêm do inglês Database Management System (DBMS). Sua função é isolar os usuários do banco de dados dos detalhes a nível de hardware, ou seja, fazer com que os usuários tenham uma visão do banco de dados acima do nível de hardware, suportando suas operações de manipulação dos dados como inserções, exclusões, alterações e consultas a um nível mais alto e amigável; d) Usuários: os usuários são o conjunto de pessoas que irão acessar as informações armazenadas em um banco de dados. Existem três grandes classes de usuários: os programadores de aplicações, que seriam responsáveis pela definição de programas que utilizam alguma linguagem de programação de aplicativos de banco de dados; os usuários finais, que interagem com o sistema a partir de um terminal on-line, utilizando alguma aplicação ou linguagem de consulta; e os administradores de banco de dados, que seria uma pessoa ou um grupo de pessoas que detêm a responsabilidade central sobre os dados armazenados no banco. 6 2.2 ARQUITETURA DE UM SISTEMA DE BANCO DE DADOS Segundo [DAT91], na maioria dos sistemas de banco de dados pode-se dividir a arquitetura dos sistemas em três níveis gerais chamados: a) nível interno: este nível é o mais próximo ao armazenamento físico do dados, isto é, relaciona-se à forma de como os dados são realmente armazenados; b) nível externo: este é o nível mais próximo aos usuários, ou seja, é a forma como os dados são vistos pelos usuários de forma individual; c) nível conceitual: é o nível intermediário entre o nível interno e externo, sendo então, toda a representação de informações do banco de dados. A figura 2 ilustra este níveis da arquitetura de um sistema de banco de dados: Nível Externo (visões do usuário) Nível Conceitual (visão do conjunto de usuários) Nível Interno (visão do armazenamento) Fonte: [DAT91] Figura 2. Níveis da arquitetura de um banco de dados 2.3 BANCO DE DADOS RELACIONAL Segundo [DAT91], um banco de dados é conhecido como relacional quando seus dados são vistos pelo usuário somente como um conjunto de tabelas, onde as informações 7 ficam armazenadas em tabelas (logicamente) de acordo com os tipos de informação e estruturas. As tabelas de um banco de dados são definidas por linhas e colunas onde ficam armazenados os dados. Cada coluna pode armazenar um determinado tipo de informação podendo possuir características próprias como tipo de dado e tamanho. Já cada linha da tabela corresponde aos registros que serão eventualmente armazenados no banco. Cada linha de uma tabela pode também possuir uma chave que a identifique unicamente. Esta chave pode ser uma coluna ou um conjunto de colunas cujos valores não são duplicados e também não são nulos. 2.4 BANCO DE DADOS ORACLE O ORACLE é um sistema gerenciador de banco de dados relacional (RDBMS) que possibilita o armazenamento de um grande volume de informações e torna estas disponíveis para manipulação por parte dos usuários. Os dados são armazenados na forma de tabelas bidimensionais (linhas e colunas) e entre estas tabelas podem ser definidos relacionamentos. O ORACLE é mais que um conjunto de programas que facilitam o acesso aos dados, podendo ser comparado a um sistema operacional sobreposto ao sistema operacional do computador onde reside. Possui suas próprias estruturas de arquivo, de buffer, memória e uma capacidade de se ajustar muito além das capacidades fornecidas no sistema operacional. O ORACLE controla seus próprios processos, monitora seus registros, faz consistências e limpezas de memória. O banco de dados ORACLE quando está em operação, consiste de uma série de eventos que acontecem sobre o banco. Segundo [ORA92], os principais tipos de eventos que podem ocorrer são: a) transações: unidade lógica de trabalho composta por um ou mais comandos SQL, executados por um único usuário. No ORACLE, os efeitos de uma transação podem ser aplicados definitivamente ao banco de dados com um comando commit ou desfeitos através de um comando rollback. Contudo, uma transação começa com a execução de um comando SQL pelo usuário e termina 8 com a execução de um commit (aplicando os efeitos da transação ao banco de dados) ou com um rollback (desfazendo os efeitos da transação); b) bloqueio (locks): bloqueios são mecanismos utilizados para controlar o acesso concorrente a um determinado recurso. Sua principal finalidade é evitar que uma transação destrua os efeitos de outra transação. Os locks podem ser de dois tipos, os causados pelos comandos do tipo DML (Data Manipulation Language) e os causados por comandos do tipo DDL (Data Definition Language). Os locks são utilizados para realizar duas importantes metas, a consistência (assegura que os dados vistos ou alterados por um usuário não sejam alterados por outro enquanto a transação não for finalizada) e a integridade dos dados (assegura que os dados e estruturas reflitam todas as trocas em uma seqüência correta). Os locks garantem a integridade dos dados, enquanto admitem um máximo acesso concorrente por usuários ilimitados; c) sessões (sessions): uma sessão especifica uma conexão ao banco de dados via processo do usuário. Quando o usuário conecta-se à base de dados, precisa informar uma conta e uma senha válidos para que a sessão seja estabelecida. Múltiplas sessões podem ser criadas por um mesmo usuário, mas cada uma delas é considerada como uma sessão diferente. 2.5 ESTRUTURAS DO BANCO DE DADOS ORACLE Segundo [ORA92], os três principais aspectos do modelo relacional no qual o ORACLE se baseia são as estruturas, as operações e as regras de integridade. As estruturas são os objetos que guardam os dados de um banco de dados. Essas estruturas e os dados podem ser manipulados através de operações. As operações são as ações que permitem aos usuários manipular os dados e as estruturas de um banco de dados. Essas operações devem aderir a um conjunto de regras de integridade predefinidas. As regras de integridade são as leis que governam quais operações são permitidas nos dados e nas estruturas de um banco de dados, com o propósito de protegê-los de operações indevidas. 9 Um banco de dados ORACLE possui estruturas físicas e lógicas que são independentes entre si, isto é, as estruturas físicas podem ser gerenciadas sem afetar o acesso às estruturas lógicas. 2.5.1 ESTRUTURAS LÓGICAS As estruturas lógicas são os objetos que estão armazenados na base de dados e que são manipulados pelos usuários. Conforme [MOR95], as estruturas lógicas são determinadas por uma ou mais tablespaces e pelos objetos dos esquemas dos usuários de um banco de dados. Essas estruturas lógicas, incluindo os segmentos, extensões e bloco de dados ditam como o espaço físico de um banco de dados é usado. Segundo [MOR95], seguem as principais estruturas lógicas de um banco de dados ORACLE: a) tablespaces: são unidades lógicas de armazenamento dos dados usadas para agrupar outras estruturas lógicas relacionadas entre si. Um ou mais arquivos de dados são criados explicitamente para cada tablespace, isto é, cada tablespace é formada por um ou mais arquivos no sistema operacional, chamados de data files, armazenados em disco. As tablespaces são utilizadas para controlar a alocação do espaço em disco para os dados de um banco de dados, assinalar quotas específicas de espaço para os usuários, controlar a disponibilidade dos dados, executar operações parciais de cópia e recuperação de um banco de dados, e alocar o armazenamento dos dados entre diferentes dispositivos para melhorar a performance de um banco de dados; b) data block: os blocos de dados formam as estruturas lógicas de menor nível em um banco de dados. Um bloco de dados corresponde a um número específico de bytes guardados fisicamente em disco. O tamanho dos blocos de dados é específico a cada banco de dados e sistema operacional, sendo definido na criação do banco de dados. Este tamanho é um múltiplo do bloco do sistema operacional e forma a menor unidade de I/O em um sistema de banco de dados ORACLE; 10 c) extents: as extensões são o próximo nível de estruturação lógica de um banco de dados, após os blocos de dados. Uma extensão é um número específico de blocos de dados contínuos, obtidos em uma simples alocação. Estes blocos são usados para guardar um tipo específico de informação; d) segments: os segmentos são o nível imediatamente superior às extensões, usados para armazenar os dados. Um segmento é um conjunto de extensões alocadas para um certo tipo de estrutura lógica que fica guardado em uma tablespace, existindo assim diferentes tipos de segmentos (segmentos de dados, índices, rollback); e) schema objects: um esquema é uma coleção de objetos ligados à identificação única de um usuário em um banco de dados, ou seja, é o local onde são armazenados os objetos de um determinado usuário; f) objects: Os objetos são todos os tipos de estruturas lógicas que referenciam diretamente os dados de um banco de dados, tais como, tabelas, visões, seqüências, sinônimos, índices, clusters entre outros; g) tables: uma tabela é uma unidade básica usada para guardar os dados de um banco de dados, contendo todos os dados acessíveis pelos usuários. Uma tabela é formada por linhas e colunas, possuindo um único nome que a identifica. Cada coluna da tabela possui um único identificador, um tipo de dado associado e uma definição de tamanho; h) views: uma visão é a representação customizada dos dados de uma ou mais tabelas. Uma visão não armazena dados, simplesmente contém comando SQL usado para realizar consultas. Uma visão é vista pelo usuário como se fosse uma tabela, sendo possível a este realizar operações de consulta, inserção, alteração e deleção; i) sequences: as seqüências são objetos do banco de dados que fornecem números seqüenciais. Elas são úteis para gerar valores de chave exclusiva para entrada de colunas do tipo numérico, onde a entrada deve ser única ou uma seqüência numérica; j) synonyms: um sinônimo é um apelido para um objeto do banco de dados. Os sinônimos podem ser públicos quando acessados por todos os usuários de um 11 banco de dados, ou privados quando criado por um usuário e somente está disponível a este usuário; k) Indexes: os índices são estruturas que possibilitam o acesso mais rápido a uma informação, melhorando a performance de acesso aos dados e podendo também garantir a unicidade dos valores armazenados nas colunas que os compõem . São criados a partir de uma ou mais colunas de uma tabela. 2.5.2 ESTRUTURAS FÍSICAS As estruturas físicas de um banco de dados são determinadas pelos arquivos do sistema operacional que constituem o banco de dados. Conforme [ORA92], cada banco de dados ORACLE possui três tipos de arquivos que formam sua estrutura física, os quais são descritos a seguir: a) Arquivos de dados (Data Files): cada banco de dados ORACLE possui um ou mais arquivos de dados em disco, os quais contêm todos os dados de um banco de dados e são usados para armazenar fisicamente os dados das estruturas lógicas como tabelas, índices, etc. Segundo [MOR95], os arquivos de dados podem ser associados a somente um banco de dados e uma vez criados não podem ter o seu tamanho alterado. Um ou mais arquivos de dados formam uma unidade lógica de armazenamento de dados chamada tablespace; b) Arquivos de Redo Log (Redo Log Files): cada banco de dados possui um ou mais arquivos para recuperação do banco de dados. Conforme [MOR95], os arquivos de redo log registram um histórico de todas as alterações feitas nos dados de um banco de dados. As informações registradas são utilizadas para recuperação do banco de dados em caso de falha do sistema; c) Arquivos de Controle (Control Files): Segundo [MOR95], todo banco de dados possui um ou mais arquivos de controle onde são registradas as estruturas físicas que compõem um banco de dados, contendo informações como o nome do banco de dados, os nomes e localização dos arquivos de dados e arquivos redo log que compõem o banco de dados, e outros vários tipos de informação. Toda vez que o banco de dados é inicializado, o arquivo de controle é lido a fim de identificar os arquivos de dados e redo log operações. que devem ser abertos para realização das 12 3 FERRAMENTAS DE DESENVOLVIMENTO Este capítulo tem como objetivo prover ao leitor uma abordagem sobre as ferramentas de desenvolvimento FORMS 4.5 e REPORTS 2.5 da ORACLE, procurando dar uma visualização rápida de como são os procedimentos de desenvolvimento nestes ambientes. 3.1 FORMS 4.5 A ferramenta DEVELOPER/2000 FORMS 4.5 é uma ferramenta que disponibiliza aos programadores várias facilidades de desenvolvimento de aplicações quando se trata da utilização de banco de dados, tendo como objetivo também fornecer ao usuário final aplicações com interfaces amigáveis e com fácil modo de utilização. A figura 3 mostra a ferramenta FORMS 4.5: Fonte: [ORA94] Figura 3. Visão geral das ferramentas do FORMS 4.5 13 Quando se cria uma nova aplicação FORMS pode-se trabalhar com três tipos de módulos: menus, forms e librarys. O módulo form é o corpo principal de uma aplicação FORMS e será utilizada como foco para definir e para dar uma breve explanação desta ferramenta. Segundo [ORA94], um módulo form é uma coleção de objetos e dados usados que interagem com modificações em tabelas no banco de dados. Tipicamente, um form contém vários blocos no qual estes blocos são containers lógicos para os objetos. Existem dois tipos de blocos: a) base table block: estes são blocos associados com tabelas do banco de dados e que interagem diretamente com elas; b) control block: estes são blocos não baseado em tabelas. Na construção de aplicações de banco de dados com FORMS, muitos dos blocos são associados com específicas tabelas ou visões do banco de dados. Quando base table block são utilizados, links das colunas das tabelas do banco de dados são criadas com os itens de interface do form. Um base table block automaticamente suporta funcionalidades de consultas, alterações, inserções e deleções de dados na tabela a qual o bloco está associado. A figura 4 mostra um módulo form utilizando um bloco no modo base table block: Fonte: [ORA94] Figura 4. Visão de um módulo form base table block 14 Já os control block e seus itens não são associados com o banco de dados, ou seja control block são usualmente utilizados para executar funções nas aplicações como para obter e mostrar informações baseados em operação e entrada de dados. Quando se define um control block, simplesmente se assume as opções defaults do new block window, e então criase o número desejado de itens de interface e então soma-se o código que define cada item proposto. Freqüentemente se utiliza control block para desenvolver botões de atalho (toolbar buttons), para se inicializar transações no banco de dados ou para se executar navegação no form. A figura 5 mostra um módulo form utilizando um bloco no modo control block: Fonte: [ORA94] Figura 5. Visão de um módulo form control block Segundo [ORA94], um form não só contém vários itens de interface para o usuário, como também contém procedimentos e definições de origem de dados. Em tempo de execução os itens de interface e outros elementos aparecem em uma janela conhecida como canvas. O canvas é uma superfície desenhada que é visualizada em uma janela e é onde os objetos são arranjados e mostrados. 15 A figura 6 mostra todos os componentes de um módulo form: Fonte: [ORA94] Figura 6. Componentes de um form 3.1.1 NAVEGADOR O object navigator é uma janela da aplicação FORMS que provê ao programador uma árvore hierárquica contendo todos os objetos definidos em todos os módulos abertos no momento. O object navigator é muito útil para o programador e é utilizado para visualizar ou criar, copiar e selecionar objetos [ORA94] . Os objetos do forms são agrupados em diferentes nodos no object navigator, os nodos são separados em heading nodos, estes são os cabeçalhos dos nodos que definem que tipo de objetos aparecerão abaixo deles. Os nodos de topo no navigator incluem Forms, Menus, Librarys, Built-in Packages e Objects Database, todos os outros nodos e objetos neles contidos estão indentados na árvore indicando que eles estão em um nível mais baixo, pertencendo a um nodo de mais alto nível. Para uma melhor compreensão do funcionamento do object navigator veja a figura 7. 16 Fonte: [ORA94] Figura 7. Object Navigator do FORMS 4.5 3.1.2 EDITORES E PROPRIEDADES O FORMS possui também no seu ambiente de desenvolvimento dois editores (áreas de trabalho para criar e modificar a forma dos objetos) e uma janela de propriedades (mostra uma lista de categorias de propriedades dos objetos) bastante utilizados. A figura 3 mostrada anteriormente dá uma breve visão destas ferramentas. O Layout editor é um editor utilizado no FORMS para criar, formatar e arranjar itens de interface e os nomes associados a estes itens. O Layout PLSQL é um editor utilizado para gerar códigos PLSQL , como procedimentos e triggers utilizados pelo form. E por fim, a janela Properties window é utilizada para inspecionar e modificar propriedades dos objetos definidos no form. 17 3.2 REPORTS 2.5 A ferramenta DEVELOPER/2000 REPORTS 2.5 é uma ferramenta que disponibiliza aos programadores várias facilidades de desenvolvimento de relatórios com qualidade e em vários formatos como: tabular, matrix, master-detail, mailing label e form letter. O REPORTS 2.5 também disponibiliza recursos como inclusão de textos, figuras , gráficos e interação de botões nos relatórios. A interação de botões no relatório disponibiliza recursos nos relatórios como poder disparar outros relatórios, executar comandos PLSQL, etc. Outra facilidade desta ferramenta também é a opção de se especificar parâmetros (variáveis informadas antes de um relatório iniciar a execução) para passar aos relatórios a serem executados [ORA95]. A figura 8 mostra a ferramenta REPORTS 2.5: Fonte: [ORA95] Figura 8. Visão geral das ferramentas do REPORTS 2.5 Segundo [ORA95], um report é uma coleção de objetos que define nele dados, layout e interface em tempo de execução. Os dados de um report são definidos em um data model. Os data model definem quais os dados que devem ser buscados do banco de dados, a ordem desses dados e então processam estes dados para um relatório. Como sub-ítens de um data model existem query, group ,columns e parameters: 18 a) Query: consulta os dados de um banco de dados padrão, como ORACLE, DB2, SQL/DS – usando comandos SQL; b) Group: organiza os dados dentro de conjuntos e hierarquias. O group contém todas as colunas de uma consulta; c) Columns: são as colunas do banco selecionadas por uma consulta; d) Parameters: são variáveis do relatório para as quais o usuário pode associar valores em tempo de execução. Com isso então, após a definição de um data model para um report específico, o programador deve especificar o layout do report. O layout especifica como os objetos do data model aparecerão na tela em tempo de execução (como eles são formatados) . O layout de um report é definido em field, frame, repeating frame e body: a) Field: são os espaços reservados para as colunas das tabelas. São eles que definem como as colunas irão aparecer no relatório, bem como o formato de somas, datas e outros itens contidos nos relatórios; b) Frame: os frames são usados para organizar o layout de vários objetos juntos. Eles também são usados para proteger o layout dos objetos de serem sobreescritos por reapeting frames em tempo de execução; c) Reapeting Frame: são espaços reservados para group’s, ou seja, vários conjuntos de colunas juntos. São eles que formatam os registros no relatório e que buscam os dados do banco de dados. A figura 9 ajuda a definir melhor os conceitos de data model e layout , como também o itens de cada um deles. 19 Fonte: [ORA95] Figura 9. Componentes de um report 3.2.1 NAVEGADOR O object navigator é um painel de controle que permite ao programador visualizar e editar seus reports. Ele mostra todos os objetos definidos em todos os reports abertos no momento em forma hierárquica [ORA95]. Veja que este conceito de painel também é utilizado na ferramenta FORMS (Figura 7). Como no FORMS, o object navigator é contido por vários nodos. Alguns nodos são cabeçalhos que definem que tipo de objetos aparecerão abaixo deles. O navigator é utilizado também no REPORTS para mostrar editores (áreas de trabalho para criar e modificar objetos em um report). Na figura 10 é dada uma melhor visualização do object navigator na ferramenta REPORT 2.5: 20 Fonte: [ORA95] Figura 10. Object Navigator do REPORTS 2.5 3.2.2 EDITORES DO REPORT 2.5 A ferramenta ORACLE REPORT 2.5 disponibiliza ao programador três tipos de editores [ORA95] , que são: a) Data Model Editor: este editor permite ao programador definir as consultas a serem executadas no banco de dados, relacionamento entre esses dados, bem como criar sumários e fórmulas para um determinado relatório (Veja figura 11); b) Layout Editor: O layout editor permite ao programador definir a aparência dos relatórios, permitindo ao programador customizar os objetos, tal como, definir frames e fields nas diferentes seções de um relatório, ou seja, no cabeçalho do relatório, nas margens, no corpo, etc (Veja figura 12); c) Parameter Form Editor: Este editor permite ao programador definir a aparência da tela de parâmetros, permitindo definir o layout e as variáveis que serão solicitadas pelo relatório em tempo de execução (Veja figura 13). 21 Fonte: [ ORA95] Figura 11. Data model editor Fonte: [ORA95] Figura 12. Layout editor 22 Fonte: [ORA95] Figura 13. Tela de parâmetros em um report 23 4 FERRAMENTA CASE DESIGNER/2000 4.1 INTRODUÇÃO As ferramentas CASE se propõem a auxiliar no processo de desenvolvimento de sistemas sob a forma de um suporte computadorizado. As ferramentas auxiliam no desenvolvimento de sistemas aumentando a produtividade de seus analistas, projetistas e programadores. Para a utilização de uma ferramenta CASE de forma produtiva é importante definir um método de desenvolvimento de sistemas. Com a utilização de ferramentas CASE o desenvolvimento de sistemas fica padronizado, pois quanto mais abrangente são os padrões, maiores as possibilidades de ganho em produtividade. Uma ferramenta CASE pode abranger todo o ciclo de um projeto de desenvolvimento de sistemas ou apenas parte deste ciclo. A seleção de uma ferramenta CASE depende das diversas etapas pretendidas do ciclo de vida do projeto, das técnicas selecionadas e do ambiente de desenvolvimento e operação dos sistemas. Segundo [CAR89] a ferramenta CASE fornece um base de dados para a engenharia de sistemas e uma série de facilidades que automatizam as técnicas durante todo o ciclo de vida do sistema. 4.2 MÉTODO CASE DA ORACLE Segundo [DEF93] o método CASE da ORACLE procura tornar o ambiente automatizado o mais próximo possível da realidade da Engenharia de Sistemas. Os processos de desenvolvimento são baseados em sete passos básicos que são descritos em: a) Estratégia: neste passo os processos e as informações necessárias para o trabalho são estabelecidas. Primeiro através de visões gerais e depois com o desenvolvimento do modelo de trabalho. Este modelo estando de acordo com os analistas de sistemas, fornece um conjunto de objetivos e intenções claras, que por si, formam a estrutura do sistema; 24 b) Análise: na análise são definidos os detalhes das funções do sistema, as entidades envolvidas e o fluxo de dados, estendendo uma maior profundidade de entendimento estabelecida no passo anterior, de modo a documentar as necessidades precisas da aplicação em desenvolvimento; c) Projeto: é nesta fase que começa a implementação, onde é definido o mecanismo de armazenamento de dados. São definidos os módulos que implementam as funções definidas na análise. Além disso são definidas a arquitetura do sistema e os modos de transação entre os módulos; d) Construção: é na construção que são desenvolvidos todos os componentes do sistema, ou seja, as tabelas são criadas, os módulos são codificados e testes são efetivados sobre todos os componentes; e) Documentação: A documentação é elaborada praticamente em todas as fases de desenvolvimento do sistema. Podendo ser gerados relatórios, tabelas de performance, matrizes, documentação em linha de código. Isto tudo no decorrer do desenvolvimento do sistema ou após o fim do processo; f) Transição: Nesta fase o novo sistema é cuidadosamente inserido na empresa. Novos procedimentos, documentação e treinamento são feitos para preparar a equipe de operação do sistema; g) Produção: Na fase de produção o sistema já está livremente funcionando na empresa, porém uma equipe ainda fica locada e atenta para corrigir diversos erros que porventura possam aparecer nesta fase. 4.3 FERRAMENTAS DO DESIGNER/2000 1.3.2 São abordadas aqui, algumas das ferramentas integrantes da ferramenta CASE DESIGNER/2000 1.3.2 da ORACLE, dando uma visão do objetivo e do potencial destas ferramentas. A figura 14 mostra a tela principal da ferramenta DESIGNER/2000 1.3.2, que contém o links (acesso) para todas as ferramenta deste aplicativo. 25 Figura 14. Tela principal do DESIGNER/2000 1.3.2 4.3.1 ENTITY RELATIONSHIP DIAGRAMMER O entity relationship diagrammer é uma ferramenta de modelagem utilizada para definir a informação necessária de um negócio qualquer em um modelo de entidade e relacionamento [CAR89]. Este diagrama de entidade e relacionamento é um modelo em rede que descreve a diagramação dos dados armazenados de um sistema qualquer em um alto nível de abstração, segundo [YOU90]. 26 O diagrama de entidade e relacionamento é um ferramenta de modelagem útil para gerenciar e controlar as informações de uma empresa, bem como organizar, gerenciar e controlar o banco de dados eficientemente. Segundo [CAR89] o diagrama de entidade e relacionamento é usado eficientemente nas fases de estratégia e análise para definir a informação que se precisa do negócio como um modelo de entidades. O diagrama representa entidades, relacionamentos entre elas, e os atributos para descrevê-las. 4.3.2 DATA FLOW DIAGRAMMER O data flow diagrammer é uma ferramenta para construção de diagramas de fluxo de dados que permite criação e manutenção de funções de negócios, definição de base de dados, fluxo de dados e entidades externas envolvidas com o sistema. Segundo [BEL93], o diagrama de fluxo de dados é utilizado no estágio de análise para criar diagramas que mostram o fluxo da informação entre a organização, coisas que afetam a organização e onde o dado será armazenado. Porém [CAR89] diz que o diagrama de fluxo de dados é utilizado para mostrar as entidades e dados envolvidos no sistema, a partir de eventos. E com isto, o diagrama de fluxo de dados é utilizado por analistas para mostrar as funções à medida que elas são descritas pelos usuários. 4.3.3 FUNCTION HIERARCHY DIAGRAMMER Segundo [CAR89], a ferramenta function hierachy diagrammer permite criar diagramas hierárquicos de todas as funções executadas por um dado negócio e mostrar qual partes do negócio podem ser automatizados. O diagrama de funções hierárquicas é utilizado para decompor as funções do negócio, definir os elementos das funções e mostrar como as funções do negócio utilizam os dados. O diagrama de funções pode ser usado para transformar anotações feitas durante entrevistas em estruturas de funções. Descrevendo assim, o que a organização precisa fazer, independente de como é feita. 27 4.3.4 DATA SCHEMA A ferramenta data diagrammer (ou data schema) tem a finalidade de realizar a modelagem final dos dados da aplicação e umas das várias facilidades que esta ferramenta oferece é a visualização do modelo entidade relacionamento para a representação das tabelas e restrições que serão utilizadas na base de dados. O data diagrammer é uma ferramenta gráfica que serve para modelar logicamente e fisicamente o designer de um banco de dados. Com o data diagrammer os objetos de um banco de dados podem ser representados graficamente em diagrama de dados, os quais mostram os relacionamentos entre as tabelas, visões e snapshots no sistema, e as constraints de integridade contidas nos objetos [CAR89]. 4.3.5 MODULE STRUCTURE DIAGRAMMER O module structure diagrammer é uma ferramenta gráfica para construção de diagramas de estruturas dos módulos. O module structure diagrammer serve então para construir e modificar definições dos módulos, bem como para construir e reestruturar redes de módulos. Um dos principais objetivos para o qual esta ferramenta é utilizada, é para refinar os módulos candidatos que são criados pelas definições de funções do sistema na ferramenta function hierachy diagrammer [CAR89]. 4.3.6 FORMS GENERATOR A ferramenta forms generator é um programa que gera aplicações em FORMS ORACLE a partir dos módulos definidos e gravados no repositório do DESIGNER/2000. O forms generator pega a definição do que o programa deve fazer do dicionário CASE e automaticamente gera um programa funcional escrito em linguagem de quarta geração (FORMS). Subseqüentemente a ferramenta FORMS da ORACLE, pode ser utilizada para refinar o programa gerado. 28 4.3.7 REPORTS GENERATOR A ferramenta reports generator é um utilitário do DESIGNER/2000 que é utilizado para gerar relatórios com alta qualidade a partir de módulos definidos e gravados no repositório do CASE. Como no forms generator, o reports generator pega a definição do que o programa deve fazer a partir do dicionário do CASE e automaticamente gera um programa em REPORTS. Subseqüentemente a ferramenta REPORTS da ORACLE pode ser utilizada para refinar o relatório. 29 5 ESTRUTURA DO SISTEMA OPERACIONAL UNIX Segundo [UNI95], um sistema operacional é um programa especial de computador (software) que controla o computador (hardware). O sistema operacional serve de ligação entre os consumidores (usuários) e os recursos, geralmente coordenando a alocação de recursos limitados para um grande número de consumidores. Os recursos incluem, por exemplo, a CPU, os discos rígidos, memória e impressoras e os consumidores estão rodando programas que requisitam acesso a estes recursos. Como um exemplo, um usuário (ou um programa) pode solicitar o armazenamento de um arquivo, com isso o sistema operacional intervém para gerenciar a alocação de espaço no disco e a transferência desta informação da memória para o disco. 5.1 HISTÓRICO DO SISTEMA OPERACIONAL UNIX O sistema operacional UNIX nasceu nos Laboratórios Bell em 1969. Ken Thompson, com a ajuda de Rudd Canaday, Doug Mcllroy, Joe Ossana, e Dennis Ritchie, elaborou um sistema pequeno que logo atraiu a atenção das pessoas. Com a promessa de proporcionar boas ferramentas para o setor administrativo dos Laboratórios, os primeiros pesquisadores obtiveram um computador maior e prosseguiram com o desenvolvimento. Nos meados dos anos 70, o sistema UNIX foi licenciado para as universidades e ganhou imensa popularidade na comunidade acadêmica pelo fato de que era pequeno (os sistemas antigos utilizavam grande espaço de disco) , flexível (o fonte era disponível e era escrito em uma linguagem de programação de alto nível), e era barato (as universidades conseguiam uma licença do sistema UNIX basicamente pelo preço de um fita. As primeiras versões do sistema UNIX proporcionavam recursos poderosos, disponíveis apenas em sistemas operacionais que rodavam em computadores mais caros. Essas vantagens superavam as desvantagens que o sistema UNIX possuía na época: não tinha suporte (a AT&T já tinha investido muito no MULTICS e não estava interessada em explorar o sistema operacional UNIX), possuía bugs (e como não havia suporte, não havia garantia de que os bugs seriam identificados e consertados) e possuía pouca ou quase nenhuma documentação (porém sempre se podia usar o código fonte). 30 Num passo seguinte, o sistema operacional UNIX chegou à Universidade da Califórnia em Berkeley, onde os usuários de Berkeley criaram sua própria versão do sistema. Com o apoio do departamento de defesa, eles incorporaram vários novos recursos no sistema. Com isso, a AT&T reconheceu o potencial do sistema operacional e começou a licenciá-lo comercialmente. Para melhorar o produto, a AT&T uniu os projetos de desenvolvimento do sistema UNIX em processo de conclusão em diferentes departamentos da empresa, e também começou a incorporar os aperfeiçoamentos desenvolvidos em Berkeley [UNI95]. Por fim, o sucesso posterior do UNIX pode ser atribuído aos seguintes fatores: a) interface de usuário flexível e um ambiente operacional que inclui inúmeros utilitários; b) modularidade do sistema que permite a inclusão de novos utilitários; c) capacidade de suportar múltiplos processos e múltiplos usuários ao mesmo tempo; d) disponibilidade para uso em microcomputadores relativamente poderosos e baratos; e) disponibilidade para uso em uma ampla gama de plataformas de hardware; f) padronização da definição de interface, proporcionando portabilidade de aplicativo. 5.2 RECURSOS DO UNIX Conforme [UNI95], o sistema UNIX proporciona um sistema operacional timesharing que controla as atividades e recursos do computador, e uma interface flexível e interativa. O sistema foi projetado para administrar múltiplos usuários, com a finalidade de facilitar o compartilhamento de dados entre membros de uma equipe de projeto. O ambiente operacional foi projetado com uma arquitetura modular em todos os níveis. Para uma melhor visualização dos níveis modulares da arquitetura do UNIX veja a figura 15. 31 Shell Ferramentas e Aplicativos Kernel csh ksh sort ls Hardware vi mail sh date sh-posix Fonte:[UNI95] Figura 15. Arquitetura modular do UNIX Como mostrado na figura 15 o kernel é o sistema operacional, e é o responsável pelo gerenciamento dos recursos disponíveis pelo acesso ao hardware. O kernel contém módulos para cada componente do hardware que juntos fazem a interface. Esses módulos proporcionam a funcionalidade que permite o acesso de programas à CPU, memória, discos, terminais, rede, etc. À medida que novos tipos de hardware são instalados no sistema, novos módulos podem ser incorporados ao kernel. O nível das ferramentas e aplicativos do sistema UNIX é onde o design modular do sistema torna-se mais evidente. A filosofia de comandos do sistema UNIX espera que cada comando faça uma coisa, e o conjunto de comandos forme uma caixa de ferramentas. Quando executa-se uma tarefa, busca-se as ferramentas adequadas e tarefas complexas podem ser feitas combinando-se adequadamente as ferramentas. Desde a sua criação, a caixa de ferramentas do sistema UNIX inclui mais do que os comandos básicos necessários para se interagir com o sistema. O sistema UNIX também fornece utilitários para correio eletrônico, edição de arquivos, processamento de textos, formatação de textos, desenvolvimento de 32 programas, gerenciamento de programas, comunicação intersistemas, contabilidade de processos e de usuários. Como o ambiente do usuário do sistema UNIX foi projetado para ser interativo, programável e modular, novos utilitários podem ser facilmente desenvolvidos e adicionados à caixa de ferramentas do usuário, podendo as ferramentas desnecessárias serem removidas sem prejudicar o funcionamento do sistema. No nível mais externo do sistema UNIX encontra-se o shell que é um interpretador interativo de comandos. Os comandos são introduzidos no prompt do shell e trabalhados à medida que são emitidos. Um usuário comunica-se com o computador através do shell, ou seja, o shell pega a entrada que o usuário digita no teclado e traduz o comando para uma forma que o kernel possa entender , e o kernel então executa o comando. Como visto então, o shell é separado do kernel e se uma interface provida por um shell não for agradável, pode ser facilmente substituída. Muitos shells estão disponíveis atualmente, alguns são acionados por comandos e outros incluem um menu de interface. Os shells comuns que acompanham o sistema UNIX incluem tanto um interpretador de comandos quanto uma interface programável. Existem quatros tipos de shells geralmente disponíveis no ambiente do sistema UNIX [UNI95] : a) Bourne shell: é o shell original oferecido nos sistemas da AT&T, provê um interpretador de comandos e suporta uma interface programável para desenvolver programas em shell ou scripts. As interfaces programáveis e interativas fornecem recursos tais como definição e substituição de variáveis, teste de variável e de arquivo, desvios e loops; b) C shell: este foi o shell desenvolvido na Universidade da Califórnia em Berkeley, e é considerado um aperfeiçoamento do Bourne shell porque oferece recursos interativos, como empilhamento de comandos que permite facilmente a reentrada e edição de comandos introduzidos anteriormente, e o uso do alias, que permite o uso de nomes alternativos personalizados para comandos existentes; c) Korn shell: é um projeto mais recente dos Laboratórios Bell, pode ser considerado um Bourne shell aperfeiçoado porque suporta a interface programável simples do Bourne shell, porém tem os recursos interativos do C 33 shell. O código também foi otimizado para oferecer um shell mais rápido e eficiente; d) POSIX shell: linguagem de programação de comandos conforme POSIX e interpretador de comandos residente no arquivo /usr/bin/sh. Esse shell é semelhante ao Korn shell em muitos aspectos, provê um mecanismo de registro histórico, suporta controle de tarefas e outros recursos interessantes. 5.3 SISTEMA HIERÁRQUICO DE ARQUIVOS No UNIX, a informação é armazenada no disco em recipientes conhecidos como arquivos. Cada arquivo recebe um nome, e o usuário indica o nome do arquivo para acessá-lo. Os arquivos normalmente contêm dados, texto, programas, etc. Um sistema UNIX normalmente contém centenas de arquivos, de modo que um outro container (o diretório) é oferecido para permitir aos usuários organizar seus arquivos em agrupamentos lógicos. No sistema UNIX um diretório pode ser usado para armazenar arquivos ou outros diretórios. A estrutura de sistema de arquivos é muito flexível, de maneira que, em caso de alteração das necessidades de organização de um usuário os arquivos e diretórios podem ser facilmente movidos, renomeados ou agrupados em diretórios novos ou diferentes através de comandos simples do sistema UNIX. Portanto, o sistema de arquivos é como um gabinete eletrônico, permite aos usuários separar e organizar suas informações em diretórios apropriados para seu ambiente e aplicação [HAN95]. 5.4 MULTITAREFA No sistema UNIX, várias tarefas podem ser realizadas ao mesmo tempo. A partir de um único terminal, um único usuário pode executar vários programas que dão a impressão de estarem rodando simultaneamente, isto significa que um usuário pode editar um arquivo de texto enquanto outro arquivo está sendo formatado, e um outro está sendo impresso. Na verdade, a CPU pode executar apenas uma tarefa por vez, porém o sistema operacional UNIX tem a capacidade de compartilhar o tempo da CPU entre múltiplos processos programados para rodar ao mesmo tempo. Assim, para o usuário parece que todos os programas estão em execução simultânea [UNI95]. 34 5.5 MULTIUSUÁRIO O sistema operacional UNIX possui também capacidade de multiusuário que permite que mais de um usuário tenha acesso e use o sistema ao mesmo tempo. Múltiplos terminais e teclados podem ser ligados ao mesmo computador. Essa é uma extensão natural da capacidade de multitarefa. Se o sistema pode rodar múltiplos programas simultaneamente, alguns desses programas deverão ser capazes de suportar outras sessões de usuários. Além disso, um único usuário poderá entrar várias vezes no mesmo sistema através de múltiplos terminais. Uma grande vantagem desta arquitetura é que membros de um grupo de trabalho podem ter acesso aos mesmos dados ao mesmo tempo, do ponto de vista do projeto ou do ponto de vista do usuário [UNI95]. 35 6 SISTEMA DE UTILITÁRIOS DA SOUZA CRUZ O Sistema de Utilitários da Souza Cruz (DUT), é um sistema que atende às necessidades gerais dos Sistemas de Informática da Companhia Souza Cruz em geral, ou seja, é um sistema de apoio que está automaticamente incorporado aos diversos sistemas desenvolvidos em todas as unidades da empresa, disponibilizando recursos de processamento com utilidade para os usuários. O Sistema de Utilitários da Souza Cruz tem como objetivos distintos já citados anteriormente, manter uma certa segurança no acesso aos dados e disponibilizar recursos de submissões batch em servidores [CAS96]. A atual manutenção corretiva e evolutiva do sistema foi justamente investida em cima dos recursos de submissão batch, onde os processos de manutenções no sistema envolveram vários profissionais da área como: gerentes de projeto, analistas de sistemas, projetistas, programadores e analistas de suporte. 6.1 HISTÓRICO A finalidade da Souza Cruz em desenvolver um sistema gerenciador de submissão de processos em batch surgiu logo após o início da descentralização do Centro de Processamento de Dados da empresa para a dispersão de microcomputadores por toda a Companhia. Isto há dez anos atrás, quando a empresa optou em migrar para a arquitetura client/server. Devido ao descarte dos mainframes (grandes computadores utilizados para processamento centralizado) e a opção do uso de computadores pessoais e servidores de dados, a Souza Cruz na verdade optou por não utilizar mais os computadores VAX (Sistema Operacional VMS) utilizados pela empresa até então, e sim por microcomputadores e servidores de banco de dados (Máquinas HP com sistema operacional UNIX HP-UX). Com isso então a empresa “eliminou” o processamento centralizado, e passou de fato a utilizar recursos de informática em todos os departamentos das unidades da empresa. 6.2 IMPACTOS COM A MIGRAÇÃO Contudo, com essa migração, surgiram problemas no decorrer da implantação do novo ambiente de informática da empresa pela necessidade que a mesma possui de utilizar máquinas mais potentes para executar processos mais complexos (relatórios, programas de 36 carga de dados, etc.) e pela necessidade da empresa centralizar alguns tipos de rotinas (programas PLSQL’s e shells), devido a dois motivos: a) questões de segurança: ambientes como SQLPLUS que são utilizados por programas PLSQL’s não devem ficar disponíveis aos usuários, pois os dados podem correr o risco de serem manipulados indevidamente; b) conforto aos usuários: estas rotinas podem ser disparadas nos servidores pelos usuários do seu local de trabalho (client). Porém, estas necessidades acabaram em impacto justamente devido à nova arquitetura, pois centralizando processos no servidores os mesmos não se adequaram às mesmas características de submissão em um mainframe. A verdade é que como a empresa utilizava máquinas VAX, o sistema operacional desta máquina, o VMS, possuía implementado no sistema a capacidade de submissão batch com um conceito de enfileiramento de processos e controle de prioridades. Um processo era submetido na máquina indicando uma fila lógica onde iria executar, bem como a prioridade poderia deste processo, e esta fila por sua vez possuía conceitos de quantos processos deixar executar ao mesmo tempo na máquina. Isto disponibilizava aos usuários a opção de gerenciar melhor prioridades para seus trabalhos. Porém, nos servidores HP-UX este conceito no sistema operacional UNIX não existe, suportando o UNIX somente o conceito de executar processos em batch, e não suportando gerenciamento de filas para um maior controle dos processos. Com isso então, a Souza Cruz decidiu investir no desenvolvimento de um sistema para gerenciamento de submissão de processos em batch (o DUT), programado em um nível de linguagem mais alto (PRO*C e shells do UNIX) e utilizando informações de banco de dados ORACLE. 6.3 VISÃO GERAL As submissões batch do DUT possibilitam aos usuários a execução de três tipos de processos em servidores HP-UX. Estes três processos que podem ser submetidos em background são: a) relatórios modo caracter desenvolvidos em REPORTS da ORACLE; 37 b) scripts PL/SQL em SQLPLUS; c) shells em UNIX. Para isto existe um conjunto de rotinas escritas em PRO* C (e shells no UNIX), chamadas de scheduler e que executam os jobs programados pelos usuários no servidor. Além da execução destes três tipos de processos nos servidores, o scheduler disponibiliza também aos usuários os recursos de impressões nos servidores. Desta forma, as impressões solicitadas pelos usuários são despachadas pelo scheduler para as impressoras no servidor . As submissões de relatórios, scripts ou shells em batch são utilizadas principalmente quando o volume de dados ou o tempo de execução envolvido nos processos é muito grande, e portanto precisa-se de máquinas mais poderosas para executá-los, isto por questão de tempo, economia e eficiência. Outra vantagem além desta, é que as submissões de processos em batch não “prendem” os terminais dos usuários, deixando-os livres para executarem outros trabalhos. Na verdade vários processos podem ser executados ao mesmo tempo, enquanto os computadores pessoais dos usuários podem ficar realizando outras tarefas [CAS96]. Outro destaque da aplicação de submissão batch em sua nova versão, é prover aos usuários a possibilidade de programar processos para executarem mais tarde, ou programá-los para executar a cada certo tempo, como exemplo: diariamente, semanalmente, mensalmente, etc. 6.4 MODELO DE DADOS DA SUBMISSÃO BATCH Para um melhor esclarecimento do sistema vide no ANEXO 1 o novo modelo de dados que o scheduler (programa responsável pelas submissões em batch) utiliza para submeter no sistema operacional os pedidos de submissão dos usuários. 6.5 FUNCIONAMENTO DO SCHEDULER O scheduler tem como objetivos monitorar periodicamente os pedidos de submissão em batch do usuários e submetê-los para executar no sistema operacional (estes pedidos ficam gravados na tabela JOB_BATCH_ORACLE no banco de dados). 38 Para isto o scheduler reconhece dois distintos pedidos de submissão em batch : a) Pedidos de execução de processos: programas PLSQL, shells e relatórios; b) Pedidos de impressão: arquivos a imprimir referente a processos que já executaram. 6.5.1 PEDIDOS DE EXECUÇÃO DE PROCESSOS Para atender os pedidos de execução de processos o scheduler utiliza o conceito de filas de execução, ou seja, ele valida o job que está para executar verificando a fila de execução (tabela FILA_EXEC) que este job está submetido, verifica se esta fila de execução está ativa , verifica se esta fila possui restrição de horário para executar, verifica quantos job’s esta fila pode ficar executando ao mesmo tempo e valida quantos job’s estão executando neste momento no sistema operacional. Se a quantidade de job’s que estão executando neste momento for menor que o suportado na fila o scheduler grava o pedido na tabela LOG_BATCH_ORACLE e grava os arquivos de saída na LOG_ARQ_SAIDA (tomando como base a tabela ARQ_SAIDA) e então dispara o processo no sistema operacional. 6.5.2 PEDIDOS DE IMPRESSÃO Para atender os pedidos de impressão o scheduler não tem muita interação como nos pedidos de execução (onde seguindo certas regras o scheduler identifica se pode ou não colocar para executar os processos). Quando o scheduler identifica na JOB_BATCH_ORACLE um pedido de impressão, o mesmo apenas executa no sistema operacional um comando de impressão indicando quais são os arquivos que deverão ser impressos, qual o tipo de formulário que deve se utilizado e qual a impressora solicitada que fará a impressão. 39 7 INTERFACE DO ADMINISTRADOR DO SISTEMA 7.1 APRESENTAÇÃO E OBJETIVOS DA FERRAMENTA A ferramenta desenvolvida para o administrador do sistema, chamada de Interface do Administrador, tem como objetivo auxiliar o administrador a monitorar, definir e alterar características do sistema de submissões em batch. A ferramenta provê a este tipo de usuários a permissão para fazer alterações no modo de ação do scheduler (o qual é responsável por fazer as submissões dos programas nos servidores), bem como deixá-lo mais informado do estado de consistência do scheduler e das submissões do processos (relatórios, PL/SQL’s e shells) através da visualização de log’s e relatórios que esta ferramenta disponibiliza ao administrador. Outra opção também disponibilizada na ferramenta e de responsabilidade exclusiva para o administrador do sistema são as opções de manter alguns cadastros de informações, que por sua vez são base de dados para a atuação do scheduler. Como pode-se analisar, tornou-se importante e assim necessário uma pessoa de suporte, responsável por este cargo. Esta pessoa ou usuário, diga como quiser, são atualmente profissionais de suporte operacional da empresa, ou seja, estão intimamente ligados à problemas de informática , suprindo já no momento a empresa com outras funções de suporte de informática como: responsáveis por manutenções em máquinas (computadores), responsáveis por backup dos dados, atendimento aos usuários de sistemas, etc. Com isso então optou-se por construir esta ferramenta para ser executada em ambiente caracter mode, ou seja, utilizando a plataforma UNIX HP-UX da empresa, pelo fato de que as rotinas responsáveis pelas submissões de processos em batch estão instaladas neste tipo de plataforma e os log’s do scheduler e dos processos submetidos são arquivos gerados nestas máquinas. Isto acabou não prejudicando, como também beneficiando os usuários desta ferramenta devido ao grande conhecimento que os mesmos já tem a respeito deste tipo de plataforma, pois com as funções de suporte operacional, já estão intimamente ligados a este tipo de sistema operacional no seu dia a dia. Para a construção da ferramenta Interface do Administrador foram utilizadas as ferramentas de desenvolvimento FORMS e REPORTS da ORACLE, as quais permitiram o 40 desenvolvimento desta aplicação normalmente em ambiente gráfico e depois possibilitaram a esta aplicação uma conversão para ambiente caracter mode, isto através de ferramentas que a própria ORACLE fornece para este tipo de conversão. 7.2 ESPECIFICAÇÃO DA FERRAMENTA Para a especificação da ferramenta Interface do Administrador foram definidos: a) Modelo Entidade Relacionamento; b) Modelo Físico dos Dados; c) Modelo Hierárquico dos Módulos. O Modelo Entidade Relacionamento (MER) enfatiza as entidades (e atributos) com que o sistema lida, bem como a relação entre elas. Para a visualização do modelo vide ANEXO 2. O modelo físico dos dados já diz respeito às tabelas utilizadas pela ferramenta bem como quais as chaves criadas para a relação entre estes objetos no banco de dados. Para visualização do modelo vide ANEXO 3. E finalizando, foi utilizado a ferramenta Module Structure do DESIGNER/2000 para definir os módulos a serem implementados para suportar as funções do sistema, bem como os níveis destes na estrutura da aplicação. Para visualizar o modelo hierárquico dos módulos vide ANEXO 4. 7.3 MÓDULOS DA FERRAMENTA DO ADMINISTRADOR Serão apresentados aqui todos os módulos que compõem a ferramenta Interface do Administrador, especificando as suas funcionalidades e interações com o sistema de submissão batch. 41 7.3.1 TELA PRINCIPAL A figura 16 mostra a tela principal do aplicativo Interface do Administrador: Figura 16. Tela principal da ferramenta Interface do Administrador Como pode-se ver na figura 16, a tela principal da ferramenta do administrador indica ao administrador qual banco de dados está utilizando e disponibiliza a este usuário quatro opções de menus para todos os módulos do programa: a) Arquivo: este item de menu disponibiliza as opções de gerar nova tela para cadastramento de dados, fechar a tela, salvar os dados, imprimir a tela e sair do aplicativo; b) Editar: neste item são disponibilizados as opções de desfazer as alterações, recortar, copiar, colar, limpar item selecionado, excluir registro, incluir registro, selecionar dados, exibir dados; 42 c) Auxílio: neste item de menu ficam disponíveis as opções de teclas de funções do programa, lista de valores, ajuda , acesso ao programa de utilitários e informações sobre o programa; d) Opções: este item de menu é específico da aplicação, ou seja , as outras opções de menus especificadas acima, são itens de menu comumente utilizados por todas as aplicações da Souza Cruz, as quais a Companhia tornou padrão de todas as aplicações. Os sub-itens disponibilizados por este item são: Scheduler, Log Analyser, Report e Manutenção. Como pode-se observar alguns destes sub-itens possuem a descrição em inglês, isto pelo fato de que os operadores que serão os usuários desta aplicação estarem familiarizados com estes termos. Na figura 17 é mostrado a hierarquia das opções de menu do aplicativo: Figura 17. Menu da ferramenta Interface do Administrador 7.3.2 ITENS DO MENU OPÇÕES Como pode-se ver na figura 17, os sub-itens do menu opções possuem várias opções, as quais são descritas separadamente para que se possa ter uma visão mais focalizada e descritiva das funções específicas desta ferramenta. 43 7.3.2.1 SCHEDULER A opção de menu scheduler disponibiliza ao administrador as seguintes opções que interagem com o programa scheduler (programa que monitora periodicamente os pedidos de submissão batch): a) Inicializar: Esta é uma opção para o administrador do sistema poder inicializar o scheduler responsável pela execução dos processos submetidos, fazendo então com que um programa executável no sistema operacional “levante a submissão batch”. Para isto foi projetado um shell no UNIX para que no momento desta opção ser escolhida, o mesmo se encarregará de “levantar o sistema de submissão batch” e retornar para a ferramenta do administrador se a ação foi bem sucedida ou não (veja figura 18); Figura 18 . Inicialização do scheduler 44 b) Finalizar: Esta opção é proporcionalmente inversa a inicializar, pois quando escolhida, é executado um shell no sistema operacional para “derrubar a submissão batch”, não sendo e não podendo então mais nenhum processo que estava submetido ser executado. Este shell também é o responsável de retornar para a ferramenta se ação foi sucedida ou não (veja figura 19); Figura 19. Finalização do scheduler c) Configurar: Esta opção chama a tela de configuração do modo de atuação do scheduler, podendo então o administrador visualizar e modificar os critérios de atuação do scheduler em relação à submissão e atendimento dos processos. Esta tela atualiza no banco de dados as tabelas CONFIG_SCHLER e SCHLER_NOTIFY_USERS_NOTES, as quais podem ser vistas no modelo físico de dados no ANEXO 3 (veja figura 20); 45 Figura 20. Tela de configuração do scheduler Na tela da figura 20, as seguintes opções estão disponíveis ao administrador do sistema: a) Visualização do nome do banco de dados utilizado pelo scheduler; b) Visualização e alteração da máquina onde o scheduler está instalado e onde os processos submetidos são executados; c) Visualização do status do scheduler, indicando se o sistema de submissão está ativo ou inativo; d) Visualização e alteração dos número de dias que os log’s gerados pelo processos submetidos dos usuário devem ficar guardados; e) Indicar ao scheduler se o mesmo deve gerar um log de suas funções mais descritivas ou não; f) Indicar ao scheduler se o mesmo deve enviar mensagens críticas via mail para o administrador quando acontecerem problemas nas submissões, como falta de 46 espaço em disco, banco de dados fora do ar, tablespace do banco de dados estourou; g) Indicar ao scheduler se o mesmo deve poder utilizar o recurso de enviar mensagens dos processos executados para os usuários.; h) Cadastrar, eliminar, consultar todos os administradores responsáveis pelo sistema de submissões batch em um banco de dados. 7.3.2.2 LOG ANALYSER O Log Analyser é uma opção de menu que permite ao administrador do sistema visualizar log’s do scheduler, tanto de execução de processos como de pedidos de impressão, utilizando o editor de texto VI ou JOE do UNIX: a) Log de Execução: Esta opção permite ao administrador editar o log de execução do scheduler, podendo assim extrair-se informações das atividades do scheduler referente aos pedidos de submissão executados por ele. Com isto o administrador pode visualizar no log informações como: - momento em que um pedido foi atendido; - tipo do pedido (execução, cancelamento, impressão); - número do pedido e usuário que o solicitou; - programa e parâmetros que foram executados pelo pedido; - arquivos de saída gerados pelo pedido (veja figura 21); b) Log de Impressão: Esta opção permite ao administrador editar o log de impressão do scheduler, podendo assim extrair-se mais informações das atividades do scheduler referentes aos pedidos de impressão atendidos por ele. No log de impressão várias informações podem ser vistas pelo administrador, tais como: - momento em que uma impressão foi enviada à impressora; - arquivo que foi impresso (relatório); - impressora e formulário que foi utilizado; - range de páginas e numero de cópias que foram impressas. (veja figura 22). 47 Figura 21. Log de execução do scheduler Figura 22. Log de impressão do scheduler 48 7.3.2.3 REPORT A opção de menu report disponibiliza ao administrador a opção estatísticas, cuja tela permite ao administrador optar pela execução de dois relatórios de estatísticas de processos (como mostrado na figura 23): a) Relatório de estatísticas de execução: mostra para o administrador uma certa quantidade de programas submetidos que mais gastaram tempo executando em um certo mês. A quantidade de programas mostrados e o mês sobre o qual o relatório é gerado, é passado pelo administrador através de parâmetros (quantidades de linhas mostradas, mês e ano); b) Relatório de aplicações por tempo de execução: mostra para o administrador uma certa quantidade de programas submetidos que mais gastaram tempo executando e quantas vezes foram executados em um certo mês. A quantidade de programas mostrados e o mês sobre o qual o relatório é gerado, também é passado pelo administrador através de parâmetros (quantidades de linhas mostradas, mês e ano). Figura 23. Tela de parâmetros dos relatórios da ferramenta Interface do Administrador 49 Para obter mais informações sobre os relatórios gerados pela ferramenta Interface do Administrador vide ANEXO 5 (Relatórios da Ferramenta do Administrador). 7.3.2.4 MANUTENÇÃO A opção de menu manutenção disponibiliza ao administrador as seguintes opções que interagem com o programa scheduler (programa que monitora periodicamente os pedidos de submissão batch): a) Filas de execução: Esta opção chama a tela de manutenções nas filas de execução utilizadas pelo scheduler. Estas filas de execução são as amarrações lógicas para distribuição dos processos submetidos, usadas para organizar as submissões em classes e que foram comentadas no capítulo funcionamento do scheduler. Esta tela atualiza no banco de dados a tabela FILA_EXEC, que pode ser vista no modelo físico no ANEXO 3 (Veja figura 24). Figura 24. Tela de manutenção das filas de execução 50 As opções disponíveis na tela de manutenção das filas de execução são: Seleção, Inserção, Modificação e Deleção de filas de execução, informando a estas filas um código único (de A à ZZ), uma descrição da fila de execução (descrevendo que tipos de processos serão executados utilizando esta fila), a quantidade de job’s , ou seja, a quantidade de processos que poderão executar ao mesmo tempo utilizando esta fila, o status que a fila se encontra, um horário de domínio de atuação da fila e a quantidade de horas que esta fila pode ficar executando. b) Limites de Submissão: Este item chama a tela de manutenção nos limites de submissão batch utilizados pelo scheduler. Estes limites são as restrições que o scheduler verifica e obedece em relação à visualização de relatórios, impressão de relatórios e compactação de arquivos (veja figura 25). Figura 25. Tela de manutenção dos limites de submissão batch 51 Na tela da figura 25 as seguintes opções estão disponíveis para o administrador: Seleção, Inserção, Modificação e Deleção de tipos de limite de submissão, informando a estes limites um código único, uma descrição indicando o limite e a quantidades em bytes de dados que este limite se aplica. A tela de manutenções dos limites de submissão batch atualiza no banco de dados a tabela LIMITE_SUBMISSAO_BATCH (Vide ANEXO 3). c) Transferência de JOB’s programados: Este item de menu chama a tela transferência de jobs programados, a qual disponibiliza ao administrador a possibilidade de transferir os processos programados de um usuário para um outro usuário. Este foi um recurso solicitado pela empresa Souza Cruz pelo fato de todos os processos submetidos em batch possuírem um respectivo dono, ou seja, no cadastramento do pedido de submissão de um job o nome da conta do usuário também é gravado. Na versão antiga do sistema os usuários se encontravam com um problema específico. Exemplo disto, seria a necessidade de um usuário A passar a sua função responsável de gerar um certo relatório para um usuário B, a verdade é que na versão antiga do sistema isto não era possível, devendo então o usuário A eliminar o seu job programado do sistema de submissões e o usuário B programá-lo novamente. Na transferência de um job programado de um usuário para outro, o programa checa as seguintes informações: - verifica para quais perfis de programas, o programa a ser transferido está liberado, através da busca da informação na tabela PROG_COMPUT_PERFIL ( vide ANEXO 3); - verifica se o novo usuário a receber o job programado possui um dos perfis para o qual o programa está liberado. Esta informação é consultada na tabela USUAR_PERFIL (vide ANEXO 3). 52 A figura 26 mostra a tela de transferência de jobs programados: Figura 26. Tela de transferência de jobs programados As opções disponíveis na tela transferência de job’s programados são: a) Visualizar o número de identificação interna dos job,s programados; b) Visualizar o nome do programa que cada um dos job executa; c) Visualizar a descrição dos programas; d) Visualizar e Alterar o usuário dono do job programado. A alteração ocorre no campo NOM_USUAR da tabela JOB_BATCH_ORACLE (vide ANEXO 3). 53 d) Formulários de Impressão: esta opção permite ao administrador fazer manutenções no cadastro dos formulários de impressões. Estes formulários são formatos que indicam para as impressoras como os arquivos devem ser impressos, com isso então, quando impressões são submetidas para que o scheduler as execute, estas impressões podem indicar que tipo de formulário deve-se utilizar. Um exemplo de utilização de formulário seria a impressão de uma nota fiscal , esta possui um formulário único para preenchimento da nota , a a qual indica para a impressora aonde encontram-se os campos a serem preenchidos, porém este formulário não pode ser utilizado por um outro documento qualquer, pois o formato de impressão deste documento será totalmente diferente (Veja figura 27). Figura 27. Tela de manutenção dos formulários de impressão 54 As opções disponíveis na tela de manutenção de formulários de impressão são: Seleção, Inserção, Modificação e Deleção dos tipos de formulários de impressão, informando a cada formulário, um nome para o formulário e uma descrição. A tabela atualizada no banco de dados através da tela de manutenção de formulários de impressão é a FORMLR_IMPR, (vide ANEXO 3 Modelo Físico de Dados). 55 8 CONCLUSÕES A ferramenta Interface do Administrador desenvolvida neste trabalho é uma parte de um grande projeto de manutenções e melhorias aplicadas em um sistema de submissão batch específico da empresa Souza Cruz. Como manutenções e melhorias no sistema de submissão batch, a ferramenta do administrador disponibiliza ao sistema opções de configurar e alterar as suas propriedades (permitindo ao administrador inicializar o sistema, finalizar, setar parâmetros, etc.), bem como disponibilizar informações precisas da atuação do sistema através de relatórios e log’s. Desta maneira o sistema de submissão batch trabalha de forma mais robusta e eficaz. O ponto produtivo deste trabalho foi o conhecimento tecnológico adquirido durante o estágio, visto que o sistema (DUT) para o qual a ferramenta Interface do Administrador foi implementada apresenta uma certa complexidade. Outro fato importante é que a ferramenta Interface do Administrador não foi implementada com o objetivo de um protótipo, pois está sendo implantada com a nova versão do sistema de submissão batch e atuará em todas as unidades da Souza Cruz. Esta ferramenta foi desenvolvida para um sistema específico de submissões batch. Para que a mesma seja utilizada por algum outro tipo de aplicação de submissão que exista ou venha existir no mercado esta ferramenta precisará de manutenções e ajustes. Como sugestão para futuros trabalhos, a ferramenta Interface do Administrador poderia ser convertida para o modo gráfico, podendo assim tornar-se ainda mais amigável para os usuários. E outras funções que a ferramenta não suporta atualmente poderiam ser implementadas como disponibilizar ao administrador a configuração do tempo que o scheduler deve aguardar para verificar novos pedidos de execução e impressão. 56 REFERÊNCIAS BIBLIOGRÁFICAS [BEL93] BELLIN, David e Suchman Susan. Manual de Desenvolvimento de Sistemas Estruturados. São Paulo: Editora Makron Books do Brasil Ltda, 1993. [CAR89] CARSON, Chris. Case Designer User’s Guide and Tutorial. V 1.1. Oracle Corporation UK Limited, Chertsey Surrey, England, 1989. [CAS96] CASTRO, Marcelo Armando. Sistema de Segurança e Utilitários. Souza Cruz, 1996. [DAT91] DATE, C. J. Introdução a Sistema de Banco de Dados. trad. Hélio Auro Gouveia. Rio de Janeiro : Campus, 1991. [DEF93] DÉFENSE ORACLE. Gerando uma aplicação em Case Oracle.1993. [HAN95] HANSEN, Aguie. Salvo pelo ... UNIX; Trad. Carlos Augusto P. Gomes. São Paulo : Érica, 1995. [MIT95] MITSUYA, Lia A.; SOPHIA, Walter. Submissão Batch no Servidor Risc. Souza Cruz, 1995. [MOR95] MORAIS, Rinaldo de Oliveira. Oracle 7 Server – Conceitos Básicos. São Paulo: Érica, 1995. [ORA92] ORACLE7 Server Concepts Manual. Estados Unidos: Oracle Corporation, 1992. [ORA94] BROWN, Denise; MAGEE, John; MUENCH Steve. Oracle Forms Reference Manual . Redwood : Oracle Corporation, 1994. [ORA95] BRONDUM, Per; HSIEH, Alex; SUKLIKAR Atul. Oracle Reports Reference Manual . Redwood : Oracle Corporation, 1995. [UNI95] Sistema Operacional UNIX. São Paulo: Edisa Hewlett Packard S.A., 1995. [YOU90] YOUDORN, Edward. Análise Estruturada Moderna. Editora Campus, 1990. 57 GLOSSÁRIO DE TERMOS Arquivo de log Arquivo que contém informações do acompanhamento da execução de um programa. Batch Processo que executa independente da sessão do usuário (background). Backup Procedimento de fazer cópia das informações para a segurança dos dados. Byte Mínima unidade lógica para representação de um dado (composta por oito bits). Caracter mode Ambiente operacional que disponibiliza recursos no modo caracter, não suportando recursos gráficos (Exemplo: Sistema operacional UNIX e DOS no modo comando de linha). Client/server Arquitetura de computadores utilizada onde existem computadores clientes que utilizam recursos (programas) e servidores que fornecem recursos. Default Valor que é assumido inicialmente caso não seja informado nenhum outro. Filas de execução Classificações dos jobs em categorias. A cada fila é dado um conjunto de características (horário de funcionamento, quantidade de jobs suportados, etc.). Filas de impressão São as impressoras disponíveis na rede. Formulário Arquivo texto contendo comandos para impressora que são enviados para a mesma antes da impressão do relatório. JOB Solicitação de execução de um programa. Log’s Arquivos que contém informações do acompanhamento da execução de programas. Mainframe Grandes computadores utilizados para processamento centralizado. Mail Envio de mensagem para correio eletrônico. Perfil Característica dada a um usuário conforme sua função. PLSQL Linguagem utilizada para gerar códigos procedurais utilizando banco de dados. Processo Programa em execução. PRO*C Linguagem de programação de terceira geração que disponibiliza comandos para acesso a banco de dados. Range de páginas Domínio de páginas de um documento. Exemplo: Impressão de um relatório da página 10 à 20. Scheduler Processo que monitora e atende as solicitações dos usuários (JOB, cancelamento, impressão). Scripts Arquivos de programa em lote. Servidor Máquina que disponibiliza recursos aos usuários (clientes). 58 Shell Programa em lote que roda na plataforma UNIX. SQL Linguagem padrão ANSI para acesso à banco de dados. SQLPLUS Ferramenta da ORACLE que disponibiliza acesso a banco de dados. Submeter Significa solicitar a execução de um programa. Status Indica os estado de um processo. 59 ANEXO 1 MODELO ENTIDADE RELACIONAMENTO DO SISTEMA DE SUBMISSÃO BATCH 60 ARQUIVO SAIDA # * * o o BANCO DADOS NOM_ARQ_SAIDA NOM_PATH NOM_SUF_ARQ FLG_SEQ NUM_SEQ * * * * * # * * o o o COD_BANCO_DADO DSC_BANCO_DADO DSC_CONNCT_STRING FLG_BD_LOCAL IND_TIPO_AMBIEN NOM_BANCO_DADO NOM_DEFLT_TBSPCE NOM_TEMPOR_TBSPCE FLG_ROLE NOM_CONNCT_ODBC NOM_DBLINK PROGRAMA COMPUTADOR * # o o o o o o o o o o o o o LOG BATCH ORACLE DSC_PROG NOM_PROG DSC_TIPO_MODULO FLG_PROG_PUBLIC FLG_TRANSF IND_CARACT_IMPR IND_CLASSF_RISCO IND_FONTE IND_LOCAL_EXEC IND_NIVEL IND_NIVEL_DRTRIO NOM_CLASSE NUM_PRIORI NUM_VERSAO_REPORT SIG_AREA_USUAR CONFIGURACAO SCHEDULER * o o * o FLG_DEBUG_PROCES NUM_DIAS_PERM_LOG FLG_STAT_SCHED FLG_SEND_CRITIC_MAIL FLG_SEND_MAIL_JOB NUM_IDENT_INTERN NOM_EXE NOM_PROG NOM_CLASSE NUM_PRIORI DSC_PARM NOM_ARQ_SAIDA NOM_USUAR IND_TIPO_EXEC DAT_HOR_EXEC QTD_HOR_SOMA FLG_EXEC_CONT NOM_PROG_SUBSAO FLG_SEND_MAIL_NOTES IND_CONT_EXEC IND_SEMAN NUM_DIA IND_RESTR DAT_VALID_JOB # * o o o * * COD_FILA DSC_FILA IND_STAT_FILA HOR_INIC QTD_HORAS QTD_JOB_PADRAO QTD_JOB_TEMPOR SCHEDULER NOTIFY USERS NOTES JOB BATCH ORACLE # o o o o o o o * o o o o o * o o o o FILA EXECUCAO # o o * * * o # o o o o o o o o DAT_CADSTR FLG_UTLZCO_FAX NOM_CONTA_USUAR NOM_GUERRA NOM_USUAR TIPO_USUAR COD_DEPEN_RH COD_EMPR COD_GRUPO_COTAC COD_UNID_ORGZNL DAT_ATUALZ_SENHA DAT_DISPEN_USUAR DAT_EXCLUS_USUAR DAT_EXPIRA_SENHA DAT_LIMITE_TERCER DSC_ASSNTA_ELETRO DSC_USUAR_CCMAIL FLG_BLOQ_USUAR IND_USUAR NOM_IMPSRA_PAD NOM_NOTES NUM_CPF_USUAR NUM_RAMAL_TEL NUM_TEL SENHA_USUAR_ESPEC USUAR_DISPEN USUAR_TROCA_SENHA # o o o o o o o o * # o o o DSC_NODO_REDE NOM_NODO_REDE IND_TIPO_SERVDR NOM_IP NUM_END_REDE NOM_ARQ_SAIDA QTD_BYTE_ARQ_SAIDA IND_ARQ_SAIDA QTD_PAGINA FLG_ARQ_REDUZ FLG_COMPRS IND_CARACT_IMPSRA NUM_SEQ IND_ARQ_STATUS PROFILE USUARIO FILA IMPRESSAO o NOM_FILA_IMPSAO_ULT * * # o o FLG_COR IND_TIPO_IMPSAO NOM_FILA_IMPSAO DSC_LOCALZ IND_CARACT_IMPRSA FORMULARIO IMPRESSAO # NOM_FORMLR o DSC_FORMLR LIMITE SUBMISSAO BATCH # COD_TIPO_LIMITE o DSC_LIMITE o QTD_LIMITE_BYTE PROGRAMA COMPUTADOR PERFIL NODO REDE LOG ARQ SAIDA USUARIO * * # * * * o o o o o o o o o o o o o o o o o o o o o NUM_IDENT_INTERN NUM_IDENT_EXEC NOM_EXE NOM_PROG NOM_CLASSE NUM_PRIORI DSC_PARM NOM_USUAR DAT_HOR_INCL DAT_HOR_INIC_EXEC DAT_HOR_FIM_EXEC DAT_HOR_IMPR IND_JOB_STATUS IND_JOB_CANCDO NOM_PROG_SUBSAO NOM_ARQ_LOG LOG BATCH ORACLE ACUM * * * * * o o o o NUM_IDENT_INTERN NOM_EXE NOM_CLASSE NOM_USUAR DAT_HOR_INCL DAT_HOR_INIC_EXEC DAT_HOR_FIM_EXEC NOM_PROG_SUBSAO DSC_PARM * DAT_INCL_PROG_PERFIL * IND_STATUS_REG USUARIO PERFIL PERFIL # * * o COD_SEQ_PERFIL DAT_ULT_RECONC NOM_PERFIL DSC_PERFIL * * * o DAT_LIBER_USUAR FLG_MODIF_BLOQ IND_CATEG_LIBER NOM_CONTA_USUAR_LIBER 61 ENTITY MODEL INFORMATION ARQUIVO SAIDA Which has significance as : Entidade que contém os arquivos de saída à serem gerados. Um PROGRAMA DE COMPUTADOR pode ter um ou mais arquivos de saída. O Scheduler utiliza esta informação para gravar na LOG_ARQ_SAIDA os arquivos de saída que serão gerados pelo programa submetido. Information includes flg_seq : Indica se a extensão deve ser gerada ticamente nom_arq_saida : Nome do arquivo de saída nom_path : Path do arquivo nom_suf_arq : Extensão do arquivo num_seq : Número Seqüência Each must be ter one and only one programa computador BANCO DADOS Which has significance as : Entidade que contém os banco de dados segundo os padrões da empresa. Information includes cod_banco_dado : Número sequencial do banco de dados dsc_banco_dado : Descricao do Banco de Dados dsc_connct_string : String de conexão na rede flg_bd_local : Indica se o banco de dados é local flg_role : Indica o status da role ind_tipo_ambien : Tipo de ambiente (UNIX, NT,...) nom_banco_dado : Nome do Banco de Dados nom_connct_odbc : Nome da Conexão ODBC nom_dblink : Nome do Database Link nom_deflt_tbspce : Nome da tablespace default nom_tempor_tbspce : Nome da tablespace temporária Each may be anterior one and only one banco dados and may be proximo one or more banco_dado and must be instalado one and only one nodo rede and may be pertencer one or more fila_exec and may be ter one and only one configuracao scheduler CONFIGURACAO SCHEDULER Which has significance as : Informações da configuração ativa (do momento) do scheduler. O scheduler é o programa que fica rodando em memória e executa os processos solicitados pelos usuários. 62 Information includes flg_debug_proces : Gerar informações adicionais no LOG flg_send_critic_mail : Envio de mensagens críticas para o mail do administrador flg_send_mail_job : Seta o envio de mail para os usuários ind_status_schler : Status do scheduler num_dias_perm_log : Número de dias que o arquivo log é guardado Each must be pertencer one and only one nodo rede and must be pertencer one and only one banco dados and may be ter one or more schler_notify_user_notes FILA EXECUCAO Which has significance as : Informações e características das FILAS de execução disponíveis. Information includes cod_fila : Código da fila de execução dsc_fila : Descrição da fila de execução hor_inic : Hora do inicio da execução ind_status_fila : Status da fila qtd_horas : Quantidade de horas à executar qtd_job_padrao : Quantidade de Jobs que a fila suporta qtd_job_tempor : Quantidade de Jobs temporário utilizados pela fila Each must be ter one and only one banco dados FILA IMPRESSAO Entidade que especifíca as impressoras da companhia e suas características. Information includes dsc_localz : Localização da impressora correspondente à fila flg_cor : Impressora colorida (S/N) ind_caract_imprsa : Padrão de caractere da impressora (Normal, Postscript) ind_tipo_impsao : Tipo de impressora nom_fila_impsao : Nome da fila de impressão Each must be localizada one and only one nodo rede and may be pertencer one or more profil_usuar FORMULARIO IMPRESSAO Which has significance as : Tipos de Formulários de impressão disponíveis. Information includes dsc_formlr : Descrição do Formulário nom_formlr : Nome do Formulario Each may be pertencer one or more profil_usuar 63 JOB BATCH ORACLE Which has significance as : Esta entidade contém as solicitações de execução e impressão dos usuários. Information includes dat_hor_exec : Data e hora da solicitação de início da execução. dat_valid_job : Data em que o JOB programado não será mais válido dsc_parm : Parâmetros das execução/impressão/cancelamento flg_send_mail_notes : Indica se é para transmitir Mail após execução do Job ind_cont_exec : Indicador de tipo de programação de JOB ind_restr : Indicador de restrição de dia ind_seman : Indicador de dias da semana para execução do job ind_tipo_exec : Indicador de tipo de execução nom_arq_saida : Nome do arquivo de saída nom_classe : Nome da fila de execução nom_exe : Nome do executável nom_prog : Nome do programa já montado com o path nom_prog_subsao : Nome do programa submetido nom_usuar : Nome da conta do usuário num_dia : Número do dia do mês que o job deve executar num_ident_intern : Número de identificação interna do JOB num_priori: Prioridade do JOB qtd_hor_soma : Quantidade de horas que o programa deve novamente ser submetido Each must be estar one and only one programa computador LIMITE SUBMISSAO BATCH Which has significance as : Entidade que contém os limites da submissão batch. Especifíca tipos de restrições aos usuário. Information includes cod_tipo_limite : Código do tipo de limite dsc_limite : Descrição da função do limite qtd_limite_byte : Quantidade de bytes na qual o limite passa a valer LOG ARQ SAIDA Which has significance as : Relação de arquivos gerados pelo JOB. Esta lista é derivado das entidades Prog_comput e Arq_saida. Information includes flg_arq_reduz : Indica se o arquivo deve ser reduzido flg_comprs : Indica se o arquivo deve ser comprimido ind_arq_saida : Status da gravação do arquivo ind_arq_status : Status do arquivo 64 ind_caract_impsra : Tipo de impressora Post-script ou Texto nom_arq_saida : Nome do arquivo de saída num_seq : Numero de sequencia do arquivo de saida para um mesmo job qtd_byte_arq_saida : Quantidade de Bytes do arquivo de saida qtd_pagina : Quantidade páginas do relatório Each must be pertencer one and only one log batch oracle LOG BATCH ORACLE Which has significance as : Esta entidade contém o registro de execução dos JOBs. Os JOBs que estão nesta entidade são todos que estão executando ou já executaram. Information includes dat_hor_fim_exec : Data e hora de fim da execução dat_hor_impr : Data e Hora do pedido de impressão dat_hor_inic_exec : Data e hora de início da execução do JOB dsc_parm : Parâmetros das execução/impressão ind_job_cancdo : Flag de JOB Cancelado ind_job_status : Status do JOB nom_arq_log : Nome do log de saida nom_classe : Código da classe (fila de execução) nom_exe : Nome do executável nom_prog : Nome do programa com o path nom_prog_subsao : Nome do programa submetido nom_usuar : Nome da conta do usuário num_ident_exec : Numero de identificação do sistema Operacional num_ident_intern : Numero de identificação interna do JOB num_priori : Prioridade do JOB Each must be ter one or more log_arq_saida LOG BATCH ORACLE ACUM Which has significance as : Entidade utilizada para acumular as estatísticas de execução. Information includes dat_hor_fim_exec : Data e hora de fim da execução dat_hor_incl : Data e hora de inclusão do JOB na fila dat_hor_inic_exec : Data e hora de início da execução do JOB dsc_parm : Parâmetros das execução/impressão nom_classe : Código da classe (fila de execução) nom_exe : Nome do executável nom_prog_subsao : Nome do programa submetido nom_usuar : Nome da conta do usuário num_ident_intern : Numero de identificação interna do JOB 65 NODO REDE Which has significance as : Entidade que contém todos os servidores da companhia. Maquinas servidoras no escopo Souza Cruz. Information includes dsc_nodo_rede : Descrição do Nodo de Rede ind_tipo_servdr : Indica o tipo de servidor nom_ip : Numero de IP da máquina nom_nodo_rede : Nome do Nodo de Rede num_end_rede : Numero de endereço na rede Each may be ter one or more banco_dado and may be possui one or more fila_impsao and may be ter one and only one configuracao scheduler PERFIL Which has significance as : Perfil dos usuários. Determina as funções que um usuário pode Executar em um determinado sistema. Information includes cod_seq_perfil : Codigo Sequencial do perfil dat_ult_reconc : Data da última reconciliação dsc_perfil : Descrição do perfil nom_perfil : Nome do perfil Each may be estar liberado one or more prog_comput_perfil and may be definir one or more usuar_perfil PROFILE USUARIO Which has significance as : Informações referentes a última impressora e formulário utilizado pelo usuário. Information includes nom_fila_impsao_ult : Nome da ultima impressora utilizada Each must be ter one and only one formulario impressao and must be pertencer one and only one usuario and must be ter one and only one fila impressao PROGRAMA COMPUTADOR Information includes dsc_prog : Descrição do programa dsc_tipo_modulo : Descrição do tipo de módulo flg_prog_public : Indica se o programa é público ou não flg_transf : Indica se o programa é transferível ou não ind_caract_impr : Tipo de impressora Post-script ou Texto ind_classf_risco : Classificação de risco ind_fonte : Tipo de fonte ind_local_exec : Local de execução 66 ind_nivel : Nivel de compartilhamento do programa ind_nivel_drtrio : Nivel de compartilhamento do programa entre aplicações nom_classe : Código da classe (fila de execução) nom_prog : Nome do programa num_priori : Prioridade execução num_versao_report : Versão do report (se couber) sig_area_usuar : Sigla da área de atuação Each may be estar liberado one or more prog_comput_perfil and may be ser dependente one and only one programa computador and may be ter one or more prog_comput and may be possuir one or more arq_saida and may be pertencer one and only one job batch oracle PROGRAMA COMPUTADOR PERFIL Information includes dat_incl_prog_perfil : Data de inclusão do programa no perfil ind_status_reg : Índice de status do registro Each must be liberar one and only one perfil and must be ser de one and only one programa computador SCHEDULER NOTIFY USERS NOTES Which has significance as : Esta entidade comtém uma lista de usuário que irão receber mail NOTES, caso ocorra erros críticos no DUT. Exemplo de erros Críticos: Falta de espaço no FileSystem, Falta de espaço no tablespace USERS ou TEMP Banco de dados não disponível. Each must be pertencer one and only one configuracao scheduler and must be pertencer one and only one usuario USUARIO Which has significance as : Entidade que abrange todos os usuários da companhia. Information includes cod_depen_rh : Código do RH (Recursos Humanos) cod_empr : código do empregado cod_grupo_cotac : código do grupo de cotação cod_unid_orgznl : Código da unidade organizacional dat_atualz_senha : Data da atualização da senha dat_cadstr : Data do cadastramento dat_dispen_usuar : Data de dispensa do usuário dat_exclus_usuar : Data de exclusão do usuário dat_expira_senha : Data da expiração da senha dat_limite_tercer : Data do limite do terceiro dsc_assnta_eletro : Descrição assinatura eletrônica dsc_usuar_ccmail : Descrição do mail flg_bloq_usuar: flg de bloqueio do usuário 67 flg_utlzco_fax : flg de utilização de FAX ind_usuar : índice do usuário nom_conta_usuar : Nome da conta do usuário nom_guerra : Nome de guerra nom_impsra_pad : impressora associada ao usuário nom_notes : Nome no correio eletrônico nom_usuar : Nome do usuário num_cpf_usuar : número do CPF num_ramal_tel : número do ramal num_tel : número do telefone senha_usuar_espec : Senha do usuário especial tipo_usuar : tipo do usuário (NORMAL, ESPECIAL) usuar_dispen : flg usuário dispensado usuar_troca_senha, etc. Each may be supervisionar one or more usuar and may be ser supervisionado one and only one usuario and may be pertencer one or more usuar_perfil and may be é tranferido one and only one usuario and may be transferiu para one and only one usuario and may be cadastra2 one or more usuar and must be ser cadastrado2 por one and only one usuario and may be ter one and only one profile usuario and may be ter one and only one scheduler notify users notes USUARIO PERFIL Which has significance as : Entidade associativa entre perfil e usuários define os perfis de um usuário para um sistema. Information includes dat_liber_usuar : Data de liberação ao usuário flg_modif_bloq : flag de modificação de bloco ind_categ_liber : Indice da categoria de liberação nom_conta_usuar_liber : Nome da conta do usuário administrador Each must be definir one and only one usuario and must be pertencer one and only one perfil 68 ANEXO 2 MODELO ENTIDADE RELACIONAMENTO DA FERRAMENTA INTERFACE DO ADMINISTRADOR 69 FILA EXECUCAO CONFIGURACAO SCHEDULE R * o o * o # * o o o * * FLG_DEBUG_PROCES NUM_DIAS_PERM_LOG IND_STATUS_SCHLER FLG_SEND_CRITIC_MAIL FLG_SEND_MAIL_JOB COD_FILA DSC_FILA IND_STATUS_FILA HOR_INIC QTD_HORAS QTD_JOB_PADRAO QTD_JOB_TEMPOR NODO REDE * # o o o DSC_NODO_REDE NOM_NODO_REDE IND_TIPO_SERVDR NOM_IP NUM_END_REDE BANCO DADOS * * * * * # * * o o o SCHEDULER NOTIFY USERS NOTES COD_BANCO_DADO DSC_BANCO_DADO DSC_CONNCT_STRING FLG_BD_LOCAL IND_TIPO_AMBIEN NOM_BANCO_DADO NOM_DEFLT_TBSPCE NOM_TEMPOR_TBSPCE FLG_ROLE NOM_CONNCT_ODBC NOM_DBLINK USUARIO JOB BATCH ORACLE * * # * * * o o o o o o o o o o o o o o o o o o o o # o o o o o o o * o o o o * o o o o DAT_CADSTR FLG_UTLZCO_FAX NOM_CONTA_USUAR NOM_GUERRA NOM_USUAR TIPO_USUAR COD_DEPEN_RH COD_EMPR COD_GRUPO_COTAC COD_UNID_ORGZNL DAT_ATUALZ_SENHA DAT_DISPEN_USUAR DAT_EXCLUS_USUAR DAT_EXPIRA_SENHA DAT_LIMITE_TERCER DSC_ASSNTA_ELETRO DSC_USUAR_CCMAIL FLG_BLOQ_USUAR IND_USUAR NOM_IMPSRA_PAD NOM_NOTES NUM_CPF_USUAR NUM_RAMAL_TEL NUM_TEL SENHA_USUAR_ESPEC USUAR_DISPEN NUM_IDENT_INTERN NOM_EXE NOM_PROG NOM_CLASSE NUM_PRIORI DSC_PARM NOM_ARQ_SAIDA NOM_USUAR IND_TIPO_EXEC DAT_HOR_EXEC QTD_HOR_SOMA NOM_PROG_SUBSAO FLG_SEND_MAIL_NOTES IND_CONT_EXEC IND_SEMAN NUM_DIA IND_RESTR DAT_VALID_JOB PROGRAMA COMPUTADOR * # o o o o o o o o o o o o o LIMITE SUBMISSAO BATCH # COD_TIPO_LIMITE o DSC_LIMITE o QTD_LIMITE_BYTE PROGRAMA COMPUTADOR PERFIL * DAT_INCL_PROG_PERFIL * IND_STATUS_REG DSC_PROG NOM_PROG DSC_TIPO_MODULO FLG_PROG_PUBLIC FLG_TRANSF IND_CARACT_IMPR IND_CLASSF_RISCO IND_FONTE IND_LOCAL_EXEC IND_NIVEL IND_NIVEL_DRTRIO NOM_CLASSE NUM_PRIORI NUM_VERSAO_REPORT SIG_AREA_USUAR USUARIO PERFIL * * * o DAT_LIBER_USUAR FLG_MODIF_BLOQ IND_CATEG_LIBER NOM_CONTA_USUAR_LIBER LOG BATCH ORACLE # o o * * * o # o o o o o o o NUM_IDENT_INTERN NUM_IDENT_EXEC NOM_EXE NOM_PROG NOM_CLASSE NUM_PRIORI DSC_PARM NOM_USUAR DAT_HOR_INIC_EXEC DAT_HOR_FIM_EXEC DAT_HOR_IMPR IND_JOB_STATUS IND_JOB_CANCDO NOM_PROG_SUBSAO NOM_ARQ_LOG PERFIL FORMULARIO IMPRESSAO # * * o # NOM_FORMLR o DSC_FORMLR COD_SEQ_PERFIL DAT_ULT_RECONC NOM_PERFIL DSC_PERFIL LOG BATCH ORACLE ACUM * * * * * o o o o NUM_IDENT_INTERN NOM_EXE NOM_CLASSE NOM_USUAR DAT_HOR_INCL DAT_HOR_INIC_EXEC DAT_HOR_FIM_EXEC NOM_PROG_SUBSAO DSC_PARM 70 ANEXO 3 MODELO FÍSICO DE DADOS DA FERRAMENTA INTERFACE DO ADMINISTRADOR 71 BCOD_PROXIMO # * COD_FILA * NOM_BANCO_DADO * DSC_FILA * QTD_JOB_PADRAO * QTD_JOB_TEMPOR * IND_STATUS_FILA o HOR_INIC o QTD_HORAS NODO_REDE @ *ALL* (#) BANCO_DADO @ *ALL* (#) FILA_EXEC @ *ALL* (#) FLE_BCOD_FK BCOD_INSTALADO # * NOM_BANCO_DADO * DSC_BANCO_DADO * DSC_CONNCT_STRING o FLG_BD_LOCAL * NOM_NODO_REDE o NOM_BANCO_DADO_PROX o NOM_DBLINK * NOM_DEFLT_TBSPCE * NOM_TEMPOR_TBSPCE * IND_TIPO_AMBIEN * NOM_CONNCT_ODBC * FLG_ROLE * COD_BANCO_DADO CS_BCOD_FK SNUN_CS_FK SCHLER_NOTIFY_USER_NOTES @ *ALL* (#) # * NOM_BANCO_DADO # * NOM_CONTA_USUAR # * NOM_NODO_REDE * DSC_NODO_REDE * COD_EMP * COD_LOCALD o NUM_END_REDE o IND_TIPO_SERVDR o NOM_IP o NOM_NOTES_ENVIO CS_NDRD_FK CONFIG_SCHLER @ *ALL* (#) # * NOM_BANCO_DADO * FLG_DEBUG_PROCES * FLG_SEND_CRITIC_MAIL o NUM_DIAS_PERM_LOG * IND_STATUS_SCHLER o FLG_SEND_MAIL_JOB * NOM_NODO_REDE V_LOG_BATCH @ *ALL* o NOM_EXE o NOM_USUAR o NOM_PROG_SUBSAO o DAT_HOR_INIC_EXEC o DAT_HOR_FIM_EXEC o QTD_TPO_EXEC FORMLR_IMPR @ *ALL* (#) USUAR_PERFIL @ *ALL* (#) # * COD_SISTEM # * COD_SEQ_PERFIL # * NOM_CONTA_USUAR * DAT_LIBER_USUAR * FLG_MODIF_BLOQ * IND_CATEG_LIBER o NOM_CONTA_USUAR_LIBER # * NOM_FORMLR o DSC_FORMLR US_SER_SUPERVISIONA US_SER_CADASTRADO2_POR_USUAR USUAR @ *ALL* (#) SNUN_US_FK USPF_PERTENCER USPF_DEFINIR JOB_BATCH_ORACLE @ *ALL* (#) PERFIL @ *ALL* (#) # * COD_SISTEM # * COD_SEQ_PERFIL * NOM_PERFIL o DSC_PERFIL * DAT_ULT_RECONC PGPF_LIBERAR # * NUM_IDENT_INTERN * IND_TIPO_EXEC * IND_CONT_EXEC * NOM_USUAR o NOM_EXE o NOM_PROG o NOM_CLASSE o NUM_PRIORI o DSC_PARM o NOM_ARQ_SAIDA o DAT_HOR_EXEC o QTD_HOR_SOMA o NOM_PROG_SUBSAO o FLG_SEND_MAIL_NOTES o IND_SEMAN o NUM_DIA o IND_RESTR o DAT_VALID_JOB JBO_US_FK JBO_PROG_FK # * NOM_CONTA_USUAR * NOM_USUAR * NOM_GUERRA * FLG_UTLZCO_FAX * DAT_CADSTR o NOM_CONTA_USUAR_SUPERV o NOM_IMPSRA_PAD o NUM_RAMAL_TEL o NUM_TEL * COD_EMP * COD_LOCALD * SIG_AREA o DSC_USUAR_CCMAIL o DAT_ATUALZ_SENHA * TIPO_USUAR o SENHA_USUAR_ESPEC o DSC_ASSNTA_ELETRO o COD_EMPR o COD_DEPEN_RH o NOM_NOTES o COD_UNID_ORGZNL o FLG_BLOQ_USUAR o COD_GRUPO_COTAC o DAT_DISPEN_USUAR o DAT_LIMITE_TERCER o IND_USUAR o DAT_EXPIRA_SENHA o COD_CATEG_USUAR o NOM_CONTA_USUAR_RESPON o USUAR_DISPEN o USUAR_TROCA_SENHA o NOM_CONTA_USUAR_TRANSF o NUM_CPF_USUAR o DAT_EXCLUS_USUAR ... US_SER_TRANSFERIDO PROG_COMPUT @ *ALL* (#) PROG_COMPUT_PERFIL @ MTB1CDBD (#) # * COD_SISTEM # * COD_SEQ_PERFIL # * NOM_PROG * DAT_INCL_PROG_PERFIL * IND_STATUS_REG PGPF_ESTAR_LIBERADO LIMITE_SUBMISSAO_BATCH @ *ALL* (#) # * COD_TIPO_LIMITE o DSC_LIMITE o QTD_LIMITE_BYTE # * NOM_PROG * DSC_PROG * COD_APLIC_SISTEM * COD_TIPO_AMBIEN o NOM_CLASSE o IND_LOCAL_EXEC o NUM_PRIORI o IND_FONTE o SIG_AREA_USUAR o IND_NIVEL_DRTRIO o IND_CLASSF_RISCO o FLG_PROG_PUBLIC o IND_CARACT_IMPR o DSC_TIPO_MODULO o FLG_TRANSF o COD_FORMAT_IMPSAO o NUM_VERSAO_REPORT 72 ANEXO 4 MODELO HIERÁRQUICO DOS MÓDULOS DA FERRAMENTA INTERFACE DO ADMINISTRADOR 73 74 ANEXO 5 RELATÓRIOS DA FERRAMENTA INTERFACE DO ADMINISTRADOR