sábado, octubre 13, 2012

Recursos para Examen de Biztalk 70-595

BizTalk Server 2010 Logo

Recientemente tome el examen 70-595 (Developing Business Process and Integration Solutions by Using Microsoft BizTalk Server 2010) a continuación les detallo algunos recursos que les pueden ser de utilidad para el examen:

Sitio de desarrollo para Biztalk de MSDN. Acá podrán encontrar artículos, videos y documentación.

http://msdn.microsoft.com/en-us/biztalk/aa937640

Documentación de Biztalk. Incluye las guías para la instalación.

http://www.microsoft.com/en-us/download/details.aspx?id=11503

Biztalk 2010 Training Kit. Acá podrán ver lo nuevo en Biztalk 2010, especialmente útil para los que han trabajado con versiones anteriores del producto.

http://www.microsoft.com/en-us/download/details.aspx?id=17956

Biztalk Server Developer Edition. Esta versión es gratuita y pueden bajarla del siguiente enlace.

http://www.microsoft.com/en-us/download/details.aspx?id=24433

Libro: Microsoft Biztalk Server 2010 70-595 Certification Guide. Este contiene una revisión de todos los puntos que se abarcan en el examen. Muy recomendado.

http://www.packtpub.com/mcts-microsoft-biztalk-server-2010-certification-guide/book

http://www.amazon.com/MCTS-Microsoft-BizTalk-Server-Certification/dp/1849684928

Espero les sea de utilidad.

miércoles, octubre 10, 2012

Introducción a Tecnologías Microsoft para Sistemas Distribuidos y SOA Parte 1

 

Centralized-Decentralized-And-Distributed-System

En nuestras empresas es muy común tener una gran diversidad de sistemas los cuales se necesita conectar de alguna manera. Por ejemplo, es común hacer la inversión de un ERP, pero aun es necesario conectarlo con otros sistemas. Para eso podemos usar varios patrones de integración,  herramientas y arquitecturas como SOA y Service Bus.

Pero antes de hablar de patrones y arquitecturas seria útil conocer que tecnologías existen en la plataforma Microsoft que nos pueden ayudar en la integración de dichos sistemas, por lo que menciono algunas acá y espero mas adelante poder hablar un poco mas de cada una de ellas.

Windows Comunication Foundation (WCF) :

Fue introducido en el Framework 3.0. El objetivo fundamental era introducir un Framework que permitiera la construcción de aplicaciones distribuidas que unificara varias tecnologías, como: Web Services, MSMQ, Remoting y que fuera consistente con con una plataforma de comunicación orientada a servicios (SOA).

Esta plataforma abstrae los detalles de la comunicación (incluyendo el transporte, codificación, encripción y autenticación) de la lógica de implementación. Gracias a esta abstracción se puede modificar el comportamiento de un servicio a través de los cambios en un archivo de configuración, sin impactar la lógica existente o compilar código.

La construcción de Servicios Web en nuestros proyectos debería ser sustituida con la adopción de WCF de ahora en adelante ya que este controla la implementación de WS-*, transacciones distribuidas, seguridad y serialización en una forma manejable.

Los aspectos fundamentales de configuración de WCF se basan en lo que se denomina “El ABC de WCF”.

Address: Cuando un servicio WCF esta ejecutándose esta es la dirección destino donde se escucha para recibir peticiones. Esta locación es creada y monitoreada por el proceso hospedador que esta ejecutando el servicio de WCF. Típicamente este es IIS o un servicio Windows personalizado.

Binding: Representa como el servicio se comunica con los sistemas externos en términos de transporte, seguridad, protocolo y otras opciones. Dentro de los bindings se definen behaviors que gobiernan lo que sucede cuando la información es recibida. Esto puede involucrar como se serializa la información, como se encripta/desencripta esta, o realizar cualquier otra lógica necesaria cuando se recibe la información.

Contract: Este delimita el patrón de intercambio y específicamente que información va a intercambiar el servicio. Este lista las operaciones disponibles del servicio y el tipo de dato.

