Archivos Mensuales: diciembre 2008

Santos la pelicula

¿Es está una gran Película? No lo sé, pero voy a averiguarlo 🙂

Santos 

Anuncios

Reporting Services, técnicas de alto desempeño

Escenario

Estamos trabajando en un proyecto de plataforma de reportes basada en SSRS [2] el cual tendrá una gran cantidad de usuarios por lo que debemos tomar medidas para asegurar buenos tiempos de respuestas con la infraestructura que tenemos. La idea es evitar tener que hacer Render de los reportes cada vez que los usuarios demandan los distintos informes.

En este Post voy a exponer opciones de mitigación de problemas de desempeño en SSRS en escenarios de alto desempeño. Mi fuente de información para este post es el libro de potente libro de Rodney Landrum y Walter Voytek [1]

Cuando se propone una solución de informes basada en un servidor de reportes versus la construcción programática ad hoc de reportes se busca el obtener diferentes beneficios tales como reutilización, control de acceso consistente, desempeño, etc.

En el aspecto de desempeño hay que entender que en una solución de informes de negocio, no todos los informes tienen una variabilidad de los datos tal que sea necesario construirlo cada vez que un usuario lo requiere. En este tipo de informes es donde se puede aplicar técnicas de mitigación para cuidar el desempeño de la solución de informes.

Opciones de Mitigación

Para los informes que tienen datos que no tienen una taza de cambios muy alta podemos aplicar las siguientes técnicas de mitigación de problemas de performance.

  1. Ejecución agendada de Reportes
  2. Servicio de subscripción de reportes
  3. Instantáneas (snapshots)
  4. Caching de Contenido

Ejecución Agendada de Reportes

La idea es programar la ejecución de reportes en momentos predeterminados. Es el servidor quien ejecuta la consulta y genera el informe sin necesidad de intervención del usuario. Estos informes pueden ser almacenados en el servido y así mantener una perspectiva histórica de los datos.

En la siguiente figura se muestra la página de configuración de los reportes agendados.

Ahora, como el reporte se ejecuta por el servicio (usando SQL Server Agent[3]) sin intervención de humanos , los parámetros del informe deben contener valores por defecto o soportar nulos.

El beneficio de usar reportes agendados es que cuando un usuario carga el informe, ve una “foto” que está ya calculado y formateado por lo que la respuesta es “instantánea”.

 

Instantáneas (SnapShots)

Esta alternativa consiste en almacenar una foto estática del informe. Existen dos tipos de SnapShots:

  1. Los que generan una foto del informe en un momento determinado
  2. Los que generan fotos históricas del informe en diferentes momentos

Los beneficios de performance de utilizar está técnica son que el reporte ya está pre procesado y que no necesita hacer consultas a la base de datos. La siguiente imagen muestra la configuración del SnapShots.

Caching de Contenido

Está técnica es utilizada cuando los diferentes usuarios ven informes con datos que dependen de parámetros que ellos ingresan. En este caso, el contenido agendado no aplica porque genere el mismo resultado para todos los usuarios. El manejó de Cache de SSRS permite mantener copias de los reportes para cada informe las cuales se generan la primera vez que el cliente ve el informe. Las subsecuentes veces que se pide el informe y si ciertas condiciones coinciden el informe no se vuelve a generar sino que se usa la copia del Cache.

Las condiciones en la cuales un usuario recibirá un informe desde el Cache son:

  1. EL usuario subsecuente accede al informe antes que el tiempo de expiración de la copia del Cache se cumpla. Pasado ese tiempo el informe vuelve a calcularse y generar una nueva copia en el Cache.
  2. Si los parámetros del informe que el usuario está accediendo cambian, este reporte se calcula y genera una nueva copia en el Cache.
  3. El informe de la fuente de datos no está configurado para la autenticación de Windows o pregunte al usuario las credenciales de inicio de sesión

Esta técnica es muy buena para proteger el desempeño de reportes que consumen muchos recursos al hacer el Render. El Trade-Off es que no se pueden usar en informes que tienen datos sensibles en el tiempo, por ejemplo valores de la bolsa en horario de transacciones.Otro tema importante es preocuparse tanto en Cache como SnapShots es el uso de disco. La siguiente imagen es la configuración del Cache.

Servicio de Subscripción de Reportes

A diferencia de las otras tres técnicas presentadas en este Post, este servicio permite calcular los informes y enviarlo a los usuarios subscritos. Hacer esto evita que los usuarios vayan el servidor de informes y pedir su informe sino que el servicio se los envía. Las opciones de envío son las siguientes:

  1. Poner una copia en un lugar específico
  2. Envió por mail
  3. En algún sitio compartido en la red
  4. Incluso directo a la impresora

Usar está técnica tiene el beneficio de poder producir los reportes fuera de horarios punta ayudando así a evitar posibles denegación de servicios por sobrecarga de trabajo. Los informes pueden ser generados en diferentes formatos siendo el formato por defecto el Web Archive, pero podría ser otro como una imagen TIF o un PDF.

