ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software

Size: px
Start display at page:

Download "ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software"

Transcription

1 ForeverSOA: Towards the Maintenance of Service-Oriented Architecture (SOA) Software Dionysis Athanasopoulos, PhD student In collaboration with A. Zarras, V. Issarny SQM 2009 Dept. of Computer Science, University of Ioannina, Greece

2 Agenda 2 1. Introduction 2. Conventional use of design principles in SOA 3. Refinement of design principles in SOA 4. Overview of ForeverSOA 5. Conclusions Future work

3 Introduction 3 Service-Oriented Architecture (SOA) is an architectural style that is the answer to the requirements for loosely-coupled distributed computing systems The basic architectural elements of SOA are the services Services are autonomous systems that have been developed independently from each other. SOA software is built by composing services

4 Introduction 4 Until now, state of the art research has focused on issues concerning the construction phase (Design, Implementation) of SOA We focus on the maintenance phase of SOA software

5 Introduction 5 Maintenance is even more important for SOA software due to: independent evolution of services variation in their quality (performance, availability, reliability)

6 Introduction 6 Fundamental design principles generally improve the quality of conventional Object-Oriented (OO) software... maintainability, in particular... OCP (Open Closed Principle), DIP (Dependency Inversion Principle), LSP (Liskov Substitution Principle),... The issue is whether we can apply them in realistic SOA maintenance scenarios?

7 Introduction 7 To address this issue: We examine the conventional use of the fundamental design principles in realistic SOA maintenance scenarios We discuss why this conventional use is not effective So, we propose the refined design principles such that their use in SOA becomes effective We sketch the ForeverSOA infrastructure which aims to facilitating the adoption of the refined principles

8 Agenda 8 1. Introduction 2. Conventional use of design principles in SOA 3. Refinement of design principles in SOA 4. Overview of ForeverSOA 5. Conclusions Future work

9 Design principles in OO 9 OCP: states that software should be open for extensions and closed to modifications Achieving OCP can rely on DIP & LSP principles DIP: states that higher level OO software elements should not depend on lower level software elements, they should depend on abstractions LSP: formalizes correctness criteria guaranteeing that software that uses elements of a particular type can further use elements of another type

10 Conventional use of principles 10 SOA development: 1. Service provider: 1. defines an abstraction element (service interface) for each software responsibility 2. develops a concrete implementation for every service interface hopefully with respect to LSP 2. Service client: develops, as suggested by DIP, the client software using references to service interfaces without depending on particular implementations

