This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

October 2007 - Artículos

WSS 3.0 & MOSS: Recopilación de enlaces interesantes (IX)

Después de algún tiempo sin postear el habitual recopilatorio de recursos interesantes de WSS 3.0 & MOSS (y no por motivos de trabajo, sino porque el viernes descubrí que las fuentes RSS no se me estaban sincronizando en Microsoft Outlook 2007, y si en Internet Explorer), aquí os dejamos una nueva entrega (con gran cantidad de recursos por el desfase de entradas no leidas por el fallo de la sincronización):

Artículos & Recursos

Tips & Tricks

Herramientas, Recursos & Utilidades

  • Atidan ha construido un explorador de contenidos de Sharepoint de libre descarga. Aquí tenéis el enlace.

atidan sharepoing ss.jpg

image

Novedades

Demo1.png

image

clip_image002

Y hasta aquí este nuevo recopilatorio de recursos, espero que encontréis en el mismo funcionalidades y elementos que os permitan resolver o por lo menos os ayuden con los problemas que os vayáis encontrando con WSS 3.0 & MOSS.

Publicado 29/10/2007 8:48 por Juan Carlos González Martín | 2 comment(s)

Archivado en: ,

Indexar y buscar ficheros OneNote en SharePoint

En un post anterior vimos el beneficio de utilizar los IFilter en las búsquedas de SharePoint, ya que nos permiten indexar tipos de ficheros que por defecto no lo hace, como son los PDF, ficheros de audio y video, imágenes, ficheros comprimidos, etc. y explicamos los pasos necesarios para instalar y configurar el IFilter de Adobe para indexar los ficheros PDF.

Ahora vamos a ver que pasos hay que seguir para indexar el contenido de los ficheros de OneNote y permitir que nos aparezca en los resultados de las búsquedas tanto de Windows SharePoint Services como de MOSS

Configuración de Windows SharePoint Services 3,0

1. Instalar el cliente de OneNote 2007 en el servidor

2. Ejecutamos el comando regedit.exe y buscamos en el registro la siguiente línea que nos dice cuantas extensiones de búsqueda tenemos instaladas en el servidor:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications\961ddf2b-49a8-4a2f-ac9f-a5a14a0096f8\Gather\Search\Extensions\ExtensionList

3. Observamos cual es la ultima extensiones y si por ejemplo existen 37, añadimos la siguiente, 38, con el valor ‘OneNote’.

4. Una vez añadido este valor vamos a registrar el Ifilter de OneNote siguiendo los siguientes pasos:

  • Creamos un fichero con el bloc de notas denominado ifilterOneNote.reg y copiamos el siguiente texto:
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Setup\ContentIndexCommon\Filters\Extension\.one]
@="{B8D12492-CE0F-40AD-83EA-099A03D493F1}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Setup\Filters\.one]
"Extension"="one"
"FileTypeBucket"=dword:00000001
"MimeTypes"="application/msonenote"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications\961ddf2b-49a8-4a2f-ac9f-a5a14a0096f8\Gather\Search\Extensions\ExtensionList]
"38"="one"

Nota: El último valor de este fichero debe coincidir con la extensión OneNote creada en el paso anterior

  • Una vez guardado el fichero le ejecutamos para registrar la extensión de OneNote

5. Por último, reiniciamos el servidor y ejecutamos desde el directorio bin de la instalación de SharePoint el siguiente comando para forzar una indexación completa del contenido de nuestro sitio

stsadm -o spsearch -action fullcrawlstart

Configuración de Microsoft Office SharePoint Server 2007

1. Instalamos el cliente de OneNote 2007 en el servidor

2. Agregamos el tipo de archivo que queremos indexar en los tipos de archivos del servicio de búsqueda realizando los siguientes pasos:

  • Abrimos la administración central de SharePoint y accedemos a la administración de los servicios compartidos
  • Debajo del menú ‘Buscar’, pulsamos sobre la opción ‘Configuración de búsqueda’ y aquí hacemos clic sobre ‘Tipos de archivos’
  • Añadimos la extensión de los ficheros de OneNote, ‘one’

3. Una vez añadido el tipo de dato a indexar, vamos a registrar el Ifilter de OneNote siguiendo los siguientes pasos:

  • Creamos un fichero con el bloc de notas denominado ifilterOneNote.reg y copiamos el siguiente texto:
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\Filters\.one]
"Extension"="one"
"FileTypeBucket"=dword:00000001
"MimeTypes"="application/msonenote"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Setup\ContentIndexCommon\Filters\Extension\.one]
@="{B8D12492-CE0F-40AD-83EA-099A03D493F1}"

  • Guardamos y ejecutamos el fichero

4. Por último, reiniciamos el servidor y forzamos desde la administración de los servicios compartidos a que se realice una indexación completa.

Publicado 28/10/2007 20:33 por Pablo Sousa Lastra | 1 comment(s)

Archivado en: ,

Indexar y buscar ficheros PDF en SharePoint

Por defecto, en las búsquedas de SharePoint se indexa ‘casi’ todo el contenido de los sitios que tengamos, ya sea la información de las propias listas, los documentos de Word que tengamos en las librerías de documentos, etc… pero existen muchos más tipos de ficheros que por defecto el motor de indexación de SharePoint no es capaz abrirlos e indexar su contenido, y necesitamos poner en el servidor una aplicación para que lo haga. Esta aplicación es la que denominamos IFilter, y es la encargada de abrir e indexar estos ficheros.

En este post vamos a explicar como indexar el contenido de los ficheros PDF utilizando el IFilter que nos proporciona Adobe tanto en la versión de WSS como de MOSS, pero no hay que olvidar que existen otros tipos de ficheros, como son los ficheros de OneNote, ficheros de autocad, .zip, mp3, imágenes, etc… que para poder indexarles tendremos que instalarnos su propio IFilter.