Usos Típicos:

Es el Framework de implementación a elegir para escenarios basados en servicios distribuidos (SOA) . Las soluciones basadas en WCF ofrecen flexibilidad completa en los patrones de comunicación usados en todos los servicios dado su enfoque basado en archivos de configuración. Este nos permite crear la misma implementación del servicio en diferentes escenarios como una aplicación cliente sin inscripción, dentro de la red con inscripción, sobre internet totalmente seguro, sin cambiar el código del servicio. Este es drásticamente diferente a los servicios ASMX tradiciones que dependen bastante de IIS o de una aplicación escrita para Remoting. Mientras que los servicios WCF se hospedan comúnmente dentro de IIS, esto no es un requerimiento.

Workflow Foundation (WF)

WF fue introducido al mismo tiempo que WCF, fue diseñado para permitir de una forma fácil la generación de aplicaciones basadas en Workflows dentro de Windows. Los Workflows son típicamente definidos por un flujo de tareas ejecutadas en forma secuencial. WF soporta el modelado de otros tipos de Workflows mas complicados como State Machine (antes de .Net 4.0) y Flowchart (.Net 4.0) . Los Workflows State Machine contienen un flujo de control basado en eventos, basándose en el estado del flujo permite mover el bloque de ejecución a otro y de vuelta nuevamente. El Workflow Flow Chart es usado para definir un flujo de proceso estático, no secuencial.

Anteriormente WF carecía de un entorno de hospedaje robusto y características impresionantes out-of-the-box, pero mejoro con la liberación del Framework 3.5 y 3.5 SP1 agregando nuevas características como Workflow Services que permiten exponer los Workflows como servicios WCF, correlación básica y persistencia. Pero aun faltaban características que permitieran tener un entorno de hospedaje escalable. Estas dudas acerca de la ventaja de utilizar WF se disiparon con la liberación del framework 4.0. y los cambios hechos al Windows Server que agrego mejoras al Windows Application Role para permitir el hospedaje escalable de WCF y WF.

Ventajas:

Resolución de problemas Designer-based: El diseñador dentro de Visual Studio provee una plataforma común para el desarrollo de Workflows, lo que permite que cualquiera que conozca WF pueda leer y entender cualquier proceso de Worfklow, como el modelo es grafico la curva de aprendizaje es mas fácil según se van haciendo tareas mas complejas.

Mecanismo consistente para la resolución de problemas: Una vez que un Workflow especifico o una custom activity es escrita, puede ser reutilizada si la implementación es la misma. Lo que diferencia esto de una solución personalizada es que el desarrollador no necesita saber mucho acerca de la solución para entender su uso en el Workflow ya que es un modelo UI-based.

Apoyo en el Framework: Usando las activities proporcionadas se minimiza la cantidad de código personalizado, reduce el tiempo de desarrollo y pruebas.

Workflow Services: Los workflows pueden ser expuestos como servicios WCF. Esto combina el poder y flexibilidad de WCF con las características de WF.

Usos Típicos:

WF provee los fundamentos para crear procesos basados en Workflows usando un esquema model-driven a través de una rica experiencia del diseñador visual incluido en Visual Studio. Los procesos de los Workflows usualmente son procesos de duración larga que interactúan con diferentes sistemas internos y externos y algunas veces requieren la intervención de humanos para aprobar o rechazar pasos específicos en el proceso. Estos procesos se pueden crear con WF y hospedar en una aplicación .Net personalizada, Sharepoint o en una aplicación de consola simple. Esto abstrae la lógica principal del Workflow de la aplicación host. Un Workflow es una base o fundamento, otras aplicaciones pueden ser construidas sobre este reutilizando la funcionalidad este provee. Nuevas características agregadas al Windows Server permiten el hospedaje robusto de servicios de WF conocido como AppFabric.

un buen recurso para saber mas acerca de WF es este whitepaper:

http://www.davidchappell.com/TheWorkflowWay--Chappell.pdf

