OASIS: Integrating Standards for Web Services, Business

Download Report

Transcript OASIS: Integrating Standards for Web Services, Business

www.oasis-open.org
Solution Deployment Descriptor:
An OASIS Standard for
Deploying Composable Solutions
OASIS Symposium 2008
Tutorial
Presenters:
Brent A. Miller
IBM Corp.
Chair, OASIS SDD TC
Randy George
IBM Corp.
OASIS SDD TC
Co-Author:
Julia McCarthy, IBM Corp.,
Secretary & Editor, OASIS SDD TC
SDD Tutorial
OASIS Symposium 2008
1
Tutorial Outline

Survey the use of the OASIS Solution
Deployment Descriptor (SDD) standard




SDD Tutorial
Review today’s deployment problems and how
SDD can address many of these problems
Discuss deployment lifecycle management of
composable software, including SOA solutions
Explore SDD details with realistic examples
and use cases
Recognize the benefits of using SDD
OASIS Symposium 2008
2
Intended Audience

Managers, architects, developers, practitioners,
service personnel, IT administrators, solution
aggregators, deployers and others who



Deploy software and/or
Package software to be deployed
Anyone interested in better understanding
software deployment issues and solutions,
in particular the emerging OASIS SDD standard
SDD Tutorial
OASIS Symposium 2008
3
Learning Objectives




Level-set today’s problems associated with
software deployment
Understand how the OASIS SDD emerging
standard helps to address these problems
Learn what is included within the SDD standard
Learn how to use the SDD standard




Examples with details showing SDD elements
and attributes
Illustrative use case
How SDDs are produced and consumed, including tooling
Take away the benefits of using SDD
SDD Tutorial
OASIS Symposium 2008
4
Let’s Get Started






Today’s Deployment Problems
The OASIS SDD Standard
Examples with Details
Illustrative Use Case
Benefits of SDD
Resources
SDD Tutorial
OASIS Symposium 2008
5
Deployment Uncertainty, Lack of Control
Can I successfully deploy this software?
If so, what will happen to my IT and business environment?





Customers cannot adequately plan changes to
their environments
Customers often rely on a lot of testing
and “reverse engineering”
Customers must analyze individual deployment artifacts
for the specific environments where they will be deployed
Once customers determine how to deploy the solution,
they are uncertain about the impacts to the environment
Customers lose control of software deployment
life cycle management

SDD Tutorial
Installation, configuration, localization, maintenance
and uninstallation
OASIS Symposium 2008
6
www.oasis-open.org
Basic Deployment Knowledge Needed
Software deployers need some basic information to adequately plan and
execute deployments without disrupting IT & business environments
Package Identity
Requirements
What is this thing?
What is needed to deploy this package?
What does it contain?
What must be maintained for the lifetime
of the deployment?
Package Variability
Software Package
What parts need to be
deployed?
(logical, not physical)
SDD Tutorial
OASIS Symposium 2008
Results
What does this provide?
What effect will this have on
my environment?
7
Similar Knowledge Required for
Change Management Processes
Change Management Process (example)
Filter/
Prioritize
Change
Systems
Management
Storage
Assess
Change
Impact
…
Approve
Change
Monitoring
Application
Server
Implement
Change
Provisioning
…
Network
Application
Database
Verify
Change
CMDB
…
Change
Management
Data
IT Infrastructure
Server
Increasing emphasis on change control and change management




Standardized change management processes
Changes – simple or complex – need to be tested in pre-production environments
Changes – simple or complex – need to be assessed, approved, scheduled
and implemented in production environments
Desire to leverage management tools and knowledge to automate
change management process
SDD Tutorial
OASIS Symposium 2008
8
Producing & Consuming this Knowledge

SOA enables already deployed services to be composed, but

Necessary deployment information (what is needed, what changes will
occur in the deployment environment) is not standardized or externalized
System
Integrator
Development
Management
Application
Installation
Program
Production VLAN
Intent and requirements known by software developers is not externalized during
composition of solutions, deployment planning and deployment operations
SDD Tutorial
OASIS Symposium 2008
9
And the World is Getting More Complex
Holistic solution deployment inhibited by inability to aggregate heterogeneous components
(from multiple suppliers) because deployment information not externalized or standardized
Increasing emphasis on "solutions"




