<<O>>  Difference Topic PawnPublishing (r1.6 - 02 Nov 2007 - MikeSmorul)

META TOPICPARENT PAWN

Archive Resources in PAWN

Line: 92 to 92

Quick guide to creating a resource

Changed:
<
<
1. create classes that implement the three driver components
ClientGuiPanel, ConfigurationGuiPanel, DataMover
>
>
1. create classes that implement the three driver components
ClientGuiPanel.java, ConfigurationGuiPanel.java, DataMover.java

2. Create your factory using the simpleresourcefactory

Line: 122 to 123

META FILEATTACHMENT packageingestionitems.png attr="h" comment="" date="1152546290" path="packageingestionitems.png" size="13142" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestion.dia attr="" comment="" date="1152546529" path="packageingestion.dia" size="3482" user="MikeSmorul" version="1.2"
META FILEATTACHMENT packageingestion.png attr="h" comment="" date="1152546547" path="packageingestion.png" size="25487" user="MikeSmorul" version="1.2"
Added:
>
>
META FILEATTACHMENT ClientGuiPanel?.java attr="" comment="" date="1194036138" path="ClientGuiPanel.java" size="1402" user="MikeSmorul" version="1.1"
META FILEATTACHMENT DataMover?.java attr="" comment="" date="1194036147" path="DataMover.java" size="2795" user="MikeSmorul" version="1.1"
META FILEATTACHMENT ConfigurationGuiPanel?.java attr="" comment="" date="1194036165" path="ConfigurationGuiPanel.java" size="1600" user="MikeSmorul" version="1.1"
 <<O>>  Difference Topic PawnPublishing (r1.5 - 06 Apr 2006 - MikeSmorul)

META TOPICPARENT PAWN

Archive Resources in PAWN

Line: 17 to 17

Configuration Design

Changed:
<
<
The configuration is generated in two parts. First is general parameters used to configure the receiving server driver and client gui. Parameters supplied to each may be the same, or seperate. The second part of the configuration is a set of parameters supplied from the client to the receiving server that contain parameters specific to a given transfer.
>
>
The configuration is generated in two parts. First is general parameters used to configure the receiving server driver and client gui. Parameters supplied to each may be the same, or seperate (driver configuration from above). The second part of the configuration is a set of parameters supplied from the client to the receiving server that contain parameters specific to a given transfer (client service from above).

For example, a resource may supply a read-only account to allow clients to select a destination, while a read-write account is supplied to the receiving server to perform the physical move.

Line: 57 to 57

Receiving Server Driver

Added:
>
>
This is a resource' implementation of edu.umiacs.pawn.resource.DataMover.

The receiving server driver gets a copy of the global parameters along with a set of client specified parameters that are specific to a given package transfer. These parameters, and a transfer context are passed into the datamover driver. In addition, pawn assembles a set of manifests and items that are to be ingested into the resource.

Depending on what needs to be ingested, one of the two processes are followed.

List of manifests


Changed:
<
<
packageingestion.png
>
>
packageingestion.png

Item only ingestion


Changed:
<
<
packageingestionitems.png
>
>
packageingestionitems.png

When a list of manifests is to be processed, all children under that amnifest are also added to the list.

Line: 78 to 80

Driver Configuration

Added:
>
>
This is the resrouce' implementation of edu.umiacs.pawn.resource.ConfigurationGuiPanel.

This component is initialized with the client and mover level parameters (will be empty if this is a new resource). It returns seperate client and mover parameters.


Client Service
Added:
>
>
This is the resrouce' implementation of edu.umiacs.pawn.resource.ClientGuiPanel.

This component is initialized with the client parameters supplied from the driver configuration. It returns a set of parameters that is set as the client portion of the confing to the mover.

Quick guide to creating a resource

1. create classes that implement the three driver components
ClientGuiPanel, ConfigurationGuiPanel, DataMover
2. Create your factory using the simpleresourcefactory
package edu.umiacs.pawn.resource.srb;

import edu.umiacs.pawn.resource.SimpleResourceFactory;
import edu.umiacs.pawn.resource.srb.gui.SRBClientChooser;
import edu.umiacs.pawn.resource.srb.gui.SRBResourceConfiguration;

public class SRBFactory extends SimpleResourceFactory<SRBClientChooser,SRBResourceConfiguration,Transport>
{
    
    /** Creates a new instance of SRBFactory */
    public SRBFactory()
    {
        super(SRBClientChooser.class, SRBResourceConfiguration.class, Transport.class);
    }
    
}


