# US 7,610,286 B1 · System and method for access control and for supply chain management via a shared bill of material

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,610,286 B1
- Document ID: US7610286B1
- Status: Granted
- Kind: B1
- Application number: 11/143,908
- Filed: 2005-06-02
- Granted: 2009-10-27
- Earliest claimed: 2001-04-10
- Assignees: Arena Solutions, Inc.
- Inventors: Janet Yu; Eric Larkin; Michael Topolovac
- Web page: https://patentgrep.com/patent/US7610286B1

## CPC

- G06F 21/606: {by securing the transmission between two devices or processes}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06Q 10/00: Administration; Management
- G06Q 10/0875: Itemisation or classification of parts, supplies or services, e.g. bill of materials
- G06F 2221/2115: Third party
- Y10S 707/99939: Privileged access
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A method and computer program product for securely uploading and downloading data from a client to a remote data storage location under control of a remote application program. The data is stored in encrypted form so that the data server has no access to the data. The data is associated with a bill of material (BOM) and may be accessed by users without providing access to the data space of the client. Also disclosed is a method and computer program so automatically assign access privileges to one or more users of data in a bill of material stored in a shared database such that the step of refining a role for the user for a data item automatically assigns access privileges for the user for the data and other related data items. Also described is linking BOMs to provide peer-to-peer access and views to different users. Also described is a method and software program that provides of propagation of data through the supply chain via one or more bills of materials.

## Claims

### Claim 1

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOM being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user associated with at least one entity
such that the database contain at least two BOMS having different owners,
wherein the database includes confidential information of at least one of the owners such that unrestricted access to the confidential information is limited to the owner and any designate(s) of the owner, and
wherein users are assigned roles with respect to different data stored in the database, such that access privileges to data and views of data to different users depends on the roles assigned to the different users.

### Claim 2 (depends on 1)

A method as recited in claim 1, wherein a BOM of a particular owner includes confidential information, and wherein the confidential information of the particular owner includes the BOM confidential information.

### Claim 3 (depends on 2)

A method as recited in claim 2, wherein providing remote access includes providing remote access via a public network.

### Claim 4 (depends on 3)

A method as recited in claim 3, wherein the public network is the Internet.

### Claim 5 (depends on 1)

A method as recited in claim 1,
wherein one or more elements in the element list is associated with a respective owner of the set of owners,
wherein the list of elements includes an indication of ownership for each element associated with one of the owners, and
wherein the confidential information of an owner that owns a element in the list of elements includes confidential information in the list of elements,
such that unrestricted access to confidential information about a particular element in the element list that is associated with a particular owner is limited to the particular owner and any designate(s) of the particular owner.

### Claim 6 (depends on 1)

A method as recited in claim 1, wherein a first BOM of a first owner may share one or more elements of the list of elements with a second BOM of a second owner.

### Claim 7

A method of operating a processing system storing a plurality of bills of material (BOMs), the method comprising:
storing the plurality of BOMs in a database in a local or distributed processing system, each BOM describable as a tree with each node an element, each BOM associated with an owner of a set of two or more owners and each element in each BOM associated with an owner of the set of owners, such that BOMs associated with different owners are stored in the same database, the storing including storing one or more data structures in the database configured to store the plurality of BOMs; and
providing unrestricted access to confidential information in a particular stored BOM only to the owner associated with the particular BOM and to any designate(s) of the owner; and
providing access to the stored BOMs to one or more users, each user being associated with at an entity,
wherein a role of a set of roles is assigned to one or more users for a particular element of a particular BOM, each role having an associated set of rules that define access privileges for a role-holding user for the particular element, and
such that the assigned role for a user for an element automatically defines the access privilege that the role-holding-user has to the element.

### Claim 8 (depends on 7)

A method as recited in claim 7,
wherein the role assigned to a user is one of a set of roles of a supply chain.

### Claim 9 (depends on 8)