En las siguiente entregas hablaremos acerca de

Windows AppFabric, SSIS , SSB, Biztalk Server y Azure

Les dejo algunos recursos sobre SOA:

http://www.servicetechbooks.com

http://www.soaglossary.com

http://www.soaschool.com

http://www.servicetechmag.com

http://www.soapatterns.org

Hasta la próxima.

domingo, octubre 07, 2012

Evento Lanzamiento Visual Studio 2012










Les dejo algunas fotos del evento del Lanzamiento de Visual Studio 2012 en la ciudad de Guatemala. Fue agotador estar un poco mas de 5 horas, pero como siempre es un placer poder compartir con la comunidad técnica.





Les dejo los enlaces para poder descargar la presentación y el código de las demos.

Presentación

Demos

Saludos.


domingo, septiembre 30, 2012

Biztalk Best Practices Analyzer

image

Al momento de monitorear nuestra infraestructura de TI es importante seguir las practicas recomendadas por los equipos de desarrollo de los productos. Existen muchas guías en internet, pero a veces es difícil poder consolidar todos los recursos en una forma fácil.

En el caso de Biztalk Server tenemos una herramienta muy útil que revisa nuestra instalación contra las mejores practicas y nos indica que cosas debemos revisar, como corregirlas y en donde podemos encontrar mas información. La herramienta se llama Microsoft Best Practices Analyzer y funciona para las versiones 2006, 2006R2, 2009 y 2010 de Biztalk, esta nos muestra los temas agrupándolos por el nivel de severidad como críticos e informativos.

Los cambios que recomienda la herramienta se deben hacer manualmente, (se pueden automatizar haciendo nuestros propios scripts Sonrisa) , como siempre se recomienda hacer los cambios primero en un ambiente de pruebas y evaluar los resultados y posteriormente hacer los cambios en el ambiente de producción.

image

image

También hay versiones para otros productos de Microsoft como: SQL Server 2005, SQL Server 2008, Exchange, Sharepoint 2007.

Espero les sea de utilidad.

martes, septiembre 18, 2012

Evento Comunidad .Net Guatemala

visual-studio-2012-logo

El día de mañana tendré el honor de participar en el evento organizado por la comunidad .Net de Guatemala. Mi charla será acerca del desarrollo para Windows 8.

Información del evento:

DESARROLLA CON VS2012

Lugar: Universidad Galileo (UNIVERSIDAD GALILEO 7A. AVENIDA, CALLE DR. EDUARDO SUGER COFIÑO, ZONA 10)  Salon 401
 
Horario:  14:00 hrs a 20:00 hrs
 
Costo: Gratuito (Habrá tarifa especial de Parqueo)
 
Habrá Sorpresas !!!!!!!
 
Agenda:
Keynote: Modern Application Development
Web and Cloud Development
Windows 8 Application Development
Developing for Sharepoint 2010 with Visual Studio 2012

Se pueden registran en el siguiente enlace

http://www.eventbrite.com/event/4316504782

Los esperamos !!!

martes, julio 24, 2012

Plantilla de Visual Studio para proyectos de Biztalk

 

image

Recientemente he estado leyendo un libro muy recomendable - Biztalk Server 2010 Patterns, acá muestran varios consejos y uno de ellos es la utilización de una plantilla para facilitarnos la creación de los proyectos para Biztalk. Esta crea un solución con un grupo de proyectos estructurados según las mejores practicas. Les dejo el enlace para su descarga  Descargar Plantilla.

También esta el código fuente por si le sirve a alguien para crear su propia plantilla para lo que necesite.

Saludos.

lunes, julio 09, 2012

SQL Server - Max Degree of Parallelism y Biztalk

image

Cuando se instala Biztalk, el nivel de Paralelismo de la instancia de SQL Server que hospeda la base de datos BiztalkMsgBoxDB es cambiado. Esto ocurre si en la instancia de SQL Server se detecta que hay múltiples procesadores.

