1.12.2013

Namespaces–Windows Service Bus

 

A la hora de trabajar con el Service Bus – tanto en Windows Server como en Windows Azure – vamos a lidiar con varios conceptos que son nuevos desde el punto de vista del bus de servicios, ya que en otros contextos ya es de todos conocidos el término. El primer concepto sin duda será el de los “Namespaces”. Los Namespaces se utilizan en el service bus para hacer todo el trabajo relacionado con direccionamiento, aislamiento y administración. Todas las entidades que se crean lo hacen dentro del alcance de un namespace de un servicio.

Aislamiento

Tal y como se explica en el msdn[1], un bus de servicio en Windows Server puede servir como una plataforma de mensajes para varias aplicaciones. Para poder aislar cada una de estas aplicaciones se utilizan los namespaces, los cuales identifican las aplicaciones dentro del bus de servicios – cada aplicación tiene un namespace único.

Direccionamiento

A nivel de direccionamiento, el bus de servicios utiliza los namespaces para direccionar los mensajes a las entidades correspondientes. Esta dirección – o ruta – inicia con el nombre del namespace del servicio. Además, se permite utilizar nombres específicos de servidores en la ruta. Un ejemplo de una ruta es el que se muestra a continuación:

Endpoint=sb://WIN-A07V80FKRPL/ServiceBusDefaultNamespace;StsEndpoint=https://WIN-A07V80FKRPL:9355/ServiceBusDefaultNamespace;RuntimePort=9354;ManagementPort=9355

Como podemos ver en la dirección anterior, se agrega el nombre del servidor y el namespace del servicio a la dirección en el endpoint.

Administración

A nivel de administración, cuando se crea un namespace se debe indicar cuales usuarios o administradores serán los propietarios del namespace. Los administradores de un namespace puede crear, modificar o eliminar entidades – colas y tópicos {más de esto en los siguientes temas}. Los administradores también pueden definir reglas de autorización para cada una de las entidades del namespace dentro del bus de servicios.

Ejemplo – Crear un Namespace

Para ilustrar el tema, vamos a trabajar directamente en un ejemplo de un namespace en el bus de servicios de Windows. En primera instancia, debemos validar cuales namespaces ya existen dentro del bus, ya que como dijimos anteriormente, los namespaces deben de ser únicos. Para esto, vamos a utilizar Power Shell en la consola creada para el Windows Service Bus.

clip_image002

Una vez en la consola digitamos el comando get-SBNamespace el cual nos va a enumerar todos los namespaces que existen en el bus en el momento de la consulta. En nuestro caso, no existe ninguno, solamente el que se crea por defecto cuando se instala el bus de servicios.

clip_image004

Ahora procedemos a crear nuestro nuevo Namespace, el cual llamaremos Arc3LabsDemo. Para esto, digitamos en Power Shell el siguiente comando:

New-SBNamespace –Name Arc3LabsDemo –ManageUsers Adminstrator

clip_image006

En este caso, estamos creando un namespace que se llama Arc3LabsDemo y estamos agregando al administrador del servidor como propietario del mismo. En la pantalla anterior se puede ver la ejecución del comando y el resultado del mismo.

Ahora que ya tenemos el namespace podemos utilizar Power Shell para ver el namespace con el comando get-SBNamespace, sin embargo, vamos a utilizar una herramienta creada por Paolo Salvatori llamada el Service Bus Explorer la cual nos permite ver de forma visual nuestros namespaces, nuestras entidades y muchas cosas más que iremos abarcando posteriormente. El link de la aplicación es el siguiente à http://code.msdn.microsoft.com/windowsazure/Service-Bus-Explorer-f2abca5a

Una vez descargado, lo ejecutamos y procedemos a conectarnos al namespace correspondiente vía File à Connect. Tenemos varias opciones para esto, pero ya que tenemos creado el namespace, podemos utilizar Power Shell para generar el endpoint del namespace y con este endpoint procedemos vía Service Bus Explorer a visualizar nuestro namespaces y respectivas entidades. Para esto, procedemos a ejecutar el siguiente comando:

clip_image008

Este comando nos va a generar un archivo de configuración con todos los endpoints para todos los namespaces que existen en nuestro bus de servicios. El siguiente archivo nos muestra dos endpoints, uno para el namespace creado por defecto, y otro para el ARc3LabsDemo el cual recién creamos.

clip_image010

Ahora copiamos el endpoint de Arc3LabsDemo y procedemos a pegarlo en el ServiceExplorer tal y como se ve en la siguiente figura.

clip_image011

Como se puede ver en la figura anterior, seleccionamos la opción ServiceBusForWindowsConnectionString y procedemos a pegar la hilera generada en el archivo de configuración. Al darle click al botón Ok, vamos a poder ver todas las entidades que tenemos en nuestro espacio de nombres.

clip_image012

En el siguiente post continuamos trabajando con las colas y los tópicos en el bus de servicios.


[1] http://msdn.microsoft.com/en-us/library/windowsazure/jj193009(v=azure.10).aspx

Etiquetas de Technorati: