WO2006096934A1 - A system, apparatuses, methods and a computer program for facilitating sharing of electronic information - Google Patents

A system, apparatuses, methods and a computer program for facilitating sharing of electronic information Download PDF

Info

Publication number
WO2006096934A1
WO2006096934A1 PCT/AU2006/000360 AU2006000360W WO2006096934A1 WO 2006096934 A1 WO2006096934 A1 WO 2006096934A1 AU 2006000360 W AU2006000360 W AU 2006000360W WO 2006096934 A1 WO2006096934 A1 WO 2006096934A1
Authority
WO
WIPO (PCT)
Prior art keywords
instance
frame
notification
instance frame
issuing
Prior art date
Application number
PCT/AU2006/000360
Other languages
French (fr)
Inventor
Claude Anthony Sammut
Mohammed Waleed Kadous
Original Assignee
Smart Internet Technology Crc Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2005901373A external-priority patent/AU2005901373A0/en
Application filed by Smart Internet Technology Crc Pty Ltd filed Critical Smart Internet Technology Crc Pty Ltd
Publication of WO2006096934A1 publication Critical patent/WO2006096934A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Definitions

  • the present invention relates generally to the field of sharing electronic information (data) in a computer system.
  • a distributed application is typically made-up of numerous distinct components that perform a specific task on a piece of data and, once the specific task is performed, a distinct component passes the piece of data onto another distinct component (that is, the components share the data with each other) for further processing.
  • a particular component of the distributed application may be responsible for extracting user data from a data packet. Once the particular component has extracted the user data it can pass the user data on to another component (that is, share the data) that processes the user data to format and present the user data on a computer monitor.
  • Frames is a knowledge representation technique which resembles an extended form of record (as in Pascal and Modula-2) or struct (using C terminology) or class (in Java) .
  • the resemblance stems from the fact frames have a number of slots, which are similar to fields in a record or struct, or variable in a class.
  • a struct, or class it is possible to add slots to a frame dynamically (while the program is executing) and the contents of the slot need not be a simple value.
  • the frame system may use a default value.
  • Generic frame serves as a template for building instance frames.
  • a generic frame could describe an elephant in general giving defaults for various elephant features (number of legs, ears, colour and size) .
  • a generic frame may also inherit slots from other generic frames of which they are a sub concept .
  • Instance frame describes a specific instance of a generic frame. For example, an instance frame of the previously described 'elephant' generic frame could describe a specific elephant named "Dumbo", who might have a missing tusk and who would thus have the default slot for the number of tusks overridden to indicate that Dumbo has only one tusk. An instance frame inherits its slots from the relevant generic frame .
  • a system for signalling an existence of an instance comprising a processing part that is operable to perform the steps of: receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance .
  • the system has an advantage of facilitating the effective sharing of information (that is, the instance frame) .
  • the system facilitates effective sharing of information by enabling the process to specify the type (or generic frame) of information it wishes to receive. Furthermore, issuing the process with the notification essentially informs the process about the existence of the information so that it may take the necessary steps to obtain the information.
  • Another advantage of the system is that the use of the instance frame links enables agents, which share information via the blackboard, to be quickly and easily developed using frame based programming languages .
  • the processing part is operable to perform the steps of: retrieving the instance frame from the data storage entity in response to an information request being issued by the process; and issuing the process with the instance frame subsequent to retrieving the instance frame from the data storage entity.
  • the steps of retrieving the instance frame and issuing the process with the instance frame provide an advantage of enabling information (the instance frame) to be shared in a relatively straightforward manner.
  • the processing part is operable to perform the step of utilising a data communication transport service in order to: receive the instance frame, the notification request, and the information request; and issue the notification, and to issue the process with the instance frame .
  • the processing part is operable to perform the step of assessing whether the process is authorised to access the instance frame so as to determine whether the step of issuing the process with the notification and/or the step of issuing the process with the instance frame should be performed.
  • Assessing whether the process is authorised to access the instance frame provides the advantage of enabling a level of control to be exerted over the ability of the process to gain access to the instance frame.
  • the association with the instance frame comprises: the first generic frame corresponding to a second generic frame on which the instance frame is based; or the first generic frame corresponding to a third generic frame from which the second generic frame inherits a slot.
  • the first instance frame comprises: a first slot for representing a time at which the instance frame was created; and a second slot for identifying an entity that created the instance frame .
  • the processing part is operable to perform the steps of : assigning the instance frame a name,- and setting the notification such that it identifies the name.
  • the data storage entity comprises a plurality of blackboards each of which is associated with a different user of the system.
  • the process is operable to facilitate a transfer of the instance frame from a first of the blackboards to a second of the blackboards .
  • An advantage of having the process perform the transfer is that it allows the blackboards to easily exchange information and communicate with each other.
  • a method of signalling an existence of an instance comprising the steps of: receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance.
  • the method comprises the steps of: retrieving the instance frame from the data storage entity in response to an information request being issued by the process; and issuing the process with the instance frame subsequent to retrieving the instance frame from the data storage entity.
  • the method comprises the step of utilising a data communication transport service in order to: receive the instance frame, the notification request, and the information request; and issue the notification, and to issue the process with the instance frame.
  • the method comprises the step of assessing whether the process is authorised to access the instance frame so as to determine whether the step of issuing the process with the notification and/or the step of issuing the process with the instance frame should be performed.
  • the association with the object comprises : the first generic frame class corresponding to a second generic frame from which the instance frame is based; or the first generic frame corresponding to a third generic frame on which the second generic frame inherits a slot.
  • the instance frame comprises: a first slot for representing a time at which the instance frame was created; and a second slot for identifying an entity that created the instance frame .
  • the method comprises the steps of: assigning the instance frame a name; and setting the notification such that it identifies the name .
  • the data storage entity comprises a plurality of blackboards each of which is associated with a different user of the system.
  • the process is operable to facilitate a transfer of the instance frame from a first of the blackboards to a second of the blackboards .
  • an apparatus for issuing an instance comprising a processing component that is operable to perform the step of issuing the system according to the first aspect of the present invention with the instance frame, to thereby issue the instance.
  • the processing component is operable to perform the step of utilising the data communication transport service in order to issue the system with the instance frame .
  • a method of issuing an instance comprising the step of issuing the system according to the first aspect of the present invention with the instance frame, to thereby issue the instance.
  • the method comprises the step of utilising the data communication transport service in order to issue the system with the instance frame.
  • an apparatus for being notified about an instance comprising a processing component that is operable to perform the steps of: issuing the system according to the first aspect of the present invention with the notification request / and receiving from the system the notification regarding the instance frame, thereby being notified about the instance .
  • the processing component is operable to perform the step of receiving the instance frame from the system.
  • the processing component is operable to perform the step of utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame.
  • a method of being notified about an instance comprising the steps of: issuing the system according to the first aspect of the present invention with the notification request; and receiving from the system the notification regarding the instance frame, thereby being notified about the instance .
  • the method comprises the step of receiving the instance frame from the system.
  • the method comprises the step of utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame.
  • a computer program comprising at least one instruction, which when executed by a computing device causes the computing device to perform the method according to the second aspect, fourth aspect, or sixth aspect of the present invention.
  • a computer readable medium comprising the computer program according to the seventh aspect of the present invention.
  • figure 1 is a schematic diagram of a system in accordance with an embodiment of the present invention.
  • figure 2 is a schematic diagram of various components of the system depicted in figure 1;
  • figure 3 is an exemplary representation of information that is shared in the system depicted in figure
  • figure 4 is a schematic diagram of an inter- blackboard architecture used in the system depicted in figure 1;
  • figure 5 provides a flow chart that sets out various steps performed by the system of figure 1;
  • figure 6 provides another flow chart that sets out some steps performed by the system of figure 1;
  • figure 7 provides another flow chart that sets out the steps performed by the system of figure 1.
  • a system 100 comprises a computer system 102, one or more personal computing devices 104, and a communication network 106.
  • the computer system 102 and the computing devices 104 are connected to the communication network 106 via respective data communication links 108.
  • the computer system 102 is in the form of a computer server and comprises traditional computer hardware such as a motherboard, random access memory, a hard disk, a network interface card, and a power supply.
  • the hard disk of the computer system 102 is loaded with an operating system in the form of Microsoft Server 2003. Persons skilled in the art will appreciate that the hard disk of the computer system 102 can be loaded with a different operating system (such as Linux) in an alternative embodiment of the present invention.
  • the hard disk of the computer system 102 is also loaded with a piece of software that facilitates sharing of information (data) amongst the personal computing ' devices 104.
  • the computer system 102 also comprises a specialised data storage entity that is based on a blackboard architecture.
  • the data storage entity can be considered a form of shared memory. However because it is based on a blackboard architecture the data storage entity can have its data storage ⁇ space' divided into separate regions, each of which may, or may not, be accessible to each of the personal computing devices 104. Further information on the blackboard architecture can be found in the paper entitled "The Hearsay-II speech-understanding system: Integrating knowledge to resolve uncertainty", which was published in the ACM Computing Surveys Vol. 12, No. 2 pp. 213-253 and is authored by L. D. Erman, F. Hayes- Roth, V. R Lesser and D. R. Reddy.
  • the specialised data storage entity is in the form of software loaded on the hard disk of the computer system 102.
  • the personal computing devices 104 are heterogeneous and can include, for example, a personal desktop computer, a personal digital assistant or a laptop computer. However, as persons skilled in the art will readily appreciate the personal computing devices 104 could all be the same in an alternative embodiment of the present invention.
  • Each personal computing device 104 comprises traditional computing hardware such as processing hardware (for example, a motherboard) , a visual display (for example, a LCD) , a user input device (for example, a keyboard) , random access memory, a permanent data storage device (for example, a hard disk) , a network interface, and a power supply.
  • Each computing device 104 is loaded with Microsoft XP operating system, which typically resides on the permanent data storage device.
  • each computing device 104 can be loaded with a different operating system (such as Linux) in an alternative embodiment of the present invention.
  • operating system such as Linux
  • each computing device 104 is loaded with one or more pieces of software (which reside on the permanent data storage device) that basically facilitates the sharing of information amongst the personal computing devices 104.
  • the pieces of software loaded on each of the personal computing devices 104 can broadly be classified in to one of two types; that is, an interaction agent, which conveys information to and from a user of the relevant personal computing device 104, such as a graphical user interface or proxies for telephone conversations and devices in the environment; or a computational agent that provides services such as speech recognition, web access and e-mail.
  • an interaction agent which conveys information to and from a user of the relevant personal computing device 104, such as a graphical user interface or proxies for telephone conversations and devices in the environment
  • a computational agent that provides services such as speech recognition, web access and e-mail.
  • the communication network 106 is in the form of a public access packet switched network in the form of the Internet. Consequently, persons skilled in the art will readily appreciate that the communication network 106 comprises a plurality of interconnected routers/data switches (not shown in the figures) that support the Internet Protocol (IP) suite of data communication standards.
  • IP Internet Protocol
  • Figure 2 provides a schematic diagram of the various functional components in the system 100.
  • Agent 1 202 represents the piece of software loaded on one of the personal computing devices 104a
  • Agent 2 represent the piece of software loaded on another of the personal computing devices 104b
  • the "transport medium” 206 represents the communication network 106
  • the "Blackboard” 208 represents the data storage entity of the computer system 102.
  • the "Agent Transport” components 210 and 212 essentially represent a communication mechanism (interface) that interacts with the communication network 106 so that the personal computing devices 104 and the computer system 102 can exchange data between each other.
  • figure 2 shows only a single "blackboard” 208; however, it is envisaged that the data storage entity of the computer system 102 would actually comprise a plurality of blackboards 208.
  • This description refers only to a single blackboard 208 in order to aid the reader's understanding of the system 100.
  • each of the blackboards 208 is associated with a different user of the system 100.
  • Each blackboard 208 effectively represents a storage space for information relevant to the associated user.
  • the arrows in figure 2 represent flows of requests; for example, a request that an instance frame 300 (an example of which is shown in figure 3) be written to the blackboard 208, or that an agent 202 and 204 be informed when an instance frames 300 of a particular generic frame (type) are written to the blackboard 208.
  • the agents 202 and 204 are basically the pieces of software loaded on computing devices 104. Agents 202 and 204 and the blackboard 208 do not communicate directly, but through a respective transport layer 210, 212 and 214. This allows implementations of the present invention to use different transport layers.
  • some possible transport layers include: local function calls, XML over a TCP/IP connection, or ASCII messages over Bluetooth.
  • the XML over TCP/IP is used because the communication network 106 is in the form of the Internet, which persons skilled in the art will readily appreciate as being based on the Internet Protocol packet switching technology.
  • a pair of transport mechanisms - an agent transport 210 and 212 and a blackboard transport 214 - need to be developed.
  • Agents 202 and 204 typically talk to the Agent Transport layer 210 and 212 through method calls or callbacks (rather than network connections) , depending on the language; similarly for the blackboard 208. This gives flexibility in the domains that the embodiment of the present invention can be applied to; and allows developers to write agents 202 and 204 that do not need to be aware of the underlying transport layer.
  • Agent 1 202 writes an instance frame 300 to the blackboard 208, which is of a line generic frame.
  • Agent 2 204 has registered for any instance frames 300 whose generic frame is line. Agent 1 202 would tell its transport agent 212 to transport an instance frame 300 to the blackboard 208. Agent 2 204 would then be informed of the new instance frame 300, assuming the instance frame 300 is of the generic frame, line.
  • Agent 1 202 nor Agent 2 204 are explicitly aware of one another and that different agents 202 and 204 can register for generic frames of a given type. If six agents were registered for the generic frame line, then all six of the agents would be informed.
  • the arrows are "two way" arrows. At times the blackboard 208 will initiate communication with agents 202 and 204. This may occur, for example, when an instance frame 300 is deleted from the blackboard 208.
  • Instance frames 300 are the basic unit of information shared in the system 100. Instance frames 300 are the items that agents 202 and 204 actually read and write from the blackboard 208.
  • the instance frames 300 used in the system 100 are similar to objects in an object-oriented framework. Each instance frame 300 has a generic frame (type) defined by the user - similar to a class in an object-oriented language.
  • the instance frames 300 have slots, which are similar to fields in object- oriented programming - each slot has a name and one or more values.
  • An example of a typical instance frame 300 used in the system 100 is shown in figure 3 - Its name is line-103 and it has a generic frame (type) of line.
  • the system 100 supports multiple inheritance: a generic frame (type) can have several 'parent' generic frames. Unlike languages such as Smalltalk where each object can have multiple classes a single instance frame 300 in the system 100 can only have one generic frame.
  • mob there is a universal superframe, called mob. Every instance frame 300 is assumed to inherit from mob.
  • the blackboard 208 also creates two slots, each with a single value: creationTime, the time at which the instance frame 300 was created; and creator, that is the agent 202 or 204 that created a particular instance frame 300.
  • the registration system heeds inheritance; if an agent 202 and 204 registers for a given generic frame 300, the agent 202 and 204 is informed if any subordinate generic frame 300 is also written to the blackboard 208.
  • This is an extremely useful feature. For example, to write a debugger agent that displays everything on the blackboard 208 an agent 204 or 208 (debugger) need only register for instance frames 300 of generic frame mob and it will be informed of any instance frame 300 written to the blackboard 208.
  • nyms which is effectively a piece of data
  • a nym is an aspect of the user's identity that the user wishes to reveal and represents a spectrum of access rights.
  • the user is a user of a personal computing device 104.
  • anonymity means that minimal details of the user are to be disclosed, whereas verynymity is certainty of the user's identity.
  • a user will have multiple nyms, depending on the type of information the user wishes to disclose (share) .
  • an agent 202 or 204 connects, it is associated with a nym.
  • a nym is authenticated using standard public-key encryption systems; by means of a challenge from the computer system 102 to the personal computing device 104.
  • Several agents 202 and 204 with the same nym can connect at once .
  • the nyms are used to control visibility of instance frames 300 in the blackboard 208.
  • the core of this idea is to realise that not every agent 202 and 204 need see the same information on the blackboard 208; and generally, each nym sees a different version of the blackboard 208.
  • Agents 202 and 204 are not informed when an instance frame 300 they are not supposed to see is written to the blackboard 208, and similarly, should they do a query, only the instance frames 300 they are supposed to see are returned.
  • the visibility of instance frames 300 in the blackboard 208 is governed by a security policy.
  • the security policy consists of rules for each nym that specifies what types of mob are visible to what nyms.
  • the security policy can also specify constraints on the values of slots in the instance frames 300. For example, consider an office of the ' future where on the front door is an LCD panel that says whether the owner of the nym is in or not . This LCD panel would connect to the user's blackboard 208 with say, a nym of "anon" . If the person in the office is in, but does not wish to be disturbed, the security policy may prevent the LCD panel from seeing mobs that indicate the owner is inside.
  • the system 100 employs the concept of a forum blackboard (which is not depicted in the figures) .
  • a forum represents a 'shared space' for blackboards 300 to connect, and also represents either a physical or a virtual group of blackboards 300.
  • a forum blackboard can also have services associated with it other than being a meeting point. For example a meeting room may have a blackboard associated with it.
  • the meeting room forum blackboard can give access to any resources in the room, for example speakers, panels etc.
  • a forum may also be a totally virtual space.
  • each user's personal blackboard 300 will be carried around with them, or run on their home computers.
  • Forum blackboards for physical spaces, such as meeting rooms, would be embedded in that environment.
  • Forum blackboards for virtual spaces would operate within the Internet in much the same way as a web server runs today. This design is depicted in the schematic diagram in figure 4.
  • Interblackboard Agents (IBA) 402 are used to support interblackboard communication. Interblackboard agents 402 effectively allow the plurality of blackboards 404 to exchange instance frames 300 with each other, thereby allowing the blackboards 404 to communicate with each other.
  • One complication of interblackboard communication is the handling of identity; and how this fits with the nym concept . * A connection between two blackboards 404 can be considered an exchange of nyms; when two IBAs 402 initiate contact, they exchange their opposite nyms; to ensure proper access rights.
  • a mirroring policy is constructed, much like the security policy previously mentioned.
  • the IBA 402 will also write it to the companion blackboard 404.
  • the mirroring policy interacts closely with the security policy to ensure that users' privacy is not violated.
  • the performance of the system 100 was studied using an unoptimized Java implementation. This implementation of the system 100 was found to distribute approximately 200 messages a second with a XML-over-TCP transport layer. There was a latency of about 50 milliseconds from when an agent 202 writes an instance frame 300 to the blackboard 208 to when the first agent 204 was informed. In this regard a real-time whiteboard-style application that naively writes each drag by the user directly to the blackboard 208 (without doing any kind of consolidation of lines, or reduction in data) was used. This application was tested with up to six clients connected to a single blackboard 208 at once over Ethernet and it still appeared responsive .
  • the jar file of the unoptimized Java implementation, including blackboard 208, agent libraries, demonstration programs, is just over 10OK.
  • the API is extremely simple. To implement an agent 202 or 204, a developer needs to write two methods or callback functions: initO to start the agent 202 or 204, and handleMobO to handle any objects the agent 202 or 204 has registered for.
  • the API for accessing the blackboard 208 from the agent's 202 or 204 perspective consists of only 8 API function calls.
  • the C API is similar and is approximately 2OK in si ze .
  • the various aforementioned steps performed by the computer server 102 to facilitate the sharing of instance frames 300 between the computers 104 are set out in the flow chart 500.
  • the first 502 of the steps involves receiving the instance frame 300.
  • the second step 504 which involves storing the received instance frame in a data storage entity that is based on a blackboard architecture.
  • the step 506 of identifying a process that issued a notification request identifying a generic frame associated with the instance frame 300.
  • a further step 508 that is performed involves issuing the process with a notification regarding the instance frame 300.
  • step 510 of retrieving the instance frame 300 from the data storage entity in response to an information request being issued by the process is performed.
  • the step 512 of issuing the process with the instance frame is performed.
  • a further step 514 is performed, which involves utilising a data communication transport service to: receive the instance frame 300, the notification request, and the information request; and issue the notification, and the process with the instance frame .
  • a further step 518 is performed which involves assessing whether the process is authorised to access the instance frame so as to determine whether the step 508 of issuing the process and the notification and/or the step 512 of issuing the process with the instance are to be performed.
  • the final two steps 520 and 522 that are performed include assigning the instance frame 300 a name, and setting the notification such that it identifies the name.
  • the flow chart 600 sets out the steps performed by a computing device 104 when sharing information.
  • the first step 602 of issuing the computer server 102 with an instance frame 300.
  • the step 604 of utilising a data communication transport service is performed in order to provide the computer server 102 with the instance frame.
  • the computer server 102 is arranged to notify a personal computer 104 of the existence of data on the blackboard based storage system.
  • the personal computer 104 is arranged to perform the steps set out in the flow chart 700 of figure 7.
  • the initial step 702 involves issuing the computer server 102 with a notification request.
  • the step 706 of receiving the instance frame 300 from the computer server 102 is also performed.
  • a final step 708 involves utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame 300.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A system for signalling an existence of an instance, the system comprising a processing part that is operable to perform the steps of: receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance.

