Pero como no me siento capacitado -aún- para escribir aludiendo a mis conocimientos y expresándome con mis propias palabras, he preferido dejar un par de links que son los que comencé leyendo yo; ya que me han dado una muy buena idea general del tema y, por qué no, también una idea bastante particular también.
Creo que lo único que restaría incluir en este post es algo de implmentación; no implementación propiamente dicha (utilizando alguna tecnología como .NET o Java) sino viendo algún ejemplo o mejor aún, algún caso real. Si alguien puede aportar, agradecería mucho.
Los links son:
Una intrdoucción : http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
Para profundizar (muy bueno): http://arquitecturaorientadaaservicios.blogspot.com/
Algo más general: http://www.mastermagazine.info/articulo/3391.php
Beneficios (no recuerdo de q web los saqué ;)
- Reducir los costos y el tiempo de desarrollo—Los servicios SOA pueden reutilizarse fácilmente y pueden convertirse en nuevas aplicaciones compuestas
- Reducir los costos de mantenimiento—Los servicios reutilizables reducen el grado de complejidad interna de los servicios de IT
- Aumentar la calidad de los servicios—Una mayor reutilización de servicios crea servicios de mejor calidad en múltiples ciclos de prueba de diferentes consumidores de servicios
- Reducir los costos de integración—Los servicios estandarizados pueden trabajar en conjunto, permitiendo que las aplicaciones dispares se conecten con rapidez y facilidad
- Reducir el riesgo—Menos servicios reutilizables brindan mayor control sobre las políticas gubernamentales de IT y corporativas, y reducen el riesgo general relacionado con el cumplimiento
Bueno, espero que les sirva tanto como a mi.
Saludos!! Hasta pronto.
No voy a decir mucho más porque has dado la info necesaria. Solo que por sus características es difícil encontrar ejemplos específicos porque abundan y en definitiva son transparente al usuario.
ResponderEliminarGeneralmente lo he visto aplicado a servicios webs, aunque no únicamente.
En definitiva es una 'estrategia' de arquitectura, que lo que busca es crear una capa más de abstracción, y esta capa de abstracción a su vez no es mas que un conjunto de componentes de software que resuelven procesos de negocios (relacionada con la capa de modelo de negocios)
SOA es algo asi como un conjunto de interfaces bien definidas entre la capa de presentación y lógica, dicho groseramente. Aclaro:interfaces en el sentido del concepto de diseño.
Ejemplos donde puede ser aplicado:
- en la verificiación de una transacción hecha mediante tarjeta de crédito.
- los diferentes accesos que puede tener una base de datos, por ejemplo de un banco. Los socios solo consultas desde una aplic. cliente, los accionistas consultas y modificaciones desde una aplic. web. Estas diferentes vías que puede tener la bd puede ser pensada como un servicio, de modo que cada individuo accede a diferentes aspectos de la bd, sin necesidad de crear mas de una bd.
Hay servicios que se encargan de 'desviar' la info que viene desde la capa de persistencia (b. de datos), esto suele ser encarado con arq SOA.
Generalmente lo he visto en aplicaciones de gran porte, bancos, ecommerce, etc. Pero hay unos ejemplos mas chicos.
Uno de ellos, es en MyMobileWeb http://www.morfeo-project.org/index.php?option=com_content&task=view&id=25&Itemid=43>
(que estoy intentando aprender ahora -poco éxito yet :p) donde la tecnología de modelo 'multicanal' está basado en la arq. SOA. y en este otro http://www.osoa.org/display/PHP/SOA+PHP+Homepage
Aqui ejemplos mas grossos, sin mayores descripciones sobre cómo fue realizada
http://blogs.zdnet.com/service-oriented/?p=508
Aqui una descrip SOA para aplicaciones Web
http://www10.org/cdrom/papers/506/
Una discusión interesante que se había planteado en un foro, era saber cuando esta arq fallaba, o no era viable.
Saludos desde esta helada mvd...como esta mdzaaa?