Skip to main content

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

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

All information submitted is secure.

  • Close [x]

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.

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

All information submitted is secure.

  • Close [x]

Develop cloud applications with Rational tools

Use Rational lifecycle management tools on SmartCloud Enterprise to develop a web app

Alex Amies (aamies@cn.ibm.com), Senior Software Engineer, IBM
Alex Amies photo
Alex Amies is a senior software engineer in the IBM GTS Development Lab in the China development lab. He is currently an architect working on the design of the IBM SmartCloud Enterprise. Previously, he acted as an architect and a developer on cloud and security products in other groups within IBM.
Scott Peddle (peddle@ca.ibm.com), Advisory Software Developer, IBM
Photo of Scott Peddle
Scott Peddle is an advisory software developer on the IBM SmartCloud Enterprise. Scott leads projects focusing on integration of Rational Asset Manager within a cloud environment. Scott's experience includes leading a project for integration of WebSphere BPM tools, such as WebSphere Business Modeler and WebSphere Integration Developer via Rational Asset Manager. Scott also was a release engineer for Rational design and construction products, such as Rational Software Architect and Rational Application Developer.
Tian Ming Pan (ptming@cn.ibm.com), Staff Software Engineer, IBM
Tian Ming Pan is a staff software engineer in the GTS Development Lab team. He is one of core developers in IBM SmartCloud Enterprise development team. He also is Rational Asset Manager expert and responsible for RAM related stories.
Pan Xia Zou (zoupx@cn.ibm.com), Staff Software Engineer, IBM
Pan Xia Zou is staff software engineer at IBM and works as a build and deployment automation architect for IBM SmartCloud Enterprise.

Summary:  Cloud computing can promise centralization, standardization, and automation — implementing cloud actually brings application development, business, and system operations closer together so that in order to maximize efficiency, software developers need to better understand business process and system operations. To achieve these promises of cloud computing, a developer has to think in a broader fashion. In this article, the authors paint a broad picture of how to widen the developer's scope of process by using application life cycle management tools available from Rational. They provide scenarios and an overview of tools and artifacts the developer needs to reach his goal. Finally, they demonstrate how to use IBM® Rational® tools and SmartCloud Enterprise in an end-to-end development scenario.

Date:  05 Jun 2012
Level:  Introductory PDF:  A4 and Letter (608 KB | 18 pages)Get Adobe® Reader®
Also available in:   Chinese  Russian  Japanese  Vietnamese  Portuguese  Spanish

Activity:  17933 views
Comments:  

Today, cloud computing is bringing application development, business, and system operations closer together. This means that software developers need to better understand business process and system operations better than before. It also means that business stakeholders and operations staff have to consume more custom software.

The promise of cloud computing is that centralization, standardization, and automation will simplify user experience and reduce costs. However, achieving these benefits requires a new mindset, one in which the developer must take into account business processes and systems operations in order to build and deploy the most effective cloud application.

The scope of this article is intentionally broad to cover these aspects of application development and operation giving examples of Rational tools than can help in the process.

One of the most interesting aspects of cloud computing is that it enables a new level of tooling and collaboration. It enables reuse of work products, especially images, by teams of people. For example, you can have an operating system expert set up a based operating system image, a software developer add an image of a software product on top of it, and an enterprise user make use of the image, taking snapshots of images suitable for his enterprise's needs. This article focuses on how you can use this tooling to develop applications on the cloud.

Public cloud business scenarios

Let's start by discussing the scope of some of the use cases that drive cloud computing:

  • There are many advantages of cloud computing that may be more important for individual use cases.
  • Virtualization of infrastructure also opens a number of new possibilities and new kinds of IT assets that are not used at all in traditional computing.
  • Operation in a public Internet environment offers new collaboration possibilities while at the same time, introduces new security challenges.

A number of actors collaborate together in cloud use cases:

  • The cloud service developer develops software and other assets for consumption on the cloud.
  • The cloud service consumer requests cloud resources and approves business expenditure. Cloud service consumers might include users, administrators, and business managers.
  • The cloud provider providers a cloud service to consumers.