Combination of hardware and software components supporting a defined business process
Solutions must be installed, configured, deployed, monitored, operated, remediated, maintained, ...
These tasks must be driven from a solution perspective
Post-purchase experience should not degenerate to multiple point products and solution components
SDD Tutorial
OASIS Symposium 2008
10
Let’s Keep Moving






Today’s Deployment Problems
The OASIS SDD Standard
Examples with Details
Illustrative Use Case
Benefits of SDD
Resources
SDD Tutorial
OASIS Symposium 2008
11
www.oasis-open.org
SDD: Who
Current Technical Committee Participants
(includes voting members, members, observers)
1 individual member
SDD Tutorial
OASIS Symposium 2008
12
www.oasis-open.org
SDD: Status

Requirements, use cases, glossary complete

SDD and GGF-ACS Alignment





Both adopted SDD PackageDescriptor
Version 1.0 specification, schema Public Review
January 18 – March 18, 2008
Committee Specification April 2008
OASIS Standard May 2008 New!
Expository documents available



Primer
Starter Profile
Examples
SDD Tutorial
OASIS Symposium 2008
13
SDD: Ecosystem


Tooling can help with producing and consuming SDDs
Tooling is being developed



Processing XML documents to accomplish their intent
requires runtime code



Eclipse COSMOS Open-Source project
Tools to assist with SDD creation
Eclipse COSMOS Open-Source project
Runtime code foundation to assist with building deployment runtimes
that process SDDs
Eclipse COSMOS project is not an OASIS effort but


Several COSMOS collaborators are also SDD participants
It is intended to ease and accelerate SDD standard adoption
SDD Tutorial
OASIS Symposium 2008
14
www.oasis-open.org
SDD: Scope of the Standard

SDD consists of declarative descriptive information



Useful across the software complexity spectrum



Not procedural; does not address APIs or protocols
Standardized, externalized deployment metadata
From single-target, single-artifact installation
to distributed, complex solution lifecycle management
From software fixes to complete products
Two major portions of SDD are


SDD Tutorial
Package Descriptor
Deployment Descriptor
OASIS Symposium 2008
15
www.oasis-open.org
SDD: Package Descriptor

Package descriptor includes:


Identity
Content







Deployment descriptor
Artifacts
Documentation and readme files
License agreements
Etc.
Optional digital signature
SDD package descriptor adopted by Open Grid
Forum Application Content Services (OGF-ACS)
standard as their software packaging specification
SDD Tutorial
OASIS Symposium 2008
16
SDD: Package Descriptor XSD
Standardized,
Externalized
Metadata
SDD Tutorial
OASIS Symposium 2008
17
www.oasis-open.org
Deployment Descriptor Design Pattern
Based on “Content Unit / Hosting Environment” Pattern
A deployment
descriptor that
declares the
deployment
characteristics of
the content unit
Content Unit
A package descriptor
that declares the
collection of content (files)
D
A hosting
environment or
container that can
accept an artifact
A
D
Create Table
Database
D
EJB
Application
Server
An artifact
that can be
installed
D
D
SDD Tutorial
Software
Product
Operating System
OASIS Symposium 2008
Operating
System
Hardware
18
www.oasis-open.org
SDD: Deployment Descriptor

Deployment descriptor includes:


Identity
Variability




Results
Package Identity


Conditional content
Package Variability
Features
Parameters
Requirements



Requirements




