`SFDC 1004
`
`
`
`
`
`
`
`
`
`
`
`(12) United States Patent
`Gordon et al.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US006243717Bl
`US 6,243, 717 Bl
`Jun.5,2001
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) SYSTEM AND METHOD FOR
`IMPLEMENTING REVISION MANAGEMENT
`OF LINKED DATA ENTITIES AND USER
`DEPENDENT TERMINOLOGY
`
`(75)
`
`Inventors: Brian Scott Gordon, San Jose; David
`Ralph Preston, Los Gatos; Lee Sean
`Henry, Campbell, all of CA (US)
`
`(73) Assignee: Camstar Systems, Inc., Campbell, CA
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/156,325
`
`(22) Filed:
`
`Sep. 18, 1998
`
`Related U.S. Application Data
`(60) Provisional application No. 60/098,784, filed on Sep. 1,
`1998.
`Int. Cl? ...................................................... G06F 12/00
`(51)
`(52) U.S. Cl. ............................................. 707/203; 707/511
`(58) Field of Search ..................................... 707/203, 202,
`707/201, 200, 204, 205, 1, 2, 511
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,499,365 * 3/1996 Anderson et a!.
`................... 395/600
`5,734,899 * 3/1998 Yoshizawa eta!. ................. 707/203
`5,806,078 * 9/1998 Hug eta!. ............................ 707/511
`5,819,295 * 10/1998 Nakagawa eta!. .................. 707/203
`5,878,428 * 3/1999 Copeland eta!. ................... 707/103
`5,890,176 * 3/1999 Kish et a!.
`........................... 707/511
`5,897,636 * 4/1999 Kaeser ................................. 707/100
`5,983,241 * 11/1999 Hoshino ............................... 707/203
`6,014,676 * 1!2000 McClain ............................... 707/204
`
`* cited by examiner
`
`Primary Examiner-Thomas Black
`Assistant Examiner-Mary D. Wang
`(74) Attorney, Agent, or Firm-Wagner, Murabito & Hao
`LLP
`
`(57)
`
`ABSTRACT
`
`A system and method for implementing revision manage(cid:173)
`ment of linked data entities and user dependent terminology.
`The present invention provides a novel method to implement
`revision management so that when a referenced data record
`is revised, no manual updating of any referencing data
`record is required to reflect the corresponding change. When
`defining a referencing data record, a user designates a choice
`of version of the referenced data record to be used with the
`referencing data record thereafter. Specifically, the user can
`either specify a particular version, in which case that par(cid:173)
`ticular version of the referenced data record will be used
`when the referencing data record is subsequently accessed,
`or the user can elect to use the "revision of record", in which
`case the version of the referenced data record currently
`identified as the "revision of record" will be used. The
`present invention also provides a method to implement user
`dependent terminology in a computer implemented system
`without requiring any user programming. Specifically, when
`a user logs in, the system determines the appropriate lan(cid:173)
`guage and values of customizable terms for the user by
`checking the associated language and terminology set pre(cid:173)
`viously defined for the user. Thereafter, the system displays
`the custom value of the customizable term if it is defined
`within the terminology set associated with this user;
`otherwise, if it is defined within the language set associated
`with this user the system displays the corresponding repre(cid:173)
`sentation of that customizable term in the user's chosen
`language; otherwise, the system displays the default value
`for the customizable term.
`
`21 Claims, 14 Drawing Sheets
`
`STORE A FillS! VERSION Of A REVISIONABIE MODEilliG ENTITY
`(RME)
`JlO
`
`STORE A GENERAL MODEilliG ENTITY (GMI) WHICH RIIERENCES
`THE RME AND SPECIIliS A CHOICE Of VERSION
`
`320
`
`OPTIONAllY STORE A NEWIR VERSION OF !HI RME
`
`WAIT lOR A REQUEST TO RIIRIIVE !HI GME
`
`DYNAMICAllY RETRIIVE THE GMI WITH !HI PROPER VERSION
`Of !HI RMI AS SPECIIlED IN STEP 320
`1lQ
`
`SFDC 1004
`
`
`
`__ 1_~-~--~----------------------------------------------------------------------------------------------------------------------------------- ------------,
`
`104
`
`PROCESSOR
`
`106
`
`VOLATILE
`MEMORY
`
`108
`
`NON-VOLATILE
`MEMORY
`
`' ' '
`'
`
`------------------------------------.. -----~--------------------_.
`
`Address/Data Bus 102
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~
`
`Ul
`
`~ = ?
`N c c
`'"""'
`
`DATA STORAGE
`UNIT
`
`INPUT OUTPUT
`SIGNAL UNIT
`
`Optional
`ALPHANUMERIC
`INPUT DEVICE
`
`Optional
`CURSOR CONTROL
`DEVICE
`
`110
`
`112
`
`114
`
`116
`
`Optional
`DISPLAY
`DEVICE
`
`118
`
`I
`
`I
`
`' '
`------------------------------------------------------------------------------------------------·
`
`FIGURE 1
`
`'JJ. =-~
`~ .....
`'"""' 0 ......,
`'"""' ~
`
`e
`
`rJ'l
`0'1
`'N
`~
`~
`~
`1--"
`""-l
`~
`1--"
`
`
`
`U.S. Patent
`
`Jun.5,2001
`
`Sheet 2 of 14
`
`US 6,243, 717 Bl
`
`200
`
`WORKBENCH
`240
`-
`
`~
`
`r
`
`CLIENT APP
`260
`,,
`PUBLISHED INTERFACE 230
`
`l
`
`~~
`
`CLIENT APP
`250
`
`-
`
`CLIENT APP
`270
`-
`
`~
`
`lr
`
`-
`
`-
`
`APPLICATION SERVER
`210
`
`-
`
`DATA SERVER
`220
`
`-
`
`,
`
`DATABASE
`250
`-
`
`FIGURE 2
`
`
`
`U.S. Patent
`
`Jun.5,2001
`
`Sheet 3 of 14
`
`US 6,243, 717 Bl
`
`GMEI
`31
`
`GME3
`33
`
`GME2
`32
`
`RME
`30
`
`FIGURE 3
`
`
`
`BASE RECORD 40
`
`INSTANCE
`IDENTinCI TION
`
`NAME
`
`REVISION OF RECORD
`
`DESCRIPTION
`
`40a
`
`709
`t
`41
`
`MY_SPEC
`t
`42
`
`1632
`t
`43
`
`43a
`
`- - -
`
`44
`
`FIGURE 4A
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~Ul
`
`~ = ?
`N c c
`'"""'
`
`'JJ. =(cid:173)~
`~ .....
`
`~
`0 ......,
`'"""' ~
`
`e
`
`rJ'l
`0'1
`'N
`~
`~
`1--"
`""-l
`~
`1--"
`
`
`
`REVISIONS
`
`45
`
`B!SE_ID
`
`INSTANCE ID
`
`REVISION
`
`DETAILS
`
`45a
`
`45b
`
`45c
`
`709
`
`709
`
`709
`
`46
`
`1632
`
`1631
`
`1630
`
`41
`
`A
`
`B
`
`c
`
`48
`
`- - -
`
`- - -
`
`- - -
`
`49
`
`FIGURE 48
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~
`
`Ul
`
`~ = ?
`N c c
`'"""'
`
`'JJ. =(cid:173)~
`
`~
`Ul
`0 ......,
`'"""' ~
`
`e
`
`rJ'l
`0'1
`'N
`~
`~
`1--"
`""-l
`~
`1--"
`
`
`
`U.S. Patent
`
`Jun.5,2001
`
`Sheet 6 of 14
`
`US 6,243, 717 Bl
`
`300
`
`(
`
`START
`+
`STORE A FIRST VERSION OF A REVISIONABLE MODELING ENTITY
`(RME)
`310
`-
`
`+
`STORE A GENERAL MODELING ENTITY (GME) WHICH REFERENCES
`THE RME AND SPECIFIES A CHOICE OF VERSION
`
`320
`-
`+
`OPTIONALLY STORE A NEWER VERSION OF THE RME
`
`330
`-
`
`+
`WAIT FOR A REQUEST TO RETRIEVE THE GME
`
`340
`-
`
`+
`DYNAMICALLY RETRIEVE THE GME WITH THE PROPER VERSION
`OF THE RME AS SPECIFIED IN STEP 320
`350
`-
`
`+
`END
`
`FIGURE 5
`
`
`
`U.S. Patent
`
`Jun.5,2001
`
`Sheet 7 of 14
`
`US 6,243,717 Bl
`
`60
`
`REVISION ABLE
`RECORD ID
`
`VERSION
`NUMBER
`
`SELECT
`ROR?
`
`?
`
`YES/NO
`
`~I
`r2
`
`118
`
`FIGURE 6
`
`
`
`350
`
`EXAMINE THE CHOICE OF RME VERSION FOR THE GME
`BEING RETRIEVED
`410
`
`YES
`+
`SELECT THE VERSION OF THE RME THAT IS SPECIFIED
`.AS THE REVISION OF RECORD FOR THE GME
`430
`
`NO
`+
`SELECT THE PARTICULAR VERSION OF THE RME .AS
`SPECIFIED IN THE CHOICE FOR THE GME
`440
`
`\
`
`END
`
`/~
`
`FIGURE 7
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~Ul
`
`~ = ?
`N c c
`'"""'
`
`'JJ. =(cid:173)~
`~ .....
`00
`0 ......,
`'"""' ~
`
`e
`
`rJ'l
`0'1
`'N
`~
`~
`1--"
`""-l
`~
`1--"
`
`
`
`U.S. Patent
`
`Jun. 5, 2001
`
`Sheet 9 of 14
`
`US 6,243, 717 Bl
`
`80
`
`( 82
`
`USER ID
`
`( 83
`LANGUAGE
`
`Bla '
`Bib '
`Blc
`""""'
`
`Bid
`""""'
`
`Ble
`""""'
`
`5
`
`7
`
`10
`
`15
`
`20
`
`* * *
`
`DEFAULT
`
`FRENCH
`
`FRENCH
`
`GERMAN
`
`DEFAULT
`
`* * *
`
`FIGURE 8A
`
`
`
`U.S. Patent
`
`Jun. s, 2001
`
`Sheet 10 of 14
`
`US 6,243, 717 Bl
`
`85
`
`{ 86
`
`{ 88
`TERMINOLOGY SET
`
`USER ID
`
`87a '
`87b """\
`
`81c '
`87d """\
`
`87e '
`
`5
`
`7
`
`10
`
`15
`
`20
`
`DEFINED SET A
`
`DEFINED SET B
`
`DEFAULT SET
`
`DEFINED SET 1l
`
`DEFINED SET C
`
`* * *
`
`* * *
`
`FIGURE 88
`
`
`
`90 I t::J LABELS [CSIField)
`Select a label category
`to work with:
`CSI!dminSys
`CSIField
`CSIStatusBar
`CSIWhatThis
`CSIHelpURL
`CSIInformation
`CSI!cknowledgement
`CSI!uthorization
`CSI!ction
`CSIReject
`CSI!pplication
`CSISevere
`CSIFatal
`Other Field
`OtherStatusBar
`OtherWhatThis
`OtherHelpURL
`Otherlnformation
`Other Acknowledgement
`Other Authorization
`
`• -
`
`1--
`
`-
`
`~
`
`Enter the text to create a new label in the selected category:
`
`Text
`LabeUD
`~ 0010-0005 Bonus Reasons:
`0100-0006 Defect Reasons:
`0010-0002 Description:
`0010-0015 Disallowed Transaction(s)
`0010-000B In-Transit Point
`0010-000C Inventory Point
`0010-0007 Local Rework Reasons:
`0010-0008 Loss Reasons:
`0010-0001 Name:
`0010-0004 Notes:
`0010-000D Outside Service
`0010-0009 Rework Reasons:
`0010-000! Ship Codes:
`0010-000E Summary Throughput
`0010-000F Throughput Reporting Level:
`0010-0016 Use Queue
`l
`
`....
`
`I
`
`Name
`BonusReasons
`DefectReasons
`Description
`DisallowedTxns
`InTransitPoint
`Inventory Point
`LocaiReworkReasons
`LossReasons
`Name
`Note
`OutsideService
`ReworkReasons
`ShipCodes
`SummaryThroughput
`ThuReportingLevel
`UseQueue
`
`1-lolx I
`
`I~
`•
`
`,
`
`\
`
`\
`
`~
`
`I~
`
`92
`
`94
`FIGURE 9
`
`96
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~Ul
`
`~ = ?
`N c c
`""""
`
`'JJ. =(cid:173)~
`~ .....
`""""
`"""" 0 ......,
`"""" ~
`
`e
`
`rJ'l
`0'1
`'N
`~
`~
`1--"
`""-l
`~
`1--"
`
`
`
`U.S. Patent
`
`Jun.5,2001
`
`Sheet 12 of 14
`
`US 6,243, 717 Bl
`
`500
`
`START
`
`ASSOCIATE USER ID'S WITH RESPECTIVE LANGUAGES
`510
`
`ASSOCIATE USER ID'S WITH RESPECTIVE TERMINOLOGY SETS
`520
`
`RECEIVE .A USER LOGIN WHICH INCLUDES .A USER ID
`530
`
`DETERMINE THE LANGUAGE ASSOCIATED WITH THE LOGIN USER
`ID BASED ON THE ASSOCIATIONS EST. IN STEP 510
`540
`
`DETERMINE THE TERMINOLOGY SET ASSOCIATED WITH THE LOGIN
`USER ID BASED ON THE ASSOCIATIONS EST. IN STEP 520
`550
`
`REPEAT FOR EACH
`CUSTOMIZABLE TERM
`
`REPEAT FOR EACH
`CUSTOMIZABLE TERM
`
`DEFINED IN TERM.
`SET IDEN. IN STEP 550?
`560
`
`YES
`
`NO
`
`DISPLAY THE CUSTOMIZABLE TERM
`AS DEFINED IN THE TERMINOLOGY
`SET IDENTIFIED IN STEP 550
`570
`
`NO
`
`DEFINED IN
`LANGUAGE IDEN. IN STEP 540?
`565
`
`DISPLAY THE CUSTOMIZABLE TERM
`AS DEFINED IN THE DEFAULT
`LANGUAGE
`590
`
`DISPLAY THE CUSTOMIZABLE TERM
`AS DEFINED IN THE LANGUAGE
`IDENTIFIED IN STEP 540
`580
`
`FIGURE 10
`
`
`
`U.S. Patent
`
`Jun. 5, 2001
`
`Sheet 13 of 14
`
`US 6,243, 717 Bl
`
`605
`
`[J START
`CONTAINER START
`User:
`NickA
`
`Container:
`I Container I
`
`Product:
`I YlOOlOOO
`
`Resource:
`I MOlPOl
`Factory:
`
`Unit Count:
`640 ~
`
`, ............................. ,
`i GO
`i
`
`L---==--------'
`
`CLOSE
`
`645
`
`650
`
`FIGURE 11A
`
`
`
`U.S. Patent
`
`Jun. 5, 2001
`
`Sheet 14 of 14
`
`US 6,243, 717 Bl
`
`655
`~I
`
`10 Commencer
`6 so, COMMENCER
`r- - Persone:
`66 5,.. --1 StephanH
`651
`f- Contenus:
`
`r I Container)
`
`67
`r- f- Produit:
`I YlOOIOOO
`5
`67
`,--- r- Resource:
`I MOIPOI
`0
`68
`
`r f- Usine:
`
`68
`I SPI
`,--- f- Compte:
`0 [I]
`69
`
`I
`
`1-IDIXI
`
`I
`
`I
`
`I
`
`I
`
`I
`
`, ------------,
`! OK
`~
`~----~------1
`
`I \
`\
`
`695
`
`Fermer
`-
`
`\
`\.I
`700
`
`FIGURE 118
`
`
`
`US 6,243,717 Bl
`
`1
`SYSTEM AND METHOD FOR
`IMPLEMENTING REVISION MANAGEMENT
`OF LINKED DATA ENTITIES AND USER
`DEPENDENT TERMINOLOGY
`
`The present application claims priority to the provisional
`application entitled "INSITE COMPUTER IMPLE(cid:173)
`MENTED SYSTEM" by Gordon, et al. (serial No. 60/098,
`784, attorney docket number CAMS-OOl.PRO) filed on Sep.
`1, 1998 pursuant to 35 U.S.C. §119(e), 37 C.P.R. §1.78.
`
`BACKGROUND OF THE INVENTION
`
`5
`
`2
`In addition, while modern computer implemented systems
`often support some user customizations, the level of support
`is usually limited and inflexible. For example, some prior art
`computer implemented systems provide an arbitrary selec-
`tion of settings or configurations from which a user can
`choose to activate. However, the choices thus provided are
`generally limited and, more often than not, do not meet the
`distinct preferences and needs of a user. Often, the customi(cid:173)
`zations are implemented using technical procedures that are
`10 not known to the end user, thereby requiring an expert to
`implement.
`Other prior art off-the-shelf computer implemented sys(cid:173)
`tems allow users to override certain default configurations of
`the systems as shipped, but the users must programmatically
`15 develop the desired configurations to replace the default
`system configurations. Such additional development efforts
`not only incur extra costs to the user but also increase the
`time required to fully deploy the system.
`Moreover, such program modules for user customizations
`20 are typically not supported by the system vendors because
`the modules are not considered standard components of the
`off-the-shelf systems. This translates into further additional
`costs and resources for supporting and maintaining the
`ongoing use of the customized systems.
`Furthermore, a user with a customized system may not be
`able to take advantage of a later upgrade of the underlying
`off-the-shelf system released by the system vendor. This is
`because the customizing modules developed based on the
`older version of the off-the-shelf system may not be com(cid:173)
`patible with the newer version of the system. Under such
`circumstances, the user must either consume yet more
`resources to retrofit the customizing modules in order to
`upgrade to the new version of the underlying system and
`35 utilize any new features provided therein, or elect not to
`upgrade and thus be stuck with less desirable, antiquated
`technology.
`Thus, there exists a need for a computer implemented
`system and method for data storage and retrieval wherein a
`referencing data record does not need to be manually
`updated when the corresponding referenced data record is
`revised. Further, there exists a need for a computer imple(cid:173)
`mented system and method for data storage and retrieval
`wherein data integrity and system reliability are not com-
`45 promised by outdated references arising from revisions of
`individual data records. In addition, there exists a need for
`a computer implemented system and method for data storage
`and retrieval which allows user customizations and does not
`restrict the customization to a few arbitrary choices. There
`also exists a need for a computer implemented system and
`method for data storage and retrieval that supports user
`customizations but does not impose costly development and
`maintenance expenditures upon the user and does not
`adversely affect the user's ability to migrate to improved
`55 versions of the system when they become available.
`
`25
`
`1. Field of the Invention
`The present invention relates to the field of computer
`implemented systems. More specifically, the present inven(cid:173)
`tion relates to techniques for managing revisionable data
`records and user dependent terminology within a computer
`implemented system.
`2. Related Art
`Modern computer implemented systems generally include
`functionalities by which data is stored, updated and
`accessed. In these computer implemented systems, data
`records are stored in a retrievable storage (e.g., a database
`residing in magnetic and/or optical media), and cross refer(cid:173)
`ences or links among related data records are common.
`Typically, such cross references are stored in the retrievable
`media together with the associated data records. In the prior
`art, a user typically has to manually update all data records
`that reference a data record whenever the referenced data 30
`record is revised to ensure that any changes in the referenced
`data record are reflected accordingly in the referencing data
`record(s). Alternatively, the user has to specifically write a
`program or script to perform the same updating task. Numer(cid:173)
`ous drawbacks exist for these prior art schemes. First,
`manual updating or additional programming as required in
`the prior art is error prone. For instance, if any referencing
`data record is not updated due to an omission or undetected
`programming error, the user is not alerted about the missing
`update and the integrity of the data is compromised. 40
`Furthermore, when an outdated referencing data record is
`itself referenced subsequently, it may even propagate the
`incorrect information with respect to the first referenced data
`record, thereby further degrading data integrity.
`Furthermore, these prior art methods are time consuming
`and inefficient. For example, every time a change is made to
`a data record, the user must first determine whether any
`other data records are affected via cross referencing. If so,
`the user must then either manually perform the necessary
`updates to the affected data records or develop a dedicated 50
`program or script to perform the task. Such extensive
`manual steps involved in the actual updating of affected data
`records or developing a program to perform the same take up
`user time which can otherwise be devoted to more produc(cid:173)
`tive endeavors.
`Yet another disadvantage of the prior art methods is that
`there exists an inevitable delay before a cross reference is
`actually updated. More specifically, when a data record is
`revised, those data records that reference it need to be
`updated accordingly. However, even if the user begins 60
`updating the referencing data records immediately after the
`referenced data record has been modified, there is still a
`possibility that the referencing record(s) are accessed prior
`to the corresponding update. Under such circumstances, an
`outdated reference results and data integrity is again com- 65
`promised. As such, the overall reliability of the computer
`implemented system is adversely affected.
`
`SUMMARY OF THE INVENTION
`
`Accordingly, the present invention offers a system and
`method for data storage and retrieval wherein revision
`management of linked data entities are automated while
`ensuring system reliability and data integrity, and wherein
`flexible user dependent terminology is implemented without
`requiring programming. The present invention provides a
`novel method for implementing revision management so
`that when a referenced data record is revised, no manual
`updating of any referencing data record is required to reflect
`the corresponding change. When defining a referencing data
`
`
`
`US 6,243,717 Bl
`
`10
`
`4
`the RME referenced in a GME in accordance with one
`embodiment of the present invention.
`FIG. 7 is a flow diagram illustrating steps of a computer
`system implemented process for dynamically determining
`the proper version of a RME to use when a referencing GME
`is being retrieved in accordance with the present invention.
`FIGS. SA and 8B are exemplary tables illustrating the data
`structures used to implement user dependent terminology in
`accordance with one embodiment of the present invention.
`FIG. 9 is an exemplary logical illustration showing a
`graphical user interface for defining labels within a termi(cid:173)
`nology set and the default terminology set in accordance
`with the present invention.
`FIG. 10 is a flow diagram illustrating steps of a computer
`system implemented process for implementing user depen(cid:173)
`dent terminology in accordance with the present invention.
`FIGS. llA and llB are exemplary graphical user inter(cid:173)
`faces with labels in different languages as a result of
`20 different login user IDs in accordance with the present
`invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`3
`record, a user designates a choice of version of the refer(cid:173)
`enced data record to be used with the referencing data record
`thereafter. Specifically, in one embodiment, the user can
`either specify a particular version number, in which case that
`particular version number of the referenced data record will 5
`be used when the referencing data record is subsequently
`accessed, or the user can elect to use the "revision of
`record", in which case a predefined version (e.g., the most
`current version) of the referenced data record will be used.
`Moreover, the present invention also provides a method
`for implementing user dependent terminology in a computer
`implemented system without requiring any user program(cid:173)
`ming. Specifically, in one embodiment, when a user logs in
`to the computer system, the computer system determines the
`appropriate language and values of customizable terms for 15
`the user by checking the associated language and terminol(cid:173)
`ogy set previously defined for the user. The selection is
`therefore based on the user identification and is very trans(cid:173)
`parent to the user. Thereafter, the computer system displays
`the custom value of the customizable term if it is defined
`within the terminology set associated with this user;
`otherwise, the system displays the corresponding represen(cid:173)
`tation of that customizable term in the user's chosen lan(cid:173)
`guage. Lastly, if none of the above are defined, a default
`language set is used.
`Thus, by providing a user-driven yet fully automated
`method for revision management of linked data records, the
`present invention eliminates the need of the prior art for
`manual updates of referencing data records when the cor(cid:173)
`responding referenced data record is revised. Further, data
`integrity and system reliability are dramatically enhanced by
`preventing errors arising from manual updates and by
`enabling instantaneous, automatic update of referenced data
`records by virtue of the "revision of record" designation. In
`addition, the user transparent and flexible customization
`capabilities afforded by the present invention while impos(cid:173)
`ing no programming overhead greatly improves the usability
`and versatility of customizable systems. These and other
`advantages of the present invention not specifically
`described above will become clear within discussions of the 40
`present invention herein.
`
`25
`
`In the following detailed description of the present
`invention, a system and method for implementing revision
`management of linked data entities and user dependent
`terminology, numerous specific details are set forth in order
`to provide a thorough understanding of the present inven-
`30 tion. However, it will be recognized by one skilled in the art
`that the present invention may be practiced without these
`specific details or with equivalents thereof. In other
`instances, well known methods, procedures, components,
`and circuits have not been described in detail as not to
`35 unnecessarily obscure aspects of the present invention.
`
`NOTATION AND NOMENCLATURE
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Some portions of the detailed descriptions which follow
`are presented in terms of procedures, steps, logic blocks,
`processing, and other symbolic representations of operations
`on data bits within a computer memory. These descriptions
`and representations are the means used by those skilled in
`the data processing arts to most effectively convey the
`45 substance of their work to others skilled in the art. A
`The accompanying drawings, which are incorporated in
`procedure, computer executed step, logic block, process,
`and form a part of this specification, illustrate embodiments
`etc., is here, and generally, conceived to be a self-consistent
`of the present invention and, together with the description,
`sequence of steps or instructions leading to a desired result.
`serve to explain the principles of the invention.
`The steps are those requiring physical manipulations of
`FIG. 1 is a general purpose computer system which
`provides an operational platform for embodiments of the 50 physical quantities. Usually, though not necessarily, these
`quantities take the form of electrical or magnetic signals
`present invention.
`capable of being stored, transferred, combined, compared,
`FIG. 2 is a high level block diagram of an exemplary
`and otherwise manipulated in a computer system. It has
`configuration of the computer implemented system in accor(cid:173)
`proven convenient at times, principally for reasons of com-
`dance with the present invention.
`55 mon usage, to refer to these signals as bits, values, elements,
`FIG. 3 is a high level diagram illustrating the relationship
`symbols, characters, terms, numbers, or the like.
`between an RME and several referencing GMEs in accor(cid:173)
`It should be borne in mind, however, that all of these and
`dance with the present invention.
`similar terms are to be associated with the appropriate
`FIGS. 4A and 4B are logical diagrams illustrating the data
`physical quantities and are merely convenient labels applied
`structures used to represent an exemplary RME in accor(cid:173)
`60 to these quantities. Unless specifically stated otherwise as
`dance with the present invention.
`apparent from the following discussions, it is appreciated
`FIG. 5 is a flow diagram illustrating steps of a computer
`that throughout the present invention, discussions utilizing
`system implemented process for realizing the novel method
`terms such as "storing", "appointing", "generating",
`of revision management in accordance with the present
`"receiving", "linking" or the like, refer to the action and
`invention.
`65 processes of a computer system (e.g., FIG. 1), or similar
`FIG. 6 is a diagram illustrating an exemplary graphical
`electronic computing device, that manipulates and trans(cid:173)
`user interface for user designation of a choice of version of
`forms data represented as physical (electronic) quantities
`
`
`
`US 6,243,717 Bl
`
`5
`within the computer system's registers and memories into
`other data similarly represented as physical quantities within
`the computer system memories or registers or other such
`information storage, transmission or display devices.
`Aspects of the present invention, described below, are 5
`discussed in terms of steps executed on a computer system.
`These steps (e.g., processes 300, 350 and 500) are imple(cid:173)
`mented as program code stored in computer readable
`memory units of a computer system and are executed by the
`processor of the computer system. Although a variety of 10
`different computer systems can be used with the present
`invention, an exemplary general purpose computer system
`100 is shown in FIG. 1.
`COMPUTER SYSTEM ENVIRONMENT
`In general, computer system 100 includes an address/data
`bus 102 for communicating information, a central processor
`104 coupled with the bus for processing information and
`instructions, a volatile memory 106 (e.g., random access
`memory RAM) coupled with the bus 102 for storing infor(cid:173)
`mation and instructions for the central processor 104 and a
`non-volatile memory 108 (e.g., read only memory ROM)
`coupled with the bus 102 for storing static information and
`instructions for the processor 104. Computer system 100
`also includes a data storage device 110 ("disk subsystem")
`such as a magnetic or optical disk and disk drive coupled
`with the bus 102 for storing information and instructions.
`Data storage device 110 can include one or more removable
`magnetic or optical storage media (e.g., diskettes, tapes)
`which are computer readable memories. Memory units of
`system 100 include 106, 108 and 110. Computer system 100
`can also include a signal input output communication device
`112 (e.g., modem, network interface card NIC) coupled to
`the bus 102 for interfacing with other computer systems.
`Also included in computer system 100 of FIG. 1 is an
`optional alphanumeric input device 114 including alphanu(cid:173)
`meric and function keys coupled to the bus 102 for com(cid:173)
`municating information and command selections to the
`central processor 104. Computer system 100 also includes
`an optional cursor control or directing device 116 coupled to
`the bus 102 for communicating user input information and
`command selections to the central processor 104. An
`optional display device 118 can also be coupled to the bus
`102 for displaying information to the computer user. Display
`device 118 may be a liquid crystal device, other fiat panel
`display, cathode ray tube, or other display device suitable for
`creating graphic images and alphanumeric characters rec(cid:173)
`ognizable to the user. Cursor control device 116 allows the
`computer user to dynamically signal the two dimensional
`movement of a visible symbol (cursor) on a display screen 50
`of display device 118. Many implementations of cursor
`control device 116 are known in the art including a trackball,
`mouse, touch pad, joystick or special keys on alphanumeric
`input device 114 capable of signaling movement of a given
`direction or manner of displacement. Alternatively, it will be 55
`appreciated that a cursor can be directed and/or activated via
`input from alphanumeric input device 114 using special keys
`and key sequence commands. The present invention is also
`well suited to directing a cursor by other means such as, for
`example, voice commands.
`It is appreciated that computer system 100 described
`herein illustrates an exemplary configuration of an opera(cid:173)
`tional platform upon which embodiments of the present
`invention can be implemented. Nevertheless, other com(cid:173)
`puter systems with differing configurations can also be used 65
`in place of computer system 100 within the scope of the
`present invention.
`
`6
`FIG. 2 is a high level block diagram of an exemplary
`configuration of the computer implemented system in accor(cid:173)
`dance with the present invention. One embodiment of the
`computer implemented system of the present invention is a
`Manufacturing Execution System (MES) for integrating and
`managing information from the factory floor and for pro-
`viding production management capabilities and factory
`automation solutions. Specifically, in one embodiment, sys(cid:173)
`tem 200 includes application server 210, which encapsulates
`business rules and application logic as data objects and
`access methods, thus enabling flexible and powerful mod(cid:173)
`eling of manufacturing data and processes. In a preferred
`embodiment, the novel method of revision management of
`the present invention is implemented within data server 220
`15 and exposed through application server 210. In one
`embodiment, multiple application servers can be maintained
`within system 200 to provide for additional scalability of the
`system.
`System 200 also includes data server 220 and database
`20 250. Data server 220 is responsible for managing the trans(cid:173)
`lation of data from objects (e.g., modeling entities such as
`configurable data objects (CDOs)) in application server 210
`to the proper database format for storage in database 250,
`and vice versa. Thus, data is retrieved from and stored to
`25 database 250, with the appropriate translation, via data
`server 220. In one embodiment, database 250 is a relational
`database management system (RDBMS), thereby allowing
`the use of industry standard tools for data access. Examples
`of commercially available RDBMS's include SQL Server
`30 V6.5+ for Windows NT by Microsoft Corporation and
`Oracle 7.3+ for Windows NT or UNIX by Oracle Corpora(cid:173)
`tion. In one embodiment, communications between data
`server 220 and database 250 are supported via open database
`connectivity (ODBC), thus enabling full database indepen-
`35 deuce.
`With reference still to FIG. 2, in one embodiment, system
`200 further includes workbench 240 and client applications
`250, 260 and 270. Workbench 240 provides a collection of
`user applications to facilitate object and model definitions,
`40 user and security management, and also database configu(cid:173)
`rations. Client applications 250, 260 and 270 are application
`extensions that enhance and/or customize the functionalities
`of system 200 and may include third party off-the-shelf
`applications, user developed custom applications, additional
`45 user interfaces, and the like. It is appreciated that client
`applications 250, 260 and 270 are entirely optional to system
`200. Users of system 200 can implement more or fewer
`client applications based on their own needs within the
`scope of the present invention.
`Still referring to FIG. 2, in one embodiment, application
`server 210 communicates with data server 220 via named
`pipes. In particular, using named pipes provides for scal(cid:173)
`ability of system 200 by delivering data from multiple
`applications running on one or more application servers. On
`the other hand, application server 210 communicates with
`workbench 240 and client applications 250, 260 and 270
`through published interface 230. Published interface 230 is
`a consistent, public interface which serves as a bridge
`between application server 210 and client applications 250,
`60 260 and 270 and also workbench 240. In one embodiment,
`published interface 230 is built upon Microsoft's COM/
`DCOM and Active X technologies. As such, users of system
`200 can easily customize and/or extend the functionalities of
`the system by adding application extensions, such as client
`applications 250, 260 and 270, which are compliant with
`these industry sta