A method as recited in claim 8, wherein the roles of the supply chain include one or more of the set that includes:
the role of employee, assigned to any user that is associated with the owner of the element;
the role of partner for any user that is associated with an entity other than the owner;
the role of supplier of a BOM element for a user that is associated with an entity that has a sourcing relationship for the element; and
the role of contract manufacturer for any user that is associated with an entity that has a contract manufacturer relationship for the element.

### Claim 10 (depends on 9)

A method as recited in claim 9, wherein a contact manufacturing relationship is a type of sourcing relationship.

### Claim 11 (depends on 9)

A method as recited in claim 9, wherein the set further includes:
the role of customer for any user who is associated with an entity that has a customer relationship for the element.

### Claim 12 (depends on 7)

A method as recited in claim 7, wherein the one or more data structures in the database configured to store the plurality of BOMs are arranged to allow a BOM element owned by a first entity to be linked to another BOM element owned by a second entity.

### Claim 13 (depends on 7)

A method as recited in claim 7, wherein the one or more data structures in the processing system configured to store the plurality of BOMs are arranged to allow a BOM element owned by a first entity to be shared as an element in a second BOM owned by a second entity.

### Claim 14 (depends on 7)

A method as recited in claim 7, arranged to automatically generate for each user a view of data matched to the role the user has to the data.

### Claim 15 (depends on 14)

A method as recited in claim 14, wherein a change made by a first user having a first role of a supply chain of roles is propagated through the supply chain of roles,
such that as a result of the first user having the first role to an element of a BOM making a change of an aspect of the element of the BOM, the view of the BOM presented to a second user having second role of the supply chain to the element is automatically updated to reflect the change.

### Claim 16 (depends on 7)

A method as recited in claim 7, wherein the one or more data structures in the database configured to store the plurality of BOMs are arranged to allow a BOM element belonging to a first entity to be linked to a second BOM element belonging to a second entity, and further to allow a BOM element owned by a third entity to be shared as an element in another BOM owned by another entity different to the third entity,
wherein by linking and sharing of data in BOMS amongst entities that have different roles to the data, information is cascade through a supply chain for an item.

### Claim 17 (depends on 7)

A method as recited in claim 7, wherein a change made by a first user having a first role of a supply chain of roles is propagated through the supply chain of roles.

### Claim 18 (depends on 7)

A method as recited in claim 7, wherein the privileges associated with the roles for a role-holding-user include at least one of the set consisting of:
the type of data of the element the role holder may view;
the type of data of the element the role holder may not view;
the type of data of the element the role holder may edit; and
the type of data of the element the role holder may not edit.

### Claim 19 (depends on 7)

A method as recited in claim 7,
wherein each user is associated with one or more entities,
wherein each entity may have a relationship of a set of relationships to an element, and
wherein the role assigned to a user is according to the entity with which the user is associated, and according to the relationship the associated entity has with the element.

### Claim 20 (depends on 19)

A method as recited in claim 19, wherein one or the set of relationships is a sourcing relationship, such that a user associated with an entity that has a sourcing relationship with an element has a role of a supplier for that element.

### Claim 21 (depends on 7)

A method as recited in claim 7, wherein the BOMs are stored remotely, and wherein access to the BOMs is provided remotely.

### Claim 22 (depends on 21)

A method as recited in claim 21, wherein providing remote access includes providing remote access via a public network.

### Claim 23 (depends on 22)

A method as recited in claim 22, wherein the public network is the Internet.

### Claim 24 (depends on 7)

A method as recited in claim 7, wherein one of the roles is that of a supplier, the method further comprising:
storing a list of elements in the database, each element in the list of elements having a unique element identifier, each element in each BOM being one of the elements in the list of elements;
storing a set of entities in the database;
storing a set of sourcing relationships between an element in the list of elements and an entity in the list of entities, such that a sourcing relationship is defined for at least some of the elements in the list of elements, said entity being the supplier for the at least some of the elements,
such that a user who is associated with the supplier is automatically assigned the role of a supplier, with access privileges pre-defined for a supplier for the at least some of the elements, without the role of supplier needing to be explicitly assigned to the user.