Este valor es cambiado a 1, lo cual afecta únicamente el numero de procesadores utilizados por una consulta T-SQL en particular al mismo tiempo. Si el valor de configuración es cambiado a 1 el optimizador de SQL Server no creara planes de ejecución que permitan utilizar múltiples procesadores a la vez.

Esto es manejado de esta forma ya que las consultas a la base de datos de Biztalk son relativamente pequeñas y se ejecutan rápido. Si se cambia la configuración de Paralelismo para que utilice mas de un procesador, esto puede tener consecuencias negativas en el rendimiento de Biztalk. Por lo mismo es recomendado que no se comparta el servidor con otras bases de datos o que se separen las instancias de la base de datos BiztalkMsgBox y las demás Bases de Datos.
Se puede ver la configuración de Paralelismo configurada para la instancia con la siguiente instrucción T-SQL

USE master 

sp_configure 'max degree of parallelism'

y cambiar la configuración con la siguiente instrucción T-SQL
USE master 

sp_configure 'max degree of parallelism', '1' 
reconfigure with override

También se puede hacer desde el SQL Server Management Studio, haciendo click derecho sobre el Servidor, seleccionar Propiedades, hacer click en Advanced y cambiar el valor de Max Degree of Parallelism.
Hasta la próxima.

sábado, julio 07, 2012

Optimizando la cantidad de Hosts en Biztalk

 

image

Una recomendación común a la hora mejorar el desempeño de Biztalk es separar los Hosts por función. Esto permite poder asignar los parámetros de rendimiento por separado, así como, poder detener/iniciar las Instancias de Host en forma independiente,  manejar los recursos de mejor forma y poder distribuir a través de varias Instancias de Host la carga de los componentes de la aplicación.

Aunque no existe una formula que funcione para todos los casos, puede ser útil seguir esta guía, creando los siguientes Hosts:

ReceiveHost, SendHost, OrchestationHost,  TrackingHost, IsolatedHost

1. Agregar cada Host desde la consola de Biztalk

image

2. Especificar el Nombre, Tipo y Grupo de Windows para el Host. En el caso de estar trabajando con Adapters que necesitan operar en modo de 32 Bits puede ser útil crear otros dos Hosts de Entrada y Salida de 32 bits específicamente, seleccionando la opción 32-bit only en los parámetros generales del Host.

image

3. Al momento de crear el HostTracking se debe seleccionar la opción Allow Host Tracking en los parámetros generales del Host. Solo debe haber un host marcado con esta opción, se debe deshabilitar la opción en el host configurado por default por Biztalk. En el caso de haber mas de una Base de Datos MessageBox, puede haber un HostTracking por cada MessageBox.

image

4. Se debe proceder a crear las Instancias de Host, para cada uno de los Hosts creados (se puede distribuir la cantidad de Hosts entre el grupo de servidores de Biztalk para balancear la carga)

image

image

5. Establecer las propiedades de la Instancia de Hosts a través del botón Configure, se deben ingresar las credenciales para la levantar la Instancia de Host (se debe tener cuidado al momento de configurar Adapters como el tipo Archivo, asignando una cuenta que tenga permisos para leer/grabar en la carpeta que se use para manejar los archivos)

image

6. Por ultimo se deben modificar los Handlers para cada Tipo de Adapter, para que utilicen el Host Correspondiente

image

image

Espero les sea de utilidad.

Hasta la próxima.

domingo, marzo 18, 2012

Evento: Virtualización y Nube Privada


El 8 de Marzo participé en un Mini Camp organizado por Microsoft e INTECAP y también contó con el apoyo de las comunidades de Devs y IT Pro en la ciudad de Guatemala.

Se trató el tema de Virtualización y un poco sobre la nube privada, también se vió parte de System Center 2012. La virtualización de los recursos de IT es una tendencia por lo que creo es un tema que se debe tener muy presente de aquí en adelante. Les dejo imágenes del evento y la dirección de la grabación de las charlas y las direcciones de las comunidades Dev y IT Pro.

