Título Integración de Silverlight BluePrint con Sharepoint
Texto A comienzos de este año Microsoft liberalizó Silverlight BluePrint,
un conjunto de ejemplos y recursos sobre el uso de la tecnología
Silverlight en SharePoint. Estos ejemplos, que se pueden
descargar desde la
página http://www.ssblueprints.net/sharepoint/, contienen además
de las propias aplicaciones el código fuente de las mismas,
documentación y videos explicativos.
Aunque son numerosas las páginas que mencionan este paquete
de software y servicios, ninguna explica claramente cómo integrar
dichos ejemplos en nuestra aplicación SharePoint. Viendo esta
necesidad he decidido realizar una sencilla explicación sobre cómo
integrar estos ejemplos y cualquier otra aplicación básica de
Silverlight con SharePoint. Para ello nos centraremos en el caso
más sencillo que se trata de una WebPart en la que aparece el
típico mensaje de “Hello World” interactivo.
Lo primero que tenemos que hacer es instalar el plugin de
Silverlight en nuestro servidor. Tras descargarnos la carpeta “.zip”,
con todos los archivos de la aplicación, de la página mencionada
anteriormente, lo primero que hacemos es ejecutar el instalador
“Setup.exe” en el servidor, y si todo se realiza con normalidad nos
aparecerá la pantalla que se ve en la Figura1.
Si nos da algún tipo de error, debemos asegurarnos de que el
servicio de Windows SharePoint Administration está arrancado.
Para ello abrimosHerramientas administrativas > Servicios y lo
comprobamos. Si no está funcionando, deberemos arrancarlo.
Figura1
Para comprobar que todo se está realizando correctamente,
abrimos el Internet Information Services Manager, y comprobamos
si se ha copiado la carpeta ClientBin de nuestra aplicación y si
tenemos en ella los archivos HelloSilverlight10.js y
HelloSilverlight10.xaml.
Figura2
El siguiente paso es activar la aplicación para que se pueda
implementar con SharePoint. Para ello, si contamos con permisos
de Administrador, desde la página de nuestro sitio SharePoint raíz,
pinchamos en la pestaña Site Actions>Site Settings>Modify All Site
Settings> Site Collection Administration> Site Collection Features y
activamos la aplicación deseada, como se puede ver en las Figuras
3 y 4. Si no contamos con dichos permisos, tendremos que hacer
lo mismo pero desde la pantalla Central de Administración o
solicitar este cambio.
Figura3
Figura4
Una vez activada esta característica de nuestra colección de sitios,
lo único que nos falta es añadir la WebPart con nuestra aplicación
Silverlight. Para ello desde la página donde la queremos añadir
pinchamos en Site Actions > Edit Page >Add Web Part y
seleccionamos nuestro WebPart de ejemplo, tal como se ve en la
Figura5.
Figura5
El resultado final sería el siguiente:
Figura6
Como aquí no se observa la interactividad de dicho WebPart, yo
recomendaría que cada persona intentara añadir a sus aplicaciones
este ejemplo o cualquiera de los incluidos en Silverlight BluePrint,
para comprobar los resultados. Asimismo, podemos revisar los
ficheros “.js” y “xaml” de ejemplo, para aprender su uso. También
existen otros ejemplos con los que se podría probar, como el que
se encuentra en la siguiente
página: http://www.triplewood.com/triplewood/html/SharePoint20
07.aspx
Creando y utilizando este tipo de aplicaciones, podemos conseguir
que nuestro sitio sea más atractivo y más dinámico.
Categ
orías
CES Microsoft
Tema Desarrollo
Autor Goretti Ortigosa Rada
Mes Junio
Año 2008
Boletín
06
Título Clustering y Hyper-V
Texto El pasado 16 de Junio tuvimos el gusto de acoger en el Salón de
Actos de los CES a los evangelistas de Microsoft TechNET José
Parada y David Cervigón. Su charla sobre Windows Server 2008 y
Hyper-V despertó un gran interés entre los asistentes, más aún en
cuanto se mezclaban en una misma frase las palabras “Hyper-V” y
“alta disponibilidad”.
Así que, siguiendo ese hilo, este mes me planteo hablar sobre
Hyper-V y clustering como alternativa barata, fiable y práctica para
soluciones IT de alta disponibilidad.
La primera y más simple alternativa sería montar nuestras
máquinas virtuales (VM, Virtual Machines) sobre nodos físicos en
alta disponibilidad. Esta configuración se denomina Host
Clustering y resulta la solución más simple. De este modo se
puede montar cada servicio o aplicación que precisa Alta
Disponibilidad (HA, High Availability) en múltiples VMs que tienen
HA. Si una VM no está disponible sólo ese servicio hará el
desplazamiento del servicio al otro nodo (denominado en inglés “fail
over” y que usaremos de aquí en adelante por brevedad), siempre
que cada VM tenga su propia unidad lógica de almacenamiento, o
LUN. Como en toda máquina “real”, el fallo de una VM que ejecute
múltiples servicios hace que todos esos servicios no estén
disponibles. Por lo tanto, aquí será el criterio particular de cada
caso el que nos indique que nivel de “granularidad” queremos al
organizar nuestros servicios en las VMs en HA:
Si cada servicio es especialmente crítico como para
preferir aislarlo de otros problemas, o se tiene la
experiencia de que sus actualizaciones sean más
frecuentes de lo que fuera deseable precisando un reinicio en cada ocasión, o su consumo de recursos
puntualmente se dispara (con o sin motivo aparente, es otro cantar…) nos resultará de interés “independizarlo”
en su propio nodo de VMs. Claro está que esto nos
dificultará el mantenimiento, pero en esto como en otras cosas de la vida “no pain no gain”
Si los servicios o aplicaciones a “clusterizar” no
presentan esas exigencias y lo que queremos lograr es
que el tiempo en el que no se encuentre disponible cualquiera de ellos sea el menor posible, podemos optar
por agruparlos en una (o varias) VMs que hagan el failover, de manera que nuestro esfuerzo sea menor.
Pero claro, esto será como los castillos de naipes: si cae uno, el resto va con ellos.
En general, aplicar una mezcla de estas dos opciones con el criterio
apropiado en cada caso será la mejor opción. Hay que tener en
cuenta que cada VM requiere su parte de recursos (memoria, CPU,
I/O) en nuestras máquinas físicas, así que habrá que tener en
cuenta su capacidad y nuestros requerimientos (por ejemplo,
respondiendo a preguntas como: ¿Soportarán nuestras máquinas
físicas todas las VMs corriendo a la vez en un punto del tiempo? ¿Se
podrá producir alguna vez esto? ¿Afectará al rendimiento percibido
por los usuarios? ¿Y al real? ¿Es esto importante?...)
Para el almacenamiento podremos usar iSCSI, canales de Fibra o
SAS (SCSI por puerto Serie). Cuando la máquina física y la VM
estén en ejecución, el administrador podrá hacer un failover a otra
máquina física de la VM, y el usuario sólo percibirá una espera de
unos pocos segundos. Por detrás, el gestor de Cluster guarda el
estado actual de la VM en el almacenamiento compartido, lo para
en el primer nodo físico y lo arranca en el segundo nodo. También
monitoriza el estado de los VMs, de modo que si el S.O. cae, se
cuelga o da una pantallita azul, puede ser automáticamente
recuperado aunque en este caso el usuario sí percibirá la espera
mientas el estado de la VM se carga e inicializa (el uso de
aplicaciones que toleren fallos en la comunicación o “pervasivas”
minimizará el impacto negativo en estos casos).
Como se ha visto, el modelo Host Clustering monitoriza el estado
del S.O. virtual, pero no se fija en el estado del servicio o aplicación
dentro de la VM. Para esto se dispone del modelo
denominado Guest Clustering. Este modelo permite el uso de
aplicaciones y servicios de alta disponibilidad en la capa virtual, y se
soporta completamente en Windows Server 2008. Para establecer
esta configuración instalaremos el elemento de „Failover Clustering‟
en varias VMs y luego procederemos a definir el cluster con ellas
como si fueran nodos físicos. Todas estas VMs pueden usar el
mismo almacenamiento compartido iSCSI que guardará el estado
de las aplicaciones ejecutándose en la VM. Incluso se puede realizar
una validación de la configuración del cluster en las VMs para
asegurarnos de que el componente „Failover Clustering‟ funciona
correctamente. Lo que nos facilita esta configuración es la
monitorización de la salud de nuestros servicios y aplicaciones con
la posibilidad de trasladarlos de VM si sufren algún problema.
Mediante la combinación de los dos modos Host
Clustering y Guest Clustering podemos obtener alta
disponibilidad en las capas física y virtual. Un ejemplo de esta
configuración combinada sería el siguiente:
Los nodos Físico-A1 y Físico-A2 forma un Host cluster
físico. Son los nodos que soportan los servidores
virtuales VM-1A, VM-2A y VM-3A. Estos VMs realizan su
desplazamiento entre los nodos Físico-A1 y Físico-A2 obteniendo HA en la capa física.
Los nodos Físico-B1 y Físico-B2 forma un Host cluster
físico. Son los nodos que soportan los servidores
virtuales VM-1B, VM-2B y VM-3B. Estos VMs realizan su desplazamiento entre los nodos Físico-B1 y Físico-B2
obteniendo HA en la capa física.
Los nodos virtuales VM-1A y VM-1B forman un cluster
en la capa virtual.
Los nodos virtuales VM-2A y VM-2B forman un cluster
en la capa virtual.
Los nodos virtuales VM-3A y VM-3B forman un cluster
en la capa virtual.
Las aplicaciones y servicios obtienen HA en la capa
virtual y pueden hacer fail over, mientras que las VMs obtienen su HA en la capa física, donde pueden hacer
fail over. Esto permite la HA en ambas capas.
Como en cualquier otra solución de cluster, el proceso más
complejo a nivel hardware será la configuración de los discos para
la definición de las LUNs de cada cluster. Sin embargo, Hyper-V nos
proporciona dos ventajas significativas sobre las soluciones de
cluster “tradicionales”:
- Menor coste, por el ahorro que supone el uso de VMs
- Mayor flexibilidad dado que podemos definir tantas VMs
como nuestro hardware sea capaz de soportar y distribuir las aplicaciones o servicios como queramos
entre ellas.
En cuanto al 'como hacerlo' lo mejor es referirse a la guía paso a
paso publicada en el blog de Robert
Larsonhttp://blogs.technet.com/roblarson/archive/2007/12/17/buil
ding-a-host-cluster-with-hyper-v-beta-1.aspx que ofrece con todo
lujo de detalles qué debemos hacer para montar nuestras VMs
en Guest Clustering.
Para más información incluyendo representaciones gráficas de
diversos escenarios de uso se puede consultar el blog de José
Barreto (en inglés):
http://blogs.technet.com/josebda/archive/2008/06/17/windows-
server-2008-hyper-v-failover-clustering-options.aspx
Categ CES Microsoft
orías
Tema Arquitectura
Autor Rafael Flores Yoldi
Mes Junio
Año 2008
Boletín
06
Título Peopleware.
Texto '...este libro desarrolla un diálogo práctico sobre cómo
los programas son escritos por personas, y en especial cómo los escriben los equipos de personas.' ('Una
explicación de la Programación Extrema. Aceptar el cambio.' Kent Beck.)
En 1987 se editó un libro que se ha convertido en todo
un clásico de la literatura acerca de la gestión de proyectos y equipos dedicados al desarrollo de software.
No en vano su título completo es: 'Peopleware. Productive Projects and Teams.'
Que en el ámbito de la literatura técnica un libro
mantenga su vigencia a los 20 años de su publicación,
resulta meritorio. Que, por ejemplo, enAmazon esté valorado mayoritariamente con 4 ó 5 estrellas indica,
además, la aceptación que tiene entre el público.
El caso es que nos encontramos con una obra que trata un tema tan aséptico como es el desarrollo de software
pero haciendo hincapié en que esa tarea la realizan personas. Y esto es algo que a veces se olvida: el
software es desarrollado por personas y para personas.
Creo que la mejor forma de reseñar este libro es reproduciendo las frases que más me marcaron cuando
lo leí, y que coincidían con mi experiencia a la hora de coordinar un equipo de desarrollo de software:
· Los problemas más serios en la gestión de
desarrollo de software no son de origen técnico sino sociológico.
· Los desarrolladores deben poder 'perder' tiempo
leyendo, discutiendo, pensando... · Las personas no trabajan mejor bajo presión:
sólo trabajan más rápido. · Todos tendemos a vincular nuestra propia
autoestima con la calidad de lo que producimos.
· El trabajo burocrático tiende a expandirse hasta llenar toda la jornada.
· La función del mánager no es hacer que las personas trabajen sino hacer posible el trabajo para esas
personas. · Un buen entorno físico incide en la productividad.
No se puede trabajar a gusto en un lugar sin ventanas. Las personas trabajan mejor con luz natural.
· Para cualquiera que se dedique a tareas de desarrollo, diseño, programación, el flow es
imprescindible. (Por flow quieren indicar un estado y unas condiciones de profunda, meditativa, implicación).
· Las interrupciones (teléfono, email) son obstáculos hacia la cordura en lo que se refiere a las
condiciones de trabajo. Debe haber períodos de total
ausencia de interrupciones. · Las personas, a todos los niveles, necesitan dejar
su sello en el lugar físico donde trabajan. · La fórmula del éxito es:
o Elegir la gente apropiada. o Hacerla feliz de forma que no quiera irse.
o Hacer que se sienta cómoda. · La necesidad de uniformidad es un signo de
inseguridad en la gestión de personas. · La gestión de personas requiere pensamiento
holístico, juicio heurístico e intuición basada desde la experiencia. (Hmmm: necesité del diccionario para
entenderlo. Holismo: Doctrina que propugna la concepción de cada realidad como un todo distinto de la
suma de las partes que lo componen. De heurística elijo
esta acepción: manera de buscar la solución de un problema mediante métodos no rigurosos, como por
tanteo, reglas empíricas, etc.). · A la hora de elegir un candidato aunque la última
decisión recae en ti, sería conveniente que sus futuros compañeros lo conozcan durante el proceso de selección
y te transmitan sus impresiones. · Una documentación voluminosa es parte del
problema, no de la solución. · El volumen total de estándares impuestos a las
personas debería ser descrito en no más de diez
páginas.
· Un jelled team es un grupo de personas fuertemente unida en el que el total es mayor que la
suma de sus partes. Una vez que un equipo empieza a alcanzar el estado de jell, las probabilidades de éxito
aumentan de forma impresionante. Entonces no necesita
ser gestionado en un sentido tradicional, y mucho menos motivado. Estos equipos se caracterizan por su
estabilidad, fuerte sentido de la identidad, sentido de pertenecer a un grupo diferente, percibir el producto que
hacen como propio y disfrutar con lo que hacen. (¡Sí! 'Jell' es gelatina. Yo prefiero denominarlo 'gominola').
· Las técnicas para acabar con un equipo son: o Gestión a la defensiva.
o Burocracia. o Separación física.
o Fragmentación del tiempo de las personas. o Disminuir la calidad del producto.
o Plazos de entrega falsos. · El mejor jefe es aquél que gestiona una y otra
vez sin que los miembros de su equipo sepan que son
gestionados. · Una situación de trabajo que daña tu autoestima
es, en sí misma, dañina. · La supervisión visual está destinada a los
reclusos, no a los desarrolladores. · La estructura de un equipo es una red, no una
jerarquía.
Pero lo que mejor califica a este libro es, en mi opinión, este comentario de Ed Yourdon: 'Recomiendo
fervientemente que compres una copia de este libro para ti y otra para tu jefe. Y si tú eres un jefe, entonces
compra un ejemplar para cada miembro de tu departamento y otro para tu jefe.'
En resumen: muy recomendable. Casi imprescindible.
Referencia: PEOPLEWARE Productive Projects and Teams. 2nd ed.
Tom DeMarco & Timothy Lister. Dorset House Publishing
Si quieres enviar algún comentario o sugerir temas a tratar en otros artículos, escribe a:
curtasun[simboloArroba]cein.es
Categorías General
Tema Varios
Autor Carlos Urtasun
Mes Junio
Año 2008
Boletín 06
Título SHORT CUTS, atajos de teclado.
Texto “Short cuts”… Un estupendo film de Robert Altman de
1993, con un gran reparto: Madeleine Stowe, Julianne Moore, Jennifer Jason Leigh, Tim Robbins,Matthew
Modine, Anne Archer, Chris Penn, Tom Waits, Peter Gallagher, Andie MacDowell, Jack Lemmon, Robert Downey
Jr. etc. Narra las historias de varias familias, personas que intentan
amoldarse al mundo laboral: policías, maquilladoras, conductores, cantantes de jazz, médicos, especialistas en
sexo por teléfono, comentaristas de televisión, camareras... gente con múltiples que historias paralelas se entrecruzan
en un momento dado. Esta estructura creó escuela en muchos de los films posteriores de los noventa.
Estos últimos años he estado desarrollando cierta debilidad
por los atajos de teclado. Después de unos cuantos años programando me estorbaba tener que coger un ratón, no
tenia tiempo, solo debía escribir líneas de código; El tema de coger el ratón se complicó más ahora que
existen entornos modernos que están repletos de herramientas chulas como compilar, ejecutar, los “step
over“ , “step into” del “debugger” , el “intellisense”, las utilidades derefactorización, etc. todas ellas asociadas a
algún shortcut; Más tarde tuve mi primer portátil y no llegaba a acostumbrarme al “touchpad”, me cuesta
mogollón escribir documentos en Word (o lo que sea), con lo que siempre me intentaba enterar cómo se activaba la
negrita, el subrayado, la cursiva... Bueno podéis observar que se generó una necesidad por soltar el ratón.
Aparte de mis experiencias personales, los atajos de
teclado fueron creados desde hace mucho tiempo (recuerdo herramientas gráficas aunque en modo texto que ya las
tenían), con el objetivo no sólo de ahorrar tiempo sino de evitar dependencias con el ratón, muchas herramientas
aceptan la personalización de “shortcuts”, por parte del usuario. Básicamente un atajo del teclado es una
combinación de teclas que permite hacer algo en el
ordenador más rápido que si lo hiciéramos con el ratón. Además Ni qué decir la importancia que tienen los
atajos para las personas discapacitadas o con problemas de accesibilidad.
En fin concretando un poco, como en informática en
general todo comienza a tener su propio universo y como tal tiende a ser inabarcable, encontraréis muchas
recopilaciones de “shortcuts”; La que yo os presento es una recopilación de los atajos que me han parecido más útiles y
que más fácil vais a poder aplicar, son atajos genéricos y los voy a agrupar por teclas, muchos están basados en las
teclas “alt” y “ctrl” y podrían funcionar en otros sistemas operativos con los gestores de ventanas activados.
Para ordenar un poco el tema os presento los atajos en orden alfabético y luego agrupados por el contexto en el
que tienen su función; También por facilitaros el trabajo os los pongo en formato tabla, os será mas fácil de imprimir y
tenerlos como plantilla; Os va a costar memorizarlos al principio, así que poco a poco.
Finalizando y para los que os haya convencido este tema o
ya estéis habituados os dejo un link con 200 shortcuts sobre Windows, firefox, gmail, total commander etc.
http://www.smashingmagazine.com/2007/07/20/developers-alarm-200-hotkeys-to-boost-your-productivity
Tecla alt: Los atajos sobre la tecla ALT deberían ser estándar, por lo que es posible que algunas
combinaciones funciones en otros sistemas operativos
con gestores de ventanas. Contexto del Explorador de Windows:
alt + d: nos posiciona en la barra de herramientas de la ventana del explorador activa.
alt + flecha arriba: nos desplaza la vista del marco del navegador donde este situado el foco, al
siguiente nivel jerárquico de la vista. alt + flecha izquierda/derecha: nos desplaza la
vista del navegador a través del histórico de vistas recorrido hasta llegar al nivel jerárquico de la vista
actual. alt + enter: muestra las propiedades del elemento
seleccionado del marco de la derecha.
Teclas Fin / inicio: último y primer elemento de la
ventana.
Teclas F: estas teclas han perdido con paso del tiempo
cierto peso sin embargo creo que las siguientes merecen
una mención. Contexto del Explorador de Windows:
F2: te permite renombrar el elemento seleccionado.
F3: despliega la ventana de búsquedas. Tiene una ventaja sobre el ctrl + F que vale la pena
comentar: si estamos situados sobre una carpeta, restringe la búsqueda al contenido de esa carpeta.
F4: muestra las rutas de la vista actual con respecto a la navegación a través del sistema de
ficheros. F5: refresca la vista actual.
F6: mueve el foco de selección a través de los elementos interactivos de la vista del navegador.
F11: modo todo pantalla, lo habilita y lo
deshabilita. El efecto se repite en el “Internet Explorer”.
Tecla ctrl:
Imprescindibles:
ctrl + x: cortar.
ctrl + c: copiar.
ctrl + v: pegar. ctrl + z \ y: deshacer \ rehacer.
ctrl + p: imprimir
ctrl + s: salvar.
ctrl + o: abrir fichero.
Contexto Explorador de Windows:
ctrl + e: selecciona todo lo que aparece en la ventana de navegación.
ctrl + n: abre en otra ventana el contenido de la ventana de navegación que se está visualizando.
ctrl + f / ( F3 ): despliega la ventana de búsquedas.
Sólo en Windows Vista:
ctrl + shift + enter: te permite confirmar la
elevación de los permisos de la aplicación/ejecutable seleccionado.
Contexto de ventanas con listas de
elementos:
Ctrl + a: selecciona todos los elementos del
documento o ventana. Ctrl + fin: nos posiciona el foco en el último
elemento del documento o ventana. Ctrl + home: nos posiciona el foco en el primer
elemento del documento o ventana. Ctrl + Flecha izquierda/derecha + espacio: nos va
a permitir seleccionar grupos de elementos discontinuos.
Ctrl + d: mueve a la papelera de reciclaje o borra los elementos seleccionados.
Contexto en general:
ctrl + w / Alt + F4: cierra tu ventana actual.
ctrl + esc: despliega menú de inicio. ctrl + tab: nos desplazamos por la barra de
tabulación con las aplicaciones que tenemos
abiertas en la sesión. ctrl + shift + esc: administrador de tareas.
Ctrl + Windows + f: busca máquinas en la red (en caso de estar en un Dominio).
Ctrl + Windows + tab: te permite navegar por las aplicaciones abiertas desde la barra 3D pero
usando las teclas de desplazamiento izq/der. Es necesario tener activado el “Aero” y los efectos 3D
del Windows Vista.
Tecla Shift: Además de permitirnos usar el segundo símbolo asignado a una tecla del teclado, da mucho
juego a la hora de hacer selecciones de elementos, etc. Explorador / Listas de elementos:
Shift + flecha izquierda / derecha: permite seleccionar más de un elemento en el sentido de la
flecha elegida. Shift + F10: nos muestra el menú equivalente al
botón derecho del ratón cuando seleccionamos un elemento con el ratón.
Shift + suprimir: borra directamente el elemento
seleccionado sin pasar por la bandeja de reciclaje.
Tecla Windows: tecla curiosa que apareció a partir del
Windows 95 por más que sea odiada, ignorada etc. Sin embargo también está provista de combinaciones
bastantes útiles:
Windows + d: minimiza o vuelve a desplegar todas las aplicaciones que no estén ya minimizadas
actualmente sobre el escritorio. Windows + e: te despliega el Explorador de
Windows. Windows + f: despliega la herramienta de
búsquedas de Windows. Windows + l: te permite cambiar de usuario de
sesión, y bloquear la actual. Windows + Pausa (alrededor del teclado numérico):
te despliega las propiedades del sistema. Windows + r: despliega el menú de ejecutar.
Windows + t: permite navegar por las aplicaciones abiertas pero desde la barra del menú de inicio.
Con el AERO, “gadgets” y los efectos 3D del Windows Vista activados.
Windows + tab: te permite navegar por las aplicaciones abiertas desde la barra 3D.
Windows + barra de espacio: te trae a un primer plano todos los “gadgets” y te permite
seleccionarlos.
Windows + g: te permite navegar por la barra de “gadgets”.
Tecla Bloq-Num:
Bloq-Num + *: en el explorador de Windows, si
tenemos un directorio seleccionado, nos va a
desplegar todo el árbol de directorio que cuelga del directorio seleccionado, no hacer sobre “c:\” ,
obviamente hay demasiadas carpetas. El despliegue de directorios se hace en el “frame”
izquierdo del navegador.
Bloq-Num + +: como el anterior, sin embargo sólo
muestra el primer nivel que cuelga del directorio seleccionado.
Bloq-Num + -: si el directorio seleccionado esta desplegado lo recoge.
Bloq-Num + Flechas de Dirección: hace el efecto combinado de los dos anteriores hacia la izquierda.
Equivale al ”+” y hacia la derecha equivale al “–“.
Categoría
s General
Tema Varios
Autor Enrique Muro Arbizu
Mes Junio
Año 2008
Boletín 06
Título TDT: herramientas para desarrollo MHP (Parte 2)
Texto En la primera parte definimos el entorno de programación. En esta segunda parte profundizaremos en las alternativas de un
entorno de pruebas complementando la parte cubierta en el artiúclo anterior proponiendo un sistema completo para el
desarrollo y prueba de aplicaciones MHP.
Entorno de pruebas
Existen dos formas de plantear las pruebas de las aplicaciones
en MHP desarrolladas.
La primera de ellas, es usar un emulador, tal y como se ha
comentado en la sección de desarrollo. Estos son un buen punto de partida. Su uso permite evitar muchas de las complejidades del desarrollo de aplicaciones en MHP. Son una
buena alternativa a otras soluciones más caras, aunque no son recomendables para desarrollar aplicaciones que se van a
desplegar en una red real para su puesta en producción.
Además, un emulador no puede simular la eficiencia de un decodificador real. Esto es debido, parcialmente, a la
diferencia de hardware, pero también por la naturaleza de la aplicación desarrollada, por las alteraciones sufridas a su paso
por un TS (transport stream), por el tiempo de carga en el decodificador, etc. Igualmente, los emuladores no pueden probar las características intrínsecas del la codificación MPEG,
los eventos, la información del servicio, etc. Por tanto, los emuladores son un valor añadido al kit de desarrollo de la
aplicación, pero no son aptas para un entorno de pruebas lo más real posible.
La segunda forma, es comprar un sistema de desarrollo de un
proveedor de MHP. Compañías como ADB, Osmosys, Panasonic, IRT, y otras cuentan un la versión de desarrollo de
sus decodificadores (set-top-boxes, STB) en torno a los 1000€. No es muy barato, pero es una inversión que merece la pena si se busca profundizar en la tecnología MHP de forma
seria y para fines productivos, puesto que resuelven muchas de las carencias que presentan los emuladores. Para poder
ejecutar las aplicaciones en el STB, es necesario cargarlas previamente. Esto dependerá del STB elegido, pudiendo ser a través de un puerto Ethernet, cable serie, entrada coaxial,
etc.
¿Nos vale con todo esto? Desgraciadamente no. Cada
fabricante ha implementado MHP a su manera, por tanto, el que tengamos una aplicación funcionando en un entorno de desarrollo y en uno o dos descodificadores hardware no nos
garantiza que funcione o se vea bien en todos los del mercado. Resumiendo, la aplicación se comportará de forma
distinta en diferentes receptores.
Si cada fabricante facilitase las herramientas para cargar aplicaciones por puerto serie, nos bastaría con comprar una
pila de descodificadores representativa del mercado. No obstante, esto no suele ser así.
En cualquier caso, si se van a desarrollar aplicaciones en un
entorno real, merece la pena seleccionar diferentes receptores de diferentes marcas para comprobar la
interoperabilidad. No tienen porque tratarse de STB de desarrollo, pero es conveniente tener diferentes STB de desarrollo o emuladores para cubrir el mayor espectro de
posibilidades si el presupuesto no da para más.
Si por el contrario, el presupuesto si que da para más, es
conveniente dar el siguiente paso: montar un cabecera de televisión.
Esto es, dotarnos de la infraestructura necesaria para generar
el stream de video sobre el cual irán las aplicaciones MHP. De esta forma, las aplicaciones MHP se cargarán en el deco a
través del cable coaxial, de igual modo que en un entorno real.
Esta opción es muy atractiva porque se acerca más a la
realidad y permite medir más parámetros, como por ejemplo, la carga del ancho de banda en función del número de
aplicaciones MHP, o en general, medir y probar características específicas del transport stream (TS).
Partimos del hecho de que la generación de un stream de
video y datos real mediante una solución puramente de hardware es muy cara. No obstate, dicho stream de video y
datos tambień puede generarse mediante una solución mixta de hardware y software. Esta consiste en:
Un sistema de play-out por software: generación del TS
a la velocidad correcta. Un sistema de hardware que adapta y envía el TS
generado por software a un formato que pueda entender el STB. Esto es, una tarjeta moduladora que envía la señal mediante un cable coaxial al STB.
Esta es la forma más económica de obtener un laboratorio de pruebas real y fiable. Existen soluciones en este sentido Open
Source, no obstante, por el momento no son herramientas fiables en la creación y envío del TS.
Conclusión Solamente con el empleo de los emuladores no se simulan
todas las características de un entorno real, cayendo en el
riesgo de construir aplicaciones MHP que no funcionen o que lo hagan de forma ineficiente, por tanto, la inversión en la
construcción de un laboratorio de pruebas es muy recomendable.
De todas las opciones disponibles, la creación de un
laboratorio de pruebas mediante herramientas hardware resulta muy cara. Siendo la alternativa mixtas de hardware y
software una solución que permite la simulación de todos los parámetros del TS reales de forma fiable y óptima además de ser mucho más económica.
Categorías CES OpenSouce/Java
Tema Varios
Autor Raúl Sanz de Acedo
Mes Junio
Año 2008
Boletín 06
Título Configuración de las máquinas Linux servidor y cliente para tener
repositorios remotos con Subversion (Parte 2)
Texto En el artículo anterior se comenzó a explicar cómo configurar una
máquina en la que estaría instalado un repositorio de Subversion
para que se comunicara con otra máquina en la que se instalaría un
Servidor Web y que sería la que gestionara las peticiones a este
repositorio. En él se dieron los pasos iniciales para la preparación de
la máquina. En este otro artículo, se explicará en detalle la
configuración de los servicios Iptables y SELinux.
CONFIGURACIÓN DE IPTABLES:
En este caso hay que configurar tanto el acceso al servidor web que
está en el puerto 80 como a los servicios asociados
con nfs y subversion. Subversion funciona sobre el puerto 3690 y
nfs sobre el 2049. Con el servidor de nfs además hay que dejar
pasar al servicio portmap que corre en el puerto 111 y otros servicios
asociados. Estos otros servicios tienen puertos que en principio
variarán cada vez que se inicie el servicio. Para ello lo mejor es
fijarlos. Se necesitan 6 puertos que estén libres. Para eso se
consulta la lista de puertos empleados en el fichero /etc/services y se
ve que a partir del 10008 hay un rango libre lo suficientemente
amplio como para contener los puertos a fijar. Se eligen los puertos
entre el 10010 y el 10015 para fijarlos. Así quedarían los puertos
asociados al funcionamiento de nfs:
• 111: portmap (tcp/udp)
• 2049: nfs (tcp/udp)
• 10010: example lockd (tcp)
• 10011: example lockd (udp)
• 10012: example statd/status (tcp/udp)
• 10013: example statd/status outgoing (tcp/udp)
• 10014: example mountd (tcp/udp)
• 10015: example rquotad (tcp/udp)
Para fijarlos se añade al final del fichero /etc/modprobe.conf la
siguiente línea:
options lockd nlm_tcpport=10010 nlm_udpport=10011
Con esto se fija el puerto del servicio lockd a 10010 (tcp) y
10011(udp). Para fijar el resto puertos para los servicios que
necesita emplear nfs se modifica el fichero /etc/sysconfig/nfs
añadiendo estas líneas:
# NFS port numbers
STATD_PORT=10012
STATD_OUTGOING_PORT=10013
MOUNTD_PORT=10014
RQUOTAD_PORT=10015
En este punto se debe reiniciar el ordenador para que esta
configuración se emplee.
Si se quieren hacer pruebas sin que los cambios sean permanentes
en el servicio, se pueden emplear las sentencias iptables –I tabla
posicion …, pero para dejarlas fijas y que se tengan en cuenta cada
vez que arranque la máquina, hay que escribirlas sobre el fichero
/etc/sysconfig/iptables. Las reglas a aplicar son sobre la máquina
con Apache:
-A RH-Firewall-1-INPUT -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 3690 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 3690 -j ACCEPT
y sobre la máquina con el repositorio de subversion:
-A RH-Firewall-1-INPUT -p tcp --dport 3690 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 3690 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 10010 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 10011 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 10012:10015 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 10012:10015 -j
ACCEPT
CONFIGURACIÓN DE SELINUX:
La política que más va a proteger el ordenador en SELinux es
enforcing y targeted. Con esto se sigue la política por defecto.
Para que todo funcione y se muestren todas las restricciones
impuestas por SELinux, se puede ejecutar:
setenforce 0
Se ejecutan los distintos programas. Esto creará dentro de audit.log
unas líneas que se identifican porque tienen type=AVC. Estas son
líneas en las que dicen las restricciones de la política que aparecen y
los programas que las provocan. Si no se tiene activado audit.log,
estos mensajes se mostrarán en messages.
Tras esto y después de comprobar que la actualización de las
políticas a través del yum no ha resuelto el problema, habrá que
repasar los booleanos de selinux para ver si se puede dar más
permisos o no a las operaciones.
Los booleanos que pueden afectar son:
• allow_httpd_anon_write
• allow_httpd_bugzilla_script_anon_write
• allow_httpd_mod_auth_pam
• allow_httpd_nagios_script_anon_write
• allow_httpd_squid_script_anon_write
• allow_httpd_sys_script_anon_write
• allow_nfsd_anon_write
• httpd_builtin_scripting
• httpd_can_network_connect
• httpd_can_network_connect_db
• httpd_can_network_relay
• httpd_disable_trans
• httpd_enable_cgi
• httpd_enable_ftp_server
• httpd_enable_homedirs
• httpd_rotatelogs_disable_trans
• httpd_ssi_exec
• httpd_suexec_disable_trans
• httpd_tty_comm
• httpd_unified
• nfs_export_all_ro
• nfs_export_all_rw
• nfsd_disable_trans
• portmap_disable_trans
• use_nfs_home_dirs
Para ver el estado de todos los booleanos impuestos por SELinux, se
ejecuta:
getsebool –a
Y para cambiar el estado permantentemente de uno o varios de
ellos:
setsebool –P booleano1=0/1, booleano2=0/1, …
Si activando estos booleanos, no se solucionan los problemas
entonces se deberá recurrir a crear una política local de seguridad.
Lo primero que hay que hacer es descargarse mediante yum el
módulo selinux-policy-devel:
yum install make selinux-policy-devel
Este módulo permitirá la creación de políticas locales para solucionar
algunas de las restricciones impuestas.
Para guardar las políticas se creará una carpeta por ejemplo
selinux.local. Esta carpeta puede situarse en cualquier
directorio. Para los siguientes pasos se exigen privilegios de root.
Se entra en ella y se ejecuta la sentencia: chcon –R –t usr_t .
Con esto se dice que el tipo de usuario de la carpeta será usr_t.
Una vez hecho esto, se hará un link al makefile del paquete de
desarrollo es decir,
ln –s /usr/share/selinux/devel/Makefile
Esto permitirá ejecutar el comando make y compilar las políticas
locales.
Para crearlas se puede utilizar el script audit2allow, que a partir de
un fichero en el que haya logs con type=AVC sacará las reglas que lo
solucionan.
El empleo que se puede dar es:
audit2allow –a –o ficheroSalida
Con la opción –a lo que hace es leer todos los posibles ficheros que
contengan mensajes con type=AVC. También se puede utilizar la
opción –i ficheroEntrada. Con –o se designa el fichero de salida en el
que se quiere que se vuelquen esas reglas. Si se utiliza –R se
implementan ya en la política directamente, pero a mí esta opción
me dio fallos.
Entonces lo que hay que hacer para crear un fichero que implemente
una política local es seguir esta estructura:
policy_module (nombre_fichero_sin_extension, X.Y.Z)
#X.Y.Z son los números de versión, pueden ser cualquiera, pero
interesa ir cambiándolos cada vez que haya cambios para ver que se
ha cargado correctamente el nuevo módulo.
require {
type tipo_Selinux;
}
#En este apartado irán todos los tipos empleados en las reglas
### REGLAS OBTENIDAS CON EL SCRIPT audit2allow.
Ejemplo de fichero (solucionar problemas con squid):
policy_module(localmisc, 0.1.0)
require{
type squid_t;
}
#Squid connecting to and communicating with other caches
corenet_tcp_connect_http_cache_port(squid_t)
corenet_tcp_sendrecv_http_cache_port(squid_t)
Una vez creado el fichero adecuado siguiendo esa estructura hay que
darle extensión te. Se guarda en la carpeta selinux.local que se
había creado antes, se ejecuta el make y se crea un fichero con
extensión pp. Será este fichero el que se emplee para incluir la
política.
Se usará:
semodule –i modulo.pp
Para comprobar si se ha cargado la versión correcta del plugin, se
puede ejecutar:
semodule –l
ENLACES DE INTERÉS:
Iptables
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables
http://www.redhat.com/magazine/010aug05/departments/tips
_tricks
SELinux
http://www.centos.org/docs/5/html/Deployment_Guide-en-US/sec-sel-admincontrol.html
http://www.city-fan.org/tips/BuildSeLinuxPolicyModules
Categ
orías
CES OpenSouce/Java
Tema Varios
Autor Blanca Cubas Cruz
Mes Junio
Año 2008
Boletí
n
06