Description

A SYSTEM, APPARATUSES, METHODS AND A COMPUTER PROGRAM FOR FACILITATING SHARING OF ELECTRONIC INFORMATION
FIELD OF THE INVENTION
The present invention relates generally to the field of sharing electronic information (data) in a computer system.
BACKGROUND OF THE INVENTION
The sharing of information (or data) is a fundamental function performed by many of today's computer systems. For example, a distributed application is typically made-up of numerous distinct components that perform a specific task on a piece of data and, once the specific task is performed, a distinct component passes the piece of data onto another distinct component (that is, the components share the data with each other) for further processing. For instance, a particular component of the distributed application may be responsible for extracting user data from a data packet. Once the particular component has extracted the user data it can pass the user data on to another component (that is, share the data) that processes the user data to format and present the user data on a computer monitor.
DEFINITIONS
The following is a list of definitions for some of the terminology used throughout this specification:
• Frames: is a knowledge representation technique which resembles an extended form of record (as in Pascal and Modula-2) or struct (using C terminology) or class (in Java) . The resemblance stems from the fact frames have a number of slots, which are similar to fields in a record or struct, or variable in a class. Unlike a record, a struct, or class it is possible to add slots to a frame dynamically (while the program is executing) and the contents of the slot need not be a simple value. In the absence of a value for a slot, the frame system may use a default value. Alternatively there may be a demon (software process) present to assist in computing a suitable value for the slot .
• Generic frame: serves as a template for building instance frames. For example, a generic frame could describe an elephant in general giving defaults for various elephant features (number of legs, ears, colour and size) . A generic frame may also inherit slots from other generic frames of which they are a sub concept .
• Instance frame: describes a specific instance of a generic frame. For example, an instance frame of the previously described 'elephant' generic frame could describe a specific elephant named "Dumbo", who might have a missing tusk and who would thus have the default slot for the number of tusks overridden to indicate that Dumbo has only one tusk. An instance frame inherits its slots from the relevant generic frame .
SUMMARY OF THE 13SfVENTION
According to a first aspect of the present invention there is provided a system for signalling an existence of an instance, the system comprising a processing part that is operable to perform the steps of: receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance .
The system has an advantage of facilitating the effective sharing of information (that is, the instance frame) . The system facilitates effective sharing of information by enabling the process to specify the type (or generic frame) of information it wishes to receive. Furthermore, issuing the process with the notification essentially informs the process about the existence of the information so that it may take the necessary steps to obtain the information. Another advantage of the system is that the use of the instance frame links enables agents, which share information via the blackboard, to be quickly and easily developed using frame based programming languages .
Preferably, the processing part is operable to perform the steps of: retrieving the instance frame from the data storage entity in response to an information request being issued by the process; and issuing the process with the instance frame subsequent to retrieving the instance frame from the data storage entity.
The steps of retrieving the instance frame and issuing the process with the instance frame provide an advantage of enabling information (the instance frame) to be shared in a relatively straightforward manner.
Preferably, the processing part is operable to perform the step of utilising a data communication transport service in order to: receive the instance frame, the notification request, and the information request; and issue the notification, and to issue the process with the instance frame .
Utilising the data communication transport service provides the advantage of effectively allowing information (the instance frame) to be shared between remote entitles.
Preferably, the processing part is operable to perform the step of assessing whether the process is authorised to access the instance frame so as to determine whether the step of issuing the process with the notification and/or the step of issuing the process with the instance frame should be performed.
Assessing whether the process is authorised to access the instance frame provides the advantage of enabling a level of control to be exerted over the ability of the process to gain access to the instance frame.
Preferably, the association with the instance frame comprises: the first generic frame corresponding to a second generic frame on which the instance frame is based; or the first generic frame corresponding to a third generic frame from which the second generic frame inherits a slot.
Preferably, the first instance frame comprises: a first slot for representing a time at which the instance frame was created; and a second slot for identifying an entity that created the instance frame .
Preferably, the processing part is operable to perform the steps of : assigning the instance frame a name,- and setting the notification such that it identifies the name. Preferably, the data storage entity comprises a plurality of blackboards each of which is associated with a different user of the system.
Preferably, the process is operable to facilitate a transfer of the instance frame from a first of the blackboards to a second of the blackboards .
An advantage of having the process perform the transfer is that it allows the blackboards to easily exchange information and communicate with each other.
According to a second aspect of the present invention there is provided a method of signalling an existence of an instance, the method comprising the steps of: receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance.
Preferably, the method comprises the steps of: retrieving the instance frame from the data storage entity in response to an information request being issued by the process; and issuing the process with the instance frame subsequent to retrieving the instance frame from the data storage entity.
Preferably, the method comprises the step of utilising a data communication transport service in order to: receive the instance frame, the notification request, and the information request; and issue the notification, and to issue the process with the instance frame.
Preferably, the method comprises the step of assessing whether the process is authorised to access the instance frame so as to determine whether the step of issuing the process with the notification and/or the step of issuing the process with the instance frame should be performed.
Preferably, the association with the object comprises : the first generic frame class corresponding to a second generic frame from which the instance frame is based; or the first generic frame corresponding to a third generic frame on which the second generic frame inherits a slot.
Preferably, the instance frame comprises: a first slot for representing a time at which the instance frame was created; and a second slot for identifying an entity that created the instance frame .
Preferably, the method comprises the steps of: assigning the instance frame a name; and setting the notification such that it identifies the name .
Preferably, the data storage entity comprises a plurality of blackboards each of which is associated with a different user of the system.
Preferably, the process is operable to facilitate a transfer of the instance frame from a first of the blackboards to a second of the blackboards . According to a third aspect of the present invention there is provided an apparatus for issuing an instance, the apparatus comprising a processing component that is operable to perform the step of issuing the system according to the first aspect of the present invention with the instance frame, to thereby issue the instance.
Preferably, the processing component is operable to perform the step of utilising the data communication transport service in order to issue the system with the instance frame .
According to a fourth aspect of the present invention there is provided a method of issuing an instance, the method comprising the step of issuing the system according to the first aspect of the present invention with the instance frame, to thereby issue the instance.
Preferably, the method comprises the step of utilising the data communication transport service in order to issue the system with the instance frame.
According to a fifth aspect of the present invention there is provided an apparatus for being notified about an instance, the apparatus comprising a processing component that is operable to perform the steps of: issuing the system according to the first aspect of the present invention with the notification request/ and receiving from the system the notification regarding the instance frame, thereby being notified about the instance .
Preferably, the processing component is operable to perform the step of receiving the instance frame from the system. Preferably, the processing component is operable to perform the step of utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame.
According to a sixth aspect of the present invention there is provided a method of being notified about an instance, the method comprising the steps of: issuing the system according to the first aspect of the present invention with the notification request; and receiving from the system the notification regarding the instance frame, thereby being notified about the instance .
Preferably, the method comprises the step of receiving the instance frame from the system.
Preferably, the method comprises the step of utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame.
According to a seventh aspect of the present invention there is provided a computer program comprising at least one instruction, which when executed by a computing device causes the computing device to perform the method according to the second aspect, fourth aspect, or sixth aspect of the present invention.
According to an eighth aspect of the present invention there is provided a computer readable medium comprising the computer program according to the seventh aspect of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Notwithstanding any other embodiments that may fall within the scope of the present invention, an embodiment of the present invention will now be described, by way of example only, with reference to the accompanying figures, in which:
figure 1 is a schematic diagram of a system in accordance with an embodiment of the present invention;
figure 2 is a schematic diagram of various components of the system depicted in figure 1;
figure 3 is an exemplary representation of information that is shared in the system depicted in figure
1;
figure 4 is a schematic diagram of an inter- blackboard architecture used in the system depicted in figure 1;
figure 5 provides a flow chart that sets out various steps performed by the system of figure 1;
figure 6 provides another flow chart that sets out some steps performed by the system of figure 1; and
figure 7 provides another flow chart that sets out the steps performed by the system of figure 1.
AN EMBODIMENT OF THE INVENTION
With reference to figure 1, a system 100 according to an embodiment of the present invention comprises a computer system 102, one or more personal computing devices 104, and a communication network 106. The computer system 102 and the computing devices 104 are connected to the communication network 106 via respective data communication links 108. The computer system 102 is in the form of a computer server and comprises traditional computer hardware such as a motherboard, random access memory, a hard disk, a network interface card, and a power supply. The hard disk of the computer system 102 is loaded with an operating system in the form of Microsoft Server 2003. Persons skilled in the art will appreciate that the hard disk of the computer system 102 can be loaded with a different operating system (such as Linux) in an alternative embodiment of the present invention. In addition to the operating system, the hard disk of the computer system 102 is also loaded with a piece of software that facilitates sharing of information (data) amongst the personal computing' devices 104.
The computer system 102 also comprises a specialised data storage entity that is based on a blackboard architecture. Generally, the data storage entity can be considered a form of shared memory. However because it is based on a blackboard architecture the data storage entity can have its data storage λ space' divided into separate regions, each of which may, or may not, be accessible to each of the personal computing devices 104. Further information on the blackboard architecture can be found in the paper entitled "The Hearsay-II speech-understanding system: Integrating knowledge to resolve uncertainty", which was published in the ACM Computing Surveys Vol. 12, No. 2 pp. 213-253 and is authored by L. D. Erman, F. Hayes- Roth, V. R Lesser and D. R. Reddy. The specialised data storage entity is in the form of software loaded on the hard disk of the computer system 102.
The personal computing devices 104 are heterogeneous and can include, for example, a personal desktop computer, a personal digital assistant or a laptop computer. However, as persons skilled in the art will readily appreciate the personal computing devices 104 could all be the same in an alternative embodiment of the present invention. Each personal computing device 104 comprises traditional computing hardware such as processing hardware (for example, a motherboard) , a visual display (for example, a LCD) , a user input device (for example, a keyboard) , random access memory, a permanent data storage device (for example, a hard disk) , a network interface, and a power supply. Each computing device 104 is loaded with Microsoft XP operating system, which typically resides on the permanent data storage device. As persons skilled in the art will readily appreciate the computing devices 104 can be loaded with a different operating system (such as Linux) in an alternative embodiment of the present invention. In addition to the operating system, each computing device 104 is loaded with one or more pieces of software (which reside on the permanent data storage device) that basically facilitates the sharing of information amongst the personal computing devices 104.
The pieces of software loaded on each of the personal computing devices 104 can broadly be classified in to one of two types; that is, an interaction agent, which conveys information to and from a user of the relevant personal computing device 104, such as a graphical user interface or proxies for telephone conversations and devices in the environment; or a computational agent that provides services such as speech recognition, web access and e-mail.
The communication network 106 is in the form of a public access packet switched network in the form of the Internet. Consequently, persons skilled in the art will readily appreciate that the communication network 106 comprises a plurality of interconnected routers/data switches (not shown in the figures) that support the Internet Protocol (IP) suite of data communication standards. The communication network 106 enables the personal computing devices 104 and the computer system 102 to exchange data .
Figure 2 provides a schematic diagram of the various functional components in the system 100. With regard to figure 2, "Agent 1" 202 represents the piece of software loaded on one of the personal computing devices 104a, "Agent 2" 204 represent the piece of software loaded on another of the personal computing devices 104b, the "transport medium" 206 represents the communication network 106, while the "Blackboard" 208 represents the data storage entity of the computer system 102. The "Agent Transport" components 210 and 212 essentially represent a communication mechanism (interface) that interacts with the communication network 106 so that the personal computing devices 104 and the computer system 102 can exchange data between each other. It is noted that figure 2 shows only a single "blackboard" 208; however, it is envisaged that the data storage entity of the computer system 102 would actually comprise a plurality of blackboards 208. This description refers only to a single blackboard 208 in order to aid the reader's understanding of the system 100. Where there are a plurality of blackboards 208 each of the blackboards 208 is associated with a different user of the system 100. Each blackboard 208 effectively represents a storage space for information relevant to the associated user.
With reference to figure 2, the following provides a description of how the personal computing devices 104 use the computer system 102 to share information. The arrows in figure 2 represent flows of requests; for example, a request that an instance frame 300 (an example of which is shown in figure 3) be written to the blackboard 208, or that an agent 202 and 204 be informed when an instance frames 300 of a particular generic frame (type) are written to the blackboard 208. The agents 202 and 204 are basically the pieces of software loaded on computing devices 104. Agents 202 and 204 and the blackboard 208 do not communicate directly, but through a respective transport layer 210, 212 and 214. This allows implementations of the present invention to use different transport layers. For example, some possible transport layers include: local function calls, XML over a TCP/IP connection, or ASCII messages over Bluetooth. In the present embodiment, however, the XML over TCP/IP is used because the communication network 106 is in the form of the Internet, which persons skilled in the art will readily appreciate as being based on the Internet Protocol packet switching technology. For each transport 210, 212 and 214, a pair of transport mechanisms - an agent transport 210 and 212 and a blackboard transport 214 - need to be developed. Agents 202 and 204 typically talk to the Agent Transport layer 210 and 212 through method calls or callbacks (rather than network connections) , depending on the language; similarly for the blackboard 208. This gives flexibility in the domains that the embodiment of the present invention can be applied to; and allows developers to write agents 202 and 204 that do not need to be aware of the underlying transport layer.
In order to clarify how requests are passed, consider what happens when Agent 1 202 writes an instance frame 300 to the blackboard 208, which is of a line generic frame. Also assume that Agent 2 204 has registered for any instance frames 300 whose generic frame is line. Agent 1 202 would tell its transport agent 212 to transport an instance frame 300 to the blackboard 208. Agent 2 204 would then be informed of the new instance frame 300, assuming the instance frame 300 is of the generic frame, line. Note that neither Agent 1 202 nor Agent 2 204 are explicitly aware of one another and that different agents 202 and 204 can register for generic frames of a given type. If six agents were registered for the generic frame line, then all six of the agents would be informed. Also note that the arrows are "two way" arrows. At times the blackboard 208 will initiate communication with agents 202 and 204. This may occur, for example, when an instance frame 300 is deleted from the blackboard 208.
Instance frames 300 are the basic unit of information shared in the system 100. Instance frames 300 are the items that agents 202 and 204 actually read and write from the blackboard 208. The instance frames 300 used in the system 100 are similar to objects in an object-oriented framework. Each instance frame 300 has a generic frame (type) defined by the user - similar to a class in an object-oriented language. In addition, the instance frames 300 have slots, which are similar to fields in object- oriented programming - each slot has a name and one or more values. An example of a typical instance frame 300 used in the system 100 is shown in figure 3 - Its name is line-103 and it has a generic frame (type) of line.
The system 100 supports multiple inheritance: a generic frame (type) can have several 'parent' generic frames. Unlike languages such as Smalltalk where each object can have multiple classes a single instance frame 300 in the system 100 can only have one generic frame.
To simplify management, there is a universal superframe, called mob. Every instance frame 300 is assumed to inherit from mob. When an instance frame 300 is created on the blackboard 208, the blackboard 208 also creates two slots, each with a single value: creationTime, the time at which the instance frame 300 was created; and creator, that is the agent 202 or 204 that created a particular instance frame 300. The registration system heeds inheritance; if an agent 202 and 204 registers for a given generic frame 300, the agent 202 and 204 is informed if any subordinate generic frame 300 is also written to the blackboard 208. This is an extremely useful feature. For example, to write a debugger agent that displays everything on the blackboard 208 an agent 204 or 208 (debugger) need only register for instance frames 300 of generic frame mob and it will be informed of any instance frame 300 written to the blackboard 208.
Security and privacy in the system 100 is based on nyms (which is effectively a piece of data) . A nym is an aspect of the user's identity that the user wishes to reveal and represents a spectrum of access rights. The user is a user of a personal computing device 104. For example, anonymity means that minimal details of the user are to be disclosed, whereas verynymity is certainty of the user's identity. Typically, a user will have multiple nyms, depending on the type of information the user wishes to disclose (share) . When an agent 202 or 204 connects, it is associated with a nym. A nym is authenticated using standard public-key encryption systems; by means of a challenge from the computer system 102 to the personal computing device 104. Several agents 202 and 204 with the same nym can connect at once .
For privacy, the nyms are used to control visibility of instance frames 300 in the blackboard 208. The core of this idea is to realise that not every agent 202 and 204 need see the same information on the blackboard 208; and generally, each nym sees a different version of the blackboard 208. Agents 202 and 204 are not informed when an instance frame 300 they are not supposed to see is written to the blackboard 208, and similarly, should they do a query, only the instance frames 300 they are supposed to see are returned. The visibility of instance frames 300 in the blackboard 208 is governed by a security policy. The security policy consists of rules for each nym that specifies what types of mob are visible to what nyms. The security policy can also specify constraints on the values of slots in the instance frames 300. For example, consider an office of the' future where on the front door is an LCD panel that says whether the owner of the nym is in or not . This LCD panel would connect to the user's blackboard 208 with say, a nym of "anon" . If the person in the office is in, but does not wish to be disturbed, the security policy may prevent the LCD panel from seeing mobs that indicate the owner is inside.
The system 100 employs the concept of a forum blackboard (which is not depicted in the figures) . A forum represents a 'shared space' for blackboards 300 to connect, and also represents either a physical or a virtual group of blackboards 300. A forum blackboard can also have services associated with it other than being a meeting point. For example a meeting room may have a blackboard associated with it. The meeting room forum blackboard can give access to any resources in the room, for example speakers, panels etc. However, a forum may also be a totally virtual space.
It is envisaged that initially each user's personal blackboard 300 will be carried around with them, or run on their home computers. Forum blackboards for physical spaces, such as meeting rooms, would be embedded in that environment. Forum blackboards for virtual spaces would operate within the Internet in much the same way as a web server runs today. This design is depicted in the schematic diagram in figure 4.
Referring to figure 4, Interblackboard Agents (IBA) 402 are used to support interblackboard communication. Interblackboard agents 402 effectively allow the plurality of blackboards 404 to exchange instance frames 300 with each other, thereby allowing the blackboards 404 to communicate with each other. One complication of interblackboard communication is the handling of identity; and how this fits with the nym concept . * A connection between two blackboards 404 can be considered an exchange of nyms; when two IBAs 402 initiate contact, they exchange their opposite nyms; to ensure proper access rights. Once the IBAs 402 are connected, a mirroring policy is constructed, much like the security policy previously mentioned. If an instance frame 300 is written to a blackboard 404 and if it is covered by the mirroring policy, the IBA 402 will also write it to the companion blackboard 404. The mirroring policy interacts closely with the security policy to ensure that users' privacy is not violated.
The performance of the system 100 was studied using an unoptimized Java implementation. This implementation of the system 100 was found to distribute approximately 200 messages a second with a XML-over-TCP transport layer. There was a latency of about 50 milliseconds from when an agent 202 writes an instance frame 300 to the blackboard 208 to when the first agent 204 was informed. In this regard a real-time whiteboard-style application that naively writes each drag by the user directly to the blackboard 208 (without doing any kind of consolidation of lines, or reduction in data) was used. This application was tested with up to six clients connected to a single blackboard 208 at once over Ethernet and it still appeared responsive .
The jar file of the unoptimized Java implementation, including blackboard 208, agent libraries, demonstration programs, is just over 10OK. Importantly, the API is extremely simple. To implement an agent 202 or 204, a developer needs to write two methods or callback functions: initO to start the agent 202 or 204, and handleMobO to handle any objects the agent 202 or 204 has registered for. The API for accessing the blackboard 208 from the agent's 202 or 204 perspective consists of only 8 API function calls. The C API is similar and is approximately 2OK in si ze .
Referring to figure 5, the various aforementioned steps performed by the computer server 102 to facilitate the sharing of instance frames 300 between the computers 104 are set out in the flow chart 500. The first 502 of the steps involves receiving the instance frame 300. Following on from the first step 502 is the second step 504, which involves storing the received instance frame in a data storage entity that is based on a blackboard architecture. Subsequent to the previous two steps 502 and 504 is the step 506 of identifying a process that issued a notification request identifying a generic frame associated with the instance frame 300. A further step 508 that is performed involves issuing the process with a notification regarding the instance frame 300.
In addition to the previous steps 502 to 508, there is also the step 510 of retrieving the instance frame 300 from the data storage entity in response to an information request being issued by the process. After the previous step 510, the step 512 of issuing the process with the instance frame (after being retrieved from the data storage entity) is performed. At this point a further step 514 is performed, which involves utilising a data communication transport service to: receive the instance frame 300, the notification request, and the information request; and issue the notification, and the process with the instance frame .
Subsequent to the previous step 514, a further step 518 is performed which involves assessing whether the process is authorised to access the instance frame so as to determine whether the step 508 of issuing the process and the notification and/or the step 512 of issuing the process with the instance are to be performed. The final two steps 520 and 522 that are performed include assigning the instance frame 300 a name, and setting the notification such that it identifies the name.
Referring to figure 6, the flow chart 600 sets out the steps performed by a computing device 104 when sharing information. The first step 602 of issuing the computer server 102 with an instance frame 300. In addition to the initial setup 602, the step 604 of utilising a data communication transport service is performed in order to provide the computer server 102 with the instance frame.
As described in previous paragraphs of this specification, the computer server 102 is arranged to notify a personal computer 104 of the existence of data on the blackboard based storage system. In this regard, the personal computer 104 is arranged to perform the steps set out in the flow chart 700 of figure 7. The initial step 702 involves issuing the computer server 102 with a notification request. Following on from the previous step 702 is the step 704 of receiving a notification from the computer server 102 regarding the existence of the instance frame 300 (on the blackboard) . The step 706 of receiving the instance frame 300 from the computer server 102 is also performed. A final step 708 involves utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame 300.
Those skilled in the art will appreciate that the invention described herein is susceptible to variations and modifications other than those specifically described. It should be understood that the invention includes all such variations and modifications which fall within the spirit and scope of the invention.

