Secciones

Web Services are NOT slow

Con este título el equipo de wso2, intentan convencer a los que critican la tecnología web service por el tema de la lentitud en los tiempos de respuesta. La comparativa hace pruebas con 3 implementaciones de web services:
  • axis2/adb
  • axis2/jaxb
  • xfire/jaxb

Configuración del módulo nShield de nCipher


nCipher nShield es uno de los productos del catálogo de nCipher encargado de proteger claves criptográficas. El contenido de la caja está formado por:

  • Tarjeta PCI con el Hardware criptográfico.
  • Lector de tarjetas.
  • Juego de tarjetas.
  • Manual de instalación.
  • Cd con el software y los drivers.
La instalación la hemos realizado sobre un RedHat Enterprise Server 4 Update 2 y se ha realizado la integración con las herramientas java.

Partes de una WSDL

Una de las piezas claves a la hora de implantar una infraestructura SOA son los servicios, y una de las implementaciones más utilizadas y recomendadas para desarrollar los servicios son los web services.

El lenguaje WSLDL es una de piezas claves que todo programador de web services debe conocer . WSDL, Web Service Definition Language, es el lenguaje utilizado para definir el contrato de un web service y está formado por 6 partes:

  • type. Define los tipos de datos utilizados por el servicio.
  • portType. Define la interface abstract del servicio.
  • message. Define el formato de los mensajes del servicio.
  • binding. Define como el portType se mapea con una expresión concreta de formato de datos y protocolos.
  • port. Define la URL donde se encuentra desplegado el servicio.
  • service. Define la lista de elementos port, es decir, la lista de endpoints del servicio.

Workshop SOA Governance de Oracle

El viernes estuve en el workshop de gobierno SOA ofrecido por Oracle en Barcelona. El instructor de Oracle Luis Nogueira nos explicó las herramientas que ofrece Oracle para ayudar en las tareas relativas al Gobierno SOA.

En concreto, los productos y características principales que ofrecen los productos de Oracle son:
  • Oracle Enterprise repository.
    • Analisis de impacto y dependencia.
    • Reportes de análisis de conformidad.
    • Reutilización de servicios.
    • Gestión del ciclo de vida.
  • Oracle Service Registry.
    • Catálogo de servicios.
    • Descubrimiento de servicios.
    • Sincronización automática con el repositorio.
  • Enterprise Manager SOA Management Pack.
    • Gestión de los procesos y servicios productivos.
    • Métricas.
    • Monitor SLA's.
  • Oracle Web Services Manager.
    • Gobierno Services Manager.
    • Seguridad y control de acceso basado en políticas.
Como comentario personal, pienso que aún es necesario dar un tiempo a estos productos antes de poder ser usados en producción, sobre todo debido a la compra de Bea, hace que se esté invirtiendo una gran cantidad de esfuerzo en integrar todos estos productos.

JK

Quien es el de la foto?

Mis compañer@s se preguntan quien es el de la foto.

Se abre la guerra de las caricaturas. Que gane el mejor.

Tot al camp es un clam


Enhorabuena a todos los culés por la victoria en el Camp Nou, aunque seguro que muchos pensaban que sería peor de lo que fué. (Entre ellos yo)

Por cierto, no me machaqueis a correos. ;-)

Gabinete de arquitectura 2008

El martes y miércoles (9 y 10) de Diciembre tuvo lugar en "La Llacuna" nuestra primera reunión como Gabinete de Arquitectura después de la incorporación de nuestro nuevo Director de Tecnología Dani Flores que junto con Juan Dexeus lideran el departamento de arquitectura en IN2. Fué una lástima que Juan no pudiera venir, pero fué debido a una buena causa ya que hace poco ha sido Papa de un niño llamado Daniel.

Durante estos dos días nos hemos estado Luis Felipe, Jose Luis LaTorre, José Carrasco, Alex Ugartondo y Dani Flores y hemos podido hablar de lo que nos gusta y apasiona, la tecnología y también hemos aprovechado para conocernos todos un poco más.

Como resumen de los dos días que estuvimos encerrados, decidimos:
  • Cuales son los roles y las competencias de un Arquitecto In2.
  • Fomentar la formación interna en el 2009 mediante, workshops, sesiones de los viernes.
  • Definir el plan de certificación 2009.
  • Detectar y mentorizar a los futuros compañeros del gabinete de arquitectura.
  • Reunirnos mensualmente para revisar los aspectos técnicos de los proyectos.