Podemos trabajar con dos tipos de subscripciones:

Standard Subscriptions: Es una configuración estática para uno o mas usuarios. Los parametros son los mismos para todos.

Data-driven subscriptions: La lista de suscripción es dinámica y puede ser resultado de una consulta. Esta es la forma más potente de trabajo, pero solo está disponible en la versión Enterprise de SQL.

Referencias

[1] Pro SQL Server 2005 Reporting Services

[2] SSRS

[3] SQL Server Agent

Los herederos

Carlos Peña escribió el domingo 28 en el cuerpo de reportajes del Perjurio, perdón del Mercurio, una columna notable sobre los resultados de la PSU (Prueba de selección Universitaria). La comparto aquí con ustedes.

Los resultados de la PSU dieron ocasión para que, por enésima vez, todos pusieran el grito en el cielo. Las causas de la abismante desigualdad (cuatro de diez estudiantes de escuelas municipalizadas no alcanzaron el mínimo) fueron rápidamente identificadas: el estatuto docente, los profesores, la gestión escolar, la LOCE, la educación municipal, la lenidad administrativa, la propia PSU. Cosas así.Pero ninguno de esos factores es el culpable definitivo.El año 1964, Pierre Bourdieu -uno de esos sociólogos que ya no se dan- publicó, junto a Jean Claude Passeron, un librito que llevaba por título "Los herederos".

A pesar de su apariencia inofensiva, el texto causó polémica. La función principal del sistema escolar, argüía el texto, era la de reproducir las divisiones sociales en vez de contribuir a remediarlas. Allí donde los franceses creían que la escuela era el lugar de la meritocracia, el sitio donde los ideales republicanos encontraban realización, Bourdieu y Passeron, con una amplia prueba empírica, sugerían lo contrario: la escuela eliminaba a los socialmente desfavorecidos y premiaba a los de mejor origen. Las diferencias de rendimiento escolar -concluían los autores- eran diferencias de clase. No muy lejos, y en 1973, Basil Bernstein -un sociólogo de origen judío, graduado en lingüística- investigó por qué a los hijos de la clase trabajadora inglesa les iba consistentemente mal en las pruebas estandarizadas. ¿Acaso estaban menos dotados que las clases medias y altas? No, dijo Berstein, lo que ocurre es que, como consecuencia de la división del trabajo, poseen un código lingüístico más restringido.

Las pruebas estandarizadas -concluía Berstein- reflejaban diferentes posiciones en la estructura social. El año 2004, el informe de la OECD constató en los países europeos severas diferencias de rendimiento entre los centros educativos. ¿A qué se debían? Más de la mitad de esas diferencias, concluía el informe, se explicaban por el entorno socioeconómico. Las investigaciones de Bourdieu, Berstein y la OECD se ven corroboradas por enésima vez en Chile. Los resultados de la última PSU -como antes las pruebas PAA, Simce o PISA- muestran que existe una estrecha relación entre origen socioeconómico y rendimiento.

En otras palabras, el origen social, sobre todo entre nosotros, es más predictivo del rendimiento que el esfuerzo personal. La conclusión es bastante obvia: la escuela y las pruebas estandarizadas expresan diferencias sociales. La brecha entre colegios públicos y privados es en verdad una brecha de clases. ¿Qué lecciones sacar de todo eso? La más evidente de todas es que no siempre es correcto asignar los cupos más selectivos del sistema universitario atendiendo solamente a la PSU. Como la PSU refleja diferencias sociales, echar mano exclusivamente a ella para asignar los lugares más escasos (esos que conferirán los lugares más altos de la escala invisible del prestigio y del poder) equivale simplemente a reproducir las élites actualmente existentes. Se suma a lo anterior que los problemas que hoy experimenta el sistema escolar no se deben a que haya empeorado. El de antes era peor. Lo que ocurre es que ayer la desigualdad social se expresaba como exclusión (para el año 1973, menos del cincuenta por ciento de los jóvenes lograba matricularse en un liceo) y hoy (cuando todos los niños y niñas están en una sala de clases) se expresa en los resultados del aprendizaje. Para curar esa desigualdad se saca poco con apelar a la familia, como suele hacerlo la retórica educacional al uso. Como la familia es una de las principales transmisoras de capital cultural, ella es también una fuente de desigualdad. A veces la familia es, por decirlo así, el problema y no la solución. Los datos que arroja la última PSU, como antes la PAA, nos ayudan, además, a curarnos de la ilusión meritocrática y nos recuerdan los ocultos mecanismos de la distribución del poder y el prestigio. En el promedio, los que resultan más favorecidos en las pruebas (y que en el futuro serán parte de las élites) se han beneficiado de circunstancias que no se deben a su desempeño o su voluntad. En algún sentido los triunfadores de la PSU tienen tanto de qué enorgullecerse como cualquier heredero: no de mucho. En fin, la evidencia disponible ayuda a evitar la ingenuidad entusiasta que por estos días cunde. Hoy día pareciéramos creer que con un poco de buena voluntad, algo de recursos y management los problemas de la educación se disiparán. Esta manera de apreciar el problema olvida que la educación, por su propia índole, tiende a reproducir las posiciones sociales previas y que, por lo mismo, no es el punto de partida de la desigualdad, sino, las más de las veces, su punto de llegada. Nada de eso significa, por supuesto, que debamos cruzarnos de brazos y no hacer nada. Hay que hacerlo, por supuesto. Formar mejor los profesores, evaluar las prácticas educativas, diferenciar recursos. Pero -malas noticias- lo que hay que hacer no se relaciona sólo con la escuela.

