ProfileService

ProfileService Overview

The ProfileService is an generalization of the jbossas 4.x server configuration notion. In jbossas 4.x a server configuration is a collection of services and applications loaded from the deploy directory by the the deployment scanner service.

 

The deployment metadata is an integral part of the deployment and admin changes must be applied to the deployment descriptors. Deployments     have no declared admin interface.

 

The existence of deployments in the configuration directory associate the deployment with the configuration and indicate it should     be deployed.

 

There are typically many different jmx mbeans that result from a deployment, and known mbean exists for know JavaEE deployment models, but there is no means to query and edit a deployment short of knowing its mbeans. Changes to these mbeans are not saved as updates to the deployment.

 

The ProfileService is a generalization of the server configuration. The ProfileService is a collection of named profiles similar to the server/${server.name}/ configuration directories. The ProfileService extends the configuration in the following ways:

 

  • A profile contains deployments, but they may not be active. A deployment can be disabled in a profile. In addition a deployment may contain on demand services that are started when required.

  • A deployment has a management interface. An admin tool can query the management interface and make modifications to the exposed admin properties. These admin changes are separate from the deployment and override the deployment descriptor settings.

  • Deployments can be propagated to a remote server without relying on the deployment URL for the transport.

 

Terminology

  • ProfileService Bootstrap
    The ProfileService Bootstrap describes the process of determining which Profiles to include and deploying the associated (profile-) deployments of a specific AS configuration (instance)
  • Configuration

    In the context of ProfileService a configuration represents a specific configuration for a AS instance (equivalent to all, default, web).

  • Profile
    A Profile is a named collection of preconfigured deployments with potential management overrides. Profile descriptors have to be self-contained, in that profiles can be combined and the result is a complete description of the capabilities and requirements. Multiple profiles will be used to define a configuration. In a nutshell a profile is a module description of what deployments have to be deployed to provide a certain service.

             

             

    APIs that Comprise the ProfileService

    The ProfileService is logically made up of the following apis:

    • org.jboss.profileservice.spi.ProfileService - The entry point service for accessing/administiring server profiles
    • org.jboss.profileservice.spi.Profile - A profile represents a named collection of deployments on a server
    • org.jboss.deployers.spi.management.ManagementView - An spi for querying profiles for the deployemnt management object interface roots.
    • org.jboss.deployers.spi.management.deploy.DeploymentManager - An interface for uploading and controlling deployments in a profile.

     

    In addition, a org.jboss.profileservice.spi.DeploymentRepository SPI exists for abstracting the way in which Profiles are stored, but its current implementation is not seen as adequate for a proper SPI that will stand up as we look to integrate with non-filesystem stores.

    Issues

     

    • The current repository implementation is based on serialization of the ManagedObjects associated with attachments as xml. Whether this is a sufficiently robusts implementation as versioning and more complicated ManagedObjects are used remains to be seen.

    • Versioning of running components. When admin changes are applied that affect runtime mc component properties, there should be a graceful transition of existing session to the new deployment components. This requires wiring of the appropriate lifecycle aspects to the property change.

    • A profile can be updated independent of the server running. Deployments can be added and removed, as well as edited without the full server running.

     

    ProfileService in 5.x

     

    As of 5.0.0.GA the ProfileService has a basic bootstrap implementation (org.jboss.system.server.profileservice.basic.ProfileServiceImpl) that does not support admin edits, and a full featured profile service implementation (org.jboss.system.server.profileservice.repository.ProfileServiceImpl) that supports admin edits. The repository based implementation is now the default. Admin edits are stored under the server data/

     

    Starting with the 5.1.0.Beta1 release the basic bootstrap implementation has been removed. This release also some additional changes to the profileservice which are described ProfileService overview in 5.x.

    Current State

     

    AS6ProfileServiceDesign

     


     

    See Also

    ManagedObjects

    Remote Access to ProfileService

    JBossMCProfileServiceBootstrap