Use enterprise architecture to guide IT architecture deployment decisions

Import Rational System Architect data into Rational Software Architect to develop and automate a deployment plan

If you use Rational System Architect to develop enterprise architecture and Rational Software Architect for deployment architecture, learn how you can import data from Rational System Architect into Rational Software Architect so that you can make deployment decisions based on business priorities.

Share:

Karthikeyan Subramanian (karthik.s@in.ibm.com), Senior Engineering Manager, Rational Analysis Design and Construction, IBM

Author1 photoKarthikeyan Subramanian is a Senior Engineering Manager for Rational Software Architect. He joined IBM in 2008. Prior to that, he held various senior technical and management positions in other organizations, developing enterprise software applications and products. He holds a post-graduate diploma in Business Administration and Bachelor of Engineering degree with a specialization in Computer Science and Engineering.



13 March 2012

Also available in Chinese

This article covers the functional design of using enterprise architecture to make investment decisions and how to use that data to make deployment changes to actual systems. The support for this capability is provided by integrating IBM® Rational® System Architect with the Extensions for Deployment Planning and Automation Planning tools included with IBM® Rational® Software Architect.

The first section of this article explains the scenarios where data from enterprise architecture can be used as a starting point to develop a deployment plan and automate the deployment. The second section explains a scenario of how data can be imported into Rational Software Architect from Rational System Architect.

In the deployment planning and automation context, application consultants are the primary users of Rational System Architect, and IT management consultants are the primary users of Rational Software Architect. The use cases in this article describe a typical scenario where the application consultants make their decision on changes that are required to minimize the risks due to end-of-support or disaster recovery plans. When these plans are finalized, the IT management consultants pick their inputs from Rational System Architect and plan the change using Rational Software Architect. They could use Rational Software Architect for automating the deployment of their changes. After the changes are made and confirmed, the latest deployment data is sent back to Rational System Architect for updating the current model.

Note:
The rest of this article refers to these two people and roles:

  • Adam, an application consultant who identifies what systems are affected by decisions to merge hardware or software, using Rational System Architect.
  • Isabell, an IT management consultant who handles the deployment, using Rational Software Architect and IBM® Rational® Automation Framework for WebSphere® scripts.

In essence, "what" decisions are made in Rational System Architect, and "how" decisions are made and implemented in Rational Software Architect.

In essence, "what" decisions are made in Rational System Architect, and "how" decisions are made and implemented in Rational Software Architect. When the changes are finished, these tools are synchronized again so that the latest updates are available in both of the tools.

General concepts

This section provides a bird's-eye view of Rational System Architect and Rational Software Architect capabilities relevant to IT deployment. It also gives an overview of how to integrate these two tools.

Enterprise IT architecture in Rational System Architect

Rational System Architect is enterprise architecture management software. Typical users are the enterprise architects who have a business view of the enterprise and technology solutions to support those business needs. You can use this tool to generate a heat map of impacted systems based on predefined analysis (for example, a heat map of systems affected due to license end dates or a disaster management plan, or such similar conditions). You can also use Rational System Architect to draw different kinds of diagrams with IT assets in them. The most appropriate diagram for the use cases mentioned here is the Network Concept diagram. Figure 1 shows a sample diagram looks like the one in Figure 1.

Figure 1. Network Concept diagram in Rational System Architect
enterprise web application deployment concepts

IT architecture in Rational Software Architect

Rational Software Architect provides Deployment Planning and Automation components that the IT architect can use to plan and automate deployment of an application. IT architects can create a deployment model by creating a topology and adding deployment elements to the topology. The relationships between the deployment elements can be established in the topology. The topology also provides a mechanism to tie the capabilities of an element with the requirements of a related element. For example, a Java Enterprise Edition (JEE) server's hosting capability can be used as a requirement to host the myapplication.ear file.

The Deployment Planning and Automation components are flexible enough to contain both the breadth of information, such as details of middleware servers, databases, and so forth, and the depth of information, such as port configurations, host names, middleware server versions, and application EAR components and their contents. This flexibility helps in automating deployment using deployment automation frameworks such as the IBM Rational Automation Framework for WebSphere.

Figure 2. Deployment modeling diagram in Rational Software Architect
Deployment model of an enterprise web application

