7
 Arquitectura DDD (Domain Driven Design) en Windows Azure Caso de Éxito Web CMS migrado con éxito a la Plataforma Windows Azure usando una arquitectura DDD (Domain Driven Design) Resumen País: España Industria: ISV Perfil Fundada en 1997, SOFTENG es una consultoría e ingeniería de software experta en tecnologías Microsoft y especializada en cloud: Sistemas críticos y Office365, Intranets colaborativas con SharePoint y desarrollo de proyectos Web externos con Softeng Portal Builder. Situación Las aplicaciones de gestión de contenidos tradicionales se basan en soluciones on  premise, presentando mayores costes de propiedad y ofreciendo escasa rentabilidad y productividad para la gestión de los sitios web. Solución Softeng Portal Builder es la evolución de los sistemas tradicionales de gestión de contenidos hacia una plataforma empresarial para llevar a cabo proyectos web en la nube de forma rentable, ayudando a impulsar a las empresas a través de la Web y ofreciendo autonomía y productividad en la gestión del sitio con bajos costes de propiedad. Beneficios  Impulsa a las empresas mediante la Web  Productividad  Autonomía  Menor coste de propiedad “Ofrecemos la primera plataforma CMS del mundo basada en SaaS funcionando sobre Windows Azure, cuya robustez y fiabilidad nos ha permitido poner en marcha decenas de proyectos para el sector público y privado.” Carlos Colell Sorinas, Director General, SOFTENG  Por regla general, las aplicaciones tradicionales de gestión de contenidos están limitadas a la creación de sitios corporativos sencillos basados en plantillas predefinidas, por lo que no están diseñadas para crear sitios web más a medida, ni para que éstos sean gestionados con autonomía y productividad por parte de los usuarios de negocio. Asimismo, las aplicaciones clásicas no suelen contemplar aspectos necesarios para crear sitios públicos como la mejora del posicionamiento en buscadores, la traducción simultánea a otros idiomas, la facilidad para conectarse con otras aplicaciones de negocio ni la inclusión de sistemas para mejorar la conversión de visitantes en nuevos clientes. Softeng Portal Builder es una plataforma innovadora optimizada para funcionar en la nube y que cubre todos los a spectos anteriores de forma flexible y sencilla. Además, al basarse en las últimas tecnologías de desarrollo cloud  sobre la Plataforma Microsoft Windows Azure, Portal Builder también da un paso adelante en este aspecto con respecto a los CMS clásicos ya que “vive” en la nube y se ofrece mediante suscripción.

CasestudyPortalBuilder 29-11-13

Embed Size (px)

Citation preview

Page 1: CasestudyPortalBuilder 29-11-13

7/23/2019 CasestudyPortalBuilder 29-11-13

http://slidepdf.com/reader/full/casestudyportalbuilder-29-11-13 1/6

 

Arquitectura DDD (Domain Driven Design) enWindows AzureCaso de Éxito 

Web CMS migrado con éxito a la PlataformaWindows Azure usando una arquitecturaDDD (Domain Driven Design)

ResumenPaís: EspañaIndustria: ISV

Perfil

Fundada en 1997, SOFTENG es unaconsultoría e ingeniería de softwareexperta en tecnologías Microsoft yespecializada en cloud: Sistemas críticos yOffice365, Intranets colaborativas conSharePoint y desarrollo de proyectos Webexternos con Softeng Portal Builder.

SituaciónLas aplicaciones de gestión de contenidostradicionales se basan en soluciones on

 premise, presentando mayores costes depropiedad y ofreciendo escasarentabilidad y productividad para lagestión de los sitios web.

Solución

Softeng Portal Builder es la evolución delos sistemas tradicionales de gestión decontenidos hacia una plataformaempresarial para llevar a cabo proyectosweb en la nube de forma rentable,ayudando a impulsar a las empresas através de la Web y ofreciendo autonomíay productividad en la gestión del sitio conbajos costes de propiedad.

