Armando Halbinger

Thursday, May 27, 2004

.NET dentro de tu Auto

Microsoft está trabajando sobre Windows Automotive que es una plataforma de software construida sobre Windows CE y el .NET Compact Framework para dispositivos dentro de automóviles. Entre las características del software es que es voice-enabled y conecta otros dispositivos/servicios usando tecnologías de Web Services.

Actualmente se está empezando a probar esta tecnología en algunos modelos de autos de reconocidas marcas como BMW, Citroen, DaimlerChrysler, Fiat, Honda, Volvo, Toyota, entre otros.

¿Quieres ver algunos videos de lo que nos espera en un futuro cercano? entra a esta liga.

Tuesday, May 25, 2004

¿Para qué sirve una Arquitectura de Software?

Cuando planeamos un sistema la mayoría de nosotros tenemos presente que hay que definir la "Arquitectura", pero ¿realmente sabemos el por qué o nos dejamos llevar por la tendencia del momento en el mercado (3-capas, n-capas, SOA, etc)?

Una Arquitectura de Software es un modelo abstracto reusable que define la estructura para construir un sistema. Su definición envuelve decisiones de diseño que se traducen en atributos de calidad como:
-Rendimiento,
-Seguridad,
-Costo de hacer un cambio,
-Confiabilidad y
-Usabilidad

La Arquitectura representa la clave para comprender, organizar y comunicar un sistema, además, permite implantar conceptos como el reuso y facilita la evolución de la solución.

Debido a la complejidad de los sistemas, la forma de documentar una Arquitectura es mediante Vistas, es decir, mediante descripciones simplificadas del sistema desde una perspectiva particular. El modelo más conocido de vistas es el que define RUP (4+1) vistas que comprende:
-Vista del Diseño
-Vista del Proceso
-Vista de la Implementación
-Vista del Deployment
y la vista común que es:
-Vista de Casos de Uso

Durante el desarrollo de una Arquitectura de Software es recomendable considerar los siguientes factores:
-Casos de Uso
-Experiencia del Arquitecto
-Uso de Patrones
-Middleware/Frameworks existentes
-Sistemas (Legacy y otros)
-Estándares y Políticas
-Requerimientos No-Funcionales
-Distribución

Por último ten presente que "una arquitectura correcta lleva al éxito a un sistema. Una arquitectura incorrecta generalmente indica una receta segura al desastre".

¿Quieres conocer más del tema? entra a esta página del SEI (Software Engineering Institute) de CMU (Carnegie Mellon University).

TechEd 2004

Del 23 al 28 de mayo en San Diego se está celebrando el TechEd 2004 que es un evento de tradición en Microsoft orientado a todos los profesionales en tecnología, desde desarrolladores a gerentes de TI, ingenieros de software y arquitectos.

¿Te gustaría conocer algo de lo qué esta pasando?
-Aaron Skonnard escribe un resumen sobre la plática de SO* Prescriptive Guidance donde se expone cómo escoger entre ASMX, WSE2, Remoting, DCOM, ES, MSMQ e Indigo para construir aplicaciones SO. Además, postea las notas más importantes sobre la plática de Don Box y Doug Purdy que también hablan sobre SO (tenets) y las tecnologías alrededor de Indigo.

-Tim Sneath escribe un post sobre Visual Studio Team System, que es un conjunto de herramientas extensible orientado a:
1. reducir la complejidad de las soluciones,
2. facilitar la colaboración entre los miembros del equipo y
3. tropicalizar/extender el Team System con productos de terceros.
Un gran paso para Visual Studio porque se mueve de un ambiente enfocado al desarrollador, a un ambiente enfocado al desarrollo.

¿Quieres saber más? Entra a estas ligas:
-TechEd Bloggers
-Sitio oficial del TechEd

*Service Orientation, aka SOA

Wednesday, May 19, 2004

La historia de los lenguajes de programación

El término "historia" nos remonta a hechos que ocurrieron hace decenas de años y, en muchos casos, siglos. Pero con el surgimiento acelerado de las nuevas tecnologías relacionadas con el cómputo (hardware y software) el significado cambia y ahora "historia" es algo que ocurrió hace 10 ó 15 años para la gente que vive en "lo último" (i.e. Windows 2003) o explorando "lo que sigue" (i.e. Longhorn).

