Patentable/Patents/US-6314555
US-6314555

Software system generation

PublishedNovember 6, 2001
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A system for building collaborative software agents is provided with a set of editors for capturing data for installation in the individual agents. The collaborative software agents will normally form a community, including some standard agents, provided by the system, and will collaborate to provide functionality in a domain selected by the user. Each collaborative software agent built by the system is provided with co-ordination policies, selected by the user, and represented by a co-ordination graph. A single collaborative software agent can be provided with more than one collaborative policy and is capable of running more than one collaborative policy simultaneously with different agents of the system. An exception handler flags an exception during use of the collaborative agents in the relevant domain when the value of a variable for an agent conflicts with a relevant constraint. Alternatively, the exception handler flags an exception when the resource and time constraints cannot be met by allocation of tasks between the collaborative agents. Communities of software agents built within a system might be used to launch and/or manage telecommunications services or to control a chemical process, for example.

Patent Claims
40 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. Software building apparatus for building a software system for use in control, monitoring and/or management of a process or apparatus, said apparatus comprising: i) at least one software module, ii) means for capturing data for loading to at least two copies of said module, the loaded modules each comprising a collaborative agent for use in said software system, iii) means for loading, or providing access to, at least two different collaboration strategies to at least one of said copies of said loaded module, for use by the respective collaborative software agent in use of the software system such that its collaboration behavior in the system is flexible, and iv) means for generating the software system comprising the collaborative software agents of ii) and iii) above.

2

2. Apparatus as in claim 1 wherein at least two of said loaded software modules hold different data determined by different entities represented by said modules.

3

3. Apparatus as in claim 1 wherein said at least one collaborative software agent has at least two different collaboration strategies and is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least the two different strategies effectively in parallel.

4

4. An exception handler for use in apparatus as in claim 1 wherein the data to be loaded to at least one copy of a module includes task definition data, defining resources and other variables of tasks to be distributed between multiple loaded copies of software modules for use in said software system, wherein said task definitions include one or more constraints on one or more variables and the exception handler flags an exception when a variable conflicts with a relevant constraint during use of the system.

5

5. An exception handler for use in apparatus as in claim 1 wherein the data to be loaded to at least one copy of a module includes scheduling data for tasks, defining resource and time constraints in relation to a task, and the exception handler flags an exception when the resource and time constraints cannot be met by allocation of tasks between the software modules.

6

6. Software building apparatus as in claim 1, wherein the software module comprises a collaboration engine for running a collaboration strategy in use of a collaborative software agent comprising a loaded copy of said module.

7

7. Software building apparatus as in claim 6 wherein a collaboration strategy comprises a graph description.

8

8. Software building apparatus as in claim 7 wherein the graph description describes a set of states, identified by nodes, and a set for arcs for traversing between specified states, each node and each arc identifying at least one process.

9

9. Software building apparatus as in claim 8 wherein at least one arc identifies a graph description.

10

10. Software building apparatus as in claim 8 wherein the collaboration engine is adapted to run a collaboration strategy, in use of the software system, by selecting a first node of the associated graph description, instantiating and running a process identified by the node, instantiating and running a process identified by an arc associated with the node, thereby traversing to a second node, and repeating the process until the end of the graph description.

11

11. Software building apparatus as in claim 10 wherein: the at least one collaborative software agent having at least two different collaboration strategies is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least two different strategies effectively in parallel, the collaboration engine being adapted to run the collaboration strategies by selecting a node from each of the strategies, instantiating and running processes identified by all the selected nodes, then traversing to a next node from each of the strategies and instantiating and running processes identified by all the next nodes, repeating the process until the end of each graph description associated with a collaboration strategy being run in parallel.

12

12. A software system for use in control, monitoring and/or management of a process or apparatus, wherein said system comprises at least two software modules, each module comprising data and/or process information which comprises: (i) organisation data concerning an inter-module relationship; (ii) executable software providing at least two intermodule collaboration strategies; and wherein, in use, a module selects at least one of said strategies for use in negotiating with another software module in relation to task allocation, such that its collaboration behaved in the system is flexible, said selection being determined at least in part by said organisation data.

13

13. A software system as in claim 12, wherein at least two of said software modules hold different data, determined by different entities represented by said modules.

14

14. A software system as in claim 12 wherein at least one module, comprising executable software providing at least two different collaboration strategies, is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least two different strategies effectively in parallel.

15

15. A software system as in claim 12, wherein each module comprises a collaboration engine for running a collaboration strategy in use of the system.

16

16. A software system as in claim 12 wherein a collaboration strategy comprises a graph description.

17

17. A software system as in claim 16 wherein the graph description describes a set of states, identified by nodes, and a set for arcs for traversing between specified states, each node and each arc identifying at least one process.

18

18. A software system as in claim 17 wherein at least one arc identifies a graph description.

19

19. A software system as in claim 17 wherein the collaboration engine is adapted to run a collaboration strategy, in use of the software system, by selecting a first node of the associated graph description, instantiating and running a process identified by the node, instantiating and running a process identified by an arc associated with the node, thereby traversing to a second node, and repeating the process until the end of the graph description.

20