Beneficios

  Impulsa a las empresas mediante la Web  Productividad  Autonomía  Menor coste de propiedad

“Ofrecemos la primera plataforma CMS del mundo

basada en SaaS funcionando sobre Windows Azure, cuyarobustez y fiabilidad nos ha permitido poner en marchadecenas de proyectos para el sector público y privado.”

Carlos Colell Sorinas, Director General, SOFTENG 

Por regla general, las aplicaciones tradicionales de gestión de

contenidos están limitadas a la creación de sitios corporativos

sencillos basados en plantillas predefinidas, por lo que no estándiseñadas para crear sitios web más a medida, ni para que éstos

sean gestionados con autonomía y productividad por parte de los

usuarios de negocio. Asimismo, las aplicaciones clásicas no suelen

contemplar aspectos necesarios para crear sitios públicos como la

mejora del posicionamiento en buscadores, la traducción

simultánea a otros idiomas, la facilidad para conectarse con otras

aplicaciones de negocio ni la inclusión de sistemas para mejorar la

conversión de visitantes en nuevos clientes.

Softeng Portal Builder es una plataforma innovadora optimizada

para funcionar en la nube y que cubre todos los aspectos

anteriores de forma flexible y sencilla. Además, al basarse en las

últimas tecnologías de desarrollo cloud  sobre la Plataforma

Microsoft Windows Azure, Portal Builder también da un paso

adelante en este aspecto con respecto a los CMS clásicos ya que

“vive” en la nube y se ofrece mediante suscripción.

Page 2: CasestudyPortalBuilder 29-11-13

7/23/2019 CasestudyPortalBuilder 29-11-13

http://slidepdf.com/reader/full/casestudyportalbuilder-29-11-13 2/6

 

SituaciónSOFTENG es una empresa de capital100% español, que desde 1997 vieneofreciendo a sus clientes soluciones en elsector de las Tecnologías de laInformación. Tras centenares deproyectos desarrollados con éxito, se haconsolidado en el mercado como unagran elección para llevar a caboproyectos que requieren de tecnologíanovedosa para su realización. Para ello,utiliza su experiencia y conocimiento

acumulado durante todos estos años,refrendado por su certificación comoGold Certified Partner de Microsoft, suposición entre los top partners deMicrosoft en España y su programainterno de formación continua e I+D.

Softeng está constituida por un equipomultidisciplinar de profesionalesaltamente cualificados, al que pertenecendiseñadores, consultores, ingenieros yarquitectos de software certificados y congran experiencia en múltiplestecnologías, todos ellos con talento paraofrecer soluciones creativas anecesidades complejas.

En este período de tiempo, SOFTENG haobtenido importantes reconocimientosde Microsoft, el Ministerio de Ciencia eInnovación y la Generalitat de Catalunya,por dedicar una parte importante de susrecursos a tareas de investigación ydesarrollo. Gracias a todo ello, SOFTENGha logrado posicionarse como un

referente en su sector al aportar nuevas einnovadoras soluciones para la industria.

Sus propuestas están enfocadas a las tresáreas que conforman los retos queplantean sus clientes: Desarrollo deproyectos Web mediante Softeng PortalBuilder, Intranets colaborativas medianteSharePoint, e Ingeniería de sistemascríticos (que abarca el diseño, desplieguey administración de infraestructurasrobustas con tecnología Microsoft, tanto

on-premise como en “la nube”).

A la primera área pertenece su soluciónSofteng Portal Builder, una plataformaconcebida para el desarrollo y gestión deproyectos Web empresariales,evolucionada hacia “la nube”

aprovechando los beneficios que ofreceWindows Azure de Microsoft ydesarrollada usando una arquitecturaorientada a dominio (DDD).

El punto de partida antes de estaevolución era una aplicación dearquitectura compleja que podía estarinstalada en los servidores del centro dedatos de SOFTENG, en los del propiocliente o en un ISP, pero que no podíafuncionar de forma óptima en la nubepues para ello, requería un granconsumo de recursos para que surendimiento fuera el deseado.

