CoDesign/CoWare - Software Architecture Research Group

SoftArch, USC
October 20th
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])
Prof. Nenad Medvidovic, USC
([email protected])
Naveen Kulkarni, Infosys
([email protected])
Girish Maskeri Rama, Infosys
([email protected])
Dr. Srinivas Padmanabhuni, Infosys
([email protected])
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 Objectives
1. 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
CoWare
Server
CoWare Client
CoWare Client
CoWare Client
CoWare Client
CoWare Client
CoDesign
CoDesign
CoDesign
CoWare Client
CoWare Client
CoWare Client
CoWare Client
CoWare Client
CoDesign
CoDesign
CoDesign
CoDesign
CoDesign
CoWare Client
CoWare Client
CoWare Client
CoWare Client
CoWare Client
CoDesign/CoWare Architecture
CoDesign
CoDesign
CoDesign
CoDesign
CoDesign
Generic Modeling
Environment
CoDesign/CoWare Architecture
From Vanderbilt University
Drools
Software Modeling Tool
User
Model
From JBoss
Community
Database
Database
GME
UserLogic Integration
Import
Business
Information
Platform
Architect
GME API (BON)
New Events
Clean Events
Event
Handler
DB
Connector
CoDesign (GME Plug-in)
New Events
User
Information
Prism-MW
User
Management
From SoftArch, USC
Conflicts
Clean Events
Event Queue
Prism Connector
Login GUI
Events
Lightweight Middleware
User Information &
New Events
User Information
Rules
Drools
Update
Handler
CoDesign/CoWare Connector
Facts
Export
Conflict
Notifications &
Broadcasted Events
New
Events
Conflict Detector
Prism
Connector
Events that don’t
have conflicts Conflict
Notifications
CoWare Client
CoWare Server
Architect-side
Server-side
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
Destroy
Model Object
Move
Architect B
Architect A
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
Change Location
Model Object
Architect A
Modify Name
Architect B
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)
then
handleConflict($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
•
•
•
•
Evolution of the CoDesign architecture
•
•
•
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)
Focus on scalability, efficiency, extensibility
Simulation and analysis for architecture evaluation and
validation
Continue implementation of the architecture
•
Testing under globally distributed settings
SoftArch, USC
THANK YOU
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 GME
Found 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 GME
Found Conflict Sequences (2)
•
•
•
•
•
•
•
•
•
•
•
•
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
–
–
–
–
–
–
–
–
–
–
–
–
DESTROY
CHANGE PROPERTIES
CHANGE LOCATION
CREATE CONNECTION
DESTROY CONNECTION
CREATE PORT
DESTROY PORT
CREATE REFERENCE
REMOVE REFERENCE
CHANGE REFERENCE
ADD TO SET
REMOVE FROM SET