Aparte de lo puramente profesional, también tuvimos tiempo de disfrutar del hidromasaje, la sauna, una paella de Castellón, una partidita nocturna de Assault Cube, sessión de gadgets ....

Espero que el año que viene, podamos volver a repetir la experiencia.

JK.

P.D. He de reconocer que pasé un poco de miedo rodeado de tanto geek.

Workshop sobre Aqualogic Service Bus y composición de servicios

El viernes 24 de Octubre estuvimos reunidos en la Sala Oval para realizar un workshop sobre el producto Aqualogic Service Bus. En este caso la charla tuvo el formato de workshop muy práctico, en el que junto a mi compañero Javier Querol.


En el workshop se trataron los siguientes temas:
  • Instalación y configuración de Aqualogic Service Bus.
  • Creación de un webservice de ejemplo.
  • Publicación del business service en el ESB de aqualogic.
  • Creación de un simple proxy service.
  • Composición de sevicios avanzados en el bus.
Como algunos de los asistentes no han tenido la oportunidad de participar en ninguno de los proyectos SOA que estamos llevando a cabo en In2, aquí os dejo un link con una presentación interesante sobre Arquitecturas SOA. También podeis encontrar algunos artículos en mi blog en esta dirección.

Recordar que también podeis encontrar información sobre los ejemplos que Xavi hizo en la carpeta \\superlopez.in2.es\Proyectos\Curs ESB.

Por último, para aquellos que os interese este tema y querais profundizar más, sería muy recomendable revisar el libro "The Definitive Guide to SOA: Oracle Service Bus, Second Edition". Recordar que en in2 hay un programa de puntos para que aquellos que quieran compartir sus intereses o inquietudes con el resto será premiado. En este link encontrareis información sobre el programa de puntos de in2.

Saludos,

JK.

RoadShow Alfresco

Estos días he participado impartiendo varias conferencias en el RoadShow que Alfresco está llevando a cabo por varias ciudades .


La empresa en la que trabajo actualmente, in2, es "Gold Partner" de Alfresco desde el 2006. Nuestros primeros proyectos con Alfresco comenzaron con la versión 1.0 en el año 2005 y llevamos más de 15 implantaciones de Alfresco en clientes como la Generalitat de Catalunya, Area Oberta de Catalunya, Área Metropolitana de Barcelona, CASS, IGN... Muchas de estas implantaciones están en cluster e integradas con el portal Liferay. También disponemos de 4 certificados en Alfresco, uno de ellos es el que escribe, y alrededor de 20 especialistas en desarrollo e instalación sobre Alfresco.

Gracias al camino que hemos recorrido juntos durante estos 3 años, he tenido la oportunidad de impartir charlas en las ciudades de Valencia y Barcelona.
  • En Valencia la presentación trató sobre nuestras referencias en Alfresco y sobre nuestros últimos casos de éxito: CASS Andorra y el Instituto Geográfico Nacional.
  • En Barcelona de como integrar Alfresco con mecanismos de Firma electrónica y que ventajas ofrece al cliente. Para aquellos que quieran ver la presentación, la podeis consultar en aquí.
También tube el placer de conocer a gente de Alfresco España, Andrés Lozano y Bill Brooks, que son las personas de Alfresco encargadas de las zonas de España, Portugal e Italia para Alfresco y que son los promotores de esta "gira".

Las presentaciones de los ponentes las podeis encontrar en esta dirección.

Saludos,

JK

Workshop Liferay en Llacuna.

Durante los días 25, 26, 27 y 28 de Septiembre he impartido un Workshop de liferay en un pequeño pueblicito de Cataluña llamada La Llacuna, en particular hemos estado en una casa rural llamada Arcs Llacuna.

A lo largo de estos 4 días nos hemos dedicado a adentrarnos en el maravilloso mundo de liferay y también ha sido una excusa perfecta para conocer a compañeros de in2.



Durante estos días, además de disfrutar de la tranquilidad de Llacuna, también hemos revisado puntos de portales de 6ª generación y de Liferay:

- Introducción a los Portales de 6ª generación.
- Instalación y configuración de Liferay. (link a la wiki)
- Administración y personalización de Liferay. (link a liferay)
- Entorno de desarrollo liferay. (link a liferay)
- Creación y adaptación de Portlets. (link a liferay)