After the model is created by using the topology, the deployment can be automated by using the Rational Automation Framework for WebSphere. Deployment engineers can leverage the topology designed by the software architect to generate and then publish an executable project into the automation framework to aid in the deployment. The project is an ordered invocation of scripts with parameters that are derived from the topology. These scripts can then be run on the server where the application must be deployed.

Rational Software Architect can discover the current state (as-is) of a deployed system by connecting to the IBM® Tivoli® Application Dependency Discovery Manager (TADDM in some references), which uses discovery techniques with and without agents to extract information about existing, running systems in the wild. The data is then aggregated into a Configuration Management Database (CMDB), where Rational Software Architect can connect to and extract relevant bits for the intended deployment. In effect, the as-is data can be a starting point for IT architects to plan changes to their environments.

Overview of Rational Software Architect and Rational System Architect integration

Here's a quick summary:

  1. From Rational System Architect, an enterprise architect exports deployment--related information in XML.
  2. In Rational Software Architect, a software architect defines a Java Emitter Template (JET) that describes how to interpret the XML and populate topology elements.
  3. The software architect then selects the system architect's XML and runs a JET transformation to populate the topology and its related diagrams.

As Figure 3 shows, Rational System Architect maintains the data as an SADefinition that is exported as XML. An item definition template converts it into the Topology object inside Rational Software Architect.

Figure 3. Overview of Rational Software Architect and Rational System Architect integration
Flow chart that illustrates the process

For example, as Listing 1 shows, the system architecture example, or SA-XML, specifies the memory, processor type and a few other elements (also shown in Figure 4).

Figure 4. Rational System Architect definition showing RAM
Rational System Architect export with SADefinition
Listing 1. RAM excerpt from Rational System Architect definition
<SAProperty SAPrpName="Maximum Installed RAM" SAPrpValue="16GB"
    SAPrpEditType="1" SAPrpLength="50" />

<SAProperty SAPrpName="Brand" SAPrpValue="&quot;IBM Power Series&quot;">

Using the following JET instance Rational Software Architect topology objects are populated with information from the imported resource. Key part:

Listing 2. JET tag code excerpt
<deploy:set name="memorySize" value= '$definition/SAProperty[@SAPrpName="RAM"]
/@SAPrpValue' /> <deploy:set name="cpuType" value='$definition/SAProperty
[@SAPrpName="Processor Type"]/@SAPrpValue' /> <deploy:set name="manufacturer" 
value='$definition/SAProperty[@SAPrpName="Brand"]/@SAPrpValue' />
Figure 5. Rational Software Architect JET tags
Sample Rational Software Architect JET tags

Larger view of Figure 5.

Then the newly added attributes appear as properties of topology elements in Rational Software Architect, as shown in Figure 6.

Figure 6. Rational Software Architect Property view
CPU Type and Memory Size fields highlighted

Integration scenarios

This section explains the following workflow:

  1. Communicate the changes to the Rational System Architect deployment to all stakeholders
  2. Plan changes to the deployment in Rational Software Architect.
  3. Discover the current state of deployment through either CSV Import or IBM® Tivoli® Application Dependency Discovery Manager.
  4. Automate and deploy the changes using Rational Software Architect.
  5. Update the current state of IT deployment in the model.

You handle this workflow by reusing the capabilities already present in Rational System Architect and Rational Software Architect, with minimal changes to either of these products.

A list of use cases follows where IT systems-related information needs to be shared from Rational System Architect to Rational Software Architect, and further actions need to be planned in Rational Software Architect.

EOL or EOS of hardware or software

This use case covers the scenario of impact analysis for end of life (EOL) or end of sale (EOS) situations, and the workflow that follows it to make changes to the deployed environments.

Actors

The application consultant (Adam, in this example) identifies what systems are affected by the EOL or EOS of hardware or software by using Rational System Architect. (See the link in Resources for further information about this role.)

The IT management consultant (Isabell, in this article)) makes the changes to the deployments by using Rational Software Architect and Rational Automation Framework for WebSphere scripts.

Background

Adam has performed an impact analysis on the EOL or EOS of the hardware or software in Rational System Architect. He has a heat map, generated from it, that identifies the systems that need to be migrated to manage the EOL or EOS of the software or hardware. Isabell gets the deployment data from Rational System Architect using SA-XML. She uses the following use cases to implement the proposed changes.