Consider a proof of concept (POC) use case. Enterprises usually create proofs of concept or pilot studies of new technologies before committing to use them. External IT consultants are often hired to do this and they are typically under a lot of pressure to deliver a challenging amount of capability in a short period of time. Usually, if the consultant does not have prior experience in this area, he will have trouble delivering the needed information.

Assets that can be used from job to job are critical. The cloud can help make this easier by allowing saved images to be reused directly and to allow consultants and enterprise users to share the same network space easily. It is a lot easier than having the consultant carry around physical machines, installing everything on her laptop, or attempting to install all the software on site at the enterprise in a short period of time.

A use case diagram for this scenario is shown in Figure 1.


Figure 1. Use case diagram for a proof of concept on the cloud
Use case diagram for a proof of concept on the cloud

Working in a public cloud environment with support for user administration is critical in order to allow the enterprise to add an account for the consultant. Alternatively, the consultant can use his account space and simply allow access via a network protocol, such as HTTP.

If the enterprise approves the proof of concept, then it may want to use the POC long term. It can move the POC to the enterprise's private network by saving an image and starting up an instance on the virtualization LAN.

Table 1 compares a traditional proof of concept and a proof of concept on the cloud.


Table 1. Comparison of POCs in a traditional setting and on the cloud
TraditionalCloud
Consultant travels to customer siteConsultant works over the Internet
Customer gives the consultant access to enterprise network subject to an approval workflowCustomer gives consultant access to cloud with account or specific virtual machines with cryptographic keys
Procure hardware for pilotCreate an instance with the self-service interface
Consultant does it all herselfConsultant pulls in experts for high availability, performance, security, etc for a few hours as needed
Consultant cannot connect his laptop to the enterprise network. He must only use tools that the customer makes availableCustomer can use her favorite application life cycle management tools on own laptop or available on the cloud
Consultant installs everything from scratchConsultant starts up instances from pre-built images
Server is repurposed after completionServer instances are saves as images and running instances are deleted

The primary advantages of the cloud for this use case are elastic scalability, access from the Internet, and ability to save and reuse projects assets.


IBM SmartCloud Enterprise background

IBM SmartCloud Enterprise is a public Infrastructure as a Service cloud (IaaS), a unique public cloud offering that is suitable for enterprises. The cloud enables users to create and manage x86 virtual machines with Linux® and Windows® operating systems and manage related resources, including images, storage volumes, and IP addresses.

The difference IBM's cloud makes is that it includes a broad range of services and products, self-service abilities, and delegated administration models that enable collaboration, enterprise suitable business support services, and a large catalog of virtual machine images created by the image development center of excellence. (When you include the IBM PureSystems™ family of products and corresponding services, you engage even more proven expertise in configuration management and deployment in the form of pre-built, best practices virtual patterns.)

The SmartCloud Enterprise REST API is the fundamental way to programmatically communicate with SmartCloud Enterprise. It includes many capabilities, including the self-service user interface to manage instances, images, storage, and IP addresses. For convenience, a command-line API and Java™ API client are also provided which wrap the REST services. The Java API client and command-line tool require downloads which are freely available to registered users in the asset catalog. The command-line is convenient for speeding up operations for power users, but if you need to create an application that interprets the output from the API then you need to write a program.

You can use the IBM SmartCloud Enterprise API to add additional capability or integrate cloud management into your other applications. For Java® programmers, the most convenient option will be the Java API. Developers in other languages can use the REST API.

The way that most tools integrate with the cloud is through the APIs.


Cloud project tasks and tools, functionalities, and deliverables

This section describes application life cycle management (ALM) tools and their connection to cloud computing. A recent trend is to integrate these tools with the cloud environment. That way they can be run on the cloud, leverage the cloud in some way, or be used to develop applications for the cloud, all within the cloud environment space.