Construye, Gestiona yConectaLanzado en noviembre del 2008, Portal

Builder es una plataforma en la nubedestinada a construir cualquier tipo deaplicación Web por compleja que sea,facilitando la integración con otrasaplicaciones empresariales. En un ámbitomás de portal, permite posicionar un sitio

web en los principales buscadores asícomo generar nuevas oportunidades denegocio, aumentando la conversión devisitantes a nuevos clientes medianteherramientas de Marketing Online.También ofrece sistemas de análisis delcomportamiento de los usuarios y unagestión muy productiva de contenidosmediante una poderosa edición visualdesde el propio site (“Edit-in-Place”) así

como capacidades de traducciónsimultánea (manteniendo los contenidosen un único idioma y difundiéndolos envarios).

Solución Softeng Portal Builder + Windows Azure

“Al contar con WindowsAzure ofrecemos unasolución más económicaque las propuestas on- premise e incluso que lasbasadas en open source,debido a que hemoseliminado los costes demigración de versiones y

la pérdida deoportunidades durante laespera entre las mismas” 

Carlos Colell Sorinas

Director General de SOFTENG

Page 3: CasestudyPortalBuilder 29-11-13

7/23/2019 CasestudyPortalBuilder 29-11-13

http://slidepdf.com/reader/full/casestudyportalbuilder-29-11-13 3/6

 

Migrando a una arquitecturaorientada al dominioLos fabricantes de software desarrollanaplicaciones para cumplir requisitosfuncionales. No obstante, la arquitecturadel software tiene como finalidad hacercumplir los requisitos no funcionales (ode calidad de servicio QoS), lo que enparte no deja de ser paradójico. Portanto, una buena arquitectura debeapoyar los requisitos funcionales de unaaplicación con requisitos no funcionales:

 Rendimiento Escalabilidad Robustez Extensibilidad Productividad en desarrollo:

Adaptando funcionalidades- 

Desarrollando nuevas prestaciones- Resolviendo bugs

Los requisitos funcionales y los nofuncionales son como el ying-yang deuna aplicación. Uno no puede existir sin

el otro. Softeng Portal Builder encaja muybien en la candidatura de una aplicacióncon arquitectura DDD: Una aplicacióngrande, con lógica compleja y un ciclo devida largo, con constantes cambios,mejoras y ampliaciones.

Hacía tiempo que el equipo de Softengestudiaba aplicar un enfoque DDD asíque cuando la compañía decidió cambiarla arquitectura para que Softeng PortalBuilder funcionara de forma óptima en

Windows Azure, se decidió que era elmomento idóneo para tomar estecamino.

Durante la fase de incepción de la nuevaarquitectura, Softeng tomó contacto conla versión beta de la Guía de“Arquitectura N-Capas orientada alDominio con .NET 4”, creada por

Microsoft Ibérica. Si bien aún estabamadurando, esta guía mostró un claromapa de arquitectura DDD relacionada

con las tecnologías de Microsoftdisponibles para realizar el trabajo.

Aplicación de ejemplo comobase del proyectoSofteng se entusiasmó con la aplicaciónde ejemplo, la NLayerApp V 0.9, queactualmente se encuentra en V2.0 beta.La primera ventaja que se obtuvo fue laestructuración lógica del proyecto yejemplos de colaboración de servicios,entidades del dominio y repositorios. Ladivisión lógica en carpetas virtuales(Solution Folders) es excelente y ladivisión en Proyectos muy buena. La

aplicación actual 2.0 beta ofreceexcelentes ejemplos de un buen modelodel dominio, identificando ejemplos deagregados, entidades del dominio, valueobjects y repositorios por cada agregadoraíz. Además muestra una excelentedistinción entre las responsabilidades deservicios del dominio y servicios deaplicación.

Otro beneficio de utilizar como base laNLayerApp fue aprovechar la

