Presentation on theme: "Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 7. Tópicos avanzados."— Presentation transcript:
Dr. Juan José Aranda Aboy Aspectos Avanzados de la Tecnología de Objetos 7. Tópicos avanzados
Dr. Juan José Aranda Aboy Contenidos Concurrencia. –Patrones utilizados para resolver la Concurrencia Distribución: CORBA y RMI. –Patrones utilizados para resolver la Distribución –Patrones utilizados para resolver la Presentación Desarrollo bajo el modelo cliente - servidor e Internet.
Dr. Juan José Aranda Aboy Objetivos específicos Conocer, describir y aplicar apropiadamente los patrones utilizados para resolver la concurrencia y la distribución. Explicar las características de CORBA y Java RMI, comparándoles adecuadamente. Utilizar el modelo Cliente – Servidor para construir sistemas.
Dr. Juan José Aranda Aboy Patrones utilizados para resolver el Modelo de Negocio y su Acceso Un modelo del proceso de negocios (Business Process Model -BPM) es una herramienta para modelado de procesos que suministra una descripción cercana de la lógica del negocio y reglas del negocio desde el punto de vista de los asociados en dicho negocio (a business partner's point of view). Un BPM utiliza un diagrama que muestra las interacciones entre procesos, flujos, mensajes y protocolos de colaboración desde uno o varios puntos iniciales a varios puntos finales potenciales. Un BPM puede compararse con un mercado donde se intercambian datos ó servicios. Usualmente es el resultado de una necesidad surgida del negocio ó de una oportunidad (arises from a compelling business need or opportunity).
Dr. Juan José Aranda Aboy Definición de proceso Un proceso se define como un conjunto de tareas, actividades o acciones interrelacionadas entre sí que, a partir de una o varias entradas de información, materiales o de salidas de otros procesos, dan lugar a una o varias salidas también de materiales (productos) o información con un valor añadido. Hay tres tipos de actividades en un proceso: –Valor agregado: Aquellas que transforman los datos e insumos para crear información y productos o servicios para el cliente. –Traspaso: Aquellas en las que se entrega de manera interdepartamental o externa la información y productos. –Control: Aquellas que permiten que las actividades de traspaso se lleven a cabo con calidad tiempo y costo establecido.
Dr. Juan José Aranda Aboy Proceso de negocio es un conjunto de tareas relacionadas lógicamente llevadas a cabo para lograr un resultado de negocio definido. Cada proceso de negocio tiene sus entradas, funciones y salidas. Las entradas son requisitos que deben tenerse antes de que una función pueda ser aplicada. Cuando una función es aplicada a las entradas de un método, tendremos ciertas salidas resultantes. es una colección de actividades estructurales relacionadas que producen un valor para la organización, sus inversores o sus clientes. Es, por ejemplo, el proceso a través del que una organización realiza sus servicios a sus clientes. puede ser parte de un proceso mayor que lo abarque o bien puede incluir otros procesos de negocio que deban ser incluidos en su función. En este contexto un proceso de negocio puede ser visto a varios niveles de granularidad. El enlace entre procesos de negocio y generación de valor lleva a algunos practicantes a ver los procesos de negocio como los flujos de trabajo que se efectúan las tareas de una organización. es usualmente el resultado de una Reingeniería de Procesos. El modelado de procesos es usado para capturar, documentar y rediseñar procesos de negocio.
Dr. Juan José Aranda Aboy Los procesos de negocio pueden ser vistos como un recetario para hacer funcionar un negocio y alcanzar las metas definidas en la estrategia de negocio de la empresa. Hay dos tipos principales de procesos de negocio: 1.Procesos centrales – Estos procesos dan el valor al cliente, son la parte principal del negocio. Por ejemplo, “Repartir mercancías” 2.Procesos de soporte – Estos procesos dan soporte a los procesos centrales. Por ejemplo, “contabilidad”, “Servicio técnico”. Los procesos de negocio consisten en subprocesos, decisiones y actividades. Un subproceso es parte un proceso de mayor nivel que tiene su propia meta, propietario, entradas y salidas. Las actividades son partes de los procesos de negocio que no incluyen ninguna toma de decisión ni vale la pena descomponer (aunque ello sea posible). Por ejemplo, “Responde al teléfono”, “Haz una factura” perspectiva en torno a los procesos que son realizados por un trabajo en equipo teniendo en cuenta al cliente el cual fija las ritmos de los resultados. Esto facilita el acercamiento y el acuerdo con los clientes, mejora la motivación de los empleados y existe una mayor facilidad para responder a cambios en el contexto. Para aplicar los procesos se deben tener claras las tareas, una estructura jerárquica y una tendencia a la interacción y comunicación vertical.
Dr. Juan José Aranda Aboy Reingeniería de Procesos Se define como “la reconcepción fundamental y el rediseño radical de los procesos de negocios para lograr mejoras dramáticas en medidas de desempeño tales como en costos, calidad, servicio y rapidez” se trata de una reconcepción fundamental y una visión holística de una organización. Preguntas como: ¿por qué hacemos lo que hacemos? y ¿por qué lo hacemos como lo hacemos? es radical hasta cierto punto, ya que busca llegar a la raíz de las cosas: no se trata solamente de mejorar los procesos, sino y principalmente, busca reinventarlos. crea cambios directos y radicales que requieren unas circunstancias en la organización para adoptarse con éxito: –Sensibilización al cambio. –Planeación estratégica. –Automatización. –Gestión de Calidad Total. –Reestructuración Organizacional. –Mejora Continua. –Valores compartidos. –Perspectiva individual. –Comportamiento en el lugar de trabajo. –Resultados finales.
Dr. Juan José Aranda Aboy Etapas de la reingenieria Pueden ser: Identificación de los procesos estratégicos y operativos existentes o necesarios, y creación de un mapa (un modelo) de dichos procesos. Jerarquización del mapa de procesos para su rediseño, y determinación de los procesos clave, aquellos que se abordarán primero o con mayor interés. Desarrollo de la visión de los nuevos procesos mejorados. Reingeniería (creación y rediseño) de procesos, realizada por consultores externos, especialistas internos, o una mezcla de ambos. Preparación y prueba de los nuevos procesos (procesos pilotos). Procesos posteriores de mejora continua.
Dr. Juan José Aranda Aboy Business Process Management Disciplina empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los procesos de negocio (BPR), que se deben modelar, automatizar, integrar, monitorizar y optimizar de forma continua. Como su nombre lo sugiere Business Process Management (BPM) se enfoca en la administración de los procesos del negocio. A través del modelado de las actividades y procesos logramos un mejor entendimiento del negocio y muchas veces esto presenta la oportunidad de mejorarlos. La automatización de los procesos reduce errores, asegurando que los mismos se comporten siempre de la misma manera y dando elementos que permitan visualizar el estado de los mismos. La administración de los procesos nos permite asegurarnos de que los mismos estén ejecutándose eficientemente y obtener información que luego puede ser usada para mejorarlos. Es a través de la información que se obtiene de la ejecución diaria de los procesos que se puede identificar posibles ineficiencias en los mismos y de esta forma optimizarlos. Para soportar esta estrategia es necesario contar con un conjunto de herramientas que den el soporte necesario para cumplir con el ciclo de vida de BPM. Este conjunto de herramientas son llamadas Business Process Management System y con ellas se construyen aplicaciones BPM.
Dr. Juan José Aranda Aboy Motivaciones Existen diversos motivos que mueven la gestión de Procesos de Negocio (BPM), dichos motivos son: –Extensión del programa institucional de calidad –Cumplimiento de legislaciones –Crear nuevos y mejores procesos –Entender que se está haciendo bien o mal a través de la compresión de los procesos –Documentar procesos para outsourcing y definición de SLA (Service Level Agreement) –Automatización de procesos –Crear y mantener las cadenas de valor
Dr. Juan José Aranda Aboy Reglas de negocio Reglas de negocio es la colección de políticas y restricciones de negocio de una organización. Un ejemplo de reglas de negocio sería: –"Un cliente al que facturamos más de € al año es un cliente de tipo A" –"A los clientes de tipo A les aplicamos un descuento del 10% en pedidos superiores a 3.000€" –Las organizaciones funcionan siguiendo múltiples reglas de negocio, explícitas o tácitas, que están embebidas en procesos, aplicaciones informáticas, documentos, etc... Pueden residir en la cabeza de algunas personas o en el código fuente de programas informáticos. –En los últimos años se viene observando una tendencia a gestionar de forma sistemática y centralizada las reglas de negocio, de forma que sea fácil y sencillo consultarlas, entenderlas, utilizarlas, cambiarlas, etc... Para ello se puede utilizar un motor de reglas de negocio.
Dr. Juan José Aranda Aboy Business process modeling The term process model is used in different contexts. For example, in Business process modeling the enterprise process model is often referred to as the business process model. The goals of a process model are: To be Descriptive –Track what actually happens during a process. –Takes the point of view of an external observer who looks at the way a process has been performed and determines the improvements that have to be made to make it perform more effectively or efficiently. Prescriptive –Defines the desired processes and how they should/could/might be performed. –Lays down rules, guidelines, and behavior patterns which, if followed, would lead to the desired process performance. They can range from strict enforcement to flexible guidance. Explanatory –Provides explanations about the rationale of processes. –Explore and evaluate the several possible courses of action based on rational arguments.arguments –Establish an explicit link between processes and the requirements that the model needs to fulfill.
Dr. Juan José Aranda Aboy Business Process Modeling(also known as Business Process Discovery, BPD) is the activity of representing both the current ("as is") and future ("to be") processes of an enterprise, so that the current process may be analyzed and improved. BPM is typically performed by business analysts and managers who are seeking to improve process efficiency and quality. The process improvements identified by BPM may or may not require IT involvement, although that is a common driver for the need to model a business process, by creating a process master. Change management programs are typically involved to put the improved business processes into practice. With advances in technology from large platform vendors, the vision of BPM models becoming fully executable (and capable of simulations and round-trip engineering) is coming closer to reality every day.Change management Business Process Modeling plays an important role in the business process management (BPM) discipline. Since both Business Process Modeling and Business Process Management share the same acronym (BPM), these activities are sometimes confused with each other.business process management
Dr. Juan José Aranda Aboy Modeling language standards that are used for BPM include Business Process Modeling Notation (BPMN), Business Process Execution Language (BPEL), Unified Modeling Language (UML), and Web Services Choreography Description Language (WS-CDL). Other technologies related to business process modeling include model-driven architecture and service-oriented architecture.Business Process Modeling NotationBPMNBusiness Process Execution LanguageBPEL Unified Modeling LanguageWeb Services Choreography Description LanguageWS-CDLmodel-driven architectureservice-oriented architecture BPM addresses the process aspects of an Enterprise Business Architecture, leading to an all encompassing Enterprise Architecture. The relationships of a business processes in the context of the rest of the enterprise systems (e.g., data architecture, organizational structure, strategies, etc.) create greater capabilities when analyzing and planning enterprise changes. For example, during a corporate merger it is important to understand the processes of both companies in detail so that management can correctly and efficiently identify and eliminate redundancies in operations. Business Process Modeling has always been a key aspect of business process reengineering (BPR) and continuous improvement approaches, such as Six Sigma. BPM tools such as Lombardi, Holosofx, and TIBCO are used in order to represent a business process, to run a simulation of the process and for communication purposes.Enterprise Business ArchitectureEnterprise Architecturebusiness process reengineeringBPRSix Sigma
Dr. Juan José Aranda Aboy Técnicas There are different styles for representing processes: "scripts," "programs," and "hypertext." Process scripts are interactively used by humans as against process programs which are enacted by a machine. They support non determinism whereas process programs can, at best, support process deviation under pre-defined constraints. determinism The hypertext style of process representation is a network of links between the different aspects of a process, such as product parts, decisions, arguments, issues, etc. Scripts and programs are two styles which may be applicable to prescriptive purposes whereas hypertext is well suited to descriptive and explanatory purposes. Strict enforcement of the prescriptive purpose can clearly be represented in process programs whereas flexible guidance requires the process model to be represented in process scripts. Descriptive and explanatory purposes require the establishment of relationships between different elements of a process trace. These relationships are well articulated as hypertext links.
Dr. Juan José Aranda Aboy BPM viewDescriptionProcess language Analysis It corresponds to the PowerDesigner V9 BPM. It does not include any implementation details and can be used as an input document to do object-oriented analysis Analysis Collaborative It is particularly suitable to describe the collaborations between partners that are all considered at the same level. It allows you to analyze, design or document Business-to- Business exchanges (B2B) ebXML 1.01 and 1.04 Executable It is particularly suitable for designing the process internal to an organization. It focuses on the implementation of one side of the collaboration of a collaborative BPM. It can be generated on a BPM engine BPEL4WS 1.1 or Sybase Integration Orchestrator 4.0 It is particularly suitable for designing the orchestration of Web services without being linked to any platform or language. It cannot be generated on a BPM engineService Oriented Architecture (SOA) The Business Process Model offers the following views that you design using the appropriate process language:
Dr. Juan José Aranda Aboy Objects in a BPM (_) Package Used to organize elements into groups. Not available for sub-process diagrams as you cannot create packages within sub-process diagrams Organization unit Element that hosts or implements processes and resources. It can be a company, a system, a service, an organization, a user or a role. It can also represent business partners for processes Message format—Definition of data exchanged between processes Process Task to perform Composite process —Complex process decomposed to be further detailed Start Starting point of the processes described in the process diagram End Termination point of the processes described in the process diagram
Dr. Juan José Aranda Aboy Objects in a BPM (_) Decision Decision to take when several flow paths are possible. Only one path will be triggered at execution time Synchronization Enables synchronization of flows between two or more concurrent actions or allows the design of a split Flow Transition between processes, starts, ends, decisions or synchronizations Resource Storage unit of abstract data circulating within the model, which is accessed by a process to perform actions Resource flow Access of a process to a resource Data—Defines the type of information exchanged between business processes Role association Unidirectional relationship that designs a link between objects
Dr. Juan José Aranda Aboy Objects in a BPM (_) Message part—Portion of the WSDL (Web Services Description Language) message Top-level process—Global service that does not belong to a graph but describes its behavior in a sub-graph Service provider—Object that gathers a set of service interfaces, for which it represents a namespace Service interface—Object that gathers a set of operations, for which it represents a namespace Operation—Implementation for an atomic process (activity) Data transformation Used to copy data from one variable to another Variable—Data container local to a process Correlation—Ordered list of variables Event—Manages interruptions in the normal execution of the process
Dr. Juan José Aranda Aboy Business Process Modeling Notation The Business Process Modeling Notation (BPMN) is a standardized graphical notation for drawing business processes in a workflow. BPMN was developed by Business Process Management Initiative (BPMI), and is now being maintained by the Object Management Group since the two organizations merged in 2005.business processesworkflowBusiness Process Management InitiativeObject Management Group The primary goal of BPMN is to provide a standard notation that is readily understandable by all business stakeholders. These business stakeholders include the business analysts who create and refine the processes, the technical developers responsible for implementing the processes, and the business managers who monitor and manage the processes. Consequently BPMN is intended to serve as common language to bridge the communication gap that frequently occurs between business process design and implementation. Currently, there are scores of business process modeling languages, tools and methodologies. The adoption of BPMN standard notation will help unify the expression of basic business process concepts (e.g., public and private processes, choreographies) as well as advanced modeling concepts (e.g., exception handling, transaction compensation).business process modeling
Dr. Juan José Aranda Aboy Business Process Execution Language (BPEL) is a business process modeling language that is executable.business process modeling The origins of BPEL can be traced to WSFL and XLANG.WSFL XLANG It is serialized in XML and aims to enable programming in the large.XML programming in the large The concepts of programming in the large and programming in the small distinguish between two aspects of writing the type of long-running asynchronous processes that one typically sees in business processes. programming in the small business processes
Dr. Juan José Aranda Aboy BPEL4WS The Business Process Execution Language for Web Services (BPEL4WS) provides an XML notation and semantics for specifying business process behavior based on Web Services. A BPEL4WS process is defined in terms of its interactions with partners. A partner may provide services to the process, require services from the process, or participate in a two-way interaction with the process.
Dr. Juan José Aranda Aboy When to work with BPEL4WS? You define a BPM with the BPEL4WS process language when you need to implement with the BPEL4WS standard language in order to share your business process model.
Dr. Juan José Aranda Aboy ¿Qué es SOA? it is an architecture that relies on service- orientation as its fundamental design principle. Service-orientation describes an architecture that uses loosely coupled services to support the requirements of business processes and users.service- orientationloosely coupledservices Resources on a network in a SOA environment are made available as independent services that can be accessed without knowledge of their underlying platform implementation.network These concepts can be applied to business, software and other types of producer/consumer systems.
Dr. Juan José Aranda Aboy SOA is a design for linking business and computational resources (principally organizations, applications and data) on demand to achieve the desired results for service consumers (which can be end users or other services). OASIS (the Organization for the Advancement of Structured Information Standards) defines SOA as the following:Organization for the Advancement of Structured Information Standards A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations. There are multiple definitions of SOA, the OASIS group and the Open Group have created formal definition with depth which can be applied to both the technology and business domains.OASISOpen Group
Dr. Juan José Aranda Aboy Why SOA? The main drivers for SOA adoption are that it links computational resources and promotes their reuse. Enterprise architects believe that SOA can help businesses respond more quickly and cost-effectively to changing market conditions.Enterprise architects This style of architecture promotes reuse at the macro(service) level rather than micro(objects) level. It can also simplify interconnection to - and usage of - existing IT (legacy) assets. In some respects, SOA can be considered an architectural evolution rather than a revolution and captures many of the best practices of previous software architectures. In communications systems, for example, there has been little development of solutions that use truly static bindings to talk to other equipment in the network. By formally embracing a SOA approach, such systems are better positioned to stress the importance of well-defined, highly inter-operable interfaces. SOA promotes the goal of separating users (consumers) from the service implementations. Services can therefore be run on various distributed platforms and be accessed across networks. This can also maximize reuse of services
Dr. Juan José Aranda Aboy SOA guiding principles Reuse, granularity, modularity, composability, componentization, and interoperabilitygranularitymodularity interoperability Compliance to standards (both common and industry-specific) Services identification and categorization, provisioning and delivery, and monitoring and tracking
Dr. Juan José Aranda Aboy The following specific architectural principles for design and service definition focus on specific themes that influence the intrinsic behaviour of a system and the style of its design: Service EncapsulationEncapsulation Service Loose coupling - Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each otherLoose coupling Service contract - Services adhere to a communications agreement, as defined collectively by one or more service description documentsService contract Service abstraction - Beyond what is described in the service contract, services hide logic from the outside world Service reusability - Logic is divided into services with the intention of promoting reuse Service composability - Collections of services can be coordinated and assembled to form composite services Service autonomy – Services have control over the logic they encapsulate Service optimization – All else equal, high-quality services are generally considered preferable to low-quality ones Service discoverability – Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanismsService discoverability
Dr. Juan José Aranda Aboy Service-oriented design and development The modelling and design methodology for SOA applications has become known by the terms service-oriented analysis and design and SOAD.service-oriented analysis and designSOAD SOAD is a design methodology for developing highly-agile systems in a consumer/producer model that abstracts implementation from process, such that a service-provider can be modified or changed without affecting the consumer.
Dr. Juan José Aranda Aboy SOA is a logical executable process language that allows you to orchestrate your processes without being linked to any platform or language. It belongs to the Service Orchestration family. The SOA process language is very close to BPEL4WS, except that: ·It has no generation and reverse functions ·Any type of operation can be attached to a process (BPEL4WS only supports One-Way and Request-Response operations on processes) ·No correlation can be defined for sent messages An SOA BPM is a model that allows you to assemble software components that are designed by a WSDL. Therefore, you can import WSDL files in an SOA BPM.
Dr. Juan José Aranda Aboy Conceptual model of a SOA architectural style
Dr. Juan José Aranda Aboy The architectural style and principles The architecture style defining a SOA describes a set of patterns and guidelines for creating loosely coupled, business-aligned services that, because of the separation of concerns between description, implementation, and binding, provide unprecedented flexibility in responsiveness to new business threats and opportunities. A SOA is an enterprise-scale IT architecture for linking resources on demand. In a SOA, resources are made available to participants in a value net, enterprise, line of business (typically spanning multiple applications within an enterprise or across multiple enterprises). It consists of a set of business-aligned IT services that collectively fulfill an organization’s business processes and goals. You can choreograph these services into composite applications and invoke them through standard protocols, as shown in Figure 2 below.Figure 2 A service is a software resource (discoverable) with an externalized service description. This service description is available for searching, binding, and invocation by a service consumer. The service provider realizes the service description implementation and also delivers the quality of service requirements to the service consumer. Services should ideally be governed by declarative policies and thus support a dynamically re-configurable architectural style.re-configurable architectural style
Dr. Juan José Aranda Aboy In order to migrate to a SOA, you need some additional elements that go beyond service modeling. These include: Adoption and maturity models. Where is your enterprise at in the relative scale of maturity in the adoption of SOA and Web Services? Every different level of adoption has its own unique needs. Assessments. Do you have some pilots? Have you dabbled into Web services? How good is your resulting architecture? Should you keep going in the same direction? Will this scale to an enterprise SOA? Have you considered everything you need to consider? Strategy and planning activities. How do you plan to migrate to a SOA? What are the steps, tools, methods, technologies, standards, and training you need to take into account? What is your roadmap and vision, and how do you get there? What’s the plan? Governance. Should existing API or capability become a service? If not, which ones are eligible? Every service should be created with the intent to bring value to the business in some way. How do you manage this process without getting in the way? Implementation of best-practices. What are some tried and tested ways of implementing security, ensuring performance, compliance with standards for interoperability, designing for change? In addition to identification, specification, and realization described in this article, the service-oriented modeling approach includes the techniques required for deployment, monitoring, management, and governance required to support the full SOA life cycle. The above discussions on migration to SOA and the additional activities after realization deserve an article of their own, which I will get to in a subsequent column in this series. For now, let’s assume that you scoped the project and decided where to focus on: a focal point for transformation of existing systems or services to a new set of systems and services has been defined. You can now start service-oriented modeling to build your service-oriented architecture.
Dr. Juan José Aranda Aboy Layers of SOA
Dr. Juan José Aranda Aboy Service-oriented modeling and architecture (SOMA) IBM’s SOMA refers to the more general domain of service modeling necessary to design and create SOA. SOMA covers a broader scope and implements service-oriented analysis and design (SOAD) through the identification, specification and realization of services, components that realize those services (a.k.a. "service components"), and flows that can be used to compose services. SOMA includes an analysis and design method that extends traditional object-oriented and component-based analysis and design methods to include concerns relevant to and supporting SOA. It consists of three major phases of identification, specific and realization of the three main elements of SOA, namely, services, components that realize those services (aka service components) and flows that can be used to compose services. SOMA is an end-to-end SOA Method for the identification, specification, realization and implementation of services (including information services), components, flows (processes/composition). SOMA builds on current techniques in areas such as domain analysis, functional areas grouping, variability-oriented analysis (VOA) process modeling, component-based development, object-oriented analysis and design and use case modeling. SOMA introduces new techniques such as goal-service modeling, service model creation and a service litmus test to help determine the granularity of a service. SOMA identifies services, component boundaries, flows, compositions, and information through complementary techniques which include domain decomposition, goal-service modeling and existing asset analysis.
Dr. Juan José Aranda Aboy Activities of service-oriented modeling
Dr. Juan José Aranda Aboy shows the activities that are typically conducted by each of the roles of provider and consumer. Note that the provider’s activities are a superset of the consumer’s activities (for example, the provider would also be concerned with service identification, categorization, and so forth). In many cases, the differentiation of the roles comes from the fact that the consumers specify the services they want, often search for it, and once they are convinced of the match between the specification of the service they are looking for, and that provided by a service provider, they bind and invoke the service as needed. The provider, in turn, needs to publish the services they are willing to support; both in terms of functionality and most importantly in terms of the QoS that consumers will require. This implicit contract between consumer and provider might mature into an explicit contract in terms of SLAs; negotiated either electronically or through business and legal venues.
Dr. Juan José Aranda Aboy The service-oriented modeling and architecture method The process of service-oriented modeling and architecture consists of three general steps: identification, specification and realization of services, components and flows (typically, choreography of services).
Dr. Juan José Aranda Aboy Business-driven development Business-driven development is a methodology for developing IT solutions that directly satisfy business requirements. This is achieved by adopting a model-driven approach that starts with the business strategy, requirements and goals and then transforms them into an IT solution. The transformation is typically achieved by applying model transformations. Due to the alignment of the business layer and the IT layer, it is possible to propagate changes of the business (semi-)automatically to the IT systems. This leads to increased flexibility and shorter turnaround times when changing the business and adapting the IT systems. BDD shares these objectives with SOA and SOAD, which makes it one of the candidate methodologies for SOA design. SOMA and BDD can be used in combination.Business-driven development
Dr. Juan José Aranda Aboy When to work with Service Oriented Architecture? When you decide to use the Service Oriented Architecture process language, you generally do not know yet which platform you are going to use to execute your processes. However, SOA allows you to design the Web services orchestration by providing access to service providers, service interfaces and operations.
Dr. Juan José Aranda Aboy What is a Web service? A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described, and discovered by XML artifacts, and supports direct interactions with other software applications using XML-based messages via Internet-based protocols. Web services are software components that are developed using specific technologies from three primary technology categories: –An XML-based description format (for example, WSDL) –An application messaging protocol (for example, SOAP) –A collection or transport protocol (for example, HTTP) In each of these categories, there are proprietary (vendor- or platform- specific) technologies as well as open (vendor- or platform-independent) technologies available. Service-oriented applications include applications that MAY make use of Web service technologies such as SOAP but MAY NOT include a WSDL or other XML-based description. Such applications are considered Web-service-like but are not technically Web services.
Dr. Juan José Aranda Aboy Service-oriented application protocols
Dr. Juan José Aranda Aboy Enterprise Web services are Web services that do provide a WSDL description but MAY make use of proprietary application messaging or transport protocols. An example of such a service would be one that sends SOAP messages over IBM MQSeries using JMS. Internet Web services are enterprise Web services that MUST only use open application messaging or transport protocols. An example of such a service would be one that sends OTA XML messages over HTTP. XML Web services represent the very small subset of Internet Web services that MUST use the W3C's adopted XML-based messaging protocol over a narrow range of transport protocols. Specifically, XML Web services will only send SOAP messages, and only send them over HTTP, SMTP, or raw TCP/IP connections.
Dr. Juan José Aranda Aboy Domain of Web service protocols
Dr. Juan José Aranda Aboy Web services help to reduce complexity by encapsulating business processes into reusable components. Web services help to improve interoperability by acting as a wrapper around legacy or platform-specific applications. Web services can be composed together to perform higher- level business functions. Web services help to hide back-end implementation details through the use of standardized or well-known interface definitions. Web services enable just-in-time integration by promoting loose coupling and late binding. Web services are platform and implementation neutral, thus promoting true interoperability. Web services leverage existing established Internet standards.
Dr. Juan José Aranda Aboy Web Service Choreography is a specification by the W3C defining a XML-based business process modeling language that describes collaboration protocols of cooperating Web Service participants, in which services act as peers, and interactions may be long-lived and stateful.W3CXMLbusiness process modelingWeb Service The underlying intuition behind the notion of choreography can be summarised as follows. “Dancers dance following a global scenario without a single point of control" Web Service Choreography leverages the power of Web services to allow entities to create business processes that mirror today's dynamic and ever- changing business needs. Organisations can expose their application software and resources as Web services so that others can dynamically find and use them in their business processes. Creating a business process requires not only a clear definition of collaboration patterns of all its components but also a way of depicting standard B2B interactions. WS-Choreography addresses the vision of true Web service coordination and collaboration by: –Providing practical models for dynamic, reusable and scalable process compositions and choreography –Addressing technical completeness/correctness/executability issues –Enabling more dynamic, semi-automated composed processes –Enabling the incorporation of semantics
Dr. Juan José Aranda Aboy Orchestration describes the automated arrangement, coordination, and management of complex computer systems, middleware, and services.middleware It is often discussed as having an inherent intelligence (trait) or even implicitly autonomic control, but those are largely aspirations or analogies rather than technical descriptions. In reality, orchestration is largely the effect of automation or systems deploying elements of control theory.intelligence (trait)autonomicautomationcontrol theory This usage of orchestration is often discussed in the context of virtualization, provisioning, and dynamic datacenter topics. It is often used as a buzzword.virtualizationprovisioningbuzzword A somewhat different usage relates to the process of coordinating an exchange of information through web service interactions. (See also service-oriented architecture).web serviceservice-oriented architecture
Dr. Juan José Aranda Aboy Ejemplos de orquestación Oracle BPEL Process Manager provides a framework for easily designing, deploying, monitoring, and administering processes based on BPEL standards. BPEL Process Manager is the service orchestration solution on Oracle's SOA Suite.Oracle BPEL Process Manager Intervoice Media Exchange contains an orchestration engine that has been designed to initiate and manage media interactions. It is the industry's first commercially available product that has implemented State Chart eXtensible Markup Language (SCXML) as the framework for building complex multi-modal interactions.Intervoice Media ExchangeSCXML TIBCO BusinessWorks is a very functional orchestration, integration and transformation tool that supports BPEL, Web Services, common integration activities and visual modeling of orchestration processes.TIBCO BusinessWorks Microsoft BizTalk Server contains an orchestration engine often used for business process management (BPM), allowing developers to quickly orchestrate complex business processes involving multiple disparate systems.Microsoft BizTalk Server business process management NetBeans Enterprise Pack is an open-source SOA tool that contains BPEL visual designer and runtime that allow to easily orchestrate Web Services in a BPEL process, execute, test and debug the designed processesNetBeans Enterprise Pack
Dr. Juan José Aranda Aboy SOA and web service protocols SOA may be built on Web services standards (e.g., using SOAP) that have gained broad industry acceptance. These standards (also referred to as web service specifications) also provide greater interoperability and some protection from lock-in to proprietary vendor software. One can, however, implement SOA using any service-based technology, such as Jini.Web servicesSOAPweb service specificationsJini Service-oriented architecture is often defined as services exposed using the Web Services Protocol Stack. The base level of web services standards relevant to SOA includes the following:Web Services Protocol Stack XML - a markup language for describing data in message payloads in a document formatXML HTTP (or HTTPS) - request/response protocol between clients and servers used to transfer or convey informationHTTPHTTPS SOAP - a protocol for exchanging XML-based messages over a computer network, normally using HTTPSOAP XACML - a markup language for expressing access control rules and policies.XACML Web Services Description Language (WSDL) - XML-based service description that describes the public interface, protocol bindings and message formats required to interact with a web serviceWeb Services Description Language Universal Description, Discovery, and Integration (UDDI) - An XML-based registry to publish service descriptions (WSDL) and allow their discoveryUniversal Description, Discovery, and Integration Note, however, that a system does not necessarily need to use any or all of these standards to be "service-oriented." For example, some service oriented systems have been implemented using Corba, Jini and REST.CorbaJiniREST
Dr. Juan José Aranda Aboy SOA, Web 2.0, and mashups Web 2.0 refers to a "second generation" of web sites, primarily distinguished by the ability of visitors to contribute information for collaboration and sharing. Web 2.0 applications use Web services and may include Ajax program interfaces, Web syndication, blogs, and wikis. While there are no set standards for Web 2.0, it is characterised by building on the existing web server architecture and using services. Web 2.0 can therefore be regarded as displaying some SOA characteristics.Web 2.0AjaxWeb syndicationblogswikis Mashups are also regarded by some as Web 2.0 applications. The term "enterprise mashup" has been coined to describe Web applications that combine content from more than one source into an integrated experience, which share many of the characteristics of service-oriented business applications (SOBAs), which are applications composed of services in a declarative manner. There is ongoing debate about "the collision of Web 2.0, mashups, and SOA", with some stating that Web 2.0 applications are a realisation of SOA composite and business applications.Mashupsservice-oriented business applications
Dr. Juan José Aranda Aboy SOA 2.0 or Advanced SOA Amid much negative reaction, Oracle is taking up SOA 2.0 as "the next- generation version of SOA" combining service-oriented architecture and Event Driven Architecture, and categorizing the first iteration of SOA as client-server driven. Even though Oracle indicates that Gartner is coining a new term, Gartner analysts indicate that they call this advanced SOA and it is 'whimsically' referred to as SOA 2.0. Most of the pure-play middleware vendors (e.g., webMethods and TIBCO) have had SOA 2.0 attributes for years. SOA 2.0 can therefore be regarded as "more marketing noise than anything else" and product evangelism rather than a new "way of doing things".Oracle Event Driven ArchitectureGartnerwebMethodsTIBCO However, other industry commentators have criticized attaching a version number to an application architecture design approach, while others have stated that the "next generation" should apply to the evolution of SOA techniques from IT optimization to business development.
Dr. Juan José Aranda Aboy What are the challenges faced in SOA adoption? One obvious and common challenge faced is managing services metadata. SOA-based environments can include many services which exchange messages to perform tasks. Depending on the design, a single application may generate millions of messages. Managing and providing information on how services interact is a complicated task. metadata Another challenge is providing appropriate levels of security. Security model built into an application may no longer be appropriate when the capabilities of the application are exposed as services that can be used by other applications. That is, application-managed security is not the right model for securing services. A number of new technologies and standards are emerging to provide more appropriate models for security in SOA. See SOA Security entry for more info.SOA Security As SOA and the WS-* specifications are constantly being expanded, updated and refined, there is a shortage of skilled people to work on SOA based systems, including the integration of services and construction of services infrastructure.WS-* specifications
Dr. Juan José Aranda Aboy Interoperability is another important aspect in the SOA implementations. The WS-I organization has developed Basic Profile (BP) and Basic Security Profile (BSP) to enforce compatibility. Testing tools have been designed by WS-I to help assess whether web services are conformant with WS-I profile guidelines. Additionally, another Charter has been established to work on the Reliable Secure Profile. There is significant vendor hype concerning SOA that can create expectations that may not be fulfilled. Product stacks are still evolving as early adopters test the development and runtime products with real world problems. SOA does not guarantee reduced IT costs, improved systems agility or faster time to market. Successful SOA implementations may realise some or all of these benefits depending on the quality and relevance of the system architecture and design
Dr. Juan José Aranda Aboy Criticisms of SOA Some criticisms of SOA are based on the assumption that SOA is just another term for Web Services. For example, some critics claim SOA results in the addition of XML layers introducing XML parsing and composition. In the absence of native or binary forms of Remote Procedure Call (RPCs) applications could run slower and require more processing power, increasing costs. Most implementations do incur these overheads, but SOA can be implemented using technologies (for example, Java Business Integration (JBI)) which do not depend on remote procedure calls or translation through XML. However, there are emerging and open-source XML parsing technolgies, such as VTD-XML, and various XML-compatible binary formats (http://vtd- xml.sf.net/persistence.html) that promise to significantly improve the SOA performance.Web ServicesRemote Procedure CallJava Business IntegrationVTD-XMLhttp://vtd- xml.sf.net/persistence.html Stateful services require both the consumer and the provider to share the same consumer-specific context, which is either included in or referenced by messages exchanged between the provider and the consumer. The drawback of this constraint is that it could reduce the overall scalability of the service provider because it might need to remember the shared context for each consumer. It also increases the coupling between a service provider and a consumer and makes switching service providers more difficult.
Dr. Juan José Aranda Aboy Another concern is that WS-* standards and products are still evolving (e.g., transaction, security), and SOA can thus introduce new risks unless properly managed and estimated with additional budget and contingency for additional Proof of Concept work.Proof of Concept An informal survey by Network Computing placed SOA as the most despised buzzword (November 2006).informal survey by Network Computing Some critics feel SOA is merely an obvious evolution of currently well- deployed architectures (open interfaces, etc). A SOA being an architecture is the first stage of representing the system components that interconnect for the benefit of the business. At this level a SOA is just an evolution of an existing architecture and business functions. SOAs are normally associated with interconnecting back end transactional systems that are accessed via web services.
Dr. Juan José Aranda Aboy The real issue with any IT "architecture" is how one defines the information management model and operations around it that deal with information privacy, reflect the business's products and services, enable services to be delivered to the customers, allow for self care, preferences and entitlements and at the same time embrace identity management and agility. On this last point, system modification (agility) is a critical issue which is normally omitted from IT system design. Many systems, including SOAs, hard code the operations, goods and services of the organisation thus restricting their online service and business agility in the global market place. Adopting SOAs is therefore just the first (diagrammatic) step in defining a real business system. The next step in the design process is the definition of a Service Delivery Platform (SDP) and its implementation. It is in the SDP design phase where one defines the business information models, identity management, products, content, devices, and the end user service characteristics, as well as how agile the system is so that it can deal with the evolution of the business and its customers.
Dr. Juan José Aranda Aboy SOA and Business Architecture One area where SOA has been gaining ground is in its power as a mechanism for defining business services and operating models and thus provide a structure for IT to deliver against the actual business requirements and adapt in a similar way to the business. The purpose of using SOA as a business mapping tool is to ensure that the services created properly represent the business view and are not just what technologists think the business services should be. At the heart of SOA planning is the process of defining architectures for the use of information in support of the business, and the plan for implementing those architectures (Enterprise Architecture Planning by Steven Spewak and Steven Hill). Enterprise Business Architecture should always represent the highest and most dominant architecture. Every service should be created with the intent to bring value to the business in some way and must be traceable back to the business architecture. Within this area, SOMA (Service-Oriented Modelling and Architecture) was announced by IBM as the first SOA-related methodology in Since then, efforts have been made to move towards greater standardization and the involvement of business objectives, particularly within the OASIS standards group and specifically the SOA Adoption Blueprints group. All of these approaches take a fundamentally structured approach to SOA, focusing on the Services and Architecture elements and leaving implementation to the more technically focused standards.SOMA (Service-Oriented Modelling and Architecture)IBMOASISSOA Adoption Blueprints
Dr. Juan José Aranda Aboy SOA is an architectural style rather than a product. Several vendors offer products which can form the basis of, or enable, SOA--particularly Enterprise Service Bus (ESB) products.Enterprise Service Bus ESBs provide infrastructure that can be purchased, implemented and leveraged for SOA-based systems. SOA relies heavily on metadata design and management. Metadata design and management products are also critical to implementing SOA architectures. See the list of SOA related products for an overview and ideas.list of SOA related products
Dr. Juan José Aranda Aboy Patterns for e-business Patterns for e-business are a group of reusable assets that can help speed the process of developing Web-based applications. This site breaks down these reusable assets into the following elements: Business patterns identify the interaction between users, businesses, and data. Business patterns are used to create simple, end-to-end e-business applications.Business patterns Integration patterns connect other Business patterns together to create applications with advanced functionality. Integration patterns are used to combine Business patterns in advanced e-business applications.Integration patterns Composite patterns are combinations of Business patterns and Integration patterns that have themselves become commonly used types of e-business applications. Composite patterns are advanced e-business applications.Composite patterns Custom designs are similar to Composite patterns, as they combine Business patterns and Integration patterns to form an advanced, end-to-end solution. These solutions, however, have not been implemented to the extent of Composite patterns, but are instead developed to solve the e-business problems of one specific company, or perhaps several enterprises with similar problems.Custom designs Application and Runtime patterns are driven by the customer's requirements and describe the shape of applications and the supporting runtime needed to build the e-business application.ApplicationRuntime patterns Product mappings to populate the solution. The product mappings are based on proven implementations. Guidelines for the design, development, deployment, and management of e-business applications.
Dr. Juan José Aranda Aboy
The Patterns for e-business also provide a prescriptive approach. Physicians are formally taught a process to evaluate a patient and arrive at a treatment plan. They do this by quickly assessing the major systems, then honing in on the system or systems with problems. The physician can then follow a standard decision tree logic pattern to arrive at a treatment plan. In the case of the Patterns for e-business, you can start with the customer's wants and needs, their business problems, existing business processes and rules, and any existing systems, data, or infrastructure. You can then follow a structured approach to arrive at a customized solution for the customer that addresses the business functions (such as Customer Relationship Management, Supply Chain Management, Knowledge Management, Business Intelligence, customer or employee Collaboration, e- commerce, or many others as shown in Figure Figure
Dr. Juan José Aranda Aboy Providing reuse The patterns work is intended to provide the smallest number of Patterns for e- business that will let IT architects, in 80% of cases, analyze their business problem and reuse 50 to 80% of proven architecture, design, and product patterns and guidelines. If your project has less complex business problems, you may get higher levels of reuse and can probably address your requirements with a single pattern and topology. If your project is more complex, each pattern may provide less reuse, but you may also be able to use combinations of patterns. The Patterns for e-business enable you to quickly develop much of your required infrastructure by the reuse of proven: Architecture patterns Design patterns Runtime patterns Design, development, and deployment guidelines The patterns are not designed to be a cookbook or to give you a complete guide to building applications. They are designed to give strong guidance to designers and to provide links to a large body of reference material and experience from other developers who have worked on the same problem.
Dr. Juan José Aranda Aboy The Patterns for e-business are designed so that you can put them together with existing applications. They can be used to plan what must be done to modify an existing application as well as to help modify an initial product to connect to other systems or to provide additional data or function. In other words, the patterns can be combined to solve complex problems. For example, if you were building a site that offered goods for sale and provided supply chain management and inventory checking, the solution could be a combination of User-to-Online Buying and Business-to-Business. The Patterns for e-business topologies can also help describe how to construct systems that incorporate existing applications and infrastructure. One of the key points of the IBM Application Framework for e-business is that you can build on your existing infrastructure and systems to speed development. Shortening time to market but also reusing existing assets can greatly increase your likelihood for success, since the core of the new application is well understood and proven. So, you can add new function to existing systems while continuing to use them in the old way, providing a smooth transition. It's a good idea to serve customers or other businesses using the existing channel while bringing a new channel online and providing users and other businesses time to convert or adopt the new access and services. The Patterns for e-business are equally usable for new businesses or new companies starting on the Web.
Dr. Juan José Aranda Aboy Patterns and associated customer uses Business patternse-business solution areas User-to-BusinessCRM, customer self service User-to-Online Buyinge-commerce Business-to-BusinessSCM, shipping, e-marketplaces User-to-UserCollaboration, customer service User-to-DataBusiness intelligence, knowledge management Application Integration Business application integration (key for ERP package implementation)
Dr. Juan José Aranda Aboy Matching business requirements with appropriate patterns Business and IT Drivers Business PatternsIntegration Patterns Self Service Collabo ration Information Aggregation Extended Enterprise Access Integration Application Integration End-users and customers need to directly interact with business processes and/or data. YES noYESno A business process needs to be integrated with existing business systems and information. YESno YES Business processes need to be integrated with processes and information that exist at partner organizations. no YESnoYES A business activity needs to aggregate, organize, and present information from various sources within and outside the organization. no YESnoYES A business process must be reachable in a common, consistent, and simplified manner through multiple delivery channels. YESno YESno A business activity demands and fosters collaboration and the sharing of information among its participants. noYESno
Dr. Juan José Aranda Aboy a common application pattern used to realize the Self-Service business pattern is called the Directly Integrated Single Channel, illustrated in Figure 1.Figure 1 In this pattern, external business partners interact with multiple back-end business processes through a single front-end application.
Dr. Juan José Aranda Aboy A traditional Web design for the Directly Integrated Single Channel application pattern A Web services-based design for the Directly Integrated Single Channel application pattern
Dr. Juan José Aranda Aboy Exploring the various application patterns available for the Application Integration e- business pattern (viewable on the IBM patterns for e-business Web site; see Resources for a link) revealed a number of potential configurations for our solution. The application pattern that best fit, however, was the Direct Connection pattern, which is appropriate when only two applications are being integrated via a standard or mutually understood programming interface. This application pattern is illustrated in Figure 1.ResourcesFigure 1 In the Direct Connection pattern, there are two roles: the initiator (in our case, the Microsoft Word macro) and the provider (in our case, the J2EE application that is serving the data). Since our scenario called for a form-based application (Microsoft Word) to take part in a request/response handshake, the communication between the initiator and the provider needed to be synchronous.
Dr. Juan José Aranda Aboy The Logical application architecture
Dr. Juan José Aranda Aboy Referencias BPM Business Process Management (en español)Business Process Managementen español Centro Oficial del BPM Bussiness process modeling Business Process Management Initiative BPM Directory Resources for BPM Workflow Management Coalition NetBeans Enterprise Pack SOA Applications and UML Learning TrailsNetBeans Enterprise PackSOA Applications and UML Learning Trails Select business solutions Global strategy, innovation and business performance leadershipGlobal strategy, innovation and business performance leadership From Business Processes to Running Applications
Dr. Juan José Aranda Aboy Referencias sobre BPMN, BPEL y BPEL4WS Business Process Modeling Notation Business Process Execution Language (BPEL) Mapping from UML to the Business Process Execution Language for Web Services (BPEL4WS)Mapping from UML to the Business Process Execution Language for Web Services (BPEL4WS) What is BPEL4WS? Build Better Business Processes with Web Services in BizTalk Server 2004What is BPEL4WS? Build Better Business Processes with Web Services in BizTalk Server 2004 OASIS Web Services Business Process Execution Language (WSBPEL) TCOASIS Web Services Business Process Execution Language (WSBPEL) TC Introducing BPEL4WS Java Business Integration Patterns and Best Practices for Enterprise Integration Best practices for Web services
Dr. Juan José Aranda Aboy Referencias sobre arquitectura orientada a servicios (SOA) Service-oriented architecture SOA Practitioners Guide: Why Services-Oriented Architecture?SOA Practitioners Guide: Why Services-Oriented Architecture? Service-oriented analysis and design “Patterns: Service-Oriented Architecture and Web Services“Patterns: Service-Oriented Architecture and Web Services Patterns for e-business IBM patterns for e-business (Resources)IBM patterns for e-businessResources Web Service Choreography Orchestration Service-oriented modeling and architecture (SOMA) Service-oriented architecture implementation framework Enterprise service bus
Dr. Juan José Aranda Aboy Java 2 Platform, Enterprise Edition (J2EE) Software ComponentsJava 2 Platform, Enterprise Edition (J2EE) Software Components Eclipse: Proposal for Enterprise Component FrameworkEclipse: Proposal for Enterprise Component Framework Enterprise Component Services in Windows