Flow of events

  1. Adam exports the current logical model of the application as an XML file (SA-XML format in this example).
  2. Isabell prepares a JET to import the XML into Rational Software Architect as a logical model.
  3. Isabell uses a JET transformation project and the template to import the logical model as a Network Concept Diagram.
  4. Isabell edits the concept diagram to add more deployment model elements, such as the OS versions, application servers, and so forth.
  5. Isabell edits the Concept model in Rational Software Architect to develop the Deployment model and to generate the deployment scripts.
  6. Isabell runs the scripts to make the deployment changes effective in the actual environments.
  7. Isabell discovers the current deployment state in Rational Software Architect and reconciles the environment changes.

On completion

The changes as identified in Rational System Architect for EOL or EOF of hardware or software changes are identified and deployed according to the plan. Optionally:

  1. Isabell exports the deployment model as an XML file.
  2. Adam imports the deployment model and updates the data that it maintains.

Consolidation of hardware or software during an acquisition

This covers the scenario where an application consultant consolidates the hardware and software that came as part of the acquisition. He removes the duplicate services and plans for a consolidated deployment environment. The new deployment plan in Rational System Architect is communicated to IT management consultant who drills down into the plan using Rational Software Architect and deploys the new environment.

Actors

The application consultant (Adam) identifies what systems are impacted by the strategic merger decisions of hardware or software platform using Rational System Architect.

The IT management consultant (Isabell) plans and makes the changes to the deployments using Rational Software Architect and Rational Automation Framework for WebSphere scripts.

Background

Adam has performed an impact analysis and generated a heat map of systems that are strategically important to be merged into a single system. Isabell takes this as input, identifies the nodes that need to be merged, and makes the changes.

Flow of events

  1. Adam exports the new deployment model to be implemented as an XML file.
  2. Isabell prepares the JET file to be used for importing the new deployment model into Rational Software Architect. See the link to
    "Templates in the WebSphere Application Server domain" for the tags to be used for developing the template.
  3. Isabell uses the XML import option of Rational Software Architect with the Java Emitter to import the contents of XML into a Network Concept Diagram in Rational Software Architect. The imported content will render as conceptual units within the topology.
  4. Isabell also imports the current deployment state into a new topology diagram, either through a CSV or from a TADDM server, if it is present.
  5. Isabell links the conceptual elements in the Network Concept diagram to the imported elements of the current state and generates the deployment scripts.
  6. Isabell runs the scripts to make the deployment changes effective in the actual environments.
  7. Isabell discovers the current deployment state in Rational Software Architect and reconciles the environment changes.

On completion

The changes that are identified in Rational System Architect for consolidation of hardware or software are deployed according to the plan. Optionally:

  1. Isabell exports the deployment model as an XML file.
  2. Adam imports the deployment model and updates the data that it maintains.

Disaster recovery

This use case covers the situation where an application consultant implements a disaster recovery plan and identifies the environment that needs to be recovered.

Actors

The application consultant is the person who identifies what systems are impacted by the disaster and what systems need to be recovered by using the disaster recovery plan.

The IT management consultant is the person who plans and makes the changes to the deployments using Rational Software Architect and Rational Automation Framework for WebSphere scripts.

Background

Adam has identified the systems that need to be recovered, based on a disaster management plan. This plan identifies where the backup systems are and which ones should kick in during the duration of the disaster. Isabell takes this as input, identifies the nodes that need to be duplicated, and automates the deployment changes.

Flow of events

  1. Adam exports the deployment model of the environments to be recovered from Rational System Architect.
  2. Isabell prepares a JET file to import the deployment model into a new topology diagram.
  3. Based on the details present in the imported topology model, IT management consultant adds more details to the imported model, such as actual machine names, OS versions, application server versions, and so on.
  4. Isabell gets the current state of the environment, either through a CSV import or the TADDM discovery capability of Rational Software Architect.
  5. Isabell make appropriate changes to the topology and generates the deployment scripts.
  6. Isabell runs the scripts to make the deployment changes effective in the actual environments.
  7. Isabell discovers the current deployment state in Rational Software Architect and reconciles the environment changes.

On completion

The changes that are identified in Rational System Architect for consolidation of hardware or software are deployed according to the plan. Optionally:

  1. Isabell exports the deployment model as an XML file.
  2. Adam imports the deployment model and updates the data that it maintains.

A typical integration

