Title: Manitoba: its not just for Canadians anymore
1Manitoba its not just for Canadians
anymore
- Sara Sprenkle
- Duke University
- CPS300
- November 11, 1999
2What is Manitoba?
- distributed programming environment
- purpose wide-area collaboration among many users
- developed at IBM by Dr. Mark Chu-Carroll
3Motivation
- a scenario Nachos programming assignment
- collaboration/communication
- locked files
- the trends
- more large-team projects
- more complex
- more mobile
4Background
- Programming Environments
- artifacts
- version-control system
- check-in
5Manitobas Features
- written in Java
- distributed
6Client-Server Model
Request pieces
Send pieces
Client
Server
programmers - edit pieces
- management
7Manitobas Features
- written in Java
- distributed
8Version Control System
- fragments
- fine-grained elements
- smallest independent units of
- source code
- programming language defined
- project consistency
9Manitobas Features
- written in Java
- distributed
- fine-grained elements
10Optimistic Locking multiple clients
Client 1
Server
foo
Client 2
foo
11Optimistic Locking check-in
Client 1
Server
foo
Client 2
foo
12Optimistic Locking no collision
Answer Yes
Client 1
check-in complete
Server
foo
Client 2
foo
13Optimistic Locking collision
Answer No
Client 1
collision of foos
Server
foo
Client 2
foo
14Optimistic Locking collision
Client 1
Client 1
Problem with conflicting versions of foo. FIX IT!
Server
foo
Server
foo
Client 2
Client 2
foo
foo
15Manitobas Features
- written in Java
- distributed
- fine-grained elements
- optimistic locking
- query-based repository access
16Query-based Repository Access
- adaptive query language
- multiple source organizations
17Sheet Text Editor
Sheet Source View, Cat class
packages package test import import
java.io. import java.util. public static
void main(String args) Cat samantha new
Cat() samantha.eat()
Fragment List
? packages ? import ? public static void
main(String args) ? public Cat() ? public void
eat() ? public void purr()
18Sheet Text Editor
Cat class, edited
packages package test import import
java.io. import java.util. public static
void main(String args) Cat samantha new
Cat() samantha.eat() samantha.purr()
Fragment List
? packages ? import ? public static void
main(String args) ? public Cat() ? public void
eat() ? public void purr()
19Sheet Text Editor
Cat class, saved
packages package test import import
java.io. import java.util. public static
void main(String args) Cat samantha new
Cat() samantha.eat() samantha.purr()
Fragment List
? packages ? import ? public static void
main(String args) ? public Cat() ? public void
eat() ? public void purr()
20Summary Conclusions
- Manitoba
- better programming environment
- for large projects
- adaptive
- collaboration
- coordination
- Future work
- full implementation
21Whats in a name?