CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

Post on 25-Feb-2016

51 views 0 download

description

CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure. Jae young Bang, USC (jaeyounb@usc.edu) George Edwards, USC (gedwards@usc.edu) Daniel Popescu , USC (dpopescu@usc.edu) Joshua Garcia, USC (joshuaga@usc.edu) Jerry Lin, USC (jerrylin@usc.edu) - PowerPoint PPT Presentation

Transcript of CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

CoDesign/CoWareAn Extensible and Scalable Collaborative Software Modeling Infrastructure

SoftArch, USCOctober 20th

Jae young Bang, USC (jaeyounb@usc.edu)George Edwards, USC (gedwards@usc.edu)Daniel Popescu, USC (dpopescu@usc.edu)Joshua Garcia, USC (joshuaga@usc.edu)Jerry Lin, USC (jerrylin@usc.edu)

Prof. Nenad Medvidovic, USC (neno@usc.edu)

Naveen Kulkarni, Infosys (Naveen_Kulkarni@infosys.com)Girish Maskeri Rama, Infosys (Girish_Rama@infosys.com)

Dr. Srinivas Padmanabhuni, Infosys (srinivas_p@infosys.com)

Outline

• Motivation

• Overview: CoDesign/CoWare

• System Architecture: CoDesign/CoWare

• Features• Synchronization• Conflict Definition• Conflict Detection• Conflict Resolution

• Future Work

Motivation

• Software development is a complex, collaborative activity• This is particularly the case with software

design• This becomes a problem for

distributed development teams• Particularly prevalent in large,

multinational development organizations such as Infosys

• Support for collaborative software development is still nascent• IBM Jazz, MS CollabVS

• Difficult to make existing stand-alone tools collaborative

• Lack of ability to scale across entire enterprise

Overview: CoDesign/CoWare

• Research Objectives1. Designs, patterns and frameworks for a highly

distributed, scalable collaborative modeling platform

2. Novel methods and algorithms to detect and resolve syntactic and semantic conflicts of modeling language

• Project Summary• Collaborative, extensible software modeling

framework• Real-time synchronization & conflict detection• Efficiency and scalability among geographically

distributed software system designers

• CoDesign: A tool that captures design decisions• CoWare: Lightweight integration

infrastructure

CoDesign/CoWare Architecture

CoWareServer

CoDesign

CoW

are

Clie

nt

CoDesign

CoWare Client

CoDesign

CoWare Client

CoDesign

CoW

are

Clie

nt

CoDesign

CoW

are

Clie

nt

CoDesign

CoW

are

Clie

nt

CoDesign

CoW

are

Clie

nt

CoDesign

CoWare Client

CoDesign

CoWare Client

CoDesign

CoWare Client

CoDesign

CoWare Client

CoDesign

CoWare Client

CoDesign

CoWare Client

CoDesign

CoWare ClientCoWare Client

CoDesign/CoWare Architecture

Architect-side Server-side

GME

CoDesign (GME Plug-in)

New Events

CoWare Client CoWare Server

UserDatabase

DB Connector

ConflictNotifications &

Broadcasted Events

User Information &New Events

UserInformation

Prism ConnectorConflict Detector

ConflictNotifications

Events that don’t have conflicts

EventHandler

UpdateHandler

CoDesign/CoWare Connector

Login GUI

UserManagement

Architect

NewEvents

UserInformation

Clean Events

GME API (BON)

Prism Connector

User Information

New Events Clean Events

Event Queue

Drools

ModelDatabase

Facts Rules

Conflicts Events

Import Export

Generic Modeling Environment

From Vanderbilt University

Software Modeling ToolDrools

From JBoss Community

Business Logic Integration Platform

Prism-MW

From SoftArch, USC

Lightweight Middleware

Conflict Definition: Categorization

1. Synchronization Conflicts• Occur due to latency between distributed

architects• Cannot be applied to the model without violating

model syntax or semantics

2. Parallel Modification• Multiple architects modify the same or related

object(s)• Not necessarily a syntactic or semantic error, but

indicates the possibility of conflicts due to uncoordinated work

Model Object

Architect A

Destroy

Architect B

Move

Model Object

Architect A

Change Location

Architect B

Modify Name

Conflict Definition: Representation

• Formal description of event sequences that create conflicts: A Conflict Sequence

>> Event(1) [Verb(1) Object(1)], Event(2) [Verb(2) Object(2)]

where the arrival time T of Event(2) is later than the T of Event(1)

e.g. Event1 [ DESTROY ClassC ], Event2 [ CHANGE LOCATION ClassC ]

• Drools Rules Representation (Simplified)when

$event1 : Event(eventType == "DESTROYED")$event2 : Event(arrival > $event1.arrival)

thenhandleConflict($event1, $event2);

end

Conflict Resolution

• Automatically Resolvable• Resolved internally and transparently by

CoDesign/CoWare• E.g. DESTROY and DESTROY

• The 2 architects have the same intention• E.g. CREATE and CREATE

• The 2 new objects have the same object ID

• Not Automatically Resolvable• Notify relevant architects and facilitate

communication• E.g. DESTROY and CHANGE LOCATION

Features: Live Demo

• Settings• CoWare Server

• Computer Science Building at USC• CoWare Client

• One instance at Infosys, Bangalore, India• Another instance here

• CoDesign• Along with the modeling tool: GME 7

• Features• Synchronization between CoDesign instances• Conflict Detection & Resolution

Summary

• In the Demo• Synchronization between CoDesign Instances• Conflict Detection and Resolution

• Summary• Collaborative Software Modeling Infrastructure

Architecture• Formal Definition of Conflicts• Categories of Conflicts:

• Synchronization Conflicts, Parallel Modification• Resolution Types:

• Automatically Resolvable, Human Intervention

Future Work

• Exploration of the type and nature of conflicts

• Causes of conflicts and relationships between conflict types and modeling activities

• Automatic inference of conflicts from formal language definitions (meta-models)

• Conflicts caused by complex event sequences (e.g., 3 or more parallel events)

• Evolution of the CoDesign architecture• Focus on scalability, efficiency, extensibility• Simulation and analysis for architecture evaluation

and validation

• Continue implementation of the architecture• Testing under globally distributed settings

THANK YOUSoftArch, USC

Appendix: CoDesign GME List of Verbs

• Destroy• Create• Change Properties• Change Location• Move (to another object)• Create Connection• Destroy Connection• Create Reference• Remove Reference• Change Reference• Add to Set• Remove from Set

Appendix: CoDesign GME List of Objects

• Object• Project• Folder• Model• Atom• Reference• Set

Appendix: CoDesign GMEFound Conflict Sequences (1)

• DESTROY – DESTROY• DESTROY – CHANGE PROPERTIES• DESTROY – CHANGE LOCATION• DESTROY – CREATE CONNECTION• DESTROY – CREATE PORT• DESTROY – DESTROY PORT• DESTROY – CREATE REFERENCE• DESTROY – REMOVE REFERENCE• DESTROY – CHANGE REFERENCE• DESTROY – ADD TO SET• DESTROY – REMOVE FROM SET• CREATE – CREATE (Duplication Object IDs)

Appendix: CoDesign GMEFound Conflict Sequences (2)

• MOVE – DESTROY• MOVE – CHANGE PROPERTIES• MOVE – CHANGE LOCATION• MOVE – CREATE CONNECTION• MOVE – DESTROY CONNECTION• MOVE – CREATE PORT• MOVE – DESTROY PORT• MOVE – CREATE REFERENCE• MOVE – REMOVE REFERENCE• MOVE – CHANGE REFERENCE• MOVE – ADD TO SET• MOVE – REMOVE FROM SET