Upload
orsen
View
38
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Palantír: Raising Awareness Among Configuration Management Workspaces. Anita Sarma, Zahra Noroozi, Andr é van der Hoek Department of Informatics & Institute for Software Research University of California, Irvine [email protected], [email protected], [email protected]. - PowerPoint PPT Presentation
Citation preview
Palantír: Raising Awareness Among Configuration
Management Workspaces
Palantír: Raising Awareness Among Configuration
Management Workspaces
Anita Sarma, Zahra Noroozi, André van der HoekDepartment of Informatics & Institute for Software Research
University of California, [email protected], [email protected], [email protected]
A Typical Development ScenarioA Typical Development Scenario
CMrepository
Pete’s workspace
CBA
Ellen’s workspace
E CD CDDCC
Direct ConflictsDirect Conflicts
CMrepository
Pete’s workspace
CBA
Ellen’s workspace
E CD
Conflicting changes to the same artifact
CCC DD
Indirect ConflictsIndirect Conflicts
CMrepository
Pete’s workspace
CBA
Ellen’s workspace
E CD
Conflicting changes to different artifacts
CCC DD
Traditional CM ApproachesTraditional CM Approaches
Coordination mechanism
Directconflicts
Indirect conflicts
Pessimistic Locking before changes are made
Avoided, at the expense of project delays
Not addressed
Optimistic Automated merging after changes have been made
Resolved, except for overlapping changes
Not addressed
Key ObservationsKey Observations
A CM workspace in reality provides two kinds of isolation:– Good isolation
Shields developers from parallel changes to artifacts
– Bad isolation Hides knowledge of what artifacts other developers are
changing
Opportunities for breaking isolation are limited– Based on repository information only– Initiated by developer only– Addressing direct conflicts only
ObjectiveObjective
To increase awareness of ongoing workspace activities– Collect– Distribute– Organize– Present
To do so automatically and continuously– Push information
To, thereby, move earlier the point at which potential direct and indirect conflicts can be detected
ApproachApproach
Provide continuous workspace awareness – Which artifacts are being changed by whom?– What is the severity of the changes?– What is the impact of the changes?
Design constraints– Non-obtrusiveness– Scalability– Flexibility– Configurability
Palantír ArchitecturePalantír Architecture
CMrepository
Workspace Workspace
Event wrapper
Event service
CM client CM server CM client
Visualization(s)
Event wrapper
Internal state
Extractor
Visualization(s)
Internal state
Extractor
Event Type Indication
Populated Artifact has been placed in a workspace
Unpopulated Artifact has been removed from a workspace
Synchronized Artifact has been synchronized with repository
ChangesInProgress Artifact has changed in a workspace
ChangesCommitted Artifact has been stored in repository
ChangesReverted Artifact has been returned to its original state
Added New artifact has been added to workspace
Removed Artifact has been removed from workspace
Renamed Artifact has been renamed
Moved Artifact has been moved from one artifact to another
SeverityChanged Severity of changes to an artifact has changed
Types of EventsTypes of Events
Typical Sequence of EventsTypical Sequence of EventsPessimistic Populated ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted UnPopulated
Optimistic Populated ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted UnPopulated
Event WrapperEvent Wrapper
Tasks– Intercept workspace activity– Interpret workspace activity– Determine whether the activity is relevant to Palantír– If relevant, gather information regarding the activity– Construct and emit one or more events
Unique per CM system– Wrap command line– Use standard facilities (triggers, virtual file system)
Can and should remain unobtrusive
Internal StateInternal State
Tasks– Maintain overview of activities in both the local and
remote workspaces– Subscribe to relevant workspace activities
Those pertaining to the artifacts in the local workspace but occurring in other workspaces
Siena-based event routing
– Bootstrap new workspaces with information on existing workspaces
Same for every CM system Always remains unobtrusive
ExtractorExtractor
Tasks– Further narrow down the events to be viewed
Set of workspaces Set of authors Set of artifacts …
Same for every CM system One-time obtrusive
ExtractorExtractor
VisualizationVisualization
Tasks– Organize and display events
Same for every CM system Varying degrees of obtrusiveness
– Ticker tape– Tabular– Explorer– Fully graphical
Ticker TapeTicker Tape
TabularTabular
ExplorerExplorer
Fully GraphicalFully Graphical
Fully GraphicalFully Graphical
Fully GraphicalFully Graphical
SeveritySeverity
Currently calculated as the percentage of lines of code that have changed– Simple– Not completely accurate
1 line change to an interface 1000 lines renaming a variable
Work in progress– Other severity measures– Impact measures
Integration ExperienceIntegration Experience
RCS– Pessimistic CM system– 500 lines of Java code– Single day
CVS– Optimistic CM system– 500 lines of Java code– Single day
JSVN– Optimistic CM system– 500 lines of Java code– Few days
Related WorkRelated Work
CVS and many other CM systems– Only e-mail notifications
Coven– Developers do not know in advance what they will
change
BSCW, TUKAN, COOP/Orm– No pair-wise comparisons, no severity measure
State Treemap– No pair-wise comparisons
ConclusionsConclusions
Palantír is a novel prototype that brings awareness to CM workspaces– Which artifacts are being changed by whom?– What is the severity of the changes?– Push instead of pull– Automated instead of manual
Palantír is independent of the type of CM system used
Palantír was successfully integrated with RCS, CVS, and JSVN
Future WorkFuture Work
Case study to determine the effectiveness of Palantír– Does it reduce the number of conflicts?– Does it improve coordination?– Does it speed up development time?
Further support for indirect conflicts– Impact analysis– Dependencies
Develop additional visualizations