### Claim 25 (depends on 24)

A method as recited in claim 24, further comprising:
storing a list of elements in the database, each element in the list of elements having a unique element identifier, each element in each BOM being one of the elements in the list of elements;
wherein one or more elements in the element list are associated with a respective owner of a set of owners, and wherein the list of elements includes an indication of ownership for each element associated with one of the owners, the method further comprising:
restricting access to information about a particular element in the element list that is associated with a particular owner to the particular owner and to any designate(s) of the particular owner.

### Claim 26

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more elements of the list of elements being for inclusion in one or more of a plurality of bills of material (BOMs);
a list of entities; and
one or more data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements, elements of at least two of the BOMs associated with respective owners of a set of owners, the set of owners being in the list of entities, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users associated with one or more of the entities,
such that the database may contain two BOMS associated with two different owners,
wherein at least one of the BOMs includes confidential information of the owner of the BOM, such that access to the confidential information in the BOM is limited to the owner and to any entities designated by the owner of the BOM,
wherein database is arranged such that an entity may be designated a role for a particular element in a BOM,
wherein an access privileges for an entity for accessing confidential information for a particular element are automatically defined by the role designated to the entity,
such that the role designated for a particular entity automatically defines access privileges for any user associated with the particular entity for the particular element.

### Claim 27 (depends on 26)

A method as recited in claim 26, wherein one or more elements in the element list are associated with a respective owner of the set of owners, and wherein the list of elements includes an indication of ownership for each element associated with one of the owners, the method further comprising:
restricting access to information about a particular element in the element list that is associated with a particular owner to the particular owner and to at least one entity designated of the particular owner, the restricting of access to a designate including assigning a role for the designate, each role having an associated set of rules that define the type of access a user associated with the designate has for the element,
such that the role assigned to a particular entity for a particular element of a BOM automatically defines access privileges for any user associated with the particular entity for the particular element.

### Claim 28 (depends on 26)

A method as recited in claim 26, wherein one of the roles is the role of a supplier, such that a user associated with an entity that is a supplier for the particular entity is automatically provided with pre-defined access privileges accorded to suppliers for the particular element, such that the user's access is restricted to pre-defined access privileges accorded to suppliers without the need to explicitly assign privileged for the particular user.

### Claim 29 (depends on 26)

A method as recited in claim 26, further comprising a list of users, and further comprising a list of association of users, the association list defining with which entity or entities a user is associated.

### Claim 30 (depends on 26)

A method as recited in claim 26, wherein a first BOM of a first owner may share one or more elements of the list of elements with a second BOM of a second owner.

### Claim 31 (depends on 26)

A method as recited in claim 26, wherein providing remote access includes providing remote access via a public network.

### Claim 32 (depends on 31)

A method as recited in claim 31, wherein the public network is the Internet.

### Claim 33

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user being associated with an entity,
such that the database may contain BOMS having different owners,
wherein the database includes confidential information of at least one of the owners such that unrestricted access to the confidential information is limited to the owner and any designate(s) of the owner,
wherein one or more elements in the element list is associated with a respective owner of the set of owners,
wherein the list of elements includes an indication of ownership for each element associated with one of the owners, and
wherein the confidential information of an owner that owns a element in the list of elements includes confidential information in the list of elements,
such that unrestricted access to confidential information about a particular element in the element list that is associated with a particular owner is limited to the particular owner and to any designate(s) of the particular owner.

### Claim 34 (depends on 33)

A method as recited in claim 33,
wherein the processing system is a distributed system.

### Claim 35 (depends on 33)

A method as recited in claim 33,
wherein providing remote access includes providing remote access via a public network.

### Claim 36 (depends on 35)