ALM tools help plan, design, collaborate, develop, test, deliver, and maintain software projects. When you scale up to multi-person software projects with build artifacts to deploy into application servers, you're going to discover you need some tools to help. The types of tools we're talking about include the following:

  • Requirements management tools: Document and track functional and non-functional requirements. An example is Rational Requirements Composer.
  • Planning tools: Plan the time and resources needed for a project and help you track the execution of that project. Examples are Microsoft Project and IBM Rational Team Concert.
  • Source code repositories: Manage code centrally. Examples are the open source tool CVS and Subversion and commercial tools such as Microsoft Visual Source Safe and IBM Rational Team Concert.
  • Integrated development environments (IDEs): Edit and debug source code. Examples are the open source Eclipse IDE and commercial tools IBM Rational Application Developer and Microsoft Visual Studio.
  • Testing tools: Assist in execution and tracking of functional, performance, integration, globalization, and regression testing.
  • Defect tracking systems: Track defects.
  • Ticket tracking systems: Used for customer support. In open source and cloud projects these are being replaced by forums in many cases.

As a project becomes larger than a single person the most fundamental need is probably the need to share source code in a central repository. Concurrent Versions System (CVS) is an open source, source code management system that's been popular for many years. It is scalable and can be conveniently used from within integrated development environments using plug-ins. More recently, some improved open source, source code management systems, notably Subversion, have begun to complete with and replace CVS. A commercial alternative with considerably more functionality than these is IBM Rational Team Concert (RTC). The main impact of cloud computing on source code management tools is that they can be conveniently run on the cloud.

After you get the source code into a central repository, you need to build it into deployable artifacts. This can be done with open source build tools such as Ant or Maven. Maven has a somewhat broader set of capabilities considering a wider range of life cycle events. A commercial build server is IBM Rational Build Forge that provides an even more robust set of features. A Build Forge image is available in the IBM Cloud in the enterprise catalog.

Beyond source code compilation, you should attempt to automate unit testing, deployment to the runtime systems, and functional testing. As your application includes more components, such as a relational database, application server, and Hadoop, this becomes a more challenging task. One of the new developments in this type of tool, in particular in Build Forge, is that it can automatically set up and tear down composite environments on the cloud.

For quality code development, development, and ideally developers, should fully test their own code and testers to verify that it is working properly. Unit testing is where this begins. Junit is a simple and useful tool to drive unit tests and can give helpful reports; however, it can be difficult to do unit tests when the code integrates with more different systems. Mock objects can be used to represent these dependencies. The open source EasyMock tool is very useful for this.

Functional verification testing means testing that verifies that the code can execute all the different functions that it is supposed to in an operational environment. This can be done manually by observing different screens in a web browser. Ideally, it should be automated by recording the steps that the user takes. IBM Rational Functional Tester (RFT) is a commercial product that can be used to do this.

Cloud is enabling a different set of deliverables for proofs of concept, pilots, beta programs, and consulting projects. In traditional environments, enterprise network constraints (especially security), have often required consultants to work with tools that they are not familiar with. This can result in a tendency towards written reports documenting deployment steps and best practices that are not easily consumable by customers.

In other situations the consultant is left in a permanent support position long after the project has "finished." Cloud is enabling a different set of deliverables, including virtual machine images, deployment topology models, and software bundles, as shown in Table 2.


Table 2. Comparison of traditional and cloud project artifacts
TraditionalCloud
Software installation program (time consuming to develop) Virtual machine image (click a button to capture an instance)
Written reports summarizing deployment stepsDeployment topology models, automation scripts
User documentation written from scratchReuse documentation from standard images
Configuration files in miscellaneous locationsAdd asset to cloud catalog
Difficult support processSupport through remote access to cloud

Catalog document management with Rational Asset Manager

A document management system manages files so that they can be stored in a central location for convenient access, indexing, and searching. Modern document management systems let users add their own comments about the documents and have Web 2.0 features like tagging and ratings. They support role-based access management for the management of the documents and workflows can be placed around documents to ensure that they are reviewed and approved before publishing.

In the IBM SmartCloud Enterprise the document management is done by IBM Rational Asset Manager (RAM). This is especially appropriate because most of the documents in the cloud are virtual machine images which themselves are software assets. Rational Asset Manager is standard IBM product that you can use also in your own projects. There is an entry for Rational Asset Manager in the image catalog that allows you to start up your own server.