Referencia

El Mercurio.com

19 mistakes technical leaders make most often

Me pasaron (Javier) este Post de TechRepublic que está muy bueno para las personas que lideran equipos técnicos. Les comparto los 19 errores comunes que cometemos los lideres de equipos técnicos.

  1. Asumir que el equipo está a su servicio, muy común en nuestro pueblo de patrones de fundo.
  2. Aislarse del equipo
  3. Employing hokey motivation techniques
  4. No proporcionar la dirección técnica y el contexto, error común de los malos manager porque asignan tareas operativas en vez de delegar
  5. El cumplimiento de sus propias necesidades a través del equipo
  6. Centrarse en la contribución individual, esto pasa sobre todo en los equipos inmaduros que necesitan “héroes”
  7. Tratando de ser técnicamente omnisciente, nadie lo sabe todo excepto dios Google 🙂
  8. Falla en delegar eficazmente
  9. No conocer tus propias deficiencias
  10. Fallar al representar los intereses de su equipo
  11. Fallar en anticiparse
  12. Repetir los mismos errores que otras ya cometieron
  13. Usar el proyecto para perseguir sus propios intereses técnicos
  14. No mantener a los técnicos involucrados
  15. Jugar el juego en lugar de centrarse en el objetivo
  16. Evitar el conflicto, ufff esto pasa todo el tiempo, es nuestra cultura!
  17. Poner el proyecto antes que la gente, ojo los proyectos pasan el equipo queda.
  18. Esperar que todos piensen y actúen como él, otro problema que veo en nuestra cultura
  19. Fallar al mostrar compasión

Referencia

19 mistakes technical leaders make most often | View from the Cubicle | TechRepublic.com

Evento Especial “Lo mejor del PDC 2008”

El día de ayer participé en el evento “Lo mejor del PDC2008”. Este es un evento organizado por Microsoft para difundir la información técnica presentada en el evento PDC2008 en Los Ángeles en Noviembre. El PDC es el mejor evento técnico que Microsoft hace a Nivel mundial.

En este evento me tocó participar de dos conferencias. La primera es del proyecto Dublín, que es un proyecto de construir un Applicaction Server para DotNEt. Creo que esto va a ser muy interesante para los desarrolladores porque les da un importante soporte para sus aplicaciones de negocio. Aquí esta la presentación.

La segunda presentación que participé fue sobre C# 4.0. C#, al igual que todos los proyectos comerciales de software, salió en su versión 1.0 “apurado” y era el lenguaje “seguidor” de otro muy famoso. Luego la versión 2.0 incluyo todo lo que debía y alcanzó al otro lenguaje. La versión 3.0 incluyo Linq que dio a los desarrolladores que siguen el paradigma de objetos la libertad de hacer consultas a colecciones de objetos y así “poder” abstraerse del uso de motores relacionales para las tareas de consultas y filtros. Por último la versión 4.0, que no sale todavía, traerá una nueva “innovación”. C# 4.0 podrá manejar tipos dinámicos. En mi opinión de desarrollador, C# brinda la libertad de unir el mundo “fuertemente tipado” con el mundo dinámico. Lo cual es muy potente, todo ese poder es articulado por el DLR que es la pieza clave para esto. Ahora, esta libertad en manos de desarrolladores no preparados será un problema porque le dará la posibilidad de inyectar errores que el compilador no detectará y puestos esos software en producción la traza del error será costosa. La presentación fué la sigueinte.

 

Todos sus comentarios son bienvenididos 🙂

Pocket Guide Series for Application Architecture

El grupo de P&P desarrollo un grupo de guías de arquitectura de bolsillo. Estas guías están basadas en la guía de arquitectura de aplicaciones 2.0 del mismo grupo. Son muy recomendables para las personas que están pensando en el software que se construirá más que en el cómo se programa.

Pocket Guides

  • Agile Architecture Method Pocket Guide
  • Web Architecture Pocket Guide
  • Mobile Architecture Pocket Guide
  • RIA Architecture Pocket Guide
  • Rich Client Architecture Pocket Guide
  • Service Architecture Pocket Guide