Next: The Experiment
Up: The Component Model
Previous: The Component Model
The NetPebbles catalog is a collection of all published interfaces
and components, and contains the information described below.
- Interfaces
- -
Each entry contains the following information:
- Interface identifier (InterfaceID) - Identifier assigned
to the interface.
- Method signatures - List of method signatures supported by the interface.
A method signature is of form
<resultType> methodName(<argType1>, <argType2>, ...., <argTypeN>).
For methods that do not return any results, the resultType field is
set to void. - Interface attributes - Set of AttributeID/value pairs
associated with the interface. This information is used by a programmer at build time to find suitable interfaces.
- Component identifier (ComponentID) - List of component
identifiers published in the catalog that implement the interface.
- Components
- -
Each entry contains the following information:
- Component identifier (ComponentID) - Identifier assigned
to the component.
- Location - Location of the component. This field is of type
URL.
- Class name - Class that should be instantiated to use the
component.
- Supported interfaces - List of interface identifiers
implemented by this component.
- Access control list - List of principals that are authorized to
use this component. More details on the security and access control
model can be found in section 5.2.2.
- Recognized guarantors - Set of guarantors that the
component vendors would honor. NetPebbles uses a certificate
based scheme for enforcing security and access control (see
section 5.2.2).
- Server affinity - This field indicates the preference of
the execution site where the component should run.
By default, the NetPebbles script moves to the site where the component is
located. However, if the component needs to use graphics for
interacting with the user then the runtime needs to download the
component to the client machine where the user is located.
The NetPebbles runtime currently supports only two values for this field -
affinity value set to 1 indicates that the script should migrate to the component
server, and affinity set to 0 indicates that the component should
be downloaded to the client machine.
- Component attributes - Set of AttributeID/value pairs
associated with the component. For example,
attributes could contain the name of the vendor, cost
for using the component, and access control requirements.
We are currently working on a more detailed attribute specification model for NetPebbles.
Table 1: This table shows two examples interface entries.
Table 2: This table shows two examples component entries.
Tables 1 and 2
show two interfaces, IDomainAdmin and IMachineAdmin,
along with two components that implement these interfaces.
Note that for sake of readability and convenience,
we use symbolic names instead of very long numbers as
globally unique identifiers in the Tables and in the rest of
the paper.
At build-time, the developer browses and selects from the set of InterfaceIDs
that are available in the component catalog.
The argument to the createComponent
statement contains the InterfaceID that the developer selects. The
developer can also specify a set of AttributeID/value pairs that the runtime should
use when resolving the InterfaceID to a particular ComponentID.
For example, a developer might want to use components that were
developed by a particular vendor.
At runtime, NetPebbles contacts the component catalog and resolves the
InterfaceID into a specific ComponentID.
Next: The Experiment
Up: The Component Model
Previous: The Component Model
Ajay Mohindra
Mon Mar 16 14:45:01 EST 1998