Results
Environmental
resource constraints
Pre-/co-/ex-requisites
Relationships
Conditional requirements
Resources
Changes
Conditional results
Artifacts (files processed
to accomplish a
deployment operation)
Applies to Installation, Configuration and/or Localization Content
SDD Tutorial
OASIS Symposium 2008
19
SDD: Deployment Descriptor XSD
Top-Level Elements
Standardized,
Externalized
Metadata
SDD Tutorial
OASIS Symposium 2008
20
SDD: Deployment Descriptor XSD
Identity Element Expanded
Standardized,
Externalized
Metadata
Identity describes the software package
• Human-consumable descriptions
• Name, version and other identifying
characteristics of the software
• Same Identity element as Package
Descriptor
SDD Tutorial
OASIS Symposium 2008
21
SDD: Deployment Descriptor XSD
Variables Element Expanded
Standardized,
Externalized
Metadata
Variables and Parameters provide a way to
obtain and derive values from
• Resource properties
• Deployment environment
• Human deployers
Variables can then be used in SDD to influence
the deployment process
• As input arguments to artifacts
• As values for resource constraints
SDD Tutorial
OASIS Symposium 2008
22
SDD: Deployment Descriptor XSD
Requirements Element Expanded
Standardized,
Externalized
Metadata
Requirements describe what is necessary for
software to be successfully deployed
• Requirements for disk space, CPU
capacity, etc.
• Requirements for pre-requisite software,
configuration settings, etc.
SDD Tutorial
OASIS Symposium 2008
23
SDD: Deployment Descriptor XSD
ResultingResource Element Expanded
Standardized,
Externalized
Metadata
ResultingResource describes what will happen in
the deployment environment after successful
deployment, in terms of what resources will result
in the deployment environment
ResultingChange is similar; it describes what
changes will result in the deployment environment
SDD Tutorial
OASIS Symposium 2008
24
SDD: Deployment Descriptor XSD
Artifacts Element Expanded
Standardized,
Externalized
Metadata
Artifacts accomplish the deployment
operations. The Artifact element describes
artifacts, along with the inputs and outputs,
including substitution values, used when
processing those artifacts.
SDD Tutorial
OASIS Symposium 2008
25
SDD: Deployment Descriptor XSD
Other Elements Described
Standardized,
Externalized
Metadata
SDD Tutorial
Selectable Features are mechanisms to select
content portions for a particular deployment
Conditions enable flexible processing by
declaring which aspects are applicable (or can be
ignored) in certain circumstances
• Conditional content (determine if a content
element is applicable)
• Conditional Variables (choose values)
• Conditional Features (determine when a
feature is applicable)
• Conditional Resulting Resources
(determine when a particular result is
applicable)
• Conditional Completion Actions (determine
if a completion action is necessary)
Topology (logical) describes all solution
resources relevant for deployment and their
relationships
Completion Actions such as restart and logoff
can be specified as required before a deployment
operation is considered complete
OASIS Symposium 2008
26
www.oasis-open.org
SDD: Aggregation


SDD1
D1
Key SDD characteristic is ability
to author SDDs with aggregation
for composable solutions
Individual descriptors
aggregated into composite SDD
representing software solution,
rather than individual
components


SDD author for aggregated solution
uses information for each individual
software unit
Specify additional information that
applies to the aggregated solution
SDD Tutorial
OASIS Symposium 2008
SDD2
A1
A2
D2
SDD3
D3
A3
SDDAgg
DAgg AAgg
SDD1
D1
A1
SDD2
D2
A2
SDD3
D3
A3
27
www.oasis-open.org
SDD: More on Aggregation


SDD can consist of a descriptor that contains multiple content units
SDD can aggregate other packages, from other sources

Each component can be described and deployed individually by its own SDD
Individual SDDs can be aggregated into a new “entire solution” SDD

Aggregating Package Descriptor declares each Aggregated Package Descriptor


Packages can be Requisites (may be used to satisfy solution requirements)

Packages can be Solution Content (Referenced Packages)
• Can further constrain Requirements or control variability of Aggregated Packages

Aggregating Deployment Descriptor represents requirements, conditions,
dependencies, constraints, features, results for entire solution


For example, component disk space requirements are additive; the aggregating
SDD represents the total amount of disk space required for the solution
Requirements could specify software version that satisfies all components
SDD aggregation supports straightforward generation of
deployment information for composable solutions
SDD Tutorial
OASIS Symposium 2008
28
SDD: Profiles


SDD describes artifacts, deployment environment, etc.
At deployment time, specific, concrete information required



For example, operating system type, property names and values, etc.
This information is specific to deployment environment
Profiles map between metadata and deployment environment


Common “vocabulary” for SDD producer/consumer interoperability
Types, requirements, conditions, inputs/outputs, etc. for deployment
environment



For example, disk space units (megabytes or blocks)
For example, processor type and speed
OASIS SDD TC publishes Starter Profile



SDD Tutorial
Values sufficient to address published examples
Uses DMTF CIM resource model
Other Profiles can be created; these could use other resource models
OASIS Symposium 2008
29
Let’s Dive in to Some Details






Today’s Deployment Problems
The OASIS SDD Standard
Examples with Details
Illustrative Use Case
Benefits of SDD
Resources
SDD Tutorial
OASIS Symposium 2008
30
www.oasis-open.org
SDD: Example 1 (Simple)
Consider a simple software package for deploying a Java™ runtime environment (JRE)
The Deployment Descriptor:


Identifies the JRE 1.5 Package
Declares that the JRE deployment requires
an AIX® Operating System