Saludos.

jueves, febrero 16, 2012

Primera reunion de la Comunidad .Net Guatemala del 2012

El pasado 1 de Febrero nos reunimos con un grupo de gente de la Comunidad .Net de Guatemala, para hablar entre otras cosas, de algunos temas interesantes que serán la tendencia en los próximo años como por ejemplo:


  • Cloud Computing
  • NoSQL
  • HTML5
  • Desarrollo para dispositivos móviles
  • Programación Paralela
  • Programación Funcional
Espero mas adelante escribir un poco sobre algunos de estos temas :)

Saludos.







martes, enero 24, 2012

Como limpiar la base de datos de mensajería de Biztalk (BizTalkMsgDb)

 

BiztalkLogo

El rendimiento de Biztalk se puede ver seriamente afectado si la base de datos de mensajeria (BizTalkMsgDb) es demasiado grande. La recomendación general es que se mantenga por debajo de 5Gb.

Si la base de datos ha crecido mucho y el servidor no responde incluso con una carga baja de mensajes, posiblemente sea neceserio limpiar dicha base de datos, también podría ser útil en un ambiente de desarrollo. Este es el procedimiento a seguir (se debe tomar en consideración que no se recomienda hacer esto en producción por parte de Microsoft)

- Detener todas las host instances

- Reiniciar el IIS ejecutando el comando IISRESET si se estan ejecutando isolated host instances (HTTP, SOAP, WCF)

- Ejecutar el procedimiento almacenado bts_CleanupMsgBox en la base de datos de mensajeria (si el procedimiento almacenado no existe, se puede crear utilizando el script msgbox_cleanup_logic.sql ubicado en <Directorio de Instalacion de Biztalk>\Schema\)

- Ejecutar el procedimiento almacenado bts_PurgeSuscriptions en la base de datos de mensajeria (si el procedimiento almacenado no existe, se puede crear copiando la parte especifica del script msgboxlogic.sql ubicado en <Directorio de instalacion de Biztalk>\Schema\)

Esto no reduce el espacio sobre el disco, para liberar el espacio será necesario compactar la base de datos, esto se puede hacer con el comando DBCC SHRINKDATABASE (BIzTalkMsgDb).

Otro comando útil para truncar el archivo de log es el siguiente BACKUP LOG BizTalkMsgDb WITH TRUNCATE_ONLY.

Pueden ver el enlace de msdn que habla sobre esta tarea aquí http://msdn.microsoft.com/en-us/library/bb727781.aspx

 

Saludos.

 

lunes, enero 16, 2012

Generando Esquemas para documentos XML en Biztalk 2010

Biztalk permite comunicar sistemas a través de distintos formatos de archivo y protocolos, como por ejemplo XML  (usado extensivamente en forma interna). A través de los componentes de Biztalk que se integran con Visual Studio podemos generar el esquema a partir de un archivo existente de la siguiente forma.

En el Visual Studio Solution Explorer se hace click-derecho sobre el proyecto y se selecciona la opción Add -> Generated Items

Screen Shot 2012 01 11 at 6 53 51 PM

En dialogo que se muestra a continuación seleccionamos la opción Generate Schemas    Generated Schema Files

Screen Shot 2012 01 11 at 6 54 07 PM

El siguiente dialogo que aparece permite seleccionar el archivo de entrada y su tipo, para el ejemplo seleccionamos el tipo de documento Well-Formed XML e ingresamos la ruta de algún documento XML

Screen Shot 2012 01 11 at 6 53 31 PM

La primera vez que se ejecuta el asistente, se muestra un mensaje indicando que el componente no esta instalado, este mensaje muestra la ruta donde se encuentra el script (.vbs) que se debe ejecutar para registrar el componente antes de ejecutar el asistente nuevamente.

Screen Shot 2012 01 11 at 6 54 32 PM

Y de esta forma se crea el esquema a partir del archivo XML.

 

Hasta la próxima.