Configuración de Windows SharePoint Services 3.0

Vamos a empezar a ver los pasos necesarios para que WSS sea capaz de indexar este contenido. Para ello debemos seguir los siguiente pasos:

1. Nos tenemos que descargar el IFilter para ficheros PDF desde la página de Adobe, utilizando este link e instalarlo en el servidor donde tengamos corriendo el servicio de búsqueda

2. Ejecutamos el comando regedit.exe y buscamos en el registro la siguiente línea que nos dice cuantas extensiones de búsqueda tenemos instaladas en el servidor:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications\ 961ddf2b-49a8-4a2f-ac9f-a5a14a0096f8\Gather\ Search\ Extensions\ ExtensionList

3. Observamos cual es la ultima extensiones y si por ejemplo existen 37, añadimos la siguiente, 38, con el valor ‘pdf’.

4. Reiniciamos el IIS ejecutando el comando iisreset y forzamos a que el servidor realice una indexación completa de todo el contenido de nuestro sitio ejecutando los siguientes comandos:

  • net stop spsearch
  • net start spsearch
  • stsadm -o spsearch -action fullcrawlstop
  • stsadm -o spsearch -action fullcrawlstop

5. Una vez que ya tenemos indexado el contenido, vamos a asignar a los ficheros PDF su icono, para que cuando aparezcan en los resultados de las búsquedas les sepamos distinguir rápidamente:

  • Nos descargamos el icono del fichero de los PDF desde este link y lo copiamos en "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images"
  • Después modificamos el fichero 'docicon.xml' que está en: 'C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Xml\' y añadimos la siguiente referencia:
    • <Mapping Key="pdf" Value="icpdf.gif"/>

Configuración de Microsoft Office SharePoint Server 2007

Los pasos para configurar el Ifilter de PDF en MOSS vamos a ver que son muy parecidos a los de WSS.

1. Nos decargamos e instalamos el IFilter de Adobe en el servidor donde tengamos el servicio de búsqueda. (link)
Agregamos el tipo de archivo ‘pdf’ en los tipos de archivos del servicio de búsqueda realizando los siguientes pasos:

  • Abrimos la administración central de SharePoint y accedemos a la administración de los servicios compartidos
  • Debajo del menú ‘Buscar’, pulsamos sobre la opción ‘Configuración de búsqueda’ y aquí hacemos clic sobre ‘Tipos de archivos’
  • Añadimos la extensión de los ficheros PDF, ‘pdf’

2. Reiniciamos el servidor y forzamos desde la administración de los servicios compartidos a que se realice una indexacion completa de todo el contenido, para que ya aparezcan esta información de los ficheros PDF en los resultados de las búsquedas

3. Tan solo nos queda ahora asignar el icono correspondiente a estos ficheros pdf realizando los mismos pasos en que el apartado anterior.

Una vez acabado todos estos pasos, si realizamos una búsqueda vemos que ya nos aparecen los ficheros pdf en el resultado de las búsquedas, con su correspondiente icono.

clip_image003

Nota: Esta versión de IFilter para ficheros PDF esta disponible tanto para la version de 32 bits como para 64 bits.

Publicado 26/10/2007 11:03 por Pablo Sousa Lastra | 2 comment(s)

Archivado en: ,

SOA: Algunos conceptos, ideas y más siglas....

La semana pasada os hablaba del concepto de SOA (Service Oriented Infraestructure), de que aspectos hay que considerar a la hora de empezar a hablar de una implementación SOA y siempre previamente a tener cualquier consideración relativa a tecnología. Siguiendo con la idea del post anterior, en esta entrada os comentaremos algunos conceptos que suelen aparecer emparejados con SOA. Partiendo de la idea básica de que desde la perspectiva de SOA, el primer paso siempre pasa por entender la problemática de negocio concreta, detectar los requerimientos y necesidades no cubiertos o mal satisfechos, para a partir de aquí definir en términos de SOA la solución que sea capaz de resolver esta probelmática.

Una vez que tenemos diseñada la solución: incluye la información necesaria para los procesos de negocio,se especifica que hay que hacer con esta información (integrarla en procesos de negocio, realizar transformaciones, etc), determinar los flujos de información y como el usuario interactua con ella,...el siguiente paso consiste en diseñar un ecosistema de servicios sobre las aplicacione existentes (ya empezamos a hablar de tecnología), definido como una capa separada que permita exponer la información de estas aplicaciones, consumirla de forma sencilla y componer estos servicios en servicios más complejos de manera que se consiga satisfacer cada vez requerimientos de negocio más complejos y completos.

image

Por lo tanto, según esta filosofía lo que se pretende es poder realizar cambios rápidos partiendo de los sistemas existentes (y cuya información exponemos definiendo una serie de servicio) como camino para que nuestra implementación SOA esté alineada con las ideas claves de la filosofía SOA:

  • Se parte siempre de las necesidades de negocio.
  • El beneficio clave es que los procesos de negocio se agilizan, no lo es la reuitilización de servicios y el consecuente ahorro de costes.
  • Implementamos funcionalidades de manera incremental y en sucesivas iteracciones vamos añadiendo nuestras capacidades hasta que al final llegamos a la implementación SOA completa y final que resuelve toda la problemática planteada.

¿Más siglas?

Pues sí, además de SOA, existen otros conceptos asociados a esta filosofía sobre los que se asienta cualquier solución o implementación SOA que se precie:

  • SOI (Service Oriented Infrestructure), que como su nombre indica hace referencia a los aspectos relativos a infraestructura tecnológica (servicios) que necesita una solución SOA. En partícular, y siguiendo las ideas comentadas, una SOI consiste en una infraestructura virualizada compuesta por una serie de elementos (de hecho, estamos hablando de un verdadero pool de recursos: servidores web, de base de datos, de aplicaciones, ...) que son gestionados de una manera industrial:
    • Expuestos como un cátalogo de servicios (vs instancias discretas), lo que facilita su reutilización y asignación dinámica (se sigue claramente la filosofía de SOA).
    • Asegura pleno soporte a las soluciones e implementaciones SOA.

