Uma ferramenta do sistema pode interagir com outra para criar um fluxo de trabalho. Este trabalho apresenta o desenvolvimento de uma ferramenta para criação, automatização e gerenciamento de fluxos de trabalho no sistema operacional Linux, que irá agilizar o processo de administração e utilização do sistema. Uma ferramenta CAD para Linux seria muito útil para auxiliar no uso e administração de sistemas, criando fluxos de trabalho.
PROBLEMATIZAÇÃO
Formulação do Problema
Solução Proposta
Objetivo Geral
Objetivos Específicos
METODOLOGIA
ESTRUTURA DO TRABALHO
LINUX
Interfaces Gráficas no Linux
- GNOME
- KDE
- GNOME vs KDE
É possível escolher entre uma grande seleção de gerenciadores de janelas, mas os mais utilizados são o Gnome e o KDE. Ambos são robustos e usam seus próprios gerenciadores de desktop (o GNOME usa o Metacity e o KDE usa o kwin). Na figura é possível analisar os elementos que compõem o gerenciador de desktop GNOME por padrão, seguindo os padrões da maioria dos gerenciadores de janelas existentes.
GERÊNCIA DE SISTEMAS LINUX
Devido à flexibilidade do sistema operacional Linux, os ambientes de desktop GNOME e KDE podem coexistir com o mesmo usuário efetuando login, invocando uma nova sessão X11 e direcionando-a para uma nova TELA. Se algo acontecer com as informações dos discos, isso poderá afetar o desempenho do sistema e comprometer a integridade dos arquivos. Fornecimento de serviços de impressão: Todos os serviços de impressão que chegam pela rede ficam sob responsabilidade do administrador - desde a configuração da fila de impressão até a troca dos cartuchos/toners de impressão.
FLUXOS DE TRABALHO
Tipos de modelagem
O exemplo da Figura 7 mostra o mesmo exemplo apresentado na Figura 6, mas através de um diagrama de atividades. Um diagrama de estado mostra os possíveis estados de um objeto e as transações responsáveis pelas alterações em seu estado. O exemplo da Figura 8 mostra o mesmo exemplo apresentado na Figura 6, mas através de um diagrama de estados.
FERRAMENTAS CAD
História do CAD
Ferramenta CAD Automator
As ações podem ser relativamente simples, como pedir ao usuário para inserir um texto, ou complexas, como editar várias fotos ao mesmo tempo. A primeira tarefa pede ao usuário que escolha um arquivo no sistema para abrir e ler. Usar o Automator é relativamente fácil considerando os recursos que ele oferece, embora seja necessário algum conhecimento, principalmente se o usuário não tiver experiência em programação ou script.
TECNOLOGIAS DE DESENVOLVIMENTO
Ferramentas de Desenvolvimento Gráfico no Linux
- Eclipse
- NetBeans
Esta subseção discute algumas interfaces de desenvolvimento (Ambiente de Desenvolvimento Integrado - IDE) para o sistema operacional Linux. Eclipse é um IDE de desenvolvimento Java, iniciado em novembro de 2001 por grandes empresas como Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft e Webgain. No menu superior existem algumas opções de desenvolvimento do IDE como: Abrir Projeto, Novo Projeto, Salvar, Imprimir, Depurar, Executar, Pesquisar etc.
No canto superior direito, designado número 4, está talvez a maior característica do Eclipse: perspectivas. Quando o estado do aplicativo é alterado para o modo de depuração, o próprio Eclipse pergunta ao usuário se ele deseja mudar para a perspectiva de depuração. Isso pode ser configurado para ser automatizado sempre que você entrar no modo de depuração.
Após analisar o IDE de desenvolvimento, a falta de uma ferramenta integrada, por padrão, para desenvolvimento de aplicações desktop utilizando bibliotecas para desenvolvimento de aplicações gráficas desktop pode ser identificada como um ponto fraco. Um dos principais pontos fracos encontrados na IDE de desenvolvimento NetBeans foi o seu desempenho, sendo significativamente inferior ao Eclipse. Outro ponto forte do NetBeans é que ele vem com bibliotecas padrão para desenvolvimento de aplicativos gráficos de desktop.
Para desenvolver a ferramenta proposta neste trabalho será utilizado o NetBeans, pois ele está nativamente pronto para o desenvolvimento de aplicações desktop.
Ferramentas para a persistência de dados
- Banco de Dados
- XML
O primeiro sistema comercial de gerenciamento de banco de dados (SGBD) surgiu no final da década de 1960 baseado em sistemas de arquivos primitivos disponíveis na época, que não controlavam o acesso simultâneo de múltiplos usuários ou processos. Os SGBDs evoluíram a partir desses sistemas de arquivos de armazenamento em disco, criando novas estruturas de dados com a finalidade de armazenar informações. Com o tempo, os SGBDs começaram a utilizar diferentes formas de representação, ou modelos de dados, para descrever a estrutura das informações contidas em seus bancos de dados.
Atualmente, os SGBDs comumente utilizam os seguintes modelos de dados: modelo hierárquico, modelo de rede, modelo relacional (amplamente utilizado) e modelo orientado a objetos. O modelo relacional surgiu devido às seguintes necessidades: aumentar a independência dos dados nos sistemas de gestão de bases de dados; eles fornecem um conjunto de funções baseadas em álgebra relacional para armazenar e recuperar dados e permitir processamento ad-hoc. O modelo relacional tem-se revelado o mais flexível e adequado para resolver vários problemas que surgem ao nível da concepção e implementação de bases de dados.
Uma relação consiste em um ou mais atributos (campos) que refletem o tipo de dados a serem armazenados. A melhor forma de apresentar este tipo de dados é um gráfico orientado em árvore, pois oferece a possibilidade de organizar os dados sem se limitar à rigidez de uma tabela de atributos. Por outro lado, atributos em XML não devem ser confundidos com o termo homônimo utilizado em bancos de dados.
Embora o banco de dados pareça robusto, no caso da aplicação a ser desenvolvida neste trabalho, o XML revelou-se a forma mais adequada para armazenar dados, pois o XML não requer instalação de pacotes e não depende de distribuição ou drivers de software. .
MODELAGEM
- Arquitetura geral do sistema
- Análise de requisitos
- Casos de uso
- Modelagem lógica
- Modelagem dinâmica
A ferramenta se diferencia dos Shell Scripts por permitir ao usuário reaproveitar fluxos/ações/comandos já cadastrados de forma simples; elimina a necessidade de programação, utiliza interface gráfica para definir e executar fluxos e torna o fluxo de trabalho mais dinâmico, permitindo ao usuário modificar o fluxo conforme desejado. RF04: O sistema deve possuir uma lista de fluxos de trabalho pré-definidos de acordo com a área do sistema operacional que o usuário deseja selecionar; RF06: O sistema deve possibilitar a visualização das ações em andamento no fluxo de trabalho em andamento;
Primeiramente, as classes de controle executam os métodos das classes DAO, que por sua vez abrem os arquivos XML e instanciam os objetos das classes do Model Package, onde estão as classes Parameter, Command, Action e Flow. Existem métodos onde são configurados os caminhos para os arquivos XML com fluxos, ações, comandos e parâmetros. As classes FluxosControle, AcoesControle, ComandosControle, ParametrosControle são as classes onde são realizados os controles dos objetos fluxo, ação, comando e parâmetro.
Dentro de cada um deles há um hash onde objetos de cada tipo são armazenados e um ou todos os fluxos/ações/comandos/parâmetros podem ser recuperados/adicionados/removidos. Todas as classes neste pacote possuem métodos get e sets padrão, que são métodos que obtêm valores de atributos e alteram os valores. Um diagrama de sequência é um diagrama usado em UML para representar a sequência de trocas de mensagens entre objetos em um programa de computador.
Ajuda a determinar a sequência geral de comportamento porque, por exemplo, o diagrama de classes é estático. Geralmente existe um diagrama de sequência para casos de uso; No entanto, devido à obviedade de alguns casos de uso, apenas os principais casos de uso do sistema são utilizados.
ASPECTOS DE IMPLEMENTAÇÃO
Estrutura XML
- Estrutura XML de fluxos
- Estrutura XML de ações
- Estrutura XML de comandos
- Estrutura XML de parâmetros
Com base nessas informações, o fluxo será organizado na árvore de fluxos da interface gráfica de acordo com seu pacote; Com base nessas informações, a ação será organizada na árvore de ações da GUI de acordo com seu pacote; A solução de persistência de dados em arquivos XML atendeu às expectativas ao permitir o gerenciamento eficiente e eficaz de todos os dados, sem a necessidade de sobrecarregar a memória com banco de dados e drivers de conexão.
Acesso ao Shell do Linux
Quando o comando é executado, a saída é recebida e verificada para ver se aquele valor específico foi encontrado na saída do comando. Resolver o problema de executar comandos do Linux sequencialmente no shell na mesma sessão por meio de Java foi um grande problema de implementação; demorou cerca de 50% do tempo disponível para o TCC 2 e a solução encontrada, embora funcione, não pode ser considerada definitiva e precisa ser redesenhada por futuros desenvolvedores.
A FERRAMENTA DESENVOLVIDA
Neste painel as ações são posicionadas pelo usuário para que ele possa desenvolver o fluxo de trabalho; Para construir um fluxo de trabalho, basta clicar duas vezes em uma ação e ela se posicionará no painel de fluxo. Um fluxo pode ser composto de subfluxos (ações compostas), que são fluxos dentro de outros fluxos.
Em seguida utilize o painel de fluxos clicando duas vezes em um fluxo e este fluxo será posicionado no painel de fluxos para compor o fluxo em desenvolvimento. O fluxo que está no painel de fluxo e que não é salvo quando é exportado é denominado FluxoTemp. Quando um fluxo é executado, todo o progresso pode ser monitorado através do console e ao final do fluxo a ferramenta exibe uma mensagem de sucesso.
Ressalta-se que por ser uma ferramenta flexível na medida em que permite ao usuário cadastrar os comandos que considera relevantes para seus fluxos, pode causar sérios problemas ao sistema ou até mesmo torná-lo inoperante (como qualquer shell script que também executa root).ele pode).
TESTES
Descrição: Clique duas vezes em cada ação desejada para que ela fique posicionada no painel de fluxo. Para cada ação que irá compor o fluxo, deve-se clicar duas vezes para que ela fique posicionada no painel de fluxo. O segundo teste realizado foi a execução de um fluxo que já estava cadastrado e contido na árvore de fluxos.
Descrição: Clique duas vezes no fluxo desejado para colocá-lo no painel de fluxo. O tempo de execução de um fluxo pode variar dependendo do número de comandos, do tipo de comando, das configurações do Linux e do desempenho do computador que executa a ferramenta. Este teste permite comprovar a utilização da ferramenta para criação e execução de fluxos de trabalho, mas não houve tempo para testes mais detalhados e como resultado alguns problemas puderam ser detectados.
Primeiramente foi criado um fluxo aleatório para que pudesse ser exportado e em seguida foi selecionada a opção de exportar o fluxo (Figura 33). O objetivo deste trabalho de conclusão de curso foi desenvolver uma ferramenta de modelagem de fluxo de trabalho para o sistema operacional Linux para facilitar o uso do sistema operacional. Como uma avaliação geral de todo o projeto, foi um grande desafio desenvolver uma ferramenta de modelagem de fluxo de trabalho tão flexível.
Como sugestão para trabalhos futuros, no que diz respeito à melhoria da interface, podemos citar basicamente a melhoria do aspecto visual através da utilização das mais novas bibliotecas para o desenvolvimento de interfaces gráficas em Java, a inclusão de tecnologias drag'n drop (drag e drop), tanto para incluir ações ou fluxos no painel de fluxo quanto para reordenar as ações organizadas no painel de fluxo; incluindo uma biblioteca de ícones e melhorando a ergonomia da interface como um todo.