Must be at least version 5.1
Versions 5.1 – 5.3 are “certified” (tested for compatibility)
Declares that the JRE deployment requires 2688 512-byte
blocks on /usr file system
Enables deployer to specify the logging level used during
deployment


Server with OS
Default is “INFO”
Describes the deployment Artifact, an RPM file
SDD Tutorial
OASIS Symposium 2008
31
www.oasis-open.org
SDD Example 1: InstallableUnit
The JRE InstallableUnit
The targetResourceRef attribute
identifies the resource that is
capable of processing the
InstallableUnit’s artifact.
<sdd-dd:InstallableUnit id="ID000026" targetResourceRef="os">
<sdd-dd:Identity softwareID="2000-123"> ... </sdd-dd:Identity>
<sdd-dd:Variables> ... </sdd-dd:Variables>
The InstallableUnit’s Identity provides
<sdd-dd:Requirements> ... </sdd-dd:Requirements> details about the InstallableUnit – as a unit
of packaging. Details are not shown here.
<sdd-dd:ResultingResource resourceRef="JRE">
<sdd-dd:Description>An instance of Java(TM) Runtime Environment, Standard
Edition Version 5.0 is installed as a result of this deployment </sdd-dd:Description>
<sdd-dd:Name>Java(TM) Runtime Environment, Standard Edition</sdd-dd:Name>
<sdd-dd:Version>1.5.0</sdd-dd:Version>
</sdd-dd:ResultingResource>
<sdd-dd:Artifacts> ... </sdd-dd:Artifacts>
</sdd-dd:InstallableUnit>
The artifact, requirement and variable definitions
we have already seen are defined within the
JRE.xml’s single InstallableUnit.
SDD Tutorial
The ResultingResource element describes the
JRE resource as it will exist in the deployment
environment after a successful deployment
OASIS Symposium 2008
32
www.oasis-open.org
SDD Example 1: Parameter
A “Logging Level” string input parameter
A Parameter is one of three types of
Variables and a StringParameter is
one of four types of Parameters.
A Variable’s id is used to refer to
its value in variable expressions.
<sdd-dd:Variables>
<sdd-dd:Parameters>
<sdd-dd:StringParameter sensitive="false" id="LoggingLevel" defaultValue="Level.INFO">
<sdd-dd:Description>Default logging level for logging messages coming from
JRE</sdd-dd:Description>
<sdd-dd:ValidValue>Level.FINEST</sdd-dd:ValidValue>
<sdd-dd:ValidValue>Level.FINER</sdd-dd:ValidValue>
Every Variable can define a
<sdd-dd:ValidValue>Level.FINE</sdd-dd:ValidValue>
<sdd-dd:ValidValue>Level.CONFIG</sdd-dd:ValidValue>
default value.
<sdd-dd:ValidValue>Level.SEVERE</sdd-dd:ValidValue>
StringParameters can define
<sdd-dd:ValidValue>Level.INFO</sdd-dd:ValidValue>
any number of valid values.
<sdd-dd:ValidValue>Level.WARNING</sdd-dd:ValidValue>
</sdd-dd:StringParameter>
</sdd-dd:Parameters>
</sdd-dd:Variables>
The reference to a variable in a variable expression
value="$(LoggingLevel)"
SDD Tutorial
indicates how and when it plays a role in the
deployment. A variable with no reference would be
meaningless. This reference comes from the JRE’s
Artifact Argument definition shown later.
OASIS Symposium 2008
33
www.oasis-open.org
SDD Example 1: Requirement
Definition of JRE Artifact’s Disk Space Requirement
The operation
attribute tells us
which artifacts are
associated with
this Requirement.
The install
operation is
associated with
the InstallArtifact.
<sdd-dd:Requirement id="UsrDiskSpace" operation="install">
<sdd-dd:Description>This JRE requires 2688 512-byte
blocks on the /usr file system
</sdd-dd:Description>
<sdd-dd:ResourceConstraint id="UsrDiskSpaceRequirement“
resourceRef="UsrFilesys" >
<sdd-dd:ConsumptionConstraint>
<sdd-dd:PropertyName>cim:CIM_FileSystem.AvailableSpace
</sdd-dd:PropertyName>
<sdd-dd:Value unit="512-blocks">2688</sdd-dd:Value>
</sdd-dd:ConsumptionConstraint>
</sdd-dd:ResourceConstraint>
</sdd-dd:Requirement >
The property name comes from the Starter Profile.
SDD Tutorial
The resourceRef attribute tells us that the
constraints defined in the ResourceConstraint
element all apply to the UsrFileSys
resource. In this example, there is only a
single constraint, a consumption constraint,
defined on the UsrFileSys.
OASIS Symposium 2008
34
www.oasis-open.org
SDD Example 1: Artifact
JRE Artifact definition
The element name InstallArtifact
tells us that this artifact is used for
install, i.e. creation, of a resource.
The type attribute tells us that this
artifact is an RPM file.
<sdd-dd:Artifacts>
<sdd-dd:InstallArtifact type="rpm"
contentRef="JRE_RPM">
<sdd-dd:Arguments>
<sdd-dd:Argument name="LogLevel"
value="$(LoggingLevel)" />
</sdd-dd:Arguments>
JRE_RPM is the id of the Content
</sdd-dd:InstallArtifact>
element in the package descriptor that
</sdd-dd:Artifacts>
contains metadata about the RPM file
used to deploy the JRE.
In this example, the JRE RPM takes a single input
argument named LogLevel. Its value is determined
by the value of the variable LoggingLevel defined
elsewhere in the SDD (shown earlier in this example).
SDD Tutorial
OASIS Symposium 2008
35
www.oasis-open.org
SDD: Example 2 (Composite)