A method as recited in claim 35, wherein the public network is the Internet.

### Claim 37

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user being associated with an entity,
such that the database may contain BOMS having different owners,
wherein the database includes confidential information of at least one of the owners such that unrestricted access to the confidential information is limited to the owner and any designate(s) of the owner,
wherein the database is arranged such that a first BOM of a first owner may share one or more elements of the list of elements with a second BOM of a second owner.

### Claim 38

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user being associated with an entity,
such that the database may contain BOMS having different owners,
wherein an element in the element list is one of the set consisting of a physical element and a process,
wherein the database is arranged such that the physical element may itself be a BOM, and
wherein the database is arranged such that the process may reference a set of steps or operations.

### Claim 39

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user being associated with an entity,
such that the database may contain BOMS having different owners,
wherein each BOM data structure is for storing the parent-child relationships for at least one BOM of the plurality of BOMs, and wherein a BOM data structure includes, for a particular BOM, an entry for each element in the particular BOM, said element entry including a reference to the element's entry in the list of elements, an entry indicating the owner, and an entry indicating any child of the element in the case the element has a child in the tree representing the particular BOM.

### Claim 40 (depends on 39)

A method as recited in claim 39, wherein the parent child relationships for all the BOMS are stored in a single BOM data structure.

### Claim 41 (depends on 39)

A method as recited in claim 39, wherein the database is a relational database, and wherein the list of elements and the BOM data structure are each a table in the relational data structure, and wherein the element identifier is a single field in the table of the list of elements forming a primary key for the table of the list of elements.

### Claim 42

A method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user being associated with an entity,
such that the database may contain BOMS having different owners,
wherein the database further includes a list of owners in the set of owners, each owner having an entry including a unique owner identifier in the list of owners.

### Claim 43 (depends on 42)

A method as recited in claim 42, wherein at least one owner is associated with one or more respective workspaces, each workspace containing data of the database that is associated with the workspace owner, wherein the database is arranged such that each BOM may belong to a workspace, and wherein each BOM data structure entry includes an indication of the workspace of the BOM.

### Claim 44 (depends on 43)

A method as recited in claim 43, wherein the database includes, for each workspace, a private list of elements associated with the owner of the workspace.

### Claim 45 (depends on 42)

A method as recited in claim 42, wherein the database is arranged such that the database may contain information confidential to one or more of the owners, the method further comprising:
limiting access to any confidential data in the database associated with an owner to the owner of the confidential data and to any designate(s) of the owner of the confidential data.

### Claim 46 (depends on 42)

A method as recited in claim 42, wherein the element list includes an indication of the owner for each element that has an owner.

### Claim 47 (depends on 46)

A method as recited in claim 46, wherein the indication of the owner is used to limit unrestricted access to one or more particular elements of the element list to respective owners of the particular elements and to any designate(s) of the owners of the particular elements.

### Claim 48 (depends on 42)

A method as recited in claim 42, wherein the database further includes a list of users, each user having an entry in the list of users that includes a unique user identifier in the list of users, each user possibly being associated one or more of the owners.

### Claim 49 (depends on 48)

A method as recited in claim 48, wherein a particular owner may set different levels of access to information in the database associated with the particular owner to each user associated with the particular owner.

### Claim 50 (depends on 48)

A method as recited in claim 48, wherein each entry for a user further includes a function of a user password, the method further comprising:
accepting a user password provided by a user;
identifying the user using said password; and
providing access according to successfully identifying the user as one in the list of users and providing access according to the identity of one or more of the owners associated with the identified user in the case that the identified user is associated with at least owner.

### Claim 51 (depends on 42)

A method as recited in claim 42, wherein at least one owner is associated with one or more respective workspaces, each workspace containing data of the database that is associated with the workspace owner, wherein each BOM may belong to a workspace, and wherein each BOM data structure entry includes an indication of the workspace of the BOM.