Aprovecho para agradecer a todos los compañeros de in2 que asistieron al workshop por la atención prestada, la motivación que demostraron a lo largo de todos los días y el "buen rollo" que hubo en todo momento.

Saludos y hasta pronto,

JK.

P.D.1 Pablo, gracias por las fotos. Han quedado muy bien.
P.D.2 También aprovecho para saludar al "amigo" que nos sorprendió la noche del Viernes ;-) Esto me ha dado un idea que quizás ponga en práctica en breve... la "sección rosa".
P.D.3 El libro sobre liferay lo podeis encontrar en la intranet de in2 en \\superlopez

Comparing Java Web Frameworks

Haces algún tiempo que llevo siguiendo las andancas de Matt Raible, un apasionado de la tecnología java, arquitecto de linkedin y creador del framework J2EE appfuse.

Aquí os dejo una presentación que realizó hace algunos días en OSCON 2008.

En esta ocasión hace una comparación entre frameworks java para desarrollo web.




SlideShare Link

Eclipse, svn y proxy

Cuando intentas conectarte a un repositorio de código subversion desde eclipse y te encuentras en una red donde hay habilitado un proxy puedes encontrarte con problemas si usas el plugin subeclipse.

Para solucionar el problema, se puede utilizar el plugin subversive de la empresa Polarion, que es también open source y que permite configurar el proxy en el momento de realizar la configuración del repositorio de código.

Pasos para instalar y configurar el plugin:

  1. En caso de que tengamos instalada el plugin subeclipse, lo primero que debemos hacer es eliminarlo, ya que es incompatible con subversive.
  2. A continuación, debemos seguir las instrucciones de instalación definidas en este link. Es importante escoger correctamente la versión del plugin en función de la versión de Eclipse que tengamos.
  3. Una vez realizado este proceso, debemos escoger el cliente de svn que vamos a utilizar para realizar la conexión. Para poder usar un proxy, se debe usar el cliente svn kit. Para ello, debemos ir al eclipse en Window -> Preferences -> Team -> Svn -> Svn client y escoger el cliente.
  4. A continuación, escoger la dirección del repositorio de código svn y escoger la pestaña que pone proxy settings.



Y con esto, ya podemos descargar y sincronizar nuestros proyectos.

Saludos,

JK.

P.D. La gente de ACA me debe una Chela.

Framework Jboss Seam

JBoss Seam es un framework desarrollado por JBoss. El líder del proyecto es Gavin King, que también es el autor del framework Hibernate.

Jboss Seam combina a los 2 frameworks :

  • Enterprise JavaBeans EJB3.
  • JavaServerFaces JSF.
Con Jboss Seam se puede acceder fácilmente a cualquier componente EJB desde la capa de presentación haciendo referencia a este mediante su nombre de componente seam.

Seam introduce el concepto de contextos. Cada componente de Seam existe dentro de un contexto. El contexto conversacional por ejemplo captura todas las acciones del usuario hasta que éste sale del sistema o cierra el navegador - incluso puede llevar un control de múltiples pestañas y mantiene un comportamiento consistente cuando se usa el botón de regresar de el navegador.


Se puede automáticamente generar una aplicación web de Altas, Bajas, Modificaciones y Consulta, a partir de una base de datos existente utilizando una herramienta de linea de comandos llamada seam-gen incluida con el framework.

El desarrollo WYSIWYG es facilitado a través del uso de las JBoss Tools, que es un conjunto de plug-ins diseñados para el entorno integrado de desarrollo Eclipse.

En mi opinión se trata de un buen framework J2EE, aunque sigo prefiriendo el framework de de Matt Raible llamado AppFuse.

JK.

OpenXava

OpenXava es un marco de trabajo de código abierto para desarrollar aplicaciones de gestión de una forma efectiva. Permite el desarrollo rápido y fácil de mantenimientos y listados pero, a su vez, es lo suficientemente flexible para desarrollar complejas aplicaciones de gestión de la vida real como contabilidad, facturación, gestión de personal, nóminas, gestión de almacenes, etc.

OpenXava permite definir aplicaciones simplemente con POJOs, JPA y anotaciones de Java 5.

Actualmente OpenXava genera aplicaciones web Java (J2EE/JavaEE), que pueden ser desplegadas en cualquier portal Java (JSR-168) como una aplicación de portlets.

