Patterns for Architectural Analysis and Systems Integration

Similar documents
Service Oriented Architecture

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Augmented Search for Web Applications. New frontier in big log data analysis and application intelligence

The Way to SOA Concept, Architectural Components and Organization

IBM WebSphere ILOG Rules for.net

SOA and Cloud in practice - An Example Case Study

HP Systinet. Software Version: Windows and Linux Operating Systems. Concepts Guide

Monitoring of Business Processes in the EGI

A Software Development Platform for SOA

Tomáš Müller IT Architekt 21/04/2010 ČVUT FEL: SOA & Enterprise Service Bus IBM Corporation

Structured Content: the Key to Agile. Web Experience Management. Introduction

How To Make Sense Of Data With Altilia

JOURNAL OF OBJECT TECHNOLOGY

ONEM2M SERVICE LAYER PLATFORM

Data Mining Governance for Service Oriented Architecture

Deploying a Geospatial Cloud

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Government's Adoption of SOA and SOA Examples

Beyond the SOA/BPM frontiers Towards a complete open cooperative environment

Data-Aware Service Choreographies through Transparent Data Exchange

Developing SOA solutions using IBM SOA Foundation

BIS 3106: Business Process Management. Lecture Two: Modelling the Control-flow Perspective

A Business Process Services Portal

A Cloud Platform for Delivering Instant Development Service with Service Oriented Approaches

The IBM Rational Software Development Platform..Role focused tools help simplification via Separation of Concerns

Model Driven and Service Oriented Enterprise Integration---The Method, Framework and Platform

AN APPROACH TO DEVELOPING BUSINESS PROCESSES WITH WEB SERVICES IN GRID

Portable Cloud Services Using TOSCA

Federal Enterprise Architecture and Service-Oriented Architecture

Service-Oriented Architectures

An Architecture to Deliver a Healthcare Dial-tone

Service Oriented Architecture 1 COMPILED BY BJ

PIE. Internal Structure

Getting Started with Service- Oriented Architecture (SOA) Terminology

Koen Aers JBoss, a division of Red Hat jbpm GPD Lead

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel

Big Data, Cloud Computing, Spatial Databases Steven Hagan Vice President Server Technologies

Introduction to Service-Oriented Architecture for Business Analysts

Air Force SOA Enterprise Service Bus Study Using Business Process Management Workflow Orchestration for C4I Systems Integration

Sadržaj seminara: SOA Architecture. - SOA Business Challenges s: Billion Dollar Lock-In. - Integration Tools. - Point-to-Point Approach

SERVICE ORIENTED ARCHITECTURE

A Service-oriented Architecture for Business Intelligence

FUJITSU Software Interstage Business Operations Platform: A Foundation for Smart Process Applications

Understanding and Addressing Architectural Challenges of Cloud- Based Systems

Comparative Analysis of SOA and Cloud Computing Architectures using Fact Based Modeling

Oracle SOA Suite 11g: Essential Concepts Student Guide

Developers Integration Lab (DIL) System Architecture, Version 1.0

IBM SOA Foundation products overview

White Paper. Software Development Best Practices: Enterprise Code Portal

SOA REFERENCE ARCHITECTURE

Data Virtualization for Agile Business Intelligence Systems and Virtual MDM. To View This Presentation as a Video Click Here

A SOA visualisation for the Business

ebay : How is it a hit

Business Rule Management. Effective IT Modernization

Service-oriented computing (SOC) in Engineering Design

Enterprise Reference Architecture

CUSTOMER MASTER DATA MANAGEMENT PROCESS INTEGRATION PACK

Enterprise Enabler and the Microsoft Integration Stack

The Oracle Fusion Development Platform

Table of Contents. 1 Executive Summary SOA Overview Technology Processes and Governance... 8

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Technical aspects of Cloud computing. Luís Ferreira Pires University of Twente Meeting of the NVvIR, 17 June 2010

and Deployment Roadmap for Satellite Ground Systems

Donky Technical Overview

MatchPoint Technical Features Tutorial Colygon AG Version 1.0

Gradient An EII Solution From Infosys

Cluster, Grid, Cloud Concepts

Eclipse SoaML: a Tool for Engineering Service Oriented Applications

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

TECHNOLOGY GUIDE THREE. Emerging Types of Enterprise Computing

Cloud Computing Summary and Preparation for Examination

SCA-based Enterprise Service Bus WebSphere ESB

A standards-based approach to application integration

Mobile App Discovery through Conceptual Models

Implementing Software- Defined Security with CloudPassage Halo

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

CLOUD ANALYTICS: Empowering the Army Intelligence Core Analytic Enterprise

Service Oriented Architecture (SOA) An Introduction

Is it time for a Connector-less Approach to Cloud Integration?!

Deploying Hadoop with Manager

The ebbits project: from the Internet of Things to Food Traceability

Big Data Mining Services and Knowledge Discovery Applications on Clouds

Introduction to Engineering Using Robotics Experiments Lecture 18 Cloud Computing