META FILEATTACHMENT archive-push.dia attr="" comment="Dia original" date="1139428625" path="archive-push.dia" size="2387" user="MikeSmorul" version="1.3"
META FILEATTACHMENT archive-push.png attr="h" comment="" date="1139428638" path="archive-push.png" size="30437" user="MikeSmorul" version="1.3"
Changed:
<
<
META FILEATTACHMENT packageingestionitems.dia attr="" comment="" date="1141171541" path="packageingestionitems.dia" size="2027" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestionitems.png attr="h" comment="" date="1141171558" path="packageingestionitems.png" size="11111" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestion.dia attr="" comment="" date="1141172061" path="packageingestion.dia" size="3344" user="MikeSmorul" version="1.2"
META FILEATTACHMENT packageingestion.png attr="h" comment="" date="1141172076" path="packageingestion.png" size="23083" user="MikeSmorul" version="1.2"
>
>
META FILEATTACHMENT packageingestionitems.dia attr="" comment="" date="1152546266" path="packageingestionitems.dia" size="2232" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestionitems.png attr="h" comment="" date="1152546290" path="packageingestionitems.png" size="13142" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestion.dia attr="" comment="" date="1152546529" path="packageingestion.dia" size="3482" user="MikeSmorul" version="1.2"
META FILEATTACHMENT packageingestion.png attr="h" comment="" date="1152546547" path="packageingestion.png" size="25487" user="MikeSmorul" version="1.2"
 <<O>>  Difference Topic PawnPublishing (r1.4 - 01 Mar 2006 - MikeSmorul)

META TOPICPARENT PAWN

Archive Resources in PAWN

Line: 21 to 21

For example, a resource may supply a read-only account to allow clients to select a destination, while a read-write account is supplied to the receiving server to perform the physical move.

Changed:
<
<
Workflow for using a resource
>
>
Workflow for configuring a resource

archive-push.png
Line: 53 to 53

4. Receiving server
bulk loads all available drivers and gets configuration updates.
Added:
>
>

Component Details


Added:
>
>
Receiving Server Driver

The receiving server driver gets a copy of the global parameters along with a set of client specified parameters that are specific to a given package transfer. These parameters, and a transfer context are passed into the datamover driver. In addition, pawn assembles a set of manifests and items that are to be ingested into the resource.

Depending on what needs to be ingested, one of the two processes are followed.

List of manifests


packageingestion.png

Item only ingestion


packageingestionitems.png

When a list of manifests is to be processed, all children under that amnifest are also added to the list.

During transfer, the transfer context passed in during set parameters may be queried to find out information about the current item, metadata, or manifest. This should be used to discover the environment that an item exists in. Please refer to the TransferContext documentation for information on what is available.

From PAWNs perspective, the mover does not do any work until the processXX methods of the mover are called. At this time, it's expected the mover will supply PAWN with information about where the item was placed in the resource. This information is added to the packages audit log.

Driver Configuration

Client Service


META FILEATTACHMENT archive-push.dia attr="" comment="Dia original" date="1139428625" path="archive-push.dia" size="2387" user="MikeSmorul" version="1.3"
META FILEATTACHMENT archive-push.png attr="h" comment="" date="1139428638" path="archive-push.png" size="30437" user="MikeSmorul" version="1.3"
Added:
>
>
META FILEATTACHMENT packageingestionitems.dia attr="" comment="" date="1141171541" path="packageingestionitems.dia" size="2027" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestionitems.png attr="h" comment="" date="1141171558" path="packageingestionitems.png" size="11111" user="MikeSmorul" version="1.1"
META FILEATTACHMENT packageingestion.dia attr="" comment="" date="1141172061" path="packageingestion.dia" size="3344" user="MikeSmorul" version="1.2"
META FILEATTACHMENT packageingestion.png attr="h" comment="" date="1141172076" path="packageingestion.png" size="23083" user="MikeSmorul" version="1.2"
 <<O>>  Difference Topic PawnPublishing (r1.3 - 09 Feb 2006 - MikeSmorul)

META TOPICPARENT PAWN
Changed:
<
<

Pushing data out of PAWN

>
>

Archive Resources in PAWN


Changed:
<
<
Pushing data out of PAWN and into more permanent storage is done through 3rd party transfer triggered from a client that moves data from a receiving server to somewhere. This transfer requires two parts. First the client needs to specify in a target-specific mannor where the data is to be pushed. (IE, what directory, ftp server, collection, etc). Second, the receiving server has to have a driver for the specified target that does the physical push. In addition to moving the data, the driver should also provide a handle back to PAWN containing information necessary to access the data.
>
>
Pushing data out of PAWN and into more permanent storage is done by the receiving server using archival resources. The push is a 3rd party transfer triggered by a client. This transfer requires two parts. First the client that initiates the transfer. This client needs to specify where the data is to be pushed, and what data is to be pushed. (IE, what directory, ftp server, collection, from which package etc). Second, the receiving server has to have a driver for the archive resource that does the physical transfer. In addition to moving the data, the driver will also provide a handle back to PAWN containing information necessary to access the data. This handle will be logged with the package.

