Secciones

SOA: Bajo acoplamiento versus composición

Los principios de diseño de servicios que propone Tomas Erl en su libro "SOA: Principles of service design", habla de los siguientes principios que se deben tener en cuanta a la hora de diseñar servicios en una infraestructura SOA:
  1. Estandarización y diseño del contrato.
  2. Bajo acoplamiento.
  3. Abstracción.
  4. Reusabilidad.
  5. Autonomía.
  6. Sin estado. (Stateless)
  7. Catalogación.
  8. Composición.
En este post, voy a hablar de la relación entre el bajo acoplamiento y la composición, pero antes creo que es necesario algunas definiciones:
Acoplamiento: Unión de dos piezas o cuerpos que se ajustan perfectamente.
Composición:  Acción y resultado de componer.
Componer: Formar una cosa juntando y ordenando varias.
Como podéis comprobar en estas definiciones, ambos principios están bastante ligados, ya que tratan de temas relacionados con la unión entre componentes. Por tanto cuando se define un servicio con un grado de acoplamiento bajo, se están diseñando piezas independientes, es decir, que su grado de ajuste es mínimo.
Esta característica tiene una serie de ventajas, quizás la más importante sea que si alguno de los componentes cambia, la repercusión sobre los demás será pequeña, cosa que no sucedería si el grado de acoplamiento fuera alto.

La composición por contra, mide la capacidad de crear servicios nuevos a partir de otros. Pero si estos servicios tienen un índice de acoplamiento bajo, tendré más dificultad para componer nuevos a partir de los existentes, ya que su grado de ajuste en pequeño.

Como conclusión, cuando menor sea el grado de acoplamiento, menor será el grado de composición o al menos mayor será el trabajo que se debe realizar para componer nuevos servicios.

Espero no haberos aburrido demasiado con este tema.

Saludos,

JK

Tip: Portecle; GUI sobre keytool

Otra de las herramientas Open Source que utilizo bastante a menudo y que facilita el trabajo con almacenes de claves en Java, también denominadsos KeyStores es Portecle.


Se trata de una GUI sobre Java que permite realizar de forma sencilla tareas como:
  • Create, load, save, and convert keystores.
  • Generate DSA and RSA key pair entries with self-signed version 1 X.509 certificates.
  • Import X.509 certificate files as trusted certificates.
  • Import key pairs from PKCS #12 and PEM bundle files.
  • Clone and change the password of key pair entries and keystores.
  • View the details of certificates contained within keystore entries, certificate files, and SSL/TLS connections.
  • Export keystore entries in a variety of formats.
  • Generate and view certification requests (CSRs).
  • Import Certificate Authority (CA) replies.
  • Change the password of key pair entries and keystores.
  • Delete, clone, and rename keystore entries.
  • View the details of certificate revocation list (CRL) files.
Saludos,

JK


Tip: Howto testing Two ways SSL

Cuando nos encontramos con problemas al configurar un servidor con seguridad SSL podemos utilizar las herramientas que vienen por defecto con openssl.

One-Way SSL
Si queremos testear una conexión SSL que no requiere autenticación por parte de cliente, podemos utilizar el siguiente comando:
openssl s_client -connect localhost:443
Two-Way SSL
Si queremos testear una conexión SSL que requiere autenticación de cliente,el comando es un poco más complicado:
openssl s_client -connect localhost:443 -key test_1.pem -cert test_1.cer

test_1.pem es la clave privada del certificado utilizado para identificarse como cliente.
test_1.cer es el certificado de la clave privada.
En este link podeis algunos howtos muy interesantes sobre temas relacionados con el protocolo SSL o TLS.

Saludos,
JK

LiveScribe; Mi nuevo gadget

Hace unos días compré por ebay mi nuevo gadget. Se trata del bolígrafo digital de la marca livescribe.

A partir de ahora, espero no volver a perder ninguna nota de este estilo:



O de este otro ;-)

También puedo guardar las firmas digitales de algunos compañer@s:


Y como una imagen, o video en este caso, vale más que mil palabras, aquí os dejo el link donde podeis ver las cosas que se pueden hacer con el:




Tip: TinyCA; Una CA simple

Muchas veces necesitamos realizar tareas que implican tener conocimientos sobre temas relacionados con la seguridad criptográfica, como por ejemplo, configurar un servidor con SSL, crear un certificado de servidor, crear un certificado de cliente, crear un webservices con tokens SAML...

Para facilitar este tipos de trabajos, podemos utilizar TinyCA que es una herramienta para generar de forma gráfica y sencilla tareas como las que hemos comentado anteriormente y además funciona tanto en Linux como en Windows.



Para todos aquellos Ubunteros, que cada vez somos más, la instalación es muy sencilla, basta con ir al gestor de paquetes y buscar tinyca, para los de windows next --> next --> next... ;-)

Por cierto, Josep White, era esta la herramienta que utilizamos ;-)


Saludos,
JK

Tip: Default Passwords in Weblogic 10g R3 KeyStore

Por defecto cuando se instala Weblogic Server 10g R3, se crean una serie de KeyStores donde se encuentran las claves y los certificados generados por defecto. Se crean dos keystores:
  • DemoIdentity.jks. Contiene las claves privadas utilizadas para establecer sesiones SSL de servidor.
  • DemoTrust.jks. Contiene la lista de autoridades de certificación de confianza.
Los passwords por defecto para cada uno de estos keystores, son:
  • DemoIdentity.jks. DemoIdentityKeyStorePassPhrase
  • DemoIdentity.jks. DemoTrustKeyStorePassPhrase
Saludos,
JK