All the images in the catalog of SmartCloud Enterprise have image assets that have public visibility. When you save a virtual machine as an image in SmartCloud Enterprise, a image asset will be created. You can add documents, such as "getting started" and screen shots to help your image users and Rational Asset Manager supports a forum that lets your users ask questions.

Initially, your image asset will have private visibility. That is, it will only be visible to you. However, you can also make it visible to the other members of your enterprise.

Rational Asset Manager also supports other types of documents, such as text documents. Most of the support documents for SmartCloud Enterprise are stored as Rational Asset Manager documents assets. When creating a new document in Rational Asset Manager you see this screen shown in Figure 2.


Figure 2. Creating a document in Rational Asset Manager
Creating a document in Rational Asset Manager

You can add a name, short description, long description, and attach files. You can configure an approval workflow to automatically be enforced prior to making the document visible to others. An example step in the approval workflow is shown in Figure 3.


Figure 3. Review of a document submitted to Rational Asset Manager
Review of a document submitted to Rational Asset Manager

In this case, there are two steps: Claim review and then accept/reject the document.


An end-to-end development scenario

Now we'll show you how to set up Rational Software Architect on the cloud and save the virtual machine as an image that can be used as a standard development environment. In other words, we'll demonstrate how to use Rational tools and SmartCloud Enterprise in an end-to-end development scenario.

Rational Software Architect is an integrated development environment for Java, J2EE, Web 2.0, and other platforms. SmartCloud Enterprise has images for Rational Application Developer in the catalog. Also, Rational Application Developer has a cloud plug-in that lets you provision and integrate with servers, such as WebSphere® Application Server on the cloud. This lets you achieve a scenario like this:

  1. Find the Rational Application Developer Virtual Image in the catalog.
  2. Select the virtual machine properties.
  3. Set the connection to the virtual desktop with the NX Client.
  4. Start Rational Application Developer on the remote desktop.
  5. Add the new WebSphere cloud server.
  6. Set cloud credentials.
  7. Request a virtual machine for WebSphere on cloud.

Image development

First, find Rational Software Architect in the catalog and provision an instance.

Login to Rational Software Architect remotely using the NX Client. The NX remote desktop technology relies on an NX Server and an NX Client. The NX Server is available in commercial from NoMachine or open source distributions. Some images on SmartCloud Enterprise use the FreeNX open source package. The NX Server is responsible for user authentication and session activation. A third component is the NX Node. The nxservice and related commands are not daemons, but rather are activated by the SSH server.

Configuration files are usually in the directory /etc/nxserver, which also includes the keys needed for authentication. If you have trouble, a useful setting is NX_LOG_LEVEL in the node.cfg file. You might set it to 4 for Server-Client communication. The location of log file is also configured in node.cfg with a default setting of /var/log/nxserver.log.

The NX Client can be freely downloaded from the NoMachine website. After installing, import and save your SSH key (unconverted by PuTTY) and set the IP or host name of your virtual machine in the Server field. The configuration screen is shown in Figure 4.


Figure 4. NX Client Connection Wizard
NX Client Connection Wizard

The client configuration user interface lets you choose a desktop such as KDE or Gnome. This can be a source of errors and can be worth trying out a different value if you have trouble establishing a session after authentication. The client configuration and session files are stored in the user's .nx directory (C:\Documents and Settings\Administrator\.nx on Windows). In case of errors, check the session directory, also under .nx.

When you have imported the key and entered the host name or IP address, login with your user name and password. Figure 5 shows the Rational Software Architect Desktop on SmartCloud Enterprise via an NX Client Remote Session.


Figure 5. Rational Software Architect Desktop on SmartCloud Enterprise via an NX Client Remote Session
Rational Software Architect Desktop on SmartCloud Enterprise via an NX Client Remote Session

You can download the Rational Team Concert and Rational Asset Manager clients from jazz.net and use the Install Manager to install it.

After you have installed them, save the image. The final step to enable the image to be used as a standard development client is to change the visibility from private to enterprise in the SmartCloud Enterprise self-service user interface. This is shown in Figure 6.


Figure 6. Shared visibility for the Rational Software Architect image
Shared visibility for the Rational Software Architect image

