Develop and test your apps on the IBM Cloud

I moved to a new position within IBM at the beginning of the year, joining the Enterprise Initiatives organization responsible for delivering IBM Smart Business Development and Test on the IBM Cloud.

Before I joined this team, Development and Test launched as a free public beta in 2009. Throughout 2010 we’ve incrementally improved the pilot and in the near future a generally available pay-per-use version will go live.

I’ll describe some of the features that Development and Test beta has now, highlight some usage scenarios that it can enable or improve, and along the way tell you where to learn more. As always, the standard disclaimer applies.

In a future post, I may put together step-by-step instructions on using the virtual machines on the IBM Cloud to:

  • Build PHP with an instance of DB2 as a way to illustrate how system administrators can evaluate the platform or practice configuration.
  • Verify that a sample Java EE application written for Tomcat works unmodified on WebSphere.

IBM Smart Business Development and Test on the IBM Cloud
Like many Cloud technologies, Development and Test aims to reduce the time and money spent by customers to procure, configure, and run IT infrastructure, platforms and software.

But the target of this particular system is to:

  • Give developers and testers hands-on access to IBM software in minutes rather than days or weeks.
  • Provide application developers with an environment to write and run their applications.
  • Allow usage to scale up or down depending on the phase of the project.

As a result, users will have more confidence in the quality of their work and are able to make better informed choices about its hosting environment when they deploy.

Feature overview
The Development and Test beta is a Web application that provides a dashboard for managing Cloud resources, a catalog of images to start with, and a set of APIs (Web service and command line) for accessing assets programmatically.

With it, you can:

  • Provision virtual servers
    An application developer can quickly start up an instance of a server OS, such as Red Hat Enterprise Linux, that is pre-configured with WebSphere or DB2, for example.

    With an operating system and middleware in place, the developer can try out the software setup or verify that their application works on that particular configuration.

  • Set up virtual development environments
    A developer can request a fully configured IDE instance, such as the Eclipse-based Rational Software Architect, and connect to it using a virtual desktop like FreeNX.

    Alternatively, the user can integrate with a hosted instance of Rational source control, automated testing, and project management software from the physical workstation they already use.

  • Save and extend configurations
    Once the team is satisfied with the product or system at a point in time, they can save a snapshot image of the configured instance.

    That image can then be used as a template from which to create new instances that can be shared with others. Those images can also be tagged as a test release or captured as a known good savepoint to build upon.

    Beyond the catalog of pre-configured IBM software stacks in the system now, IBM is working with partners to add third-party pre-configured packages on the Cloud.

In all cases, the user acquires the resources s/he needs right away without the need to find and run hardware or download, install and configure software.

This shortens project start time, reduces time spent on configuration trial and error, allows for more development iterations in the schedule given the same project length.

If you want to get a hands on introduction now, have a look at the developerWorks overview article or user guide (PDF).

Otherwise, if you want to hear my take how I think this particular Cloud platform can make life a whole lot easier for anyone involved in software development, read on.

New possibilities
Since this approach reduces much of the time and money to get hardware and set up software, several new possibilities and potential use cases come to mind.

Imagine the following scenarios that can be made possible or made much easier:

  • You are an innovator who needs a place to demo an early prototype to potential investors in order to justify further development.
  • You are a developer who has created an application on your laptop with a Personal or Express edition of IBM software and you want to see if it will run on a WebSphere and DB2 server to see if there are unexpected differences.
  • You are an independent software vendor who has verified your software on Tomcat (or PHP) and MySQL and wants to widen your potential customer base to include those customers who have an IBM infrastructure.
  • You are a committer to an open source project, and you want to replicate an issue reported by a user and and debug it using the configuration they have on their system.
  • You are a student who wants to build skills or experience hands on or do comparative research between operating systems and software vendors.
  • You are a standards body member, such as for ODF or Java EE, and want to see how a vendor implementation adheres to the specifications.
  • You are an author, you can make sure your readers have a copy of your sample code.
  • You are an instructor, you can make sure your students have an identical setup to reduce class prerequisite setup time.
  • You are a system administrator, and you want to test out an upgrade on an identical server before committing changes that are time-consuming or difficult to reverse on your own system.

Sound interesting?
The Development and Test on the IBM Cloud beta is available to use for free right now. In the coming weeks, a paid, stable and supported version will be available that charges on a usage basis.

If you want to take it for a spin, have a look at the developerWorks overview article or user guide (PDF) in order to get started with the beta. The support page offers forums, FAQs and getting started videos.

You may also want to follow the new developerWorks section and join the user community to learn more about this platform in particular and Cloud computing in general.

If you’re interested in the upcoming paid version check out the data sheet (PDF) on the IBM Middleware Services page. This video also makes a compelling introduction.

Enjoy, and don’t forget to check back here in the coming weeks to see those step-by-step PHP/DB2 and Tomcat/WebSphere tutorials.

Updated draft MySQL to DB2 migration guide