Adam would be interested in and would want to influence the following kinds of data:

  1. Hardware servers (IP, CPU, memory, architecture type)
  2. Operating system (OS)
  3. Middleware software and versions
  4. Applications installed on these middleware servers
  5. Databases and software versions
  6. Networking details: firewalls, load balancers, routers, networks, VLANs, and so forth.

Note:
Even though there could be other deployment data, such as the clusters, firewalls, or load balancers, they are beyond the scope of the integration that is the focus of this article.

Rational System Architect diagram choices

Rational System Architect has a few diagrams that can depict the enterprise IT or systems architecture, such as the Network Concept diagram, Sub-system diagram, System Architecture diagram. The sample given for this article uses the Network Concept diagram, because it seeded the use cases.

The Network Concept diagram has the closest set of information that is required in this scenario.

Steps in Rational System Architect

In Rational System Architect, you have now introduced the following changes:

  1. Added few custom server elements, including WebSphere Application Server and Tomcat HTTP server (details about that are beyond the scope of this article).

Note:
Figure 7 shows newly added Rational System Architect menu items for middleware and servers: JBoss, Tomcat, and WebSphere.

Figure 7. Rational System Architect showing newly added menu itemsNew drop-down menu

  1. Added few custom elements for operating systems (Figure 8), such as Microsoft Windows 2008 Server, Linux, and Solaris.
Customized OS menu in SA
  1. Added few custom database elements, such as DB2, for IBM® DB2® database, and Oracle Database Server, and so forth.
New drop-down menu shows DB, SQL, Oracle, DB2
  1. Created a Network Concept diagram.
Figure 10. Rational System Architect, New Diagram wizard
Network Concept selected as type
  1. Added network elements to the concept diagram to create a conceptual model of an enterprise web application with following elements: client, an HTTP server, an application server, and a database server. Also added Host elements, operating system elements for these servers, and links to their database machines.
Figure 11. Network Concept diagram in Rational System Architect
Screen capture of the completed diagram

Larger view of Figure 11.

  1. Exported the Network Concept diagram as an SA-XML file.
Figure 12. Rational System Architect, Export XML dialog window
Object, Output, Picture, file path options
  1. The format of SA-XML has two key tags: SADiagram and SADefinition.
    • SADiagram is built by using its own attributes and a set of SASymbol tags with elements that are specific to the UI.
    • SADefinition has the elements that are specific to the model element. It is built using its own attributes and several SAProperty tags.

Listing 3 shows a sample of both these tags.

Listing 3. SADiagram and SADefiniton code
<SADiagram SAObjId="_234" SAObjName="Network-concept-karthik"
SAObjMinorTypeName="Network Concept" SAObjMinorTypeNum="88"
…
</SADiagram>
<SADefinition SAObjId="_276" SAObjName="Webserver01"

Steps in Rational Software Architect

  1. Create a new JET transformation project.
Figure 13. Create a JET Transformation Project dialog window
New Project, Select a wizard window
  1. Edit the mainlinks.jet file to develop a template that can iterate over the SA-XML, and import the model element by using the Rational Software Architect topology tag library. Part of the information for a model element is in the SADiagram tag, and the other part is in the SADefinition tag. The data must be fetched from these two tags and their properties to seed the deployment. The first step of the template is to iterate through a list of all SASymbol-tagged elements, using the c:iterate tags, and read the attributes into variables.
  2. First step for the JET is to iterate through a list of all SASymbol-tagged elements, using the c:iterate tags, and read the attributes into variables.
Table 1. JET tags to iterate over SA-XML
ElementsDescription
<c:iterate select="//SASymbol" var="symbol"> Starts an iteration for all elements that startwith the SASymbol tag.
<c:setVariable select="$symbol/@SAObjMinorTypeName" var="minortypename" /> Set the value of SAObjMinorTypeName into the minortypename variable. The @attribute name query will return the value of the attribute
<c:setVariable select='$symbol/SAProperty[@SAPrpName="Stereotype"]/@SAPrpValue' var="isServerMachine" /> Read the attribute value of property with a name of Stereotype.
  1. Create deployment topology elements in Rational Software Architect using the JET <deploy:template> and <deploy:unit> tags (see Listing 4).
Listing 4. Sample JET tags to create topology elements
<deploy:template topology="$TargetObject" id="server.intel_x86.infra">
<deploy:unit var="server" type="server.X86ServerUnit" name="{$serverName}">