La esencia de OpenXava es que el desarrollador define en vez de programar, y el marco provee automaticamente la interfaz de usuario, el acceso a los datos, el comportamiento por defecto, etc. De esta manera, todo lo común se resuelve fácilmente, pero siempre el desarrollador tiene la posibilidad de programar manualmente cualquier parte de la aplicación, de esta forma es lo bastante flexible para resolver los casos particulares. OpenXava está basado en el concepto de componente de negocio.

Top 10 SOA pitfalls

Como algunos de vosotros ya conoceis, durante el último año, aparte de certificarme junto con otros compañeros de in2 como arquitecto SOA en BEA, llevamos realizando proyectos SOA para algunos clientes y esto me ha llevado a leer bastante documentación relacionada con experiencias de otras personas implantado SOA en organizaciones.

Esto me ha servidor para darme cuenta, que SOA está teniendo una gran acogida por cierta parte del mercado y ya se encuetran bastantes implantaciones SOA, en su mayoría en EEUU.

Durante los 2 últimos meses Rik de Groot, Viktor Grgic, Vincent Partington,y Gero Vermaas han creado una entrada en su blog con la lista de los 10 errores más comunes a la hora de implantar SOA en una organización.

Esta es la lista de los errores, organizados en 3 categorías:

Implementation pitfalls

Architectural/design pitfalls

Organizational pitfalls:


Espero esto nos sirva para no cometer los mismos errores que otros en sus implantaciones.

Saludos,

Juan C.

Desplegar un war con portlets en la Shared Library

Hace algún tiempo, comenté como desplegar una webapplication desde comando sin necesidad de utilizar la consola de administración de WLS.

En esta entrada, explicaré los por menores de desplegaren la Shared Library una war en la que contiene una serie de portlets en su interior.

Lo primero que debemos hacer es ir a la consola de comandos de nuestro sistema operativo y buscar el comando:

  • . ./wlserver_10.0/server/bin/setWLSEnv.sh
Esto nos permitirá cargar las variables de entorno necesarias para poder ejecutar el siguiente comando:
  • java weblogic.Deployer -deploy /opt/dev/HelloWorldLibrary-war.war -username weblogic -password weblogic -nostage -library
Una vez realizado este comando, ya tendremos listo el war desplegado sin necesidad de ir a la consola de administración de WLS y evitar así el error que aparece cuando intentamos realizar este proceso desde la consola.

Si al ejecutar el comando recibimos este mensaje de error:

  • Target state: deploy failed on Server AdminServer
    java.lang.ClassNotFoundException: com.bea.p13n.servlets.AnonymousProfileListener
Revisar que bien que se encuentren los parámetros -nostage -library.

En este link podeis encontrar más información.

Espero que os sirva de ayuda.

Formador en ECM de Alfresco

Alfresco es la principal alternativa de código abierto para la gestión del contenido de la empresa. Une la innovación del código abierto con la estabilidad de la verdadera clase de una cierta plataforma empresarial construida por un equipo de los principales miembros de Documentum® y Interwoven® incluyendo el co-fundador de Documentum, designado por :
  • Corporaciones, gobiernos y otras organizaciones buscando soluciones de código abierto ECM
Después de un curso de 5 días en Londrés, Alex y yo obtuvimos la certificación como Formadores en el ECM de Alfresco.

Junto con nosotros, también estuvo un compañero, Toni de la Fuente, al que aprovecho para saludar y mandar un abrazo.
http://www.alfresco.com/assets/images/header/alfresco-logo.gif

Alfresco : Kit de desarrollador

Alfresco ha combinado una variada gama de recursos para aquellas personas interesadas en ampliar Alfresco o crear sus propias aplicaciones personalizadas de gestión de contenido. Éstas incluyen una amplia selección de web scripts, varias aplicaciones de inicio totalmente funcionales y trucos de expertos.

Se puede encontrar todos los recursos siguientes en el Kit de desarrollador en la Comunidad de contenido Alfresco:

  • Aplicaciones de inicio
  • Código de muestra
  • Guía de instalación sencilla
  • Trucos técnicos
  • Presentaciones técnicas
Esperemos que Alfresco consiga con este kit facilitar el desarrollo de personalizaciones de su producto.

nCipher Certified Systems Engineer

Después de un curso de 5 días en Madrid sobre los productos de seguridad criptográfica de nCipher obtuve la certificación.



Aquí el detalle de la certificación.