11 Conventional use of principles 11 Example: SOA client manipulates information about scientific publications It uses a Web search engine (e.g. Citeseer ) for publications that is exposed via a Web service interface public class ClientApplication { public static void main(string args[]){ CiteseerWSInterface ref = new CiteseerWSSOAPBindingStub(url); //. String publications = ref.cis(args[0]); } }

12 Conventional use of principles 12 A maintenance scenario: Problem: If the requirements of the SOA client are no longer satisfied by this Citeseer service implementation Necessity of maintenance public class ClientApplication { public static void main(string args[]){ CiteseerWSInterface ref = new CiteseerWSSOAPBindingStub(url); //. String publications = ref.cis(args[0]); } }

13 Conventional use of principles 13 A maintenance scenario: Solution: the Citeseer service provider must extend the implementation hierarchy with a new Citeseer service implementation Hypothetically, it is extended by the Citeseer provider

14 Conventional use of principles 14 Nothing should be changed into SOA client code except for url public class ClientApplication { public static void main(string args[]){ CiteseerWSInterface ref = new CiteseerWSSOAPBindingStub(url); //. //. String publications = ref.cis(args[0]); } } Is this solution via the conventional use of the principles practical?

15 Conventional use of principles 15 It is unrealistic for a SOA client to require from a service provider to develop a new service implementation Unrealistic development

16 In practise Typical Maintenance scenario: The same problem: If the requirements of SOA client are no longer satisfied by the Citeseer service implementation

17 In practise Typical Maintenance scenario: Solution: SOA client discovers another service that offers the same functionality via a different interface (e.g. Googlescholar)

18 In practise The changes into SOA client code will not be minimal since Citeseer, Googlescholar have different interfaces public class ClientApplication { public static void main(string args[]){ CiteseerWSInterface ref = new CiteseerWSSOAPBindingStub(url); //. String publications = ref.cis(args[0]); } } So, the conventional use of principles is not effective How can we refine the principles to deal with such realistic maintenance scenarios without code changes?

19 Agenda Introduction 2. Conventional use of design principles in SOA 3. Refinement of design principles in SOA 4. Overview of ForeverSOA 5. Conclusions Future work

20 Refinement of principles in SOA 20 Refined OCP: SOA software that uses a service can be extended towards using another service offering the same functionality possibly via a different interface The extension of SOA software should involve minimum modifications To achieve the refined OCP, we should refine DIP: SOA Client software should not depend on particular service interfaces but it should depend on abstractions beyond service interfaces

21 Refinement of principles in SOA 21 Typically, service abstractions beyond service interfaces aren t defined by the service providers Then, our challenge is to derive: A systematic reverse engineering process that extracts service abstractions out of existing services that offer the same functionality possibly via different interfaces This abstraction recovery process should respect LSP which must hold between the recovered abstractions and the service interfaces The objective of ForeverSOA is to facilitate this abstraction recovery process

22 Refinement of principles in SOA 22 Given the Citeseer & Googlescholar services, the recovery process should be able to extract a generic search engine interface The client should be developed with respect to the generic search engine public class ClientApplication { } public static void main(string args[]){ } SearchEngine ref = new SearchEngineSOAPBindingStub(url); //. String publications = ref.cis(args[0]);

23 Refinement of principles in SOA 23 Finally, an implementation of the generic search engine should be generated. This implementation should provide access to any of the two services This is a typical use of the adaptor design pattern public class ClientApplication { } public static void main(string args[]){ } SearchEngine ref = new SearchEngineSOAPBindingStub(url); //. String publications = ref.cis(args[0]);

24 Agenda Introduction 2. Conventional use of design principles in SOA 3. Refinement of design principles in SOA 4. Overview of ForeverSOA 5. Conclusions Future work

25 ForeverSOA infrastructure 25 Clustering mechanism: 1. Groups of similar services 2. Produces a recovered abstract interface for each group client application developer service provider Code generation mechanism: Produces an adaptor accessing the services that realize an abstract interface +discover service abstraction +publish service ForeverSOA Registry +manages Service Group 1 * * AbstractionRecovery / Clustering Mechanism Code Generation * Service 1 Service Abstraction +input Service * +input * Service Abstraction * +output Service Abstraction Adaptor * +input +output * * 1

26 ForeverSOA infrastructure 26 ForeverSOA Registry manages information about: 1. Available services 2. Client applications that use these services 3. Groups of services 4. Abstract interfaces for each group client application developer service provider +discover service abstraction ForeverSOA Registry +publish service +manages Service Group 1 * * AbstractionRecovery / Clustering Mechanism Code Generation * Service 1 Service Abstraction +input Service * +input * Service Abstraction * +output Service Abstraction Adaptor * +input +output * * 1

27 Agenda Introduction 2. Conventional use of design principles in SOA 3. Refinement of design principles in SOA 4. Overview of ForeverSOA 5. Conclusions Future work

28 Wrap-up 28 We showed that the conventional use of the design principles is insufficient to address maintainability in SOA We argued about the need to adapt/refine these principles to address realistic maintenance scenarios We proposed an approach that relies on a reverse engineering process to enable the adoption of the refined principles in the development of SOA

29 Future work 29 We are in the process of developing the main mechanisms of the ForeverSOA approach We also investigate the potential of employing further OO design principles in the context of SOA such as the Single Responsibility Principle (SPR) and the Interface Segregation Principle (ISP).

30 30 Questions?

31 31 Appendix

32 Liskov Substitution Principle (LSP) 32 In OO languages, if class B is a subtype of class A, then all member functions of B must return the same or narrower set of types as A; the return type is said to be covariant. the member functions of B must take the same or broader set of arguments compared with the member functions of A; the argument type is said to be contravariant. a precondition is a condition that must always be true just prior to the execution of some section of code. a postcondition is a condition that must always be true after the execution of some section of code.

ForeverSOA: Towards the Maintenance of Service Oriented Software

ForeverSOA: Towards the Maintenance of Service Oriented Software Author manuscript, published in "SQM 20 - Fifth CSMR International Workshop on Software Quality and Maintainability (20)" ForeverSOA: Towards the Maintenance of Service Oriented Software Dionysis Athanasopoulos

More information

ForeverSOA: Towards the Maintenance of Service Oriented Software

ForeverSOA: Towards the Maintenance of Service Oriented Software ForeverSOA: Towards the Maintenance of Service Oriented Software Dionysis Athanasopoulos, Apostolos Zarras, Valérie Issarny To cite this version: Dionysis Athanasopoulos, Apostolos Zarras, Valérie Issarny.

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles Ingegneria del Software Corso di Laurea in Informatica per il Management Object Oriented Principles Davide Rossi Dipartimento di Informatica Università di Bologna Design goal The goal of design-related

More information

Introduction to Object-Oriented Programming

Introduction to Object-Oriented Programming Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins chris.simpkins@gatech.edu CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary

More information

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring 2008. For the 1 st Quiz

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring 2008. For the 1 st Quiz COSC 3351 Software Design Recap for the first quiz Spring 2008 For the 1 st Quiz Three large topic areas: UML syntax and diagrams Software architectural styles Object oriented design principles A couple

More information

9 Research Questions Resolved

9 Research Questions Resolved 217 9 Research Questions Resolved "All truths are easy to understand once they are discovered; the point is to discover them." Galileo Galilei. 9.1 Main Contributions In section 1.6 the thesis introduced

More information

The Best Software Testing Arie Van Deursen TU Delft, 2011

The Best Software Testing Arie Van Deursen TU Delft, 2011 Favorite Picks in Software Testing Arie van Deursen TU Delft @avandeursen Kickoff presentation Test Week Stabiplan, 2011 1 Outline 1. Background 2. Test Strategies 3. Test Week Objectives 4. Selected Strategies

More information

CHAPTER 10: WEB SERVICES

CHAPTER 10: WEB SERVICES Chapter 10: Web Services CHAPTER 10: WEB SERVICES Objectives Introduction The objectives are: Provide an overview on how Microsoft Dynamics NAV supports Web services. Discuss historical integration options,

More information

Konzepte objektorientierter Programmierung

Konzepte objektorientierter Programmierung Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION 1 CHAPTER 1 INTRODUCTION Exploration is a process of discovery. In the database exploration process, an analyst executes a sequence of transformations over a collection of data structures to discover useful

More information

An Automatic Reversible Transformation from Composite to Visitor in Java

An Automatic Reversible Transformation from Composite to Visitor in Java An Automatic Reversible Transformation from Composite to Visitor in Java Akram To cite this version: Akram. An Automatic Reversible Transformation from Composite to Visitor in Java. CIEL 2012, P. Collet,

More information

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,

More information

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Designing an Enterprise Application Framework for Service-Oriented Architecture 1 Designing an Enterprise Application Framework for Service-Oriented Architecture 1 Shyam Kumar Doddavula, Sandeep Karamongikar Abstract This article is an attempt to present an approach for transforming

More information

Java CPD (I) Frans Coenen Department of Computer Science

Java CPD (I) Frans Coenen Department of Computer Science Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials

More information

Business Process Management Enabled by SOA

Business Process Management Enabled by SOA Business Process Management Enabled by SOA Jyväskylä 8.5.2007 Kimmo Kaskikallio IT Architect IBM Software Brands Five middleware product lines designed to work together Service-Oriented Architecture (SOA)

More information

Agent-Oriented Software Engineering

Agent-Oriented Software Engineering ID2209 Distributed Artificial Intelligence and Intelligent Agents Agent-Oriented Software Engineering Mihhail Matskin: www.ict.kth.se/courses/id2209 Autumn 2015 Lecture Outline 1. When is an agent-based

More information

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book.

1.. This UI allows the performance of the business process, for instance, on an ecommerce system buy a book. * ** Today s organization increasingly prompted to integrate their business processes and to automate the largest portion possible of them. A common term used to reflect the automation of these processes

More information

Automatic generation of fully-executable code from the Domain tier of UML diagrams

Automatic generation of fully-executable code from the Domain tier of UML diagrams Abstract. Automatic generation of fully-executable code from the Domain tier of UML diagrams Macario Polo, Agustín Mayoral, Juan Ángel Gómez and Mario Piattini Alarcos Group - Department of Computer Science

More information

Semantic Description of Distributed Business Processes

Semantic Description of Distributed Business Processes Semantic Description of Distributed Business Processes Authors: S. Agarwal, S. Rudolph, A. Abecker Presenter: Veli Bicer FZI Forschungszentrum Informatik, Karlsruhe Outline Motivation Formalism for Modeling

More information

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1 The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose

More information

Federal Enterprise Architecture and Service-Oriented Architecture

Federal Enterprise Architecture and Service-Oriented Architecture Federal Enterprise Architecture and Service-Oriented Architecture Concepts and Synergies Melvin Greer Chief Strategist, SOA / Cloud Computing Certified Enterprise Architect Copyright August 19, 2010 2010

More information

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles Jørgen Thelin Chief Scientist Cape Clear Software Inc. Abstract The three common software architecture styles

More information

Realizing business flexibility through integrated SOA policy management.

Realizing business flexibility through integrated SOA policy management. SOA policy management White paper April 2009 Realizing business flexibility through integrated How integrated management supports business flexibility, consistency and accountability John Falkl, distinguished

More information

How To Create A Visual Analytics Tool

How To Create A Visual Analytics Tool W H I T E P A P E R Visual Analytics for the Masses 1 State of Visual Analytics Visual analytics, in the field of business intelligence, is the integration of data visualization and interactive visual

More information

Myths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other.

Myths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other. WSJ: SOA Myths About Service-Oriented Architecture Demystifying SOA Service-oriented architecture (SOA) refers to an architectural solution that creates an environment in which services, service consumers,

More information

How To Design Software

How To Design Software The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

A Generic Transcoding Tool for Making Web Applications Adaptive

A Generic Transcoding Tool for Making Web Applications Adaptive A Generic Transcoding Tool for Making Applications Adaptive Zoltán Fiala 1, Geert-Jan Houben 2 1 Technische Universität Dresden Mommsenstr. 13, D-01062, Dresden, Germany zoltan.fiala@inf.tu-dresden.de

More information

Agenda. What is and Why Polymorphism? Examples of Polymorphism in Java programs 3 forms of Polymorphism

Agenda. What is and Why Polymorphism? Examples of Polymorphism in Java programs 3 forms of Polymorphism Polymorphism 1 Agenda What is and Why Polymorphism? Examples of Polymorphism in Java programs 3 forms of Polymorphism 2 What is & Why Polymorphism? 3 What is Polymorphism? Generally, polymorphism refers

More information

From Business Process Models to Use Case Models

From Business Process Models to Use Case Models : A systematic approach Estrela Ferreira da Cruz, Ricardo Machado, Maribel Santos Universidade do Minho, Portugal EEWC, 7 May 2014 Agenda: Contextualization Motivation Approach From BPMN model to use case

More information

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Business-Driven Software Engineering Lecture 3 Foundations of Processes Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster jku@zurich.ibm.com Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary

More information

A Reference Architecture for Self-organizing Service-oriented Computing

A Reference Architecture for Self-organizing Service-oriented Computing A Reference Architecture for Self-organizing Service-oriented Computing Lei Liu, Stefan Thanheiser, Hartmut Schmeck Institute for Applied Informatics und Formal Description Methods (AIFB) Karlsruhe Institute

More information

On the Relation between Design Contracts and Errors: A Software Development Strategy

On the Relation between Design Contracts and Errors: A Software Development Strategy On the Relation between Design Contracts and Errors: A Software Development Strategy Eivind J. Nordby, Martin Blom, Anna Brunstrom Computer Science, Karlstad University SE-651 88 Karlstad, Sweden {Eivind.Nordby,

More information

IBM Rational Rapid Developer Components & Web Services

IBM Rational Rapid Developer Components & Web Services A Technical How-to Guide for Creating Components and Web Services in Rational Rapid Developer June, 2003 Rev. 1.00 IBM Rational Rapid Developer Glenn A. Webster Staff Technical Writer Executive Summary

More information

More on Objects and Classes

More on Objects and Classes Software and Programming I More on Objects and Classes Roman Kontchakov Birkbeck, University of London Outline Object References Class Variables and Methods Packages Testing a Class Discovering Classes

More information

Service-Oriented Computing: Service Foundations

Service-Oriented Computing: Service Foundations Service-Oriented Computing: Service Foundations Marco Aiello and Schahram Dustdar TUWien {aiellom,dustdar}@infosys.tuwien.ac.at Participating in the discussion: Paco Curbera, Flavio De Paoli, Wolfgang

More information

CS314: Course Summary

CS314: Course Summary CS314: Course Summary Prof. Robert B. France Dept. of Computer Science Colorado State University Robert B. France 1 1 Software Development Issues Explored - 1 Software engineering basics Why do we need

More information

Index. Registry Report

Index. Registry Report 2013.1-12 Registry Report 01 02 03 06 19 21 22 23 24 25 26 27 28 29 31 34 35 Index Registry Report 02 Registry Report Registry Report 03 04 Registry Report Registry Report 05 06 Registry Report Registry

More information

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Carsten Hentrich IBM Business Consulting Services, SerCon GmbH c/o IBM Deutschland GmbH Hechtsheimer

More information

Business Process Lines to develop Service-Oriented Architectures through the the Software Product Lines paradigm

Business Process Lines to develop Service-Oriented Architectures through the the Software Product Lines paradigm SOAPL 2008 Limerick, 1 8 th September Business Process Lines to develop Service-Oriented Architectures through the the Software Product Lines paradigm Nicola Boffoli, Danilo Caivano, Daniela Castelluccia,

More information

Welcome to the AITP NCC 2000 Java Competition in Tampa, Florida.

Welcome to the AITP NCC 2000 Java Competition in Tampa, Florida. Welcome to the AITP NCC 2000 Java Competition in Tampa, Florida. Context: Big Tex s Taste of Texas is a purveyor of fine Texican food throughout the United States. Recently, he has been getting orders

More information

Software Specification and Architecture 2IW80

Software Specification and Architecture 2IW80 Software Specification and Architecture 2IW80 Julien Schmaltz (slides partly from M. Mousavi and A. Serebrenik) Lecture 03: Use Cases Before we start The system shall give access to the database to any

More information

Course Title: Software Development

Course Title: Software Development Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.

More information

Formal Engineering for Industrial Software Development

Formal Engineering for Industrial Software Development Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3

More information

CLUSTER COMPUTING TODAY

CLUSTER COMPUTING TODAY David Chappell June 2011 CLUSTER COMPUTING TODAY WHAT S CHANGED AND WHY IT MATTERS Sponsored by Microsoft Corporation Copyright 2011 Chappell & Associates One way to make an application run faster is to

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Charlie Abela Department of Artificial Intelligence charlie.abela@um.edu.mt Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline

More information

Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability

Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability White Paper Application Centric Infrastructure Object-Oriented Data Model: Gain Advanced Network Control and Programmability What You Will Learn This document discusses application centric infrastructure

More information

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.

Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the

More information

Methods for the specification and verification of business processes MPB (6 cfu, 295AA)

Methods for the specification and verification of business processes MPB (6 cfu, 295AA) Methods for the specification and verification of business processes MPB (6 cfu, 295AA) Roberto Bruni http://www.di.unipi.it/~bruni 05 - Evolution 1 Object Overview of the evolution of (Information Systems

More information

Software Engineering II

Software Engineering II Software Engineering II Dr. Rami Bahsoon School of Computer Science University of Birmingham r.bahsoon@cs.bham.ac.uk Software Engineering II - Dr R Bahsoon Introduction to Cloud and SOA 1 Service-oriented

More information

Business Process Management Tampereen Teknillinen Yliopisto

Business Process Management Tampereen Teknillinen Yliopisto Business Process Management Tampereen Teknillinen Yliopisto 31.10.2007 Kimmo Kaskikallio IT Architect IBM Software Group IBM SOA 25.10.2007 Kimmo Kaskikallio IT Architect IBM Software Group Service Oriented

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Six Strategies for Building High Performance SOA Applications

Six Strategies for Building High Performance SOA Applications Six Strategies for Building High Performance SOA Applications Uwe Breitenbücher, Oliver Kopp, Frank Leymann, Michael Reiter, Dieter Roller, and Tobias Unger University of Stuttgart, Institute of Architecture

More information

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

SOMA, RUP and RMC: the right combination for Service Oriented Architecture SOMA, RUP and RMC: the right combination for Service Oriented Architecture WebSphere User Group, Bedfont, 4th March, 2008 Keith Mantell Senior Solution Architect IBM Rational keith_mantell@uk.ibm.com March

More information

Service Oriented Architectures in the Delivery of Capability

Service Oriented Architectures in the Delivery of Capability Service Oriented Architectures in the Delivery of Capability Abstract Duncan Russell, Jie Xu {duncanr jxu}@comp.leeds.ac.uk School of Computing, University of Leeds, UK Service oriented architecture (SOA)

More information

A Dynamic, Runtime-Extensible, Client-Managed Service Framework

A Dynamic, Runtime-Extensible, Client-Managed Service Framework A Dynamic, Runtime-Extensible, Client-Managed Service Framework D. Parry G. Wells, P. Clayton Computer Science Department Rhodes University Grahamstown, 6140 Email: dom@rucus.ru.ac.za Tel: (046) 603 8640

More information

Service-Oriented Architecture (SOA) vs. Component Based Architecture. Helmut Petritsch

Service-Oriented Architecture (SOA) vs. Component Based Architecture. Helmut Petritsch Service-Oriented Architecture (SOA) vs. Component Based Architecture Helmut Petritsch Index Introduction... 3 Definitions... 3 Component-based architecture:... 3 Service-oriented architecture (SOA)...

More information

Testing Web Services Today and Tomorrow

Testing Web Services Today and Tomorrow Copyright Rational Software 2002 http://www.therationaledge.com/content/oct_02/m_webtesting_jb.jsp Testing Web Services Today and Tomorrow by Jason Bloomberg Senior Analyst ZapThink LLC With all the attention

More information

Service-Oriented Architectures

Service-Oriented Architectures Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems

More information

Copyright 2009 TIBCO Software Inc. All rights reserved

Copyright 2009 TIBCO Software Inc. All rights reserved BPM in a SOA Environment Paul C. Brown Principal Software Architect TIBCO Software Inc. 1 Goal Understand the architectural relationships between www.devoxx.com BPM and dsoa and their patterns of interaction.

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Service Oriented Analysis and Design (SOAD) in Practice Part 4 Adomas Svirskas Vilnius University October 2005 Agenda Service identification and definition Business process

More information

- ' +. /0 ( 1 +. ' &+. /"0 &1,

- ' +. /0 ( 1 +. ' &+. /0 &1, !"# $% &'()*++, - ' +. /0 ( 1 +. ' &+. /"0 &1,, +. 2"! public class Essai static public void main(string[] args) System.out.println("Un essai..."); System.out.println(un_calcul.somme(4,5));! 34/0- public

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Requirements Engineering for Web Applications

Requirements Engineering for Web Applications Web Engineering Requirements Engineering for Web Applications Copyright 2013 Ioan Toma & Srdjan Komazec 1 What is the course structure? # Date Title 1 5 th March Web Engineering Introduction and Overview

More information

Object Oriented Software Design - I

Object Oriented Software Design - I Object Oriented Software Design - I Object Oriented Design Principles Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 28, 2011 G. Lipari (Scuola Superiore Sant Anna)

More information

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering Object-Oriented Software Development What is Object-Oriented Development Object-Oriented vs. Traditional Development An Object-Oriented Development Framework Phases, Activities, and Work Products Phases,

More information

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud CSCI 5828 Spring 2010 Foundations of Software Engineering - Arpit Sud 1 Agenda What is it? Why to use it? When to use it? How to implement it? Where not to apply it? 2 Service oriented Architecture 3 What

More information

Service-Oriented Computing and Service-Oriented Architecture

Service-Oriented Computing and Service-Oriented Architecture Service-Oriented Computing and Service-Oriented Architecture Week 3 Lecture 5 M. Ali Babar Lecture Outline Service-Oriented Computing (SOC) Service-Oriented Architecture (SOA) Designing service-based systems

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

vcloud Air Platform Programmer's Guide

vcloud Air Platform Programmer's Guide vcloud Air Platform Programmer's Guide vcloud Air OnDemand 5.7 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition.

More information

Java: Learning to Program with Robots. Chapter 11: Building Quality Software

Java: Learning to Program with Robots. Chapter 11: Building Quality Software Java: Learning to Program with Robots Chapter 11: Building Quality Software Chapter Objectives After studying this chapter, you should be able to: Identify characteristics of quality software, both from

More information

A Comparison of SOA Methodologies Analysis & Design Phases

A Comparison of SOA Methodologies Analysis & Design Phases 202 A Comparison of SOA Methodologies Analysis & Design Phases Sandra SVANIDZAITĖ Institute of Mathematics and Informatics, Vilnius University Abstract. Service oriented computing is a new software engineering

More information

Inheritance, overloading and overriding

Inheritance, overloading and overriding Inheritance, overloading and overriding Recall with inheritance the behavior and data associated with the child classes are always an extension of the behavior and data associated with the parent class

More information

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

Variability in Service-Oriented Systems: An Analysis of Existing Approaches Variability in -Oriented Systems: An Analysis of Existing Approaches Holger Eichelberger and Christian Kröher and Klaus Schmid 1 Software Systems Engineering, Institute of Computer Science, University

More information

Basic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C

Basic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C Basic Java Constructs and Data Types Nuts and Bolts Looking into Specific Differences and Enhancements in Java compared to C 1 Contents Hello World Program Statements Explained Java Program Structure in

More information

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery Dimitrios Kourtesis, Iraklis Paraskakis SEERC South East European Research Centre, Greece Research centre of the University

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

Object-Oriented Programming in Java

Object-Oriented Programming in Java CSCI/CMPE 3326 Object-Oriented Programming in Java Class, object, member field and method, final constant, format specifier, file I/O Dongchul Kim Department of Computer Science University of Texas Rio

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

public void creditaccount(string accountnumber, float amount) { this.accounts.get(accountnumber).credit(amount); }

public void creditaccount(string accountnumber, float amount) { this.accounts.get(accountnumber).credit(amount); } package bank; //... public class Bank { private Map accounts; public Bank() { this.accounts = new HashMap(); public void addaccount(bankaccount account) { this.accounts.put(account.getnumber(),

More information

Semantic Transformation of Web Services

Semantic Transformation of Web Services Semantic Transformation of Web Services David Bell, Sergio de Cesare, and Mark Lycett Brunel University, Uxbridge, Middlesex UB8 3PH, United Kingdom {david.bell, sergio.decesare, mark.lycett}@brunel.ac.uk

More information

09336863931 : provid.ir

09336863931 : provid.ir provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement

More information

Designing Internet-Based Software

Designing Internet-Based Software Designing Internet-Based Software Steven P. Reiss Department of Computer Science Brown University Providence, RI. 02912 spr@cs.brown.edu Abstract Next-generation software is going to be Internet-based.

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring

More information

Evolution of Web Applications with Aspect-Oriented Design Patterns

Evolution of Web Applications with Aspect-Oriented Design Patterns Evolution of Web Applications with Aspect-Oriented Design Patterns Michal Bebjak 1, Valentino Vranić 1, and Peter Dolog 2 1 Institute of Informatics and Software Engineering Faculty of Informatics and

More information

Introduction to Programming

Introduction to Programming Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk Spring 2015 Week 2b: Review of Week 1, Variables 16 January 2015 Birkbeck

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs, 10g Release

More information

Hochschule Esslingen University of Applied Sciences

Hochschule Esslingen University of Applied Sciences Hochschule Esslingen University of Applied Sciences Campus Göppingen Campus Hilltop Faculty of Engineering Management Faculty of Information Technology - English Lectures - English Lectures Core Courses:

More information

Fine-grained Metrics of Cohesion Lack for Service Interfaces

Fine-grained Metrics of Cohesion Lack for Service Interfaces 011 IEEE International Conference on Web Services Fine-grained Metrics of Cohesion Lack for Service Interfaces Dionysis Athanasopoulos Dept. of Computer Science - Univ. of Ioannina, Greece INRIA-Paris-Rocquencourt,

More information

Introduction to Object-Oriented and Object-Relational Database Systems

Introduction to Object-Oriented and Object-Relational Database Systems , Professor Uppsala DataBase Laboratory Dept. of Information Technology http://www.csd.uu.se/~udbl Extended ER schema Introduction to Object-Oriented and Object-Relational Database Systems 1 Database Design

More information

BUSINESS ARCHITECTURE MEETS STRATEGIC PLANNING. 9/16/2014 Austin, TX

BUSINESS ARCHITECTURE MEETS STRATEGIC PLANNING. 9/16/2014 Austin, TX BUSINESS ARCHITECTURE MEETS STRATEGIC PLANNING 9/16/2014 Austin, TX AGENDA Purpose and scope of workgroup Introduction of panel members Overview of BIZBOK content Presentation and discussion of key issues

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

Web Services Integration Case Study - Housing

Web Services Integration Case Study - Housing SUNGARD SUMMIT 2007 sungardsummit.com 1 Web Services Integration Case Study - Housing Presented by: Tom Chamberlin, Suresh Chellapilla, Richard Moon SunGard Higher Education March 21, 2007 A Community

More information

Quality of Web Usability Evaluation Methods: an empirical study on MiLE+

Quality of Web Usability Evaluation Methods: an empirical study on MiLE+ Quality of Web Usability Evaluation Methods: an empirical study on MiLE+ Davide Bolchini University of Lugano (Switzerland) Franca Garzotto Politecnico di Milano (Italy) Outline Motivation Goals MiLE+

More information

Implementing the CIDOC CRM with a relational database

Implementing the CIDOC CRM with a relational database MCN Spectra. 24 (1), Spring 1999 Implementing the CIDOC CRM with a relational database Introduction The CIDOC Conceptual Reference Model (CRM) is an object oriented semantic reference model for cultural

More information

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities The classroom is set up like a traditional classroom on the left side of the room. This is where I will conduct my

More information