### Claim 52 (depends on 51)

A method as recited in claim 51, wherein each element in a private list of elements includes a reference to a corresponding element in the list of elements, such that the list of elements includes the elements in any private lists of elements, and elements that are in one or more BOMs that are associated with different owners.

### Claim 53 (depends on 51)

A method as recited in claim 51,
wherein each element in a private list of elements includes a unique identifier within the private list of elements and a reference to a corresponding element in the list of elements,
such that two elements in two different private lists of elements that refer to the same one element in the list of elements may each have a different unique identifier in the respective private lists.

### Claim 54 (depends on 42)

A method as recited in claim 42, wherein the database includes a list of vendors to provide data related to vendors for one or more elements of the element list.

### Claim 55 (depends on 54)

A method as recited in claim 54, wherein the database includes a vendor element relations list that includes data relating one or more elements of the element list to one or more corresponding vendors of the vendor list such that the vendor element relations list provides the sourcing relationship between an element in the element list and a vendor in the of vendor list.

### Claim 56 (depends on 55)

A method as recited in claim 55, wherein the vendor element relations list further includes information about the quantity of each element that the vendor of the element can supply.

### Claim 57 (depends on 55)

A method as recited in claim 55, wherein no users, or one or more users are associated with a vendor in the vendor list, the method further including:
providing to a particular user associated with a particular vendor access to information about an element in the element list that is sourced by the particular vendor.

### Claim 58 (depends on 57)

A method as recited in claim 57, wherein the level of access provided to the particular user associated with the particular vendor is set by the owner associated with the particular element.

### Claim 59 (depends on 54)

A method as recited in claim 54, wherein the vendor list includes for one or more of the vendors, vendor identification data including one or more of a vendor name, vendor contact information, and a vendor identification number.

### Claim 60 (depends on 54)

A method as recited in claim 54, wherein the database includes a vendor transaction history for one or more of the vendors.

### Claim 61 (depends on 54)

A method as recited in claim 54, further comprising:
rating one or more of the vendors in the vendor list.

### Claim 62

A computer-readable storage medium configured with computer-readable code that when executed by one or more processors of a processing system cause carrying out a method for managing a plurality of bills of material (BOMs), the method comprising:
storing the plurality of BOMs in a local or distributed database, each BOM describable as a tree with each node an element, each BOM associated with an owner of a set of owners and each element in each BOM associated with an owner of the set of owners, such that BOMs associated with different owners are stored in the same database, the storing including storing one or more data structures in the database configured to store the plurality of BOMs; and
providing unrestricted access to confidential information in a particular stored BOM only to the owner associated with the particular BOM and to any designate of the owner; and
providing access to the stored BOMs to one or more users, each user being associated with an entity,
wherein a role of a set of roles is assigned to one or more users for a particular element of a particular BOM, each role having an associated set of rules that define access privileges for a role-holding user for the particular element, and
such that the assigned role for a user for an element automatically defines the access privilege that the role-holding-user has to the element.

### Claim 63 (depends on 62)

A computer-readable storage medium as recited in claim 62, wherein the role assigned to a user is one of a set of roles of a supply chain.

### Claim 64 (depends on 63)

A computer-readable storage medium as recited in claim 63, wherein the roles of the supply chain include one or more of the set that includes:
the role of employee, assigned to any user that is associated with the owner of the element;
the role of partner for any user that is associated with an entity other than the owner;
the role of supplier of a BOM element for a user that is associated with an entity that has a sourcing relationship for the element; and
the role of contract manufacturer for any user that is associated with an entity that has a contract manufacturer relationship for the element.

### Claim 65 (depends on 64)

A computer-readable storage medium as recited in claim 64, wherein a contact manufacturing relationship is a type of sourcing relationship.

### Claim 66 (depends on 64)

A computer-readable storage medium as recited in claim 64, wherein the set includes:
the role of customer for any user who is associated with an entity that has a customer relationship for the element.

