The organization, team, or single employee that is in
charge of correctly distributing and installing the software
The organization or team that develops the software.
The organization that owns the rights for that software and
decides, among other things, the Deployment Policies. For
simplicity, is intended to be coincident with the Software
The single person that will use the software deployed on
the client platform.
As in Figure 2.2, the Producer is in charge of the Publication Phase. This is not exact because
this stage could be thought of as being split in two substages, in which the Software Producer
is responsible for issuing to the Distributor the resources that compose the application to be
deployed, together with the instructions on how to compose those pieces during the installa-
tion. Another item that the Software Producer releases to the Distributor is the set of policies
the owner wants to put into effect for its software. The rest of the Publication Phase is the
Distributor's job. The “real” publication is external, allowing resources to be available to the
wanted End-Users. In this second publication subphase, only the resources to be assembled on
client platforms are available to End-Users, whereas Deployment Policies and resource
descriptions are not released publicly.
The Producer-To-Distributor Publication Phase is a bit more than a usual software
release. Together with the resources (JAR files, native libraries, and other material
needed for the program correct installation), the Resource Descriptions and the
Deployment Policies are released as well. This phase is directed to the Distributor
Finally, as published, a given release or a whole software application could be “unpublished”
or removed from the Deployment Server. That doesn't mean the application cannot run on
clients that have already installed it. It simply means that it will no longer be available for any
kind of user for distribution and installation in the future.
Let's refine the AH Execution Phase as well. From the first time the AH is launched, AH has
to analyze the client situation so that it (or the deployment server, or both) has decided what
action must be taken. This will affect the application itself. Let's see how.