Changed:
<
<
As the driver and it's configuration may vary from domain to domain, PAWN will need to allow administrators to store customized sets of drivers and parameters.
>
>
Archive resources and it's configuration will vary from domain to domain. In addition to domain level configuration, additional parameters specific to the package being pushed may also need to be supplied by the client. The domain level configuration and client specific parameters need to be supplied to the receiving server driver to complete the transfer.

Components in a resource

Changed:
<
<
  • Receiving server driver - Receives a complete set of parameters and handle to a set of objects in a client package that are to be transfered. The parameters should contain all information required to connect to the destination resource and location in that resource to push data.
>
>
  • Receiving server driver - Receives a complete set of parameters and list of package objects that are to be transfered. The parameters should contain all information required to connect to the destination resource and location in that resource to push data.

Changed:
<
<
  • Client service - Chooser GUI used to select where in the backend resource to store the data.
>
>
  • Client service - Chooser GUI used to select where in the backend resource to store the data. Client also supplies parameters that may be specific to the package being ingested

  • Driver configuration - Configuration GUI to specify driver class, and any global parameters required for the receiving server driver, and any parameters needed for the client gui.

Configuration Design

Changed:
<
<
The configuration is generated in two parts. First is general parameters used to configure the receiving server driver and client gui. parameters supplied to each may be the same, or seperate. For example, a configuration read-only account in the backend resource may be used to allow clients to select a destination, while a read-write account is supplied to the receiving server to perform the physical move. The second part of the configuration is a set of parameters supplied from the client to the receiving server that contain parameters specific to a given transfer.
>
>
The configuration is generated in two parts. First is general parameters used to configure the receiving server driver and client gui. Parameters supplied to each may be the same, or seperate. The second part of the configuration is a set of parameters supplied from the client to the receiving server that contain parameters specific to a given transfer.

For example, a resource may supply a read-only account to allow clients to select a destination, while a read-write account is supplied to the receiving server to perform the physical move.


Workflow for using a resource

Line: 35 to 37

5. Push to archive
The receiving server connects to the resource and pushes data using the resource global parameters along with the client supplied package and parameters.

Changed:
<
<
6. Handle to archive
The resource supplies some handle to the ingested files. PAWN then logs the user who triggered the transfer, handle to the archived data and attaches it to the package.
>
>
6. Handle to archived data
The resource supplies some handle to the ingested files. PAWN then logs the user who triggered the transfer, handle to the archived data and attaches it to the package.

Loading new resources

Changed:
<
<
There is another problem with resources. How does the required code propegate to the three components that use it? The solution is to register or load the resources drivers on the scheduler prior to performing any configuration or ingestion action. After registration, all necessary jar files will be downloaded to the gui's or receiving server as needed.
>
>
There is another problem with resources. How does the required code propegate to the three components that use it? The solution is to register or load the resources drivers on the scheduler prior to performing any configuration or ingestion action. After registration, all necessary jar files will be downloaded by the gui's or receiving server as needed.

The workflow for registering and distributing packages follows.

Added:
>
>
1. Load resource jar files
Any necessary jar files are loaded to the receiving server.

2. Scheduler gui
User chooses to create a configuration for a driver in a particular domain. If the gui does not have a local copy of the driver in it's ResourceManager, a copy of the jar files are retrieved from the scheduler and loaded into local classloader.

3. Client gui
Client chooses a particular resource configuration that will be used to load data. If the driver for the resource isn't loaded then it's retrieved and added to the local classloader.

4. Receiving server
bulk loads all available drivers and gets configuration updates.

META FILEATTACHMENT archive-push.dia attr="" comment="Dia original" date="1139428625" path="archive-push.dia" size="2387" user="MikeSmorul" version="1.3"
 <<O>>  Difference Topic PawnPublishing (r1.2 - 08 Feb 2006 - MikeSmorul)

META TOPICPARENT PAWN

Pushing data out of PAWN

Line: 6 to 6

As the driver and it's configuration may vary from domain to domain, PAWN will need to allow administrators to store customized sets of drivers and parameters.

Changed:
<
<
Components
>
>
Components in a resource

  • Receiving server driver - Receives a complete set of parameters and handle to a set of objects in a client package that are to be transfered. The parameters should contain all information required to connect to the destination resource and location in that resource to push data.
Changed:
<
<
  • Client service - Chooer GUI used to select where in the backend resource to store the data.