Consider a software solution that consists of:


3-tier J2EE application with user interface,
backend business logic and database connection
Optional J2EE simple client





Requires JRE runtime with a minimum version
Client
App server
Database
JRE runtime of version that satisfies the J2EE
simple client requirement
Optional German and French language packs for the J2EE simple client
Each component can be described individually by its own SDD
Aggregated Package Descriptor represents all solution content


Application
Aggregated Deployment Descriptor represents requirements, dependencies,
conditions, constraints, selectable features and resulting changes that apply to
the complete solution
SDD aggregation supports straightforward generation of deployment
information for composable solutions
SDD Tutorial
OASIS Symposium 2008
36
SDD Example: CompositeInstallable
www.oasis-open.org
CompositeInstallable of the CompositeApp SDD
The CompositeInstallable element
organizes the SDD’s content for
one operation.
<sdd-dd:CompositeInstallable id="CompApp" operation="install">
<sdd-dd:Identity softwareID="6000-123"> ... </sdd-dd:Identity>
<sdd-dd:Variables> ... </sdd-dd:Variables>
<sdd-dd:Languages> ... </sdd-dd:Languages>
<sdd-dd:BaseContent>
<sdd-dd:ContainedPackage id="SimpleCompositeApp_PKG"
contentRef="SC_pkg">
In the CompositeApp sample SDD, the
...
single CompositeInstallable supports the
install operation.
</sdd-dd:ContainedPackage>
</sdd-dd:BaseContent>
The SelectableContent includes Features
<sdd-dd:SelectableContent>
that can be selected for this particular
deployment (detailed later).
<sdd-dd:Features> … </sdd-dd:Features>
<sdd-dd:ContainedPackage id="SimpleAppClient_PKG" contentRef="SAC_pkg">
...
The LocalizationContent (German and French
</sdd-dd:ContainedPackage>
language packages) would appear here
</sdd-dd:SelectableContent>
<sdd-dd:LocalizationContent> ... </sdd-dd:LocalizationContent>
</sdd-dd:CompositeInstallable>
SDD Tutorial
OASIS Symposium 2008
37
SDD Example: ContainedPackage
www.oasis-open.org
CompositeInstallable of the CompositeApp SDD
ContainedPackages define the
<sdd-dd:ContainedPackage id="SimpleCompositeApp_PKG" contentRef="SC_pkg">
Requirements, Inputs, Outputs and
<sdd-dd:Arguments>
ResourceMappings relevant for
<sdd-dd:Argument name="JDBC_User" value="$(DatabaseUserName)"/>
using the aggregated SDD within
<sdd-dd:Argument name="JDBC_Password" value="$(DatabaseUserPassword)"/>
the aggregation.
</sdd-dd:Arguments>
<sdd-dd:ResultingResourceMap resourceRef="SimpleJ2eeApp" foreignId="SimpleJ2eeApp">
The Arguments shown here
<sdd-dd:Name>Simple Application</sdd-dd:Name>
provide values for input
</sdd-dd:ResultingResourceMap>
parameters defined within the
SimpleCompositeApp
<sdd-dd:ResultingResourceMap resourceRef="SimpleJ2eeServlet"
SDD.
foreignId="SimpleJ2eeServlet">
<sdd-dd:Name>Simple Application Servlet</sdd-dd:Name>
</sdd-dd:ResultingResourceMap>
<sdd-dd:ResultingResourceMap resourceRef="SimpleDatabase" foreignId="SimpleDatabase">
<sdd-dd:Name>Simple Application Database</sdd-dd:Name>
The ResultingResourceMap elements identify
</sdd-dd:ResultingResourceMap>
the association between resources created by
<sdd-dd:RequiredResourceMap resourceRef="J2eeServletServer"
SimpleCompositeApp and resources
foreignId="J2eeServletServer"/>
defined in the CompositeApp's topology.
<sdd-dd:RequiredResourceMap resourceRef="J2eeAppServer"
foreignId="J2eeAppServer"/>
The
RequiredResourceMap elements identify
<sdd-dd:RequiredResourceMap resourceRef="DatabaseServer"
theforeignId="DatabaseServer"/>
associations between resources required
by SimpleCompositeApp and resources
</sdd-dd:ContainedPackage>
SDD Tutorial
OASIS Symposium 2008
defined in the CompositeApp’s topology.
38
SDD Example: Features
CompositeApp Client Feature with Multiplicity
www.oasis-open.org
Features identify the content
elements that will be used if the
feature is selected. In this example,
the ContainedPackage for the
SimpleAppClient is selected by
the CompositeApp’s
ClientFeature Feature.
<sdd-dd:SelectableContent>
<sdd-dd:Features>
<sdd-dd:Feature id="ClientFeature" addOn="true">
<sdd-dd:DisplayName>Thick Client for Simple Application</sdddd:DisplayName>
<sdd-dd:Multiplicity multiplesAllowed="true"/>
<sdd-dd:ContentElement contentElementRef="SimpleAppClient_PKG" />
</sdd-dd:Feature>
</sdd-dd:Features>
<sdd-dd:ContainedPackage id="SimpleAppClient_PKG" contentRef="SAC_pkg">
...
The Multiplicity element indicates that the
</sdd-dd:ContainedPackage>
Feature can be selected multiple times
</sdd-dd:SelectableContent>
resulting in the SimpleAppClient
being deployed multiple times.
SDD Tutorial
OASIS Symposium 2008
39
SDD Example 2: Topology
Topology of the CompositeApp SDD
www.oasis-open.org
The composite application can be
distributed across 4 servers; these
are represented as 4 operating
system resources in Topology.
<sdd-dd:Topology>
<sdd-dd:Resource id="servlet_os" type="cim:CIM_OperatingSystem">
<sdd-dd:HostedResource id="J2eeServletServer" type="cim:CIM_J2eeServer">
<sdd-dd:HostedResource id="SimpleJ2eeServlet" type="cim:CIM_J2eeServlet"/>
</sdd-dd:HostedResource>
The resource ids are
</sdd-dd:Resource>
used to refer to these
<sdd-dd:Resource id="appServer_os" type="cim:CIM_OperatingSystem">
resources in
<sdd-dd:HostedResource id="J2eeAppServer" type="cim:CIM_J2eeServer">
<sdd-dd:HostedResource id="SimpleJ2eeApp" type="cim:CIM_J2eeApplication"/> Requirements,
Conditions, Variables
</sdd-dd:HostedResource>
and ResultingResources
</sdd-dd:Resource>
<sdd-dd:Resource id="os" type="cim:CIM_OperatingSystem">
<sdd-dd:HostedResource id="DatabaseServer" type="cim:CIM_DatabaseSystem">
<sdd-dd:HostedResource id="SimpleDatabase" type="cim:CIM_CommonDatabase"/>
</sdd-dd:HostedResource>
</sdd-dd:Resource>
<sdd-dd:Resource id="Client_OS" type="cim:CIM_OperatingSystem">
<sdd-dd:HostedResource id="JRE" type="cim:CIM_InstalledProduct"/>
<sdd-dd:HostedResource id="SimpleAppClient" type="CIM_Application"/>
</sdd-dd:Resource>
</sdd-dd:Topology>
SDD Tutorial
OASIS Symposium 2008
40
Let’s Keep Moving






