Entendimento da necessidade e elaboração de proposta de trabalho.
A Isquare Software, ou pelo menos a parte dela da qual o Leonardo Dias, meu contato, faz parte, tem como negócio principal a comercialização de “softwares originais”. São sistemas produzidos a partir da idéia de uma solução para um problema e da verificação de sua necessidade no mercado. Atualmente a empresa está baseada em um software de distribuição de arquivos via multicast com checagem de sucesso. Existem mais duas idéias de novos sistemas.
A ferramenta atual é escrita em Delphi e foi construída por uma equipe ou programador contratado do sul do país.
Qual a descrição básica do software atual? Descrição geral, arquitetura e principais funcionalidades.
INTRODUÇÃO
A solução eZ-Cast fornece uma forma eficiente de transmissão de arquivos e execução de tarefas, utilizando comunicação multicast ou unicast. Estas operações podem ser imediatas ou agendadas pelos administradores do sistemas e automaticamente executadas.
A flexibilidade oferecida pelo sistema permite a transmissão para uma lista de máquinas designadas na operação de transmissão ou de um agrupamento de máquinas pré-estabelecido por critérios de banda de transmissão e/ou distribuição geográfica.
Além da definição dos destinatários e método de envio, multicast ou unicast, também é permitido a execução de uma sequência de comandos (script) ao termino da(s) transferência(s) para a(s) máquina(s) destino(s).
Todas as transferências geram um arquivo de log detalhado com o resultado de cada envio e a situação de cada máquina destino, permitindo a análise do operador.
A eficiência do consumo de banda de transmissão na rede utilizando pacotes multicast, além da possibilidade de agendamento de transferências em períodos de menor tráfego tornam a solução eZ-cast a ferramenta ideal para redes corporativas capilarizadas, garantindo a confiabilidade e segurança na atualização de bases de dados de aplicações corporativas, atualizações de softwares, relatórios e documentos.
DESCRITIVO
A solução eZ-Cast traz inúmeros benefícios no tratamento de questões críticas de redes corporativas como: otimização de banda nos diversos segmentos de rede; confiabilidade e eficiência em transferência automáticas de arquivos e programação para execução remota de scripts em máquinas destino. Devido a modularização dos componentes da solução, o eZ-Cast possui flexibilidade para customizações características de cada corporação.
Dentre as principais funcionalidades da aplicação destacamos:
• Agendamentos de tarefas
• Instalação remota (manual ou automática)
• Modos de transferência Unicast e Multicast (imediato e agendado)
• Criação de grupos para envio de arquivos por localidade ou perfil de usuário
• Edição de parâmetros globais da aplicação (TTL, Portas TCP MultiCast e Unicast)
• Relatórios customizados de transferência de arquivos e execução de tarefas
Funcionamento
Na solução eZ-Cast o módulo cliente é executado em background em maquinas remotas nos diversos segmentos da rede corporativa, enquanto a aplicação server é executada no Servidor de Tarefas eZ-Cast.
Ao requisitar uma transferência de arquivos, o operador da rede corporativa do cliente acessa ao portal eZ-Cast e através de formulário web registra o evento na base de dados do Módulo WEB eZ-Cast.
Esta base de dados de eventos (transferência de arquivos e tarefas) é integrada ao Módulo de Tarefas eZ-Cast. Desta forma, a requisição registrada dispara ações no módulo de tarefas que via Multicast ou Unicast transfere os arquivos para as máquinas clientes (eZ-client) em modo imediato ou agendado (de acordo com a requisição feita)
No gerenciamento da transferência, o módulo de tarefas registra na base de dados todo o log do processo de transferência de arquivos que é disponilizado em relatórios customizados de acompanhamento de eventos.
Toda a comunicação / controle de execução de eventos é feita través do módulo de tarefas mediante troca de informações de dados e controle com os módulos WEB e cliente.
Mapa Lógico
A flexibilidade obtida através da modularização da solução eZ-Cast permite customizações para atender as características específicas de redes corporativas, permitindo a integração de novos módulos desenvolvidos a partir da especificação dos novos requisitos.
Na figura a seguir observamos a visão geral da integração dos diversos módulos da solução:
Qual a situação do software atual em relação a seu desenvolvimento? Está pronto?
Qual a situação desejada e em que espaço de tempo?
Diretiva
busca de simplicidade e adequação à necessidade
Algumas sugestões, independentes da proposta de trabalho.
Documentação é parte fundamental num ambiente de TI, seja de infra-estrutura ou de desenvolvimento de sistemas. Comumente um ambiente de infra possui sistemas e um ambiente de desenvolvimento tem sua infra-estrutura, portanto recomendo que haja alguma preocupação com esses dois tipos de registro. É muito importante ajustar, não só o que será documentado, mas também os processos e tudo mais, a cada realidade de empresa. Não vale a pena querer matar uma mosca com um canhão. Tentando documentar tudo numa estrutura pequena, vai se dispender, provavelmente, mais tempo do que o necessário na prática. É interessante refletir sobre o que será realmente consultado novamente um dia, o que será necessário no caso de rotatividade da equipe ou de ausência temporária de um membro, o que todo mundo sabe e não precisa estar escrito e assim por diante.
Outras documentações a se considerar podem ser administrativas (formulários, modelos de papel timbrado, documentos, imagens da empresa, etc) definições de processos em geral (como atender um cliente, como encaminhar um pedido, etc) e documentos gerados no dia-a-dia, trocados em emails, baixados da internet e tudo mais.
Considerando-se todas essas coisas, sem dúvida, uma sugestão que se aplica a qualquer realidade é o uso de uma ferramenta qualquer que facilite este processo. Essa ferramenta pode ser desde uma simples pasta compartilhada na rede, onde as pessoas colocam documentos numa estrutura de diretórios, ou uma ferramenta mais específica para este fim, como um repositório CVS ou SVN, um GED ou mesmo um wiki, ferramenta que atualmente tenho achado muito útil para a grande maioria dos casos. No desenvolvimento de sistemas é recomendável uma ferramenta como CVS ou SVN (ou outras muitas análogas) que o desenvolvedor possa usar direto de seu ambiente de programação e simplesmente gerar de uma vez novas versões de toda uma estrutura de código, o que o wiki não faz. Para todas as outras necessidades que mencionei aqui o wiki (como este onde está esse texto) se aplica bem.