Semantic Business Process Management Lectuer 1 - Introduction

System Management Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice

Transcription:

Patterns for Architectural Analysis and Systems Integration 1 st Braga, Portugal July 2, 2011

Context Context In the context of Cloud Computing... Software deployed somewhere with illusion of infinite resources Elasticity dynamic (on-demand) allocation of resources Centralisation data + computation in the same cloud Software as a Service (SaaS) available anywhere Software is available as services (e.g. Google Apps) Services provide computation, data, etc. Services may be composed with other services (from other providers) Service Composition enforces Service-Oriented Architectures (SOA)

Context Context In the context of SOA... Service-oriented Computing is the focus Services may be seen as traditional Software Components Input and Output ports for communication (API of the Service) Provide results on demand (Web-services (WS) calls) Open Source Services as Open Source Components Reutilisation and Integration of Components are crucial topics in Service Oriented Computing

Context Context Software (Services) Integration/Composition Follows business process patterns (e.g. van der Aalst) Based on coordination methodologies (for WS) Orchestration central controller where WS are oblivion about business process or other WS in the application Choreography no central controller and WS know other WS they are communicating with Composition of components requires good architectural design phase

Motivation Motivation From the legacy code analysis/understanding stand point... Architectural decisions end up hard-wired in the application code Leads to analysis and maintenance problems Raise the need of separating the coordination from the main business code Tool support for architectural decisions discovery is becoming important

Motivation Motivation CoordInspector is a tool for architectural decisions recovery by coordination layer extraction Processes CIL code (potentially able to analyze systems developed in more than 40 languages compliant with the.net plataform) CIL code of a system is transformed into a System Dependence Graph (SDG) SDG is sliced into a Coordination Dependence Graph (CDG) CDG holds information about coordination code Coordination code is extracted from the CDG, by using graph algorithms to search for non formalised definitions of coordination code patterns

Objectives Objectives A formalisation of coordination patterns is needed Define a robust pattern language to drive the coordination layer extraction Integrate the language in CoordInspector providing: Pattern Editor Pattern Visualization Extraction Algorithm Ready-to-use Patterns (by creation of a Pattern Repository) Use of the pattern language for software integration

Outline Coordination Pattern Definition Formal Model Transition & Nodes Semantics Operations CoordL: Coordination Pattern Language Formal Specification Textual Notation Visual Representation CoordInspector Integration CoordInspector Architecture The Pattern Editor The Visualization Pattern Repository On Line Pattern Repository Local Pattern Repository Systems Integration Conclusion

Definition Coordination Pattern - Definition A Coordination Pattern is an equivalence class, a shape or sub-graph of a Coordination Dependence Graph, G, corresponding to a trace of coordination policies left in the system code

Definition Coordination Dependence Graphs (CDGs)

Definition Similar recurrent shape in the CDGs

Definition Coordination Pattern

Formal Model Coordination Pattern - Formal Model Pattern := N, in N, out N, T N ThreadRef N where: N is the set of pattern nodes; in is a set of input nodes of the pattern; out is a set of output nodes of the pattern; T is the set of transition relations: n x n n, x, n T ThreadRef is an identifier to reference an execution thread.

Transition & Nodes Semantics Transition & Nodes Semantics Transition [[n x n ]] G = j0,,j n Nodes(G). n x j 0 Fork Nodes f a,x b,y Join Nodes x x j n (p) = N { f, x }, {f } in \ {a, b}, out, T {f x x n Paths(G) a, f y b} (p) a,x b,y j = N { j, x }, in, {j} out \ {a, b}, T {a x j, b y j} Thread Trigger Nodes (p) a,x b,y i,x j,x = N { i, x, j, x }, in, {i, j} out\{a, b}, T {a x i, b y i, a x j, b y j}

Operations Operations - Aggregations Let p 1 = N 1, in 1, out 1, T 1 and p 2 = N 2, in 2, out 2, T 2. The aggregated pattern p 1 p 2 is given by p 1 p 2 = N 1 N 2, in 1 in 2, out 1 out 2, T 1 T 2

Operations Operations - Connections Let p = N, in, out, T. A connection is established between two nodes in a pattern interface through the link operator: (p) i j = x N, in \ {i}, out \ {j}, T {j i} i in j out x = thread(i) thread(j) is defined p otherwise

Operations Operations - @live Let p = N, in, out, T. The alive operator re-opens closed interface nodes in the following way: iff (p)@[i 1... i n o 1... o m ] = N, in {i 1,..., i n }, out {o 1,..., o m }, T {i 1,..., i n, o 1,..., o m } N {i 1,..., i n } in = {o 1,..., o m } out =

Coordination Pattern Definition Formal Model Transition & Nodes Semantics Operations CoordL: Coordination Pattern Language Formal Specification Textual Notation Visual Representation CoordInspector Integration CoordInspector Architecture The Pattern Editor The Visualization Pattern Repository On Line Pattern Repository Local Pattern Repository Systems Integration Conclusion