### Claim 67 (depends on 62)

A computer-readable storage medium as recited in claim 62, arranged to automatically generate for each user a view of data matched to the role the user has to the data.

### Claim 68 (depends on 67)

A computer-readable storage medium as recited in claim 67, wherein a change made by a first user having a first role of a supply chain of roles is propagated through the supply chain of roles,
such that as a result of the first user having the first role to an element of a BOM making a change of an aspect of the element of the BOM, the view of the BOM presented to a second user having second role of the supply chain to the element is automatically updated to reflect the change.

### Claim 69 (depends on 62)

A computer-readable storage medium as recited in claim 62, wherein the one or more data structures in the database configured to store the plurality of BOMs are arranged to allow a BOM element belonging to a first entity to be linked to a second BOM element belonging to a second entity, and further to allow a BOM element owned by a third entity to be shared as an element in another BOM owned by another entity different to the third entity,
wherein by linking and sharing of data in BOMS amongst entities that have different roles to the data, information is cascade through a supply chain for an item.

### Claim 70 (depends on 62)

A computer-readable storage medium as recited in claim 62, wherein a change made by a first user having a first role of a supply chain of roles is propagated through the supply chain of roles.

### Claim 71 (depends on 62)

A computer-readable storage medium as recited in claim 62, wherein each user is associated with one or more entities,
wherein each entity may have a relationship of a set of relationships to an element, and
wherein the role assigned to a user is according to the entity with which the user is associated, and according to the relationship the associated entity has with the element.

### Claim 72 (depends on 71)

A computer-readable storage medium as recited in claim 71, wherein one or the set of relationships is a sourcing relationship, such that a user associated with an entity that has a sourcing relationship with an element has a role of a supplier for that element.

### Claim 73

A computer-readable storage medium configured with computer-readable code that when executed by one or more processors of a processing system cause carrying out a method, the method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more elements of the list of elements being for inclusion in one or more of a plurality of bills of material (BOMs);
a list of entities; and
one or more data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements, elements of at least two of the BOMs associated with respective owners of a set of owners, the set of owners being in the list of entities, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users associated with one or more entities,
such that the database may contain two BOMS associated with two different owners,
wherein at least one of the BOMs includes confidential information of the owner of the BOM, such that access to the confidential information in the BOM is limited to the owner and to any entities designated by the owner of the BOM,
wherein database is arranged such that an entity may be designated a role for a particular element in a BOM,
wherein access privileges for an entity for accessing confidential information for a particular element is automatically defined by the role designated to the entity,
such that the role designated for a particular entity automatically defines access privileges for any user associated with the particular entity for the particular element.

### Claim 74 (depends on 73)

A computer-readable storage medium as recited in claim 73, wherein one or more elements in the element list are associated with a respective owner of the set of owners, and wherein the list of elements includes an indication of ownership for each element associated with one of the owners, the method further comprising:
restricting access to information about a particular element in the element list that is associated with a particular owner to the particular owner and to at least one entity designated of the particular owner, the restricting of access to a designate including assigning a role for the designate, each role having an associated set of rules that define the type of access a user associated with the designate has for the element,
such that the role assigned to a particular entity for a particular element of a BOM automatically defines access privileges for any user associated with the particular entity for the particular element.

### Claim 75

