CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

17
CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure SoftArch, USC October 20th Jae young Bang, USC ([email protected]) George Edwards, USC ([email protected]) Daniel Popescu, USC ([email protected]) Joshua Garcia, USC ([email protected]) Jerry Lin, USC ([email protected]) Prof. Nenad Medvidovic, USC ([email protected]) Naveen Kulkarni, Infosys ([email protected]) Girish Maskeri Rama, Infosys ([email protected]) Dr. Srinivas Padmanabhuni, Infosys ([email protected])

description

CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure. Jae young Bang, USC ([email protected]) George Edwards, USC ([email protected]) Daniel Popescu , USC ([email protected]) Joshua Garcia, USC ([email protected]) Jerry Lin, USC ([email protected]) - PowerPoint PPT Presentation

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

Page 1: 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 ([email protected])George Edwards, USC ([email protected])Daniel Popescu, USC ([email protected])Joshua Garcia, USC ([email protected])Jerry Lin, USC ([email protected])

Prof. Nenad Medvidovic, USC ([email protected])

Naveen Kulkarni, Infosys ([email protected])Girish Maskeri Rama, Infosys ([email protected])

Dr. Srinivas Padmanabhuni, Infosys ([email protected])

Page 2: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

Outline

• Motivation

• Overview: CoDesign/CoWare

• System Architecture: CoDesign/CoWare

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

• Future Work

Page 3: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 4: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 5: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling 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

Page 6: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 7: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 8: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 9: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 10: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 11: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 12: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 13: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

THANK YOUSoftArch, USC

Page 14: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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

Page 15: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

Appendix: CoDesign GME List of Objects

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

Page 16: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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)

Page 17: CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure

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