implementación del patrón repositorioutilizando Entity Framework (EF) quepropone el ejemplo. El equipo deingenieros de Softeng cambió el tipo deentidades de EF a POCO encontraposición a las IPOCO (Self-TrackingEntities) que proponía en aquel entoncesla aplicación, ya que después deprototipos e investigación los POCOparecían más adecuados para entornosWeb Forms y MVC que los que ofrecía laaplicación en aquel entonces. Con eltiempo la aplicación NLayerApp "migró"también a entidades POCO “Code First de EF 4.1”, tecnología mucho más

adecuada para un proyecto DDD por laflexibilidad que ofrece

Además, la Guía de Arquitectura y laaplicación de ejemplo de Microsofttambién ayudó a los ingenieros deSofteng a cubrir aspectos importantes dearquitectura que no se cubren en el librooriginal de Eric Evans, tales como lainyección de dependencias (DI) e

inversión de control (Ioc) utilizandoMicrosoft Unity. Bien utilizado sirve paraseguir el principio de diseño Open

“Bien implementado,DDD resuelve la mayorpesadilla de una granaplicación: Que sucomplejidad acabeimpidiendo realizareficazmenteampliaciones en elsoftware sin tener un

impacto imprevisible ynegativo, convirtiéndoseen una aplicaciónobsoleta.” 

Christian Rodríguez

Arquitecto de Softeng Portal Builder

Gestión de versiones desde BackOffice Studio

AR UITECTURA

Page 4: CasestudyPortalBuilder 29-11-13

7/23/2019 CasestudyPortalBuilder 29-11-13

http://slidepdf.com/reader/full/casestudyportalbuilder-29-11-13 4/6

 

Closed Principle o Protected Variations,importante principio de diseño quepermite flexibilidad y extensibilidad. 

DDD: Retos y ventajasLa implementación efectiva de unaarquitectura DDD no es tarea fácil. No setrata de coger la aplicación de ejemplo ycambiar un par de nombres. Requierecierta formación y conocimientos tantoteóricos como prácticos. Esimprescindible utilizar la experiencia parareconocer las ventajas que proporcionala orientación al dominio y los problemasque resuelve. Lamentablemente, muchasveces no hay otra manera de aprenderloque equivocarse y rectificar. Por lo tanto,es necesario disponer de un equipo deingenieros con buenas habilidades enAnálisis y Diseño Orientado a Objetos(OO A/D) muy implicado y dispuesto aformarse en técnicas de DDD. Asimismofue clave que el equipo aprendiera lasvirtudes de un modelo rico, la separaciónde responsabilidades de aplicación (el

QUE) y de dominio (el COMO). Lospatrones y bloques de construcciónutilizados en DDD (Agregados, Entidades,Objeto-Valor, Servicio del Dominio,Factoría, Repositorio, etc.) deben, comotodo patrón de diseño, servir comolenguaje de comunicación entre losdesarrolladores. Por lo tanto, convieneque todo el equipo de ingenieros tengamuy claro cuáles son lasresponsabilidades de cada capa o patrón,celebrando también reuniones de

"brainstorming" cuando hay dudas osolapamientos. Un detalle significativo enel proyecto de Softeng Portal Builder fueque a diferencia de otras aplicaciones, eldominio es muy técnico: Analíticas deWeb, Optimizaciones para motores debúsqueda, procesado de html, etc, por loque surgían muchas dudas de qué eradominio, aplicación o infraestructura.Por otra parte, es importante mantener alequipo formado en la ventaja de unmodelo rico para evitar caer enpeligrosos anti-patrones como Anemic

Domain Model o Fat Service Layer. Caerestos patrones nos puede llevar, comobien nos advierte Martin Fowler, a tener

el coste que representa una arquitecturaDDD sin aprovechar ninguna de susventajas. 

Una arquitectura orientada a DDD noresuelve todos los problemas, no existenlas "Balas de plata", pero ayuda a quepuedan resolverse. Los Bugs siguenexistiendo, pero pueden resolversemejor. Los problemas de rendimientosiguen apareciendo, pero puedensolventarse. Las Refactorizaciones a unmodelo más profundo con mayorentendimiento del dominio siguensiendo necesarias, pero también puedenllevarse a cabo con menor impacto.