Cryptographic hardware has become one of the de facto standards for delivering effective Internet security. This course provides delegates with an overview of the nCipher key management and acceleration server based hardware.
The working principles behind the nCipher secure e-commerce accelerators and hardware security modules (HSMs) are discussed including product architecture and installations.
Hands-on workshops are used to reinforce the installation and configuration tasks involved in managing the nCipher hardware.

Liferay con soporte a la nueva JSR-286

El pasado Abril, la empresa Liferay liberó la versión 5.0.1 RC de su producto portal, que incluye las siguientes mejoras:
  1. JSP Wiki integration/replacement of Friki
  2. Wiki File attachment
  3. Wiki Page permissioning
  4. Creole wiki markup
  5. Wiki Page locking
  6. Wiki Versioning
  7. Portlet 2.0 (JSR-286) Support
  8. Page creation workflow
  9. RSS Portlet enhancements
Aquí podeis encontrar información detallada sobre el Roadmap de Liferay portal.

Cabe destacar que proporcionasoporte a la nueva versión de portlet, JSR-286, especificación que amplia y sustituye la ahora antigua JSR-186. La lista de mejoras incluidas en la nueva especificación se podría resumir en los siguientes puntos:
  • Compatibilidad hacia atrás.
    • Es una extensión de la versión 1.0 (JSR-186)
  • El contenedor de portlets debe soportar Servlets 2.4.
    • Es posible utilizar JSP 2.0 y JSTL 1.1
  • Mecanismos de coordinación entre portlets.
    • Eventos y parámetros públicos de renderización
  • Anotaciones.
    • Para los métodos que procesan peticiones de acción,renderización y eventos
  • Filtros de portlets.
    • Similar a los filtros de servlets
  • Soporte para servir recursos.
    • Soporta interacciones AJAX
  • Mejora el soporte para la gestión de la caché de las respuestas de los servlets.
    • Sincronizada con WSRP 2.0
En esta página web podeis encontrar información sobre JSR-286 en castellano.

What is OpenUP?

OpenUP es un método ágil de desarrollo de software que esta incluido dentro de una familia de procesos ágiles basados en Unified Process o UP. El UP es un marco de desarrollo software iterativo e incremental.

OpenUp ha nacido a partir del proyecto Eclipse Process Framework de la fundación Eclipse. Aquí hay un documento pdf con una introducción de OpenUP. Otra introducción se puede encontrar en este artículo de IBM DeveloperWorks.


Recomiendo a todas aquellas personas interesadas en este tipo de metodologías revisarlo, por tratarse de una metodología madura, documentada, open source, focalizada en la creación de la documentación justa y necesaria, enfatiza en directrices, insta a realizar desarrollos iterativos e incrementales, es extensible y adaptable.

En esta linea, Eclipse ha creado OpenUp Basic, una simplificación de OpenUp. En este link podeis encontrar un artículo sobre el tema.

Saludos,

JK

PD. Gracias JC por la info ;-)

Desplegar un ear en WLS sin usar la consola

Hace algún tiempo, en una de mis últimas "aventuras" para un cliente, tuve el placer de conocer a un consultor de Bea Weblogic Barcelona.

Gracías a nuestra colaboración conozco, entre otras cosas, la forma de desplegar un portal en Weblogic Server, sin necesidad de acceder a la consola. Esto tiene las siguientes ventajas:
  • Evita tener que acceder a la consola de WLS.
  • Permite realizar despliegues automáticos.
Estos son los pasos que hay que seguir:
  1. ./setEnv.sh
  2. java weblogic.Deployer -adminurl : -username weblogic -password weblogic -deploy -source -name -nostage -targets Cluster.
Saludos,

JK

Howto : Enable library services automatically

Cada vez que se hace un re-deploy de un ear sin utilizar la opción update de la consola de weblogic server, es decir, un delete más una install de un portal, es necesario activar las library services, si se quiere utilizar las capacidades extendidas de WLP.

Para que esta tarea se haga de forma automática se debe agregar la siguiente línea al fichero content-config.xml:
  • MANAGEMENT_ENABLED true
Para más información sobre el tema se puede consultar este link.

Mi perro nanu

Hoy voy a ha hablar de mi perro. Su nombre es Nanu y es un cocker que lleva compartiendo conmigo 1 año y 5 meses. En esta foto lo podeis ver cuando tan sólo tenía un par de meses. (Los calcetines no son mios..)