Claims

CLAIMS :
1. A system for signalling an existence of an instance, the system comprising a processing part that is operable to perform the steps of : receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance .
2. The system as claimed in claim 1, wherein the processing part is operable to perform the steps of: retrieving the instance frame from the data storage entity in response to an information request being issued by the process; and issuing the process with the instance frame subsequent to retrieving the instance frame from the data storage entity.
3. The system as claimed in claim 2, wherein the processing part is operable to perform the step of utilising a data communication transport service in order to: receive the instance frame, the notification request, and the information request; and issue the notification, and the process with the instance frame.
4. The system as claimed in claim 2, wherein the processing part is operable to perform the step of assessing whether the process is authorised to access the instance frame so as to determine whether the step of issuing the process with the notification and/or the step of issuing the process with the instance frame should be performed.
5. The system as claimed in any one of the preceding claims, wherein the association with the instance frame comprises: the first generic frame corresponding to a second generic frame on which the instance frame is based/ or the first generic frame corresponding to a third generic frame from which the second generic frame inherits a slot.
6. The system as claimed in any one of the preceding claims, wherein the instance frame comprises: a first slot for representing a time at which the instance frame was created; and a second slot for identifying an entity that created the instance frame.
7. The system as claimed in any one of the preceding claims, wherein the processing part is operable to perform the steps of: assigning the instance frame a name; and setting the notification such that it identifies the name.
8. The system as claimed in any one of the preceding claims, where the data storage entity comprises a plurality of blackboards each of which is associated with a different user of the system.
9. The system as claimed in claim 8, wherein the process is operable to facilitate a transfer of the instance frame from a first of the blackboards to a second of the blackboards .
10. A method of signalling an existence of an instance, the method comprising the steps of: receiving an instance frame; storing the instance frame in a data storage entity that is based on a blackboard architecture; identifying a process that has issued a notification request that identifies a first generic frame that has an association with the instance frame; and issuing the process with a notification regarding the instance frame to thereby signal the existence of the instance .
11. The method as claimed in claim 10, wherein the method comprises the steps of: retrieving the instance frame from the data storage entity in response to an information request being issued by the process; and issuing the process with the instance frame subsequent to retrieving the instance frame from the data storage entity.
12. The method as claimed in claim 11, wherein the method comprises the step of utilising a data communication transport service in order to: receive the instance frame, the notification request, and the information request; and issue the notification, and the process with the instance frame.
13. The method as claimed in claim 11, wherein the method comprises the step of assessing whether the process is authorised to access the instance frame so as to determine whether the step of issuing the process with the notification and/or the step of issuing the process with the instance frame should be performed.
14. The method as claimed in any one of claims 10 to 13, wherein the association with the instance frame comprises : the first generic frame corresponding to a second generic frame on which the instance frame is based; or the first generic frame corresponding to a third generic frame from which the second generic frame inherits a slot .
15. The method as claimed in any one of claims 10 to
14, wherein the instance frame comprises: a first slot for representing a time at which the instance frame was created; and a second slot for identifying an entity that created the instance frame .
16. The method as claimed in any one of claims 10 to
15, wherein the method comprises the steps of: assigning the instance frame a name; and setting the notification such that it identifies the name .
17. The method as claimed in any one of claims 10 to 16, wherein the data storage entity comprises a plurality of blackboards each of which is associated with a different user of the system.
18. The method as claimed in claim 17, wherein the process is operable to facilitate a transfer of the instance frame from a first of the blackboards to a second of the blackboards .
19. An apparatus for issuing an instance, the apparatus comprising a processing component that is operable to perform the step of issuing the system as claimed in any one of claims 1 to 9 with the instance frame, to thereby issue the instance.
20. The apparatus .as claimed in claim 19, wherein the processing component is operable to perform the step of utilising the data communication transport service in order to issue the system with the instance frame.
21. A method of issuing an instance, the method comprising the step of issuing the system claimed in any one of claims 1 to 9 with the instance frame, to thereby issue the instance.
22. The method as claimed in claim 21, wherein the method comprises the step of utilising the data communication transport service in order to issue the system with the instance frame .
23. An apparatus for receiving notification about an instance, the apparatus comprising a processing component that is operable to perform the steps of: issuing the system as claimed in any one of claims 1 to 9 with the notification request; and receiving from the system the notification regarding the instance frame to thereby receive notification about the instance.
24. The apparatus as claimed in claim 23, wherein the processing component is operable to perform the step of receiving the instance frame from the system.
25. The apparatus as claimed in claim 24, wherein the processing component is operable to perform the step of utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame.
26. A method of receiving notification about an instance, the method comprising the steps of: issuing the system as claimed in any one of claims 1 to 9 with the notification request; and receiving from the system the notification regarding the instance frame to thereby receive notification about the instance .
27. The method as claimed in claim 26, wherein the method comprises the step of receiving the instance frame from the system.
28. The method as claimed in claim 27, wherein the method comprises the step of utilising the data communication transport service to: issue the notification request; and receive the notification and the instance frame .
29. A computer program comprising at least one instruction, which when executed by a computing device causes the computing device to perform the method as claimed in any one of claims 10 to 18, 21, 22 and 26 to 28
30. A computer readable medium comprising the computer program as claimed in claim 29.
PCT/AU2006/000360 2005-03-18 2006-03-17 A system, apparatuses, methods and a computer program for facilitating sharing of electronic information WO2006096934A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2005901373 2005-03-18
AU2005901373A AU2005901373A0 (en) 2005-03-18 A system, apparatuses, method and a computer program for facilitating sharing of electronic information

