Archivo del Autor: Liarjo
invitación: Architect Foum sobre OBA
Aquí les paso la invitación al evento para arquitectos de Software Architec Forum, en el cual expondremos temas relacionados con aplicaciones de negocio que utilizan Office como plataforma.
Espero puedan asistir, expondremos sobre la arquitectura de software asociada y revisaremos dos casos de OBA en Chile hechos por nosotros.
|
Estimados: Queremos invitarlos a participar del primer Architect Forum del 2008, realizarse el próximo día martes 29 de enero de 9:00 a 12:30 hs en las oficinas de Microsoft Chile. En esta oportunidad, abordaremos el Desarrollo de Aplicaciones de Negocios basadas en Office como tema principal del fórum. Las Office Business Applications (OBAs) son soluciones que utilizan como capa de presentación las aplicaciones y herramientas que vienen con Microsoft Office System. El objetivo de este tipo de aplicaciones es combinar la agilidad y productividad de Office con los datos y servicios que exponen las diferentes aplicaciones de negocios de la empresa. Se trata sin lugar a dudas de un tema muy relevante para todos aquellos que trabajan en el desarrollo de soluciones para escenarios corporativos. Para poder inscribirse a este evento tienen que hacer click aquí. Recuerden que los cupos son limitados. Los esperamos! Gracias, Saludos, Wilson. AgendaMartes 29-ene09:00 a 09:30 – Welcome coffee Office Business Applications, ¿por qué y para qué?En esta primera sesión, introduciremos a los presentes en el concepto de Office Business Applications, sus escenarios de uso y a todas las tecnologías, herramientas y productos asociados a este tipo de soluciones. OradoresWilson País y Martín Cabrera, Microsoft Chile Arquitectura de Aplicaciones OBAEn esta sesión, Juan Pablo García y Daniel Montero de DATCO Chile, analizarán detalladamente la arquitectura de este tipo de soluciones. OradoresJuan Pablo García y Daniel Montero de DATCO Chile Soluciones OBA en ChileEn esta sesión, Juan Pablo García y Daniel Montero, compartirán varios casos de estudio de Office Business Applications desarrolladas en Chile. OradoresJuan Pablo García y Daniel Montero de DATCO Chile OpenXML, Panel de DiscusiónEn esta última sesión, varios integrantes de Microsoft Chile, discutirán con los presentes sobre el nuevo estándar OpenXML impulsado por Microsoft, y principalmente sobre la repercusión que esta iniciativa ha tenido en la industria del software a nivel local y mundial. Para informase más detalladamente acerca de este tema les recomendamos que consulten previamente el siguiente site: http://www.openxmlcommunity.org/ OradoresIntegrantes de Microsoft Chile LugarMicrosoft Chile Mariano Sanchez Fontecilla 310, Piso 6 |
Material de Entrenamiento WF
Primer POST del año, como estamos de vacaciones de verano en Chile no he puesto mucha energía en este Blog. Espero retomar esto en Marzo 2008 😉
Aquí hay un dato para las tardes de verano, buena época para estudiar WF.
Una lista del material de entrenamiento en WF, WF TRAINING MATERIAL.
Disfrútenlo.
Feliz Año 2008
Asado fin de año Programa de Influenciadores y MVPs – TechNet y MSDN
En un excelente Asado de fin de año, nos juntamos el equipo de MSDN y Technet.
Este es el grupo con el que damos conferencias técnicas y discutimos siempre acaloradamente tópicos que creo no son del interes del 99% de la humanidad. Algunos ejemplos:
A.- ¿Deben existir los procedimientos almacenados?
B.- ¿Los frameworks de persistencias son realmente usados en aplicaciones del mundo real?
C.- ¿Cuál es el verdadero sentido de las palabras de martin fowler?
d.- etc…
Que el consumo no los consuma
Enterprise .NET Community: WCF Security Learning Guide
La conferencia de SOA que cambió el mundo
Hoy fui a la mejor conferencia de SOA que he ido jamás. En rigor he asistido en Chile y EEU a conferencias de SOA, curso y otras yerbas. Es más yo mismo he dictado varias conferencias de SOA para desarrolladores y arquitectos de la comunidad de Microsoft Local.
Esto ocurrió en la cuarta conferencia anual SEPG Latinoamérica organizada por el ESI. El tema de esta conferencia es Process Improvement: Achiving Competitiveness in the Global IT Market.
Como pueden ver esta conferencia es de mejora de procesos pero en uno de sus track me encontré con esta conferencia “Migración de Sistemas a Ambientes de Arquitecturas Orientadas a Servicios” dictada por Grace Lewis del SEI.
Puntos destacables de esta conferencia que la hacen diferente a las otras que he asistido:
- Una explicación notable de las diferencias entre invocación estática y dinámica de servicios, pasando por la necesidad de generar una ontología en el caso de dinámicas.
- Se presentó el modelo SOA RM del Oasis [1].
- Una explicación notable sobre el confuso concepto Granularidad de Servicios.
- Definición de cuatro pilares fundamentales para el desarrollo de un sistema bajo el estilo SOA: Alineamiento estratégico, SOA Governance, Evaluación tecnológica, Cambio de mentalidad.
- La Necesidad de una adopción ordenada, por fases como propone Roy Shulte [2]
- SOA governance es el conjunto de políticas, reglas y mecanismos de cumplimiento para el desarrollo, utilización y evolución de elementos de un sistema basado en SOA y el para el análisis de su valor para el negocio.
- Governance aplica tanto en tiempo de diseño y ejecución.
- Presentación de T-CHECK[3] cómo método de validación de pruebas de concepto. Experimento con el objetivo de verificar el comportamiento de una tecnología en un contexto específico
- Presentación del método SMART, método que analiza la factibilidad de reutilizar componentes como la base para servicios, Service Migration and Reuse Technique (SMART)[4]
Referencias
[1] Reference Model for Service Oriented Architecture 1.0
[2] Four Pillars of Service-Oriented Architecture
[3] A Process for Context-Based Technology Evaluation
[4] SMART: The Service-Oriented Migration and Reuse Technique
Salud de mi servidor Windows, la salud no es solo para humanos
Nuevamente recibo una pregunta interesante, los clientes son una fuente de inspiración inagotable. Qué pena no tener más tiempo para Bloger con más frecuencia.
Problema
El equipo de desarrollo he desarrollado una nueva aplicación y requiere saber si está aplicación puede o no ser instalada en un servidor que actualmente aloja otras aplicaciones. ¿Cómo saber si será capaz el servidor de soportar esta nueva aplicación?
Posible Solución
El sentido común dice que midiendo los recursos que actualmente usa el servidor se puede determinar la capacidad “ociosa” disponible para que la nueva aplicación se ejecute. Esto es verdad si y solo sí el uso de recursos fuera lineal.
No voy a entrar en la complejidad de lo que es un sistema lineal, pero en términos simples Un sistema lineal es un sistema que obedece las propiedades de escalado (homogeneidad) y de superposición (aditiva), mientras que un sistema no-lineal es cualquier sistema que no obedece al menos una de estas propiedades.
Asumiendo que los recursos se administran de manera lineal podemos declarar que los recursos usados hoy en el servidor al poner la nueva aplicación, no variaran sino que seguirán constante. Esto es la propiedad de superposición de los sistemas lineales. Esto no es verdad en el mundo real, pero es un supuesto que permite un análisis simple para obtener resultados aproximados evitando las complejidades de los sistemas no lineales.
Ahora, después de haber “forzado” la realidad nos queda medir el uso de recursos. Las mediciones más simples y al alcance de todos en la plataforma Windows se hacen utilizando la herramienta Performance Monitor [1].
Dependiendo del aspecto que se quiera observar son los contadores que debemos utilizar. En el artículo Key Performance Monitor Counters [3] explican que contadores utilizar para responder las siguientes preguntas:
- ¿Cuánto es la disponibilidad del servidor?
- ¿Cuán ocupado está el servidor?
- ¿Está funcionando adecuadamente el Hardware?
- ¿Tienes suficiente RAM? [Muy importante]
- ¿El disco es lo suficientemente rápido?
La gracias de este análisis es que no requiere de un entendimiento profundo de lo que el sistema hace, o como está construido (Java, DotNEt, etc..) Pasa a ser una caja negra. Ahora, para los puristas eso es malo porque no te da razones solo describe comportamiento de el sistema como un todo.
Después de medir, se obtiene la capacidad ociosa del servidor de destino. Podemos representar eso como Recursos Disponibles (Rd).
Los recursos que la nueva aplicación utiliza deben ser medidos de la misma manera. Para medir estos recursos debemos en el ambiente de Test “cargar la aplicación” para poder medir así los recursos que utiliza. Representaremos eso como Recursos Nueva Aplicación (Rna).
Entonces, después de “forzar la realidad” podemos decir que:
|
Solo en el primer caso, esta prueba simplificada nos da una respuesta práctica. En los otros casos hay que utilizar técnicas más sofisticadas, las cuales deben ser realizadas por gente con más experticia que un desarrollador de software como yo 🙂
Un ejemplo del nivel de complejidad de las medidas para los casos no resueltos con este método pragmático se puede ver en este POST [4] específico para medir desempeño de Web Services construidos en ASPNET.
Referencias
2.- Sistemas Lineales.
ASPNET Forms authentication ¿Cómo compartir datos cifrados entre aplicaciones?
Escenario
Para un cliente de la industria Bancaria implementamos autentificación utilizando formularios (Forms authentication) de ASPNET. Este formulario es único para todas las aplicaciones.
En el contexto de ese proyecto y buscando que sea lo más seguro posible utilizamos las opciones de cifrado de toda la información que se almacena en las cookies. Para ello utilizamos la opción <forms protection="All">.
Ahora, como el formulario es único para todas las aplicaciones, tuvimos que agregar el atributo <forms EnableCrossAppRedirects ="true"> para que así los clientes una vez autentificados regresaran a la aplicación que querían utilizar.
Solución
Para que esto funcione, ya que el formulario cifra los datos, es necesario que las aplicaciones y el formulario de autentificación compartan las llaves de cifrado. Esto nos obliga a generar y declarar explícitamente las llaves a utilizar. Esto se hace de la siguiente forma.
|
<machineKey validationKey="C50B3C89CB21F4F142…..5C07F6C36DB51F17C529AD3CABE" decryptionKey="8A9BE8FD67AF697…………………AF2B72F" validation="SHA1" /> |
Tabla1
Este TAG se debe agregar en el archivo de configuración tanto en el formulario de autentificación como en las aplicaciones que deben leer las cookies que generó el formulario.
Un problema común es cómo generar estas llaves. Como generar estas llaves programáticamente pueden verlo en este ejemplo [2] y desarrollar su generador o utilizar este [3] Free directo del WEB.
Enjoy!
Referencias
[1] Cómo: Proteger la autenticación de formularios en ASP.NET 2.0, http://www.microsoft.com/spanish/msdn/articulos/archivo/201205/voices/paght000012.mspx
[2] ASP.NET machineKey Generator, http://www.codeproject.com/aspnet/machineKey.asp
[3] ASP.NET machineKey Generator Software, http://www.developmentnow.com/articles/machinekey_generator.aspx
