- Challenges of Software Integration
- Integrated Software Stacks
- Terminology
- Stacks and System Architectures
- Requirements of Software Integration Architectures
- Software Integration Architectures
- Software Stack Management and Deployment Frameworks
- About the Author
- Acknowledgements
- Ordering Sun Documents
- Accessing Sun Documentation Online
Terminology
This section defines the terminology used in the remainder of this paper.
Provisioning is the act of placing an individual software application or complete software stack onto a target system.
Pre-loaded software refers to software that has been provisioned onto a disk at a vendor or reseller's factory or at a staging location.
Installation refers to making the provisioned software application or stack known or available to the operating system. Installed software might not be ready for use.
Configuration is making installed software or a software stack ready for use. Configuration typically requires you to provide system-specific information to the installed software.
Binding refers to any customization or configuration necessary to install a stack onto a specific set of hardware components. You can think of binding as provisioning, installing, and configuring a complete integrated software stack onto a target set of hardware components. After binding has been completed, the software stack is said to be bound.
A monolithic stack is a software stack that cannot be subdivided or broken down. That is to say the stack is an atomic, indivisible entity. A monolithic stack cannot be decomposed into subunits. The advantages of a monolithic stack are:
Precise version and release control
No need for a compatibility matrix to determine if a subunit can be substituted with a different version or with a completely different subunit
Certainty of stack validation
Ease of installation and deployment
A piecemeal stack is a divisible software stack that can be decomposed into substacks. Think of a piecemeal stack as being comprised of layers or software components. However, the use of the terms "layers" or "components" is strongly deprecated due to the overloading of these terms. The advantages of a piecemeal stack are:
Flexibility
Modularity
Software reuse
Rapid stack development
Software slabs (or simply, slabs) are software applications, subunits, or substacks that are used as strata of a piecemeal stack. A piecemeal stack must contain at least one software slab. This primal software slab (also referred to as the stack base, or base) must be the operating system (OS) or operating environment (OE). For purposes of this paper, the OS is assumed to be the Solaris Operating Environment (Solaris OE).
A recipe is the detailed software bill of materials necessary to define or describe the constituent slabs of a piecemeal stack. The recipe describes the slabs, as well as the individual slab versions or revisions, and the order in which the slabs are to be assembled to form the software stack.
The term cloning refers to the creation of an integrated software stack from an already existing system whose software applications might be fully or partially configured.
A collection of software stacks is referred to as a raft of stacks. This terminology is derived from the collective noun for ducks while idle in the water ("a raft of ducks").