&reftitle.setup;
&reftitle.required;
La extensión SAM actúa de interface de los productos middleware
IBM Messaging and Queuing utilizando un conjunto de librerías y un código cliente
llamado XMS. Este paquete está disponible como una descarga gratuíta en
la guía de soporte de IBM pack IA94. Hay una descripción de los
links del paquete y de la descarga en el artículo
Introducing XMS - The IBM Message Service API.
Si se desea utilizar SAM para acceder a la infrastructura de mensajería
y encolado de mensajes dentro de un WebSphere MQ entonces será necesario también tener
instalado un gestor de colas local MQ o tener instalado el paquete cliente
WebSphere MQ. El paquete cliente está disponible de forma gratuíta como un paquete de
soporte (MQC6).
Si lo que se desea es únicamente experimentar con el envío de mensajes hacia y desde
las colas de WebSphere Application Server utilizando el protocolo WebSphere Platform
Messaging (WPM) entonces no se necesita instalar el paquete
MQC6.
Después de la instalación de estos paquetes es necesario asegurarse de que el directorio XMS binary
y, si se están utilizando, el directorio MQ client bin, están incluídos en la variable
de entorno PATH de tal forma que Apache y PHP puedan encontrar las
.DLLs/bibliotecas necesarias.
&reftitle.install;
&pecl.info;
&url.pecl.package;sam.
El soporte de la framework SAM y MQTT puede ser construído y utilizado sin ningún otro requisito previo.
El soporte para otros protocolos a parte de MQTT se proporciona en un conjunto de librerías y un código
cliente denominado XMS.
Si únicamente se desea utilizar el soporte interno MQTT entonces se puede
configurar SAM como una extensión o simplemente referir a
php_sam.php con una cláusula require o
require_once en su script PHP. En este caso
únicamente es necesario instalar el código sin construir la extensión utilizando el instalador
PEAR:
Pasos de la instalación Linux
La extensión SAM se proporciona como un módulo PECL module, el cual
se puede descargar e instalar en un solo paso como se muestra a continuación:
(Dependiendo de su entorno PHP, probablemente será necesario ser "root"
para hacer esto.)
Asegurar que el módulo es cargado por PHP, añadiendo la siguiente línea
a &php.ini;:
Si se desea utilizar el soporte XMS para acceder a la familia IBM Messaging and Queuing
se debe también activar la extensión SAM XMS.
Si no puede utilizar el instalador PEAR, puede recargar la extensión
y la construcción manualmente:
.tgz
tar -xzf sam-.tgz
cd sam-
phpize
./configure
make
make install #debería ser "root" para ejecutar este paso
]]>
Para trabajar con el código más reciente, necesitará extraerlo de
SVN y construirlo manualmente como en el paso anterior.
Pasos de instalación Windows
Probablemente será necesario construir la extensión SAM para Windows puesto que
sólo hay un rango liminado de ficheros binarios precompilados disponibles en la web de SAM.
La extensión puede construirse utilizando los procedimientos estándares de construcción de las extensiones Windows.
Necesitará las fuentes de PHP para la versión de PHP para la que se quiere construir
la extensión SAM, las cuales se pueden obtener de php.net.
Se debe desempaquetar en un directorio de trabajo cualquiera.
También serán necesarias las librerías y cabeceras utilizadas por las extensiones PHP
disponibles de http://www.php.net/extra/win32build.zip y éstas
deben ser descomprimidas de tal forma que se sitúen en el directorio de trabajo.
Se ha de tener algo parecido a:
Será necesario un compilador como la versión gratuíta de Visual Studio C++
Express de la web de Microsoft. También será necesario el
SDK Microsoft Windows Platform que también puede
descargarse de la web de Microsoft.
Obtener el código de la extensión SAM utilizando PEAR (pecl download sam) o
SVN y copiar los ficheros a un nuevo directorio "sam" bajo el directorio "ext"
en su árbol de código PHP.
Para construir la extensión, abrir una ventana con un entorno de construcción yendo a
Inicio menu->Todos los programas->microsoft platform SDK for windows->
open build environment window->windows 200 build environment->
set windows 2000 build environment (retail)
Esto debe abrir una ventana de comandos con todas las variables de entorno
configuradas para acceder a la plataforma SDK etc. Entonces será necesario definir
las variables de entorno de Visual Studio mediante el comando
vcvars32.bat en la ventana.
Cambiar el directorio a nuestro directorio de trabajo que hemos elegido p.e.
cd c:\php-build. Entonces
asegurar que las herramientas win32build son accesibles añadiéndolas a la
variable de entorno PATH:
Ejecutar el comando buildconf.bat. Esto debe reconstruir el fichero
configure.js.
Ejecutar el comando cscript con las opciones apropiadas. Para construir únicamente la
extensión SAM framework y el soporte MQTT utilizar:
Para construir la framework SAM y el soporte XMS support utilizar:
El parámetro adicional pasado para sam_xms es el path de instalación a las
librerias XMS y el runtime que fue instalado tal y como se describió en el apartado de requisitos previos
al principio de esta página.
Se puede especificar cualquier otro parámetro cscript que sea necesario para
incluir o excluir elementos de la construcción PHP u opciones seleccionadas.
Asumiendo que todo ha ido bien finalmente se debe ejecutar un "make" para la framework SAM!
También si se está utilizando el soporte XMS se debe hacer el "make" de las extensiones sam_xms:
Si se ha utilizado Visual Studio 2005 para construir las DLLs lea, por favor, los pasos siguientes
que se especifican abajo para ejecutar antes de continuar más allá.
Las DLLs creadas (php_sam.dll y opcionalmente
php_sam_xms.dll) pueden copiarse ahora al subdirectorio
apropiado de su configuración PHP . Asegurarse de que el/los módulo/s son cargados por
PHP, añadiendo las siguientes líneas a &php.ini;:
Si se desea utilizar el soporte XMS para acceder a la familia IBM Messaging and Queuing
se debe activar también la extensión SAM XMS.
Pasos adicionales para Visual Studio 2005
Si se construye la extensión SAM extension con el compilador y las herramientas
Microsoft Visual Studio 2005 es necesario realizar otro paso en el proceso de
construcción para asegurar que php_sam.dll puede linkar
con las librerías del runtime C runtime en el momento de ejecución. Este paso incluye
el manifiesto de dependencia en la DLL. Ir al directorio donde
se ha generado php_sam.dll (habitualmente
Release_TS o Debug_TS bajo el directorio fuente de PHP) y ejecutar el
conjuro mágico siguiente:
Si se están utilizando las capacidades XMS será necesario hacer lo mismo con
SAM XMS DLL:
Si se construye la extensión SAM utilizando el compilador y las librerías de
Microsoft Visual Studio 2005 también será necesario asegurar que los componentes del ejecutable
están instalados en el sistema en el cual se desea utilizar
SAM. Esto se puede hacer instalando Visual Studio 2005 o
utilizando el distribuíble gratuíto
paquete de ejecución.
&reftitle.runtime;
Soporte del protocolo y mapeado
La framework SAM puede ser extendida para soportar otros protocolos de mensajería y mecanismos de conexión. Para añadir
el soporte para una nueva librería de protocolo o conexión se debe definir una clase de soporte, ya sea como una extensión C
o como un script PHP, y un script "factory" debe ser creado. La clase de soporte debe implementar todos los
métodos de la clase SAMConnection aunque ésta no debe heredarlos de SAMConnection. El script de factory
debe ser llamado por la framework SAM para crear una instancia de la clase implementada. La manera que SAM elige
que factory llamar está basada en el protocolo especificado como el primer parámetro del método "connect".
Por defecto el soporte interno MQTT será utilizado si una llamada connect especifica un protocolo de SAM_MQTT ("mqtt"), para
cualquier otro protocolo SAM intentará utilizar la extensión de soporte XMS. Para añadir soporte
para protocolos adicionales o para modificar el comportamiento por defecto, las entradas deben añadirse a &php.ini; en la sección [sam]. El
mapeado por defecto es equivalente a las siguientes entradas:
Como se puede ver en estos ejemplos las entradas toman la forma "sam.factory.pppp=xxx" donde pppp es el string con el protocolo
especificado en el método connect y xxx es un sufijo de factory. Nota: SAM define constantes para ese string con el protocolo
como SAM_WMQ=wmq,
SAM_WPM=wpm, SAM_RTT=rtt,
SAM_MQTT=mqtt, etc.
Cuando se identifique el código de soporte a utilizar en un método connect SAM busca el nombre del protocolo en la entradas del fichero &php.ini;
y entonces invoca un script de factory llamado sam_factory_xxx.php. Si no se encuentra la entrada, el soporte será por defecto XMS.
&reftitle.resources;
&no.resource;