A computer-readable storage medium configured with computer-readable code that when executed by one or more processors of a processing system cause carrying out a method, the method comprising:
storing a database in a processing system, the database including:
a list of elements, each element having a unique identifier, one or more of the elements being for inclusion in at least one bill of materials (BOM) of a plurality of bills of material (BOMs); and
one or more BOM data structures for storing the plurality of BOMs, each BOM describable as a tree with each node an element of the list of elements and each branch of the tree defining a parent-child relationship, the one or more BOM data structures storing information on the parent-child relationships of the plurality of BOMs, two or more of the BOMs being associated with a respective owner of the set of owners, and
providing remote access to one or more elements of information in the database to one or more users, each user being associated with an entity,
such that the database may contain BOMS having different owners,
wherein the database includes confidential information of at least two of the owners such that unrestricted access to the confidential information is limited to the respective owner and to any designate(s) of the owner,
wherein each BOM data structure is for storing the parent-child relationships for at least one BOM of the plurality of BOMs, and wherein a BOM data structure includes, for a particular BOM, an entry for each element in the particular BOM, said element entry including a reference to the element's entry in the list of elements, an entry indicating the owner, and an entry indicating any child of the element in the case the element has a child in the tree representing the particular BOM.

### Claim 76 (depends on 75)

A computer-readable storage medium as recited in claim 75, wherein the parent child relationships for all the BOMS are stored in a single BOM data structure.

### Claim 77

A system for managing a plurality of bills of material (BOMs) comprising:
means for storing the plurality of BOMs in local or distributed database, each BOM describable as a tree with each node an element, each BOM associated with an owner of a set of owners and each element in each BOM associated with an owner of the set of owners, such that BOMs associated with different owners are stored in the same database, the storing including storing one or more data structures in the database configured to store the plurality of BOMs; and
means for providing unrestricted access to confidential information in a particular stored BOM only to the owner associated with the particular BOM and to any designate of the owner; and
means for providing access to the stored BOMs to one or more users, each user being associated with an entity,
wherein a role of a set of roles is assigned to one or more users for a particular element of a particular BOM, each role having an associated set of rules that define access privileges for a role-holding user for the particular element, and
such that the assigned role for a user for an element automatically defines the access privilege that the role-holding-user has to the element.

### Claim 78 (depends on 77)

A system as recited in claim 77,
wherein the role assigned to a user is one of a set of roles of a supply chain.

### Claim 79 (depends on 78)

A system as recited in claim 78, wherein the roles of the supply chain include one or more of the set that includes:
the role of employee, assigned to any user that is associated with the owner of the element;
the role of partner for any user that is associated with an entity other than the owner;
the role of supplier of a BOM element for a user that is associated with an entity that has a sourcing relationship for the element; and
the role of contract manufacturer for any user that is associated with an entity that has a contract manufacturer relationship for the element.

### Claim 80 (depends on 79)

A system as recited in claim 79, wherein the set includes:
the role of customer for any user who is associated with an entity that has a customer relationship for the element.

### Claim 81 (depends on 77)

A system as recited in claim 77, arranged to automatically generate for each user a view of data matched to the role the user has to the data.

### Claim 82 (depends on 77)

A system as recited in claim 77, wherein the one or more data structures in the database configured to store the plurality of BOMs are arranged to allow a BOM element belonging to a first entity to be linked to a second BOM element belonging to a second entity, and further to allow a BOM element owned by a third entity to be shared as an element in another BOM owned by another entity different to the third entity,
wherein by linking and sharing of data in BOMS amongst entities that have different roles to the data, information is cascade through a supply chain for an item.

### Claim 83 (depends on 77)

A system as recited in claim 77, wherein a change made by a first user having a first role of a supply chain of roles is propagated through the supply chain of roles.

### Claim 84 (depends on 77)

A system as recited in claim 77, wherein one of the roles is that of a supplier, wherein the means for managing a plurality of bills of material (BOMs) further comprises:
means for storing a list of elements in the database, each element in the list of elements having a unique element identifier, each element in each BOM being one of the elements in the list of elements;
means for storing a set of entities in the database;
means for storing a set of sourcing relationships between an element in the list of elements and an entity in the list of entities, such that a sourcing relationship is defined for at least some of the elements in the list of elements, said entity being the supplier for the at least some of the elements,
such that a user who is associated with the supplier is automatically assigned the role of a supplier, with access privileges pre-defined for a supplier for the at least some of the elements, without the role of supplier needing to be explicitly assigned to the user.
