+ All Categories
Home > Documents > Us 8607196

Us 8607196

Date post: 04-Jun-2018
Category:
Upload: avaloshe
View: 214 times
Download: 0 times
Share this document with a friend

of 16

Transcript
  • 8/13/2019 Us 8607196

    1/16

    1 2 ) United S t a t e s PatentUS008607196B2

    1 0 ) P a t e n t N 0 . : US , 6 0 7 , 1 9 6 B 2

    5 4 )

    7 5 )

    7 3 )

    2 1 )2 2 )6 5 )

    6 3 )

    5 1 )

    5 2 )5 8 )

    Clemm 4 5 ) Date o f P a t e n t : * D e c . 1 0 , 2013SELECTIVE NOTIFICATIONSACCORDING ( 5 6 ) R e f e r e n c e s C i t e dTO MERGEDISTANCE FOR SOFTWAREVERSION BRANCHES WITHIN A SOFTWARE U ~ S ~ PATENT DOCUMENTSCONFIGURATION MANAGEMENT 5 , 8 0 5 , 8 8 9 A 9 / l 9 9 8 Van D e a n t e r

    6 , 1 5 1 , 6 0 6 A 1 1 / 2 0 0 0 MendezI n v e n t o r : Geoffrey M. Clemm, C o n c o r d , MA 6 , 2 9 8 , 3 1 9 B 1 1 0 / 2 0 0 1 H e i l e e t a l .US) 6 , 3 3 6 , 2 1 5 B1 1 / 2 0 0 2 O b e r h a u s e r e t a l .6 , 5 2 3 , 0 2 7 B1 2 / 2 0 0 3 Underwood

    _ 7,457,817 B2 11/2008 Krishnaswamy et a l .A s s l g n e e : I n t e r n a t i o n a l Business Machines 7 , 8 5 6 , 6 1 5 B2 1 2 / 2 0 1 0 Clemm 1 3 1 ,C o r p o r a t i o n , Armonk, NY U S ) 2 0 0 2 / 0 1 2 9 1 0 6 A1 9 / 2 0 0 2 G u t f r e u n d2002/0152271 A 1 1 0 / 2 0 0 2 C h a f l e et a l .

    N o t i c e : S u b j e c t t o a n y d i s c l a i m e r , t h e t e r m o f h i s ( C o n t i n u e d )p a t e n t i s e x t e n d e d o r a d j u s t e d u n d e r 3 5 OTHER UBLICATIONSU . S . C . 1 5 4 ( b ) b y 0 d a y s .T h i s p a t e n t i s s u b j e c t t o a t e r m i n a l d i sc l a i m e r .

    Y e u n g , L t a l . , A l i g n i n g D e s i g n a n d T e c h n o l o g y n f r a s t r u c t u r e s f o ra C o l l a b o r a t i v e W o r k p l a c e : C o n s i d e r a t i o n s in A r c h i t e c h u r e andD e s i g n P r a c t i c e , PDC 2 0 0 2 . P r o c e e d i n g s o f t h e P a r t i c i p a t o r yD e s i g n C o n f e r e n c e , p p . 2 2 6 - 2 3 0 , J u n . 2 3 - 2 5 , 2 0 0 2 .

    A p p l . N 0 . : 1 3 / 4 2 5 , 1 0 4 ( C o n t i n u e d )F i l e d Z Man 0 , 2012 Primary Examiner i B Zhen

    Assistant Examiner rshia S KiaP r i o r P u b l i c a t i o n Data ( 7 4 ) A t t o r n e y , A g e n t , o r Firm u e n o t , F o r s y t h e Kim,

    LLCUS 2012/0192141A1 J u l . 2 6 , 2012 5 7 ) ABSTRACTA c o m p u t e r - i m p l e m e n t e d m e t h o d o f c o n t r o l l i n g v e r s i o nb r a n c h i n g W i t h i n a s o f t w a r e c o n ? g u r a t i o n management s y stem SCMS) can i n c l u d e , r e s p o n s i v e t o a u s e r i n i t i a t i n g ac h e c k - o u t o p e r a t i o n o f a ? l e W i t h i n t h e SCMS, d e n t i f y i n g t h e

    R e l a t e d US. A p p l i c a t i o n DataC o n t i n u a t i o n o f a p p l i c a t i o n N o . 1 2 / 3 4 4 , 5 8 3 , ? l e d onD e c - 2 8 > 2 0 0 8 - ? l e and a Workspace o f t h e u s e r and s e a r c h i n g n o d e s o f t h e

    r e p o s i t o r i e s of h e SCMS o r a s u c c e s s o r v e r s i o n of h e ? l e .I n t . C l . When s u c c e s s o r v e r s i o n of h e ? l e i s l o c a t e d Within a nodeG 0 6 F 9 / 4 4 ( 2 0 0 6 . 0 1 ) t h a t i s W i t h i n a p r e d e t e r m i n e d d i s t a n c e o f t h e W o r k s p a c e o fG06F 7 / 0 0 ( 2 0 0 6 . 0 1 ) t h e u s e r , a n o t i ? c a t i o n t h a t t h e s u c c e s so r v e r s i o n o f t h e ? l e i sG0 6 F 1 7 / 2 0 ( 2 0 0 6 . 0 1 ) W i t h i n t h e p r e d e t e r m i n e d d i s t a n c e o f t h e W o r k s p a c e o f t h eUs L user can be o u t p u t . When successor version o f h e ? l e i s notUSPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717/121; 717/122 located Within a node Within a predetennined distance Of theF i 1 d o f C l a s s i ? c a t i o n Search Workspace of t h e u s e r , t h e ? l e can be c h e c k e d - o u t t o t h eUSPC 7 1 7 / 1 2 1 Workspace o f t h e u s e r .S e e a p p l i c a t i o n ? l e f o r c o m p l e t e s e a r c h h i s t o r y . 1 5 C l a i m s , 4 Drawing S h e e t s

    m

    P e n d i n g P e n d i n g P e n d i n gP r o j e c t P r o j e c t P r o j e c t1 0 4 1 0 6 1 0 s

    W o r k s pa ce W o r k s pa ce1 4 0 1 7 0

    A c c e p t e d A c c e p t e dP r o j e c t s P r o j e c t s1 4 5 _ 1 7 5

    P e n d i n l g B u ck e t _ P e n d i r j g 8 B u c k e t5 1 5 0 5 1 8 0

  • 8/13/2019 Us 8607196

    2/16

    US 8 , 6 0 7 , 1 9 6 B2P a g e 2

    ( 5 6 ) R e f e r e n c e s C i t e dU . S . PATENT DOCUMENTS

    2003/0014513 A 1 1 / 2 0 0 3 Ruths et a l .2003/0177481 A 1 9/2003 A m a r u et a l .2 0 0 4 / 0 2 1 6 0 8 9 A1* 10/2004 Kaler e t a 1 . . . . . . . . . . . . . . . . . . . . 7 1 7 /1 2 02004/0224674 A 1 1 1 / 2 0 0 4 O F a r r e l l e t a l .2005/0131964 A 1 6 / 2 0 0 5 Saxena2005/0193374 A1 9 / 2 0 0 5 H a r r y e t a l .2006/0101443 A 1 5 / 2 0 0 6 Nasr2006/0150026 A 1 7/2006 Kolawa et a l .2007/0067373 A1 3 / 2 0 0 7 H i g g i n s e t a l .2 0 0 7 / 0 1 0 1 2 5 6 A1 5 / 2 0 0 7 S i m o n y i2008/0033753 A 1 2/2008 Canda et a 1 .2008/0059943 A 1 3/2008 Krevs et a l .2010/0058294 A 1 3/2010 B e s t e t a l .2011/0252093 A1 1 0 / 2 0 1 1 S p a t a r o e t a l .

    OTHER PUBLICATIONSJ a n g Ho L e e , A S o f t w a r e A r c h i t e c h u r e f o r S u p p o r t i n g DynamicC o l l o b a r a t i o n Environment on t h e I n t e r n e t , J o u r n a l o f KISS: Comp u t i n g P r a c t i c e s v o l . 9 , N o . 2 p . 1 4 6 - 5 7 , A p r . 2 0 0 3 .

    H a a k e , J .M e t a l . , E n d - U s e r C o n t r o l l e d G r o u p F o r m a t i o n a n dA c c e s s R i g h t s Management n a S h a r e d W o r k s p a c e S y s t e m , Comp u t e r S u p p o r t e d C o o p e r a t i v e Work C o n f e r e n c e P r o c e e d i n g s , p . 5 5 46 3 , N o v . 6 - 1 0 , 2 0 0 4 .M i c a l l e f , J . e t a l . , T h e A s g a r d S y s t e m A c t i v i t y - B a s e d C o n ? g u r a t i o nM a n a g e m e n t , I n P r o c . o f h e SCM-6 Workshop o n S y s t e m Con?gur a t i o n M a n a g e m e n t ( M a r . 2 5 - 2 6 , 1 9 9 6 ) . S o m e r v i l l e , E d . L e c t u r eN o t e s i n C o m p u t e r S c i e n c e , v o l . 1167, S p r i n g e r - V e r l a g , L o n d o n , p p .1 7 5 - 1 8 6 .E s t u b li e r , J . e t a l . , I m p a c t o f S o f t w a r e E n g i n e e r i n g R e s e a r c h on h eP r a c t i c e o f S o f t w a r e C o n ? g u r a t i o n Management, ACM r a n s . o nS o f t w a r e E n g i n e e r i n g a n d M e t h o d o l o g y , v o l . 1 4 , N o . 4 , O c t . 2 0 0 5 ,p p . 3 8 3 - 4 3 0 .B o y e r , J e t a l . , R u l e A u t h o r i n g I n f r a s t r u c t u r e i n J R u l e s , I n A g i l eB u s i n e s s R u l e D e v e l o p m e n t , S p r i n g e r - V e r l a g B e r l i n H e i d e l b e r g 2 0 1 1 , C h p a t e r 1 0 , p p . 2 8 3 - 3 3 1 .

    * c i t e d by examiner

  • 8/13/2019 Us 8607196

    3/16

    US. P a tent D e c . 1 0 , 2 0 1 3 S h e e t 1 0 1 4 US , 6 0 7 , 1 9 6 B2

    m3 0 0H o H n HH U H H Q Q Q Q:o o m m w v t omH o v H u s m HE H E v HQ :8 0 5 5E H E P H

    Q :8 0 5 5E H E P HU H H H

    o f2 2 2V

    o 38 3 9 1 3m mp o v H o s m HE H E o n H

    w ey o uH o b Hm E H E P H

  • 8/13/2019 Us 8607196

    4/16

    US. P a tent D e c . 1 0 , 2 0 1 3 S h e e t 2 o f 4 US , 6 0 7 , 1 9 6 B2

    W Mi

    NU H H

    o 2

  • 8/13/2019 Us 8607196

    5/16

    US. P a tent D e c . 1 0 , 2 0 1 3 S h e e t 3 o f 4 US , 6 0 7 , 1 9 6 B2

    @@2 mm

    m o m N mm mo m m

    o m m

    @@

  • 8/13/2019 Us 8607196

    6/16

    US. P a t e n t D e c . 1 0 , 2 0 1 3

    C r e a t e g r a p h r e p r e s e n t a t i o n o fs t a t e o f s o f t w a r e c o n ? g u r a t i o n

    m a n a g e m e n t s y s t e m4 0 5

    lR e c e i v e u s e r i n p u t i n i t i a t i n gc h e c k - o u t o p e r a t i o n f o r ? l e

    410lI d e n t i f y v e r s i o n o f ? l e b e i n gc h e c k e d - o u t a n d W o r k s p a c e o f

    user

    lD e t e r m i n e h o p l i m i t a t i o n f o rs e a r c h

    lS e a r c h e a c h n o d e w i t h i n

    s p e c i ? e d l i m i t f o r s u c c e s s o rv e r s i o n o f ? l e

    4 1 5

    420

    4 2 5

    s u c c e s s o r v e r s i o n of? l e w i t h i n s p e c i ? e dn u m b e r o f h o p s ?

    430

    Provide n o t i ? c a t i o n t o u s e r t h a t

    S h e e t 4 0 f 4

    J ; O

    s u c c e s s o r v e r s i o n o f l e e x i s t s4 3 5

    FIG. 4

    Query u s e r Whether t o c o n t i n u ec h e c k - o u t o p e r a t i o n

    440

    C o n t i n u e ?445

    T e r m i n a t e c h e c k - o u t o p e r a t i o n45

    V

    P e r f o r m c h e c k o u t o p e r a t i o n

    US 8 , 6 0 7 , 1 9 6 B2

    Yes

  • 8/13/2019 Us 8607196

    7/16

    US 8 , 6 0 7 , 1 9 6 B21

    SELECTIVE NOTIFICATIONS ACCORDINGTO MERGEDISTANCE FOR SOFTWARE

    VERSION BRANCHES WITHIN A SOFTWARECONFIGURATION MANAGEMENTCROSS-REFERENCE TO RELATED

    APPLICATIONST h i s a p p l i c a t i o n s a c o n t i n u a t i o n a p p l i c a t i o n o f US. p p l i

    c a t i o n S e r . No. 1 2 / 3 4 4 , 5 8 3 e n t i t l e d SELECTIVE NOTIFICATIONS ACCORDING TO MERGE DISTANCE FORSOFTWARE VERSION BRANCHES WITHIN A SOFTWARE CONFIGURATION MANAGEMENT SYSTEMa n d ? l e d o n D e c . 2 8 , 2 0 0 8 , W h i c h s f u l l y i n c o r p o r a t e d h e r e i nb y r e f e r e n c e .

    RESERVATION OF RIGHTS IN COPYRIGHTEDMATERIAL

    A o r t i o n o f t h e d i s c l o s u r e o f h i s p a t e n t document cont a i n s m a t e r i a l W h i c h i s s u b j e c t t o c o p y r i g h t p r o t e c t i o n . Thec o p y r i g h t oWner h a s no o b j e c t i o n to t h e f a c s i m i l e r e p r o d u ct i o n by a n y o n e o f t h e p a t e n t document o r t h e p a t e n t d i s c l os u r e , a s i t a p p e a r s i n t h e P a t e n t and Trademark Of? ce p a t e n t? l e o r r e c o r d s , b u t o t h e r W i s e r e s e r v e s a l l c o p y r i g h t r i g h t sw h a t s o e v e r .

    BACKGROUNDThe embodiments o f t h e p r e s e n t i n v e n t i o n r e l a t e to s o f t

    Ware c o n ? g u r a t i o n management s y s t e m s . A o f t W a r e con? g u r a t i o n management s y s t e m SCMS) e f e r s t o a c o m p u t e rb a s e d s y s t e m t h a t t r a c k s v a r i o u s a t t r i b u t e s o f s o f t w a r e t h a t i sb e i n g d e v e l o p e d , a n d t h e r e f o r e , c o n t i n u e s t o e v o l v e o v e rt i m e . V a r i o u s f u n c t i o n a l a n d p h y s i c a l a t t r i b u t e s o f t h e s o f tWare m a i n t a i n e d W i t h i n t h e SCMS can be t r a c k e d , a l l o W i n gt h e state o f t h e s o f t W a r e t o be p r e s e r v e d and r e v i s i t e d a td i f f e r e n t p o i n t s i n t i m e t h r o u g h o u t t h e d e v e l o p m e n t c y c l e .Fo r example, a user may e t r i e v e a c o p y of h e softWare a s i te x i s t e d a t a p a r t i c u l a r t i m e i n t h e p a s t .

    The SCMS m p o s e s s y s t e m a t i c c o n t r o l o v e r c h a n g e s t o t h es o f t W a r e b y p r o v i d i n g f u n c t i o n s s u c h a s ? l e v e r s i o n i n g a n dm e r g i n g o f d i f f e r e n t v e r s i o n s o f ? l e s t h a t may h a v e b e e nWorked u p o n , i n p a r a l l e l o r c o n c u r r e n t l y , b y a p l u r a l i t y o fd i f f e r e n t u s e r s o r development t e a m s . An SCMS r o v i d e st h e s e t y p e s o f f u n c t i o n s t o m a i n t a i n i n t e g r i t y a n d r a c e a b i l i t yW i t h r e s p e c t t o d e v e l o p m e n t e f f o r t s r e l a t i n g t o t h e s o f t W a r et h r o u g h o u t t h e d e v e l o p m e n t l i f e c y c l e , W h i c h may s p a n o v e ry e a r s .

    F o r e x a m p l e , a n SCMS r o v i d e s f u n c t i o n a l i t y t h a t a l l o W seach o f one or more users t o check-out a c o p y o f a ?lemaintained Within t h e SCMS. Each user may o r k o n h i s o rh e r o W n c h e c k e d - o u t copy o f t h a t ? l e i n d e p e n d e n t l y o f o t h e ru s e r s a n d , t h e r e f o r e , c o n c u r r e n t l y W i t h o t h e r u s e r s . T h i s s i t ua t i o n , Where d i f f e r e n t c o p i e s a r e g e n e r a t e d a n d d i s t r i b u t e d tod i f f e r e n t u s e r s o r development e a m s , can produce branchi n t h e h i s t o r y o f h e ? l e . At some o i n t , t h e b r a n c h e s o f h e ? l emay need t o be merged back t o g e t h e r . I n t h i s m a n n e r , anSCMS can provide each i n d i v i d u a l u s e r With a c o n t r o l l e de n v i r o n m e n t i n W h i c h t o d e v e l o p s o f t W a r e . T h r o u g h t h eSCMS, a u s e r c a n , f o r e x a m p l e , c o n t r o l When c h a n g e s i n t r oduced i n t o t h e s o f t W a r e by o t h e r u s e r s W i l l b e a c c e p t e d i n t oh i s o r h e r o W n c o n t r o l l e d development e n v i r o n m e n t .

    BRIEF SUMMARY OF THE INVENTIONThe embodiments d i s c l o se d h e r e i n r e l a t e t o s o f t W a r e con

    ? g u r a t i o n management s y s t e m s . One e m b o d i m e n t o f t h e

    20

    25

    30

    35

    4 0

    45

    50

    55

    60

    6 5

    2p r e s e n t i n v e n t i o n can i n c l u d e a computer-implementedmethod o f c o n t r o l l i n g v e r s i o n b r a n c h i n g W i t h i n a s o f t W a r ec o n ? g u r a t i o n management s y s t e m ( S C M S ) . T h e method a ni n c l u d e , r e s p o n s i v e t o a u s e r i n i t i a t i n g a c h e c k - o u t o p e r a t i o no f ? l e W i t h i n t h e SCMS, d e n t i f y i n g t h e ? l e and Workspaceo f t h e u s e r a n d s e a r c h i n g n o d e s o f t h e r e p o s i t o r i e s o f t h eSCMS o r a successor version o f h e ? l e . When successorv e r s i o n of t h e ? l e i s l o c a t e d W i t h i n a node t h a t i s W i t h i n ap r e d e t e r m i n e d d i s t a n c e o f t h e Workspace o f t h e u s e r , a n o t i? c a t i o n t h a t t h e s u c c e s s o r v e r s i o n of t h e ? l e i s W i t h i n t h ep r e d e t e r m i n e d d i s t a n c e o f t h e Workspace o f t h e u s e r c a n beo u t p u t . When s u c c e s s o r v e r s i o n o f t h e ? l e i s n o t l o c a t e dW i t h i n a node W i t h i n a p r e d e t e r m i n e d d i s t a n c e of h e W o r ks p a c e of h e u s e r , t h e ? l e can be c h e c k e d - o u t t o t h e Workspaceo f the u s e r .

    Another embodiment o f t h e p r e s e n t i n v e n t i o n can i n c l u d ea c o m p u t e r - i m p l e m e n t e d method o f c o n t r o l l i n g p r o j e c t v e rs i o n i n g W i t h i n an SCMS. The method can i n c l u d e r e p r es e n ti n g t h e SCMS s a g r a p h i n c l u d i n g a p l u r a l i t y o f nodes and ap l u r a l i t y o f h o p s , W h e r e i n e a c h h o p r e p r e s e n t s a n a l l o W a b l ed a t a t r a n s f e r b e t W e e n tWo n o d e s , W h e r e i n e a c h hop s de?neda c c o r d i n g t o s o u r ce -t a r g e t r e l a t i o n s h i p s b e t W e e n n o d e sW i t h i n t h e SCMS. Responsive t o a u s e r i n i t i a t i n g a c h e c k - o u to p e r a t i o n o f a ? l e W i t h i n t h e SCMS, t h e ? l e t o be c h e c k e d - o u tand a Workspace of h e u s e r t o Which h e ? l e W i l l be checkedo u t can be d e t e r m i n e d . Each node of h e SCMS h a t i s W i t h i na p r e d e t e r m i n e d number f o p s from node e p r e s e n t i n g t h eW o r k s p a c e o f h e s e r , a c c o r d i n g to t h e g r a p h , c a n b e s e a r c h e df o r a successor version o f h e ? l e . When successor versionof h e ? l e i s i d e n t i ? e d , a n o t i ? c a t i o n t h a t t h e s u c c e s s o r v e rs i o n o f t h e ? l e i s W i t h i n t h e p r e d e t e r m i n e d d i s t a n c e o f t h eW o r kspace of t h e user can be o u t p u t . When successor vers i o n of h e ? l e i s n o t i d e n t i ? e d , t h e ? l e can be c h e c k e d - o u t t ot h e Workspace o f t h e u s e r .

    BRIEF DESCRIPTION OF THE SEVERALVIEWS OF THE DRAWINGS

    F I G . 1 i s a b l o c k d i a g r a m i l l u s t r a t i n g a s o f t W a r e con?gur a t i o n management s y s t e m SCMS) i n a c c o r d a n c e W i t h o n eembodiment o f t h e p r e s e n t i n v e n t i o n .

    F I G . 2 i s a ? r s t g r a p h l l u s t r a t i n g a t e c h n i q u e f o r m e a s u r i n gmerge d i s t a n c e W i t h i n an SCMS n accordance With a n o t h e rembodiment o f t h e p r e s e n t i n v e n t i o n .

    F I G . 3 i s a s e c o n d g r a p h i l l u s t r a t i n g a t e c h n i q u e f o r meas u r i n g merge d i s t a n c e W i t h i n a n SCMS n a c c o r d a n c e W i t ha n o t h e r embodiment o f t h e p r e s e n t i n v e n t i o n .

    F I G . 4 i s a H o w c h a r t i l l u s t r a t i n g a method o f s e l e c t i v e l yn o t i f y i n g a u s e r of t h e r e x i s t i n g s u c c e s s o r v e r s i o n s of ? l ea c c o r d i n g t o merge d i s t a n c e W i t h i n an SCMS n a c c o r d a n c eW i t h a n o t h e r embodiment o f t h e p r e s e n t i n v e n t i o n .

    DETAILED DESCRIPTION OF THE INVENTIONAs W i l l b e a p p r e c i a t e d by o n e s k i l l e d i n t h e a r t , embodi

    ments of h e p r e s e n t i n v e n t i o n may a k e t h e form f a s y s t e m ,m e t h o d , o r c o m p u t e r p r o g r a m p r o d u c t . A c c o r d i n g l y , t h ep r e s e n t i n v e n t i o n may t a k e t h e form o f an e n t i r e l y h a r d W a r ee m b o d i m e n t , a n e n t i r e l y s o f t W a r e e m b o d i m e n t ( i n c l u d i n g? r m W a r e , r e s i d e n t s o f t W a r e , m i c r o - c o d e , e t c . ) , o r a n embodiment c o m b i n i n g s o f t W a r e a n d h a r d W a r e a s p e c t s t h a t may l lg e n e r a l l y be r e f e r r e d t o h e r e i n a s a c i r c u i t , module o r s y s t e m . F u r t h e r m o r e , a n embodiment o f t h e p r e s e n t i n v e nt i o n may t a k e t h e form o f a computer pr ogram p r o d u c tembodied n a n y t a n g i b l e medium f e x p r e s s i o n h a v i n g comp u t e r - u s a b l e program c o d e embodied i n t h e medium.

  • 8/13/2019 Us 8607196

    8/16

    US 8 , 6 0 7 , 1 9 6 B23

    Any ombination of one or more comp u ter usable or comp u t e r r e a d a b l e m e d i u m ( s ) may b e u t i l i z e d . The c o m p u t e ru s a b l e o r c o m p u t e r - r e a d a b l e medium may b e , f o r e x a m p l e ,b u t i s n o t l i m i t e d t o , a n e l e c t r o n i c , m a g n e t i c , o p t i c a l , magn e t o - o p t i c a l , e l e c t r o m a g n e t i c , i n f r a r e d , o r s e m i c o n d u c t o rs y s t e m , a p p a r a t u s , d e v i c e , o r p r o p a g a t i o n medium. More p ec i ? c e x a m p l e s a n o n - e x h a u s t i v e l i s t ) o f h e c o m p u t e r - r e a da b l e medium would i n c l u d e t h e f o l l o w i n g : an e l e c t r i c a l conn e c t i o n having one o r more w i r e s , a p o r t a b l e computerd i s k e t t e , a hard d i s k , a random a c c e s s memo r y RAM), ar e a d - o n l y memory ROM), a n e r a s a b l e p r o g r a m m a b l e r e a do n l y memory EPROM r F l a s h memory), a n o p t i c a l ? b e r , ap o r t a b l e c o m p a c t i s c r e a d - o n l y memory CDROM), a n p t ic a l s t o r a g e d e v i c e , a t r a n s m i s s i o n media such a s t h o s e s u pp o r t i n g t h e I n t e r n e t o r an i n t r a n e t , o r a magnetic s t o r a g ed e v i c e . Note t h a t t h e c o m p u t e r - u s a b l e o r c o m p u t e r - r e a d a b l emedium could even be paper o r another s u i t a b l e mediumu pon which t h e program i s p r i n t e d , a s t h e program can bee l e c t r o n i c a l l y c a p t u r e d , v i a , f o r i n s t a n c e , o p t i c a l s c a n n i n g o ft h e p a p e r o r o t h e r medium, t h e n c o m p i l e d , i n t e r p r e t e d , o ro t h e r w i s e p r o c e s s e d i n a s u i t a b l e m a n n e r , i f n e c e s s a r y , andt h e n s t o r e d i n a computer memory. I n t h e c o n t e x t of t h i sd o c u m e n t , a c o m p u t e r - u s a b l e o r c o m p u t e r - r e a d a b l e mediummay b e a n y medium t h a t c a n c o n t a i n , s t o r e , c o m m u n i c a t e ,p r o p a g a t e , o r t r a n s p o r t t h e p rogram f o r use by o r i n connect i o n w i t h t h e i n s t r u c t i o n e x e c u t i o n s y s t e m , a p p a r a t u s , o rd e v i c e . The c o m p u t e r - u s a b l e medium may i n c l u d e a p r o p ag a t e d d a t a s i g n a l w i t h t h e c o m p u t e r - u s a b l e p r o g r a m c o d eembodied t h e r e w i t h , e i t h e r i n baseband o r a s p a r t of c a r r i e rw a v e . The computer s a b l e program code may be r a n s m i t t e du s i n g a n y a p p r o p r i a t e m e d i u m , i n c l u d i n g b u t n o t l i m i t e d t ow i r e l e s s , w i r e l i n e , o p t i c a l ? b e r c a b l e , R F , e t c .C o m p u t e r p r o g r a m c o d e f o r c a r r y i n g o u t o p e r a t i o n s o f t h ep r e s e n t i n v e n t i o n may e r i t t e n i n any combination of ne rmore p r o g r a m m i n g l a n g u a g e s , i n c l u d i n g a n o b j e c t o r i e n t e dprogramming l a n g u a g e s u c h a s J a v a , S m a l l t a l k , C + + , o r t h el i k e a n d c o n v e n t i o n a l p r o c e d u r a l p r o g r a m m i n g l a n g u a g e s ,s u c h a s t h e C programming l a n g u a g e o r s i m i l a r programming l a n g u a g e s . The program c o d e may e x e c u t e e n t i r e l y ont h e u s e r s c o m p u t e r , p a r t l y on h e u s e r s c o m p u t e r , a s a s t a n da l o n e s o f t w a r e p a c k a g e , p a r t l y o n t h e u s e r s c o m p u t e r a n dp a r t l y o n a remote computer or e n t i r e l y o n t h e remote comp u t e r o r s e r v e r . I n t h e l a t t e r s c e n a r i o , t h e remote computermay e c o n n e c t e d t o t h e u s e r s c o m p u t e r t h r o u g h a n y t y p e o fnetwork, i n c l u d i n g a l o c a l a r e a network LAN) o r a wide a r e anetwork WAN), o r t h e connection may e made t o an e x t e rn a l c o m p u t e r f o r e x a m p l e , t h r o u g h t h e I n t e r n e t u s i n g a nI n t e r n e t S e r v i c e P r o v i d e r ) .The r e s e n t i n v e n t i o n i s d e s c r i b e d below w i t h r e f e r e n c e t o? o w c h a r t i l l u s t r a t i o n s a n d / o r b l o c k d i a g r a m s o f m e t h o d s ,a p p a r a t u s s y s t e m s ) , a n d c o m p u t e r p r o g r a m p r o d u c t s a c c o r di n g t o embodiments o f t h e i n v e n t i o n . I t w i l l b e u n d e r s t o o dt h a t e a c h b l o c k o f t h e ?owchart i l l u s t r a t i o n s a n d / o r b l o c kd i a g r a m s , a n d c o m b i n a t i o n s o f b l o c k s i n t h e ? o w c h a r t i l l u st r a t i o n s a n d / r b l o c k d i a g r a m s , c a n be implemented by comp u t e r program n s t r u c t i o n s . T h e s e c o m p u t e r program n s t r u ct i o n s may be p r o v i d e d t o a p r o c e s s o r o f a g e n e r a l purposec o m p u t e r , s p e c i a l p u r p o s e c o m p u t e r , o r o t h e r p r o g r a m m a b l ed a t a p r o c e s s i n g a p p a r a t u s t o p r o d u c e a m a c h i n e , s u c h h a t t h ei n s t r u c t i o n s , which e x e c u t e v i a t h e p r o c e s s o r o f h e c o m p u t e ro r o t h e r programmable d a t a p r o c e s s i n g a p p a r a t u s , c r e a t emeans f o r i m p l e m e n t i n g t h e f u n c t i o n s / a c t s s p e c i ? e d i n t h e?owchart a n d / o r b l o c k diagram b l o c k o r b l o c k s .

    T h e s e computer program n s t r u c t i o n s may l s o be s t o r e d i na computer-readable medium h a t can d i r e c t a computer o ro t h e r p r o g r a m m a b l e d a t a p r o c e s s i n g a p p a r a t u s t o f u n c t i o n i na p a r t i c u l a r m a n n e r , s u c h t h a t t h e i n s t r u c t i o n s s t o r e d i n t h e

    20

    25

    30

    35

    4 0

    45

    50

    55

    60

    6 5

    4c o m p u t e r - r e a d a b l e medium p r o d u c e a n a r t i c l e o f manufact u r e i n c l u d i n g i n s t r u c t i o n means which implement t h e f u n ct i o n / a c t s p e c i ? e d i n t h e ? o w c h a r t a n d / o r b l o c k d i a g r a m b l o c ko r blocks.

    The computer program i n s t r u c t i o n s may a l s o be l o a d e do n t o a computer o r o t h e r programmable d a t a p r o c e s s i n ga p p a r a t u s t o c a u s e a s e r i e s o f o p e r a t i o n a l s t e p s t o be p e rformed on t h e computer o r o t h e r programmable a p p a r a t u s t op r o d u c e a c o m p u t e r i m p l e m e n t e d p r o c e s s s u c h t h a t t h ei n s t r u c t i o n s which x e c u t e o n h e computer r o t h e r pro gramm a b l e a p p a r a t u s p r o v i d e p r o c e s s e s f o r i m p l e m e n t i n g t h ef u n c t i o n s / c t s s p e c i ? e d i n t h e ? o w c h a r t a n d / r b l o c k d i a g r a mblock or b l o c k s .

    The e m b o d i m e n t s d i s c l o s e d w i t h i n h i s s p e c i ? c a t i o n e l a t et o s o f t w a r e c o n ? g u r a t i o n m a n a g e m e n t s y s t e m s ( S C M S s ) . I na c c o r d a n c e w i t h t h e i n v e n t i v e a r r a n g e m e n t s d i s c l o s e d h e r e i n ,an SCMS an e v a l u a t e t h e s t a t e of o f t w a r e b e i n g d e v e l o p e dc o n c u r r e n t l y by a p l u r a l i t y o f d i f f e r e n t u s e r s a n d / r d e v e l o pment teams. When user wishes t o check-out software fromt h e SCMS o r s t o r a g e i n t o a u s e r - s p e c i ? c w o r k s p a c e , t h eSCMS an o t i f y t h e user whether one or more other versionso f t h e s o f t w a r e b e i n g c h e c k e d h a v e b e e n c r e a t e d by o t h e ru s e r s according t o a merge d i s t a n c e between t h o s e o t h e rv e r s i o n s and t h e v e r s i o n t h a t would be c r e a t e d s h o u l d t h ec h e c k - o u t o p e r a t i o n c o n t i n u e .

    Based upo n t h e n o t i ? c a t i o n , o r whether a n o t i ? c a t i o n i sr e c e i v e d , each i n d i v i d u a l u s e r may ecide whether o r not t oc o n t i n u e w i t h t h e c h e c k - o u t o p e r a t i o n o f t h e ? l e . W h en t h e? l e i s c h e c k e d - o u t , a copy o f t h a t ? l e i s c r e a t e d and s t o r e dw i t h i n a workspace c o r r e s p o n d i n g to t h e u s e r t h a t r e q u e s t e dt h e c h e c k - o u t o p e r a t i o n . I n h i s s e n s e , t h e ? l e c a n b e o u t p u t t oa workspace o f a u s e r . As u s e d h e r e i n , o u t p u t o r o u t p u tt i n g c a n i n c l u d e , b u t i s n o t l i m i t e d t o , s t o r i n g d a t a i nmemory, . g . , w r i t i n g t o a ? l e , c h e c k i n g - o u t a ? l e , w r i t i n gt o a u s e r d i s p l a y o r o t h e r o u t p u t d e v i c e , e . g . , p l a y i n g a u d i b l en o t i ? c a t i o n s , s e n d i n g o r t r a n s m i t t i n g t o a n o t h e r s y s t e m ,e x p o r t i n g , o r t h e l i k e .

    Depending upon t h e merge d i s t a n c e , t h e u s e r may c h o o s et o t e r m i n a t e t h e c h e c k - o u t o p e r a t i o n t o a v o i d p o s s i b l e mergeo p e r a t i o n s t h a t would e n e c e s s i t a t e d by i r t u e o f h e b r a n c hi n g c r e a t e d b y t h e c h e c k - o u t o p e r a t i o n . F o r e x a m p l e , t h e u s e rmay h o o s e t o a c c e p t t h e a c t i v i t y t h a t p r o d u c e d t h e s u c c e s s o rv e r s i o n . A l t e r n a t i v e l y , t h e u s e r t h a t i n i t i a l l y r e q u e s t e d t h ec h e c k - o u t o p e r a t i o n may choose t o w a i t f o r t h e s u c c e s s o rv e r s i o n to become a v a i l a b l e t h r o u g h n o r m a l a c c e p t a n dd e l i v e r o p e r a t i o n s w i t h i n t h e SCMS.

    One reason t h a t a u s e r may ish t o avoid branching s t h ed i ? i c u l t y o f m e r g i n g p a r t i c u l a r t y p e s o f ? l e s . W h en a u s e rd e t e r m i n e s t h a t t h e d i ? i c u l t y o f merging two e r s i o n s o f a ? l ei s h i g h , i t may be d e s i r a b l e f o r t h a t u s e r t o a c c e p t t h e l a t e s tv e r s i o n o f h a t ? l e , e v e n f t h a t means a c c e p t i n g c h a n g e s to t h es o f t w a r e e a r l i e r w i t h i n t h e d e v e l o p m e n t c y c l e t h a n n o r m a l o rs c h e d u l e d .

    Another o t i v a t i o n t o a v o i d b r a n c h i n g i s t h a t i n f o r m a t i o ni n a l a t e r v e r s i o n o f t h e ? l e b e i n g c h e c k e d - o u t may i n ? u e n c eh o w h e u s e r w i s h i n g t o c h e c k - o u t t h e ? l e would implement ap a r t i c u l a r c h a n g e . F o r i n s t a n c e , i f c o d e i n a ? l e h a s b e e nr e f a c t o r e d , e . g . , r e - w r i t t e n i n o r d e r t o i m p r o v e r e a d a b i l i t y o rs t r u c t u r e w i t h o u t a f f e c t i n g meaning o r b e h a v i o r , a u s e r mayw i s h t o a c c e p t t h i s v e r s i o n p r i o r t o making a n y f u r t h e rc h a n g e s .An xample of h i s s i t u a t i o n may e when a u s e r needs t o

    modify a d i r e c t o r y by a d d i n g a new ? l e . I f a l a t e r v e r s i o n o ft h a t d i r e c t o r y h a s a l r e a d y i n t r o d u c e d a ? l e w i t h t h a t samename, t h e u s e r may ave to s u b s e q u e n t l y rename h a t ? l e andmodify a number f l e s r e f e r e n c i n g t h e renamed l e t o a v o i da c o n ? i c t . I n t h a t c a s e , t would be e n e ? c i a l to o b t a i n t h e l a t e r

  • 8/13/2019 Us 8607196

    9/16

    US 8 , 6 0 7 , 1 9 6 B25

    v e r s i o n o f t h e d i r e c t o r y r a t h e r t h a n c r e a t i n g a n o t h e r ? l e W i t ht h a t same name and r i s k d u p l i c a t i v e o r c o r r e c t i v e W o r k t ochange h e ? l e name When h e c o n ? i c t must be e s o l v e d i n t h emerger o f t h e tWo b r a n c h e s o f t h a t d i r e c t o r y .

    Another m o t i v a t i o n t o a c c e p t a l a t e r v e r s i o n of s o f t W a r eWould b e i f t h a t l a t e r v e r s i o n c o n t a i n s c h a n g e s t h a t Woulds i m p l i f y f u r t h e r Work o b e p e r f o r m e d upon h a t s o f t W a r e . F o re x a m p l e , a change may have been i n t r o d u c e d i n t o a ? l e t h a ts u p p o r t s u s e o f s t a t i c a n a l y s i s o o l . A c c e p t i n g t h a t v e r s i o n o ft h e ? l e , a s o p p o s e d t o b r a n c h i n g from t h e e a r l i e r v e r s i o nW i t h o u t t h e m o d i ? c a t i o n , Would a l l o W t h e u s e r a l s o t o u s e ,a n d b e n e ? t f r o m , t h e s t a t i c a n a l y s i s t o o l . O t h e r W i s e , t h e u s e rWould be o r c e d t o W a i t u n t i l t h o s e c h a n g e s a p p e a r o r becomea v a i l a b l e W i t h i n t h e normal c o u r s e o f s o f t W a r e developmenti n t h e SCMS.

    There a r e numerous o t h e r s i t u a t i o n s i n Which t i s bene?c i a l t o be noti?ed h a t a ? l e one s r e q u e s t i n g t o c h e c k - o u t h a sp r e v i o u s l y b e e n modi?ed by a n o t h e r u s e r . B e i n g n o t i ? e d o ft h a t c o n d i t i o n a s W e l l a s Where t h e o t h e r v e r s i o n i s W i t h i n t h eSCMS and i t s d i s t a n c e a n d / o r a v a i l a b i l i t y W i t h r e s p e c t too n e oWn orkspace W i t h i n t h e SCMS an be b e n e ? c i a l anda v o i d t i m e c o n s u m i n g m e r g e o p e r a t i o n s i n t h e f u t u r e .

    FIG. 1 i s a block diagram i l l u s t r a t i n g an SCMS n a c c o rdance W i t h one embodiment of h e p r e s e n t i n v e n t i o n . SCMS100 can be implemented a s a computer s y s t e m , e . g . , a s e r v e r ,e x e c u t i n g s u i t a b l e s e r v e r - s i d e s o f t W a r e . SCMS 00 can communicate With one o r more o t h e r c l i e n t s ( n o t s h o W n ) . I ng e n e r a l , a c o m p u t e r s u i t a b l e f o r s t o r i n g a n d / o r e x e c u t i n gprogram code W i l l i n c l u d e at l e a s t one p r o c e s s o r coupledd i r e c t l y o r i n d i r e c t l y t o memory e l e m e n t s t h r o u g h a s y s t e mb u s . The memo r y e l e m e n t s can i n c l u d e l o c a l memo r ye m p l o y e d d u r i n g a c t u a l e x e c u t i o n o f t h e p r o g r a m c o d e , e . g . ,random a c c e s s memory, bulk s t o r a g e , such a s d i s k - b a s e dmemory, and c a c h e memories Which r o v i d e t e m p o r a r y s t o rage of a t l e a s t some p rogram code i n o r d e r t o reduce t h enumber o f t i m e s c o d e must be r e t r i e v e d from b u l k s t o r a g ed u r i n g e x e c u t i o n .

    I n p u t / o u t p u t I / O ) d e v i c e s ( i n c l u d i n g b u t n o t l i m i t e d t ok e y b o a r d s , d i s p l a y s , p o i n t i n g d e v i c e s , e t c . ) c a n b e c o u p l e d ot h e c o m p u t e r e i t h e r d i r e c t l y o r t h r o u g h i n t e r v e n i n g l / O c o nt r o l l e r s . Network a d a p t e r s may a l s o be c o u p l e d t o t h e comp u t e r t o e n a b l e t h e c o m p u t e r t o become c o u p l e d t o o t h e rc o m p u t e r s o r r e m o t e p r i n t e r s o r s t o r a g e d e v i c e s t h r o u g h i n t e rv e n i n g p r i v a t e o r p u b l i c n e t W o r k s . M o d e m s , c a b l e m o d e m s ,and E t h e r n e t c a r d s a r e j u s t a feW o f t h e c u r r e n t l y a v a i l a b l et y p e s o f n e t W o r k a d a p t e r s .

    P r i o r t o c o n t i n u i n g W i t h a d e s c r i p t i o n o f SCMS 0 0 , i t i su s e f u l t o d e s c r i b e s e v e r a l c o n c e p t s t h a t a r e r e l e v a n t to t h eo p e r a t i o n o f SCMS 0 0 . The t e r m p r o j e c t , a s u s e d W i t h i nt h i s s p e c i ? c a t i o n , can e f e r t o a t r e e s t r u c t u r e including one ormore i r e c t o r i e s and one or more ?les stored or distributedt h r o u g h o u t t h a t d i r e c t o r y s t r u c t u r e s t o r e d i n memory. F o re x a m p l e , a p r o j e c t can be h e c o m p l e t e s e t of o u r c e code l e sa n d / o r development ? l e s , a s o r g a n i Z e d o r s t o r e d W i t h i n ah i e r a r c h i c a l d i r e c t o r y s t r u c t u r e , f o r a p a r t i c u l a r s o f t W a r ep r o d u c t o r s o f t W a r e d e v e l o p m e n t e f f o r t . A r o j e c t t h a t i sm a i n t a i n e d W i t h i n SCMS 1 0 0 , a n d t h u s , i s a v a i l a b l e f o ra c c e p t a n c e i n t o a Workspace W i t h i n SCMS 1 0 0 , c a n ber e f e r r e d t o a s a p e n d i n g p r o j e c t . A e n d i n g p r o j e c t t h a t h a sbeen loaded i n t o a Workspace o f an i n d i v i d u a l user can ber e f e r r e d t o a s a p r o j e c t . SCMS 00 can i n c l u d e one o r more pending p r o j e c t s 1 0 4 ,

    1 0 6 , a n d 1 0 8 s t o r e d i n m e m o r y . A e n d i n g p r o j e c t , e . g . ,p e n d i n g p r o j e ct s 1 0 4 , 1 0 6 , a n d 1 0 8 , r e f e r s t o t h e m o s t r e c e n tv e r s i o n of p r o j e c t t h a t i s a v a i l a b l e t o u s e r s f o r a c c e p t i n g i n t oa W o r k s p a c e . F o r e x a m p l e , p e n d i n g p r o j e c t 1 0 4 c a n r e p r e s e n ta p a r t i c u l a r d i r e c t o r y s t r u c t u r e i n c l u s i v e o f d e v e l o p m e n t ? l e s ,

    20

    25

    30

    35

    4 0

    45

    50

    55

    60

    6 5

    6e . g . , s o u r c e c o d e ? l e s , l i b r a r i e s , and a n y o t h e r components o fa p a r t i c u l a r s o f t W a r e p r o d u c t o r a p a r t i c u l a r r e l e a s e of s o f tWare r o d u c t . Pending r o j e c t 106 can be a d i f f e r e n t s o f t W a r ep r o d u c t o r a d i f f e r e n t r e l e a s e of t h e same s o f t W a r e p r o d u c tr e p r e s e n t e d b y p e n d i n g p r o j e c t 1 0 4 . P e n d i n g p r o j e c t 1 0 8 c a nbe y e t a n o t h e r s o f t W a r e p r o d u c t o r a n o t h e r r e l e a s e of s o f tWare p r o d u c t .

    P e n d i n g p r o j e c t s 1 0 4 - 1 0 8 , as s t o r e d W i t h i n S MS 1 0 0 ,r e p r e s e n t c o m m u n i t y a c c e s s i b l e i n f o r m a t i o n . C o m m u n i t yi n f o r m a t i o n , o r community a c c e s s i b l e i n f o r m a t i o n , r e f e r s t oi n f o r m a t i o n s u c h as p e n d i n g p r o j e c t s 1 0 4 - 1 0 8 t h a t may b ea c c e s s e d by more t h a n one c l i e n t of SCMS 0 0 . I n t h i s c a s e ,a u s e r ma y a c c e p t a p a r t i c u l a r pending p r o j e c t i n t o a W o r kspace of t h a t u s e r . S u b s e q u e n t l y , t h e u s e r can d e l i v e r t h a tp r o j e c t b a c k n t o t h e p e n d i n g p r o j e c t o f h e SCMS 1 0 0 , a l b e i ti n a changed f o r m .

    Each of p l u r a l i t y of s e r s may b t a i n , e . g . , a c c e p t , a copyo f a pending p r o j e c t m a i n t a i n e d W i t h i n SCMS 100 i n t o aW o r k s p a c e c o r r e s p o n d i n g t o t h a t u s e r . W h i l e l o g i c a l l y t h esame a s each o t h e r copy of same pending p r o j e c t o b t a i n e db y o t h e r s e r s , t h e c o p y o f h e p e n d i n g p r o j e c t h a t i s a c c e p t e di n t o t h e Workspace o f t h e u s e r t h a t i n i t i a t e d t h e a c c e p t o p e r at i o n W i l l b e i n d e p e n d e n t from t h o s e o t h e r c o p i e s o n c ea c c e p t e d i n t o a Workspace o f t h e u s e r .

    Whereas t h e pending p r o j e c t s 104-108 a r e deemed comm u n i t y r e p o s i t o r i e s , e a c h o f W o r k sp a c e s 1 4 0 a n d 1 7 0 c a nc o r r e s p o n d t o a s i n g l e u s e r . I n one embodiment, Workspaces140 and 170 can be s t o r e d i n m em o r y of a u s e r s c l i e n t . I na n o t h e r e m b o d i m e n t , W o r k s p a c e s 140 and 1 7 0 c a n b e s t o r e di n a p o r t i o n o f memory W i t h i n SCMS 00 t h a t i s r e s e r v e d f o re a c h u s e r s r e s p e c t i v e W o r k s p a c e .

    As s h o W n , W o r k s p a c e 1 4 0 c a n b e a s s o c i a t e d W i t h a p e n d i n gb u c k e t 155 and Workspace 170 can be a s s o c i a t e d With ap e n d i n g b u c k e t 1 8 5 . P e n d i n g b u c k e t s 1 5 5 a n d 1 8 5 , a l s o mayr e s i d e i n memo r y W i t h i n c l i e n t d e v i c e s o r W i t h i n memo r y ofSCMS 100 d e d i c a t e d f o r i n d i v i d u a l u s e r s . I n any c a s e , t h ev a r i o u s n o d e s , e . g . , b l o c k s , r e p r e s e n t e d i n F I G . 1 c a n r e p r es e n t i n d i v i d u a l s t o r a g e d e v i c e s t h a t may b e i n t e r s p e r s e dbetWeen SCMS 100 and c l i e n t d e v i c e s o r can r e p r e s e n t port i o n s o f a l a r g e r memory d e v i c e r e s i d i n g W i t h i n SCMS 0 0 ,e . g . , a l o g i c a l s e p a r a t i o n o r p a r t i t i o n i n g o f memory.

    W o r k s p a c e 1 4 0 r e p r e s e n t s a d e v e l o p m e n t e n v i r o n m e n tW i t h i n SCMS 0 0 i n Which n l y ? l e s t h a t h a v e b e e n a c c e p t e dby t h e u s e r a r e s t o r e d . Workspace 140 can i n c l u d e tWo nodes1 4 5 a n d 1 5 0 . Each f n o d e s 1 4 5 and 1 5 0 , a n d t h u s W o r k s p a c e1 4 0 , s t o r e s o n l y s o f t W a r e h a t h a s b e e n x p l i c i t l y a c c e p t e d b yt h e u s e r o f t h a t W o r k s p a c e . The ? r s t n o d e , c a l l e d a c c e p t e dp r o j e c t s 1 4 5 , s t o r e s p r o j e c t s t h a t h a v e b e e n a c c e p t e d i n t oW o r k s p a c e 1 4 0 f r o m o n e o f p e n d i n g p r o j e c t s 1 0 4 - 1 0 8 . T h a ti s , When a p e n d i n g p r o j e c t s u c h a s p e n d i n g p r o j e c t 1 0 6 i sa c c e p t e d by h e u s e r o f W o r k s p a c e 1 4 0 , a c o p y o f h a t p e n d i n gp r o j e c t i s s t o r e d W i t h i n p e n d i n g p r o j e c t s 1 4 5 .

    The s e c o n d n o d e , c a l l e d a c c e p t e d c t i v i t i e s 1 5 0 , s t o r e s s e t so f ? l e c h a n g e s t h a t h a v e b e e n a c c e p t e d by t h e u s e r o f Works p a c e 1 4 0 . The t e r m a c t i v i t y , a s u s e d W i t h i n t h i s s p e c i ? c at i o n , can r e f e r t o a change s e t o r , more p a r t i c u l a r l y , t o t h e s e to f i n f o r m a t i o n r e ? e c t i n g c h a n g e s t o ? l e s t h a t h a v e b e e nimplemented by a u s e r . I n i l l u s t r a t i o n , c o n s i d e r t h e c a s eWhere a u s e r h a s a c c e p t e d p e n d i n g p r o j e c t 1 0 6 to a c c e p t e dp r o j e c t s 1 4 5 and t h a t p r o j e c t 106 i n c l u d e s 1 0 0 ? l e s . The u s e ro f W o r k s p a c e 14 0 may b e g i n m a k i n g c h a n g e s t o p r o j e c t 1 0 6W i t h i n Workspace 1 4 0 . The changes can be r e ? e c t e d a s ana c t i v i t y t h a t i s s t o r e d W i t h i n t h e n o d e c a l l e d a c c e p t e d a c t i v it i e s 1 5 0 . T h u s , i f o n l y ? l e s 1 , 3 , 6 , a n d 7 o f t h e 1 0 0 ? l e sn u m b e r e d 1 - 1 0 0 o f t h e p r o j e c t h a v e c h a n g e d , t h e a c t i v i t yW o u l d e f f e c t i v e l y b e c o m p o s e d o f t h e c h a n g e s t o ? l e s 1 , 3 , 6 ,a n d . T h e c t i v i t y , s p e c i f y i n g o n l y h e c h a n g e s o ? l e s 1 , 3 , 6 ,

  • 8/13/2019 Us 8607196

    10/16

    US 8 , 6 0 7 , l 9 6 B27

    a n d 7 c a n b e s t o r e d i n a c c e p t e d a c t i v i t i e s 1 5 0 . By c o m b i n i n gt h e a c c e p t e d a c t i v i t y W i t h p r o j e c t 1 0 6 i n a c c e p t e d p r o j e c t s1 4 5 , a neW c o n ? g u r a t i o n , e . g . , a complete n e W s t a t e o f p r o j e c t1 0 6 , c a n b e s p e c i ? e d . F o r e x a m p l e , t h e s t a t e o f p r o j e c t 1 0 6a l o n g W i t h t h e a c t i v i t y s p e c i f y i n g c h a n g e s t o p r o j e ct 1 0 6 c a nbe d e l i v e r e d back a s a n e W s t a t e of pending p r o j e c t 1 0 6 .

    Accepted r o j e c t s 145 may n c l u d e more h a n one i f f e r e n tp r o j e c t a c c o r d i n g t o t h e number o f p r o j e c t s W i t h W h i c h t h eu s e r o f Workspace 140 s a s s o c i a t e d . F o r e x a m p l e , i f t h e u s e ri s W o r k i n g on e a c h o f p e n d i n g p r o j e c t s 1 0 4 - 1 0 8 , t h a t u s e rmay h a v e a copy o f e a c h ofpending p r o j e c t s 1 0 4 - 1 0 8 , e . g . , ap r o j e c t , W i t h i n a c c e p t e d p r o j e c t s 1 4 5 . E a c h p r o j e c t 1 0 4 - 1 0 8s t o r e d W i t h i n AP 4 5 can have a s t a t e t h a t d i f f e r s from t h a t oft h e c o r r e s p o n d i n g p e n d i n g p r o j e c t 1 0 4 - 1 0 8 .

    W i t h i n SCMS 0 0 , e a c h W o r k s p a c e may h a v e a s p e c i ? e ds e t o f p e n d i n g p r o j e c t s t o Which a p r o j e c t may b e d e l i v e r e d .Such p e n d i n g p r o j e c t s c a n b e r e f e r r e d t o a s t a r ge t p e n d i n gp r o j e c t s W i t h r e s p e c t t o t h e W o r k s p a c e d e l i v e r i n g t h e p r o j e c t .Each r e p o s i t o r y may a l s o be a s s o c i a t e d W i t h a s e t o f o t h e rp e n d i n g p r o j e c t s f r o m W h i c h a p r o j e c t may e a c c e p t e d . S u c hp e n d i n g p r o j e c t s f r o m Which p r o j e c t may e a c c e p t e d c a n b er e f e r r e d t o a s s o u r c e pending p r o j e c t s W i t h r e s p e c t t o t h eW o r k s p a c e h a t i s a c c e p t i n g t h e r o j e c t . I n t e r m s o f d e l i v e r i n go r a c c e p t i n g a p r o j e c t , s u c h c t i v i t i e s may n l y b e p e r f o r m e db e t W e e n W o r k s p a c e s a n d p e n d i n g p r o j e c t s . The e t o f s o u r c ea n d t a r g e t p e n d i n g p r o j e c t s W i t h i n SCMS 1 0 0 d e ? n e p a t h st h r o u g h Which d a t a ma y ? o W among n o d e s .

    I n o t h e r c a s e s , a user may d e l i v e r h i s or her a c t i v i t i e sd i r e c t l y to a n o t h e r u s e r W i t h o u t d e l i v e r i n g a p r o j e c t back n t oa p e n d i n g p r o j e c t . F o r e x a m p l e , t h e u s e r o f W o r k s p a c e 1 4 0may d e c i d e t o s h a r e a n c t i v i t y s t o r e d W i t h i n a c c e p t e d a c t i v it i e s 1 5 0 , i n r e f e r e n c e t o c h a n g e s to a n y o f t h e p r o j e c t s s t o r e dW i t h i n a c c e p t e d p r o j e c t s 1 4 5 , W i t h a n o t h e r u s e r . W i t h i nSCMS 0 0 , t h a t a c t i v i t y can b e d e l i v e r e d t o a Workspace o fa n o t h e r u s e r . That o t h e r u s e r may e c i d e t o a c c e p t o r r e j e c tt h a t d e l i v e r e d a c t i v i t y . A c c e p t e d a c t i v i t i e s 1 5 0 a r e t h o s ea c t i v i t i e s t h a t t h e u s e r o f W o r k s p ac e 1 4 0 h a s a c c e p t e d i n t o h i so r h e r W o r k s p a c e . Those c t i v i t i e s d e l i v e r e d from t h e r u s e r s ,b u t n o t e x p l i c i t l y a c c e p t e d by t h e u s e r o f W o r k s p a c e 1 4 0 , a r en o t s t o r e d W i t h i n a c c e p t e d a c t i v i t i e s 1 5 0 .

    P e n d i n g b u c k e t 1 5 5 , W h i c h i s a s s o c i a t e d W i t h W o r k s p a c e1 4 0 , can s t o r e a c t i v i t i e s a n d / o r p r o j e c t s t h a t h a v e n o t beena c c e p t e d i n t o W o r k s p a c e 1 4 0 . I n g e n e r a l , a n y a c t i v i t y i si n c l u d e d i n p e n d i n g b u c k e t 1 5 5 W i l l h a v e b e e n d e l i v e r e dd i r e c t l y f r o m a n o t h e r t h e W o r k s p a c e o f a n o t h e r c l i e n t , e . g . ,c l i e n t W o r k s p a c e 1 7 0 . U n t i l a c c e p t e d , d e l i v e r e d a c t i v i t i e s a r es t o r e d i n pending b u c k e t 155 and a r e n o t c o n s i d e r e d t o bei n c l u d e d W i t h i n , o r p a r t o f , W o r k s p a c e 1 4 0 .

    W o r k s p a c e 1 7 0 c a n b e s u b s t a n t i a l l y s i m i l a r t o W o r k s p a c e1 4 0 , W i t h t h e e x c e p t i o n t h a t W o r k s p a c e 1 7 0 W i l l b e l o n g t o ad i f f e r e n t u s e r . T h u s , Workspace 170 can i n c l u d e a ? r s t nodec a l l e d a c c e p t e d p r o j e c t s 1 7 5 and a s e c o n d node c a l l e da c c e p t e d a c t i v i t i e s 1 8 0 . W o r k s p a c e 1 7 0 f u r t h e r i s a s s o c i a t e dW i t h a pending b u c k e t 185 t h a t s t o r e s any a c t i v i t i e s d e l i v e r e dd i r e c t l y f r o m o t h e r W o r k s p a c e s W i t h i n SCMS 0 0 . W h i l e t h es t r u c t u r e o f e a c h o f W o r k s p a c e s 14 0 a n d 1 7 0 may e s i m i l a r ,t h e a c t u a l c o n t e n t s o f e a c h W o r k s p a c e , e . g . , t h e a c t i v i t i e s t h a th a v e b e e n a c c e p t e d , t h e p r o j e c t s t h a t h a v e b e e n a c c e p t e d , a n dt h e a c t i v i t i e s t h a t h a v e b e e n d e l i v e r e d b u t n o t y e t a c c e p t e d ,W i l l l i k e l y b e d i f f e r e n t .

    The a r r o W s l i n k i n g d i f f e r e n t nodes a r e p r o v i d e d f o r p u rp o s e s o f i l l u s t r a t i o n o n l y t o i n d i c a t e p o t e n t i a l d a t a t r a n s f e r sW i t h i n SCMS 0 0 . I n g e n e r a l , a p r o j e c t may n l y b e a c c e p t e di n t o a W o r k s p a c e a n d d e l i v e r e d back i n t o a p e n d i n g p r o j e c tf r o m a W o r k s p a c e . T h u s , p e n d i n g p r o j e c t 1 0 6 may b ea c c e p t e d i n t o W o r k s p a c e 1 4 0 i n t o a c c e p t e d p r o j e c t s 1 4 5 .

    20

    25

    30

    35

    4 0

    45

    50

    55

    60

    6 5

    8A c t i v i t i e s may be d e l i v e r e d from one Workspace t o

    a n o t h e r . When n a c t i v i t y i s d e l i v e r e d from one Wor kspace t oa n o t h e r , t h a t a c t i v i t y must b e d e l i v e r e d from a Workspace o f as o u r c e Workspace t o a pending b u c k e t o f a t a r g e t W o r k s p a c e .F o r e x a m p l e , a s s u m i n g t h a t W o r k s p a c e 1 4 0 i s t o d e l i v e r a na c t i v i t y W i t h i n a c c e p t e d c t i v i t i e s 1 5 0 t o W o r k s p a c e 1 7 0 , t h a ta c t i v i t y i s d e l i v e r e d f r o m W o r k s p ac e 1 4 0 t o p e n d i n g b u c k e t1 8 5 o f W o r k s p a c e 1 7 0 . The a c t i v i t y d o e s n o t How d i r e c t l yf r o m t h e W o r k s p a c e 14 0 i n t o W o r k s p a c e 1 7 0 . Once d e l i v e r e di n p e n d i n g b u c k e t 1 8 5 , t h e u s e r o f W o r k s p a c e 1 7 0 must ? r s ta c c e p t t h e d e l i v e r e d a c t i v i t y p r i o r t o t h a t a c t i v i t y e n t e r i n ga c c e p t e d a c t i v i t i e s 1 8 0 o f W o r k s p a c e 1 7 0 .

    P r o j e c t s How i f f e r e n t l y . P r o j e c t s s e n t f r o m o n e W o r k s p a c et o a n o t h e r must b e s e n t from t h e a c c e p t e d p r o j e c t node o f t h es o u r c e W o r k s p a c e , e . g . , a c c e p t e d p r o j e c t s 1 4 5 o f W o r k s p a c e1 4 0 , t o a p e n d i n g p r o j e c t , e . g . , p e n d i n g p r o j e c t 1 0 6 . T h e r e ,p e n d i n g p r o j e c t 1 0 6 a W a i t s a c c e p t a n c e by t h e u s e r o f a W o r ks p a c e p r i o r t o e n t e r i n g t h e W o r k s p a c e o f t h e u s e r , e . g . , Works p a c e 1 7 0 .

    F I G . 2 i s a g r a p h 200 l l u s t r a t i n g a t e c h n i q u e f o r m e a s u r i n gmerge d i s t a n c e W i t h i n an SCMS n accordance With a n o t h e rembodiment o f t h e p r e s e n t i n v e n t i o n . F I G . 2 i s a g r a p h r e pr e s e n t a t i o n of h e SCMS e s c r i b e d W i t h r e f e r e n c e t o F I G . 1Which i n d i c a t e s d a t a t r a n s f e r s b e t W e e n r e s p e c t i v e n o d e s o ft h e SCMS. F o r p u r p o s e s o f i l l u s t r a t i o n , g r a p h 2 0 0 s t i l li n c l u d e s W o r k s p a c e s 14 0 and 1 7 0 . L i k e r e f e r e n c e numbershave been a i n t a i n e d t o r e f e r t o same o b j e c t s W i t h r e s p e c t t oF I G . 1 .

    Within F I G . 2 , pending b u c k e t nodes a r e d e n o t e d a s PBn o d e s 1 5 5 and 1 8 5 . The a c c e p t e d a c t i v i t y n o d e s a r e d e n o t e da s A A nodes 150 and 1 8 0 . The a c c e p t e d p r o j e c t s nodes a r ed e n o t e d a s AP o d e s 1 4 5 a n d 1 7 5 . A c c o r d i n g l y , W o r k s p a c e140 can i n c l u d e AP ode 145 andAA ode 1 5 0 . PB ode 155i s a s s o c i a t e d W i t h W o r k s p a c e 1 4 0 . S i m i l a r l y , W o r k s p a c e 1 7 0i n c l u d e s AP node 175 and AA node 1 8 0 . P B node 185 i sa s s o c i a t e d W i t h W o r k s p a c e 1 7 0 .

    Graph 2 0 0 i l l u s t r a t e s t h a t e a c h PB o d e ?oWs o n l y i n t o t h eAA o d e o f h e c o r r e s p o n d i n g W o r k s p a c e . T h u s , PB o d e 1 5 5?oWs n l y i n t o AA ode 1 5 0 . PB node 1 8 5 ?oWs n l y i n t o AAn o d e 1 8 0 . Graph 2 0 0 a l s o i l l u s t r a t e s t h a t p r o j e c t s may ? o Wo n l y i n t o PP o d e s . T h u s , g r a p h 200 l l u s t r a t e s t h a t a b a s e l i n ep r o j e c t , Which ma y be t a k e n from AP ode 145 can be comb i n e d W i t h a n a c t i v i t y t a k e n from AA ode 1 5 0 , and e l i v e r e dt o PP node 1 0 6 . The neW s t a t e of a p r o j e c t i s de?ned by t h eb a s e l i n e s t a t e i n a d d i t i o n t o t h e a c t i v i t y s p e c i f y i n g c h a n g e smade t o t h a t b a s e l i n e s t a t e . T h u s , a s t a t e of p r o j e c t e x i s t i n gi n W o r k s p a c e 1 4 0 W i l l o n l y b e a v a i l a b l e t o W o r k s p a c e 1 7 0a f t e r t h a t s t a t e o f t h e p r o j e c t i s d e l i v e r e d back i n t o PP node1 0 6 f r o m W o r k s p a c e 1 4 0 . T h e a c t i v i t y s p e c i f y i n g t h ec h a n g e s , h o W e v e r , may b e d e l i v e r e d d i r e c t l y f r o m AA o d e1 5 0 o PB o d e 1 8 5 , Where t W i l l r e m a i n n t i l a c c e p t e d by h eu s e r o f Workspace 1 7 0 .

    Each o f t h e l i n e s l i n k i n g n o d e s o f g r a p h 200 c a n r e p r e s e n ta h o p . Each hop s r e p r e s e n t a t i v e o f some i s t a n c e m e a s u r e .The d i s t a n c e , a t l e a s t i n t e r m s of an SCMS, can be t r a n sformed i n t o a measure of t i m e . F or example, i f t h e u s e r ofWorkspace 170 W i s h e s to c h e c k - o u t a ? l e , t h e SCMS i l la l l o W t h a t u s e r t o do s o . I t may e a d v a n t a g e o u s , h o W e v e r , t on o t i f y t h e u s e r o f Workspace 170 Whether a l a t e r v e r s i o n o ft h a t ? l e e x i s t s i n a p r o j e c t o r a c t i v i t y W i t h i n a p a r t i c u l a rnumber f o p s f r o m W o r k s p a c e 1 7 0 . The s e r c o r r e s p o n d i n gt o W o r k s p a c e 1 4 0 , f o r e x a m p l e , may a v e p r e v i o u s l y c r e a t e da neW ersion o f h a t ? l e , r e f e r r e d t o a s a successor version o ft h e ? l e . I n t h a t c a s e , i f t h e d i s t a n c e , r e f e r r e d t o a s t h e merged i s t a n c e , b e t W e e n t h e W o r k s p a c e o f t h e u s e r W i s h i n g t oc h e c k - o u t t h e ? l e and h e node h a t i n c l u d e s t h a t l a t e r v e r s i o no f h e ? l e , i s W i t h i n a p r e d e t e r m i n e d d i s t a n c e , t h e u s e r c h e c k

  • 8/13/2019 Us 8607196

    11/16

    US 8 , 6 0 7 , 1 9 6 B2i n g - o u t t h e ? l e c a n b e n o t i ? e d . T h i s a l l o w s t h e u s e r c h e c k i n go u t t h e ? l e to d e t e r m i n e W h e t h e r b r a n c h i n g o f t h e ? l e i sn e c e s s a r y .

    I f t h e ? l e i s checked-out and then c h e c k e d - i n , a n e W v e rs i o n o f t h e ? l e W i l l be c r e a t e d and s t o r e d i n a ne W a c t i v i t yW i t h i n Workspace 170 i n AA ode 1 8 0 . T h a t v e r s i o n may o rmay n o t need t o b e merged W i t h t h e v e r s i o n o f t h e ? l e i nWorkspace 1 4 0 . With n o t i ? c a t i o n t h a t a s u c c e s s o r v e r s i o n oft h e same ? l e i s W i t h i n some predetermined d i s t a n c e , t h e u s e rof Wor kspace 170 may choose n o t t o c h e c k - o u t t h e ? l e a t t h ep r e s e n t t i m e and a v o i d t h e c r e a t i o n o f a n o t h e r v e r s i o n o f t h e? l e , t h e r e b y a v o i d i n g a f u t u r e m e r g e o p e r a t i o n t h a t W o u l dcombine t h e v e r s i o n o f t h e ? l e from W o r k s p a c e 1 7 0 W i t h t h ev e r s i o n o f t h e ? l e W i t h i n Workspace 1 4 0 . The u s e r o f W o r ks p a c e 1 7 0 m a y , f o r e x a m p l e , W a i t u n t i l t h e v e r s i o n o f t h e ? l ef r o m W o r k s p a c e 1 4 0 h a s b e e n a c c e p t ed t h r o u g h n o r m a lc h a n g e ? o W . A l t e r n a t i v e l y , t h e u s e r o f W o r k s p a c e 1 7 0 mayc o n t a c t t h e u s e r o f Workspace 1 4 0 and d i r e c t l y o b t a i n t h ea c t i v i t y o r t h e p r o j e c t c o n t a i n i n g h a t v e r s i o n f r o m W o r k s p a c e1 4 0 .

    The d i s t a n c e betWeen tWo n o d e s i n g r a p h 200 may bee x p r e s s e d i n h o p s , a s n o t e d . I n a n o t h e r e m b o d i m e n t , t h ed i s t a n c e betWeen t W o nodes can be converted i n t o a measureo f t i m e . E a c h h o p o f g r a p h 2 0 0 maybe a s s i g n e d a de f a u l t u n ito f t i m e t h a t i s i n d i c a t i v e o f t h e amount o f t i m e t y p i c a l l yneeded o r an p d a t e d v e r s i o n o f s o f t w a r e t o t r a v e r s e t h a t hopf r o m t h e s o u r c e n o d e t o t h e t a r g e t n o d e . By e a s u r i n g h o p sbetWeen tWo nodes o f n t e r e s t , t h a t d i s t a n c e can be c o n v e r t e di n t o t i m e . A s t h e SCMS o n t i n u e s t o o p e r a t e , t h e b e h a v i o r o fd a t a e x c h a n g e s betWeen n o d e s c a n b e o b s e r v e d . U s i n g h i st o r i c a l d a t a , e . g . , a h i s t o g r a m , an e s t i m a t e o f t h e amount o ftime f o r a p r o j e c t t o be t r a n s f e r r ed a c r o s s each hop can bed e t e r m i n e d a n d a s s o c i a t e d W i t h h o p s i n t h e g r a p h . The t i m evalue can be determined a s an average o f h e amount o f timen e e d e d f o r p r i o r p r o j e c t s t o t r a v e r s e t h e h o p , a W e i g h t e da v e r a g e o f t h e amount o f t i m e n e e d e d f o r p r i o r p r o j e c t s tot r a v e r s e t h e h o p , a r u n n i n g a v e r a g e o f t h e amount o f t i m eneeded o r p r i o r p r o j e c t s to t r a v e r s e t h e hop a s measured v e ra p r e d e t e r m i n e d number f t h e mo t r e c e n t d a y s o f o p e r a t i o no f t h e SCMS, t c .

    I n d i v i d u a l u s e r s or groups o f s e r s a l s o may e c l a r e Whenp a r t i c u l a r p r o j e c t s W i l l b e d e l i v e r e d o t a r g e t n o d e s . As o t e d ,each node may have one or mo r e source nodes f r om Whichp r o j e c t s may be a c c e p t e d . Each node f u r t h e r may have one o rmore a r g e t nodes t o Which r o j e c t s may be d e l i v e r e d . The e to f s o u r c e n o d e s and t a r g e t n o d e s f o r e a c h node i n g r a p h 200d e t e r m i n e s t h e h o p s c o n n e c t i n g e a c h r e s p e c t i v e n o d e a s W e l la s t h e number of hops needed f o r a p r o j e c t t o t r a v e r s e fromone node o another node. I f a user announces t h a t a p a r t i c u l a rp r o j e c t W i l l b e d e l i v e r e d on a p a r t i c u l a r s c h e d u l e , e . g . ,W e e k l y , t h a t i n f o r m a t i o n can be used o u p d a t e t h e measure oft i m e a s s o c i a t e d W i t h t h e h o p d e ? n i n g t h e s o u r c e - t a r g e t n o d er e l a t i o n s h i p . T h a t i s , t h e u s e r W i l l h a v e s p e c i ? e d t h e u p d a t ef r e q u e n c y from h i s o r h e r W o r k s p a c e , e . g . , a p a r t i c u l a r nodes e r v i n g a s t h e s o u r c e n o d e , t o a p a r t i c u l a r t a r g e t n o d e . Thedeclared time or schedule can be used t o a t t a c h a measure o ft i m e t o t h e h o p d e ? n i n g t h e s o u r c e - t a r g et n o d e p a i r .

    F I G . 3 i s a g r a p h 3 0 0 i l l u s t r a t i n g a t e c h n i q u e f o r m e a s u r i n gmerge d i s t a n c e W i t h i n an SCMS n accordance With a n o t h e rembodiment o f t h e p r e s e n t i n v e n t i o n . More p a r t i c u l a r l y ,graph 00 l l u s t r a t e s a t e c h n i q u e t h a t can be used o d e t e r m i n et h e merge d i s t a n c e betWeen tWo d i f f e r e n t v e r s i o n s of a ? l eW i t h i n an SCMS. A s o t e d , t h e d i s t a n c e can be c o n v e r t e d i n t oa measure of i m e , e . g . , an s t i m a t e of h e t i m e , f o r a p a r t i c u l a rv e r s i o n o f a p r o j e c t t o p r o p a g a t e fro m one node W i t h i n t h eSCMS o a n o t h e r node W i t h i n t h e SCMS.

    20

    25

    30

    35

    4 0

    45

    50

    55

    60

    6 5

    1 0G r a p h 300 i l l u s t r a t e s a s i t u a t i o n i n Which a user c o r r e

    s p o n d i n g t o W o r k s p a c e 1 4 0 W i s h e s to c h e c k - o u t a p a r t i c u l a r? l e i n t o h i s o r h e r W o r k s p a c e . I n t h i s e x a m p l e , r e s p o n s i v e t ot h e u s e r i n i t i a t i n g t h e r e q u e s t , t h e SCMS can d e t e r m i n eWhether a s u c c e s so r v e r s i o n of t h e ? l e a l r e a d y e x i s t s . Fore x a m p l e , t h e u s e r c o r r e s p o n d i n g t o W o r k s p a c e 1 7 0 h a s p r ev i o u s l y c r e a t e d a l a t e r v e r s i o n o f t h a t ? l e . A c c o r d i n g l y , APnode 175 W i t h i n Workspace 170 W i l l i n c l u d e a s u c c e s s o rv e r s i o n of h e ? l e to be c h e c k e d - o u t .

    The SCMS can c a l c u l a t e t h e d i s t a n c e betWeen AP node1 7 5 and AP ode 1 4 5 W i t h i n Workspace 1 4 0 . W h en t h e d i st a n c e i s W i t h i n a p r e d e t e r m i n e d t h r e s h o l d d i s t a n c e , t h e SCMSs e r v e r can o t i f y t h e u s e r of orkspace 140 of h e e x i s t e n c e oft h e s u c c e s s o r v e r s i o n of t h e ? l e W i t h i n AP node 1 7 5 . T h i sp r o v i d e s t h e u s e r o f W o r k s p a c e 1 4 0 W i t h t h e o p p o r t u n i t y t ot a k e one of e v e r a l d i f f e r e n t a c t i o n s . For e x a m p l e , t h e u s e r ofWorkspace 1 4 0 c a n p r o c e e d W i t h c r e a t i n g a b r a n c h f o r t h e ? l e .The u s e r of Workspace 140 can d e f e r t h e checkout of h e ? l eu n t i l s u c h t i m e t h a t t h e u s e r o f Workspace 1 7 0 i s l i k e l y t o h a v ed e l i v e r e d t h e u p d a t e d p r o j e ct i n t o a p e n d i n g p r o j e c t n o d ea c c e s s i b l e t o Workspace 1 4 0 , e . g . , PP node 3 1 5 . The u s e r o fWorkspace 140 can choose t o d i s c o n t i n u e t h e c h e c k - o u to p e r a t i o n a n d ? r s t a c c e p t t h e a c t i v i t y o r p r o j e c t c o n t a i n i n gt h a t s u c c e s so r v e r s i o n d i r e c t l y f r o m W o r k s p a c e 1 7 0 .

    I n t h i s e x a m p l e , t h e SCMS e t e r m i n e s t h e t a r ge t node oWhich h e s u c c e s s o r v e r s i o n , When e l i v e r e d from o r k s p a c e1 7 0 , W i l l be d e l i v e r e d . T h a t node may be PP node 0 5 . W o r ks p a c e 1 4 0 , h o W e v e r , d o e s n o t a c c e p t p r o j e c t s f r o m PP n o d e3 0 5 . R a t h er , t h e s o u r c e node f o r Workspace 140 t o a c c e p t ap r o j e c t , o r a t l e a s t t h e p a r t i c u l a r p r o j e c t d e s i r e d , i s PP n o d e3 5 . G r a p h 3 0 0 i l l u s t r a t e s t h a t t h e ? l e m u s t p r o p a g a t e t h r o u g hPP node 3 0 5 , t o PP node 3 1 0 , to PP node 3 1 5 , i n o r d e r t o b ec h e c k e d - o u t i n t o AP node 1 4 5 o f Workspace 1 4 0 . I n o t h e rW o r d s , f o r t h e ? l e r e s i d i n g i n AP ode 1 7 5 t o p r o p a g a t e t o APn o d e 1 4 5 , p r o j e c t A u s t t r a v e r s e h o p s 3 2 0 , 3 2 5 , 3 3 0 , a n d3 3 5 , e . g . , f o u r h o p s . W i t h i n t h i s e x a m p l e , t h e i n t e r v e n i n gW o r k s p a c e s t h r o u g h Which h e p r o j e c t m u s t t r a v e r s e h a v e n o tb e e n s h o W n . I t s h o u l d b e a p p r e c i a t e d t h a t t h e p r o j e c t Wouldp r o p a g a t e t h r o u g h s u c h W o r k s p a c e n o d e s . A c c o r d i n g l y , e a c ho f h o p s 3 2 0 , 3 2 5 , 3 3 0 , a n d 3 3 5 , i n t h i s e x a m p l e , c a n r e p r e s e n ta p l u r a l i t y o f h o p s .

    I n one embodiment, t h e number of hops can be used o rcompared W i t h a t h r e s h o l d number o f h o p s . I f t h e number o fh o p s o f h e p a t h c a l c u l a t e d b y t h e SCMS e r v e r s l e s s t h a n t h et h r e s h o l d number o f h o p s , t h e u s e r o f Workspace 140 c a n ben o t i ? e d of h e e x i s t e n c e o f h e s u c c e s s o r v e r s i o n W i t h i n W o r ks p a c e 1 7 0 . I f o t , t h e SCMS eed o t p r o v i d e a n y n o t i ? c a t i o na s t h e s u c c e s s o r v e r s i o n o f h e ? l e i s deemed o o remote fromWorkspace 1 4 0 t o b e o f c o n c e r n . I t s h o u l d b e a p p r e c i a t e d t h a tt h e t h r e s h o l d s d e s c r i b e d W i t h i n t h i s s p e c i ? c a t i o n , W h e t h e rnumber o f h o p s , o t h e r measures o f d i s t a n c e o r t i m e , may bes e t by d e f a u l t a n d / o r modi?ed o r s e t by each i n d i v i d u a l u s e r .

    Each PP node t h r o u g h Which t h e p r o j e c t must t r a v e r s ea l o n g t h e p a t h o f h o p s 3 2 0 , 3 2 5 , 3 3 0 , a n d 3 3 5 , f o r e x a m p l e ,c a n r e p r e s e n t a l e v e l i n t h e h i e r a r c h y o f t h e d e v e l o p m e n tp r o c e s s . H i g h e r l e v e l p r o j e c t s f o r i n s t a n c e , may b e morer e l i a b l e s o f t W a r e b u i l d s t h a t h a v e u n d e r g o n e more t e s t i n gt h a n l o W e r l e v e l p r o j e c t s , e . g . , t h e d i f f e r e n c e betWeen PP node305 and PP node 1 5 . T h i s may mean, f o r e x a m p l e , t h a t Whent h e u s e r o f Workspace 170 d e l i v e r s a p r o j e c t , t h a t p r o j e c t mustt r a v e r s e t h e h i e r a r c h y u pWard t h r o u g h one o r more l e v e l sb e f o r e t h a t p r o j e c t may e a v a i l a b l e t o t h e u s e r o f Workspace140 t o a c c e p t i n t o h i s o r h e r W o r k s p a c e . The s o u r c e and a r g e tr e l a t i o n s h i p s W i l l de?ne t h e h i e r a r c h y a s W e l l a s any o t h e ri n t e r v e n i n g u s e r W o r k s p a c e s t h a t may r e q u i r e r e v i e W o f t h ep r o j e c t .

  • 8/13/2019 Us 8607196

    12/16

    US 8 , 6 0 7 , 1 9 6 B21 1

    A s n o t e d , each hop can be a s s o c i a t e d With a measure oft i m e , s u c h a s a d a y , f o r e x a m p l e . I n t h a t c a s e , a f o u r hopj o u r n e y W o u l d r e q u i r e f o u r d a y s . P a r t i c u l a r h o p s c a n b eu p d a t e d a c c o r d i n g t o W h e t h e r i n d i v i d u a l u s e r s o r d e v e l o pment t e a m s h a v e d e c l a r e d a v a i l a b i l i t y s c h e d u l e s W i t h i n t h eSCMS. F o r e x a m p l e , hop 320 may h a v e a d e f a u l t v a l u e o fd a y . The s e r o f o r k s p a c e 1 7 0 , h o W e v e r , may e c l a r e h a t h eo r s h e W i l l r o u t i n e l y d e l i v e r u p d a t e s to PP node 305 on aW e e k l y s c h e d u l e . A c c o r d i n g l y , t h e t i m e v a l u e a s s o c i a te d W i t hhop 320 can be modi?ed a c c o r d i n g to When t h e n e x t s c h e du l e d d e l i v e r y o f a p r o j e c t W i l l t a k e p l a c e b a s e d upon t h es c h e d u l i n g i n f o r m a t i o n from h e u s e r o f o r k s p a c e 1 7 0 t h a t sp o s t e d t o t h e SCMS i t h r e s p e c t t o t h e t i m e t h e c h e c k - o u tr e q u e s t s s p e c i ? e d . S i m i l a r l y , PP o d e 3 0 5 may b e managedby a p a r t i c u l a r t e s t i n g t e a m . T h a t team may p o s t a s c h e d u l et h a t u p d a t e s W i l l b e d e l i v e r e d e v e r y o t h e r d a y . A c c o r d i n g l y ,t h e measure o f t i m e a s s o c i a t e d W i t h hop 320 c a n b e a d j u s t e da c c o r d i n g t o When h e n e x t s c h e d u l e d d e l i v e r y i s t o t a k e p l a c er e l a t i v e t o t h e t i m e a n d / o r d a t e When W o r k s p a c e 1 4 0 r e q u e s t sc h e c k - o u t o f t h e ? l e . I n g e n e r a l , t h e t i m e v a l u e s f o r e a c h hopi n t h e p a t h betWeen t h e tWo s u b j e c t n o d e s c a n b e summed od e t e r m i n e a t o t a l t i m e f o r t h e p a t h .I n a n o t h e r embodiment, t h e measure of time t h a t i s a s s oc i a t e d W i t h a p a r t i c u l a r hop i n g r a p h 300 c a n b e d e t e r m i n e da c c o r d i n g o h i s t o r i c a l d a ta o f e a c h r e s p e c t i v e n o d e d e l i v e r i n gp r o j e c t s to a t a r g e t node a s t h e SCMS p e r a t e s o v e r t i m e . Fore x a m p l e , i f p r o j c t s h i s t o r i c a l l y a r e p a s s e d , on a v e r a g e , e v e r yt h r e e d a y s from PP node 0 5 t o PP node 1 0 , t h e n t h e measureo f i m e a s s o c i a t e d W i t h h o p 3 2 5 c a n b e t h r e e d a y s . Though o ts h o W n , i t s h o u l d b e a p p r e c i a t e d t h a t some n o d e s W i l l b ec o n n e c t e d b y t W o h o p s , e a c h h o p m o v i n g i n a d i f f e r e n t d i r e ct i o n . I n t h i s r e g a r d , t h e measure o f t i m e a s s o c i a t e d W i t h a hopmoving f r o m PP node 3 1 0 t o PP n o d e 3 1 5 , f o r e x a m p l e , maynot be t h e same a s t h e measure of time a s s o c i a t e d With a hop( n o t s h o W n ) moving n t h e d i r e c t o f PP n o d e 3 1 5 t o PP node3 1 0 , Were s u c h movement o f p r o j e c t s p o s s i b l e a s de?ned byt h e s o u r c e - t a r g e t r e l a t i o n s h i p s .F I G . 4 i s a H o w c h a r t i l l u s t r a t i n g a method 400 of s e l e ct i v e l y n o t i f y i n g a u s e r o f o t h e r e x i s t i n g v e r s i o n s o f a ? l ea c c o r d i n g t o merge d i s t a n c e W i t h i n an SCMS n a c c o r d a n c eW i t h a n o t h e r embodiment o f t h e p r e s e n t i n v e n t i o n . Method400 can be implemented Within an SCMS s d e s c r i b e d Withr e f e r e n c e t o F I G S . 1 - 3 . B e g i n n i n g i n s t e p 4 0 5 , a g r a p h r e pr e s e n t a t i o n o f t h e s t a t e of t h e SCMS can be g e n e r a t e d ands t o r e d i n memory. As d e s c r i b e d , t h e graph can i n c l u d e ap l u r a l i t y of n o d e s , Where each node can i n c l u d e a s e t ofa c t i v i t i e s a n d / o r p r o j e c t s . Nodes o f t h e g r a p h c a n be conn e c t e d by hops Which i n d i c a t e Which n o d e s may s e r v e a ss o u r c e s t o o t h e r nodes and Which nodes may e r v e a s t a r g e t sf o r n o d e s . The a l l o W a b l e p a t h s t h r o u g h t h e g r a p h a r e de t e rmined by t h e s e r e l a t i o n s h i p s , W h i c h a re r e p r e s e n t e d a s h o p sc o n n e c t i n g v a r i o u s n o d e s . I n c r e a t i n g t h e g r a p h , t i m e v a l u e scan be a s s i g n e d t o t h e hops a s d e s c r i b e d and s t o r e d a s p a r t oft h e g r a p h i n m e m o r y . I t s h o u l d b e a p p r e c i a t e d t h a t t h e g r a p hmay e u p d a t e d from i m e - t o - t i m e o r p e r i o d i c a l l y a s c h a n g e sa r e made o t h e SCMS r a s t h e SCMS ontinues t o o p e r a t e .

    I n s t e p 4 1 0 , a u s e r i n p u t i n i t i a t i n g a c h e c k - o u t o p e r a t i o ncan be e c e i v e d . A s e r , f o r example, may n i t i a t e a c h e c k - o u to p e r a t i o n f o r a s e l e c t e d ? l e from p e n d i n g p r o j e c t node o t h eWorkspace f h a t u s e r . I n s t e p 4 1 5 , t h e SCMS a n i d e n t i f y t h ep a r t i c u l a r v e r s i o n o f h e ? l e h a t i s t h e s u b j e c t o f t h e u s e r i n p u tr e q u e s t i n g a c h e c k - o u t o p e r a t i o n r e c e i v e d i n s t e p 4 1 0 . TheSCMS u r t h e r c a n i d e n t i f y t h e p a r t i c u l a r W o r k s p a c e t o Whicht h e ? l e Would be c h e c k e d - o u t Were h e c h e c k - o u t o p e r a t i o n t oc o m p l e t e , e . g . , t h e u s e r s W o r k s p a c e , o r n o d e r e p r e s e n t i n gt h a t W o r k s p a c e , W i t h i n t h e g r a p h .

    20

    25

    30

    35

    4 0

    45

    50

    55

    60

    6 5

    1 2I n s t e p 4 2 0 , t h e SCMS a n d e t e r m i n e a hop l i m i t a t i o n . The

    hop l i m i t a t i o n c a n s p e c i f y a maximum number o f h o p s t os e a r c h i n t e r m s o f d i s t a n c e from t h e W o r k s p a c e , and i n p a rt i c u l a r , t h e a c c e p t e d r o j e c t n o d e W i t h i n t h e W o r k s p a c e o f t h er e q u e s t i n g u s e r . As n o t e d , a t i m e l i m i t a t i o n may be s p e c i ? e di n t h e e v e n t t h a t t h e SCMS s s i g n s measures o f t i m e t o hopso f t h e g r a p h . The S MS a n e x p l o r e p a t h s s t a r t i n g f r o m t h eW o r k s p a c e o f t h e r e q u e s t i n g u s e r , e . g . , e x p l o r e a n y p a t h sb e g i n n i n g W i t h h o p s t h a t e n t e r t h e W o r k s p a c e o f t h e r e q u e s ti n g s e r . A n y t h e r node h a t i s r e a c h a b l e i n a number f o p s ,o r W i t h i n t h e s p e c i ? e d p e r i o d o f i m e , t h a t d o e s n o t e x c e e d t h ethreshold can be s e a r c h e d . This r e s t r i c t i o n can l i m i t t h e numb e r of nodes t h a t a r e s e a r c h e d and p r e v e n t s t h e SCMS roms e a r c h i n g t h o s e nodes t h a t a r e c o n s i d e r e d t o o remote from h er e q u e s t i n g W o r k s p a c e .

    In one embodiment, t h e search can be conducted a s ab r e a d t h - ? r s t s e a r c h . O t h e r s e a r c h t e c h n i q u e s c a n , h o W e v e r ,b e u s e d . As s u c h , t h e embodiments d i s c l o s e d W i t h i n t h i ss p e c i ? c a t i o n a r e n o t i n t e n d e d t o be i m i t e d s o l e l y t o a b r e a d t h? r s t s e a r c h i m p l e m e n t a t i o n .

    I n s t e p 4 2 5 , e a c h node h a t i s W i t h i n t h e s p e c i ? e d l i m i t c a nbe s e a r c h e d f o r t h e e x i s t e n c e of s u c c e s so r v e r s i o n of h e ? l et o be c h e c k e d - o u t . I f a s u c c e s s o r v e r s i o n of h e ? l e does e x i s tW i t h i n a n o d e , e . g . , W i t h i n a p r o j e c t o r an a c t i v i t y , t h a t i sW i t h i n t h e s p e c i ? e d number o f h o p s , t h e method a n p r o c e e dt o s t e p 4 3 5 . I n s t e p 4 3 5 , t h e s y s t e m c a n n o t i f y t h e u s e r o f t h ee x i s t e n c e of h e s u c c e s s o r v e r s i o n of h e ? l e . I n one embodim e n t , by v i r t u e o f t h e n o t i ? c a t i o n , t h e u s e r i s aWare t h a ta n o t h e r v e r s i o n e x i s t s W i t h i n t h e p r e d e t e r m i n e d number o fhops o r W i t h i n t h e p r e d e t e r m i n e d amount of i m e of h e u s e r Workspace. The o t i ? c a t i o n , Which can be tone r a messaged i s p l a y e d u p o n t h e d i s p l a y o f t h e u s e r s c l i e n t , may n d i c a t et h e s u c c e s s o r v e r s i o n t h a t e x i s t s e l s e W h e r e , t h e p a r t i c u l a rnode of h e SCMS h a t i n c l u d e s t h e s u c c e s s o r v e r s i o n , e . g . ,t h e W o r k s p a c e o r p e n d i n g p r o j e c t W i t h i n Which h e s u c c e s s o rv e r s i o n o f t h e ? l e e x i s t s , t h e d i s t a n c e o r t i m e a Wa y from t h eW o r k s p a c e o f t h e r e q u e s t i n g u s e r , a n d a n y o t h e r i n f o r m a t i o ns u c h a s t h e i d e n t i t y of h e p a r t i c u l a r u s e r o r development teamt h a t h a s t h e s u c c e s s o r v e r s i o n of h e ? l e .

    Accordingly, t h e u s e r may decide Whether o r not t o proc e e d W i t h t h e c h e c k - o u t o p e r a t i o n , p a r t i c u l a r l y a s c h e c k i n go u t t h e ? l e W i l l r e q u i r e a s u b s e q u e n t merge o f t h e v e r s i o n o ft h e ? l e c r e a t e d by t h e r e q u e s t i n g u s e r W i t h t h e s u c c e s s o rv e r s i o n o f t h e ? l e l o c a t e d by t h e SCMS. c c o r d i n g l y , i n s t e p4 4 0 , t h e SCMS an query t h e u s e r Whether he r s h e Wishes t oc o n t i n u e W i t h t h e c h e c k - o u t o p e r a t i o n o f t h e s e l e c t e d ? l e . I ns t e p 4 4 5 , r e s p o n s i v e t o r e c e i v i n g a f u r t h e r u s e r i n p u t , t h eSCMS an determine Whether o c o n t i n u e With h e c h e c k - o u to p e r a t i o n . I f t h e u s e r W i s h e s to c o n t i n u e , t h e method canp r o c e e d t o s t e p 4 5 5 , Where t h e ? l e i s c h e c k e d - o u t W i t h i n t h eW o r k s p a c e o f t h e r e q u e s t i n g u s e r .

    I f t h e u s e r d e c i d e s n o t to c o n t i n u e W i t h t h e o p e r a t i o n , t h emethod c a n p r o c e e d t o s t e p 4 5 0 , Where t h e c h e c k - o u t o p e r at i o n s t e r m i n a t e d . I n t h a t c a s e , t h e r e q u e s t i n g u s e r may e c i d et o W a i t u n t i l such t i m e t h a t t h e s u c c e s so r v e r s i o n of t h e ? l et h a t e x i s t s e l s e W h e r e W i t h i n t h e SCMS ecomes a v a i l a b l e t ot h e u s e r o r , a l t e r n a t i v e l y , t h e r e q u e s t i n g u s e r may a t t e m p t t oa c c e p t a p r o j e c t o r a n a c t i v i t y d i r e c t l y f r o m t h e W o r k s p a c e o ft h a t other u s e r .

    Continuing With F I G . 4 , i n t h e e v e n t t h a t no s u c c e s s o rv e r s i o n of h e ? l e t o be c h e c k e d - o u t e x i s t s W i t h i n a s e a r c h e dn o d e , t h e method c a n c o n t i n u e t o s t e p 4 5 5 . I n s t e p 4 5 5 , t h er e q u e s t e d ? l e c a n b e c h e c k e d - o u t . I t s h o u l d b e a p p r e c i a t e dt h a t t h e SCMS a y r o v i d e a n o t i ? c a t i o n s t a t i n g t h a t no o t h e rv e r s i o n s o f t h e ? l e t o b e c h e c k e d - o u t e x i s t s W i t h i n t h e p r e d et e r m i n e d number f o p s o r W i t h i n t h e p r e d e t e r m i n e d amounto f t i m e from t h e W o r k s p a c e o f t h e u s e r . A l t e r n a t i v e l y , t h e

  • 8/13/2019 Us 8607196

    13/16

    US 8 , 6 0 7 , 1 9 6 B21 3

    c h e c k - o u t o p e r a t i o n c a n s i m p l y p r o c e e d a u t o m a t i c a l l y whenno s u c c e s s o r v e r s i o n of t h e ? l e i s found t h a t has beenc h e c k e d - o u t by a n o t h e r w i t h i n t h e s e a r c h e d n o d e s .

    The A p p e n d i x t h a t f o l l o w s i n c l u d e s p s e u d o - c o d e f o r p e rf o r m i n g a s e a r c h o f t h e v a r i e t y d e s c r i b e d w i t h r e f e r e n c e t oF I G S . 1 - 4 . The p s e u d o - c o d e i m p l e m e n t s a b r e a d t h ? r s t t y p eof s e a r ch w i t h i n nodes t h a t a r e l o c a t e d w i t h i n a p r e d e t e rmined number o f h o p s f r o m t h e w o r k s p a c e to which t h e ? l ew i l l b e c h e c k e d - o u t . As n o t e d , t h e e m b o d i m e n t s p r e s e n t e dw i t h i n t h i s s p e c i ? c a t i o n a r e n o t i n t e n d e d t o be l i m i t e d by t h ep a r t i c u l a r t y p e o f s e a r c h t e c h n i q u e u s e d .

    T h e ? o w c h a r t ( s ) a n d b l o c k d i a g r a m ( s ) i n t h e ? g u r e s i l l u st r a t e t h e a r c h i t e c t u r e , f u n c t i o n a l i t y , a n d o p e r a t i o n o f p o s s i b l ei m p l e m e n t a t i o n s o f s y s t e m s , m e t h o d s , a n d c o m p u t e r p r ogram p r o d u c t s a c c o r d i n g t o v a r i o u s e m b o d i m e n t s o f t h ep r e s e n t i n v e n t i o n . I n t h i s r e g a r d , e a c h b l o c k i n t h e? o w c h a r t ( s ) o r b l o c k d i a g r a m ( s ) may r e p r e s e n t a m o d u l e ,s e g m e n t , o r p o r t i o n of c o d e , which c o m p r i s e s one o r moree x e c u t a b l e i n s t r u c t i o n s f o r i m p l e m e n t i n g t h e s p e c i ? e d l o g ic a l f u n c t i o n ( s ) . I t s h o u l d a l s o b e n o t e d t h a t , i n some a l t e r n at i v e i m p l e m e n t a t i o n s , t h e f u n c t i o n s n o t e d i n t h e b l o c k s mayo c c u r o u t o f t h e o r d e r n o t e d i n t h e ? g u r e s . F o r e x a m p l e , twob l o c k s shown n s u c c e s s i o n m a y , i n f a c t , b e e x e c u t e d s u b s t a nt i a l l y c o n c u r r e n t l y , o r t h e b l o c k s may s o m e t i m e s b e e x e c u t e di n t h e r e v e r s e o r d e r , d e p e n d i n g upon t h e f u n c t i o n a l i t yi n v o l v e d . I t w i l l a l s o be n o t e d t h a t e a c h b l o c k o f t h e b l o c kd i a g r a m ( s ) a n d / o r ? o w c h a r t l l u s t r a t i o n s ) , a n d c o m b i n a t i o n so f b l o c k s i n t h e b l o c k d i a g r a m ( s ) a n d / o r ? o w c h a r ti l l u s t r a t i o n s ) , c a n b e i m p l e m e n t e d b y s p e c i a l p u r p o s e h a r dw a r e - b a s e d s y s t e m s t h a t p e r f o r m t h e s p e c i ? e d f u n c t i o n s o ra c t s , o r combinations of s p e c i a l purpose hardware and comp u t e r i n s t r u c t i o n s .

    20

    25

    30

    1 4The t e r m i n o l o g y u s e d h e r e i n i s f o r t h e p u r p o s e o f d e s c r i b

    i n g p a r t i c u l a r e m b o d i m e n t s o n l y a n d i s n o t i n t e n d e d t o b el i m i t i n g o f t h e i n v e n t i o n . As u s e d h e r e i n , t h e s i n g u l a r f o r m s a , a n , and t h e a r e i n t e n d e d t o i n c l u d e t h e p l u r a l f o r m s a sw e l l , u n l e s s t h e c o n t e x t c l e a r l y i n d i ca t e s o t h e r w i s e . I t w i l l b ef u r t h e r u n d e r s t o o d t h a t t h e t e r m s c o m p r i s e s a n d / o r comp r i s i n g , when s e d n t h i s s p e c i ? c a t i o n , s p e c i f y t h e p r e s e n c eo f s t a t e d f e a t u r e s , i n t e g e r s , s t e p s , o p e r a t i o n s , e l e m e n t s , a n d /o r components, b u t do n o t p r e c l u d e t h e p r e s e n c e o r a d d i t i o no f one o r more o t h e r f e a t u r e s , i n t e g e r s , s t e p s , o p e r a t i o n s ,e l e m e n t s , c o m p o n e n t s , a n d / r g r o u p s t h e r e o f .T h e c o r r e s p o n d i n g s t r u c t u r e s , m a t e r i a l s , a c t s , a n d e q u i v al e n t s of l l means o r s t e p p l u s f u n c t i o n e l e m e n t s i n t h e c l a i m sbelow a r e i n t e n d e d t o i n c l u d e any s t r u c t u r e , m a t e r i a l , o r a c tf o r p e r f o r m i n g t h e f u n c t i o n i n c o m b i n a t i o n w i t h o t h e rc l a i m e d e l e m e n t s a s s p e c i ? c a l l y c l a i m e d . The d e s c r i p t i o n o ft h e p r e s e n t i n v e n t i o n h a s b e e n p r e s e n t e d f o r p u r p o s e s o fi l l u s t r a t i o n and d e s c r i p t i o n , b u t i s n o t i n t e n d e d t o be e x h a u st i v e o r l i m i t e d t o t h e i n v e n t i o n i n t h e form d i s c l o s e d . M a n ym o d i ? c a t i o n s and v a r i a t i o n s w i l l b e a p p a r e n t to t h o s e o fo r d i n a r y s k i l l i n t h e a r t w i t h o u t d e p a r t i n g f r o m t h e s c o p e a n ds p i r i t o f t h e i n v e n t i o n . The embodiments were c h o s e n andd e s c r i b e d i n o r d e r t o b e s t e x p l a i n t h e p r i n c i p l e s o f t h e i n v e nt i o n a n d t h e pr a c t i c a l a p p l i c a t i o n , a n d t o e n a b l e o t h e r s o fo r d i n a r y s k i l l i n t h e r t t o u n d e r s t a n d t h e i n v e n t i o n f o r v a r i o u sembodiments with v a r i o u s modi?cations a s a r e s u i t e d t o t h ep a r t i c u l a r u s e c o n t e m p l a t e d .

    H a v i n g t h u s d e s c r i b e d t h e i n v e n t i o n o f t h e p r e s e n t a p p l ic a t i o n i n d e t a i l a n d by r e f e r e n c e to t h e embodiments t h e r e o f ,i t w i l l be a p p a r e n t t h a t m o d i ? c a t i o n s and a r i a t i o n s a r e p o ss i b l e w i t h o u t d e p a r t i n g from t h e s c o p e o f t h e i n v e n t i o nd e ? n e d i n t h e a p p e n d e d c l a i m s .

    APPENDIX/ * n o d e i n a g r a p h d e ? n i n g t h e d e l i v e r/ a c c e p t f l o w o f c h a n g e s a n d c o n ? g u r a t i o n s t h r o u g ha s e t ofworkspaces */c l a s s C h a n g e F l o w N o d e {

    / *PENDINGiCHANGE: pending s e t of workspaceACCEPTEDiCHANGE: h e c h a n g e s i n t h e a c c e p t e d s e t o f a w o r k s p a c eACCEPTEDiPROJECT: t h e p r o j e c t s i n t h e a c c e p t e d s e t o f a w o r k s p a c eWORKSPACEiACCEPTED: h e a c c e p t e d s e t o f a w o r k s p a c ePENDINGiPROJECT: p r o j e c t* /I n t e g e r k i n d ;/ *OUT: a ChangeFlowNode r e a c h a b l e from t h e s o u r c e workspaceI N : a ChangeFlowNode t h a t can r e a c h an OUT ChangeFlowNode* /I n t e g e r d i r e c t i o n ;/ *DONE: o e s n o t c o n t a i n t h e t a r g e t v e r s i o nTODO: i t h e r a ChangeFlowNode f o r t h e c u r r e n t change o r i d e n t i ? e s a DONE

    ChangeFlowNode n i t s p r e v i o u s C h a n g e F l o w N o d e ? e l d* /I n t e g e r s t a t e ;

    / * t h e w o r k s p a c e f o r a PENDINGiCHANGE, ACCEPTEDiCHANGE,ACCEPTEDiPROJECT, o r WORKSPACEiACCEPTED ChangeFlowNode /W o r k s p a c e w o r k s p c e ;/ * t h e p r o j e c t f o r a PENDINGiPROJECT ChangeFlowNode /

    P e n d i n g P r o j c t p r o j e c t ;/ * f o r a n OUT ChangeFlowNode, t h e t i m e to d e l i v e r t h e c u r r e n t change to t h a t OUT

    ChangeFlowNode; f o r a n IN ChangeFlowNode, t h e t i m e to a c c e p t t h e s u c c e s s o r v e r s i o ni n t o t h e c l o s e s t OUT ChangeFlowNode. * /I n t e g e r d u r a t i o n ;/ * T h e p r e v i o u s ChangeFlowNode n t h e c h a n g e ?ow /C h a n g e F l o w N o d e p r e v i o u s ;

    / * The e t o f n e x t ChangeFlowNodes n t h e c h a n g e ? o w /C h a n g e F l o w N o d e [ n e x t ;/* I f no matching c f n found v i a p r e v i o u s and n e x t ( r e c u r s i v e l y ) , add as a n e x t TODO

    c f n . I f t h e r e i s a m a t c h i n g c f n and d u r a t i o n i s l e s s t h a n t h a t o f t h e m a t c h i n g c f n , u p d a t et h e m a t c h i n g c f n w i t h new d u r a t i o n . I f t h e m a t c h i n g c f n i s marked DONE, s u b t r a c t t h ed i f f e r e n c e between t h e new and o l d d u r a t i o n from e v e r y IN c f n t h a t can b e reached

  • 8/13/2019 Us 8607196

    14/16

    US 8 , 6 0 7 , 1 9 6 B21 5 1 6

    APPENDIX-continued( r e c u r s i v e l y ) v i a t h e n e x t ? e l d . * /

    V o i d a d d T o d o ( I n t e g e r K i n d , I n t e g e r D i r e c t i o n , W o r k s p a c e W ork s pa ce , P e n d i n g P r o j e c tp r o j e c t , I n t e g e r d u r a t i o n ) {} / * a d d T o d o * / ;/ * t h e TODO ChangeFloWNode r e a c h a b l e v i a n e x t W i t h t h e miniumum D u r a t i o n v a l u e*/

    C h a n g e F l o W N o d e m i n D u r a t i o n T o d o { } ;} / * C h a n g e F l o W N o d e * / ;/ * r e s u l t of ?ndFloW o p e r a t i o n * /c l a s s F l o W R e s u l t {

    V e r s i o n v e r s i o n ;C h a n g e F l o W N o d e c f n ;I n t e g e r d u r a t i o n ;} / * F l o W R e s u l t * // * ?nd a F l o W R e s u l t o b j e c t , f r , s u c h t h a t : fr.version is a s uccess o r of o u rceVe rsi on fr.version has no successors t h e r e i s a Workspace, W s , to Which t h e r e i s a d e l i v e r / a c c e p t change f l o W p a t h both fromf r . c f n a n d f r o m s o u r c e W o r k s p a c e . f r . d u r a t i o n i s t h e maximum f h e e s t i m a t e d d u r a t i o n s f o r t h e floW from f r . c f n t o W s andt h e f l o W from sourceWorkspace to W S . f r . d u r a t i o n i s no greater than bound. t h e r e i s no o t h e r c f n and W s such t h a t t h e maximum f h e estimated d u r a t i o n s f o r t h ef l o W s from f r . c f n and t h e s o u r c e Workspace to W s s le s s t h a n f r . d u r a t i o n .*/C h a n g e F l o W N o d e ? n d F l o W (V e r s i o n s o u r c e V e r s i o n ,W o r k s p a c e s o u r c e W o r k s p a c e ,I n t e g e r b o u n d )/ * maximum f l o W t i m e i n v e s t i g a t e d s o f a r * /

    I n t e g e r maxDuration = O ;ChangeFloWNode so ur ceCfn = neW

    C h a n g e F l o W N o d e ACCEPTEDLCHANGE, O U T , s o u r c e W o r k s p a c e , N U L L , ) ;f o r ( c f n = s o u r c e C f h . m i n D u r a t i o n T o d o ( ) ;

    c f n = NULL;c f n = s o u r c e C f n . m i n D u r a t i o n T o d o ( ) ) {i f ( m a x D u r a t i o n < c f n . d u r a t i o n ) {

    ma xD u r a ti o n = c f n . d u r a t i o n ;i f ( m a x D u r a t i o n > b o u n d )r e t u r n NULL; / * i f * / ; } / * i l * / ;c f n . s e t D o n e ) ;

    Ws = cfn.Workspace ;p r o j e c t = c f n . p r o j e c t ( ) ;s W i t c h c f n . d i r e c t i o n ) {

    c a s e OUT: {s W i t c h c f n . k i n d ) {c a s e PENDINGiCHANGE:

    d u r a t i o n = c f n . d u r a t i o n + Ws.timeAccep tChange ;cfn.add A CCEPTEDiCHANGE, OUT, W s , NULL, u r a t i o n ) ;} / * c a s e * / ;

    c a s e ACCEPTEDiCHANGE:cfn.addOVORKSPACEiACCEPTED, OUT, W s , NULL, f n . d u r a t i o n ) ;d u r a t i o n = c f n . d u r a t i o n + Ws.timePromoteChange ;f o r e a c h toWS n W s ( ) . d e l i v e r e d T o W o r k s p a c e ( {

    c f n . a d d ( P E N D I N G i C H A N G E , O U T , t o W S , NULL, u r a t i o n ) ;} / * f o r * / ; } / * c a s e * / ;c a s e ACCEPTEDLPROJECT:cfn.addOVORKSPACEiACCEPTED, OUT, W s , NULL, f n . d u r a t i o n ) ;} / * c a s e * / ;c a s e WORKSPACELACCEPTED:cfn.addOVORKSPACEiACCEPTED, N , W s , NULL, ) ;d u r a t i o n = c f n . d u r a t i o n + Ws.timePromoteCon?guration ;f o r e a c h t o P r o j e c t i n W s ( ) . d e l i v e r e d T o P r o j e c t {

    c f n . a d d ( P E N D I N G i P R O J E C T , O U T , N U L L , t o P r o j e c t , d u r a t i o n ) ;} / * f o r * / ; } / * c a s e * / ;c a s e PENDINGiPROJECT:

    f o r e a c h toWS n c f n . p r o j e c t ) . a c c e p t e d B y W o r k s p a c e ( {d u r a t i o n = c f n . d u r a t i o n + toWS.timeAcceptCon?guration ;c f n . a d d ( A C C E P T E D i P R O J E C T , O U T , t o W S , NULL, u r a t i o n ) ;} / * f o r * / ; } / * c a s e * / ;} / * s W i t c h * / ; } / * c a s e * / ;c a s e I N : {s W i t c h c f n . k i n d ) {

    c a s e PENDINGiCHANGE:f o r e a c h c h a n g e i n W s . P e n d i n g {f o r e a c h v e r s i o n i n c h a n g


Recommended