domingo, 28 de febrero de 2016

Creación de un Worker Role de Azure conectado con Dynamics CRM Online

Hola, hoy voy a cambiar un poco la línea de mis últimos “posts”, para empezar a meterme un poco mas en el mundo de Azure.
Como todos saben, Azure es una de las áreas de mayor inversión por parte de Microsoft y semanalmente tenemos noticias de nuevas funcionalidades en el Cloud.
Hoy, quiero hablar de lo que se llaman “Worker Role” de Azure.
Para la descripción de los Worker Roles, cito la siguiente información:
<inicio de la cita>
La arquitectura de un servicio alojado en Windows Azure se basa en componentes auto-contenidos desarrollados típicamente con código .NET. Estos componentes son conocidos en Windows Azure como roles.
El siguiente diagrama explica su arquitectura:

Existen dos tipos de roles en Windows Azure:
  • Web rol: Un ‘web rol’ es una aplicación basada en web accesible mediante HTTP o HTTPS. Un web rol es alojado en un entorno de ejecución que soporta un subconjunto bastante amplio de ASP.NET y Windows Comunication Foundation.
  • Worker rol: Un ‘worker role’ es un proceso que corre en segundo plano. Sería el equivalente a un servicio de Windows en la plaforma Windows Azure. Un worker rol se puede comunicar con los servicios de almacenamiento y de colas de Windows Azure, incluso puede comunicarse directamente con otros roles.
(fuente de esta descripción: http://www.estoyenlanube.com/recursos/windows-azure/arquitectura-de-una-aplicacion-windows-azure/)
<fin de la cita>
En este caso, lo que voy a hacer, es crear un “Worker Role”, enfocado en la realización de tareas contra un Dynamics CRM Online, en este caso, la creación de una Cuenta, cada 10 segundos. Es algo simple, pero que puede enseñar fácilmente como funciona.
Los pasos a seguir para el desarrollo de este servicio en la nube son los siguientes:
Creación del proyecto “Servicio de nube Azure”:
SNAGHTML29446e52
Seleccionamos el tipo de Worker Role:
SNAGHTML29452aad
En el proyecto de tipo worker role (que es una dll), primero añadimos las librearías de la SDK de CRM que vamos a utilizar y luego desarrollamos dentro del método “RunAsync” la lógica de negocio que queremos que se ejecute. En este caso, nuestro código se conecta con un CRM Online, y crea una cuenta, luego espera 10 segundos, y se volverá a ejecutar, igual que como funciona un servicio de Windows.
SNAGHTML2946fde7
Una vez desarrollado, podemos depurarlo en local, o podemos publicarlo. Para publicar el servicio en Azure, hacemos click derecho en el proyecto de Cloud Service y le damos a publicar:
SNAGHTML294a1d95
Nos pedirá autenticarnos con nuestro usuario de Azure:
SNAGHTML294a85e4
Definimos una serie de parámetros en el segundo paso:
SNAGHTML294aef5c
y confirmamos y todo se despliega “mágicamente” en la nube:
SNAGHTML294b2939
En mi CRM Online, ya puedo ver que se empiezan a crear nuevas cuentas:
SNAGHTML294c8474
Dentro de mis servicios en la nube, además puedo ver como va de rendimiento, y consultar su uso mediante muchas métricas de CPU, red, disco, etc.:
SNAGHTML294ea223
Excelente! he tardado solo 5 minutos y ya he publicado un servicio en mi cuenta de Azure, que se ejecuta constantemente allí, de forma igual a la que funciona un servicio de Windows.
Este tipo de servicios, pueden ser muy útiles en implantaciones de CRM Online, para ejecutar procesos constantes por ejemplo de sincronización de información, o de comunicaciones.
Espero les haya gustado, y les pueda dar ideas para nuevas implementaciones en la nube Winking smile
un saludo
@demian_rasko

domingo, 21 de febrero de 2016

Añadiendo y quitando roles a usuarios y equipos (Workflow Tools)

Buenas, pasados unos días algo dificiles, vuelvo a mi blog.
Esta vez, he añadido 4 nuevas acciones a mis herramientas de Workflow. Las herramientas permiten:
  • Añadir Roles de seguridad a Usuarios
  • Añadir Roles de seguridad a Equipos
  • Quitar Roles de seguridad a Usuarios
  • Quitar Roles de seguridad a Equipos
Mi componente cada día crece mas, y ya tiene 21 funcionalidades, y sigue creciendo mes a mes.
Mediante estas nuevas funcionalidades, podemos “jugar” con los roles de los usuarios y de los equipos de forma dinámica y ágil, promoviendo que determinados procesos de negocio definidos en Dynamics CRM, tengan consecuencias en la asignación de los roles de seguridad.
La utilización es muy muy simple, y aqui os dejo ejemplo de usuarios y equipos:
SNAGHTML7cf60d
SNAGHTML7d1ca0
He pasado pruebas con diferentes usuarios y equipos, incluso con diferentes unidades de negocio. Solo un tema importante a tener en cuenta, es que al seleccionar el rol de seguridad, solamente se puede seleccionar el rol de seguridad de la unidade de negocio ráiz (la padre de todo).
Espero les guste!!
abrazo!
@demian_rasko