SlideShare uma empresa Scribd logo
1 de 53
ESCOLA DE EDUCAÇÃO PROFISSIONAL SENAI PORTO ALEGRE
CURSO TÉCNICO EM REDES DE COMPUTADORES
FELIPE DEMÉTRIUS MARTINS DA SILVA
ANDRÉ ARAUJO DE MENEZES
Servidor de Help Desk Ocomon
SENAI Porto Alegre
Monografia apresentada como requisito parcial
para a obtenção da habilitação plena em
Técnico em Redes de Computadores
Prof. Maurício Rodrigues Cerqueira
Orientador
2
Porto Alegre, julho de 2010.
SERVIÇO NACIONAL DE APRENDIZAGEM INDUSTRIAL – SENAI-RS
ESCOLA DE EDUCAÇÃO PROFISSIONAL PORTO ALEGRE
Dados Internacionais da Catalogação na Publicação (CIP)
Escola de Educação Profissional Porto Alegre
Av. Assis Brasil, 8450
SILVA, Felipe Martins; MENEZES, André.
Servidor de Help Desk Ocomon / Felipe Demétrius Martins
da Silva; André Araujo de Menezes – Porto Alegre: SENAI/Escola
de Educação Profissional de Porto Alegre/Curso Técnico em
Redes de Computadores, 2010.
15 f.: il.
Monografia (curso técnico) – Serviço Nacional de
Aprendizagem Industrial. Escola de Educação Profissional Porto
Alegre. Curso Técnico em Redes de Computadores. Porto Alegre,
2010. Orientador: Maurício Cerqueira
4
CEP: 94140-000
Tel.: (51) 3347-8400
SUMÁRIO
LISTA DE FIGURAS .......................................................................................7
RESUMO ...........................................................................................................8
ABSTRACT .....................................................................................................10
1 INTRODUÇÃO..............................................................................................12
2 REFERENCIAL TEÓRICO......................................................................... 13
2.1 Help desk.................................................................................................................. 13
2.1.1 Primeiro nível de atendimento:...............................................................................14
2.1.2 Segundo nível de atendimento:...............................................................................14
2.1.3 Terceiro nível de atendimento:...............................................................................15
2.1.4 Terceirização:.........................................................................................................15
2.1.5 Viabilidade..............................................................................................................16
2.2 Ocomon.....................................................................................................................17
2.2.1 Histórico.................................................................................................................17
2.2.2 Serviços..................................................................................................................18
2.2.3 Licença e questões de instalação............................................................................19
2.2.4 Manual do usuário..................................................................................................20
2.2.5 Organizar e solucionar............................................................................................21
2.3 Slackware................................................................................................................. 22
2.3.1 História...................................................................................................................22
2.3.2 O nome “Slackware”..............................................................................................23
2.3.3 O símbolo...............................................................................................................23
2.3.4 Versões...................................................................................................................23
2.3.5 Usuários avançados................................................................................................24
2.3.6 O criador.................................................................................................................24
2.4 Banco de dados MySQL..........................................................................................26
2.4.1 O que é um banco de dados relacional?.................................................................26
2.4.2 Entendendo o MySQL............................................................................................27
2.4.3 Recursos do MySQL..............................................................................................28
2.4.4 Características do Mysql........................................................................................29
2.5 O que é o LDAP?..................................................................................................... 32
2.5.1 Definição de diretórios...........................................................................................33
2.5.2 Definição de DIT e o protocolo LDAP..................................................................33
3 PROJETO .....................................................................................................36
4 IMPLEMENTAÇÃO......................................................................................37
6
4.1 MySQL..................................................................................................................... 37
4.2 Apache...................................................................................................................... 40
4.3 PHP........................................................................................................................... 40
4.4 Ocomon.....................................................................................................................43
4.5 LDAP........................................................................................................................ 44
4.6 Monitores SA............................................................................................................45
4.7 Dificuldades encontradas........................................................................................46
5 CONCLUSÃO...............................................................................................47
REFERÊNCIAS...............................................................................................48
ANEXO A PLANTA DA EMPRESA ...........................................................50
ANEXO B OCOMON LOGIN ...................................................................... 51
ANEXO C: OCOMON CHAMADOS .......................................................... 52
ANEXO D: OCOMON ADMIN .................................................................... 53
LISTA DE FIGURAS
18
19
Figura 5: Patrick Volkerding...........................................................................................21
RESUMO
Ao longo deste trabalho diversos fatores serão apresentados, todos estes
componentes são relevantes na implementação do projeto.
Inicialmente iremos abordar o help desk, um serviço de prestação de suporte
prioritariamente voltado pra área de TI, quais seus benefícios, níveis de atendimento e
comparação com service desk.
Posteriormente, ao embasarmos o software que utilizaremos para organizar os
pedidos de chamado, o Ocomon. A fama deste software, seus testes, todos os serviços
que o Ocomon oferece o que é o Invmon (inventário que trabalha em conjunto com o
Ocomon), quais os passos para o usuário operá-lo, entre outros.
Citaremos o sistema operacional o qual escolhemos como servidor, o Slackware
Linux, seu criador, o símbolo e suas versões.
O Ocomon, assim como muitos softwares possui um banco de dados, este projeto
será realizado utilizando o Mysql. Assim explicarmos seus recursos e algumas
características.
Para ter acesso à abertura de chamados, os usuários necessitam de login e senha, que
serão autenticados através do protocolo LDAP.
Posteriormente é apresentado todos os dados resultantes da implementação, tais
como objetivos iniciais, ferramentas para o levantamento de todo o sistema, os
ocorridos ao longo do projeto (dificuldades e sucessos) e a que conclusão chegamos.
9
Palavras-Chave: slackware, Linux, help desk, service desk, ldap, ocomon, invmon.
Help desk Server Ocomon
ABSTRACT
Throughout this paper various factors are presented, all these components are
relevant to project implementation.
Initially, we discuss the help desk, a service aimed primarily to provide support to
the IT field, what their benefits, service levels and comparison with service desk.
Later, at the base of the software we use to organize the applications called,
OCOMON. The fame of this software, its testing, all services that OCOMON offers
what is Invmon (inventory that works in conjunction with the OCOMON), which steps
the user to operate it, among others.
The operating system which we choose as a server, Slackware Linux. The creator,
the symbol of Slackware, their versions.
The OCOMON, like many software has a database, this project will be done using
Mysql. Thus explaining its features and some characteristics.
To access the call opening, users need a login and password, which will be
authenticated through the LDAP protocol.
It is then submitted all data resulting from the implementation, such as initial goals,
tools for removing the entire system, occurring throughout the project (problems and
successes) and what conclusion we arrived.
11
Keywords: slackware, Linux, help desk, service desk, ldap, ocomon, invmon.
1 INTRODUÇÃO
Este relatório irá traçar dois enredos um tanto quanto distintos: o que está disposto
primeiramente neste trabalho, será o embasamento teórico, e o segundo ficará a cargo
de tratar da parte prática do projeto.
A teoria irá envolver assuntos como definições do núcleo deste projeto, o servidor
de help desk, suas funções, benefícios, comparação com o Service desk, terceirização e
demais assuntos. Juntamente com a primeira parte, trataremos do Ocomon, o software
chave da implementação, qual seu objetivo, por que é bastante aplicada nas empresas,
entre outros. O LDAP, outro assunto tratado, mas desta vez bastante superficial, será a
ferramenta utilizada para autenticar os usuários do Ocomon. Para a implementação do
projeto aplicaremos todas as ferramentas e softwares em cima do Slackware, um
sistema operacional Linux bastante conhecido pela dificuldade de operação, e
considerado por muitos um sistema para usuários avançados. As informações
indispensáveis configuradas por padrão no Ocomon, e também dados adquiridos ao
longo do trajeto, serão guardados no banco de dados MySQL. O Apache, a ferramenta
de construção do Servidor Web, também será apresentada. Concluindo assim o primeiro
enredo, que como dito anteriormente, apresenta a parte teórica de todo o projeto.
De um ponto de vista geral, a maneira como foi tratado os assuntos anteriores, em
alguns momentos integrando-os, pode ter ocorrido de forma complicada, mas
garantimos-lhe que com o segundo enredo, a parte prática (e é claro, uma leitura
bastante atenciosa em todo o relatório), corrigirá qualquer mal entendido e
solucionaremos qualquer dúvida.
Complementando então esta introdução, a segunda parte trará todos os ocorridos,
dificuldades pesquisas, experiências profissionais e conclusão do nosso projeto.
2 REFERENCIAL TEÓRICO
2.1 Help desk
[18] Help desk é a definição que se dá ao serviço prestado a um determinado cliente,
a fim de fornecer-lhe um suporte para determinado problema. Problema este que na
maioria das vezes está relacionado com TI, sendo também algo que impossibilite-o de
prosseguir com o seu serviço. Também pode ser fornecido de várias maneiras,
pessoalmente, telefone, e-mail, fórum, mensagens instantâneas (Messenger) e qualquer
outro meio de comunicação.
O Help desk pode ser oferecido tanto internamente, por funcionários da área de
informática que trabalhem na mesma empresa de quem receberá o auxílio, quanto
externamente, contratando uma empresa especializada em help desk, terceirizando o
serviço, que na maioria das vezes o suporte não é prestado pessoalmente.
O principal objetivo do Help desk é fazer com o colaborador que esteja com
problema retorne ao seu serviço o mais rápido possível, e dependendo, fazer com que o
problema encontrado não retorne a atrapalhar o andamento do trabalho dos
funcionários.
Figura 1- Help desk – Fonte: http://www.temple.edu/cs/techcenter/images/helpdesk.jpg
14
Atendentes de telemarketing e funcionários de lan houses são outros exemplos de
profissões relacionadas ao help desk. Englobando todos estes, dá-se o nome de
"Analista de Help desk".
Outro objetivo de toda uma organização para prestar serviço de suporte, como dito
anteriormente, é fazer com que a empresa não tenho prejuízos tanto financeiros quanto
morais, causados por eventuais problemas de TI.
Quando é tratado um acordo entre o cliente que receberá o serviço e o fornecedor do
mesmo, é criada uma SLA (Acordos de nível de serviço). Uma SLA estabelece em
quanto tempo, de que maneira, em quais condições imprevistas e outros fatores será
solucionado o problema.
Dentro de um serviço de help desk pode haver vários níveis de atendimento, como:
2.1.1 Primeiro nível de atendimento:
É onde o usuário recorre quando encontra algum problema na sua trajetória. Este
primeiro nível se divide em:
2.1.1.1 Solucionador:
O atendente soluciona o problema através da própria ligação de pedido de suporte,
ou por e-mail, independente da forma como foi pedido. Neste caso não há a necessidade
de transferir o pedido a outro especializado que atue no departamento de TI, é a solução
mais prática. Também pode ser resolvida com uso de ferramentas como um acesso
remoto, no caso de um problema virtual.
2.1.1.2 Direcionador:
É quando a solicitação chega primeiramente a um "atendente", este repassa a mesma
solicitação junto de alguns detalhes já questionados ao usuário para o especializado que
aí então tomará posse do problema. Direcionando assim os pedidos para a equipe mais
apropriada.
2.1.2 Segundo nível de atendimento:
É quando um primeiro técnico não soluciona um problema, então é acionado um
segundo, a fim de resolvê-lo. Também se pode caracterizar o segundo nível de
atendimento quando um técnico se desloca fisicamente até a sala onde se encontra o
usuário com problema. Este caso é designado especificamente quando o problema
ocorre com algum hardware ou o micro não inicializa, entre outros.
15
2.1.3 Terceiro nível de atendimento:
Pode tanto ser uma subdivisão dentro do setor de suporte de TI, quanto fornecedores
de hardware ou software (quando o problema é encontrado logo no início do uso do
produto), consultores contratados, e assim por diante.
2.1.4 Terceirização:
[19] Hoje existe uma diferença de tratamento entre grandes empresas e PME
(pequenas e médias empresas) referente ao tratamento com o seu suporte técnico.
Enquanto a maioria das empresas de grande porte trata seriamente os incômodos
relacionados com TI, outras de menor comportamento podem acarretar muitos prejuízos
com pequenos detalhes que venham a estorvar a vida profissional de seus trabalhadores,
podendo deixá-los parados por horas e até dias.
Muitas vezes o mercado PME contrata alguns técnicos para comporem essa área, e
resolver seus eventuais problemas. Mas muitos destes contratados não têm noção de
atendimento, como evitar que os mesmos problemas voltem a ocorrer, de um modo
geral pode-se dizer que muitos deles não se encaixam no perfil de um analista de help
desk.
Neste caso, a empresa está contando e colocando toda a sua confiança em cima de
um dois profissionais para a solução de problemas.
Mas conforme o mercado de trabalho foi pensando em aprimorar os seus serviços
cada vez mais, surgiu o Service desk, que são empresas terceirizadas, contratadas
especialmente para tais deveres.
Estas empresas treinam, lecionam teorias de service desk, e possuem profissionais
teoricamente mais qualificados para a resolução de problemas.
Quanto ao custo benefício, também há vantagem, comparando um profissional com
uma empresa especializada. Outro benefício é o fato de as empresas de service desk
fornecerem profissionais que são treinados para evitar repetidos erros, enquanto os
técnicos contratados diretamente pela empresa fazem tal processo digamos que por
improviso.
Empresas de service desk possuem áreas de atendimento (citado em níveis no início
deste capítulo) bastantes organizados, com ocorridos como: se um problema registrado é
relacionado com segurança, este é designado a uma determinada área do service desk, já
se o problema foi encontrado na rede ou internet ou área é acionada, e cada área possui
seus níveis de atendimento dentro de cada área.
Concluindo de maneira geral, com um service de service desk terceirizado a empresa
pode se programar quanto a tempo e quanto a custos. Um exemplo disto é agendar um
check-up geral na rede, procura intensa por ameaças, resolução de problemas que
incomodaram por semanas, recebendo dicas de como aperfeiçoar sua rede com novos e
modernos hardwares e softwares, tudo programado e pré-combinado em uma SLA. Isso
mantém a produtividade e a competitividade da empresa.
16
De um modo geral, pode-se concluir que um contrato SLA dá uma tranquilidade
para a empresa, tranquilidade essa tanto de garantia que o problema será exterminado,
quanto de fortalecer a aliança entre a empresa que necessita do suporte (contratante) e a
empresa de service desk (contratada), e também que uma empresa que se preocupa com
o seu setor de resolução de problemas é uma empresa precavida, bastante desenvolvida,
madura e com muitas expectativas para o futuro.
2.1.5 Viabilidade
Tendo em vista que muitas empresas não possuem um serviço de pedido de suporte
bem trabalhado, organizado e sempre pronto para ajudar os colaboradores, é
indispensável que hoje em dia se tenha esta estrutura a serviço de imprevistos.
Talvez algum dono de empresa pense que manter um setor, ou uma empresa como
sócio para solucionar os problemas de TI seja muito custoso, tanto por verba quanto por
ter um funcionário que poderia passar a maior parte do tempo desocupado.
Essa hipótese não se concretiza na prática, pois incômodos aos funcionários, sempre
ocorrem, por mais que a rede tenha uma construção bastante cuidadosa, que os
computadores sejam de ótima qualidade, que as impressoras possuam cartuchos
originais e bem instalados na rede, sempre haverá um mínimo problema que acarretará
no pedido da presença de um especializado por parte dos colaboradores.
E quanto à "desocupação" dos funcionários, isso se torna uma inverdade, pois os
técnicos analistas de help desk, têm em seus deveres, procurar alguns ocorridos que
possa tornar-se futuro incômodo maiores, evitando assim possíveis problemas que
muitos contratados diretamente pela empresa para o setor de help desk não dariam
conta.
17
2.2 Ocomon
2.2.1 Histórico
[10] Em março de 2002, o programador Franque Custódio, desenvolveu uma
ferramenta com a característica de possuir um cadastro de usuários, e facilitar o
acompanhamento, o controle e a consulta de ocorrências de suporte. Deu a essa
ferramenta o nome de Ocomon, e a primeira instituição a adotá-la foi o Centro
Universitário La Salle (UNILASALLE). Dentro dessa universidade, o analista Flávio
Ribeiro assumiu o Ocomon após ele ser testado nessa primeira instituição, sempre
aperfeiçoando e aplicando diferentes características, sempre com o objetivo de melhorar
o gerenciamento de suporte técnico, o Help desk ou Service desk.
"Começamos a utilizar o sistema em março de 2002, desde então já ultrapassamos a
marca de 25000 (vinte e cinco mil) chamados de todos os níveis de suporte, registrados
e armazenados em uma base de conhecimento. No primeiro ano de utilização de
indicadores de SLA (2004) percebeu-se uma melhora constante mês a mês tanto nos
tempos de resposta quanto nos tempos de solução, e na comparação com o primeiro
trimestre de 2005 tivemos um aumento de 19,9% no número de chamados dentro dos
indicadores positivos de tempo de resposta e de 12,04% no número de chamados dentro
dos indicadores positivos de tempo de solução", Flávio, em relação à experiência com o
Ocomon.
Figura 2 – Ocomon – Fonte:
http://sourceforge.net/apps/mediawiki/ocomonphp/nfs/project/o/oc/ocomonphp/3/38/Ocomon-logo.png
[11] Em 2003, surge o Invmon, que seria a primeira versão do módulo de inventário,
onde seria armazenado todos os dados do Help desk, como relatórios gerenciais,
histórico de mudanças de localidade de equipamentos e controle de licenças de
software.
[12] O serviço de gerenciamento de SLA's foi incorporado ao Ocomon no início de
2004, obtendo melhoria no acordo com os indicadores fixados para os serviços
realizados.
SLA's (Service Level Agreement - Acordo de Nível de Serviço) nada mais é do que
o acordo, o contrato firmado entre o fornecedor de suporte de TI e o cliente que
receberá o serviço. Caso algum SLA que esteja no contrato não seja cumprido, o cliente
tem o direito de cobrar uma multa do fornecedor.
O Invmon e o Ocomon foram integrados e começaram a trabalhar juntos apenas em
2005, obtendo também um novo layout e o nome único de Ocomon.
18
2.2.2 Serviços
O Ocomon pode ser definido como um software monitor de ocorrências e inventário
de equipamentos de informática que, ele é acessado por usuários para registrar
chamados, que são as solicitações de suporte aos técnicos. [9] Os usuários acessam o
servidor de Help desk, na página inicial é pedido usuário e senha, estes já criados. Após
o login, é exibida uma tela com diversas opções como: abrir um chamado, principais
problemas, estado atual do parque de equipamentos de rede, usuários mais ativos os que
mais solicitam suporte, a distribuição física de cada patrimônio da área de TI, o tempo
que cada chamado levou para ser resolvido, volume de chamados por determinados
períodos, chamados que necessitaram ser reabertos em função do mesmo problema,
entre outros. Alguns destes, como os equipamentos de rede, estão disponíveis apenas ao
administrador.
O Ocomon e o Invmon ainda que juntos desempenhem papéis teoricamente
diferentes, enquanto o Ocomon trabalha com a parte mais prática, chamados abertos,
ativos, tudo o que ocorre no momento, o Invmon é o encarregado de armazenar tudo o
que ocorreu catalogar os fatos.
Para melhor entender a função de cada módulo, abaixo é descrito em que momentos
o Ocomon e o Invmon trabalham:
Ocomon, gerenciador do módulo de ocorrências:
* Abertura de chamados de suporte pelo usuário;
* Vínculo do chamado aberto com o número patrimonial do equipamento em
questão;
* Pesquisa sobre os chamados passados, classificando-os por configuração,
localização, motivo, entre outros;
* Notificação automática para a área de suporte, através de e-mail;
* Definir prioridade de suporte por setor da empresa.
Invmon, gerenciador do módulo de inventário:
* Controle de garantia dos equipamentos;
* Cadastro de documentação de todos os equipamentos, manuais, licenças, garantia,
mídias, entre outros;
* Histórico de mudanças físicas de equipamentos;
* Controle de licenças, tanto de sistemas operacionais quanto de softwares.
O Ocomon possui as seguintes questões técnicas, serviços com o qual o Ocomon
trabalha em cima:
19
* Um servidor Apache com PHP entre as versões 4.3 e 5;
* Um banco de dados MySQL a partir da versão 4.1;
* E a autenticação de usuários, que pode ser realizada tanto através do próprio
Ocomon quanto pelo LDAP.
2.2.3 Licença e questões de instalação
O Ocomon não possui direitos autorais, é um software copyleft, software livre,
opensource, concebido sob o modelo GPL de licenciamento.
A seguir estão descritos alguns pré-requisitos para a instalação do Ocomon, segundo
o próprio Flávio Ribeiro:
* O sistema operacional não é relevante;
* O servidor web tem preferência pelo Apache;
* Servidor Apache com PHP entre as versões 4.3 e 5;
* Banco de dados;
* Um navegador, recomendado o Mozilla Firefox;
Nota: o servidor web e o navegador citado, não são os obrigatórios, mas tudo foi
testado e projetado através deles, por isso são confiáveis. Nada impedindo de usar o
Internet Explorer, por exemplo, mas nesse caso haverá perda da visualização correta do
layout.
O serviço que corresponde à notificação automática para a área de suporte através de
e-mail, pode ser configurado de duas maneiras:
* Utilizando a função SMTP especificada por você;
Mas caso ela seja desabilitada...
* Envio de e-mails pela função mail do PHP.
Independente da maneira escolhida, o arquivo php.ini deve estar configurado
adequadamente.
É possível também fazer upload de imagens na abertura do chamado, como por
exemplo, o usuário enviar um printscreen de um erro desconhecido, isso agilizaria o
processo de resolução. Para isso, esta opção também deve estar ativada e configurada
corretamente no arquivo php.ini.
Ao compilar o PHP é necessário dar suporte à biblioteca GD. Esta função serve para
a visualização dos gráficos.
E um último requisito importante é o navegador suportar javascript e cookies.
20
2.2.4 Manual do usuário
O Ocomon possui uma interface de interação com o usuário bastante simples e auto-
explicativa. Abaixo estão descritos os passos para cadastro, login e abertura de um
chamado:
*A tela de início do Ocomon exibe um espaço reservado ao login, e outro logo
abaixo que é destinado ao cadastro dos usuários não cadastrados.
*Clicando em cadastrar, será aberta uma janela solicitando os dados principais para
efetuá-lo.
Login: o nome de usuários solicitado no momento de entrar no Ocomon.
Nome completo: serve para sincronizar todos os dados com o nome completo do
usuário, em função de uma futura pesquisa para solucionar problemas com o mesmo.
E-mail: além de possuir o mesmo benefício que o anterior, a este será enviado um e-
mail de confirmação do cadastro e outros para eventuais ocorridos.
Senha: será solicitado no login juntamente com o nome de usuário.
Repita a senha: repetir a senha para caso tenha fornecido uma senha não desejada.
*Posteriormente clicar em cadastrar. Neste momento será enviado um e-mail de
confirmação para o e-mail fornecido durante a fase de cadastro.
*Clicar no link enviado pelo sistema e receber o aviso de cadastro bem sucedido.
*Após voltar à tela de início do Ocomon, deve-se fornecer o nome de usuário e a
senha para o login.
*Quando logado, é exibido um painel à esquerda com as opções: início, abrir
chamado, meus chamados, senha.
Início: exibe exatamente a tela após o login.
Abrir chamado: solicitar suporte, o objetivo de toda a programação.
Meus chamados: Lista todos os chamados aberto pelo usuário, com informações
como: dia, hora, problema encontrado, número do chamado, entre outros.
Senha: caso o usuário deseje alterar a sua senha.
Serão exibidos diversos campos, a seguir, a importância de cada um:
*O campo problema, é para dar um embasamento, colocar de modo geral o
problema encontrado;
*Descrição do problema é descrito detalhadamente o que estorvou o funcionário
durante o seu trabalho;
*Unidade descreve em qual filial daquela empresa está sendo aberto o chamado, não
é obrigatório;
*Contato é o nome de quem irá atender o chamado, dependendo de quem estiver
abrindo-o, pode definir o técnico a atendê-lo;
*Local é o nome do setor onde será fornecido o suporte;
21
*Patrimônio do equipamento que foi encontrado o problema, como a impressora, o
computador, o monitor, etc;
*Ramal do usuário;
*Operador é o nome de quem está abrindo o chamado;
*Os demais campos estão pré-preenchidos.
Após todos os campos estarem completos, o botão “OK” será realçado,
possibilitando assim, a abertura do chamado.
Ele aparecerá na página inicial do seu login com dados como: número do chamado,
problema, ramal do contato, local e descrição do problema e status (que varia entre
“aguardando atendimento”, “em atendimento” e “encerrado”).
O status irá alterar para “em atendimento” quando o técnico responsável fazê-lo.
Após o fechamento do chamado, ele será exibido na lista dos “Meus chamados”,
exibindo tanto as informações cedidas no momento da abertura, quanto o que foi feito
para sua resolução, esta por parte do técnico.
2.2.5 Organizar e solucionar
Como dito de maneira subentendida anteriormente, o Ocomon organiza os chamados
de suporte efetuados pelos colaboradores de uma corporação. Não é muito difícil
encontrar alguma empresa com muitos funcionários, onde o pedido de solução de algum
problema seja de um “grito” de um guichê para o outro. Se o problema deve ser
resolvido com muita agilidade a cobrança é maior ainda. E isso demonstra
desorganização da empresa, aí então entra o Ocomon, definindo prioridade de
atendimento, chamados pendentes, chamados que tiveram que ser reabertos, entre outras
definições que auxiliam o trabalho do técnico.
2.3 Slackware
2.3.1 História
[13] O Slackware é a distribuição Linux mais antigo e em atividade no momento.
As fontes referentes ao seu surgimento variam, alguns dizem que nasceu em 1992, já
outros defendem a tese de que 1993 foi o ano do seu lançamento.
Patrick Volkerding foi o progenitor do sistema Slackware Linux. Mais à frente é
abordado de maneira mais específica sobre o criador.
O Slackware é um sistema operacional que se não for instalado de livre arbítrio do
usuário, não possui tela gráfica, ou seja, apenas em linhas de comando. Um exemplo de
tela gráfica compatível do o Slackware é o Gnome. O Gnome não foge muito dos
padrões de layout do Linux, e é bastante conhecida. Mas em 2005, Patrick Volkerding
removeu-o de seu sistema, o que desagradou muita gente, pois era bastante popular.
Mas Patrick não o fez sem motivo, ele alegava que tal interface gráfica levava muito
tempo para empacotar os binários.
Figura 3 – Slackware- Fonte: http://www.mononeurona.org/img/photos/slackware-0.2.png
Mas descontente com a situação, foram criados projetos de Gnome, como: Gnome
Slackbuild, Gnome Slacky e Dropline Gnome. Estes projetos foram desenvolvidos por
comunidades. Logo nota-se que muitas variedades de Gnome é o que não falta ao
Slackware, mas sempre tendo em mente que não é um sistema que nasceu eu foi
projetado junto com o sistema operacional.
GoblinX, Slax e Wolvix são sistemas Linux que surgiram a partir do Slackware,
inclusive o Back Track, uma versão específica para servidores.
23
2.3.2 O nome “Slackware”
O nome Slackware surge do princípio "slack" usado pela Igreja de Subgenius
(Church of SubGenius), a qual, Patrick Volkerding é adepto.
Esta igreja é uma pseudo-religião que satiriza religiões e crenças, envolvendo
conspirações mundiais, profecias, extraterrestres, entre outros.
O símbolo desta igreja é o Bob com Cachimbo, o que então serviu de inspiração
para Patrick criar o símbolo do Slackware, esclarecido mais adiante.
Mas o que é “Slack”? Slack é utilizado pela Igreja de SubGenius para definir a sua
crença central, mas também vários outros significados, como felicidade, liberdade,
compreensão, originalidade, pureza, etc. Ela afirma que todos nascemos com um slack
original, e este nos é roubado pelas pessoas normais, os chamados "pinks".Então a
mensagem que concluimos, após entender que Slackware é uma referência slack, é:
"seja original, feliz e livre, não pense como os pinks, nem deixe eles roubarem seu
slack".
2.3.3 O símbolo
O Tux, um pinguim roliço e com ar de saciado, é o mascote de todo o sistema Unix,
mas quando ele ostenta um cachimbo em sua boca, ele representa em especial o
Slackware. Isto transmite antiguidade e experiência. Por ser o sistema Linux mais antigo
e por exigir um considerável conhecimento dos usuários para ser operado.
Figura 4 – Bom com cachimbo – Fonte: http://img.vivaolinux.com.br/imagens/artigos/comunidade/dobbs.jpg
2.3.4 Versões
[16] A primeira versão do Slackware surgiu em 16 de julho de 1993 (algumas
fontes contrariam, alegando que seu surgimento se deu em 1992), como de costume, era
a versão 1.0.0. Depois disso o último algarismo acrescia em 1 a cada versão nova que
era lançada, com exceção de algumas versões, como por exemplo: em 1994 a versão
com maiores aprimoramentos era a 1.2.0.3, que após o update, tornou-se 2.0.0, em 1999
pulou de 4.0 diretamente para 7, e a mais atual de 2008 para 2009 a versão 12.2 após
24
aprimoramentos abrigou o 13.0. Estes "pulos" de versões servem para fazer os usuários
crêem que o Slackware não era desatualizado em relação aos outros sistemas Linux.São
cerca de 44 versões no total.
Em 2007 foi lançada a versão 12.0 do Slackware, que precedia a versão 12.1
lançada no ano posterior. A diferença entre uma versão e outra, era que a mais
atualizada possui disponível os pacotes para a interface gráfica KDE 4.1.
Inegavelmente, esta última possui um visual mais atraente, mas mesmo assim,
desagradaram muitos usuários acostumados com a versão 3.5 do KDE.
Durante o desenvolvimento deste relatório, acerca de agosto de 2010, a última
versão do Slackware disponível era 13.1, lançada no dia 24 de maio do mesmo ano.
Uma das grandes reclamações dos usuários com o Slackware, é a falta de pacotes
prontos, o que já vem mudando principalmente com a última versão 13.1.
2.3.5 Usuários avançados
[14] O Slackware por muitos é tido como um sistema operacional apenas para
usuários avançados, por exigir bastante aplicação do usuário para instalação e/ou
configuração de qualquer recurso, ou seja, um sistema que ignora os noob(desprovidos
de inteligência no ramo da informática).
Outros preferem denominá-lo como uma distribuição para usuários que gostam de
aprender e fazer esforço.
2.3.6 O criador
[15] O principal mantenedor do sistema Linux Slackware, como citado
anteriormente, é o americano Patrick Volkerding, nascido em 20 de outubro de 1966. O
Slack é praticamente todo gerenciado, alterado e atualizado conforme pensa Patrick.
Claro que ele sozinho não construiu tudo, podemos afirmar que ele conta com a ajuda
de outras duas pessoas: David Cantrell e Chris Lumens.
Existe em forma de anedota, a afirmação de que Patrick além de compilar kernel,
também "compila" cerveja. Na verdade, o certo seria fabrica sua própria cerveja.
Patrick é considerado também um Deadhead, apelido destinado aos fãs da banda
Grateful Dead.
Voltando à interação do Patrick com o Slackware, por muitos ele é tido como "The
Old" (O velho), demonstrando respeito pelo homem que criou o sistema Linux que
também denominam ser o melhor de todos.
[17] Durante o ano de 2004, Patrick sofreu de uma doença chamada "endocardite
infecciosa", que o deixou mal por um longo tempo, e consequentemente o Slackware.
Durante esse tempo, o Slackware foi administrado pelos colaboradores citados
anteriormente, juntamente com outros profissionais, inclusive o brasileiro Piter Punk.
Muitos acreditavam que ele viria a falecer. Mas no dia 18 de dezembro ele recuperou-se
25
e voltou a programar seu sistema operacional, mesmo afirmando no dia 22 de janeiro do
ano de 2005 que ainda não estava 100% recuperado.
Um dos principais objetivos do Patrick com o Slackware, é manter os padrões do
Unix, fazendo o usuário operá-lo "dentro" das configurações, entender realmente como
acontece, não escondendo do usuário como o sistema realmente funciona.
Figura 5 – Patrick Volkerdging – Fonte http://terramel.org/wp-content/uploads/2010/04/pvolkerding.jpg
26
2.4 Banco de dados MySQL
Segundo Mark Maslakowski e Tony Butcher , desde antes do aparecimento da era
do computador, as pessoas têm utilizado banco de dados. Antes dos computadores, um
banco de dados poderia ter sido um simples fichário do tipo Rolodex contendo números
de telefone de pessoas importantes que você conhecia ou era um armário do tipo
arquivo contendo todos os registros pessoais da empresa. Hoje, os bancos de dados são
baseados em computadores e são encontrados em praticamente toda parte. Dos bancos
de dados de área de trabalho de sua coleção de registros a aqueles compatíveis com a
Web mantidos por grandes corporações, os bancos de dados aparecem em todas as
formas e tamanhos. Por causa desse fato, a indústria de banco de dados cresceu tão
rápido e tanto quanto o resto da indústria da computação.
Até recentemente, a maioria dos bancos de dados de alto poder custava muito caro.
Eles podiam fornecer todas as ferramentas e funcionalidades para executar um negócio,
mas em um preço muito alto. Então, a maioria das corporações utilizava um banco de
dados que era mais barato e, no entanto, sacrificava a funcionalidade.
Figura 6 – MySQL – Fonte: http://www.joaodosite.com/wp-content/uploads/2009/06/logo-mysql.jpg
Adicionalmente, a Internet gerou uma necessidade para banco de dados que pode
ser acessada via Web. Essa necessidade orientou os fabricantes de software a criar
produtos que podem tirar proveito dessa tecnologia. Novamente, preço desempenha um
papel grande. Esses produtos são geralmente muito caros e dependem muito de
plataforma; portanto, nem todos os provedores de serviço da Internet (Internet Service
Providers – ISP) ou pequenas empresas tiram proveito dessa tecnologia.
Entra em cena a revolução Linux e do Opensource. Essa idéia paradigmática – ter
um sistema operacional e o código-fonte disponível gratuitamente – alternou a maneira
como a indústria fazia seus negócios. Agora que a revolução por fim adquiriu uma
forma, as pessoas estão afluindo em massa para ver como podem utilizar essa solução.
O MySQL faz parte dessa solução. O MySQL foi desenvolvido pela TcX em 1996.
Eles criaram-no porque precisavam de um banco de dados relacional que pudesse tratar
com grandes quantidades de dados em hardware relativamente barato. Nada que existia
podia fornecer o que eles precisavam, então eles mesmos o criaram.
2.4.1 O que é um banco de dados relacional?
Um banco de dados relacional, em uma simples definição, é um banco de dados que
é constituído de tabelas e colunas que se relacionam. Essas relações são compostas em
um valor-chave que é contido em uma coluna. Por exemplo, você pode ter uma tabela
chamada "Produtos" que contém todos os produtos em estoque da empresa. É possível
27
também ter uma tabela chamada "Clientes" que contém todos os dados que pertencem
aos clientes, como nome, endereço e o produto que ele consome. Essas duas tabelas
podem ser relacionadas entre si.
O modelo de banco de dados relacional foi desenvolvido por E.F. Codd no início da
década de 1970. Ele propôs que um banco de dados deveria consistir em dados
armazenados em colunas e tabelas que podem ser relacionadas entre si. Esse tipo de
pensamento era muito diferente do sistema de arquivos hierárquico que era utilizado na
época. Seu pensamento realmente revolucionou a maneira como são criados e utilizados
os banco de dados.
Um banco de dados relacional é muito intuitivo. Ele simula a maneira como as
pessoas pensam. As pessoas tendem a agrupar objetos mais simples. É precisamente
essa a natureza dos bancos de dados relacionais. Como eles simulam a maneira que
você pensa, eles são fáceis de utilizar e aprender.
A maioria dos bancos de dados modernos utiliza um modelo relacional para realizar
suas tarefas. O MySQL não é diferente. Ele adapta-se verdadeiramente ao modelo
relacional. Isso adiciona mais ainda à facilidade de uso do MySQL.
2.4.2 Entendendo o MySQL
MySQL é um sistema de gerenciamento de banco de dados relacional
multiencadeado, de código-fonte aberto e nível corporativo. O MySQL foi desenvolvido
por uma empresa de consultoria na Suécia chamada TcX. Eles estavam precisando de
um sistema de banco de dados que fosse extremamente rápido e flexível. Infelizmente,
eles não encontravam nada no mercado que pudesse fazer o que eles queriam. Então,
eles criaram o MySQL, que é vagamente baseado em outro sistema de gerenciamento de
banco de dados (DBMS) chamado MSQL. O produto que eles criaram é rápido,
confiável e extremamente flexível. É utilizado em muitos lugares por todo o mundo.
Universidades, provedores de internet, e organizações sem fins lucrativos são os
principais usuários do MySQL, principalmente por causa do seu preço. Ultimamente,
entretanto, ele começou a permear o mundo dos negócios como um sistema de banco de
dados confiável e rápido.
A razão para o crescimento de popularidade do MySQL é o advento do
OpenSource Movement o incrível crescimento do Linux na indústria da computação. O
OpenSource Movement, é o resultado de vários fornecedores de software de
computador que oferecem não apenas um produto mas também o código-fonte. Isso
permite aos consumidores ver como seu programa opera e modificá-lo onde eles
precisam de ajuste. Isso, e a popularidade de Linux, resultaram no crescimento do uso
de produtos de código-fonte aberto no mundo dos negócios. Por causa da popularidade
do Linux, os usuários estão procurando produtos que executem nessa plataforma. O
MySQL é um deles.
O MySQL é freqüentemente confundido com o SQL, Structured Query Language,
desenvolvido pela IBM. Ele é uma forma dessa linguagem mas um sistema de banco de
28
dados que utiliza SQL para manipular, criar e mostrar os dados. O MySQL é um
programa que gerencia banco de dados, da mesma forma que o Microsoft Excel
gerencia planilhas. O SQL é uma linguagem de programação que é utilizada pelo
MySQL para realizar tarefas dentro de um banco de dados, assim como o Excel utiliza o
VBA (Visual Basic Applications) para tratar tarefas com planilhas e pastas de trabalho.
Outros programas que gerenciam bancos de dados incluem o Microsoft SQL Server, o
Sybase Adaptive Server e o DB2.
Agora, sabendo de onde o MySQL veio, vejamos o que ele é. Tomando o termo
banco de dados. O que é um banco de dados? Um banco de dados é uma série de
arquivos estruturados em um computador que são organizados de uma maneira
altamente eficiente. Esses arquivos podem armazenar enormes quantidades de
informações que podem ser manipuladas e recuperadas quando necessárias. Um banco
de dados é organizado de cima para baixo. Você inicia com um banco de dados que
contém um número de tabelas. Cada tabela é composta de uma série de colunas. Os
dados são armazenados em linhas e o lugar onde cada linha intersecciona uma coluna é
conhecido como campo. Por exemplo, em uma livraria online favorita há um banco de
dados. Esse banco de dados é composto por muitas tabelas. Cada tabela contém dados
específicos comuns. Certamente seria mostrada uma tabela Autores ou uma tabela
Livros. Essas tabelas são compostas de colunas identificadas com nomes que dizem
quais são os dados contidos nelas. Quando um registro é inserido em uma tabela, uma
linha de dados é criada. Onde uma linha e uma coluna interseccionam, um campo é
criado. É assim que os bancos de dados são divididos.
O MySQL é mais do que apenas um bando de dados. É um sistema que gerencia
banco de dados. Ele controla como pode utilizá-los e como são manipulados. Registra
ações em log e executa continuamente em segundo plano. Isso é diferente daquilo com
que você pode estar acostumado. A maioria das pessoas pensa no Microsoft Access ou
no Lótus Approach quando pensa em banco de dados. Esses são banco de dados, mas
não são sistemas de gerenciamento. Um DBMS pode conter muitos bancos de dados. Os
usuários se conectam ao servidor de banco de dados e emitem solicitações. O servidor
de banco de dados consulta seus banco de dados e retorna as solicitações para o emissor.
Os bancos de dados, como Approach e Access, são um passo abaixo desse tipo de
sistema. Eles compartilham seus arquivos com múltiplos usuários, mas não há nenhuma
interface controlando as conexões ou respondendo às solicitações.
Há muitas utilizações para um MySQL DBMS. As utilizações podem variar de
sistemas de help desktop a aplicativos para sites da Web. A coisa importante a lembrar é
que o MySQL é suficientemente grande e suficientemente rápido para funcionar em
quase qualquer situação. O lugar onde ele se encontra mais à vontade é a corporação.
2.4.3 Recursos do MySQL
O MySQL é um sistema de gerenciamento de banco de dados relacional completo
com todos os recursos. É muito estável e tem provado isso ao longo do tempo.
O MySQL é um servidor multiencadeado. Multiencadeado, ou multibread, significa
que toda vez que alguém estabelece uma conexão com o servidor, o programa de
servidor cria um thread (encadeamento), ou processo, para tratar as solicitações desse
29
cliente. Isso torna um servidor extremamente rápido. Com efeito, cada cliente que se
conecta a um servidor do MySQL obtém seu próprio thread.
O MySQL também é completamente compatível com ANSI SQL92. Ele obedece a
todos os padrões estabelecidos pelo American National Standards Institute. Os
desenvolvedores na TcX levam esses padrões a sério e têm criteriosamente obedecido a
eles.(ANSI SQL92 é um conjunto de padrões da Structured Query Language que foi
estabelecido em 1992 pelo American Standards Institute)
Outro recurso valioso do Mysql é seu sistema de ajuda online. Todos os comandos
do Mysql são dados em um prompt de comando. Para ver quais argumentos os
comandos aceitam ou o que o utilitário ou o comando faz, tudo que você tem de fazer é
digitar o comando e incluir a opção –help ou -?. Isso exibirá uma grande quantidade de
informações sobre o comando.
Ainda outro recurso do Mysql é sua portabilidade – ele foi portado para quase todas
as plataformas. Isto significa que você não tem de mudar sua plataforma principal para
tirar proveito do Mysql.
O Mysql também tem muitas diferentes interfaces de programas aplicativos
(Applications Programming Interface – API). Estas incluem API’s para Perl, TCL.
Python, C/C++, Java (JDBC) e ODBC. Então, independentemente da especialidade de
sua corporação, o Mysql tem uma maneira para você acessá-lo.
O Mysql é também muito barato. Para uma versão não-licenciada, completa do
Mysql, o custo não é nada. Licenciar sua cópia atualmente lhe custará U$200. Isso é um
negócio incrível, considerando o que você está obtendo com seu dinheiro. Os sistemas
de banco de dados que fornecem metade dos recursos que o Mysql tem podem custar
dezenas de milhares de dólares. O Mysql pode fazer o que eles fazem melhor e por
menos.
2.4.4 Características do Mysql
Segundo [3], serão apresentadas algumas características do Mysql. Ele oferece o
Mysql 5.1 (versão lançada em 2009) em duas variantes: o código aberto Mysql
Community Server e comercial Enterprise Server. Eles têm uma base de código comum
e incluem as seguintes características:
• A broad subset of ANSI SQL 99 , as well as extensions Um subconjunto amplo
de ANSI SQL 99 , bem como extensões
• Cross-platform support suporte multi-plataforma;
• Stored procedures Os procedimentos armazenados;
• Triggers Triggers;
• Cursors Cursors;
• Updatable Views Atualizáveis Views;
• True Varchar support True Varchar apoio;
• INFORMATION_SCHEMA INFORMATION_SCHEMA;
• Strict mode modo Strict;
30
• X/Open XA distributed transaction processing (DTP) support; two phase
commit as part of this, using Oracle's InnoDB engine X / Open XA distribuído
de processamento de transações (DTP) de apoio; commit em duas fases , como
parte deste, utilizando Oracle InnoDB motor;
• Independent storage engines ( MyISAM for read speed, InnoDB for transactions
and referential integrity , MySQL Archive for storing historical data in little
space) Independente mecanismos de armazenamento (MyISAM para a
velocidade de leitura, InnoDB para transações e integridade referencial , MySQL
Arquivo para armazenar dados históricos em pouco espaço);
• Transactions with the InnoDB, BDB and Cluster storage engines; savepoints
with InnoDB Transações com o InnoDB, BDB e os motores de armazenamento
em cluster; savepoints com InnoDB
• SSL support SSL apoio;
• Query caching Query cache;
• Sub- SELECTs (ie nested SELECTs) Sub- SELECTs (ou seja, SELECTs
aninhados);
• Replication support (ie Master-Master Replication & Master-Slave Replication)
with one master per slave, many slaves per master, no automatic support for
multiple masters per slave. Replicação de apoio (ou seja, Master-Master
Replication e replicação Master-Slave), com um mestre por escravos, muitos
escravos por mestre, sem apoio automático para vários mestres por escravo;
• Full-text indexing and searching using MyISAM engine Texto completo de
indexação e busca utilizando o motor MyISAM;
• Embedded database library biblioteca de banco de dados integrado;
• Partial Unicode support (UTF-8 and UCS-2 encoded strings are limited to the
BMP ) Parcial Unicode apoio (UTF-8 e UCS-2 strings codificadas são limitadas
ao BMP );
• Partial ACID compliance (full compliance only when using the non-default
storage engines InnoDB, BDB and Cluster) Parcial ACID compliance
(cumprimento integral somente quando estiver usando o mecanismo de
armazenamento não-padrão InnoDB, BDB e Cluster);
• Shared-nothing clustering through MySQL Cluster Nada compartilhada através
de clustering MySQL Cluster;
• Hot backup (via mysqlhotcopy ) under certain conditions [ 21 ]
Hot backup (via
mysqlhotcopy ) sob determinadas condições;
• Portabilidade (suporta praticamente qualquer plataforma atual);
• Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface
para diversas linguagens de programação, como Delphi, Java, C/C++, C#,
Visual Basic, Python, Perl, PHP, ASP e Ruby);
• Excelente desempenho e estabilidade;
• Pouco exigente quanto a recursos de hardware;
31
• Facilidade de uso;
• É um Software Livre com base na GPL;
• Contempla a utilização de vários Storage Engines como MyISAM, InnoDB,
Falcon, BDB, Archive, Federated, CSV, Solid;
• Suporta controle transacional;
• Suporta Triggers;
• Suporta Cursors (Non-Scrollable e Non-Updatable);
• Suporta Stored Procedures e Functions;
• Replicação facilmente configurável;
• Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL
Inc.
32
2.5 O que é o LDAP?
Segundo [5], Lightweight Directory Access Protocol, ou LDAP, é um protocolo
para atualizar e pesquisar diretórios rodando sobre TCP/IP. Um diretório LDAP
geralmente segue o modelo X.500, que é uma árvore de nós, cada um consistindo de um
conjunto de atributos com seus respectivos valores. O LDAP foi criado como uma
alternativa ao muito mais incômodo Directory Access Protocol (DAP).
Um diretório LDAP tende a refletir vários limites políticos, geográficos e/ou
organizacionais, dependendo do modelo adotado. A utilização do LDAP hoje em dia
tende a se basear nos nomes já existentes do sistema Domain Name System (DNS), na
estruturação dos níveis mais básicos de hierarquia. Mais profundamente, podem
aparecer estruturas representando pessoas, unidades organizacionais, impressoras,
documentos, grupos de pessoas ou qualquer outra coisa que represente um nó.
A versão atual é LDAPv3, especificado em uma série de RFC como mostra o RFC
4510.
O autor deste protocolo foi Tim Howes da Universidade de Michigan, Steve Kille
da ISODE (ISO Development Environment) e Wengyik Yeong da Performance
Systems International.
LDAP influenciou protocolos de Internet subseqüentes, incluindo versões
posteriores do X.500, Directory Services Markup Language(DSML), Service
Provisioning Markup Language (SPML) e o Service Location Protocol.
Um cliente começa uma sessão de LDAP ligando-se a um servidor LDAP,
normalmente pela porta padrão: 389, TCP. Este envia requisições para o servidor, o qual
devolve respostas. As operações básicas são:
• Bind – autentica e especifica a versão do protocolo LDAP;
• Search – procura por e / ou recupera entradas dos diretórios;
• Compare – teste se uma entrada tem determinado valor como atributo;
• ADD – adiciona uma nova entrada;
• Delete – apaga uma entrada;
• Modify – modifica uma entrada;
• Modify DN – move ou renomeia uma entrada;
• Start TLS – protege a conexão com a Transport Layer Security (TLS);
• Abandon – aborta uma requisição prévia;
• Extended Operation – operação genérica para definir outras operações;
• Unbind – fecha a conexão, não o inverso de Bind.
Em contrapartida o servidor pode mandar "Unsolicited Notifications” que são
respostas a nenhuma requisição, ex. antes deste terminar uma conexão. Com algumas
33
exceções o cliente não precisa esperar uma resposta antes de enviar a próxima
requisição, e o servidor pode enviar a resposta em qualquer ordem.
LDAP é definido nos termos da ASN. 1, e as mensagens de protocolos são
codificadas no formato binário BER.
O LDAP é uma definição de protocolo para acesso a bancos de dados especializados
chamados diretórios. É similar ao SQL no sentido que é uma linguagem para interagir
com bancos de dados sem especificar um banco de dados particular. De fato, o banco de
dados de suporte ao LDAP é quase sempre um sistema RDBMS geral, como o LDBM
ou o Oracle.
Nas diversas tecnologias que empresas de médio e grande porte utilizam hoje em
dia, uma área para autenticação é exigida por praticamente todos os sistemas, o que
pode muitas vezes ocasionar uma variada quantidade de cadastro de utilizadores
replicados entre os sistemas. Como exemplo daquele utilizador que tem muitos "logins"
e "senhas" para acesso aos sistemas da empresa e toda semana precisa lembrar ou alterar
alguma informação de seu cadastro. Ex: login e senha para acesso a máquina, a rede, ao
e-mail, ao sistema de gestão, sistema de documentos, etc. Desta forma o usuário fica
confuso e a equipe de TI simplesmente perde tempo com o serviço repetitivo e de
suporte. Um servidor de diretórios como o Open LDAP ou MS Active Directory recebe
esta autenticação dos muitos sistemas; o protocolo LDAP serve justamente para outras
aplicações quaisquer da empresa se conectar e consultarem um servidor de diretórios.
2.5.1 Definição de diretórios
Segundo [6], um diretório, em uma definição bem simplória, é um banco de dados
desenvolvido para atender principalmente a grandes quantidades de consultas e não a
grandes volumes de atualizações (inserções ou remoções).
A forma em que os diretórios armazenam suas informações é hierárquica e não
relacional, ou seja, em sistemas de diretórios não temos tabelas de dados como temos
em bancos relacionais (como Mysql, Oracle, SQL Server...). No lugar de tabelas, os
dados são organizados em uma DIT (Directory Information Tree - Árvore de
informação do diretório), que é uma árvore onde cada vértice é um registro (onde um
registro é um conjunto de informações sobre determinado objeto que queremos
guardar).
2.5.2 Definição de DIT e o protocolo LDAP
Segundo [7], uma árvore é formada por vértices (no caso da DIT cada vértice é um
registro) e por arestas, que são "linhas" que relacionam dois vértices. Veja a seguinte
34
DIT:
Figura 7 – Árvore – Fonte: http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=2
Nesse exemplo, cada elipse é um vértice da árvore, ou seja, cada elipse representa
um registro da árvore, que é onde as informações de certo objeto são guardadas. No
exemplo, temos o registro "POP-CE", que pode guardar várias informações, como onde
se localiza o Pop-ce, quais membros, quais projetos em andamento, etc (mais a frente
explicará como as informações são armazenadas em cada registro).
Cada linha que relaciona (liga) dois registros é chamada de aresta. Dessa forma,
temos uma aresta entre os registros "RNP" e "POP-CE", outra entre "POP-CE" e
"VOIP", etc. Nesse caso, essas arestas são usadas para podermos perceber o caráter
hierárquico dessa árvore. Veja que "POP-CE", "POP-RJ", "POP-PE" estão todos abaixo
de "RNP", assim como "VOIP" e "GERENCIA" estão abaixo de "POP-CE".
Tente ver a DIT como se fosse um sistema de pastas (isso é apenas uma analogia),
no qual a pasta principal é a pasta "RNP" e dentro dela estão as pastas "POP-CE",
"POP-RJ" e "POP-PE", dentro da pasta POP-CE estão as pastas "VOIP" e
"GERENCIA", etc.
Assim, já podemos ter uma idéia do que é uma árvore. A DIT é uma árvore
enraizada, pois sempre vamos ter um único registro na parte mais alta da árvore, registro
esse chamado de raiz (no exemplo, a raiz é o registro "RNP").
O LDAP é basicamente um sistema de diretórios que engloba o diretório em si (a
DIT) e um protocolo também denominado LDAP (LightWeight Directory Access
Protocol - Protocolo leve de acesso a diretórios), que é o protocolo que permite o acesso
à DIT.
35
O nome do sistema de diretórios ser LDAP se deve ao fato do protocolo usado para
acessar o sistema se chamar LDAP. O sistema LDAP é derivado de um sistema de
diretórios chamado X.500. O X.500 usava como protocolo para acessar sua DIT o
protocolo DAP (Directory Access Protocol). Mas quais as diferenças entre o X.500 e o
LDAP? O LDAP, como o próprio nome diz, é mais leve, retirou alguns problemas que
havia no X.500 (como redundância de dados), mas as principais diferenças estão entre
os protocolos de acesso LDAP e DAP.
O protocolo DAP era implementado sobre o padrão OSI de sete camadas, o que o
deixava um tanto quanto incompatível e pesado. Já o LDAP é implementado sobre o
sistema TCP/IP, que atualmente é mundialmente difundido, o que permite uma boa
portabilidade entre os sistemas que desejam utilizar LDAP, além de possuir um menor
overhead que o DAP nos pacotes enviados.
36
3 PROJETO
A implementação do nosso projeto compõem-se por fase de instalação e
configuração e fase de teste.
A fase de instalação e configuração é onde iremos montar e programar toda a
estrutura do servidor, esta ocorre em três etapas:
• Instalar o sistema Slackware Linux;
• Instalar e configurar devidamente os pacotes do Mysql, PHP, LDAP e
Apache;
• Instalar o Ocomon, e configurá-lo com as devidas necessidades.
Após a instalação estar completa, será feitos os testes, a fim de confirmar um projeto
bem estruturado. Estes são compostos por 3 etapas:
• O usuário entrar no site e criar seu login;
• Após logar-se, o usuário abre o chamado;
• Com o login de administrador, deve-se com clareza, visualizar, atender e
concluir o chamado;
• E finalizando a fase de testes, o usuário após ter seu problema solucionado,
pode ver o seu histórico de chamados, tanto em atendimento quanto os já
encerrados.
O êxito na instalação e configuração do projeto e respectivos testes realizados com
sucesso compõem o desafio proposto durante este estudo.
37
4 IMPLEMENTAÇÃO
A seguir iremos descrever detalhadamente como ocorreu todo o processo de
aplicação prática, tais como instalação das dependências, PHP, Apache e MySQL; o
software em questão, Ocomon; a ferramenta utilizada para registrar os usuários, o
LDAP; a empresa fictícia que demonstraremos os chamados sendo trabalhados em
tempo real, Monitores SA; também falaremos das dificuldades em geral encontradas ao
longo da implementação.
4.1 MySQL
O banco de dados do nosso projeto foi instalado diretamente do CD de instalação do
sistema, juntamente com o mesmo.
Iremos descrever abaixo alguns dos passos e comandos seguidos durante a
instalação do MySQL:
Apesar desse serviço ter sido instalado junto com o sistema, foi necessário instalá-lo
e adaptá-lo ao Ocomon. Abaixo estão alguns comandos utilizados de cópia de arquivo
de configuração, permissões e inicialização do serviço:
# cd /usr/share/mysql/
# cp my-small.cnf /etc/my.cnf
# mysql_install_db
# cp mysql.server /etc/rc.d/rc.mysqld
# chmod a+x /etc/rc.d/rc.mysqld
# chown mysql:mysql /var/lib/mysql/ -R
# /etc/rc.d/rc.mysqld start
# mysql_secure_installation
38
Este último comando resulta na seguinte tela:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR
ALLMySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH
STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current password for the root
user. If you’ve just installed MySQL, and you haven’t set the root password yet, the
password will be blank, so you should just press enter here.Enter current password for
root (enter for none):como nao colocamos senha apenas dê um enter
OK, successfully used password, moving on…Setting the root password ensures that
nobody can log into the MySQL root user without the proper authorization.
Set root password? [Y/n] Y
New password: (Digite aqui aquela que será a sua senha)
Re-enter new password: (Redigite a senha)
Password updated successfully!Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
… Success!
Em negrito, está representado as respostas a serem colocadas.
No arquivo /etc/my.cnf adicione a última linha “log” abaixo de "[mysqld]”, ficando
assim:
39
# The MySQL server
[mysqld]
port = 3306
socket = /var/run/mysql/mysql.sock
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
log = /var/log/mysql/mysqld.log
Agora vamos criar o diretório dos logs e dar permissão, e posteriormente, reiniciar o
serviço:
# mkdir /var/log/mysql
# chown mysql:mysql /var/log/mysql
# killall mysqld
# /etc/rc.d/rc.mysqld start
O comando a seguir deve exibir uma mensagem:
# cat /var/log/mysql/mysqld.log
Se a mensagem a seguir for exibida, tudo ocorreu normal:
/usr/libexec/mysqld, Version: 5.0.37-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /var/run/mysql/mysql.sock
Time Id Command Argument
40
4.2 Apache
O serviço utilizado como servidor web foi o Apache.
Primeiramente foi preciso baixá-lo, depois descompactá-lo, e entrar na pasta
descompactada. Dentro dela acionar os comandos para instalar, copiar arquivos de
configuração, compilar e reiniciar o serviço. Veja os passos a seguir:
# wget -c http://ftp.unicamp.br/pub/apache/httpd/httpd-2.2.8.tar.bz2
# tar jxvf httpd-2.2.8.tar.bz2
# cd httpd-2.2.8
#./configure –enable-so –prefix=/etc/apache –enable-ssl –with-
ssl=/usr/include/openssl
Explicação dos parâmetros:
enable-so = Carrega os módulos na inicialização ou na reinialização do Apache;
enable-ssl = Ativa suporte a SSL;
Abaixo, a compilação e inicialização do Apache:
# make
# make install
# cp /etc/apache/bin/apachectl /usr/bin
# apachectl start
4.3 PHP
Iniciamos baixando o PHP:
# wget –c http://br2.php.net/distributions/php-5.2.4.tar.gz
Após isto, compilá-lo e instalá-lo:
41
# tar jxvf php-5.2.4.tar.bz2
# cd php-5.2.4
# ./configure –with-apxs2=/etc/apache/bin/apxs –prefix=/etc/php5
# ./configure –with-mysql –with-pear –with-gettext –with-iconv –with-gd
# ./configure –with-openssl –enable-ftp –with-mhash
# make
# make install
É copiado um arquivo de configuração e editar esta cópia. Caso alguma alteração
incorreta seja feita, delete o arquivo /etc/httpd/php.ini e copie-o novamente:
# cp /etc/httpd/php.ini-dist /etc/httpd/php.ini
O arquivo /etc/httpd/httpd.conf deve possuir as seguintes linhas ao final do arquivo:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
DirectoryIndex index.php index.html index.htm
Caso o Apache não inicialize, adicione estas linhas em todos os “httpd.conf” do
sistema.
No mesmo, descomente a seguinte linha:
Include /etc/httpd/mod_php.conf
Comente a seguinte linha:
Deny from all
Compare e iguale as linhas abaixo com um trecho do seu /etc/httpd/httpd.conf:
42
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested
#
<ifModule dir_module>
DirectoryIndex index.php index.html index.htm
</ifModule>
Agora criamos um arquivo com o nome index.php (em /var/www/htdocs/) contendo
o seguinte conteúdo:
<?php
echo "Ola Mundo";
phpinfo();
?>
Reiniciamos o Apache:
# apachectl restart
Agora podemos acessar nosso browser e testar o Apache e o PHP:
http://127.0.0.1/index.php
A página deve exibir a frase “Ola Mundo” e logo abaixo, informações do PHP, tais
como serviços, e entre eles, o MySQL deve estar “enabled”.
43
4.4 Ocomon
Baixar o Ocomon:
# wget –c http://sourceforge.net/projects/ocomonphp/files/ocomon_2.0-
RC6.zip/download
Descompactá-lo em /var/www/htdocs:
# unzip ocomon_2.0-RC6-patch-01.zip -d /var/www/htdocs
O único diretório que será preciso alterar as permissões será
/var/www/htdocs/ocomon/includes/logs deve ter permissão de escrita para todos os
usuários
Criando o banco de dados do Ocomon:
# mysql -u root –p <
/var/www/htdocs/ocomon/install/2.0RC6/DB_OCOMON_2.0RC6_FULL.SQL
E fornecer a senha, quando solicitado.
Com isso é criado: um usuário "ocomon" de senha "senha_ocomon_mysql", o nome
do banco de dados é "ocomon_rc6". Alteramos o usuário para "root" e a senha para
"senha.1".Com isso o Ocomon não levantou, mas removemos a senha, reiniciamos
todos os serviços, recolocamos a senha, restartamos todos os serviços novamente e
assim o Ocomon foi exibido.
Os principais arquivos de configuração são:
/var/www/htdocs/ocomon/install/2.0RC6/DB_OCOMON_2.0RC6_FULL.SQL
/var/www/htdocs/ocomon/includes/config.inc.php: Responsável pela conexão com o
banco de dados.
44
4.5 LDAP
O LDAP é o protocolo utilizado para autenticar usuários, no caso foi usado o Active
Directory do Windows Server 2003, como base de usuários tanto do Ocomon como do
domínio.
Inicialmente o servidor LDAP seria o próprio Slackware, onde já está instalado o
Ocomon, mas devido aos problemas na instalação, não foi possível concluí-lo. Em uma
segunda idéia tornamos o Windows Server 2003 o servidor LDAP, autenticando os
usuários na Active Directory. Com esta solução obtivemos êxito na implementação do
projeto.
Esta autenticação no Active Directory e o software instalado no Slackware foi o
ponto mais complexo da configuração. Pois os tutoriais e artigos na internet eram
muitos escassos em relação à instalação e integração do LDAP com outros sistemas. Foi
preciso juntar os tutoriais mais confiáveis, lê-los, e reunir as informações mais
importantes em apenas um manual de instalação, pois em todos sempre faltava um
detalhe. E a partir desse tutorial criado baseando-se nos mais confiáveis, foi possível
concluir a integração. A seguir vamos mostrar os passos para fazer essa integração, de
acordo com o tutorial criado.
Após instalar todas as dependências do Ocomon, precisamos baixar o adLDAP:
# wget –c http://adldap.sourceforge.net/download.php
Depois de baixá-lo, precisamos descompactar o pacote:
# unzip adLDAP_3.2.zip
Após descompactar temos que colar o arquivo adLDAP.php para
/var/www/htdocs/ocomon/includes/classes:
# cp adLDAP/adLDAP.php /var/www/htdocs/ocomon/includes/classes
E editar as seguintes linhas:
protected $_account_suffix = “@seudominio.local”;
protected $_base_dn = “DC=seudominio,DC=local”;
protected $_domain_controllers = array (“192.168.100.100″);
45
Depois dessa cópia, é preciso alterar o arquivo login.php do diretório
/var/www/htdocs/ocomon/includes/common adicionando parâmetros para que o arquivo
busque informações do adLDAP.php e comentar algumas linhas, utilizamos um arquivo
já configurado, apenas baixamos e substituímos:
# wget -c http://dc252.4shared.com/download/ywvrFUQJ/login.php?
tsid=20101125-061149-952a0192
# mv login.php /var/www/htdocs/Ocomon/includes/common/login.php
Após essa alteração ainda precisamos modificar o arquivo config.inc.php do
diretório /var/www/htdocs/ocomon/includes, comentando a linha :
define ( “AUTH_TYPE” , “SYSTEM“ ); //DEFAULT
E descomentando a linha:
define ( “AUTH_TYPE” , “LDAP” ); //ALTERNATIVE
E logo abaixo a configuração vai variar de acordo com configuração da rede, no
nosso caso ficou da seguinte forma:
#define ( "AUTH_TYPE" , "SYSTEM"); //DEFAULT
define ( "AUTH_TYPE", "LDAP"); // ALTERNATIVE
/* Variáveis para conexão LDAP DEVEM SER CONFIGURADAS EM CASO
DE AUTH_TYPE==LDAP DE ACORDO COM AS CONFI$
define ( "LDAP_HOST", "192.168.0.2"); //IP do servidor LDAP
define ( "LDAP_DOMAIN", "ou=People,dc=monitores,dc=com,dc=br");
define ( "LDAP_DOMAIN_SEC",
"ou=People,dc=yourdomain1,dc=yourdomain2,dc=edu,dc=br"); //Segundo domÃ-
nio LDAP
define ( "LDAP_DN", "cn=admin,dc=monitores,dc=com,dc=br");
define ( "LDAP_PASSWORD", "senha.1");
4.6 Monitores SA
Como dito no capítulo três, a parte prática do nosso projeto se divide em instalação e
configuração, e fase de testes. A Monitores SA foi uma empresa fictícia criada por nós a
fim de auxiliar na fase de testes e exemplificação dos recursos do Ocomon.
Adaptamos o software à empresa para que ela organizasse seus pedidos de suporte,
deixando-os guardados em um banco de dados, para que fossem facilmente acessados
quando necessário.
Em anexo está disponível a planta da empresa para melhor compreendimento da
mesma.
46
4.7 Dificuldades encontradas
Antes de começar a instalar as dependências, era muito escasso os tutoriais
encontrados na internet que integrasse o MYSQL, Apache e o PHP no Slackware.
Então, como recomendado no tutorial destes serviços [20], utilizamos o MySQL direto
do dvd de instalação do sistema operacional.
Quanto ao Apache, sua pasta raiz no sistema Ubuntu (utilizado em aula) se
localizava em /var/www, mas no sistema Slackware o diretório não era o mesmo, tendo
de adentrar mais uma subpasta, tornando o caminho como /var/www/htdocs. Esse foi
um dos erros responsáveis por um dos insucessos na aplicação.
O arquivo que se encarregava de integrar o Ocomon com o banco de dados
(/var/www/htdocs/ocomon/includes/config.inc.php-dist) deveria ser renomeado para
config.inc.php, e este sim ser editado. Este novo arquivo que foi removido o “-dist”
seria o arquivo lido no momento em que o Ocomon precisasse se comunicar com o
banco de dados.
No primeiro dia em que não foi possível levantar o Ocomon, foi devido a uma linha
não comentada em um arquivo de configuração do Apache, refere-se a linha “deny from
all” (negar para todos) dentro de /etc/httpd/httpd.conf.
O diretório de inicialização de serviços do Slackware se localizava em /etc/rc.d/, e
geralmente o serviço tinha rc. antes de seu nome, por exemplo: /etc/rc.d/rc.httpd,
arquivo de inicialização do Apache. Em aula, utilizávamos /etc/init.d/, no Ubuntu.
E por último, após todas as configurações estarem corretas, ocorreu um mínimo
detalhe que nenhum tutorial indicava: após descompactar o Ocomon e movê-lo para a
raiz do servidor web, a pasta continha o nome ocomon2.0_RC6, logo para acessarmos
via browser teríamos de acessar o endereço HTTP://10.0.240.254/ocomon2.0_RC6,
diferente do que dizia o tutorial: HTTP://10.0.240.254/ocomon, então antes do teste
final (de preferência após descompactá-lo) renomear o diretório de ocomon2.0_RC6
para ocomon.
47
5 CONCLUSÃO
O projeto nos forneceu maior aprofundamento em Linux. Em aula trabalhávamos
com o Ubuntu, que é uma distribuição da linha Debian, considerada pelos adeptos à
teoria Linux uma linha destinada aos iniciantes. Mas após o trabalho de conclusão
baseado em Slackware, podemos ampliar nosso conhecimento, trabalhando com a linha
RedHat, contando com as dificuldades já ditas na implementação.
Trabalhar com ferramentas como banco de dados MySQL, servidor web Apache e a
linguagem de programação PHP, que fazia a interação entre o usuário e o banco de
dados, nos foi bastante satisfatório, pois apesar de o curso se destinar à redes de
computadores, e essas três dependências não se relacionarem tanto à essa área,
inicialmente iríamos criar um software de pedido de suporte, semelhante ao Ocomon.
Mas como não tínhamos conhecimento suficiente em PHP, banco de dados e outras
ferramentas, ultrapassaríamos o tempo estipulado para a realização do projeto. Então
optamos por apresentar uma ferramenta pronta, também com outras integradas a ela.
Após finalizarmos o projeto, percebemos que foram resolvidos problemas como,
organização de equipamentos de informática, listagem de programas e licenças
utilizados pela empresa, pedidos de suporte pelos usuários e um banco de soluções para
ocorrências passadas, ou seja, problemas comuns do dia a dia de muitas empresas,
através de um software livre que está em constante desenvolvimento, e que pode ser
modificado caso haja necessidade da parte de quem o usa. Com a utilização do
protocolo LDAP para autenticar os usuários facilita muito a integração para a um novo
sistema que a empresa venha a utilizar, pois a partir de uma base de usuários já criada o
trabalho é somente interagir a base com o novo sistema, não sendo necessário recriar
usuário por usuário, fazendo com que se economize tempo e manutenção.
48
REFERÊNCIAS
[1] Carlos E. Morimoto - Linux, Guia Prático. Editora: GDH Press e Sul Editores,
2009.
[2] Mark Maslakowski e Tony Butcher - Aprenda em 21 dias MySQL, 1ª edição,
Editora Campus Ltda.
[3] MySQL. Disponível em: http://translate.google.com.br/translate?hl=pt-
BR&sl=en&u=http://en.wikipedia.org/wiki/MySQL&ei=CkJpTOrQIYS8lQedsKChBQ
&sa=X&oi=translate&ct=result&resnum=9&ved=0CFMQ7gEwCA&prev=/search
%3Fq%3Dmysql%26hl%3Dpt-BR%26prmd%3Db - Acessado em: 16 ago 2010
[4] MySQL. Disponível em: http://pt.wikipedia.org/wiki/MySQL. Acessado em: 16
ago 2010.
[5] LDAP – Disponível em: http://pt.wikipedia.org/wiki/LDAP. Acessado em: 29
ago 2010.
[6] Entendendo o LDAP – Disponível em:
http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=1. Acessado em: 29
ago 2010.
[7] Entendendo o LDAP – Disponível em:
http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=2. Acessado em: 29
ago 2010.
[8] Arman Danesh – Dominando o Linux, a bíblia. 1ª edição, São Paulo,
MAKRON books do Brasil Editora Ltda, 1999.
[9] OcoMon - Sistema Help desk em PHP – Disponível em:
http://www.vivaolinux.com.br/dica/OcoMon-Sistema-HelpDesk-em-PHP. Acessado 15
ago 2010.
[10] Site oficial do Help desk Ocomon – Disponível em:
http://ocomonphp.sourceforge.net/. Acessado em: 15 ago 2010.
[11] Documentações oficiais do Ocomon – Disponível em:
http://ocomonphp.sourceforge.net/documentos/ocomon_FISL.pdf. Acessado em: 20 ago
2010.
[12] O que é uma SLA? – Disponível em:
http://cio.uol.com.br/gestao/2006/06/12/idgnoticia.2006-06-12.4971967799/. Acessado
em: 20 ago 2010.
49
[13] Slackware Linux, artigo no Wikipédia – Disponível em:
http://pt.wikipedia.org/wiki/Slackware. Acessado em: 23 ago 2010.
[14] Comparação entre o Debian e o Slackware – Disponível em:
http://under-linux.org/f151/qual-diferenca-entre-debian-e-slackware-117890/. Acessado
em: 23 ago 2010.
[15] Patrick Volkerding, artigo no Wikipédia – Disponível em:
http://pt.wikipedia.org/wiki/Patrick_Volkerding. Acessado em: 24 ago 2010.
[16] Slackware, uma completa visão global de todas as versões – Disponível em:
http://www.nielshorn.net/slackware/slack_versions.php. Acessado em: 24 ago 2010.
[17] O futuro do Slackware sem Patrick Volkerding – Disponível em:
http://www.guiadohardware.net/comunidade/futuro-slackware/955492/. Acessado em:
24 ago 2010.
[18] Help desk, artigo no Wikipédia – Disponível em:
http://pt.wikipedia.org/wiki/Help_desk. Acessado em: 29 ago 2010.
[19] Terceirização de Service Desk: Benefícios para o mercado PME – Disponível
em: http://convergenciadigital.uol.com.br/cgi/cgilua.exe/sys/start.htm?
from_info_index=21&infoid=20921&sid=49. Acessado em: 29 ago 2010.
[20] Apache + mysql + php no Slackware – Disponível em:
http://powerguide.wordpress.com/2007/09/03/apache-mysql-php-no-slackware/.
Acessado em 19 out 2010.
50
ANEXO A PLANTA DA EMPRESA
51
ANEXO B OCOMON LOGIN
52
ANEXO C: OCOMON CHAMADOS
53
ANEXO D: OCOMON ADMIN

Mais conteúdo relacionado

Semelhante a Servidor Ocomon SENAI

Postfix
PostfixPostfix
PostfixTiago
 
Monitoramento
MonitoramentoMonitoramento
MonitoramentoTiago
 
Instalacao xoops
Instalacao xoopsInstalacao xoops
Instalacao xoopsTiago
 
Open solaris
Open solarisOpen solaris
Open solarisTiago
 
Jspservlets
JspservletsJspservlets
JspservletsTiago
 
Open vpn
Open vpnOpen vpn
Open vpnTiago
 
Relatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoRelatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoMaurício Linhares
 
Iptables
IptablesIptables
IptablesTiago
 
Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)Vinicius Pires
 
Ar tool kit-cap6-2004
Ar tool kit-cap6-2004Ar tool kit-cap6-2004
Ar tool kit-cap6-2004caetano_selva
 
DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216Valter Inacio Jr.
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idososPaulo Rosa
 
Java applet
Java appletJava applet
Java appletTiago
 
Conexão remota e segurança de rede
Conexão remota e segurança de redeConexão remota e segurança de rede
Conexão remota e segurança de redeSoftD Abreu
 
Java basico
Java basicoJava basico
Java basicoTiago
 

Semelhante a Servidor Ocomon SENAI (20)

Postfix
PostfixPostfix
Postfix
 
Monitoramento
MonitoramentoMonitoramento
Monitoramento
 
Instalacao xoops
Instalacao xoopsInstalacao xoops
Instalacao xoops
 
Open solaris
Open solarisOpen solaris
Open solaris
 
Jspservlets
JspservletsJspservlets
Jspservlets
 
Open vpn
Open vpnOpen vpn
Open vpn
 
Relatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoRelatório de Estágio da Graduação
Relatório de Estágio da Graduação
 
Iptables
IptablesIptables
Iptables
 
Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)Identificando e corrigindo problemas de performance em banco de dados (2)
Identificando e corrigindo problemas de performance em banco de dados (2)
 
Ar tool kit-cap6-2004
Ar tool kit-cap6-2004Ar tool kit-cap6-2004
Ar tool kit-cap6-2004
 
DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216DissertacaoMScValterFinal20070216
DissertacaoMScValterFinal20070216
 
Projeto BECI
Projeto BECIProjeto BECI
Projeto BECI
 
Ltsp
LtspLtsp
Ltsp
 
Cópia de apostila nova curso idosos
Cópia de apostila nova curso idososCópia de apostila nova curso idosos
Cópia de apostila nova curso idosos
 
Java applet
Java appletJava applet
Java applet
 
Conexão remota e segurança de rede
Conexão remota e segurança de redeConexão remota e segurança de rede
Conexão remota e segurança de rede
 
Java basico
Java basicoJava basico
Java basico
 
Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
 
Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
 
Samba
SambaSamba
Samba
 

Servidor Ocomon SENAI

  • 1. ESCOLA DE EDUCAÇÃO PROFISSIONAL SENAI PORTO ALEGRE CURSO TÉCNICO EM REDES DE COMPUTADORES FELIPE DEMÉTRIUS MARTINS DA SILVA ANDRÉ ARAUJO DE MENEZES Servidor de Help Desk Ocomon SENAI Porto Alegre Monografia apresentada como requisito parcial para a obtenção da habilitação plena em Técnico em Redes de Computadores Prof. Maurício Rodrigues Cerqueira Orientador
  • 3. SERVIÇO NACIONAL DE APRENDIZAGEM INDUSTRIAL – SENAI-RS ESCOLA DE EDUCAÇÃO PROFISSIONAL PORTO ALEGRE Dados Internacionais da Catalogação na Publicação (CIP) Escola de Educação Profissional Porto Alegre Av. Assis Brasil, 8450 SILVA, Felipe Martins; MENEZES, André. Servidor de Help Desk Ocomon / Felipe Demétrius Martins da Silva; André Araujo de Menezes – Porto Alegre: SENAI/Escola de Educação Profissional de Porto Alegre/Curso Técnico em Redes de Computadores, 2010. 15 f.: il. Monografia (curso técnico) – Serviço Nacional de Aprendizagem Industrial. Escola de Educação Profissional Porto Alegre. Curso Técnico em Redes de Computadores. Porto Alegre, 2010. Orientador: Maurício Cerqueira
  • 5. SUMÁRIO LISTA DE FIGURAS .......................................................................................7 RESUMO ...........................................................................................................8 ABSTRACT .....................................................................................................10 1 INTRODUÇÃO..............................................................................................12 2 REFERENCIAL TEÓRICO......................................................................... 13 2.1 Help desk.................................................................................................................. 13 2.1.1 Primeiro nível de atendimento:...............................................................................14 2.1.2 Segundo nível de atendimento:...............................................................................14 2.1.3 Terceiro nível de atendimento:...............................................................................15 2.1.4 Terceirização:.........................................................................................................15 2.1.5 Viabilidade..............................................................................................................16 2.2 Ocomon.....................................................................................................................17 2.2.1 Histórico.................................................................................................................17 2.2.2 Serviços..................................................................................................................18 2.2.3 Licença e questões de instalação............................................................................19 2.2.4 Manual do usuário..................................................................................................20 2.2.5 Organizar e solucionar............................................................................................21 2.3 Slackware................................................................................................................. 22 2.3.1 História...................................................................................................................22 2.3.2 O nome “Slackware”..............................................................................................23 2.3.3 O símbolo...............................................................................................................23 2.3.4 Versões...................................................................................................................23 2.3.5 Usuários avançados................................................................................................24 2.3.6 O criador.................................................................................................................24 2.4 Banco de dados MySQL..........................................................................................26 2.4.1 O que é um banco de dados relacional?.................................................................26 2.4.2 Entendendo o MySQL............................................................................................27 2.4.3 Recursos do MySQL..............................................................................................28 2.4.4 Características do Mysql........................................................................................29 2.5 O que é o LDAP?..................................................................................................... 32 2.5.1 Definição de diretórios...........................................................................................33 2.5.2 Definição de DIT e o protocolo LDAP..................................................................33 3 PROJETO .....................................................................................................36 4 IMPLEMENTAÇÃO......................................................................................37
  • 6. 6 4.1 MySQL..................................................................................................................... 37 4.2 Apache...................................................................................................................... 40 4.3 PHP........................................................................................................................... 40 4.4 Ocomon.....................................................................................................................43 4.5 LDAP........................................................................................................................ 44 4.6 Monitores SA............................................................................................................45 4.7 Dificuldades encontradas........................................................................................46 5 CONCLUSÃO...............................................................................................47 REFERÊNCIAS...............................................................................................48 ANEXO A PLANTA DA EMPRESA ...........................................................50 ANEXO B OCOMON LOGIN ...................................................................... 51 ANEXO C: OCOMON CHAMADOS .......................................................... 52 ANEXO D: OCOMON ADMIN .................................................................... 53
  • 7. LISTA DE FIGURAS 18 19 Figura 5: Patrick Volkerding...........................................................................................21
  • 8. RESUMO Ao longo deste trabalho diversos fatores serão apresentados, todos estes componentes são relevantes na implementação do projeto. Inicialmente iremos abordar o help desk, um serviço de prestação de suporte prioritariamente voltado pra área de TI, quais seus benefícios, níveis de atendimento e comparação com service desk. Posteriormente, ao embasarmos o software que utilizaremos para organizar os pedidos de chamado, o Ocomon. A fama deste software, seus testes, todos os serviços que o Ocomon oferece o que é o Invmon (inventário que trabalha em conjunto com o Ocomon), quais os passos para o usuário operá-lo, entre outros. Citaremos o sistema operacional o qual escolhemos como servidor, o Slackware Linux, seu criador, o símbolo e suas versões. O Ocomon, assim como muitos softwares possui um banco de dados, este projeto será realizado utilizando o Mysql. Assim explicarmos seus recursos e algumas características. Para ter acesso à abertura de chamados, os usuários necessitam de login e senha, que serão autenticados através do protocolo LDAP. Posteriormente é apresentado todos os dados resultantes da implementação, tais como objetivos iniciais, ferramentas para o levantamento de todo o sistema, os ocorridos ao longo do projeto (dificuldades e sucessos) e a que conclusão chegamos.
  • 9. 9 Palavras-Chave: slackware, Linux, help desk, service desk, ldap, ocomon, invmon.
  • 10. Help desk Server Ocomon ABSTRACT Throughout this paper various factors are presented, all these components are relevant to project implementation. Initially, we discuss the help desk, a service aimed primarily to provide support to the IT field, what their benefits, service levels and comparison with service desk. Later, at the base of the software we use to organize the applications called, OCOMON. The fame of this software, its testing, all services that OCOMON offers what is Invmon (inventory that works in conjunction with the OCOMON), which steps the user to operate it, among others. The operating system which we choose as a server, Slackware Linux. The creator, the symbol of Slackware, their versions. The OCOMON, like many software has a database, this project will be done using Mysql. Thus explaining its features and some characteristics. To access the call opening, users need a login and password, which will be authenticated through the LDAP protocol. It is then submitted all data resulting from the implementation, such as initial goals, tools for removing the entire system, occurring throughout the project (problems and successes) and what conclusion we arrived.
  • 11. 11 Keywords: slackware, Linux, help desk, service desk, ldap, ocomon, invmon.
  • 12. 1 INTRODUÇÃO Este relatório irá traçar dois enredos um tanto quanto distintos: o que está disposto primeiramente neste trabalho, será o embasamento teórico, e o segundo ficará a cargo de tratar da parte prática do projeto. A teoria irá envolver assuntos como definições do núcleo deste projeto, o servidor de help desk, suas funções, benefícios, comparação com o Service desk, terceirização e demais assuntos. Juntamente com a primeira parte, trataremos do Ocomon, o software chave da implementação, qual seu objetivo, por que é bastante aplicada nas empresas, entre outros. O LDAP, outro assunto tratado, mas desta vez bastante superficial, será a ferramenta utilizada para autenticar os usuários do Ocomon. Para a implementação do projeto aplicaremos todas as ferramentas e softwares em cima do Slackware, um sistema operacional Linux bastante conhecido pela dificuldade de operação, e considerado por muitos um sistema para usuários avançados. As informações indispensáveis configuradas por padrão no Ocomon, e também dados adquiridos ao longo do trajeto, serão guardados no banco de dados MySQL. O Apache, a ferramenta de construção do Servidor Web, também será apresentada. Concluindo assim o primeiro enredo, que como dito anteriormente, apresenta a parte teórica de todo o projeto. De um ponto de vista geral, a maneira como foi tratado os assuntos anteriores, em alguns momentos integrando-os, pode ter ocorrido de forma complicada, mas garantimos-lhe que com o segundo enredo, a parte prática (e é claro, uma leitura bastante atenciosa em todo o relatório), corrigirá qualquer mal entendido e solucionaremos qualquer dúvida. Complementando então esta introdução, a segunda parte trará todos os ocorridos, dificuldades pesquisas, experiências profissionais e conclusão do nosso projeto.
  • 13. 2 REFERENCIAL TEÓRICO 2.1 Help desk [18] Help desk é a definição que se dá ao serviço prestado a um determinado cliente, a fim de fornecer-lhe um suporte para determinado problema. Problema este que na maioria das vezes está relacionado com TI, sendo também algo que impossibilite-o de prosseguir com o seu serviço. Também pode ser fornecido de várias maneiras, pessoalmente, telefone, e-mail, fórum, mensagens instantâneas (Messenger) e qualquer outro meio de comunicação. O Help desk pode ser oferecido tanto internamente, por funcionários da área de informática que trabalhem na mesma empresa de quem receberá o auxílio, quanto externamente, contratando uma empresa especializada em help desk, terceirizando o serviço, que na maioria das vezes o suporte não é prestado pessoalmente. O principal objetivo do Help desk é fazer com o colaborador que esteja com problema retorne ao seu serviço o mais rápido possível, e dependendo, fazer com que o problema encontrado não retorne a atrapalhar o andamento do trabalho dos funcionários. Figura 1- Help desk – Fonte: http://www.temple.edu/cs/techcenter/images/helpdesk.jpg
  • 14. 14 Atendentes de telemarketing e funcionários de lan houses são outros exemplos de profissões relacionadas ao help desk. Englobando todos estes, dá-se o nome de "Analista de Help desk". Outro objetivo de toda uma organização para prestar serviço de suporte, como dito anteriormente, é fazer com que a empresa não tenho prejuízos tanto financeiros quanto morais, causados por eventuais problemas de TI. Quando é tratado um acordo entre o cliente que receberá o serviço e o fornecedor do mesmo, é criada uma SLA (Acordos de nível de serviço). Uma SLA estabelece em quanto tempo, de que maneira, em quais condições imprevistas e outros fatores será solucionado o problema. Dentro de um serviço de help desk pode haver vários níveis de atendimento, como: 2.1.1 Primeiro nível de atendimento: É onde o usuário recorre quando encontra algum problema na sua trajetória. Este primeiro nível se divide em: 2.1.1.1 Solucionador: O atendente soluciona o problema através da própria ligação de pedido de suporte, ou por e-mail, independente da forma como foi pedido. Neste caso não há a necessidade de transferir o pedido a outro especializado que atue no departamento de TI, é a solução mais prática. Também pode ser resolvida com uso de ferramentas como um acesso remoto, no caso de um problema virtual. 2.1.1.2 Direcionador: É quando a solicitação chega primeiramente a um "atendente", este repassa a mesma solicitação junto de alguns detalhes já questionados ao usuário para o especializado que aí então tomará posse do problema. Direcionando assim os pedidos para a equipe mais apropriada. 2.1.2 Segundo nível de atendimento: É quando um primeiro técnico não soluciona um problema, então é acionado um segundo, a fim de resolvê-lo. Também se pode caracterizar o segundo nível de atendimento quando um técnico se desloca fisicamente até a sala onde se encontra o usuário com problema. Este caso é designado especificamente quando o problema ocorre com algum hardware ou o micro não inicializa, entre outros.
  • 15. 15 2.1.3 Terceiro nível de atendimento: Pode tanto ser uma subdivisão dentro do setor de suporte de TI, quanto fornecedores de hardware ou software (quando o problema é encontrado logo no início do uso do produto), consultores contratados, e assim por diante. 2.1.4 Terceirização: [19] Hoje existe uma diferença de tratamento entre grandes empresas e PME (pequenas e médias empresas) referente ao tratamento com o seu suporte técnico. Enquanto a maioria das empresas de grande porte trata seriamente os incômodos relacionados com TI, outras de menor comportamento podem acarretar muitos prejuízos com pequenos detalhes que venham a estorvar a vida profissional de seus trabalhadores, podendo deixá-los parados por horas e até dias. Muitas vezes o mercado PME contrata alguns técnicos para comporem essa área, e resolver seus eventuais problemas. Mas muitos destes contratados não têm noção de atendimento, como evitar que os mesmos problemas voltem a ocorrer, de um modo geral pode-se dizer que muitos deles não se encaixam no perfil de um analista de help desk. Neste caso, a empresa está contando e colocando toda a sua confiança em cima de um dois profissionais para a solução de problemas. Mas conforme o mercado de trabalho foi pensando em aprimorar os seus serviços cada vez mais, surgiu o Service desk, que são empresas terceirizadas, contratadas especialmente para tais deveres. Estas empresas treinam, lecionam teorias de service desk, e possuem profissionais teoricamente mais qualificados para a resolução de problemas. Quanto ao custo benefício, também há vantagem, comparando um profissional com uma empresa especializada. Outro benefício é o fato de as empresas de service desk fornecerem profissionais que são treinados para evitar repetidos erros, enquanto os técnicos contratados diretamente pela empresa fazem tal processo digamos que por improviso. Empresas de service desk possuem áreas de atendimento (citado em níveis no início deste capítulo) bastantes organizados, com ocorridos como: se um problema registrado é relacionado com segurança, este é designado a uma determinada área do service desk, já se o problema foi encontrado na rede ou internet ou área é acionada, e cada área possui seus níveis de atendimento dentro de cada área. Concluindo de maneira geral, com um service de service desk terceirizado a empresa pode se programar quanto a tempo e quanto a custos. Um exemplo disto é agendar um check-up geral na rede, procura intensa por ameaças, resolução de problemas que incomodaram por semanas, recebendo dicas de como aperfeiçoar sua rede com novos e modernos hardwares e softwares, tudo programado e pré-combinado em uma SLA. Isso mantém a produtividade e a competitividade da empresa.
  • 16. 16 De um modo geral, pode-se concluir que um contrato SLA dá uma tranquilidade para a empresa, tranquilidade essa tanto de garantia que o problema será exterminado, quanto de fortalecer a aliança entre a empresa que necessita do suporte (contratante) e a empresa de service desk (contratada), e também que uma empresa que se preocupa com o seu setor de resolução de problemas é uma empresa precavida, bastante desenvolvida, madura e com muitas expectativas para o futuro. 2.1.5 Viabilidade Tendo em vista que muitas empresas não possuem um serviço de pedido de suporte bem trabalhado, organizado e sempre pronto para ajudar os colaboradores, é indispensável que hoje em dia se tenha esta estrutura a serviço de imprevistos. Talvez algum dono de empresa pense que manter um setor, ou uma empresa como sócio para solucionar os problemas de TI seja muito custoso, tanto por verba quanto por ter um funcionário que poderia passar a maior parte do tempo desocupado. Essa hipótese não se concretiza na prática, pois incômodos aos funcionários, sempre ocorrem, por mais que a rede tenha uma construção bastante cuidadosa, que os computadores sejam de ótima qualidade, que as impressoras possuam cartuchos originais e bem instalados na rede, sempre haverá um mínimo problema que acarretará no pedido da presença de um especializado por parte dos colaboradores. E quanto à "desocupação" dos funcionários, isso se torna uma inverdade, pois os técnicos analistas de help desk, têm em seus deveres, procurar alguns ocorridos que possa tornar-se futuro incômodo maiores, evitando assim possíveis problemas que muitos contratados diretamente pela empresa para o setor de help desk não dariam conta.
  • 17. 17 2.2 Ocomon 2.2.1 Histórico [10] Em março de 2002, o programador Franque Custódio, desenvolveu uma ferramenta com a característica de possuir um cadastro de usuários, e facilitar o acompanhamento, o controle e a consulta de ocorrências de suporte. Deu a essa ferramenta o nome de Ocomon, e a primeira instituição a adotá-la foi o Centro Universitário La Salle (UNILASALLE). Dentro dessa universidade, o analista Flávio Ribeiro assumiu o Ocomon após ele ser testado nessa primeira instituição, sempre aperfeiçoando e aplicando diferentes características, sempre com o objetivo de melhorar o gerenciamento de suporte técnico, o Help desk ou Service desk. "Começamos a utilizar o sistema em março de 2002, desde então já ultrapassamos a marca de 25000 (vinte e cinco mil) chamados de todos os níveis de suporte, registrados e armazenados em uma base de conhecimento. No primeiro ano de utilização de indicadores de SLA (2004) percebeu-se uma melhora constante mês a mês tanto nos tempos de resposta quanto nos tempos de solução, e na comparação com o primeiro trimestre de 2005 tivemos um aumento de 19,9% no número de chamados dentro dos indicadores positivos de tempo de resposta e de 12,04% no número de chamados dentro dos indicadores positivos de tempo de solução", Flávio, em relação à experiência com o Ocomon. Figura 2 – Ocomon – Fonte: http://sourceforge.net/apps/mediawiki/ocomonphp/nfs/project/o/oc/ocomonphp/3/38/Ocomon-logo.png [11] Em 2003, surge o Invmon, que seria a primeira versão do módulo de inventário, onde seria armazenado todos os dados do Help desk, como relatórios gerenciais, histórico de mudanças de localidade de equipamentos e controle de licenças de software. [12] O serviço de gerenciamento de SLA's foi incorporado ao Ocomon no início de 2004, obtendo melhoria no acordo com os indicadores fixados para os serviços realizados. SLA's (Service Level Agreement - Acordo de Nível de Serviço) nada mais é do que o acordo, o contrato firmado entre o fornecedor de suporte de TI e o cliente que receberá o serviço. Caso algum SLA que esteja no contrato não seja cumprido, o cliente tem o direito de cobrar uma multa do fornecedor. O Invmon e o Ocomon foram integrados e começaram a trabalhar juntos apenas em 2005, obtendo também um novo layout e o nome único de Ocomon.
  • 18. 18 2.2.2 Serviços O Ocomon pode ser definido como um software monitor de ocorrências e inventário de equipamentos de informática que, ele é acessado por usuários para registrar chamados, que são as solicitações de suporte aos técnicos. [9] Os usuários acessam o servidor de Help desk, na página inicial é pedido usuário e senha, estes já criados. Após o login, é exibida uma tela com diversas opções como: abrir um chamado, principais problemas, estado atual do parque de equipamentos de rede, usuários mais ativos os que mais solicitam suporte, a distribuição física de cada patrimônio da área de TI, o tempo que cada chamado levou para ser resolvido, volume de chamados por determinados períodos, chamados que necessitaram ser reabertos em função do mesmo problema, entre outros. Alguns destes, como os equipamentos de rede, estão disponíveis apenas ao administrador. O Ocomon e o Invmon ainda que juntos desempenhem papéis teoricamente diferentes, enquanto o Ocomon trabalha com a parte mais prática, chamados abertos, ativos, tudo o que ocorre no momento, o Invmon é o encarregado de armazenar tudo o que ocorreu catalogar os fatos. Para melhor entender a função de cada módulo, abaixo é descrito em que momentos o Ocomon e o Invmon trabalham: Ocomon, gerenciador do módulo de ocorrências: * Abertura de chamados de suporte pelo usuário; * Vínculo do chamado aberto com o número patrimonial do equipamento em questão; * Pesquisa sobre os chamados passados, classificando-os por configuração, localização, motivo, entre outros; * Notificação automática para a área de suporte, através de e-mail; * Definir prioridade de suporte por setor da empresa. Invmon, gerenciador do módulo de inventário: * Controle de garantia dos equipamentos; * Cadastro de documentação de todos os equipamentos, manuais, licenças, garantia, mídias, entre outros; * Histórico de mudanças físicas de equipamentos; * Controle de licenças, tanto de sistemas operacionais quanto de softwares. O Ocomon possui as seguintes questões técnicas, serviços com o qual o Ocomon trabalha em cima:
  • 19. 19 * Um servidor Apache com PHP entre as versões 4.3 e 5; * Um banco de dados MySQL a partir da versão 4.1; * E a autenticação de usuários, que pode ser realizada tanto através do próprio Ocomon quanto pelo LDAP. 2.2.3 Licença e questões de instalação O Ocomon não possui direitos autorais, é um software copyleft, software livre, opensource, concebido sob o modelo GPL de licenciamento. A seguir estão descritos alguns pré-requisitos para a instalação do Ocomon, segundo o próprio Flávio Ribeiro: * O sistema operacional não é relevante; * O servidor web tem preferência pelo Apache; * Servidor Apache com PHP entre as versões 4.3 e 5; * Banco de dados; * Um navegador, recomendado o Mozilla Firefox; Nota: o servidor web e o navegador citado, não são os obrigatórios, mas tudo foi testado e projetado através deles, por isso são confiáveis. Nada impedindo de usar o Internet Explorer, por exemplo, mas nesse caso haverá perda da visualização correta do layout. O serviço que corresponde à notificação automática para a área de suporte através de e-mail, pode ser configurado de duas maneiras: * Utilizando a função SMTP especificada por você; Mas caso ela seja desabilitada... * Envio de e-mails pela função mail do PHP. Independente da maneira escolhida, o arquivo php.ini deve estar configurado adequadamente. É possível também fazer upload de imagens na abertura do chamado, como por exemplo, o usuário enviar um printscreen de um erro desconhecido, isso agilizaria o processo de resolução. Para isso, esta opção também deve estar ativada e configurada corretamente no arquivo php.ini. Ao compilar o PHP é necessário dar suporte à biblioteca GD. Esta função serve para a visualização dos gráficos. E um último requisito importante é o navegador suportar javascript e cookies.
  • 20. 20 2.2.4 Manual do usuário O Ocomon possui uma interface de interação com o usuário bastante simples e auto- explicativa. Abaixo estão descritos os passos para cadastro, login e abertura de um chamado: *A tela de início do Ocomon exibe um espaço reservado ao login, e outro logo abaixo que é destinado ao cadastro dos usuários não cadastrados. *Clicando em cadastrar, será aberta uma janela solicitando os dados principais para efetuá-lo. Login: o nome de usuários solicitado no momento de entrar no Ocomon. Nome completo: serve para sincronizar todos os dados com o nome completo do usuário, em função de uma futura pesquisa para solucionar problemas com o mesmo. E-mail: além de possuir o mesmo benefício que o anterior, a este será enviado um e- mail de confirmação do cadastro e outros para eventuais ocorridos. Senha: será solicitado no login juntamente com o nome de usuário. Repita a senha: repetir a senha para caso tenha fornecido uma senha não desejada. *Posteriormente clicar em cadastrar. Neste momento será enviado um e-mail de confirmação para o e-mail fornecido durante a fase de cadastro. *Clicar no link enviado pelo sistema e receber o aviso de cadastro bem sucedido. *Após voltar à tela de início do Ocomon, deve-se fornecer o nome de usuário e a senha para o login. *Quando logado, é exibido um painel à esquerda com as opções: início, abrir chamado, meus chamados, senha. Início: exibe exatamente a tela após o login. Abrir chamado: solicitar suporte, o objetivo de toda a programação. Meus chamados: Lista todos os chamados aberto pelo usuário, com informações como: dia, hora, problema encontrado, número do chamado, entre outros. Senha: caso o usuário deseje alterar a sua senha. Serão exibidos diversos campos, a seguir, a importância de cada um: *O campo problema, é para dar um embasamento, colocar de modo geral o problema encontrado; *Descrição do problema é descrito detalhadamente o que estorvou o funcionário durante o seu trabalho; *Unidade descreve em qual filial daquela empresa está sendo aberto o chamado, não é obrigatório; *Contato é o nome de quem irá atender o chamado, dependendo de quem estiver abrindo-o, pode definir o técnico a atendê-lo; *Local é o nome do setor onde será fornecido o suporte;
  • 21. 21 *Patrimônio do equipamento que foi encontrado o problema, como a impressora, o computador, o monitor, etc; *Ramal do usuário; *Operador é o nome de quem está abrindo o chamado; *Os demais campos estão pré-preenchidos. Após todos os campos estarem completos, o botão “OK” será realçado, possibilitando assim, a abertura do chamado. Ele aparecerá na página inicial do seu login com dados como: número do chamado, problema, ramal do contato, local e descrição do problema e status (que varia entre “aguardando atendimento”, “em atendimento” e “encerrado”). O status irá alterar para “em atendimento” quando o técnico responsável fazê-lo. Após o fechamento do chamado, ele será exibido na lista dos “Meus chamados”, exibindo tanto as informações cedidas no momento da abertura, quanto o que foi feito para sua resolução, esta por parte do técnico. 2.2.5 Organizar e solucionar Como dito de maneira subentendida anteriormente, o Ocomon organiza os chamados de suporte efetuados pelos colaboradores de uma corporação. Não é muito difícil encontrar alguma empresa com muitos funcionários, onde o pedido de solução de algum problema seja de um “grito” de um guichê para o outro. Se o problema deve ser resolvido com muita agilidade a cobrança é maior ainda. E isso demonstra desorganização da empresa, aí então entra o Ocomon, definindo prioridade de atendimento, chamados pendentes, chamados que tiveram que ser reabertos, entre outras definições que auxiliam o trabalho do técnico.
  • 22. 2.3 Slackware 2.3.1 História [13] O Slackware é a distribuição Linux mais antigo e em atividade no momento. As fontes referentes ao seu surgimento variam, alguns dizem que nasceu em 1992, já outros defendem a tese de que 1993 foi o ano do seu lançamento. Patrick Volkerding foi o progenitor do sistema Slackware Linux. Mais à frente é abordado de maneira mais específica sobre o criador. O Slackware é um sistema operacional que se não for instalado de livre arbítrio do usuário, não possui tela gráfica, ou seja, apenas em linhas de comando. Um exemplo de tela gráfica compatível do o Slackware é o Gnome. O Gnome não foge muito dos padrões de layout do Linux, e é bastante conhecida. Mas em 2005, Patrick Volkerding removeu-o de seu sistema, o que desagradou muita gente, pois era bastante popular. Mas Patrick não o fez sem motivo, ele alegava que tal interface gráfica levava muito tempo para empacotar os binários. Figura 3 – Slackware- Fonte: http://www.mononeurona.org/img/photos/slackware-0.2.png Mas descontente com a situação, foram criados projetos de Gnome, como: Gnome Slackbuild, Gnome Slacky e Dropline Gnome. Estes projetos foram desenvolvidos por comunidades. Logo nota-se que muitas variedades de Gnome é o que não falta ao Slackware, mas sempre tendo em mente que não é um sistema que nasceu eu foi projetado junto com o sistema operacional. GoblinX, Slax e Wolvix são sistemas Linux que surgiram a partir do Slackware, inclusive o Back Track, uma versão específica para servidores.
  • 23. 23 2.3.2 O nome “Slackware” O nome Slackware surge do princípio "slack" usado pela Igreja de Subgenius (Church of SubGenius), a qual, Patrick Volkerding é adepto. Esta igreja é uma pseudo-religião que satiriza religiões e crenças, envolvendo conspirações mundiais, profecias, extraterrestres, entre outros. O símbolo desta igreja é o Bob com Cachimbo, o que então serviu de inspiração para Patrick criar o símbolo do Slackware, esclarecido mais adiante. Mas o que é “Slack”? Slack é utilizado pela Igreja de SubGenius para definir a sua crença central, mas também vários outros significados, como felicidade, liberdade, compreensão, originalidade, pureza, etc. Ela afirma que todos nascemos com um slack original, e este nos é roubado pelas pessoas normais, os chamados "pinks".Então a mensagem que concluimos, após entender que Slackware é uma referência slack, é: "seja original, feliz e livre, não pense como os pinks, nem deixe eles roubarem seu slack". 2.3.3 O símbolo O Tux, um pinguim roliço e com ar de saciado, é o mascote de todo o sistema Unix, mas quando ele ostenta um cachimbo em sua boca, ele representa em especial o Slackware. Isto transmite antiguidade e experiência. Por ser o sistema Linux mais antigo e por exigir um considerável conhecimento dos usuários para ser operado. Figura 4 – Bom com cachimbo – Fonte: http://img.vivaolinux.com.br/imagens/artigos/comunidade/dobbs.jpg 2.3.4 Versões [16] A primeira versão do Slackware surgiu em 16 de julho de 1993 (algumas fontes contrariam, alegando que seu surgimento se deu em 1992), como de costume, era a versão 1.0.0. Depois disso o último algarismo acrescia em 1 a cada versão nova que era lançada, com exceção de algumas versões, como por exemplo: em 1994 a versão com maiores aprimoramentos era a 1.2.0.3, que após o update, tornou-se 2.0.0, em 1999 pulou de 4.0 diretamente para 7, e a mais atual de 2008 para 2009 a versão 12.2 após
  • 24. 24 aprimoramentos abrigou o 13.0. Estes "pulos" de versões servem para fazer os usuários crêem que o Slackware não era desatualizado em relação aos outros sistemas Linux.São cerca de 44 versões no total. Em 2007 foi lançada a versão 12.0 do Slackware, que precedia a versão 12.1 lançada no ano posterior. A diferença entre uma versão e outra, era que a mais atualizada possui disponível os pacotes para a interface gráfica KDE 4.1. Inegavelmente, esta última possui um visual mais atraente, mas mesmo assim, desagradaram muitos usuários acostumados com a versão 3.5 do KDE. Durante o desenvolvimento deste relatório, acerca de agosto de 2010, a última versão do Slackware disponível era 13.1, lançada no dia 24 de maio do mesmo ano. Uma das grandes reclamações dos usuários com o Slackware, é a falta de pacotes prontos, o que já vem mudando principalmente com a última versão 13.1. 2.3.5 Usuários avançados [14] O Slackware por muitos é tido como um sistema operacional apenas para usuários avançados, por exigir bastante aplicação do usuário para instalação e/ou configuração de qualquer recurso, ou seja, um sistema que ignora os noob(desprovidos de inteligência no ramo da informática). Outros preferem denominá-lo como uma distribuição para usuários que gostam de aprender e fazer esforço. 2.3.6 O criador [15] O principal mantenedor do sistema Linux Slackware, como citado anteriormente, é o americano Patrick Volkerding, nascido em 20 de outubro de 1966. O Slack é praticamente todo gerenciado, alterado e atualizado conforme pensa Patrick. Claro que ele sozinho não construiu tudo, podemos afirmar que ele conta com a ajuda de outras duas pessoas: David Cantrell e Chris Lumens. Existe em forma de anedota, a afirmação de que Patrick além de compilar kernel, também "compila" cerveja. Na verdade, o certo seria fabrica sua própria cerveja. Patrick é considerado também um Deadhead, apelido destinado aos fãs da banda Grateful Dead. Voltando à interação do Patrick com o Slackware, por muitos ele é tido como "The Old" (O velho), demonstrando respeito pelo homem que criou o sistema Linux que também denominam ser o melhor de todos. [17] Durante o ano de 2004, Patrick sofreu de uma doença chamada "endocardite infecciosa", que o deixou mal por um longo tempo, e consequentemente o Slackware. Durante esse tempo, o Slackware foi administrado pelos colaboradores citados anteriormente, juntamente com outros profissionais, inclusive o brasileiro Piter Punk. Muitos acreditavam que ele viria a falecer. Mas no dia 18 de dezembro ele recuperou-se
  • 25. 25 e voltou a programar seu sistema operacional, mesmo afirmando no dia 22 de janeiro do ano de 2005 que ainda não estava 100% recuperado. Um dos principais objetivos do Patrick com o Slackware, é manter os padrões do Unix, fazendo o usuário operá-lo "dentro" das configurações, entender realmente como acontece, não escondendo do usuário como o sistema realmente funciona. Figura 5 – Patrick Volkerdging – Fonte http://terramel.org/wp-content/uploads/2010/04/pvolkerding.jpg
  • 26. 26 2.4 Banco de dados MySQL Segundo Mark Maslakowski e Tony Butcher , desde antes do aparecimento da era do computador, as pessoas têm utilizado banco de dados. Antes dos computadores, um banco de dados poderia ter sido um simples fichário do tipo Rolodex contendo números de telefone de pessoas importantes que você conhecia ou era um armário do tipo arquivo contendo todos os registros pessoais da empresa. Hoje, os bancos de dados são baseados em computadores e são encontrados em praticamente toda parte. Dos bancos de dados de área de trabalho de sua coleção de registros a aqueles compatíveis com a Web mantidos por grandes corporações, os bancos de dados aparecem em todas as formas e tamanhos. Por causa desse fato, a indústria de banco de dados cresceu tão rápido e tanto quanto o resto da indústria da computação. Até recentemente, a maioria dos bancos de dados de alto poder custava muito caro. Eles podiam fornecer todas as ferramentas e funcionalidades para executar um negócio, mas em um preço muito alto. Então, a maioria das corporações utilizava um banco de dados que era mais barato e, no entanto, sacrificava a funcionalidade. Figura 6 – MySQL – Fonte: http://www.joaodosite.com/wp-content/uploads/2009/06/logo-mysql.jpg Adicionalmente, a Internet gerou uma necessidade para banco de dados que pode ser acessada via Web. Essa necessidade orientou os fabricantes de software a criar produtos que podem tirar proveito dessa tecnologia. Novamente, preço desempenha um papel grande. Esses produtos são geralmente muito caros e dependem muito de plataforma; portanto, nem todos os provedores de serviço da Internet (Internet Service Providers – ISP) ou pequenas empresas tiram proveito dessa tecnologia. Entra em cena a revolução Linux e do Opensource. Essa idéia paradigmática – ter um sistema operacional e o código-fonte disponível gratuitamente – alternou a maneira como a indústria fazia seus negócios. Agora que a revolução por fim adquiriu uma forma, as pessoas estão afluindo em massa para ver como podem utilizar essa solução. O MySQL faz parte dessa solução. O MySQL foi desenvolvido pela TcX em 1996. Eles criaram-no porque precisavam de um banco de dados relacional que pudesse tratar com grandes quantidades de dados em hardware relativamente barato. Nada que existia podia fornecer o que eles precisavam, então eles mesmos o criaram. 2.4.1 O que é um banco de dados relacional? Um banco de dados relacional, em uma simples definição, é um banco de dados que é constituído de tabelas e colunas que se relacionam. Essas relações são compostas em um valor-chave que é contido em uma coluna. Por exemplo, você pode ter uma tabela chamada "Produtos" que contém todos os produtos em estoque da empresa. É possível
  • 27. 27 também ter uma tabela chamada "Clientes" que contém todos os dados que pertencem aos clientes, como nome, endereço e o produto que ele consome. Essas duas tabelas podem ser relacionadas entre si. O modelo de banco de dados relacional foi desenvolvido por E.F. Codd no início da década de 1970. Ele propôs que um banco de dados deveria consistir em dados armazenados em colunas e tabelas que podem ser relacionadas entre si. Esse tipo de pensamento era muito diferente do sistema de arquivos hierárquico que era utilizado na época. Seu pensamento realmente revolucionou a maneira como são criados e utilizados os banco de dados. Um banco de dados relacional é muito intuitivo. Ele simula a maneira como as pessoas pensam. As pessoas tendem a agrupar objetos mais simples. É precisamente essa a natureza dos bancos de dados relacionais. Como eles simulam a maneira que você pensa, eles são fáceis de utilizar e aprender. A maioria dos bancos de dados modernos utiliza um modelo relacional para realizar suas tarefas. O MySQL não é diferente. Ele adapta-se verdadeiramente ao modelo relacional. Isso adiciona mais ainda à facilidade de uso do MySQL. 2.4.2 Entendendo o MySQL MySQL é um sistema de gerenciamento de banco de dados relacional multiencadeado, de código-fonte aberto e nível corporativo. O MySQL foi desenvolvido por uma empresa de consultoria na Suécia chamada TcX. Eles estavam precisando de um sistema de banco de dados que fosse extremamente rápido e flexível. Infelizmente, eles não encontravam nada no mercado que pudesse fazer o que eles queriam. Então, eles criaram o MySQL, que é vagamente baseado em outro sistema de gerenciamento de banco de dados (DBMS) chamado MSQL. O produto que eles criaram é rápido, confiável e extremamente flexível. É utilizado em muitos lugares por todo o mundo. Universidades, provedores de internet, e organizações sem fins lucrativos são os principais usuários do MySQL, principalmente por causa do seu preço. Ultimamente, entretanto, ele começou a permear o mundo dos negócios como um sistema de banco de dados confiável e rápido. A razão para o crescimento de popularidade do MySQL é o advento do OpenSource Movement o incrível crescimento do Linux na indústria da computação. O OpenSource Movement, é o resultado de vários fornecedores de software de computador que oferecem não apenas um produto mas também o código-fonte. Isso permite aos consumidores ver como seu programa opera e modificá-lo onde eles precisam de ajuste. Isso, e a popularidade de Linux, resultaram no crescimento do uso de produtos de código-fonte aberto no mundo dos negócios. Por causa da popularidade do Linux, os usuários estão procurando produtos que executem nessa plataforma. O MySQL é um deles. O MySQL é freqüentemente confundido com o SQL, Structured Query Language, desenvolvido pela IBM. Ele é uma forma dessa linguagem mas um sistema de banco de
  • 28. 28 dados que utiliza SQL para manipular, criar e mostrar os dados. O MySQL é um programa que gerencia banco de dados, da mesma forma que o Microsoft Excel gerencia planilhas. O SQL é uma linguagem de programação que é utilizada pelo MySQL para realizar tarefas dentro de um banco de dados, assim como o Excel utiliza o VBA (Visual Basic Applications) para tratar tarefas com planilhas e pastas de trabalho. Outros programas que gerenciam bancos de dados incluem o Microsoft SQL Server, o Sybase Adaptive Server e o DB2. Agora, sabendo de onde o MySQL veio, vejamos o que ele é. Tomando o termo banco de dados. O que é um banco de dados? Um banco de dados é uma série de arquivos estruturados em um computador que são organizados de uma maneira altamente eficiente. Esses arquivos podem armazenar enormes quantidades de informações que podem ser manipuladas e recuperadas quando necessárias. Um banco de dados é organizado de cima para baixo. Você inicia com um banco de dados que contém um número de tabelas. Cada tabela é composta de uma série de colunas. Os dados são armazenados em linhas e o lugar onde cada linha intersecciona uma coluna é conhecido como campo. Por exemplo, em uma livraria online favorita há um banco de dados. Esse banco de dados é composto por muitas tabelas. Cada tabela contém dados específicos comuns. Certamente seria mostrada uma tabela Autores ou uma tabela Livros. Essas tabelas são compostas de colunas identificadas com nomes que dizem quais são os dados contidos nelas. Quando um registro é inserido em uma tabela, uma linha de dados é criada. Onde uma linha e uma coluna interseccionam, um campo é criado. É assim que os bancos de dados são divididos. O MySQL é mais do que apenas um bando de dados. É um sistema que gerencia banco de dados. Ele controla como pode utilizá-los e como são manipulados. Registra ações em log e executa continuamente em segundo plano. Isso é diferente daquilo com que você pode estar acostumado. A maioria das pessoas pensa no Microsoft Access ou no Lótus Approach quando pensa em banco de dados. Esses são banco de dados, mas não são sistemas de gerenciamento. Um DBMS pode conter muitos bancos de dados. Os usuários se conectam ao servidor de banco de dados e emitem solicitações. O servidor de banco de dados consulta seus banco de dados e retorna as solicitações para o emissor. Os bancos de dados, como Approach e Access, são um passo abaixo desse tipo de sistema. Eles compartilham seus arquivos com múltiplos usuários, mas não há nenhuma interface controlando as conexões ou respondendo às solicitações. Há muitas utilizações para um MySQL DBMS. As utilizações podem variar de sistemas de help desktop a aplicativos para sites da Web. A coisa importante a lembrar é que o MySQL é suficientemente grande e suficientemente rápido para funcionar em quase qualquer situação. O lugar onde ele se encontra mais à vontade é a corporação. 2.4.3 Recursos do MySQL O MySQL é um sistema de gerenciamento de banco de dados relacional completo com todos os recursos. É muito estável e tem provado isso ao longo do tempo. O MySQL é um servidor multiencadeado. Multiencadeado, ou multibread, significa que toda vez que alguém estabelece uma conexão com o servidor, o programa de servidor cria um thread (encadeamento), ou processo, para tratar as solicitações desse
  • 29. 29 cliente. Isso torna um servidor extremamente rápido. Com efeito, cada cliente que se conecta a um servidor do MySQL obtém seu próprio thread. O MySQL também é completamente compatível com ANSI SQL92. Ele obedece a todos os padrões estabelecidos pelo American National Standards Institute. Os desenvolvedores na TcX levam esses padrões a sério e têm criteriosamente obedecido a eles.(ANSI SQL92 é um conjunto de padrões da Structured Query Language que foi estabelecido em 1992 pelo American Standards Institute) Outro recurso valioso do Mysql é seu sistema de ajuda online. Todos os comandos do Mysql são dados em um prompt de comando. Para ver quais argumentos os comandos aceitam ou o que o utilitário ou o comando faz, tudo que você tem de fazer é digitar o comando e incluir a opção –help ou -?. Isso exibirá uma grande quantidade de informações sobre o comando. Ainda outro recurso do Mysql é sua portabilidade – ele foi portado para quase todas as plataformas. Isto significa que você não tem de mudar sua plataforma principal para tirar proveito do Mysql. O Mysql também tem muitas diferentes interfaces de programas aplicativos (Applications Programming Interface – API). Estas incluem API’s para Perl, TCL. Python, C/C++, Java (JDBC) e ODBC. Então, independentemente da especialidade de sua corporação, o Mysql tem uma maneira para você acessá-lo. O Mysql é também muito barato. Para uma versão não-licenciada, completa do Mysql, o custo não é nada. Licenciar sua cópia atualmente lhe custará U$200. Isso é um negócio incrível, considerando o que você está obtendo com seu dinheiro. Os sistemas de banco de dados que fornecem metade dos recursos que o Mysql tem podem custar dezenas de milhares de dólares. O Mysql pode fazer o que eles fazem melhor e por menos. 2.4.4 Características do Mysql Segundo [3], serão apresentadas algumas características do Mysql. Ele oferece o Mysql 5.1 (versão lançada em 2009) em duas variantes: o código aberto Mysql Community Server e comercial Enterprise Server. Eles têm uma base de código comum e incluem as seguintes características: • A broad subset of ANSI SQL 99 , as well as extensions Um subconjunto amplo de ANSI SQL 99 , bem como extensões • Cross-platform support suporte multi-plataforma; • Stored procedures Os procedimentos armazenados; • Triggers Triggers; • Cursors Cursors; • Updatable Views Atualizáveis Views; • True Varchar support True Varchar apoio; • INFORMATION_SCHEMA INFORMATION_SCHEMA; • Strict mode modo Strict;
  • 30. 30 • X/Open XA distributed transaction processing (DTP) support; two phase commit as part of this, using Oracle's InnoDB engine X / Open XA distribuído de processamento de transações (DTP) de apoio; commit em duas fases , como parte deste, utilizando Oracle InnoDB motor; • Independent storage engines ( MyISAM for read speed, InnoDB for transactions and referential integrity , MySQL Archive for storing historical data in little space) Independente mecanismos de armazenamento (MyISAM para a velocidade de leitura, InnoDB para transações e integridade referencial , MySQL Arquivo para armazenar dados históricos em pouco espaço); • Transactions with the InnoDB, BDB and Cluster storage engines; savepoints with InnoDB Transações com o InnoDB, BDB e os motores de armazenamento em cluster; savepoints com InnoDB • SSL support SSL apoio; • Query caching Query cache; • Sub- SELECTs (ie nested SELECTs) Sub- SELECTs (ou seja, SELECTs aninhados); • Replication support (ie Master-Master Replication & Master-Slave Replication) with one master per slave, many slaves per master, no automatic support for multiple masters per slave. Replicação de apoio (ou seja, Master-Master Replication e replicação Master-Slave), com um mestre por escravos, muitos escravos por mestre, sem apoio automático para vários mestres por escravo; • Full-text indexing and searching using MyISAM engine Texto completo de indexação e busca utilizando o motor MyISAM; • Embedded database library biblioteca de banco de dados integrado; • Partial Unicode support (UTF-8 and UCS-2 encoded strings are limited to the BMP ) Parcial Unicode apoio (UTF-8 e UCS-2 strings codificadas são limitadas ao BMP ); • Partial ACID compliance (full compliance only when using the non-default storage engines InnoDB, BDB and Cluster) Parcial ACID compliance (cumprimento integral somente quando estiver usando o mecanismo de armazenamento não-padrão InnoDB, BDB e Cluster); • Shared-nothing clustering through MySQL Cluster Nada compartilhada através de clustering MySQL Cluster; • Hot backup (via mysqlhotcopy ) under certain conditions [ 21 ] Hot backup (via mysqlhotcopy ) sob determinadas condições; • Portabilidade (suporta praticamente qualquer plataforma atual); • Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, C#, Visual Basic, Python, Perl, PHP, ASP e Ruby); • Excelente desempenho e estabilidade; • Pouco exigente quanto a recursos de hardware;
  • 31. 31 • Facilidade de uso; • É um Software Livre com base na GPL; • Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid; • Suporta controle transacional; • Suporta Triggers; • Suporta Cursors (Non-Scrollable e Non-Updatable); • Suporta Stored Procedures e Functions; • Replicação facilmente configurável; • Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.
  • 32. 32 2.5 O que é o LDAP? Segundo [5], Lightweight Directory Access Protocol, ou LDAP, é um protocolo para atualizar e pesquisar diretórios rodando sobre TCP/IP. Um diretório LDAP geralmente segue o modelo X.500, que é uma árvore de nós, cada um consistindo de um conjunto de atributos com seus respectivos valores. O LDAP foi criado como uma alternativa ao muito mais incômodo Directory Access Protocol (DAP). Um diretório LDAP tende a refletir vários limites políticos, geográficos e/ou organizacionais, dependendo do modelo adotado. A utilização do LDAP hoje em dia tende a se basear nos nomes já existentes do sistema Domain Name System (DNS), na estruturação dos níveis mais básicos de hierarquia. Mais profundamente, podem aparecer estruturas representando pessoas, unidades organizacionais, impressoras, documentos, grupos de pessoas ou qualquer outra coisa que represente um nó. A versão atual é LDAPv3, especificado em uma série de RFC como mostra o RFC 4510. O autor deste protocolo foi Tim Howes da Universidade de Michigan, Steve Kille da ISODE (ISO Development Environment) e Wengyik Yeong da Performance Systems International. LDAP influenciou protocolos de Internet subseqüentes, incluindo versões posteriores do X.500, Directory Services Markup Language(DSML), Service Provisioning Markup Language (SPML) e o Service Location Protocol. Um cliente começa uma sessão de LDAP ligando-se a um servidor LDAP, normalmente pela porta padrão: 389, TCP. Este envia requisições para o servidor, o qual devolve respostas. As operações básicas são: • Bind – autentica e especifica a versão do protocolo LDAP; • Search – procura por e / ou recupera entradas dos diretórios; • Compare – teste se uma entrada tem determinado valor como atributo; • ADD – adiciona uma nova entrada; • Delete – apaga uma entrada; • Modify – modifica uma entrada; • Modify DN – move ou renomeia uma entrada; • Start TLS – protege a conexão com a Transport Layer Security (TLS); • Abandon – aborta uma requisição prévia; • Extended Operation – operação genérica para definir outras operações; • Unbind – fecha a conexão, não o inverso de Bind. Em contrapartida o servidor pode mandar "Unsolicited Notifications” que são respostas a nenhuma requisição, ex. antes deste terminar uma conexão. Com algumas
  • 33. 33 exceções o cliente não precisa esperar uma resposta antes de enviar a próxima requisição, e o servidor pode enviar a resposta em qualquer ordem. LDAP é definido nos termos da ASN. 1, e as mensagens de protocolos são codificadas no formato binário BER. O LDAP é uma definição de protocolo para acesso a bancos de dados especializados chamados diretórios. É similar ao SQL no sentido que é uma linguagem para interagir com bancos de dados sem especificar um banco de dados particular. De fato, o banco de dados de suporte ao LDAP é quase sempre um sistema RDBMS geral, como o LDBM ou o Oracle. Nas diversas tecnologias que empresas de médio e grande porte utilizam hoje em dia, uma área para autenticação é exigida por praticamente todos os sistemas, o que pode muitas vezes ocasionar uma variada quantidade de cadastro de utilizadores replicados entre os sistemas. Como exemplo daquele utilizador que tem muitos "logins" e "senhas" para acesso aos sistemas da empresa e toda semana precisa lembrar ou alterar alguma informação de seu cadastro. Ex: login e senha para acesso a máquina, a rede, ao e-mail, ao sistema de gestão, sistema de documentos, etc. Desta forma o usuário fica confuso e a equipe de TI simplesmente perde tempo com o serviço repetitivo e de suporte. Um servidor de diretórios como o Open LDAP ou MS Active Directory recebe esta autenticação dos muitos sistemas; o protocolo LDAP serve justamente para outras aplicações quaisquer da empresa se conectar e consultarem um servidor de diretórios. 2.5.1 Definição de diretórios Segundo [6], um diretório, em uma definição bem simplória, é um banco de dados desenvolvido para atender principalmente a grandes quantidades de consultas e não a grandes volumes de atualizações (inserções ou remoções). A forma em que os diretórios armazenam suas informações é hierárquica e não relacional, ou seja, em sistemas de diretórios não temos tabelas de dados como temos em bancos relacionais (como Mysql, Oracle, SQL Server...). No lugar de tabelas, os dados são organizados em uma DIT (Directory Information Tree - Árvore de informação do diretório), que é uma árvore onde cada vértice é um registro (onde um registro é um conjunto de informações sobre determinado objeto que queremos guardar). 2.5.2 Definição de DIT e o protocolo LDAP Segundo [7], uma árvore é formada por vértices (no caso da DIT cada vértice é um registro) e por arestas, que são "linhas" que relacionam dois vértices. Veja a seguinte
  • 34. 34 DIT: Figura 7 – Árvore – Fonte: http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=2 Nesse exemplo, cada elipse é um vértice da árvore, ou seja, cada elipse representa um registro da árvore, que é onde as informações de certo objeto são guardadas. No exemplo, temos o registro "POP-CE", que pode guardar várias informações, como onde se localiza o Pop-ce, quais membros, quais projetos em andamento, etc (mais a frente explicará como as informações são armazenadas em cada registro). Cada linha que relaciona (liga) dois registros é chamada de aresta. Dessa forma, temos uma aresta entre os registros "RNP" e "POP-CE", outra entre "POP-CE" e "VOIP", etc. Nesse caso, essas arestas são usadas para podermos perceber o caráter hierárquico dessa árvore. Veja que "POP-CE", "POP-RJ", "POP-PE" estão todos abaixo de "RNP", assim como "VOIP" e "GERENCIA" estão abaixo de "POP-CE". Tente ver a DIT como se fosse um sistema de pastas (isso é apenas uma analogia), no qual a pasta principal é a pasta "RNP" e dentro dela estão as pastas "POP-CE", "POP-RJ" e "POP-PE", dentro da pasta POP-CE estão as pastas "VOIP" e "GERENCIA", etc. Assim, já podemos ter uma idéia do que é uma árvore. A DIT é uma árvore enraizada, pois sempre vamos ter um único registro na parte mais alta da árvore, registro esse chamado de raiz (no exemplo, a raiz é o registro "RNP"). O LDAP é basicamente um sistema de diretórios que engloba o diretório em si (a DIT) e um protocolo também denominado LDAP (LightWeight Directory Access Protocol - Protocolo leve de acesso a diretórios), que é o protocolo que permite o acesso à DIT.
  • 35. 35 O nome do sistema de diretórios ser LDAP se deve ao fato do protocolo usado para acessar o sistema se chamar LDAP. O sistema LDAP é derivado de um sistema de diretórios chamado X.500. O X.500 usava como protocolo para acessar sua DIT o protocolo DAP (Directory Access Protocol). Mas quais as diferenças entre o X.500 e o LDAP? O LDAP, como o próprio nome diz, é mais leve, retirou alguns problemas que havia no X.500 (como redundância de dados), mas as principais diferenças estão entre os protocolos de acesso LDAP e DAP. O protocolo DAP era implementado sobre o padrão OSI de sete camadas, o que o deixava um tanto quanto incompatível e pesado. Já o LDAP é implementado sobre o sistema TCP/IP, que atualmente é mundialmente difundido, o que permite uma boa portabilidade entre os sistemas que desejam utilizar LDAP, além de possuir um menor overhead que o DAP nos pacotes enviados.
  • 36. 36 3 PROJETO A implementação do nosso projeto compõem-se por fase de instalação e configuração e fase de teste. A fase de instalação e configuração é onde iremos montar e programar toda a estrutura do servidor, esta ocorre em três etapas: • Instalar o sistema Slackware Linux; • Instalar e configurar devidamente os pacotes do Mysql, PHP, LDAP e Apache; • Instalar o Ocomon, e configurá-lo com as devidas necessidades. Após a instalação estar completa, será feitos os testes, a fim de confirmar um projeto bem estruturado. Estes são compostos por 3 etapas: • O usuário entrar no site e criar seu login; • Após logar-se, o usuário abre o chamado; • Com o login de administrador, deve-se com clareza, visualizar, atender e concluir o chamado; • E finalizando a fase de testes, o usuário após ter seu problema solucionado, pode ver o seu histórico de chamados, tanto em atendimento quanto os já encerrados. O êxito na instalação e configuração do projeto e respectivos testes realizados com sucesso compõem o desafio proposto durante este estudo.
  • 37. 37 4 IMPLEMENTAÇÃO A seguir iremos descrever detalhadamente como ocorreu todo o processo de aplicação prática, tais como instalação das dependências, PHP, Apache e MySQL; o software em questão, Ocomon; a ferramenta utilizada para registrar os usuários, o LDAP; a empresa fictícia que demonstraremos os chamados sendo trabalhados em tempo real, Monitores SA; também falaremos das dificuldades em geral encontradas ao longo da implementação. 4.1 MySQL O banco de dados do nosso projeto foi instalado diretamente do CD de instalação do sistema, juntamente com o mesmo. Iremos descrever abaixo alguns dos passos e comandos seguidos durante a instalação do MySQL: Apesar desse serviço ter sido instalado junto com o sistema, foi necessário instalá-lo e adaptá-lo ao Ocomon. Abaixo estão alguns comandos utilizados de cópia de arquivo de configuração, permissões e inicialização do serviço: # cd /usr/share/mysql/ # cp my-small.cnf /etc/my.cnf # mysql_install_db # cp mysql.server /etc/rc.d/rc.mysqld # chmod a+x /etc/rc.d/rc.mysqld # chown mysql:mysql /var/lib/mysql/ -R # /etc/rc.d/rc.mysqld start # mysql_secure_installation
  • 38. 38 Este último comando resulta na seguinte tela: NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALLMySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MySQL to secure it, we’ll need the current password for the root user. If you’ve just installed MySQL, and you haven’t set the root password yet, the password will be blank, so you should just press enter here.Enter current password for root (enter for none):como nao colocamos senha apenas dê um enter OK, successfully used password, moving on…Setting the root password ensures that nobody can log into the MySQL root user without the proper authorization. Set root password? [Y/n] Y New password: (Digite aqui aquela que será a sua senha) Re-enter new password: (Redigite a senha) Password updated successfully!Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y … Success! Em negrito, está representado as respostas a serem colocadas. No arquivo /etc/my.cnf adicione a última linha “log” abaixo de "[mysqld]”, ficando assim:
  • 39. 39 # The MySQL server [mysqld] port = 3306 socket = /var/run/mysql/mysql.sock skip-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K log = /var/log/mysql/mysqld.log Agora vamos criar o diretório dos logs e dar permissão, e posteriormente, reiniciar o serviço: # mkdir /var/log/mysql # chown mysql:mysql /var/log/mysql # killall mysqld # /etc/rc.d/rc.mysqld start O comando a seguir deve exibir uma mensagem: # cat /var/log/mysql/mysqld.log Se a mensagem a seguir for exibida, tudo ocorreu normal: /usr/libexec/mysqld, Version: 5.0.37-log (Source distribution). started with: Tcp port: 3306 Unix socket: /var/run/mysql/mysql.sock Time Id Command Argument
  • 40. 40 4.2 Apache O serviço utilizado como servidor web foi o Apache. Primeiramente foi preciso baixá-lo, depois descompactá-lo, e entrar na pasta descompactada. Dentro dela acionar os comandos para instalar, copiar arquivos de configuração, compilar e reiniciar o serviço. Veja os passos a seguir: # wget -c http://ftp.unicamp.br/pub/apache/httpd/httpd-2.2.8.tar.bz2 # tar jxvf httpd-2.2.8.tar.bz2 # cd httpd-2.2.8 #./configure –enable-so –prefix=/etc/apache –enable-ssl –with- ssl=/usr/include/openssl Explicação dos parâmetros: enable-so = Carrega os módulos na inicialização ou na reinialização do Apache; enable-ssl = Ativa suporte a SSL; Abaixo, a compilação e inicialização do Apache: # make # make install # cp /etc/apache/bin/apachectl /usr/bin # apachectl start 4.3 PHP Iniciamos baixando o PHP: # wget –c http://br2.php.net/distributions/php-5.2.4.tar.gz Após isto, compilá-lo e instalá-lo:
  • 41. 41 # tar jxvf php-5.2.4.tar.bz2 # cd php-5.2.4 # ./configure –with-apxs2=/etc/apache/bin/apxs –prefix=/etc/php5 # ./configure –with-mysql –with-pear –with-gettext –with-iconv –with-gd # ./configure –with-openssl –enable-ftp –with-mhash # make # make install É copiado um arquivo de configuração e editar esta cópia. Caso alguma alteração incorreta seja feita, delete o arquivo /etc/httpd/php.ini e copie-o novamente: # cp /etc/httpd/php.ini-dist /etc/httpd/php.ini O arquivo /etc/httpd/httpd.conf deve possuir as seguintes linhas ao final do arquivo: LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml DirectoryIndex index.php index.html index.htm Caso o Apache não inicialize, adicione estas linhas em todos os “httpd.conf” do sistema. No mesmo, descomente a seguinte linha: Include /etc/httpd/mod_php.conf Comente a seguinte linha: Deny from all Compare e iguale as linhas abaixo com um trecho do seu /etc/httpd/httpd.conf:
  • 42. 42 # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested # <ifModule dir_module> DirectoryIndex index.php index.html index.htm </ifModule> Agora criamos um arquivo com o nome index.php (em /var/www/htdocs/) contendo o seguinte conteúdo: <?php echo "Ola Mundo"; phpinfo(); ?> Reiniciamos o Apache: # apachectl restart Agora podemos acessar nosso browser e testar o Apache e o PHP: http://127.0.0.1/index.php A página deve exibir a frase “Ola Mundo” e logo abaixo, informações do PHP, tais como serviços, e entre eles, o MySQL deve estar “enabled”.
  • 43. 43 4.4 Ocomon Baixar o Ocomon: # wget –c http://sourceforge.net/projects/ocomonphp/files/ocomon_2.0- RC6.zip/download Descompactá-lo em /var/www/htdocs: # unzip ocomon_2.0-RC6-patch-01.zip -d /var/www/htdocs O único diretório que será preciso alterar as permissões será /var/www/htdocs/ocomon/includes/logs deve ter permissão de escrita para todos os usuários Criando o banco de dados do Ocomon: # mysql -u root –p < /var/www/htdocs/ocomon/install/2.0RC6/DB_OCOMON_2.0RC6_FULL.SQL E fornecer a senha, quando solicitado. Com isso é criado: um usuário "ocomon" de senha "senha_ocomon_mysql", o nome do banco de dados é "ocomon_rc6". Alteramos o usuário para "root" e a senha para "senha.1".Com isso o Ocomon não levantou, mas removemos a senha, reiniciamos todos os serviços, recolocamos a senha, restartamos todos os serviços novamente e assim o Ocomon foi exibido. Os principais arquivos de configuração são: /var/www/htdocs/ocomon/install/2.0RC6/DB_OCOMON_2.0RC6_FULL.SQL /var/www/htdocs/ocomon/includes/config.inc.php: Responsável pela conexão com o banco de dados.
  • 44. 44 4.5 LDAP O LDAP é o protocolo utilizado para autenticar usuários, no caso foi usado o Active Directory do Windows Server 2003, como base de usuários tanto do Ocomon como do domínio. Inicialmente o servidor LDAP seria o próprio Slackware, onde já está instalado o Ocomon, mas devido aos problemas na instalação, não foi possível concluí-lo. Em uma segunda idéia tornamos o Windows Server 2003 o servidor LDAP, autenticando os usuários na Active Directory. Com esta solução obtivemos êxito na implementação do projeto. Esta autenticação no Active Directory e o software instalado no Slackware foi o ponto mais complexo da configuração. Pois os tutoriais e artigos na internet eram muitos escassos em relação à instalação e integração do LDAP com outros sistemas. Foi preciso juntar os tutoriais mais confiáveis, lê-los, e reunir as informações mais importantes em apenas um manual de instalação, pois em todos sempre faltava um detalhe. E a partir desse tutorial criado baseando-se nos mais confiáveis, foi possível concluir a integração. A seguir vamos mostrar os passos para fazer essa integração, de acordo com o tutorial criado. Após instalar todas as dependências do Ocomon, precisamos baixar o adLDAP: # wget –c http://adldap.sourceforge.net/download.php Depois de baixá-lo, precisamos descompactar o pacote: # unzip adLDAP_3.2.zip Após descompactar temos que colar o arquivo adLDAP.php para /var/www/htdocs/ocomon/includes/classes: # cp adLDAP/adLDAP.php /var/www/htdocs/ocomon/includes/classes E editar as seguintes linhas: protected $_account_suffix = “@seudominio.local”; protected $_base_dn = “DC=seudominio,DC=local”; protected $_domain_controllers = array (“192.168.100.100″);
  • 45. 45 Depois dessa cópia, é preciso alterar o arquivo login.php do diretório /var/www/htdocs/ocomon/includes/common adicionando parâmetros para que o arquivo busque informações do adLDAP.php e comentar algumas linhas, utilizamos um arquivo já configurado, apenas baixamos e substituímos: # wget -c http://dc252.4shared.com/download/ywvrFUQJ/login.php? tsid=20101125-061149-952a0192 # mv login.php /var/www/htdocs/Ocomon/includes/common/login.php Após essa alteração ainda precisamos modificar o arquivo config.inc.php do diretório /var/www/htdocs/ocomon/includes, comentando a linha : define ( “AUTH_TYPE” , “SYSTEM“ ); //DEFAULT E descomentando a linha: define ( “AUTH_TYPE” , “LDAP” ); //ALTERNATIVE E logo abaixo a configuração vai variar de acordo com configuração da rede, no nosso caso ficou da seguinte forma: #define ( "AUTH_TYPE" , "SYSTEM"); //DEFAULT define ( "AUTH_TYPE", "LDAP"); // ALTERNATIVE /* Variáveis para conexão LDAP DEVEM SER CONFIGURADAS EM CASO DE AUTH_TYPE==LDAP DE ACORDO COM AS CONFI$ define ( "LDAP_HOST", "192.168.0.2"); //IP do servidor LDAP define ( "LDAP_DOMAIN", "ou=People,dc=monitores,dc=com,dc=br"); define ( "LDAP_DOMAIN_SEC", "ou=People,dc=yourdomain1,dc=yourdomain2,dc=edu,dc=br"); //Segundo domÃ- nio LDAP define ( "LDAP_DN", "cn=admin,dc=monitores,dc=com,dc=br"); define ( "LDAP_PASSWORD", "senha.1"); 4.6 Monitores SA Como dito no capítulo três, a parte prática do nosso projeto se divide em instalação e configuração, e fase de testes. A Monitores SA foi uma empresa fictícia criada por nós a fim de auxiliar na fase de testes e exemplificação dos recursos do Ocomon. Adaptamos o software à empresa para que ela organizasse seus pedidos de suporte, deixando-os guardados em um banco de dados, para que fossem facilmente acessados quando necessário. Em anexo está disponível a planta da empresa para melhor compreendimento da mesma.
  • 46. 46 4.7 Dificuldades encontradas Antes de começar a instalar as dependências, era muito escasso os tutoriais encontrados na internet que integrasse o MYSQL, Apache e o PHP no Slackware. Então, como recomendado no tutorial destes serviços [20], utilizamos o MySQL direto do dvd de instalação do sistema operacional. Quanto ao Apache, sua pasta raiz no sistema Ubuntu (utilizado em aula) se localizava em /var/www, mas no sistema Slackware o diretório não era o mesmo, tendo de adentrar mais uma subpasta, tornando o caminho como /var/www/htdocs. Esse foi um dos erros responsáveis por um dos insucessos na aplicação. O arquivo que se encarregava de integrar o Ocomon com o banco de dados (/var/www/htdocs/ocomon/includes/config.inc.php-dist) deveria ser renomeado para config.inc.php, e este sim ser editado. Este novo arquivo que foi removido o “-dist” seria o arquivo lido no momento em que o Ocomon precisasse se comunicar com o banco de dados. No primeiro dia em que não foi possível levantar o Ocomon, foi devido a uma linha não comentada em um arquivo de configuração do Apache, refere-se a linha “deny from all” (negar para todos) dentro de /etc/httpd/httpd.conf. O diretório de inicialização de serviços do Slackware se localizava em /etc/rc.d/, e geralmente o serviço tinha rc. antes de seu nome, por exemplo: /etc/rc.d/rc.httpd, arquivo de inicialização do Apache. Em aula, utilizávamos /etc/init.d/, no Ubuntu. E por último, após todas as configurações estarem corretas, ocorreu um mínimo detalhe que nenhum tutorial indicava: após descompactar o Ocomon e movê-lo para a raiz do servidor web, a pasta continha o nome ocomon2.0_RC6, logo para acessarmos via browser teríamos de acessar o endereço HTTP://10.0.240.254/ocomon2.0_RC6, diferente do que dizia o tutorial: HTTP://10.0.240.254/ocomon, então antes do teste final (de preferência após descompactá-lo) renomear o diretório de ocomon2.0_RC6 para ocomon.
  • 47. 47 5 CONCLUSÃO O projeto nos forneceu maior aprofundamento em Linux. Em aula trabalhávamos com o Ubuntu, que é uma distribuição da linha Debian, considerada pelos adeptos à teoria Linux uma linha destinada aos iniciantes. Mas após o trabalho de conclusão baseado em Slackware, podemos ampliar nosso conhecimento, trabalhando com a linha RedHat, contando com as dificuldades já ditas na implementação. Trabalhar com ferramentas como banco de dados MySQL, servidor web Apache e a linguagem de programação PHP, que fazia a interação entre o usuário e o banco de dados, nos foi bastante satisfatório, pois apesar de o curso se destinar à redes de computadores, e essas três dependências não se relacionarem tanto à essa área, inicialmente iríamos criar um software de pedido de suporte, semelhante ao Ocomon. Mas como não tínhamos conhecimento suficiente em PHP, banco de dados e outras ferramentas, ultrapassaríamos o tempo estipulado para a realização do projeto. Então optamos por apresentar uma ferramenta pronta, também com outras integradas a ela. Após finalizarmos o projeto, percebemos que foram resolvidos problemas como, organização de equipamentos de informática, listagem de programas e licenças utilizados pela empresa, pedidos de suporte pelos usuários e um banco de soluções para ocorrências passadas, ou seja, problemas comuns do dia a dia de muitas empresas, através de um software livre que está em constante desenvolvimento, e que pode ser modificado caso haja necessidade da parte de quem o usa. Com a utilização do protocolo LDAP para autenticar os usuários facilita muito a integração para a um novo sistema que a empresa venha a utilizar, pois a partir de uma base de usuários já criada o trabalho é somente interagir a base com o novo sistema, não sendo necessário recriar usuário por usuário, fazendo com que se economize tempo e manutenção.
  • 48. 48 REFERÊNCIAS [1] Carlos E. Morimoto - Linux, Guia Prático. Editora: GDH Press e Sul Editores, 2009. [2] Mark Maslakowski e Tony Butcher - Aprenda em 21 dias MySQL, 1ª edição, Editora Campus Ltda. [3] MySQL. Disponível em: http://translate.google.com.br/translate?hl=pt- BR&sl=en&u=http://en.wikipedia.org/wiki/MySQL&ei=CkJpTOrQIYS8lQedsKChBQ &sa=X&oi=translate&ct=result&resnum=9&ved=0CFMQ7gEwCA&prev=/search %3Fq%3Dmysql%26hl%3Dpt-BR%26prmd%3Db - Acessado em: 16 ago 2010 [4] MySQL. Disponível em: http://pt.wikipedia.org/wiki/MySQL. Acessado em: 16 ago 2010. [5] LDAP – Disponível em: http://pt.wikipedia.org/wiki/LDAP. Acessado em: 29 ago 2010. [6] Entendendo o LDAP – Disponível em: http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=1. Acessado em: 29 ago 2010. [7] Entendendo o LDAP – Disponível em: http://www.vivaolinux.com.br/artigo/Entendendo-o-LDAP?pagina=2. Acessado em: 29 ago 2010. [8] Arman Danesh – Dominando o Linux, a bíblia. 1ª edição, São Paulo, MAKRON books do Brasil Editora Ltda, 1999. [9] OcoMon - Sistema Help desk em PHP – Disponível em: http://www.vivaolinux.com.br/dica/OcoMon-Sistema-HelpDesk-em-PHP. Acessado 15 ago 2010. [10] Site oficial do Help desk Ocomon – Disponível em: http://ocomonphp.sourceforge.net/. Acessado em: 15 ago 2010. [11] Documentações oficiais do Ocomon – Disponível em: http://ocomonphp.sourceforge.net/documentos/ocomon_FISL.pdf. Acessado em: 20 ago 2010. [12] O que é uma SLA? – Disponível em: http://cio.uol.com.br/gestao/2006/06/12/idgnoticia.2006-06-12.4971967799/. Acessado em: 20 ago 2010.
  • 49. 49 [13] Slackware Linux, artigo no Wikipédia – Disponível em: http://pt.wikipedia.org/wiki/Slackware. Acessado em: 23 ago 2010. [14] Comparação entre o Debian e o Slackware – Disponível em: http://under-linux.org/f151/qual-diferenca-entre-debian-e-slackware-117890/. Acessado em: 23 ago 2010. [15] Patrick Volkerding, artigo no Wikipédia – Disponível em: http://pt.wikipedia.org/wiki/Patrick_Volkerding. Acessado em: 24 ago 2010. [16] Slackware, uma completa visão global de todas as versões – Disponível em: http://www.nielshorn.net/slackware/slack_versions.php. Acessado em: 24 ago 2010. [17] O futuro do Slackware sem Patrick Volkerding – Disponível em: http://www.guiadohardware.net/comunidade/futuro-slackware/955492/. Acessado em: 24 ago 2010. [18] Help desk, artigo no Wikipédia – Disponível em: http://pt.wikipedia.org/wiki/Help_desk. Acessado em: 29 ago 2010. [19] Terceirização de Service Desk: Benefícios para o mercado PME – Disponível em: http://convergenciadigital.uol.com.br/cgi/cgilua.exe/sys/start.htm? from_info_index=21&infoid=20921&sid=49. Acessado em: 29 ago 2010. [20] Apache + mysql + php no Slackware – Disponível em: http://powerguide.wordpress.com/2007/09/03/apache-mysql-php-no-slackware/. Acessado em 19 out 2010.
  • 50. 50 ANEXO A PLANTA DA EMPRESA
  • 52. 52 ANEXO C: OCOMON CHAMADOS