20. A software system as in claim 19 wherein: at least one module, comprising executable software providing at least two different collaboration strategies, is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least two different strategies effectively in parallel, the collaboration engine of the at least one module being adapted to run the collaboration strategies by selecting a node from each of the strategies, instantiating and running processes identified by all the selected nodes, then traversing to a next node from each of the strategies and instantiating and running processes identified by all the next nodes, repeating the process until the end of each graph description associated with a collaboration strategy being run in parallel.

21

21. A method for building a software system for use in control, monitoring and/or management of a process or apparatus, said method comprising: i) capturing data for loading to at least two copies of a software module, the loaded modules each comprising a collaborative agent for use in said software system, ii) loading, or providing access to, at least two different collaboration strategies to at least one of said loaded copies of said module, for use by the respective collaborative software agent in use of the software system such that its behavior in the system is flexible, and iii) generating the software system comprising the collaborative software agents of i) and ii) above.

22

22. A method as in claim 21 wherein at least two of said loaded software modules hold different data determined by different entities represented by said modules.

23

23. A method as in claim 21 wherein said at least one collaborative software agent has at least two different collaboration strategies and is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least the two different strategies effectively in parallel.

24

24. An exception handler method for use in a software building method as in claim 21 wherein the data to be loaded to at least one copy of a module includes task definition data, defining resources and other variables of tasks to be distributed between multiple loaded copies of software modules for use in said software system, wherein said task definitions include one or more constraints on one or more variables and the exception handler flags an exception when a variable conflicts with a relevant constraint during use of the system.

25

25. An exception handler method for use in a software building system as in claim 21 wherein the data to be loaded to at least one copy of a module includes scheduling data for tasks, defining resource and time constraints in relation to a task, and the exception handler flags an exception when the resource and time constraints cannot be met by allocation of tasks between the software modules.

26

26. A method as in claim 21 wherein the software module comprises a collaboration engine for running a collaboration strategy in use of a collaborative software agent comprising a loaded copy of said module.

27

27. A method as in claim 26 wherein a collaboration strategy comprises a graph description.

28

28. A method as in claim 27 wherein the graph description describes a set of states, identified by nodes, and a set for arcs for traversing between specified states, each node and each are arc identifying at least one process.

29

29. A method as in claim 28 wherein at least one arc identifies a graph description.

30

30. A method as in claim 28 wherein the collaboration engine is adapted to run a collaboration strategy, in use of the software system, by selecting a first node of the associated graph description, instantiating and running a process identified by the node, instantiating and running a process identified by an arc associated with the node, thereby traversing to a second node, and repeating the process until the end of the graph description.

31

31. A method as in claim 30 wherein: the at least one collaborative software agent having at least two different collaboration strategies is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least the two different strategies effectively in parallel, the collaboration engine being adapted to run the collaboration strategies by selecting a node from each of the strategies, instantiating and running processes identified by all the selected nodes, then traversing to a next node from each of the strategies and instantiating and running processes identified by all the next nodes, repeating the process until the end of each graph description associated with a collaboration strategy being run in parallel.

32

32. A method for using software in control, monitoring and/or management of a process or apparatus, wherein said method uses at least two software modules, each module comprising data and/or process information which comprises: (i) organization data concerning an inter-module relationship; and (ii) executable software providing at least two inter-module collaboration strategies; wherein, in use, a module selects at least one of said inter-module collaboration strategies for use in negotiating with another software module in relation to task allocation such that its collaboration behavior in the system is flexible, said selection being determined at least in part by said organization data.

33

33. A method as in claim 32, wherein at least two of said software modules hold different data, determined by different entities represented by said modules.

34

34. A method as in claim 32 wherein at least one module, comprising executable software providing at least two different collaboration strategies, is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least the two different strategies effectively in parallel.

35

35. A method as in claim 32, wherein each module comprises a collaboration engine for running a collaboration strategy in use of the system.

36

36. A method as in claim 32 wherein a collaboration strategy comprises a graph description.

37

37. A method as in claim 36 wherein the graph description describes a set of states, identified by nodes, and a set for arcs for traversing between specified states, each node and each arc identifying at least one process.

38

38. A method as in claim 37 wherein at least one arc identifies a graph description.

39

39. A method as in claim 37 wherein the collaboration engine is adapted to run a collaboration strategy, in use of the software system, by selecting a first node of the associated graph description, instantiating and running a process identified by the node, instantiating and running a process identified by an arc associated with the node, thereby traversing to a second node, and repeating the process until the end of the graph description.

40

40. A method as in claim 39 wherein: at least one module, comprising executable software providing at least two different collaboration strategies, is capable of operating according to more than one collaboration strategy over the same time period, such that it operates according to at least tie two different strategies effectively in parallel, the collaboration engine of the at least one module being adapted to run the collaboration strategies by selecting a node from each of the strategies, instantiating and running processes identified by all the selected nodes, then traversing to a next node from each of the strategies and instantiating and running processes identified by all the next nodes, repeating the process until the end of each graph description associated with a collaboration strategy being run in parallel.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

August 25, 1998

Publication Date

November 6, 2001

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Software system generation” (US-6314555). https://patentable.app/patents/US-6314555

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.