Today’s Deployment Problems
The OASIS SDD Standard
Examples with Details
Illustrative Use Case
Benefits of SDD
Resources
SDD Tutorial
OASIS Symposium 2008
41
www.oasis-open.org
SDD: Illustrative Use Case
Complex Aggregated Solution

Consider a software solution that consists of:







A Web server
An application server
A database
One or more applications
Web server
App server
Database
Each component can be described individually by its own SDD
Individual SDDs can be aggregated into a new “entire solution” SDD
Aggregated Package Descriptor represents all solution content

Aggregated Deployment Descriptor represents requirements, dependencies,
conditions, constraints, selectable features and resulting changes that apply to
the complete solution



Applications
For example, component disk space requirements are additive; the aggregated SDD
represents the total amount of disk space required for the solution
Requirements could specify hosting environment software version that satisfies all
components
SDD aggregation supports straightforward generation of deployment
information for composable solutions
SDD Tutorial
OASIS Symposium 2008
42
www.oasis-open.org
SDD: Illustrative Use Case
SDDWebServer
DWS
AWS
SDDAgg
SDDAppServer
DAS
DAgg AAgg
AAS
SDDWebServer
SDDDatabase
DDB
ADB
SDDApplication
SDDApplication
DWS
AWS
SDDAppServer
DAS
AAS
SDDDatabase
SDDApplication
SDDApplication
ADB
DApp2 AApp2
AApp1
DApp1
DDB
DApp2 AApp2
AApp1
DApp1
SDD Tutorial
OASIS Symposium 2008
43
www.oasis-open.org
SDD: Illustrative Use Case
SDDs define user inputs
WebAdmin ID
SDDWebServer
DWS
Web Admin ID
AWS
DApp1 AApp1
Web Admin ID
SDDAppServer
DAS
DB Admin ID
AAS
SDDDatabase
DDB
SDD Tutorial
SDDApplication
ADB
DB Admin ID
SDDApplication
Web Admin ID
DApp2 AApp2
OASIS Symposium 2008
44
www.oasis-open.org
SDD: Illustrative Use Case
The Solution SDD maps solution inputs to inputs required by individual SDDs
SDDWebServer
SDDAgg
AWS
DWS
DAgg AAgg
SDDAppServer
WebAdmin ID
DAS
AAS
DB Admin ID
SDD Tutorial
SDDApplication
SDDApplication
DApp1 AApp1
DApp2 AApp2
OASIS Symposium 2008
SDDDatabase
DDB
ADB
45
www.oasis-open.org
SDD: Illustrative Use Case
SDDs define required and resulting resources
SDDApplication 1
SDDWebServer
OS
OS
WebServer
AppServer
App1
SDDDatabase
OS
Database
SDDApplication 2
OS
AppServer
Database
App2
SDDAppServer
OS
SDD Tutorial
WebServer
AppServer
OASIS Symposium 2008
46
www.oasis-open.org
SDD: Illustrative Use Case
The Solution SDD maps solution resources to resources associated with individual SDDs
SDDAgg
System 1:
Applications
Application OS
Database OS
SDDApplication 1
SDDWebServer
OS
OS
WebServer
AppServer
SDDAppServer
OS
SDD Tutorial
WebServer
SOA Application
AppServer
SDDDatabase
App1
OS
System 2:
Database
SDDApplication 2
OS
AppServer
OASIS Symposium 2008
Database
Database
App2
47
www.oasis-open.org
SDD: Illustrative Use Case
The Solution SDD maps solution resources to resources associated with individual SDDs
SDDAgg
SDDWebServer
OS
SOA Application
WebServer
AppServer
SDDApplication 1
OS
OS
SDDApplication 2
WebServer
AppServer
OS
SDDDatabase
SDD Tutorial
App1
SDDAppServer
WebServer
OS
AppServer
AppServer
Database
App2
Database
Database
OASIS Symposium 2008
48
www.oasis-open.org
SDD: Illustrative Use Case
The Solution SDD maps solution resources to resources associated with individual SDDs
SDDAgg
SDDWebServer
OS
SOA Application
WebServer
App1
SDDApplication 1
SDDAppServer
OS
WebServer
App2
OS
AppServer
AppServer
App1
SDDApplication 2
OS
AppServer
Database
App2
SDDDatabase
OS
SDD Tutorial
Database
OASIS Symposium 2008
49
Let’s Wrap Up