Now you are ready for the rest of the development team to start using the standard development environment.

Project administration

In addition to source code management, Rational Team Concert is a full-featured development collaboration tool, supporting Agile project management, a build server, and defect management. A Rational Team Concert image is available in the SmartCloud Enterprise catalog. Rational Team Concert supports browser, Eclipse, and Microsoft Visual Studio clients. Rational Team Concert allows for different roles, such as project administrator, project lead, and project team member, to support multiple projects and teams with delegated administration.

To try out Rational Team Concert:

  1. Search for it in the catalog and then click the Start an instance of your image link. To access the web user interface, use the URL https://hostname/jazz/web/.
  2. You are prompted for the administrative password that you entered when provisioning the virtual machine instance.
  3. Once you have logged in, a message is displayed to perform the Jazz Team Server setup. Follow the Fast Path.
  4. There are two embedded licenses for developers and can be assigned during setup process. Select the Tomcat User Database for the user registry.
  5. Navigate to the Project Management Area. Initially, there are no projects. Follow the link to the Project Area Management section. You should see something similar to Figure 7.

    Figure 7. Rational Team Concert Project Areas Management section
    Rational Team Concert Project Areas Management section

  6. Click Create Project Area. Enter a name, summary, and description for the project.
  7. Click the Deploy predefined process templates link.
  8. Add users to Rational Team Concert using the User Management section, as shown in Figure 8. After you have created users, add them to the project.

    Figure 8. Screenshot of User Management section in Rational Team Concert
    Screenshot of User Management section in Rational Team Concert

  9. To configure email settings in Rational Team Concert:
    1. Set up the email server, then, navigate to Server > Configuration > E-mail Settings and enter values for the email server, as shown in Figure 9.

      Figure 9. Rational Team Concert E-mail Settings configuration
      Rational Team Concert E-mail Settings configuration

    2. Set Enable E-mail Notification to true. Enter localhost for the SMTP server. For the E-Mail From Address, use the fully qualified domain name of the server as the last part of the email address, for example, idcuser@vhost0297.site1.compute.ihost.com.
    3. Click Save.
  10. To add a user:
    1. Navigate to Project Management > Project Name.
    2. Under the Members header add the user to the project. To generate an invitation, hover over the line containing the member and click the icon Invite to Join Team, which is only visible when you hover over it. You should see the Invite to Join Team window in Figure 10.

      Figure 10. Rational Team Concert team member invitation
      Rational Team Concert team member invitation

The web user interface is useful for many purposes, but you should use the Rational Team Concert Eclipse client as a developer or to administer Rational Team Concert.


In conclusion

We hope that by showing you how to widen the scope of your development process with the help of application life cycle management tools, you can realize the benefits of centralization, standardization, and automation that the cloud environment can deliver to your development efforts.


Resources

Learn

Get products and technologies

Discuss

About the authors

Alex Amies photo

Alex Amies is a senior software engineer in the IBM GTS Development Lab in the China development lab. He is currently an architect working on the design of the IBM SmartCloud Enterprise. Previously, he acted as an architect and a developer on cloud and security products in other groups within IBM.

Photo of Scott Peddle

Scott Peddle is an advisory software developer on the IBM SmartCloud Enterprise. Scott leads projects focusing on integration of Rational Asset Manager within a cloud environment. Scott's experience includes leading a project for integration of WebSphere BPM tools, such as WebSphere Business Modeler and WebSphere Integration Developer via Rational Asset Manager. Scott also was a release engineer for Rational design and construction products, such as Rational Software Architect and Rational Application Developer.

Tian Ming Pan is a staff software engineer in the GTS Development Lab team. He is one of core developers in IBM SmartCloud Enterprise development team. He also is Rational Asset Manager expert and responsible for RAM related stories.

Pan Xia Zou is staff software engineer at IBM and works as a build and deployment automation architect for IBM SmartCloud Enterprise.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


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. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

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.

(Must be between 3 – 31 characters.)

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

 


Rate this article

Comments

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing, Rational
ArticleID=819484
ArticleTitle=Develop cloud applications with Rational tools
publish-date=06052012