Sin embargo, según Christian Rodriguez,, bien implementado, DDD resuelve lamayor de todas las pesadillas queconlleva una gran aplicación: “Que la

complejidad acabe por convertirla en una

aplicación obsoleta que ya no puede

crecer, debido a que su complejidad

interna es demasiado grande para realizar

modificaciones y nuevos desarrollos sin

tener un impacto imprevisible y negativo

en la aplicación.” Edición desde el propio Site mientras se navega

Inte ración de herramientas de Marketin Online

Análisis visual del comportamiento de los usuarios

Page 5: CasestudyPortalBuilder 29-11-13

7/23/2019 CasestudyPortalBuilder 29-11-13

http://slidepdf.com/reader/full/casestudyportalbuilder-29-11-13 5/6

 

“Nuestra plataforma está

encuadrada en el estado-del-arte de la Tecnología,y su arquitectura DDDunto a Windows Azurecontribuyen en granmedida a lograrlo.” 

Carlos Colell Sorinas

Director General de SOFTENG

Diagrama 1 – Arquitectura deSofteng Portal Builder.

Diagrama 2 – Cómo se distribuye la arquitectura deSofteng Portal Builder en Azure

Page 6: CasestudyPortalBuilder 29-11-13

7/23/2019 CasestudyPortalBuilder 29-11-13

http://slidepdf.com/reader/full/casestudyportalbuilder-29-11-13 6/6

 

La Plataforma WindowsAzure La plataforma Windows Azureproporciona una excelente base paraofrecer productos y servicios online. Loscomponentes principales incluyen: Windows Azure. Windows Azure es

el entorno de desarrollo, de serviciosde alojamiento y de gestión en lanube. Proporciona a losdesarrolladores potencia yalmacenamiento a la carta para

albergar, escalar y administraraplicaciones Web en Internetdesplegadas dinámicamente en losDatacenters de Microsoft.

 AppFabric: Windows Azure satisfacelas necesidades de conectividad delos desarrolladores a través de lossiguientes servicios: o El Service Bus conecta los

servicios y aplicaciones más alláde los límites de la nube paraayudar a los desarrolladores a

crear aplicaciones distribuidasentre diferentes datacenters.o El Servicio de Control de Acceso 

proporciona control de accesofederado, basado en seguridadbasada en CLAIMS y entidadesSAML 2.0 y ws-security.

o AppFabric Cache: Ofrecealmacenamiento en cachédistribuido.

 Microsoft SQL Azure. Ofrece elprimer servicio de bases de datosrelacional y autogestionado en la

nube, basado en SQL Server.

Para aprender más sobre la plataformaWindows Azure, visite: www.windowsazure.com 

Para Más InformaciónPara más información sobre losproductos y servicios de Microsoft llameal teléfono de Atención al Cliente: 902197 198.

Para acceder a más información sobre losproductos y servicios de Microsoftconsulte nuestra Web enwww.microsoft.es 

Para más información sobre los

productos y servicios de SOFTENG,puede llamar al teléfono +34 93 237 5911 o visitar su sitio web en: www.softeng.es

Recursos Adicionales:Puede visitar: Descarga: Kit de Formaciónde la Plataforma Windows Azure 

Puede Visitar: Arquitectura y Desarrollopara Windows Azure 

© 2011 Microsoft Corporation. Todos los derechosreservados. Este documento se ha elaborado con f inesmeramente informativos. MICROSOFT NO OFRECEGARANTIAS, NI EXPRESAS NI IMPLICITAS, EN ESTERESUMEN.

Documento publicado en Octubre de 2011

Software y Servicios Plataforma Windows Azure− Windows Azure− Microsoft SQL Azure

Microsoft Visual Studio

− Microsoft Visual Studio 2010

Tecnologías− Microsoft ASP.NET− Microsoft MVC− Microsoft .NET Framework 4.0