Como siempre, Microsoft tiene perfectamente definido que es lo que se debería entender por SOI, y como muestra aquí tenéis un poster espectácular de una SOI en plataforma Microsoft. En esta mismo enlace podéis acceder a toda la información relativa a SOI que Microsoft pone a nuestra disposición.

image

  • ESB (Enterprise Service Bus), que es una arquitectura software estándar construida a partir de implementaciones estándares (WS-*, XML, RSS, ..) que proporciona servicios a arquitecturas más complejas (viene a vertebrar una empresa) a través de un modelo de intercambio de mensajes (XML) gobernado por eventos (lo que se traduce en consumo directo de servicios o bien en modelado de procesos de negocio mediante orquestaciones, definiendo el uso de reglas de negocio, ...). De ESB se puede hablar largo y tendido, aunque destacaría los siguientes mitos y hechos reales:
    • ESB no es la implementación concreta de SOA, pero si da las bases para ello. De hecho, un ESB es uno de los componentes de SOI.
    • ESB no es lo mismo que un EAI (Enterprise Application Integration) pues frente a este, ESB elimina el acoplamiento que apercía entre el servicio llamado y el protocolo de transporte utilizado (FTP, HTTP, SQL,...).
    • No sólo se basa en servicios web, sino que va más allá y trata de basarse en servicios en general.

image

Un ESB viene a ser un MOM (Message Oriented Middleware) que facilita y permite la comunicación entre distintos componentes dentro de una organización de un modo transparente, fiable y de modo síncrono / asíncrono. Para ello se utiliza XML como formato estándar de intercambio de información, las aplicaciones son expuestas como servicios a través de una serie de conectores que no están atados al protocolo de transporte, y se trata de escenarios de mensajería pura o bien escenarios más complejos que necesitan de orquestaciones y otros tipos de coordinación...¿y qué dice Microsoft con respecto a ESB?  Pues que el concepto de ESB no se tiene que quedar confinado a resolver problemáticas intra-empresa, sino que tiene que ser capaz de adaptarse a situaciones más complejas y reales:

image

Es decir, lo normal es que el día a día de una organización dependa de otros: proveedores, clientes, otras delegaciones o departamentos, etc. Por lo tanto, lo que hay que hacer es extender el bus para que:

  • Permita resolver problemáticas intra-empresa, a partir de definir lo que se llama infraestructuras SOA On-Premise, es decir, definir una serie de servicios débilmente acoplados, que expongan las aplicaciones para ser consumidas "in situ" (en la propia organización)

De hecho, en Copeplex se ha puesto en marcha un proyecto con una serie de guías e implementaciones de ESB. Cómo os podéis imaginar, toda estas implementaciones se basan en BizTalk Server 2006 (cuya R2 será lanzada oficialmente en España mañana)

  • El otro escenario que cubre un ESB según Microsoft, pero redifindo a Internet Service Bus es justo el que hemos comentado, ser capaz de interactuar con otras organizaciones, de intercambiar información, etc. En este caso, Microsoft ha definido los BizTalk Services que permiten que los servicios expuestos a través del bus puedan ser consumidos más allá de los límites de la organización y tráspasandolos de manera adecuada. Las primeras CTP's de estos servicios las tenéis aquí.

Y hasta aquí este nuevo post relativo a ideas y otros conceptos relacionados con la filosofía y mundo SOA. Esperamos que a pesar de lo abstracto de los temas tratados, os resulte útil.

Publicado 23/10/2007 20:23 por Juan Carlos González Martín | 3 comment(s)

Archivado en: ,

Mostrar campos ocultos en el formulario DispForm.aspx

Muy  buenas, uno de los problemas que me he encontrado en el proyecto en el que me encuentro trabajando, es el de mostrar distintos campos de un mismo content type en los formularios Newform.aspx, Editform.aspx y DispForm.aspx de una lista personalizada.

El comportamiento que deseo conseguir es el siguiente: tengo un content type con los siguientes campos: libro, autor y referencia. Lo que quiero es que el usuario de la lista donde se va a usar este content type sólo puede tener acceso  a los campos  libro y autor a la hora de crear un nuevo elemento o editarlo. En cambio, cuando visualice el elemento, deberá ver también el campo referencia (que se habrá rellenado automáticamente mediante WF o manejador de eventos).

Lo primero que pensé fue ocultar el campo referencia y personalizar el formulario DispForm.aspx para añadir el campo oculto, pero no funcionó debido a que no mostraba ningún campo que estuviera oculto.

Lo siguiente que hice fue personalizar los formularios Newform.aspx y Editform.aspx para quitar el campo referencia (que ya no estaba como oculto). Todo parecía ir bien hasta que al intentar adjuntar un archivo me dio el siguiente error:

 

 

Después de bucear un buen rato por la red llegué a la conclusión de que los datos adjuntos no funcionan con el formulario Newform.aspx personalizado o que nadie ha encontrado la solución a este error.

Después de toparme con este error, volví a la idea original de ocultar el campo referencia y personalizar el formulario Dispform.aspx. Un buen rato después de ponerme con ello encontré la soluciónBig Smile.Al personalizar los formularios, el SPD inserta un control para conectarse a la lista de la que va sacar los datos. Este control es  <SharePoint:SPDataSource /> .Pues bien, éste control tiene una propiedad llamada IncludeHidden, que si la ponemos a true podremos mostrar todos los campos del content type que tengamos ocultos.

 


 