>
>
  • Client service - Chooser GUI used to select where in the backend resource to store the data.

  • Driver configuration - Configuration GUI to specify driver class, and any global parameters required for the receiving server driver, and any parameters needed for the client gui.
Line: 19 to 19

The configuration is generated in two parts. First is general parameters used to configure the receiving server driver and client gui. parameters supplied to each may be the same, or seperate. For example, a configuration read-only account in the backend resource may be used to allow clients to select a destination, while a read-write account is supplied to the receiving server to perform the physical move. The second part of the configuration is a set of parameters supplied from the client to the receiving server that contain parameters specific to a given transfer.

Changed:
<
<
Workflow
>
>
Workflow for using a resource

archive-push.png
Changed:
<
<
1. Global driver and client configuration
>
>
1. Global driver and client configuration
Scheduler gui is used to configure global properties for an instance of a resource, and to configure properties that the client may need to know when using the resource gui.

Changed:
<
<
2. Global driver configuration
>
>
2. Global driver configuration
The receiving server gets a copy of global parameters for each configuration instance of a resource.

Changed:
<
<
3. Client browse parameters
>
>
3. Client browse parameters
Prior to displaying the resource client GUI, the client will download any necessary configuration options from the scheduler

Changed:
<
<
4. Destination parameters and package selection
>
>
4. Destination parameters and package selection
After the client resource GUI runs, parameters are taken from the gui along with the selected part of a package and both are sent to teh receiving server.

5. Push to archive
The receiving server connects to the resource and pushes data using the resource global parameters along with the client supplied package and parameters.

6. Handle to archive
The resource supplies some handle to the ingested files. PAWN then logs the user who triggered the transfer, handle to the archived data and attaches it to the package.

Loading new resources

There is another problem with resources. How does the required code propegate to the three components that use it? The solution is to register or load the resources drivers on the scheduler prior to performing any configuration or ingestion action. After registration, all necessary jar files will be downloaded to the gui's or receiving server as needed.

The workflow for registering and distributing packages follows.


Deleted:
<
<
5. Push to archive

Deleted:
<
<
6. Handle to archive

META FILEATTACHMENT archive-push.dia attr="" comment="Dia original" date="1139428625" path="archive-push.dia" size="2387" user="MikeSmorul" version="1.3"
META FILEATTACHMENT archive-push.png attr="h" comment="" date="1139428638" path="archive-push.png" size="30437" user="MikeSmorul" version="1.3"
 <<O>>  Difference Topic PawnPublishing (r1.1 - 08 Feb 2006 - MikeSmorul)
Line: 1 to 1
Added:
>
>
META TOPICPARENT PAWN

Pushing data out of PAWN

Pushing data out of PAWN and into more permanent storage is done through 3rd party transfer triggered from a client that moves data from a receiving server to somewhere. This transfer requires two parts. First the client needs to specify in a target-specific mannor where the data is to be pushed. (IE, what directory, ftp server, collection, etc). Second, the receiving server has to have a driver for the specified target that does the physical push. In addition to moving the data, the driver should also provide a handle back to PAWN containing information necessary to access the data.

As the driver and it's configuration may vary from domain to domain, PAWN will need to allow administrators to store customized sets of drivers and parameters.

Components

  • Receiving server driver - Receives a complete set of parameters and handle to a set of objects in a client package that are to be transfered. The parameters should contain all information required to connect to the destination resource and location in that resource to push data.

  • Client service - Chooer GUI used to select where in the backend resource to store the data.

  • Driver configuration - Configuration GUI to specify driver class, and any global parameters required for the receiving server driver, and any parameters needed for the client gui.

Configuration Design

The configuration is generated in two parts. First is general parameters used to configure the receiving server driver and client gui. parameters supplied to each may be the same, or seperate. For example, a configuration read-only account in the backend resource may be used to allow clients to select a destination, while a read-write account is supplied to the receiving server to perform the physical move. The second part of the configuration is a set of parameters supplied from the client to the receiving server that contain parameters specific to a given transfer.

Workflow

archive-push.png

1. Global driver and client configuration

2. Global driver configuration

3. Client browse parameters

4. Destination parameters and package selection

5. Push to archive

6. Handle to archive

META FILEATTACHMENT archive-push.dia attr="" comment="Dia original" date="1139428625" path="archive-push.dia" size="2387" user="MikeSmorul" version="1.3"
META FILEATTACHMENT archive-push.png attr="h" comment="" date="1139428638" path="archive-push.png" size="30437" user="MikeSmorul" version="1.3"
View topic | Diffs | r1.6 | > | r1.5 | > | r1.4 | More
Revision r1.1 - 08 Feb 2006 - 19:18 - MikeSmorul
Revision r1.6 - 02 Nov 2007 - 20:47 - MikeSmorul