El caso de los lenguajes de programación es muy interesante, resulta que se considera a Fortran como el primer lenguaje de programación y eso fue en 1954. Para los que no lo conocen, es un lenguaje utilizado para cálculos númericos y es muy eficiente. A la fecha hay más de 2500 lenguajes de programación documentados y clasificados (procedurales, imperativos, declarativos, aplicativos, funcionales, lógicos, orientados a objetos, concurrentes, de cuarta generación, queries, intermedios, etc) pero evidentemente, sólo unos cuantos (Fortran, Algol, Lisp, Cobol, Basic, Prolog, C, Pascal, Scheme, Smalltalk, C++, Mathematica, HTML, entre otros) son los que han influenciado el estado actual de los lenguajes que predominan estos días (C#, VB.NET, Java, Php, Perl, entre otros).

Si quieres conocer con más detalle la historia de los lenguajes de programación, puedes descargar este póster de O'Reilly que muestra los 50 lenguajes de programación más importantes dentro de una línea de tiempo, multi-capas y coloreada. La idea original fue de Eric Levenez que mantiene un sitio con el diagrama original. Eric, además, creo diagramas de líneas de tiempo y multi-capas de Windows y de Unix que ilustran cómo han evolucionado y el estado actual de cada una de las tecnologías.

Si te interesa conocer el detalle de los 2500 lenguajes existentes (Nombre, Fecha de Origen, Clasificación, etc) puedes entrar a este link.

TechNet Security Briefings de Microsoft para descargar

Microsoft consolidó todas sus presentaciones powerpoint (TechNet Security Briefings) dentro de esta página:

-Advanced Server and Client Security
-Applied Security Strategies
-Essentials of Application Security
-Essentials of Security
-Implementing Application Security using the .NET Framework
-Implementing Application Security
-Implementing Client Security
-Implementing Network Security
-Implementing Security Patch Management
-Implementing Server Security
-Writing Secure Code - Best Practices
-Writing Secure Code - Threat Defense

Monday, May 17, 2004

¿Cómo implemento SOA? - Shadowfax

Continuando con el post de SOA, la pregunta que surgió es: ¿y cómo se implementa en la vida real? La opción más sencilla y empírica es seguir los pasos para adoptarla (crear Web services simples, crear funciones de negocio específicas a través de distintas aplicaciones, etc.) pero llegamos a un paso dónde entramos en conflictos sobre algunos puntos:
-¿cuáles son las mejores prácticas?
-¿cómo aislo la lógica de negocio del tipo de transporte?
-¿qué tan flexible debería ser mi arquitectura?
-¿cómo organizo los tipos de servicio dentro de mi empresa?
-¿qué patrones de diseño debo utilizar (i.e. Enterprise Integration Patterns)?
-si ya uso algún producto de EAI (i.e. Biztalk), ¿cómo me sirve para implementar SOA?
-etc, etc...

Para resolver de forma transparente estos issues, el equipo de Microsoft Platform Architecture Guidance está desarrollando un proyecto cuyo codename es Shadowfax, que comprende una arquitectura de referencia, una implementación de referencia y documentación. El estado actual del proyecto está en Beta, aunque ya se ha implementado y probado en muchas empresas sigue mejorándose y cubriendo el concepto de SOA en su totalidad.

Para mayor información puedes entrar a su workspace dentro de Gotdotnet. Si quieres tener acceso al código fuente es necesario que apliques como miembro.

Datagrid Girl

El día de ayer le ayudé a Marcie Robillard (aka Datagrid Girl) a que obtuviera una cuenta en Gmail y unas horas más tarde me agradeció en su blog!!!

Para los que no la conozcan, su área de expertise son los datagrids de ASP.NET y si tienes algún problema/duda con este control seguramente llegarás a su página web. Es una MVP de ASP.NET y participa en CodeProject.

Sunday, May 16, 2004

Service Oriented Architecture (SOA)

¿Sabes cuál es el siguiente modelo que revolucionará las arquitecturas corporativas de software?
Se le conoce como SOA (Service Oriented Architecture) y consiste en dividir la funcionalidad del negocio dentro de una empresa en unidades llamadas servicios. Cada servicio se expone a las aplicaciones externas a través de una interfaz y encapsula su propia lógica de negocios y de datos.
Por su naturaleza, SOA se le asocia con las tecnologías de Web services (HTTP, SOAP, WSDL, UDDI), siendo ésta una opción ideal en un ambiente heterogéneo, pero es posible implementarlo con otro tipo de tecnologías.

¿Cómo puedo empezar a implementar SOA en mi organización?
De forma simplificada se pueden definir cuatro niveles de adopción:
1. Web services individuales
Encapsular tareas contenidas dentro de aplicaciones nuevas o existentes, que permite reducir tanto costos de desarrollo como de mantenimiento de las aplicaciones.
2. Integración de funciones del negocio
Consiste en integrar servicios a través de múltiples aplicaciones para lograr un objetivo de negocio.
3. Integración a nivel Corporativo
Permite la integración a través de funciones de negocio de toda la organización siguiendo una arquitectura corporativa
4. Transformación del negocio
A través de SOA, transformar los modelos existentes del negocio a nuevos modelos de negocio

¿Quiéres saber más de este tema? Revisa el siguiente link: Entendiendo SOA

Reuters entra al mundo de RSS

Reuters, el proveedor de noticias e información financiera conocido mundialmente, empezó a usar RSS (Really Simple Syndication) para proporcionar a los lectores otra forma de accesar a sus noticias.

Monday, May 10, 2004

WinHEC 2004 - ¿Te gustaría saber lo que dijo Bill Gates en este evento?

El WinHEC (Windows Hardware Engineering Conference) es un evento donde se muestra el futuro de la plataforma Windows. Este año se realizó en Seattle, WA del 4 al 7 de mayo y lo que quiero compartirles es la velocidad con la que tenemos a disposición lo que pasó en el evento.

1. Microsoft publicó un sitio dedicado a cubrir todo lo relacionado con el evento (Agenda, Qué es, Sesiones, Noticias, Papers, etc) que se ha complementado con el término del evento y el paso de los días
2. El día 5 de mayo ya estaba disponible el transcript del keynote de Jim Allchin (Group Vice President, Platforms) que presentó el 4 de mayo
3. También el 5 de mayo ya estaba disponible el transcript del keynote de Bill Gates que presentó el 4 de mayo, y un par de días después su presentación de Powerpoint

Para mi es sorprendente observar estos cambios que hace algunos años ni siquiera pasaban por nuestra mente. Desde la comodidad de tu casa, mientras escuchas música o ves una película tienes acceso a lo que están comentando los líderes en tecnología sobre lo que nos espera en el futuro y definirá nuestro siguiente trabajo o las profesiones de las siguientes generaciones!!!

Saturday, May 08, 2004

Habilidades para Negociar

Esta semana asistí a un curso sobre habilidades de Negociación, un tema realmente importante para cualquier profesión, incluyendo Sistemas, debido a la indefinición, cambios y complejidad que existe en un proyecto.

Dos puntos llamaron mi atención de todo el material que nos dieron:

1. Planeación. El "secreto" más grande es anticiparse a lo que viene y desarrollar todos los escenarios, posibles preguntas y respuestas, etc. antes de iniciar la negociación.
¿Ya lo sabías? !yo también! lo interesante es que en la vida diaria hacemos una gran cantidad de cosas sin planear. ¿A cuántas reuniones llegas sin saber de que se trata, tener una postura definida y conocer a la audiencia? Otro ejemplo, ¿Cuántas veces escribes código sin dominar los conceptos? ¿Qué es más óptimo y escalable acorde al escenario de negocio?. Al final del día, lo más importante es concientizar que si quieres hacer algo bien: negociar, programar, liderear, vender, etc. hay que planear y analizar antes de...

2. La negociación empieza con el primer NO. Todo lo que haces antes del primer NO es parte del proceso "normal". Lo que motiva a la creatividad y aumenta tu valor es lograr acuerdos que "convengan" a las dos partes en situaciones "difíciles". El punto aquí es ampliar la perspectiva y convertir lo que para el promedio de la gente es una "pérdida" en una "oportunidad". Todo el conjunto de estrategias, metodologías, etc. que revisamos me recordó a un libro que estoy leyendo que está enfocado al área de Ventas, se llama The Closers, Se los recomiendo ampliamente.

Wednesday, May 05, 2004

Las Diez Vulnerabilidades Más Críticas en Aplicaciones Web - 2004

OWASP (Open Web Application Security Project) presenta en este documento las diez vulnerabilidades más comunes en aplicaciones Web: su descripción, ejemplos y referencias, cómo determinar si eres vulnerable y cómo protegerte.

Tuesday, May 04, 2004

Screenshots de Windows Forms 2.0 (Visual Studio .NET 2005)

El equipo de WinForms colocó algunas pantallas que muestran lo nuevo en Windows Forms para Visual Studio 2005 en esta liga. Entre las nuevas características están:
-Nuevos Controles: WebBrowser, SoundPlayer, DataGridView (reemplazo del DataGrid), ToolStrip, etc.
-Mejoras en los Diseñadores
-Mejoras en el Runtime: ClickOnce, Windows XP Visual Support, Layout, etc.