• Aucun résultat trouvé

Micro-design: The Agent Skills

Dans le document Software agents in network management (Page 138-142)

6.3.1 Skills for the User Agent Role

According to the description of its role, the UA behavior can be implemented using two skills. TheContract Negotiation Skillis responsible for sending PVC requests to the SWA and negotiating the service contract as well as the price. TheUser Interface Skillis re-sponsible for capturing user requests for a connection establishment and to formulate them for the Contract Negotiation Skill.

The implementation of this case study provides a simplified version of these two skills. The User Interface Skill is only composed of a Graphical User Interface that al-lows the user to specify the destination of the connection and to select a class of QoS (Figure 6.1). This request is then forwarded to the Contract Negotiation Skill which, in its turn, delegates the task of PVC establishment to the SWA that manages the ATM switch to which the user is connected.

Figure 6.1: User interface for PVC creation

6.3.2 Skills for the Switch Agent Role

The switch agent role is ensured by four skills: theSwitch Skill, theSlave Skill, theMaster Skilland theTopology Skill.

The Switch Skill

A switch agent is responsible for PVC configuration operations of the ATM switch.

TheSwitch Skillis therefore designed to provide services to create and delete VPs and VCs using the SNMP management protocol. There is a switch skill for each type of ATM switches. For example, the current implementation runs on FORE ATM switches, and therefore, aFORE ATM Switch Skillis developed. As a matter of fact, the switch skill is the unique part of the whole system that should be adapted for each product family. However, this should be a temporary situation until standard ATM management MIBs (e.g. [AT94]) are deployed in future ATM devices.

The capabilities defined in the switch skill for the creation of VPs and PVCs are il-lustrated by the following usage examples:

(createIncomingVP :port 4 :vpi 5 :bandwidth 1200 :pvcId lys-212) (createOutgoingVP :port 1 :vpi 3 :bandwidth 3000 :pvcId lys-212) (createLocalPVC :inputPort 4 :inputVpi 5 :inputVci 10

:outputPort 1 :outputVpi 1 :outputVci 2 :upc VHQ

:pvcId lys-212)

ThepvcIdparameter allows to unambiguously identify an end-to-end PVC creation request. If the creation succeeds, thepvcIduniquely identifies the created PVC, for example during the deletion request. In the switch skill, this parameter is used to associate a VP or local PVC creation request to the result of the creation process which is reported in a dedicated belief. For example, the creation report for an incoming VP has the following format:

(IncomingVpCreationReport :pvcId lys-212 :result error :reason ...) There are also equivalent capabilities to delete VPs and local PVCs on a switch. These capabilities are: deleteIncomingVP, deleteOutgoingVP, and deleteLocalPVC.

In addition, the switch skill maintains beliefs on the status of the current VPs and PVCs existing on the ATM switch. An example of a belief on an existing incoming VP is:

(incomingVP :port 4 :vpi 5 :allocatedBandwidth 1200 :usedBandwidth 1100)

TheallocatedBandwidthparameter specifies the amount of bandwidth allocated to the incoming VP, while theusedBandwidthtells the amount of bandwidth that it is already allocated to PVCs routed through this incoming VP. Such information is used by theSlave Skillto decide on the local parameters for the establishment of a new PVC.

Finally, the switch skill maintains beliefs on the physical ports of the ATM switch. A belief on a physical port holds the value of the maximum bandwidth supported on the port as well as the total allocated bandwidth to the created VPs. An example of such belief is:

(port :number 4 :maxBandwidth 50000 :allocatedBandwidth 12000)

The Slave Skill

TheSlave Skillis responsible for the local configuration operations that create or delete a PVC fragment on the switch managed by the corresponding SWA. For ex-ample, it is up to the slave skill to decide whether to create a new local VP in order to convey the PVC within, or to use an already existing VP with sufficient bandwidth available. Also, it determines which VPI/VCI couples are to be assigned to the newly created VPs and PVCs.

Before concretely creating a PVC fragment on a switch, the slave skill is first asked to check for resource availability. This minimizes the number of cancellation that are due to insufficient resources on a certain switch. Despite this reservation step, PVC creation errors may occur during the configuration process. Therefore, the capabil-ities defined in the slave skill are respectively: reserveLocalPVC,createLocalPVC, cancelPvcReservationandcancelPvcCreation.

An example of a PVC reservation request is the following:

(reserveLocalPVC :inPort 4 :outPort 1 :upc VHQ :pvcId lys-212)

Theupcfield specifies the class of service required for the PVC. In this case,VHQ stands for High Quality Video.

Note how at this stage, the VPI and VCI parameters are not specified in the reser-vation request. It is up to the slave skill, while checking for resource availability, to decide of the VPI/VCI values, both at the input and output ports.

The beliefs generated by the slave skill report the results of reservation and creation of local PVCs. These reports can be expressed using the LocalPvcReservationReportandLocalPvcCreationReportbelief templates.

Finally, thedeleteLocalPVCcapability is introduced to remove a PVC fragment on a switch.

The Master Skill

TheMaster Skillis responsible for the global supervision of the PVC establishment.

Once a physical to-end route is found between the source and destination end-systems, the master skill contacts the slave SWAs on that route in order to ask them to perform the necessary operations to create the PVC. It is also responsible for handling creation errors that might occur during this process.

The master skill defines two capabilties: createEndToEndPVC and deleteEndToEndPVC. An example of a creation request is:

(createEndToEndPVC :source lys :dest nelke :upc VHQ :reqId 45)

The source and destination end-points are specified using their symbolic names.

The master skill relies on the topology skill to determine their addresses and to find the physical route between them.

For each end-to-end PVC creation request, the master skill maintains an EndToEndPVCbelief containing the progression status of the creation process. Here is an example:

(EndToEndPVC :source lys :dest nelke :upc VHQ :status underReservation

:reqId 45 :pvcId lys-212)

The status of the end-to-end PVC can be one among the following possible statuses:

underReservation,underCreation,createdandunderDeletion.

The Topology skill

Finally, theTopology Skillhelps the master skill to identify a physical route between the source and the destination. The physical route identifies which switches must be traversed by the PVC. For each switch, it determines the input and the output ports that shall be used. Here is an example of such belief:

(EndToEndPvcRoute :source lys :dest nelke

:switch forerunner :inport 4 :outport 1 :switch forele :inport 5 :outport 3)

This belief specifies that to reachnelkefromlys, the PVC can be routed from port 4 to port 1 through theforerunnerswitch, then from port 5 to port 3 of theforele switch.

Finding a physical route is of a minor concern for us since we are more interested in the PVC configuration problem than with the routing issues. Yet the topology of the network is hard-coded inside the topology skill source, since the experimental network on which we run the application is not large.

Dans le document Software agents in network management (Page 138-142)