Formal Specification CoordL - Formal Specification 1 l a n g p a t t e r n+ 2 p a t t e r n ID ( p o r t s p o r t s ) { d e c l s graph } 3 p o r t s l s t I D 4 d e c l s d e c l ; ( d e c l ; ) 5 d e c l node l s t I D = n o d e R u l e s f o r k l s t I D j o i n l s t I D 6 t t r i g g e r l s t I D ID i n s t a n c e s 7 i n s t a n c e s i n s t a n c e (, i n s t a n c e ) 8 i n s t a n c e ID ( p o r t s p o r t s ) 9... 10 graph a g g r e g a t i o n c o n n e c t i o n s 11 a g g r e g a t i o n p a t t r e f ( + p a t t r e f ) 12 p a t t r e f cnode ( a g g r e g a t i o n n ) c o n n e c t i o n 13... 14 cnode node ID. proptt 15... 16 c o n n e c t i o n { o p e r a t i o n s } @ [ p o r t s a l i v e p o r t s a l i v e ] 17... 18 o p e r a t i o n cnode l i n k cnode f o r k j o i n t t r i g g e r 19... 20 f o r k node s p l i n k { cnode, cnode } 21... 22 l i n k ID > 23...

Textual Notation CoordL - Textual Notation 1p a t t e r n 1 ( p1 p4 ) { 2 node p1, p2, p3, p4 = { 3 s t == && 4 c t == w e b s e r v i c e && 5 cm == sync && 6 c r == consumer && 7 } ; 8 f o r k f ; 9 j o i n j ; 10 11 { f ( x, y ) > ( p2, p3 ) } 12 {p1 x > f, ( p2, p3 ) ( x, y ) > j } 13 { j x > p4} 14} p a t t e r n 2 ( p1 p2 ) { node p1, p2, p3 = { s t == }; p a t t e r n 1 p a t t ( i 1 o1 ) ; ( ( p1 + p a t t + p2 ) {p1 x > p a t t ( i 1 ), p a t t ( o1 ) x > p2, p2 x > p3 } @ [ p2 ] ) {p3 x > p2} } 1 2 3 4 5 6 7 8 9 10 11

Visual Representation CoordL - Visual Representation Node Fork Join Ttrigger Instance Edge pattern 1 pattern 2 Op.Edge

Coordination Pattern Definition Formal Model Transition & Nodes Semantics Operations CoordL: Coordination Pattern Language Formal Specification Textual Notation Visual Representation CoordInspector Integration CoordInspector Architecture The Pattern Editor The Visualization Pattern Repository On Line Pattern Repository Local Pattern Repository Systems Integration Conclusion

CoordInspector Architecture CoordInspector Architecture

The Pattern Editor CoordInspector - The CoordL IDE

The Visualization CoordInspector - The Visualization

Coordination Pattern Definition Formal Model Transition & Nodes Semantics Operations CoordL: Coordination Pattern Language Formal Specification Textual Notation Visual Representation CoordInspector Integration CoordInspector Architecture The Pattern Editor The Visualization Pattern Repository On Line Pattern Repository Local Pattern Repository Systems Integration Conclusion

On Line Pattern Repository On Line Pattern Repository Coordiantion Pattern is the basic piece Pattern Information is stored in an XML structure Name Abstract Motivation Applicability Implementation in real code CoordL definition Examples Known-uses Contributors Related Patterns (relations like use, simulation, bisimulation) Kewywords Classification

Local Pattern Repository Local Pattern Repository Synchronized with the online repository via Webservice Integrated in the CoordL IDE Pattern Details visualization and use provided

Coordination Pattern Definition Formal Model Transition & Nodes Semantics Operations CoordL: Coordination Pattern Language Formal Specification Textual Notation Visual Representation CoordInspector Integration CoordInspector Architecture The Pattern Editor The Visualization Pattern Repository On Line Pattern Repository Local Pattern Repository Systems Integration Conclusion

Systems Integration with CoordInspector Overall strategy:

Coordination Pattern Definition Formal Model Transition & Nodes Semantics Operations CoordL: Coordination Pattern Language Formal Specification Textual Notation Visual Representation CoordInspector Integration CoordInspector Architecture The Pattern Editor The Visualization Pattern Repository On Line Pattern Repository Local Pattern Repository Systems Integration Conclusion

Conclusion A language to define coordination patterns, CoordL, was defined with a precise semantics a visual notation and a processor for syntactic/semantic check and transformations CoordL specifications formally drive the extraction of the coordination layer of software systems. The extraction is done resorting to a graph-based search algorithm The CoordInspector tool was enriched with an Integrated Development Environment for CoordL A repository was created to support the reuse of patterns

Conclusion Further Thoughts Integration strategy based on coordination patterns analysis pattern calculus pattern analysis based on properties/invariants Possible integration of CoordInspector into CROSS portal as a plug-in Possible use of CoordInspector to integrate CROSS portal plug-ins

Patterns for Architectural Analysis and Systems Integration 1 st Braga, Portugal July 2, 2011