Más info sobre como personalizar formularios de listas personalizados en:

http://weblogs.asp.net/jan/archive/2006/11/06/Custom-Edit-Forms-for-SharePoint-2007-Lists.aspx

 

Saludos!


Publicado 20/10/2007 1:12 por Mario Rivero | 141 comment(s)

Archivado en: ,

Service Oriented Architecture (SOA): ¿Por dónde empezar?

Hace un par de semanas hablabámos de un concepto que últimamente está muy "de moda": SaaS. Otra sigla, término o palabra que hemos oido mencionar bastante en los últimos años y de la que se vuelve a hablar con fuerza es el de SOA: Arquitectura Orientada a Servicio. Como siempre ocurre en un proyecto de implementación de "algo nuuevo", cuando se empieza a pensar en adoptar e implantar una solución SOA en una organización, hay que tener muy claros una serie de puntos de cara a garantizar el éxito e implantación de dicha adopción. El primer paso es compreder claramente que es SOA a nivel conceptual y sus implicaciones. Una definición bastante buena la podemos encontrar en este whitepaper sobre SOA de Microsoft, aunque me quedo con la siguiente: SOA es un patrón de diseño arquitectónico, un estilo de arquitectura que se basa en la definición de relaciones con un grado de acoplamiento débil entre una serie de elementos consumidores y productores. SOA no tiene una relación directa con el software, la programación o la tecnología. SOA agrupa nuevas funcionalidades, y las ya existentes, en servicios atómicos que se comunican entre sí a través de pasar datos entre servicios o coordinando una actividad entre uno o más servicios.

A la hora de planficar la implementación de una solución SOA, hay una serie de pasos que hemos de considerar:

  • Comprender los objetivos de negocio y definir las condiciones de éxito. Frente a la visión tradicional de aplicaciones en las que se tendía a dar más importancia a la tecnología a utilizar que a los problemas a resolver, con SOA se trata de clarificar primero que queremos lograr y luego ya especificaremos como (pero sin imponer ningún tipo de restricción). Nos encontramos por tanto, ante la típica recogida y análisis de requisitos en la que buscamos determinar que información se necesita, como se intercambia la información, qué se hace con la información, etc.
  • Definir el dominio en el que se circunscriben el problema o problemas. Se trata de definir el ámbito en el que se aplicará SOA dentro de una organización. Además de definir el ámbito, tenemos que pensar en qué SOA se implementa mejor si empezamos poco a poco, es decir, vamos en lugar de atacar el dominio completo vamos atacando pequeñas partes del mismo (¡Divide y Vencerás!).
  • Comprender todas las semánticas de aplicación que existen en el dominio. O lo que es lo mismo, es importante analizar y comprender la naturaleza de la información que se va a intercambiar, así como identificar todos los casos posibles. A este nivel, buscamos evitar que se produzcan contradicciones en cuanto al significado de la información.
  • Comprender todos los servicios disponibles en el dominio. Tenemos que responder a las preguntas: ¿Cuántos servicios tengo? ¿ Dónde están estos servicios? ¿Cuál es el objetivo de cada servicio? ¿Qué información está vinculada con cada servicio? ¿Existen dependencias? ¿Qué problemas de seguridad hay? Por tanto, la idea es crearnos un directorio de servicios en el que tengamos plasmada toda esta información.
  • Comprender todas las fuentes de información dispobibles en el dominio. En este caso, se trata de identificar aspectos relativos a: la ubicación de estas fuentes, la estructura de la información almacenada, restricciones de integridad, dependencias, problemas de seguridad, etc.
  • Comprender todos los procesos del dominio. Tenemos que definir y enumerar todos los procesos de negocio que existen en el dominio del problema (automáticos o no). De esta orma, seremos capaces de implementar mecanismos de alto nivel que faciliten el modelado de dichos procesos.
  • Identificar y clasificar todas la interfaces al exterior del dominio que puedan ser necesarias. También en este punto tenemos que pensar en otras interfaces (además de las ya existentes) que puedan ser necesarias para nuestro dominio.
  • Definir nuevos servicios y los límites de la información para esos servicios.
  • Definir nuevos procesos y los límites de la información para esos procesos. Se trata de diseñar nuevos procesos de negocio que automaticen la interacción entre servicios, así como los flujos de información. No se trata tanto de crear nueva funcionalidad, sino de orquestar servicios y flujos de información existentes.
  • Seleccionar la tecnología(s) que vamos a utilizar. Y que será un mix de de productos y elementos que satisfacen adecuadamente las necesidades en términos de SOA. La tarea de seleccionar la base tecnológica de una implementación SOA no es trivial, por lo que es recomendable iniciarla con un proyecto de tipo piloto.
  • Desplegar esa tecnología.
  • Probar y evaluar.

¿Y en que se traduce todo esto en plataforma Microsoft? Pues como cabría esperar, se traduce en un modelo de arquitectura con una serie de capas en las que tenemos identificados una serie de elementos diferenciados y que podemos mapear con tecnologías existentes:

Post_SOA1 Post_SOA2 Post_SOA3

Cómo vemos en las figuras, la clave de una implementación SOA está precisamente en aquellas capas  en las que SOA actúa como elemento de unión entre los procesos de negocio y la tecnología. Se trata de que SOA facilite el trabajo conjunto y en "armonía" de ambas capas. Por un lado, ha de proporcionar los mecanismos necesarios para habilitar la interacción con el usuario. Por otro, tiene que aportar los mecanismos de transaccionalidad necesarios para integrar la información de diversos sistemas, conseguir que funcionen de manera orquestada y conjunta: que operen como un todo. Pero, ¿qué implicaciones tienen estos requerimientos?

Iteracción con el Usuario