05 November 2009 » DB2, IBM, MySQL, PHP, Writing

Update: The final Redbook has now been published.

Whei-Jen Chen and Angela Carlson have prepared an updated and more comprehensive draft of the venerable MySQL to DB2 Conversion Guide to cover migrations from MySQL 5.1 to DB2 9.7.

The original version of this IBM Redbook published five years ago looked at migrating database applications from MySQL 4.0 to DB2 8.1.

Chapter 6 of Developing PHP Applications for IBM Data Servers extended the first edition three years ago by showing the changes required to migrate from MySQL 5.0 using the PHP mysql_* and improved mysqli_* extensions to DB2 8.2 using the Unified ODBC (odbc_*), the new IBM DB2 driver (db2_*) and PDO_IBM.

This new draft edition is still undergoing review – I’ve already sent along some comments and contributions from my field notes – and the authors are still accepting suggestions and reviews before they produce the finalized version.

So have a look a the draft, and get your comments to the authors. Otherwise, if you think it’s perfect as is, you can just rate it 5 stars all around. :)

WebSphere sMash at New York PHP April 28th

Next Tuesday night we’re excited to have WebSphere guru Roland Barcia introduce the latest PHP and Web 2.0 capabilities in IBM’s WebSphere sMash environment (built on Project Zero) to the New York PHP community:

IBM WebSphere sMash is a platform for developing and running agile Web applications using scripting languages and Web 2.0 technologies such as RESTful Web services, JavaScript Object Notation, and Atom and RSS feeds.

It supports the Groovy language, familiar to Java programmers, and PHP for access to thousands of PHP applications and libraries,and the huge PHP developer community.

IBM WebSphere sMash is focused on significant improvement in time-to-value for Situational Applications and Mashups.

Partners and community have found that by combining PHP applications and libraries with new code written in PHP or Groovy for the IBM WebSphere sMash platform, they can achieve significant reduction in development time for Situational Applications and Mashups.

We cover an overview of the PHP support in IBM WebSphere sMash and the support for generating new PHP code before exploring more detailed scenarios demonstrating PHP applications being extended, integrated and mashed up.

The presentation comes on the heels of the latest WebSphere sMash v1.1.0.1 release that includes PHP performance improvements and the new PHP to Groovy bridge (call Groovy classes from PHP).

Here’s a little background on how sMash relates to Project Zero (you can find more info on the about page):

  • Project Zero experimental builds (latest are named LeMans and Sebring). Includes the latest/greatest functional enhancements, tools, and bug fixes that haven’t yet made it into the generally available product. No-charge for development and limited deployments. Support via the Project Zero community.
  • WebSphere sMash Developer Edition – includes tooling as well as the stable, production-ready runtime. No-charge for development and limited deployments. Support via the Project Zero community.
  • WebSphere sMash – same stable, production-ready runtime as WebSphere sMash Developer Edition, but warranted & licensed for full production deployments. Available for purchase from IBM. Support available via the Project Zero community and 24x7x365 voice & electronic IBM support included with each new license purchase.

On a personal level, I’m excited to learn more about the PHP capabilities at this meeting first hand. I had a chance to work with sMash recently on an internal situational application. It used Groovy however, not PHP.

There’s also a slew of articles on developerWorks to learn about writing apps for sMash. In particular, Introducing IBM WebSphere sMash, Part 1: Build RESTful services for your Web application is a good place to start.

Back to the NYPHP meeting, please make sure you RSVP at least 24 hours in advance, by 6pm ET on Monday, April 27th for the meeting Tuesday night.

Hope to see you there!

DB2 on the Mac arrives

19 December 2008 » DB2, IBM, Mac, PHP

Antonio Cangiano just posted that DB2 Express-C for 64-bit Intel Mac OS X 10.5 (Leopard) is now available for download from IBM.

Stay tuned to his site for more details.

Listing DB2 triggers, routines, indexes and keys

10 December 2008 » DB2, IBM

I recently compared two DB2 databases that should have been identical, but for some reason were not. The foreign keys were missing from one of the instances.

I suspect the keys were lost during a migration when the administrator commented out the constraints in the DDL as a means to avoid errors on import. Unfortunately, the admin never ran the ALTER statements to add them even after all tables were present.

To be sure nothing else was different, I checked for the existence of other database objects to make sure they were not lost as well. DB2 offers a simple way to query for these objects via the SYSIBM and SYSCAT schemas:

Viewing triggers

SELECT NAME
FROM SYSIBM.SYSTRIGGERS
WHERE SCHEMA = ‘[SCHEMA]’
ORDER BY NAME

Viewing stored procedures and UDFs: P = Procedure, F = Function

SELECT ROUTINENAME, ROUTINETYPE
FROM SYSIBM.SYSROUTINES
WHERE ROUTINESCHEMA = ‘[SCHEMA]’
ORDER BY ROUTINENAME

Viewing indexes