Publications (1)

Publication Number Publication Date
WO2006096934A1 true WO2006096934A1 (en) 2006-09-21

Family

ID=36991209

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2006/000360 WO2006096934A1 (en) 2005-03-18 2006-03-17 A system, apparatuses, methods and a computer program for facilitating sharing of electronic information

Country Status (1)

Country Link
WO (1) WO2006096934A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0333635A2 (en) * 1988-03-15 1989-09-20 Intellisystems, Inc. Multi-user, artificial intelligent expert system
US20020107826A1 (en) * 2000-12-22 2002-08-08 Surya Ramachandran Multi-agent collaborative architecture for problem solving and tutoring

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0333635A2 (en) * 1988-03-15 1989-09-20 Intellisystems, Inc. Multi-user, artificial intelligent expert system
US20020107826A1 (en) * 2000-12-22 2002-08-08 Surya Ramachandran Multi-agent collaborative architecture for problem solving and tutoring

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SADEH ET AL.: "A Blackboard Architecture for Integrating Process Planning and Production Scheduling", CONCURRENT ENGINEERING: RESEARCH AND APPLICATIONS, vol. 6, no. 2, June 1998 (1998-06-01), pages 1 - 23 *

Similar Documents

Publication Publication Date Title
US8578285B2 (en) Methods, apparatus and systems for providing secure information via multiple authorized channels to authenticated users and user devices
US7174361B1 (en) Scripting task-level user-interfaces
US20200296084A1 (en) Domain Pass-Through Authentication In A Hybrid Cloud Environment
KR100834347B1 (en) Application server object-level security for distributed computing domains
CN102495750A (en) Virtual desktop configuration and operation techniques
US7908294B2 (en) Interoperable management of application servers
JP2005505831A (en) Method for integrating Java servlets with asynchronous messages
WO2013192341A1 (en) Method and system for providing a service over a private network
US11327816B2 (en) Monitoring components in a service framework
RU2237275C2 (en) Server and method (variants) for determining software surroundings of client node in a network having client/server architecture
JP5422103B2 (en) Method and apparatus for transferring data between separated execution contexts
US7792904B2 (en) Sharing material in a master-slave configuration using an instant messaging infrastructure
CN115811481A (en) Interactive service testing method and device, computer equipment and storage medium
WO2006096934A1 (en) A system, apparatuses, methods and a computer program for facilitating sharing of electronic information
EP3759603B1 (en) In-line event handlers across domains
Tao Application service provider model: Perspectives and challenges
CN115270110B (en) Account inspection method and device, electronic equipment and storage medium
CN111596896B (en) Interface calling method, device, equipment and medium adapting to different languages
US8112763B2 (en) Computer-implemented method, apparatus, and computer program product for transmitting information between CORBA applications and servers utilizing HTTP
US8214499B2 (en) System and method for enabling software applications as a service in a non-intrusive manner
KR20010082488A (en) Method for preventing the prohibited program from running in multiple computers within the local area network system
Ren Communication Architecture Design and Case Study of Embedded Partition Real-Time Operating System
Nesteruk Mediator
JP2000148471A (en) Computing system
Putrycz et al. Client side reconfiguration on software components for load balancing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWW Wipo information: withdrawn in national office

Country of ref document: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06705029

Country of ref document: EP

Kind code of ref document: A1

WWW Wipo information: withdrawn in national office

Ref document number: 6705029

Country of ref document: EP