You can find the IDs to use for creating topology elements in "Templates in the WebSphere Application Server domain" (see the link to it in the Resources section of this article).

Listing 5 is sample script for a JET, which imports a computer server.

Listing 5. Sample Rational Software Architect JET script
<c:iterate select="//SASymbol" var="symbol">
<c:setVariable select="$symbol/@SAObjMinorTypeName" var="minortypename" />
<c:setVariable select="$symbol/@SAObjName" var="serverName" />
<c:setVariable select='$symbol/SAProperty[@SAPrpName="Stereotype"]/@SAPrpValue' 
     var="isServerMachine" />
<c:setVariable select="//SADefinition[@SAObjName='{$serverName}']" var="definition" />
				
<%-- Create a Server Machine component, represented as WebServer01 in the diagram --%>
<c:if test="$isServerMachine='Server Machine' and $minortypename='Computer'"  >
	<deploy:template topology="$TargetObject" id="server.intel_x86.infra">
		<deploy:unit var="server" type="server.X86ServerUnit" 
            displayName="{$serverName}" name="{$serverName}">
		<%-- Create a capability on the newly created Power Server unit --%>
			<deploy:capability owner="$server" type="server.X86Server"  
                name="x86 Server" preferNameMatch="false" linkType="any">
			<%-- Set the capabilities attributes --%>
				<deploy:set name="memorySize" value= 
                   '$definition/SAProperty[@SAPrpName="RAM"]/@SAPrpValue' />
				<deploy:set name="cpuType" value= 
                    '$definition/SAProperty[@SAPrpName="Processor Type"]/@SAPrpValue' />
				<deploy:set name="manufacturer" 
                     value= '$definition/SAProperty[@SAPrpName="Brand"]/@SAPrpValue' />
			</deploy:capability>
		</deploy:unit>		
	</deploy:template>
</c:if>
  1. Create a new topology project with a blank_topology inside it.
  2. Create a Run Configuration for the template, with the SA-XML as an input.
  3. Run the JET with the SA-XML as input as shown in the picture above.
Figure 14. Run Configuration dialog window
Transformation input: sa-jet-import/nc-19Jul11.xml

Larger view of Figure 14.

  1. When you have finished running the template, refresh the topology project in the Project Explorer of Rational Software Architect to check whether the imported elements are available in the project.
Figure 15. Rational Software Architect Project Explorer tab view
RSA Project Explorer showing topology
  1. Go to the topology diagram that was open while you were completing Step 8, right-click on the diagram, and select Arrange All from the context menu. The diagram gets rearranged as shown in Figure 16.
Figure 16. Topology diagram showing the imported units
Rational Software Architect topology diagram
  1. Use the Problems Resolver dialog window for these tasks:
    1. Set the host name in the OS.
    2. Set the install directory, and WebSphere Application Server home directory for WebSphere.
Figure 17. Topology diagram with error correction dialog windows
Two pop-up windows

Larger view of Figure 17.

  1. After resolving all of the errors, use the Properties page to set the image for each of the model elements.
Figure 18. Deployment unit property sheets
Topology unit property dialog window

The resulting topology diagram will look like the one in Figure 19.

Figure 19. Completed deployment topology
Deployment plan created from System Architect data

Larger view of Figure 19.

  1. Generate and run the RAFW deployment scripts for these projects, using the Extension for Automation Planning in Rational Software Architect.
  2. Re-import the deployment data through either Tivoli (TADDM) integration or CSV importer.

Summary

This approach gives both business and technical decision-makers the right set of information in their own domains and tools. It enables the information to flow from the business decisions to the technical decisions and leads to automating the deployment decisions.

The sample Java Emitter Template in the Downloads section of this article provides a good starting point for developing environment-specific templates. The XML input file from Rational System Architect is also included in the Downloads section. The URLs mentioned in this article provide the list of tags and the unit IDs that you can use to import deployment model elements from Rational System Architect.

Be sure to see the Resources section for additional useful information.

Downloads

  • JET template
  • XML input file from Rational System Architect

Downloads

DescriptionNameSize
Code sampleSample-JET12
Code samplecode-listings2

Resources

Learn

Get products and technologies

Discuss

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into Rational software on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Rational
ArticleID=801204
ArticleTitle=Use enterprise architecture to guide IT architecture deployment decisions
publish-date=03132012