SELECT NAME, CREATOR, USER_DEFINED
FROM SYSIBM.SYSINDEXES
WHERE CREATOR = ‘[SCHEMA]’
ORDER BY NAME

Viewing foreign keys (by database)

SELECT
SUBSTR(TABNAME, 1, 30) TABLE_NAME,
SUBSTR(CONSTNAME, 1, 20) FK_NAME,
SUBSTR(REFTABNAME, 1, 12) PARENT_TABLE,
SUBSTR(REFKEYNAME, 1, 20) PK_ORIG_TABLE,
FK_COLNAMES
FROM SYSCAT.REFERENCES
ORDER BY TABLE_NAME

Viewing foreign keys (by table)

SELECT
SUBSTR(TABNAME, 1, 30) TABLE_NAME,
SUBSTR(CONSTNAME, 1, 20) FK_NAME,
SUBSTR(REFTABNAME, 1, 12) PARENT_TABLE,
SUBSTR(REFKEYNAME, 1, 20) PK_ORIG_TABLE,
FK_COLNAMES
FROM SYSCAT.REFERENCES
WHERE TABNAME = ‘[TABLE]’

To make sure I don’t have consistency problems in the future, my next step is to put together a short script to automate these queries post install.

IDUG India highlights

30 August 2008 » DB2, IBM, WebSphere

I just returned from two weeks in Bengaluru (Bangalore). The trip was quite productive, as I was able to work with my team on a complex Eclipse RCP/Apache Derby application in person, and solidify the two most important pillars of an extended team development effort; communication and collaboration.

Since I worked US Eastern time while in India – late afternoon to late evening weekdays – I also had a chance to attend the IDUG 2008 India Forum in the early part of the day Friday and all day Saturday.

Much like the on site face time with my development team, this conference provided an excellent opportunity to interact with DB2 experts and to put all the new Information Management technologies and products into a meaningful context.

Of particular relevance to my day job, the forum clarified where DB2 fits into the larger WebSphere, Web 2.0, and SOA picture. I was able to pick up some clever ideas for the IBM Press Room migration to DB2 9.5 next spring.

A few highlights and lessons learned from the conference:

  • Attending Curt Cotner’s keynote on the new IBM Data Studio tool and pureQuery technology. This Eclipse-based tool has a lot of potential as a standalone application development platform, or plug-in to my existing Rational Software Architect setup. Using pureQuery to improve performance and ease root cause analysis for WebSphere and DB2 apps was impressive. I also had a chance to meet Curt and chat with him briefly about PHP Web application frameworks and drivers.
  • Hearing from Leon Katsnelson about how DB2 fits into the larger SOA picture, with two very innovative case studies. One example in particular about managing volatile data in DB2 – such as currency rates and weather conditions – using a Java stored procedure to make a Web services call was very enlightening.
  • Finally getting my head around REST. The past weeks have featured a storm of misunderstanding about SOAP and RESTful Web services, sparked by a comment made by Damien Katz. Following the conversations there helped me understand the pros and cons of each philosophy, and attending a few sessions at the conference helped solidify the fundamental differences in approach to SOA.
  • Reminding myself to look into the Web 2.0 Starter Toolkit for IBM DB2. There seems to be some really cool sample applications and monitoring tools in there.
  • Getting a primer on Ruby as a language and seeing a live demo of Ruby on Rails as a framework. I’m not planning to jump ship anytime soon, but there are tons of ideas in there that can be fed back into the architectures I develop in my day job.
  • Thanks to Matthias Nicola, who was kind enough to copy his XQuery & SQL/XML cheatsheet onto a pen drive for me, I was able to play around with pureXML on my local copy of DB2.
  • Finally figuring out the difference between Data Studio and Data Studio Developer. The former is the free tool, the latter is the kit that can be licensed from IBM for a fee and includes all the cool pureQuery stuff.
  • Taking advantage of the opportunity for a free shot at the DB2 9 Application Developer exam (I passed!) and shoring up my cursor usage and trace analysis skills through some pre-test cramming.

So, all in all a great business trip and excellent conference. Kudos to the conference organizers, IDUG, and the presenters.

Up and Running with DB2 on Linux

16 July 2008 » DB2, IBM, PHP, Writing

The second edition of “Up and Running with DB2 on Linux” was published in June. This IBM Redbook gives readers the latest information they need to exploit DB2 9.5 for Linux.

I performed a technical review of this book, recommending updates here and there to the introductory section and the chapter on using the new Eclipse-based IBM Data Studio tool. I also provided the short section on using DB2 with PHP in chapter 8.

The editor took my suggestion to include a link to planetdb2.com in the online resources list, to give readers a way to keep on top of day-to-day news about DB2 from the experts who blog about it.

The entire review process was a great way to learn about the latest developments in the DB2 for Linux world. I hope the book provides you with the same insight.

Have a look and submit your feedback to help improve the next edition.

Begun, the data server proxy wars have

25 March 2008 » DB2, IBM, MySQL, New York PHP, PHP, PostgreSQL
« Previous pageNext page »