Neste post irei mostrar como realizar a instalação, configuração e execução do Magic xpi (iBOLT) no Linux CentOS 6.0. Apesar de este sistema operacional não estar na lista dos sistemas suportados, conseguiremos instalar e executar incluindo as bibliotecas necessárias para o Magic xpi.
Vale ressaltar que:
1) As versões do Magic xpi Server para Linux não acompanham as versões Windows, por exemplo, a versão atual para Windows é a 3.2SP3 e a versão atual para Linux é 3.2 (sem SP algum). Isso é importante para o processo de desenvolvimento/homologação e produção.
2) Nem todos os componentes funcionam em todas as plataformas. Para verificar os componentes disponíveis em cada plataforma clique aqui.
Parte 1: Instalando e configurando os pré-requisitos
Os pré-requisitos para instalar o Magic xpi são: cliente de banco de dados (MySQL ou Oracle) e Java, sendo que o cliente de banco de dados a ser instalado será utilizado para alojar o banco de dados interno do Magic xpi ou para o projeto que será executado.
Caso não seja necessário o Oracle ou o MySQL, pule respectivamente o item “1” ou o item “2”, lembrando que um dos dois terá que ser escolhido.
No post utilizaremos o MySQL como banco de dados interno e pelo projeto, já o Oracle será usado somente pelo projeto.
1) Oracle
Acesse http://www.oracle.com/technetwork/topics/linuxsoft-082809.html e baixe os arquivos:
a) oracle-instantclient-basic-10.2.0.5-1.i386.rpm – este pacote contém as bibliotecas básicas de conexão. Rode o comando abaixo para instalar e veja os resultados na tela em seguida:
rpm -ivh oracle-instantclient-basic-10.2.0.5-1.i386.rpm
b) oracle-instantclient-sqlplus-10.2.0.5-1.i386.rpm – este pacote contém o sqlplus para realizarmos testes de conexão externamente ao Magic xpi. Rode o comando abaixo para instalar e veja os resultados na tela em seguida:
rpm -ivh oracle-instantclient-sqlplus-10.2.0.5-1.i386.rpm
c) Realizando um teste de conexão.
Veja que para realizar este teste via sqlplus, conforme mostrado abaixo é necessário configurar PATH’s, TNSNAME’s. Veja como fazer isso em http://docs.oracle.com/cd/B19306_01/server.102/b14357/ape.htm
sqlplus USUARIO/SENHA@TNSNAME
2) MySQL
a) Instalando o unixODBC
Como o MySQL é acessado pelo Magic xpi via ODBC precisaremos primeiramente instalar o unixODBC.
Rode o comando para abaixo para instalar e veja os resultados na tela em seguida:
yum install unixODBC
b) Instalando o driver ODBC do MySQL.
Rode o comando abaixo para instalar e veja os resultados na tela em seguida:
yum install mysql-connector-odbc
c) Instalando o servidor MySQL
Este passo será executado para que o servidor de MySQL fique alojado na mesma máquina. Caso não seja o seu cenário, você pode pular este passo, mas lembre-se de testar a conexão do item “d” com os dados do seu servidor MySQL.
Rode o comando abaixo para instalar e veja os resultados na tela em seguida:
yum install mysql-server
d) Realizando teste de conexão do MySQL.
Para realizar o teste conforme é mostrado abaixo, é necessário iniciar o MySQL e configurar a senha do root. Veja isso em: http://dev.mysql.com/doc/refman/5.1/en/postinstallation.html
Rode o comando abaixo e veja os resultados na tela em seguida:
mysql -p
e) Configurando o acesso do MySQL via ODBC
Edite ou crie o arquivo no caminho /etc/odbc.ini com os dados para acesso do MySQL. Para maiores informações sobre a configuração deste arquivo, veja http://www.unixodbc.com/odbcinst.html. Confira abaixo como ficou:
f) Realizando o teste de acesso do MySQL via ODBC
Rode o comando abaixo e veja os resultados na tela em seguida:
isql MySQL-test usuário senha
3) Java
a) Instalando o JRE
Precisaremos instalar o JRE. Acesse http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html#jre-1.5.0_04-oth-JPR e baixe o arquivo jre-1_5_0_04-linux-i586-rpm.bin.
Rode os comandos para dar permissão de execução e instalar conforme abaixo e veja os resultados na tela em seguida:
chmod +x jre-1_5_0_04-linux-i586-rpm.bin
./jre-1_5_0_04-linux-i586-rpm.bin
Após a instalação defina a variável de ambiente JAVA_HOME no script de logon de todos os usuários.
Até aqui finalizamos a instalação dos pré-requisitos.
Parte 2: Instalando o Magic xpi
Continuando, agora iremos instalar o Magic xpi no Linux CentOS 6.0. Lembre-se de que a parte 1 deve estar totalmente OK.
1) Criando o usuário
Crie um usuário, como por exemplo “iboltdev” e faça o login com este usuário criado. Neste usuário ficará todo o ambiente do Magic xpi.
A partir deste momento, quando me referir a <usuário do Magic xpi> será o usuário criado neste passo, que no exemplo é igual ao iboltdev. E quando me referir a <diretório raiz do usuário Magic xpi> será o diretório raiz do <usuário do Magic xpi> que no exemplo é /home/iboltdev.
A criação do usuário e a definição de senha foram feitas com os comandos abaixo. Veja os resultados na tela em seguida:
adduser iboltdev
passwd iboltdev
2) Criando a pasta do Magic xpi
Crie uma pasta, como por exemplo, “ibolt3.2”.
A partir deste momento quando me referir a esta pasta colocarei <diretório do iBOLT> que no exemplo é <diretório raiz do usuário iBOLT>/ibolt3.2.
Faça o download do arquivo ibolt_3.2.linux.tar.Z de http://downloads.magicsoftware.com e coloque no <diretório do iBOLT>.
3) Descompactando o arquivo
Entre no <diretório do iBOLT> e rode os comandos para descompactar o arquivo ibolt_3.2.linux.tar.Z conforme abaixo:
gunzip ibolt_3.2.linux.tar.Z
tar xvf ibolt_3.2.linux.tar
4) Rodando o script de instalação
Rode o comando ./ibinstall no <diretório do Magic xpi>.
Neste momento será apresentada uma tela de anúncio do script. Tecle enter.
Posteriormente será feito uma série de perguntas:
a) Nome da máquina ou IP e porta onde ficará o broker (deixe o default)
b) Nome da máquina onde fica o servidor de licenças do Magic xpi(deixe o default, será manipulado posteriormente)
c) Nome da feature que será usada (deixe o default)
d) Banco de dados que será usado como interno do Magic xpi, se Oracle ou MySql (coloque MySql).
e) Se a resposta da pergunta d for MySql, será solicitado o local que está instalado o unixODBC (coloque /usr/lib)
f) Se a resposta da pergunta d for Oracle, será solicitada a string de conexão com o Oracle e o diretório raiz do Oracle. Ao instalar o banco de dados interno do Magic xpi no Oracle atente em responder estas questões com informações válidas em seu ambiente e que o seu simples sqlplus consegue conectar.
g) Alias que será criado no Apache para acesso ao requester do Magic xpi (coloque /scripts)
h) Local em que fisicamente ficarão os arquivos do requester do Magic xpi (coloque /var/www/scripts)
i) Local onde ficarão os arquivos de utilitários do Magic xpi, tal como o HTML padrão de erro (coloque /var/www/iboltutils)
Ao final, serão apresentados avisos de que não existem os diretórios /var/www/scripts e /var/www/iboltutils. Não se preocupe com isso, pois trataremos posteriormente. Prossiga na instalação e veja o resultado da tela de execução abaixo:
5) Habilitando o Gateway de acesso ao banco de dados
Agora precisamos habilitar o gateway para acesso ao banco de dados. Edite o arquivo de <diretório do Magic xpi>/etc/mgenv retirando o sinal de sustenido(#) do inicio da linha do gateway que necessitar.
Veja abaixo que o quadrado amarelo foi retirado do gateway para Oracle e o quadrado azul do ODBC para MySQL.
No caso de utilização do gateway Oracle, serão necessárias mais duas configurações neste arquivo. Retire o sinal de sustenido(#) do início das configurações ORACLE_HOME e ORACLE_SID.
Veja abaixo que teremos que apontar o caminho home do Oracle e o SID.
No caso de utilização do gateway Oracle será necessário editar o script de logon do usuário acrescentando na variável de ambiente LD_LIBRARY_PATH o caminho das bibliotecas do Oracle.
Edite o arquivo .profile, .cshrc, ou .bash_profile, localizado no <diretório raiz do usuário Magic xpi>. Oarquivo a editar depende do shell que usuário estiver fazendo logon. No meu caso é o .bash_profile.
Veja abaixo que foi acrescentado o caminho:
6) Habilitando o acesso ao JRE
Agora precisamos acrescentar no script de logon do usuário o caminho onde encontram-se as bibliotecas do Java.
Edite o arquivo .profile, .cshrc, ou .bash_profile localizado no <diretório raiz do usuário Magic xpi>. O arquivo a editar depende do shell que usuário estiver fazendo logon. No meu caso é o .bash_profile.
Veja abaixo que foi acrescentado o caminho:
7) Verificando bibliotecas faltantes para o iboltserver
Iremos verificar quais bibliotecas ainda faltam para que o iboltserver execute corretamente.
Faça o logoff e logon com o <usuário do Magic xpi>
Rode o comando abaixo e veja os resultados na tela em seguida:
ldd <diretório do Magic xpi>/bin/iboltserver
Veja que faltam as bibliotecas libexpat.so.0 e libstdc++.so.5
8) Instalando bibliotecas faltantes para o iboltserver
Com o usuário root faça os itens a e b
a) Instalando a libexpat.so.0
Esta biblioteca pode ser encontrada no pacote compat-expat1, então basta instalá-la.
Rode o comando abaixo para fazer a instalação e veja os resultados na tela em seguida:
yum install compat-expat1
Além disso, teremos que fazer um link simbólico.
Rode o comando abaixo e veja os resultados na tela em seguida:
ln -s /usr/lib/libexpat.so.0 /sbin/libexpat.so.0
b) Instalando a libstdc++.so.5
Esta biblioteca pode ser encontrada no pacote compat-libstdc++-33, então basta instalá-la.
Rode o comando para instala-la conforme abaixo e veja os resultados na tela em seguida:
yum install compat-libstdc++-33
9) Checando novamente as bibliotecas para o iboltserver
Faça o logoff e logon com o <usuário do Magic xpi>
Rode o comando abaixo e veja os resultados na tela em seguida:
ldd <diretório do Magic xpi>/bin/iboltserver
Veja agora que todas as bibliotecas foram encontradas.
10) Checando as bibliotecas para o gateway do Oracle
Com o <usuário do Magic xpi>, vamos verificar se falta alguma biblioteca para o executável do gateway do Oracle.
Rode o comando conforme abaixo e veja os resultados na tela em seguida:
ldd <diretório do Magic xpi>/bin/mgoracle10
Note que todas as bibliotecas foram encontradas.
11) Checando as bibliotecas para o gateway do ODBC
Com o <usuário do Magic xpi>, vamos verificar se falta alguma biblioteca para o executável do gateway do ODBC.
Rode o comando conforme abaixo e veja os resultados na tela em seguida:
ldd <diretório do Magic xpi>/bin/mgodbc
Note que falta a biblioteca libodbc.so.1. Resolvemos criando um link simbólico, conforme o comando abaixo. Veja o resultado a seguir:
ln -s /usr/lib/libodbc.so.2.0.0 <diretório do Magic xpi>/lib/libodbc.so.1
Rode novamente o comando conforme abaixo e veja os resultados na tela em seguida:
ldd <diretório do Magic xpi>/bin/mgodbc
Veja agora que todas as bibliotecas foram encontradas.
Até aqui finalizamos a instalação dos pré-requisitos e do Magic xpi, continuaremos a seguir configurando o Magic xpi.
Parte 3: Configurando o Magic xpi
Agora iremos configurar o Magic xpi no Linux CentOS 6.0. Lembre-se que as partes 1 e 2 devem estar totalmente OK.
1) Configurando o acesso ao Magic xpi via HTTP
Este item é necessário quando se deseja monitorar o Magic xpi com a versão Web Monitor ou se o seu projeto necessita receber chamadas via interface HTTP.
Para realizar este item você deve ter o Apache instalado/configurado e em execução.
Com o usuário root precisamos:
a) Criar as pastas faltantes apontadas na parte 2 item “4” deste post. As pastas são /var/www/scripts e /var/www/iboltutils.
Rode os comandos conforme abaixo e veja os resultados na tela em seguida:
mkdir /var/www/scripts
mkdir /var/www/iboltutils
b) Rodar o script <diretório do Magic xpi>/sbin/mgroot.sh que irá copiar o requester, e arquivos necessários.
Rode o comando conforme abaixo e veja os resultados na tela em seguida:
<diretório do Magic xpi>/sbin/mgroot.sh
c) Definir os diretórios virtuais no Apache do Magic xpi, para isso precisamos copiar o conteúdo do arquivo <diretório do Magic xpi>/web_utils/magic.conf para o arquivo de configuração do Apache e reiniciar o Apache.
Rode os comandos conforme abaixo e veja os resultados na tela em seguida:
cat <diretório do Magic xpi>/web_utils/magic.conf >> /etc/httpd/conf/httpd.conf
service httpd restart
d) Ajustar as permissões de execução de bibliotecas
Existem algumas bibliotecas necessárias para o requester do Magic xpi executar que não são encontradas pois o serviço do Apache é executado com outro usuário. Para tanto, vamos copiá-las para o diretório onde as bibliotecas podem ficar compartilhadas com qualquer usuário.
Rode os comandos conforme abaixo e veja os resultados na tela em seguida:
cp <diretório do Magic xpi>/lib/libicuio.so.32.0 /usr/lib/libicuio.so.32
cp <diretório do Magic xpi>/lib/libicui18n.so.32.0 /usr/lib/libicui18n.so.32
cp <diretório do Magic xpi>/lib/libicuuc.so.32 /usr/lib/libicuuc.so.32
cp <diretório do Magic xpi>/lib/libicudata.so.32.0 /usr/lib/libicudata.so.32
cp <diretório do Magic xpi>/lib/libeasysoap.so.0.0.0 /usr/lib/libeasysoap.so.0
cp <diretório do Magic xpi>/lib/libssl.so.0.9.8 /usr/lib/libssl.so.0.9.8
cp <diretório do Magic xpi>/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.0.9.8
e) Liberar a execução das bibliotecas pelo usuário Apache
Desligue o SELinux configurando o arquivo /etc/selinux/config conforme abaixo e faça o reinício.
f) Testar o acesso via HTTP
Faça o teste do acesso via HTTP mesmo o Magic xpi não estando em execução será dado um retorno, podemos usar uma URL de teste como por exemplo:
http://<IP_OU_NomeDaMaquina>/scripts/mgrqcgi018?AppName=TESTE1&PrgName=TESTE2
Lembre de colocar <IP_OU_NomeDaMaquina> com os dados de seu ambiente, veja o resultado:
2) Configurando a licença
a) Coloque sua licença no arquivo <diretório do Magic xpi>/etc/license.dat
b) Aponte o arquivo do item “a” no arquivo <diretório do Magic xpi>/etc/IFS.INI no parâmetro LicenseFile, veja abaixo:
3) Criando o banco de dados interno do Magic xpi
Para que o Magic xpi funcione é necessário criar o banco de dados interno para ele.
Rode os scripts que estão em <diretório do Magic xpi>/db/mysql quando MySQL e <diretório do Magic xpi>/db/oracle quando Oracle.
Em meu cenário (MySQL) segui as instruções do documento <diretório do Magic xpi>/db/mysql/Readme.txt para criação deste banco.
4) Configurando o acesso ao banco de dados interno do Magic xpi via ODBC
Este item é necessário, pois o cenário apresentado utiliza o banco de dados interno no MySQL e o Magic xpi conecta-se via ODBC
a) Configure o arquivo /etc/odbc.ini conforme abaixo:
b) Teste a conexão do ODBC configurado anteriormente conforme comando abaixo e veja os resultados em seguida:
isql iBOLT
c) Configure o arquivo no local em <diretório do Magic xpi>/etc/IFS.INI com os dados configurados e testados nos itens a e b.
Até aqui finalizamos a instalação dos pré-requisitos e instalação e configuração do Magic xpi.
Parte 4: Executando um projeto exemplo
Continuando a instalação do Magic xpi no Linux CentOS 6.0, agora iremos executar um projeto exemplo. Lembre-se que as partes 1/2/3 devem estar totalmente OK.
1) Sobre o projeto exemplo
Faça o download do projeto exemplo clicando aqui.
O projeto exemplo é bem simples, composto por três fluxos.
1º Fluxo:
Fica monitorando uma pasta do projeto “entrada” e movendo para a pasta “saída”;
Grava informações no monitor;
Lê o XML capturado e grava no MySQL e Oracle.
Veja abaixo o esquema do fluxo:
2º Fluxo
É executado a cada 30 segundos;
Copia o arquivo Request001.xml para a pasta de entrada com um novo nome.
Veja abaixo o esquema do fluxo:
3º Fluxo
Recebe um Pedido no formato XML via HTTP;
Grava o pedido na pasta entrada com um novo nome;
Gera retorno da chamada HTTP com a informação “Pedido recebido com sucesso . . .”.
Veja abaixo o esquema do fluxo:
2) Gerando o comando de start/stop do projeto exemplo
Com o usuário <usuário do Magic xpi>
a) Coloque o projeto na pasta <diretório do Magic xpi>/projects
b) Rode o campo “ibsetup” sem aspas, abrirá uma tela informando que serão gerados os scripts para iniciar e parar o projeto. Tecle enter.
c) Duas perguntas surgirão: qual o nome da pasta do projeto e o nome do projeto.
3) Preparando o ambiente do projeto
a) Crie as tabelas do projeto em MySQL e Oracle conforme os scripts que estão em <diretório do Magic xpi>/projects/Teste/db/mysql.sql e <diretório do Magic xpi>/projects/Teste/db/oracle.sql
b) Ajuste as variáveis de ambiente de <diretório do Magic xpi>/projects/Teste/IFS.Teste conforme apontado abaixo de acordo com o ambiente que foi rodado os scripts no passo anterior.
4) Iniciando o projeto
Para iniciar o projeto é preciso sempre iniciar o Broker primeiramente e para parar o projeto o Broker é parado por último.
Segue os comandos necessários para cada ação:
startb = Inicia o broker
stopb = Para o broker
ibstart.<nome do projeto> = Iniciar um projeto, onde <nome do projeto> é o nome do projeto que foi gerado pelo item “3” pelo comando ibsetup.
ibstop.<nome do projeto> = Parar um projeto, onde <nome do projeto> é o nome do projeto que foi gerado pelo item “3” pelo comando ibsetup. Este comando mostrará uma lista e você irá digitar um numero relativo à qual projeto da lista você gostaria de parar.
Com o usuário <usuário do Magic xpi>
Inicie o projeto exemplo rodando o comando abaixo e veja os resultados em seguida.
startb
ibstart.Teste
5) Monitorando um projeto
Para monitorar um projeto utilize a versão Web Monitor.
a) Acesse http://<nome da maquina ou IP>/scripts/mgrqcgi018?AppName=IFS<nome do projeto>&PrgName=Login, trocando corretamente as informações <nome da maquina ou IP> e <nome do projeto> do endereço informado.
b) Ao acessar o endereço do item “a” será solicitado o usuário e senha. No projeto exemplo o usuário e senha são iguais a “Teste” sem aspas. Veja abaixo o acesso efetuado.
6) Testando os resultados
a) Veja no monitoramento que o 1ª Fluxo foi executado, isto porque na pasta entrada existiam os arquivos Request001.xml, Request002.xml e Request003.xml:
b) Veja que a cada 30 segundos o 2º fluxo é executado:
c) Rodando o 3º Fluxo
Como o terceiro fluxo é ativado por uma trigger HTTP, ajuste a URL do arquivo <diretório do Magic xpi>/projects/Teste/Service/pedido/adicionar.html apontando para http://<Nome da Maquina ou IP>/scripts/mgrqcgi018 no local conforme apontado abaixo:
Copie este arquivo para /var/www/iboltutils e teste o acesso http://<Nome da Maquina ou IP>/IboltUtils/adicionar.html,. Veja abaixo o acesso sendo realizado:
Agora basta enviar um arquivo como os já existentes (Request001.xml, Request002.xml ou Request003.xml).
Verifique sua execução pelo monitoramento:
CONCLUSÃO:
Após a execução dos procedimentos descritos em todas as partes, constatamos que o Magic xpi executa tranquilamente no sistema operacional Linux CentOS.