Aquí lo podeis ver descansando en el puff donde yo normalmente me sentaba a navegar en el ordenador que tengo en casa. Ahora lo utiliza para descansar miestras espera a que lleguemos a casa.



Y aunque las fotos anteriores os pueden haber dado la sensación de que es un sol y que nunca a roto un plato, no os dejeis engañar por su aspecto angelical, porque tiene un poquito de mala leche.



Desde que está en casa, no puedo volver a utilizar mi puff... :-(

Howto: Despliegue de portlets en shared library en WLP

En este post, explicaré los pasos que se deben seguir para desplegar portlets en Weblogic Portal en las Shared Library de Weblogic Server.

Uno de los problemas que se plantean a la hora de trabajar con WLP en ámbitos multi-proveedor, hace referencia al despliegue de nuevas funcionalidades desarrolladas por diversos proveedores dentro de un instancia de portal, evitando en la medida de lo posible, interferencias entre los trabajos de cada uno.

Para paliar este problema, Bea nos proporciona varios mecanismos, y el que explicaré en este post se basa en desplegar los portlets en las shared library. De esta forma, cada proveedor puede crear sus portlets, desplegarlos en la shared library para después utilizar estos portlets desde el portal que se necesite.

Vayamos pues ha explicar cuales deben ser los pasos a seguir para crear y desplegar un ear en las Shared Library:

  1. Crear un proyecto mediante el workshop de tipo Portal Web Project. En este proyecto se incluirán todos los portlets que queramos compartir.
  2. Crear un proyecto de tipo Portal EAR Project. En este proyecto se incluirá el proyecto de tipo portal creado anteriormente.
  3. Una vez desarrollados los portlets en el Portal Web, se exporta el ear.
  4. A continuación, se conecta a la consola de Weblogic Server como administrador para desplegar el ear. En este paso, tenemos que tener en cuenta que el destino del despliegue debe ser en la Shared Library, es decir, en la pantalla de WLS se debe escoger la opción "Install this deployment as a library".
Una vez tenemos los portlets en la shared library, debemos incorporarlos dentro del portal en el que los queramos consumir. Para ello, debemos de seguir los siguientes pasos:

  1. Conseguir el ear y el war desplegado en la shared library e importar el war dentro del proyecto de portal donde se quieran utilizar los portlets, que es donde se encuentran los portlets.
  2. Cambiar a la vista Merged Projects donde aparecerán en itálica, los portlets que pueden ser linkados dentro del portal.
  3. Seleccionamos los portlets a linkar mediante la opción Copy portlet to project.
  4. Desplegar el nuevo portal y comprobar que en la library aparecen los portlets linkados.
Para más información sobre este tema, podeis consultar la siguiente dirección . Aquí podreis ver la información que os doy más ampliada.

Cualquier puntualización, comentartio, observación,.... será bienvenida.

Salut.

BEA Certified Architect: BEA SOA Enterprise Architecture

Después de algún tiempo de preparación para la certificación como arquitecto SOA de Bea Weblogic, (podeis encontrar más información en: BEA Certified Architect: BEA SOA Enterprise Architecture ) por fin he conseguido la certificación.



Para obtener la certificación se deben superar dos pruebas:
  • SOA Foundations
  • BEA Certified Architect
Después de la compra de Bea por parte de Oracle, la parte de SOA Foundations desaparecerá en Septiembre del 2010 y sólo será necesario pasar el examen "EXAM 1Z0-114 Oracle SOA Foundations, Adoption and Implementation".

Saludos,
JK


The need for Fault Tolerance

Leyendo durante estos días información sobre SOA, encontré un artículo interesante acerca de la necesidad de dotar a los sistemas de un grado aceptable de "tolerancia a fallos".

Aquí va...

We live in crazy times. The market rules, which means you won’t usually have enough time to create well-elaborated, robust system designs. If you’re not fast enough, flexible enough, and cheap enough, you’ll soon find yourself out of the market. Thus, you need fast, flexible, and cheap solutions.

Fast and cheap solutions, however, can’t be well designed and robust. Consequently, you will have to deal with errors and problems. The important point here is fault tolerance.

The most important thing is that your systems run. According to [ITSecCity02]:
• a flightbooking system failure may cost $100,000 an hour.
• a credit card system breakdown may cost $300,000 an hour
• and a stock-trading malfunction may cost $8 million an hour.

As these figures show, fault tolerance is key for large distributed systems. When problems occur, it is important to minimize their effects and consequences.

A petición de JC (alias Carrasco), este artículo ha sido extraido del libro "OReilly - SOA in Practice".

SOA - Parte I - ¿Que es SOA?

Aprovechando que estoy preparando la certificación como arquitecto Bea Weblogic en plataforma SOA, crearé una serie de entradas sobre el tema.

SOA (Service Oriented Arquitecture) en un paradigma para la realización y el mantenimiento de los procesos de negocios enfocados a sistemas distribuidos.
Está basado en 3 principios básicos: servicios, interoperatividad y bajo acoplamiento.

  • El servicio es una funcionalidad de negocio self-contained.
  • Un ESB (Enterprise Service Bus) es la pieza de infraestructura que proporciona un alto grado de interoperatibidad entre los sistemas distribuidos. Proporciona una forma sencilla de distribuir procesos de negocio que usan diferente plataforma y tecnología.
  • Bajo acoplamiento (lose coupling) es un concepto que implica reducir las dependencias entre las diferentes piezas del sistema. Como los procesos de negocio están distribuidos entre diferentes backends, es importante minimizar los efectos provocados por cambios y fallos.

El principio de lo simple

Aunque la mayoría de entradas que haya en este blog estarán relacionadas con temas informáticos, me gustaría comenzar mi blog con un principio que intento aplicar a la hora de tomar decisiones , el principio de la navaja de Occam.

La navaja de Occam (navaja de Ockham o principio de economía o de parsimonia) hace referencia a un tipo de razonamiento basado en una premisa muy simple: en igualdad de condiciones la solución más sencilla es probablemente la correcta.

El postulado es Entia non sunt multiplicanda praeter necessitatem, o «No ha de presumirse la existencia de más cosas que las absolutamente necesarias».

El rol de los Arquitectos de Software

De la misma manera que ocurre con la Arquitectura de Software, existen múltiples definiciones sobre el rol de los arquitectos. Podríamos incluso citar una definición por autor. Esto parece ser causa de que, en general, se ubica a los arquitectos en el contexto de una organización en particular, con las propias necesidades y requerimientos de esa organización.

La realidad parece indicar que es poco probable que se pueda dar una definición de arquitecto, transversal a cualquier organización, y definir un estereotipo de arquitecto que especifique cuáles son sus responsabilidades y habilidades necesarias dentro de un proyecto. Lo que sí es posible es definir prototipos de arquitectos “a muy grandes rasgos” y aplicar cada uno de estos arquetipos, en una situación en particular, dependiendo del contexto de la empresa, del proyecto y del equipo de trabajo.

Tipos de arquitectos de software

Para definir qué es un arquitecto de software, debemos tener en cuenta un contexto y un escenario en particular. Dicho de otra forma, depende de la organización, de su negocio, de sus objetivos, de la influencia del área de sistemas, de la importancia de el/los proyecto/s y del tamaño de los mismos. Teniendo en cuenta este contexto, podemos proponer una serie de categorizaciones:

Arquitecto técnico

Se trata de profesionales con amplios conocimientos técnicos, conocedor del negocio de los proyectos y que, probablemente, esté asignado a uno o varios proyectos al mismo tiempo. Algunas de sus responsabilidades suelen ser: definir los lineamientos de diseño, su arquitectura y demás cuestiones técnicas de los proyectos.

Arquitecto funcional

Tienden a ocupar el rol de team leader y, a su vez, de líder técnico. Manejan el project y planifican junto al PM las iteraciones. Suele representar un canal de comunicación fluida entre el PM y los equipos de desarrollo. Validan diseños; guían a los desarrolladores, para que cumplan con las expectativas de calidad tomando métricas, organizando y promoviendo la documentación y las buenas prácticas; aseguran que el proyecto no se desvíe de la arquitectura previamente definida.

Arquitecto Corporativo

Unifica los dos casos mencionados anteriormente; pero con algunos agregados. Este modelo, tomado sobre la base que propone Bredemeyer Consultingexternal link, es al que apunta Epidata Consulting para sus arquitectos de software.

Probablemente, en la literatura referida al tema se logre recopilar una mayor cantidad de perfiles o roles de arquitectos. Esta mayor variedad, en general, apunta a grandes organizaciones, donde cada función está claramente dividida y, sobre todo, limitada, transformando al arquitecto en un ente con responsabilidades restringidas.