A este nivel necesitamos que el usuario pueda interactuar con la información: experiencia de usuario e iteracción con contenidos, Business Intelligence, colaboración, comunicación, etc. Esto es posible mediante una serie de servicios:

  • Servicios de composición, que permiten encaminar la información según un cierto formato de datos (KPI's, Dashboards, etc). A este nivel necesitamos elementos como: workflows, servicios de búsqueda, creación de KPI's, bibliotecas de documentos / formularios (para centralizar el almacenamiento de información), acceder a la información de los sistemas LOB, etc. Si le ponemos nombre a estos elementos dentro de la plataforma Microsoft tendríamos: WF, Microsoft Windows Sharepoint Server, CAB, etc.
  • Servicios de Colaboración, que permiten coger la información que sirven los servicios de composición y distribuirla de manera adecuada: comunicaciones en tiempo real, colaboración offline, online P2P, etc. En este caso, dentro de plataforma Microsoft tendríamos Live Communication Server y Microsoft Sharepoint Office Server.
  • Servicios de Presentación, que cotemplan distintas opciones para visualizar e interactuar con la información: portales, web parts, smart clients, extensiones de cliente Office, clientes móviles, etc. El mapeo correspondiente tecnológico nos lleva a hablar de Microsoft Office Sharepoint server, de Silverlight, Cliente Windows, VSTO, ASP.NET, o Clientes Móviles.

Transacciones de Negocio

Aquí se trata no sólo de integrar sistemas existente dentro de una organización (o más allá de ella), se trata de que trabajen de forma orquestada y conjunta para modelar los procesos de negocio de una organización: tienen que operar como un todo. Para que esto sea posible, se necesitan:

  • Servicios de conectividad, que hagan posible que aplicaciones diversas (en cuanto a tecnología y cometidos) sean capaces de dialogar y entenderse. La implementación de estos servicios se traduce en conceptos ya conocidos: servicios web y adaptadores. Y en plataforma Microsoft hablaríamos de WCF y de los adaptadores de BizTalk Server.
  • Servicios para procesos de negocio, es decir, servicios que nos permitan modelizar los procesos de negocio de nuestra organización, dar una visión alto nivel de los mismos, etc. En este caso nos estamos refiriendo a capacidads presentes en BizTalk Server: orquestaciones (Orchestration Designer integrado en Visual Studio 2005)  y reglas (Business Rules Editor), BAM (Business Activity Monitoring, para ofrecer una vista de negocio de los procesos modelados con orquestaciones), TPM (Trading Partner Management, para la gestión de las relaciones con nuestros socios comerciales).
  • Servicios para la integración de la información, que permiten realizar cierto tratamiento de los datos recogidos de los sistemas existentes. En concreto nos referimos a operaciones como ETL (Extract, Transform & Load) o MDM (Master Data Management). Estas operaciones las tenemos en plataforma Microsoft con SQL Server y los componentes de SQL Server Integration Services y/o SQL Server Analysis Services.
  • Servicios de Mensajería, que habiliten el flujo de información entre aplicaciones dentro de una organización o con organizaciones fuera de los límites de la misma. Por lo tanto, estos servicios son los que permiten modelar escenarios EAI, ESB, P2P o colas de mensajería. Dentro de Microsoft, estos servicios son cubiertos por WCF y BizTalk Server.

¿Cómo puedo saber más sobre SOA y la visión de la misma por parte de Microsoft? Pues hay varias opciones, como siempre, la primera pasa por documentarse bien sobre la visión que Microsoft tiene sobre SOA a partir de documentos como el que os comentaba o bien asistir a eventos como el que tendrá lugar el próximo día 24 de octubre en el museo Thyssen de Madrid: Lanzamiento de BizTalk Server 2006 R2 y en la qué el CIIN participa como patrocinador y ponente (dentro del último track del evento: Extendiendo la Arquitectra Orientada a Servicios (SOA), desde la Empresa al Mundo). La agenda del evento es la siguiente:

 

Agenda:

09:15-09:45 Bienvenida e inicio de las sesiones
09:45-10:15 Seis tendencias tecnológicas que marcarán la próxima década
10:15-11:15 Extendiendo el Negocio Conectado
11:15-11:40 Coffee
11:40-13:10 Soluciones y testimonios de clientes
13:10-14:15 Cocktail

Sesión técnica Biztalk

14:15-14:50 Orquestando la empresa actual, de la fábrica a la tienda
14:50-15:25 Integración B2B-EDI,XML y Web 2.0

15:25-16:00 Extendiendo la Arquitectura Orientada a Servicios (SOA), desde la Empresa al Mundo.

Por supuesto, os animo a que os inscribáis y participéis en este evento que va a resultar muy interesante. Espero que el post os haya resultado de interés.

Publicado 15/10/2007 9:16 por Juan Carlos González Martín | 9 comment(s)

Archivado en: ,

Off-Topic: Ayer cumplimos un año!

No recordaba el día exacto de octubre de 2006 en el que empezamos a escribir posts en Geeks.Ms, como no, al ir a revisarlo esta mañana me dí cuenta de que llegaba un día tarde (me suele pasar a veces con las fechas de cumpleaños de mis amigos)...pues sí, hace 1 año y un día arráncabamos en Geeks.Ms con el primer post de una larga serie (llevamos ya más de 60 artículos publicados) ... 

image

...que esperamos seguir completando y enriqueciendo nuestro blog con nuevos posts interesantes y ampliando en la medida de lo posible los temas tratados (de momento Sharepoint tiene el monopolio). De nuevo agradecer a Rodrigo Corral la invitación que nos hizo en su momento para escribir en Geek.MS, ya que como el mismo me comentó durante los descansos de un curso sobre Gestión de Proyectos, mantener y escribir regularmente en un blog como Geeks nos daría visibilidad. Tengo que decir que esto ha sido así, y que muchos contactos que hemos tenido han sido gracias a este blog.

Sin más, sólo desear que este blog siga creciendo en cuanto a posts, en cuanto a tecnologías contadas desde el CIIN, etc.

Los_Pitufos_Cumpleanos_Feliz--Frontal

Un saludo a todos los miembros de Geeks por parte del CIIN!

Publicado 10/10/2007 9:02 por Juan Carlos González Martín | 8 comment(s)

Archivado en: ,

Introducción a Microsoft System Center

Actualmente, uno de los principales problemas que se están encontrando las medianas o grandes empresas, es la dificultad de gestionar de una manera sencilla y controlada toda la plataforma IT que las forman, ya que normalmente, dicha plataforma está compuesta por diferentes sistemas de hardware y software que ponen al departamento de IT en serios problemas a la hora de:

  • Monitorizar el hardware y software de la empresa.
  • Automatizar del proceso de instalación, actualización y mejoras del software. 
  • Administrar los procesos de copias de seguridad y restauración de la información. 
  • Administrar de máquinas virtuales. 
  • Realizar una correcta estimación de capacidades hardware y software para una adecuada planificación de la capacidad de la infraestructura.

Para solventar todos estos problemas, Microsoft ha sacado al mercado una saga de productos pertenecientes todos a la familia Microsoft System Center, que ayudan al departamento de IT realizar una mejor gestión y administración de toda la infraestructura de la empresa mejorando la disponibilidad de las aplicaciones y a la vez, ayudar a la reducción de costes en la implementación de nuevos sistemas, realizando entre otras tareas, las monitorizaciones del rendimiento y disponibilidad de los sistemas, la gestión de las actualizaciones de software, facilita las tareas de copias de seguridad y restauración de datos, elaborar informes de IT, etc…

image

Los productos que forman esta familia son:

  • Microsoft System Center Operations Manager 2007
    Lleva el control de eventos y monitores de rendimiento para cientos de sistemas operativos y aplicaciones. Permite automatizar tareas rutinarias y redundantes, mejorando así la eficiencia y el control del entorno de IT.
  • Microsoft System Center Configuration Manager 2007
    Configuration Manager ayuda al despliegue de aplicaciones y sistemas operativos seguros y escalables, y permite el nivel deseado de control sobre la configuración, mejorando la seguridad de los sistemas y permitiendo elaborar y mantener un inventario completo y preciso de la organización.
  • Microsoft System Center Data Protection Manager 2006
    Optimiza y acelera las operaciones de copias de seguridad y restauración de la información crítica de la empresa, ofreciendo una protección integral de los datos y aumentando la eficiencia operativa de la organización de IT.
  • Microsoft System Center Essentials 2007
    Essentials 2007 supone una solución unificada para optimizar una gran cantidad de tareas que afectan a todo el entorno IT y una consola única desde la cual poder ver y gestionar todos los servidores, clientes, hardware, software y servicios de IT. 
  • Microsoft System Center Virtual Machine Manager 2007
    Virtual Machine Manager permite centralizar y virtualizar la gestión de la infraestructura y facilita a los administradores y usuarios la provisión rápida de nuevas máquinas virtuales.
  • Microsoft System Center Capacity Planner 2006
    Solución de planificación de capacidades previa a la fase del despliegue de aplicaciones y/o servicios, que ofrece guías y buenas prácticas, conocimiento específico del hardware y planificación de escenarios potenciales.

image

En próximos post haremos un repaso de todas las novedades y funcionalidades de cada uno de estos productos que forman la familia de Microsoft System Center.

Página principal de Microsoft System Center: http://www.microsoft.com/spain/systemcenter

Descargue el folleto de System Center (zip 1,26 MB - en inglés)

Descargue el whitepaper de System Center (doc 2,38 MB - en inglés)

Publicado 9/10/2007 9:29 por Pablo Sousa Lastra | 2 comment(s)

Archivado en: ,

WSS 3.0 & MOSS: Recopilación de enlaces interesantes (VIII)

Después de una semana un tanto ajetreada en el CIIN, no podíamos faltar al tradicional recopilatorio de recursos y enlaces de WSS 3.0 & MOSS. En esta nueva entrega destacamos los siguientes recursos relevantes:

Documentación, Artículos & Recursos

  • Como ya hemos comentado en alguna ocasión, hay que tener muy claro para que sirven WSS 3.0 & MOSS y para que no sirver. Andrew Connel en una entrada de su blog habla sobre el tema de si Sharepoint es una plataforma de desarrollo de otro tipo de aplicaciones y funcionalidades distintas a las que tienen sentido.
  • Muy buen resumen (que reproduzco aquí) sobre las capacidades de búsqueda en WSS 3.0. En esta misma entrada podéis encontrar información sobre instalación y configuración de IFilters. Fuente: Blog de Colin Borrowman.
Tipo de Documento Extensión Título y Otros Campos  Indexados Contenido de Archivos
Microsoft Word .doc, .docx
Microsoft Excel .xls, .xlsx
Microsoft PowerPoint .ppt, .pptx
Microsoft Output Message .msg No
Text .txt
HTML .html
JPEG (Imagen) .jpg No No
Bitmap (Imagen) .bmp No No
TIF (Imagen) .tif No
PDF .pdf No No
 

 

Tips & Tricks

Herramientas

  • Utilidad de Reporting para Sharepoint desarrollada por Quest permite visualizar informes de capacidad, uso, predicciones de crecimiento en el uso de librerias, etc. Estos informes son relativos a la gestión de la BD de contenidos de Sharepoint. Este es el enlace a la página de Quest.

 

Novedades

  • Nuevos hotfixes y actualizaciones para WSS 3.0 & MOSS. Podéis encontrar la descripción de los mismos en esta entrada del blog de Joel Olesson.
  • John Holliday ha publicado en Codeplex el código fuente de CAML.NET.
  • Microsoft Office Sharepoint 2007 Sizing and Configuration Tool de HP. Aquí tenéis la descripción de esta herramienta que permite determinar el mejor HW HP para MOSS.
  • Módulo de Syntergy que se integra con Sharepoint y permite copiar de manera precisa items entre listas de Sharepoint  (incluyendo documentos y metadatos de los mismos) simplemente aplicando el clásico Copy & Paste.
  • El desarrollo del BDC Metaman sigue viento en popa. Este producto está adquiriendo una forma impresionante.Lo último es este anuncio de Nick Swan acerca de su nueva BDC Mapper Web Part. La captura de pantalla es espectácular:
  • En el último post, hablábamos sobre el concepto de SaaS. Pues bien, parece que Microsoft en su apuesta por este modelo de software también va a incluir a Sharepoint. En concreto, la versión SaaS para Sharepoint se conocerá como Office Live Workspace.
  • Nueva newsletter sobre conceptos de Sharepoint: Sharepoint Beagle.

Y hasta aqui llega el recopilatorio correspondiente a la octava entrega de la serie. Como siempre, esperamos que os haya resultado de utilidad.

Publicado 8/10/2007 8:55 por Juan Carlos González Martín | 6 comment(s)

Archivado en: ,

Software As a Service (SaaS): ¿Qué es?

Ayer por la mañana tuve la oportinidad de participar en un evento en Microsoft sobre algo que últimamente se oye mucho: Software As a Service (SaaS). Lo primero que os preguntaréis, como me lo he preguntado yo es: ¿qué es eso de SaaS? Una definición bastante completa es la siguiente: SaaS es un modelo de distribución del software que proporciona a los clientes el acceso al mismo a través de la red (generalmente Internet), de manera que les libra del mantenimiento de las aplicaiones, de operaciones técnicas y de soporte. Las aplicaciones distribuidas en la modalidad SaaS pueden llegar a cualquier tipo de empresa sin  importar su tamaño o su ubicación geográfica. Se trata de un modelo que une el producto (software) al servicio, para dotar a las empresas de una solución completa que permita optimizar sus costes y sus recursos.

SaS_Post1

El concepto

La definición anterior está muy bien, pero ¿que implicaciones tiene el modelo SaaS?

  • Desaperece el concepto de licencia, se pasa a hablar de pago por uso. De manera que los clientes se "suscriben" al servicio aportado para poder utilizar las aplicaciones ofrecidas en modalidad SaaS.
  • El software no se distribuye in-house, sino a través de la red.
  • La aplicación está hosteada, de manera que da servicio a muchos clientes.
  • El hecho de que la aplicación esté hosteada implica que no se abre de una infraestructura privada, sino de una infraestructura pública que permite que muchas empresas puedan suscribirse al servicio.
  • Es un modelo descentralizado de uso de aplicacione software.
  • Permite una escalabilidad sin límites.
  • ...

Este modelo es una de los elementos estratégicos claves de Microsoft, como lo demuestran algunas cifras que se aportaron durante el evento:

  • Más del 25 % de los ISV's están desarrollando una oferta de soluciones en modalidad SaaS.
  • Más del 70 % de los ISV's han recibido financiación por parte de Microsoft durante el año 2006 para ofrecer soluciones SaaS.

Hasta aquí todo parece más o menos claro, pero seguro que alguno se preguntará: ¿y SaaS no es lo que ya teníamos con el modelo ASP?La respuesta es que no, ya que:

  • ASP sigue un modelo de licencias frente a SaaS dónde se paga por uso.
  • ASP es un modelo pensado para ofrecer aplicaciones a unos pocos usuarios. Con SaaS, el servicio se ofrece a tantos usuarios como suscriptores.
  • ASP utiliza normalmente una infraestructura privada frente a SaaS que utiliza una infraestructura pública.

Para resumir, en un modelo SaaS:

  • El foco es el servicio frente a hablar de tecnología, aplicaciones, etc.
  • Los clientes pasan a ser virtuales.
  • Hablamos de plataformas de N clientes.
  • El cliente sale claramente beneficiado del modelo:
    • Menor coste e inversión inicial.
    • Menor riesgo.
    • Alta escalabilidad asegurada.
    • El cliente se centra en el negocio.
    • Aumenta la seguridad.
    • La respuesta ante los cambios es muy rápida.

Algunos ejemplos

En este artículo de Infoworld, se agrupan las soluciones SaaS en 4 categorías (que dejan fuera soluciones de otro tipo):

  • Soluciones de Back Office, que incluyen aplicaciones ERP, de compra, de RRHH, etc.
  • Soluciones de mensajería, es decir, de gestión de correos electrónicos, tratamiento de SPAM, protección frente a virus, etc.
  • Aplicaciones CRM.
  • Soluciones de integración.
SaS_Post2 SaS_Post3 SaS_Post4

¿Y desde el punto de vista tecnológico?

Hasta ahora hemos hablado del concepto de SaaS, las implicaciones asociadas al término, que supone para el desarrollador de software y para el cliente, así como algunos ejemplos de soluciones en modalidad SaaS. Pero, ¿qué implicaciones hay desde el punto de vista tecnológico? ¿qué consideraciones tecnológicas hay que tener en mente cuando pensamos en ofrecer soluciones SaaS?

  • Implicaciones tecnológicas para el fabricante de software:
    • Es necesario reescribir el código de las aplicaciones para que funcione correctamente en un entorno descentralizado, permite N-Usuarios y N-Empresas,...
    • Las aplicaciones tienen que incluir servicios que no existína tradicionalmente: monitorización, facturación, etc.
    • Gestión de la escalabilidad y los recuros en la medida en que la infraestructura de hosting puede ser compartida por distintas aplicaciones y un número indeterminado de usuarios.
    • Soporte 24x7, hay que asegurar a los clientes que las aplicaciones funcionan correctamente las 24 h y que no se producen anomalías en el servicio ofrecido.
    • Hay que elaborar un plan de puesta en marcha de mejoras continuas y nuevas versiones.
    • Seguridad en los datos y en las transacciones.
    • ...
  • ¿Cómo voy hacia SaaS?
    • Diseño de la solución:
      • Sea escalable.
      • Permita N-Usuarios.
      • Sea fiable y permita la iteracción de múltiples usuarios.
      • No afecte a otras soluciones.
      • Integre los nuevos servicios y funcionalidades necesarios en una solución SaaS.
      • ...
    • Elegir la mejor arquitectura para el servicio a ofrecer:
      • Tecnologías a utilizar: Java vs .NET, versión de .NET Framework, tecnología para la GUI, ....
      • Número de capas adecuado.
      • Sistema Operativo de los servidores.
      • Integración con otras aplicaciones (del cliente).
      • ...
    • Formación ténica adecuada.
    • Preparar planes de contingencia para el outsourcing de las soluciones.
    • ...
  • Dudas tecnológicas:
    • ¿Sólo son posibles las aplicaciones web dentro de SaaS? La respuesta es que no, se pueden contemplar escenarios offline y clientes ricos que utilicen las funcionalidades de los servicios hosteados. Esto también aplica al desarrollo de aplicaciones en el entorno de Microsoft Office.
    • ¿Me olvido de los dispositivos móviles? Para nada, en las soluciones que implementemos tendremos que contemplar una versión móvil del servicio.
    • Una solución SaaS, ¿está aislada o se puede integrar con otras aplicaciones / soluciones? La respuesta es que no es una solución aislada, sino que tiene que incluir los puntos de extensibilidad necesarios para que se pueda integrar con otros entornos.
  • Implicaciones en la arquitectura de la solución:
    • Requisitos fundamentales:
      • Escalable de manera natural, es necesario definir un plan de escalabilidad en nuestra aplicación para estar preparados ante un número de clientes crecientes y que se aseguren los tiempos de respuesta adecuados: mecanismos de caching, compartición de recursos, entrada / salida asíncrona, etc. Hay que tener en mente que en SaaS no vamos a tener una previsión de clientes / usuarios.
      • Configurable, se trata de que el usuario de manera intuitiva tenga una cierta experiencia de configuración: llegue a lo que para el es su modelo de aplicación.
      • Eficiencia, la solución funcione manera eficiente.
    • Seguridad, pues en el modelo SaaS vamos a tener datos de diferentes clientes.
    • Arquitectura SOA, se trata de concebir soluciones no aisladas, es decir, que puedan interoperar con otras aplicaciones o servicios: Windows Communication Foundation.
    • Permita personalizar y configurar la aplicación a medida de distintos clientes, pero utilizando la misma solución. Idealmente se trataría de compartir infraestructura (servidor IIS, servidor de BD's) y utilizar metadatos para habilitar la personalización y configuración que exige una solución multicliente y multimarca.
    • Sea escalable a distintos niveles:
      • A nivel de aplicación.
      • A nivel de estructura de datos: esquemas de replicación, mantenimientos de referencias al cambiar estructuras de datos, etc.
      • Pruebas de Stress de la solución...es fundamental en un modelo SaaS hacer este tipo de pruebas teniendo en cuenta el modelo de aplicaciones hosteadas en el que se basa.
      • Capacity planning: tener previstos un plan de incremento de capacidad para prever situaciones incremento de carga.
    • Configurabilidad a distintos niveles (y que el usuario puede tocar):
      • Esquema de datos, hay que elegir entre las opciones de: tener una BD aislada, compartir la BD pero no las estructuras de datos, o bien compartir todo.
      • Procesos (workflows) y reglas de negocio...un ejemplo tipo es el workflow de aporbación que tenemos en WSS 3.0 & MOSS.

Post_SaS_5

      • Interfaz de usuario: se adapte a las caracteristicas del usuario. Para cliente web tendríamos las siguientes posibilidades tecnológicas para habilitar este nivel de configuración.
        • ASP.NET:Master Pages, Themes, Web Parts.
        • Silverlight (XAML).
    • Seguridad:
      • ¿Qué posibilidades de autenticación tenemos?
        • Centralizada (ASP.NET membership, STS: WCF).
        • Descentralizada (ADFS y SSO).
      • ¿Qué mecanismo de autorización defino...?
    • ...

Un ejemplo de arquitectura alto nivel que englobe estas y otros consideraciones es la siguiente:

SaS_Post5 

  • ¿Cómo vamos a hacer la monitorización de la aplicación?
    • Lo primero es instrumentar que queremos monitorizar: eventos,contadoresderendimiento.
    • Luego hay que elegir las herramientas de administración: Powershell, MMC.
    • Creando un modelo de salud.
    • Establecimiento de métricas y facturación.
    • ...
  • Y muchas cosas más....

Cómo véis, bajo el concepto de SaaS hay un montón de implicaciones funcionales y técnicas que hay que tener en mente a la hora de pensar en construir una aplicación en esta modalidad.  Por supuesto, en este post he comentado algunas de las implicaciones, pero hay muchas más que comprender y entender sobre SaaS. Finalmente, comentaros que desde Microsoft se está creando un ejemplo de aplicación SaaS: LitwareHR (se ha creado también la correspondiente sección en Codeplex). Espero que el post os haya resultado interesante.

Publicado 5/10/2007 8:55 por Juan Carlos González Martín | 57 comment(s)

Archivado en: ,