Today’s Deployment Problems
The OASIS SDD Standard
Examples with Details
Illustrative Use Case
Benefits of SDD
Resources
SDD Tutorial
OASIS Symposium 2008
50
www.oasis-open.org
SDD: Quick Review

Standard for deployment lifecycle management




Aggregation for complex, integrated solutions


Applies for SOA solutions
XML Schema



Standardized, externalized metadata for deployment
Captures deployment knowledge, removes the “brick wall”
Install, configure, fix/maintain, operate, localize, uninstall
Package Descriptor
Deployment Descriptor
Package Descriptor
Identity
Content descriptors (metadata) for:
Deployment descriptor
Artifacts
Documentation and readme files
License agreements and so on
Optional digital signatures
Deployment Descriptor
Identity
Variability
Conditions
Features
Parameters
Requirements
Results
Artifact inputs and outputs
Useful across the software complexity spectrum

From single-target, single-artifact installation to distributed, complex
solution lifecycle management
SDD Tutorial
OASIS Symposium 2008
51
www.oasis-open.org
SDD: Benefits

SDD offers standardized way to externalize deployment
information that facilitates:



Tools to generate deployment information
Runtime software that performs deployment operations
Interoperability!


SDD enables aggregation and solution composition from
multiple components


Including components from multiple suppliers
IT administrator perspective: SDD enables analysis of:



One necessary and important piece of the interoperability puzzle
Proposed changes to the IT environment
Impacts to capacity and availability plans
Overall, SDD helps IT professionals build deployment plans,
including scheduling and ordering changes
SDD Tutorial
OASIS Symposium 2008
52
www.oasis-open.org
SDD: Takeaway
SDD is a valuable tool in the software deployment toolbox, both for “native”
environments and SOA environments.
SDD applies to a full range of software, from single-target, single-artifact deployments
to complex, aggregated solution deployments in heterogeneous environments.
Because SDD incorporates aggregation as an inherent construct for complex solution
deployment, it participates in and complements service-oriented environments.
SDD Tutorial
OASIS Symposium 2008
53
Let’s Leave You With References






Today’s Deployment Problems
The OASIS SDD Standard
Examples with Details
Illustrative Use Case
Benefits of SDD
Resources
SDD Tutorial
OASIS Symposium 2008
54
www.oasis-open.org
SDD: Resources




OASIS SDD TC Public Web Page (includes access to Specification,
Schema, Primer, Starter Profile): http://www.oasisopen.org/committees/tc_home.php?wg_abbrev=sdd
Eclipse COSMOS Open Source project (includes planned SDD reference
implementation): http://www.eclipse.org/cosmos/
Wikipedia entry for SDD:
http://en.wikipedia.org/wiki/Solution_Deployment_Descriptor
IBM Autonomic Computing article: http://www03.ibm.com/autonomic/industry_sdd.html

IBM Systems Journal article that includes SDD:
http://portal.acm.org/citation.cfm?id=1331914.1331928&coll=&dl=GUIDE
SDD Tutorial
OASIS Symposium 2008
55
www.oasis-open.org
About the Authors
Randy George
is a Senior Technical Staff
Member and Team Leader in
IBM’s Tivoli Systems Division,
Software Group.
Randy is a long-time member
and subject matter expert in the
OASIS SDD Technical
Committee.
His previous assignments in
IBM include [blah, blah] and he
also [is a mediocre
golfer/whatever]. He can be
reached by e-mail at
[email protected]
SDD Tutorial
Julia McCarthy
is a Senior Software Engineer in
IBM’s Application and
Integration Middleware Division,
Software Group.
Julia serves as Editor and
Secretary for the OASIS SDD
Technical Committee.
Her previous assignments in
IBM include everything from the
bits and bytes of device driver
development to the blue-sky of
cross-organization strategy.
Julia can be reached by e-mail
at [email protected]
OASIS Symposium 2008
Brent A. Miller
is a Senior Technical Staff
Member and Chief Architect for
Autonomic Computing in IBM’s
Tivoli Systems Division,
Software Group.
Brent currently chairs the
OASIS SDD Technical
Committee.
His previous assignments in
IBM include printer
development, network
computing, mobile software and
service provider solutions.
He is the principal author of the
book, Bluetooth Revealed. Brent
can be reached by e-mail at
[email protected]
56
www.oasis-open.org
Notices





Windows™ is a registered trademark of Microsoft Corporation
in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the
U.S. and other countries.
IBM® and AIX® are registered trademarks of IBM in the
United States, other countries, or both.
Java ™ is a trademark or registered trademark of Sun
Microsystems, Inc. in the United States and other countries.
Other company, product and service names may be
trademarks or service marks of others.
SDD Tutorial
OASIS Symposium 2008
57