Diseño de Aplicaciones SOA usando Visual Studio Team System Sergio Acosta, Arquitecto Plataforma .NET Crosshorizons
Prerequisitos Nivel 200 (Intermedio) Programación .NET en general (C#) Entendimiento de Web Services Idea de las bondades de SOA Nivel 200 (Intermedio)
Preguntas? Para enviar una pregunta, utilizar el botón "Ask a Question"
Service Oriented Architecture Un enfoque para crear systemas distribuidos a partir de servicios autónomos
Fundamentos de SOA Las fronteras son explícitas Los servicios son autónomos Compartir contratos (no modelo de clases) Compatibilidad basada en políticas (ejemplo: WS-Policy) SOA != Web Services
Retos ???? Todos entendemos los conceptos de alto nivel (y beneficios) Genial soporte para tecnologías relacionadas con SOA (XML, XSD, WSDL, HTTP, SOAP, etc) ???? Conceptos Tecnología How-to Mejores prácticas herramientas
Descubriendo el hueco Herramientas: Generación 1 Estilo ‘RPC’ ‘Transparente’ Construyo una clase La incluyo en un [WebService] La puedo consumir remotamente ! Fronteras NO explícitas ! Compartiendo modelo de clases ! Servicios no autónomos !
Demo WebServices Anti-SOA
Cubriendo el hueco Diseño de Servicios basado en Contratos (Contract-First) Contrato WSDL Clases XSD Contrato WSDL Clases XSD
Soporte de herramientas congruente con mejores prácticas SOA y VSTS Soporte de herramientas congruente con mejores prácticas
Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Visual Studio Team Edition Software Architects Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Testers Distributed System Designers Application Designer Dynamic Code Analyzer Load Testing System Designer Static Code Analyzer Manual Testing Logical Datacenter Designer Code Profiler Test Case Management Deployment Designer Unit Testing Code Coverage Class Designer (in Visual Studio Standard Edition and higher) Visio for Enterprise Architects (in MSDN Premium Subscription) Team Explorer (includes Team Foundation Server CAL) Visual Studio Professional Edition Visual Studio Team Foundation Server Change Management Reporting Integration Services Team Build Work Item Tracking Project Portal Project Management
Paradigma SOA en VSTS Centrado en Arquitectura y Fundamentos SOA NO centrado en modelo de clases Permite iniciar con el ‘big picture’ Nos habilita para traducirlo a tecnología
Modelo de Definición de Sistemas Capas Aplicaciones System Definition Model Hosting de Aplicaciones Servidores lógicos y Topología de Red The System Definition Model provides us with a common language for describing all aspects of an IT system and for implementing our Design for Operations strategy. It is able to capture ‘knowledge’ in the form of metadata about application and system architectures, deployment requirements, hosting environments etc thereby bridging those communications gaps. SDM defines four layers to systems architectures with communication pathways between the layers described via Endpoints. Each layer can specify both settings and constraints for the other layers. It is an holistic attempt to describe everything about a system. It becomes a living blueprint of a system which can then be consumed by various tools for development, automated deployment and management of applications. Applications These are the deployed applications Dealt with by the new Application Connection Designer and System Designer Application Hosting Describes things like IIS and/or SQL server for example Dealt with by the Logical DataCenter Designer Logical Machines and Network Topology This is the OS layer and will also include things like switches, routers and firewalls. Hardware These are the bare-metal servers. MS expect partners, e.g. Cisco, Dell, Compaq etc to add their own resources to the SDM to fully participate in the above. The grand vision is that using SDM, we will be able to model the entire construction of a system/application from a bare-metal server. The bottom two layers are not addressed by VS 2005 but will be in the Longhorn release (VS Orcas) Once modelled, simulated and automated deployment and management tools become serious and realistic options. The first down payment on this vision are the Distributed System Designers in Team System. Hardware
Distributed System Designers Application Designer Diseñar configuración de aplicaciones y sistemas Logical Datacenter Designer System Designer Class Designer, Code Editors Diseñar y desarrollar aplicaciones Deployment Designer Diseñar, desarrollar y probar deployment Describir modelo de hosting de aplicaciones Describir deployment de un sistema a un DataCenter Copia de binarios y recursos durante deployment Reportes HTML, Script XML para herrameintas de deployment Validar y corregir errores Deployment Report
Application Connection Designer This diagram shows several applications connected together via their respective endpoints. An Application is a single deployable unit of functionality which may consume or provide services via endpoints. We might think of these as single projects in VS although they might not be e.g. a Web application and some class libraries. Endpoints are a key concept in SDM. There are configurable consumer endpoints linked to addressable service provider endpoints. Configurable means e.g. not baking the URL into the code but putting it in a config file and addressable means that it can be called from outside. This whole diagram could then be used to create what’s called a System Diagram which would also expose one or more endpoints itself. A System is a configured set of 1 or more applications which together form the unit of deployment and management. In our terms, that System would be several projects; e.g. Web Application, Class Libraries, Web Service, Database etc which together form the system. For example, Web StoreFront System, Order Processing System, Payroll System etc. The applications within the system may well be reusable across systems. Systems have their own EndPoints and can be composed together to form even more complex systems.
Logical Data-Center Designer Application Hosting Layer So the Logical DataCenter design is all about specifying server roles and the available and allowable communication pathways (the wires) between them It would generally be Infrastructure Architects who create these models for use by the developers. They can be strongly named and versioned so developers can’t change them. An important point are the generic components/end points. The point needs to be expressed that most systems are heterogeneous and we expect people to depict these other components on the design surface (not found in the tool box). This could be a talking point during the demonstration. Lets have a look at it now with a demo.
SOA Contract First con VSTS Demo SOA Contract First con VSTS
Resúmen SOA implica un ‘cambio de paradigma’ en el desarrollo de aplicaciones distribuidas El soporte de herramientas debe apoyar los fundamentos de SOA Centrado en Contrato (Contract-First) VSTS ofrece un conjunto de herramientas alineadas con la forma correcta de hacer SOA VSTS for Software Architect permite al arquitecto de software comenzar con los conceptos generales y traducirlos a tecnología
Mas información The MSDN Architecture Center Web Services Enhancements http://msdn.microsoft.com/architecture http://msdn.microsoft.com/architecture/soa Web Services Enhancements http://msdn.microsoft.com/webservices/building/wse Visual Studio Team System http://msdn.microsoft.com/vstudio/
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.