23
Mon, Dec
3 New Articles

Weaving WebSphere: Source Control Integration

Development Tools
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

"Imagination is a valuable asset in business and she has a sister, Understanding, who also serves. Together they make a splendid team and business problems dissolve and the impossible is accomplished by their ministrations."
--Alice Foote MacDougall

I don't get enough opportunities to quote women of business, and I thought I'd rectify that particular oversight this month with a quote designed to illuminate the concept of teamwork. In software development, teamwork means many things, but to anyone who has been burned by the loss of crucial source code, the word teamwork brings to mind the concept of "source management."

In this article, I will...

  • Compare and contrast source control and change management
  • Present an overview of the base capabilities that are included in WDSC
  • Point to a few open-source alternatives
  • Mention the vendors who play in the iSeries source management arena

(Note to vendors: If I missed your product, please let me know so that I can remedy that in the discussion section.)

Source Control and Change Management

The first thing to do before going any further is to identify the differences between source control and change management. There are superficial similarities in that both keep track of multiple versions of your source code, but after that, the two diverge dramatically.

Source Control

Source control systems are exactly that: They control your source code. Most often, they're used to synchronize source code changes to make sure that multiple programmers in a team don't walk on each other. Some are lock models: When a source module is checked out, it is locked, and nobody else can touch it until it is checked back in. Revision Control System (RCS, written in the '80s) or Source Code Control System (SCCS, written in the '70s), available on most UNIX platforms, both use the lock model. But the most common system in use today on both UNIX and non-UNIX machines is Concurrent Versioning System (CVS), which, as its name implies, allows more than one concurrent modification. If more than one programmer modifies a source member, CVS will attempt to merge changes.

Note: The phrase "most common" is a little misleading. CVS is actually built on top of RCS, so technically, anywhere CVS is used, RCS is used as well. However, I think it's safe to say that more sites use the CVS-RCS combo than RCS (or SCCS) alone.

So, vagaries of the locking mechanism aside, one basic facility of source control systems is the ability for programmers to check out code from the repository, modify it, and check it back in for other developers to use. The other primary feature of source control systems is the ability to create branches. This is not a universal feature, but CVS supports it. In branching, you are allowed at any point to fork the development process and create a separate version, as shown in Figure 1.

http://www.mcpressonline.com/articles/images/2002/040706%20-%20SCM%20Integration%20V4%2007120400.png

Figure 1: This product has four versions: the main one and three branches. (Click images to enlarge.)

Keeping track of versions can be complicated. In Figure 1, for example, the changes that were made between 1.2 and 1.3 of the main product are not included in any of the branches. To get those changes, you'd have to merge the branch with the main line, and that's not an easy process. In general, I try to avoid branching, but it's sometimes unavoidable, especially if you're a software vendor and you need to have unique versions for specific clients.

Change Management

OK, source control in a nutshell is check out, modify, check in. That's about it. No compiling, much less testing or deploying. That's where change management software comes in.
Change management (also known as software change management or software configuration management) is much broader in scope. The concept evolved out of various development methodologies, such as the Product Development Life Cycle (PDLC), which was quite popular in the 1980s. The differences between change management and source control fall into several areas.

First, the objects controlled include not only source code, but any object in the system. This can be compiled programs, user documents, technical specifications, test plans, you name it. Anything used during the development process is subject to manipulation by the change management process.

Second, the process includes specific stages, such as development, quality assurance, and production. For each object, each step of the process is owned by someone whose responsibility it is to be sure that the object passes any required tests before it's passed to the next level (called "promotion"). For example, once a developer determines that a program has passed the required unit tests, the object is promoted to quality assurance. The QA person is then in charge of functional or system testing in order to ensure that the program does what is intended and works with the rest of the system.

There are other differences as well, which are handled differently by different tools. Most products allow you to create your own set of steps (sometimes called a "workflow") to define how your business handles software issues. Some even go so far as to allow multiple workflows based on the incident type: Is this an enhancement or a bug fix? Some products provide the capability of creating shippable media, some generate documentation of moves, some provide the ability to identify other required resources. The variety of features is large, and what you need really depends on your own shop standards.

CVS Integration--The Base Capabilities of WDSC

So how does all this relate to WDSC? To start with, WDSC comes with basic source management capabilities that it inherited from Eclipse. It's been a long time since I used base Eclipse; I use WDSC almost exclusively for my development (with the occasional segue into the iSeries green-screen for things like SDA and WRKDBF). But a little investigation verified that the CVS capabilities of WDSC are equivalent to the basic features of Eclipse.

These are not as nice, in my opinion, as the built-in capabilities of VisualAge for Java (VAJ) were. VAJ had its own repository structure and its own built-in source control mechanism. It not only tracked changes automatically, but also allowed you to easily "stripe" (or "tag") a project to indicate a specific release. This functionality allowed me to easily go back and look at the specific code for a release. CVS has many of these capabilities, but they often require a little more manual intervention. With VAJ, most of the work was done under the covers, and I got used to that.

In Eclipse, you create "projects" (not to be confused with iSeries projects, which I'll address in a moment). These projects can range in type from simple Java projects to entire J2EE enterprise projects. And you can use CVS to track the changes in any of these projects. In fact, in this regard, CVS is actually more than just a source management system. You can actually use it to store GIFs and JARs and anything else your project needs. Of course, the compare and merge capabilities only make sense for ASCII text, but that's to be expected. However, the basic ability to save versions of a project and then compare the components is available.

But, because iSeries source code generally resides on the host in source physical files, the CVS tools have no way of accessing iSeries code. Thus, the CVS capabilities of Eclipse by themselves don't provide much in the way of iSeries source management.

However, Eclipse is a hotbed for synergistic relationships. One of the interesting capabilities that comes about as the natural consequence of the interplay between the various features of the Eclipse workbench is the combination of iSeries projects and CVS. I won't go into detail on the concept of iSeries projects; suffice to say that the idea is to be able to drag a portion of your iSeries source down to your workbench to allow you to do offline development. One side effect is that now the source is located on your workstation in text files, which you can save in CVS just like any other source code. That includes the ability to do comparisons between versions or even to have multiple branches of the code.

There are some quirks with the iSeries project that prevent it from being perhaps as useful as it could be, but the fact is that now, with WDSC and CVS, you have your own free source control system for iSeries source code. Not a very pretty one, and not a particularly powerful one, but the price is right.

Note: In order to use CVS, you'll need a CVS server. This is simply a machine running the CVS server software. CVS versions are available for just about every flavor of UNIX or Linux out there. There is also a version for Windows called CVSNT, which I do not recommend. Personally, I think an inexpensive Linux box with lots of disk space is the most cost-effective method of implementing CVS.

Speaking of Price

Another cost-effective route is available as well. Once again, the options here are not going to fit as well with iSeries source code as they will with other types of projects, but since many are free, they're probably worth looking into.

Go to the Eclipse plug-in page for SCM to see a list of 19 projects, all but one of which are free or under the Common Public License (CPL), which is an open-source license that authorizes use in most environments. These projects range from small, single-author efforts to large, well-known, widely used tools. They provide different capabilities, including attaching to different source control systems, such as ClearCase and Perforce. (Yes, I know that Rational provides an Eclipse plug-in to ClearCase, but the open-source plug-in claims better integration and user interface.)

What About Commercial Products?

Whenever I give seminars or lectures on WDSC, I always stress the fact that most, if not all, iSeries tool vendors will be providing hooks to WDSC. It's simply common sense. Because every iSeries developer will have the license to this product, it's only logical that vendors will design products to plug into it. Rather than having to develop your own custom GUI, you can instead take advantage of the interface already provided by WDSC (which frankly is a lot better than any thick-client Java interface and is usually comparable with native Windows applications). And the first wave of commercial products is already out there: the change management tools.

There are a host of iSeries change management vendors. Some of them have already integrated their products to WDSC to varying degrees; others are contemplating it. Some of them have their own GUIs and may be unwilling to change. You'll need to contact the individual companies to find out the exact status of their WDSC plug-ins. Remember to ask about their compatibility with the new release 3.0 of Eclipse, which has significant enhancements to the UI. Be sure to ask the vendors which of the new UI features they take advantage of.

The vendors and products involved include the following:


Softlanding--Turnover

Aldon--LifeCycle Manager

 • Applied Logic--PDE/400
ARCAD--Skipper
Industrial Strength Software--ChangeMaster
MKS--Implementer

Remember, not every product above is already integrated into WDSC, and even those that are have different levels of integration. You need to review each vendor's offering to determine which products best fit your requirements as well as find out what their plans for the future are.

 

Editor's Note: As always, you can find an extensive list of iSeries vendors and their products in the MC Vendor Directory.

So What Do I Suggest?

You have some good options, depending on your needs. CVS is fine for a certain project size and complexity. However, as projects grow and become more complicated--spanning multiple machines and operating systems--you may find yourself limited by the capabilities of the free software. The commercial versions tend to have more support for things like defect reporting and tracking. Then again, there are many free plug-ins for bug tracking out there, so you can't really decide based only on which features are present.

The point is that many solutions are available today, ranging from the free plug-ins available for Eclipse to high-powered commercial applications from traditional iSeries vendors. Now, you have to go out and look at the individual product offerings and decide which one best fits you.

Joe Pluta is the founder and chief architect of Pluta Brothers Design, Inc. He has been working in the field since the late 1970s and has made a career of extending the IBM midrange, starting back in the days of the IBM System/3. Joe has used WebSphere extensively, especially as the base for PSC/400, the only product that can move your legacy systems to the Web using simple green-screen commands. Joe is also the author of E-Deployment: The Fastest Path to the Web and Eclipse: Step by Step, with WDSc: Step by Step coming out this September. You can reach him at This email address is being protected from spambots. You need JavaScript enabled to view it..

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$

Book Reviews

Resource Center

  • SB Profound WC 5536 Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application. You can find Part 1 here. In Part 2 of our free Node.js Webinar Series, Brian May teaches you the different tooling options available for writing code, debugging, and using Git for version control. Brian will briefly discuss the different tools available, and demonstrate his preferred setup for Node development on IBM i or any platform. Attend this webinar to learn:

  • SB Profound WP 5539More than ever, there is a demand for IT to deliver innovation. Your IBM i has been an essential part of your business operations for years. However, your organization may struggle to maintain the current system and implement new projects. The thousands of customers we've worked with and surveyed state that expectations regarding the digital footprint and vision of the company are not aligned with the current IT environment.

  • SB HelpSystems ROBOT Generic IBM announced the E1080 servers using the latest Power10 processor in September 2021. The most powerful processor from IBM to date, Power10 is designed to handle the demands of doing business in today’s high-tech atmosphere, including running cloud applications, supporting big data, and managing AI workloads. But what does Power10 mean for your data center? In this recorded webinar, IBMers Dan Sundt and Dylan Boday join IBM Power Champion Tom Huntington for a discussion on why Power10 technology is the right strategic investment if you run IBM i, AIX, or Linux. In this action-packed hour, Tom will share trends from the IBM i and AIX user communities while Dan and Dylan dive into the tech specs for key hardware, including:

  • Magic MarkTRY the one package that solves all your document design and printing challenges on all your platforms. Produce bar code labels, electronic forms, ad hoc reports, and RFID tags – without programming! MarkMagic is the only document design and print solution that combines report writing, WYSIWYG label and forms design, and conditional printing in one integrated product. Make sure your data survives when catastrophe hits. Request your trial now!  Request Now.

  • SB HelpSystems ROBOT GenericForms of ransomware has been around for over 30 years, and with more and more organizations suffering attacks each year, it continues to endure. What has made ransomware such a durable threat and what is the best way to combat it? In order to prevent ransomware, organizations must first understand how it works.

  • SB HelpSystems ROBOT GenericIT security is a top priority for businesses around the world, but most IBM i pros don’t know where to begin—and most cybersecurity experts don’t know IBM i. In this session, Robin Tatam explores the business impact of lax IBM i security, the top vulnerabilities putting IBM i at risk, and the steps you can take to protect your organization. If you’re looking to avoid unexpected downtime or corrupted data, you don’t want to miss this session.

  • SB HelpSystems ROBOT GenericCan you trust all of your users all of the time? A typical end user receives 16 malicious emails each month, but only 17 percent of these phishing campaigns are reported to IT. Once an attack is underway, most organizations won’t discover the breach until six months later. A staggering amount of damage can occur in that time. Despite these risks, 93 percent of organizations are leaving their IBM i systems vulnerable to cybercrime. In this on-demand webinar, IBM i security experts Robin Tatam and Sandi Moore will reveal:

  • FORTRA Disaster protection is vital to every business. Yet, it often consists of patched together procedures that are prone to error. From automatic backups to data encryption to media management, Robot automates the routine (yet often complex) tasks of iSeries backup and recovery, saving you time and money and making the process safer and more reliable. Automate your backups with the Robot Backup and Recovery Solution. Key features include:

  • FORTRAManaging messages on your IBM i can be more than a full-time job if you have to do it manually. Messages need a response and resources must be monitored—often over multiple systems and across platforms. How can you be sure you won’t miss important system events? Automate your message center with the Robot Message Management Solution. Key features include:

  • FORTRAThe thought of printing, distributing, and storing iSeries reports manually may reduce you to tears. Paper and labor costs associated with report generation can spiral out of control. Mountains of paper threaten to swamp your files. Robot automates report bursting, distribution, bundling, and archiving, and offers secure, selective online report viewing. Manage your reports with the Robot Report Management Solution. Key features include:

  • FORTRAFor over 30 years, Robot has been a leader in systems management for IBM i. With batch job creation and scheduling at its core, the Robot Job Scheduling Solution reduces the opportunity for human error and helps you maintain service levels, automating even the biggest, most complex runbooks. Manage your job schedule with the Robot Job Scheduling Solution. Key features include:

  • LANSA Business users want new applications now. Market and regulatory pressures require faster application updates and delivery into production. Your IBM i developers may be approaching retirement, and you see no sure way to fill their positions with experienced developers. In addition, you may be caught between maintaining your existing applications and the uncertainty of moving to something new.

  • LANSAWhen it comes to creating your business applications, there are hundreds of coding platforms and programming languages to choose from. These options range from very complex traditional programming languages to Low-Code platforms where sometimes no traditional coding experience is needed. Download our whitepaper, The Power of Writing Code in a Low-Code Solution, and:

  • LANSASupply Chain is becoming increasingly complex and unpredictable. From raw materials for manufacturing to food supply chains, the journey from source to production to delivery to consumers is marred with inefficiencies, manual processes, shortages, recalls, counterfeits, and scandals. In this webinar, we discuss how:

  • The MC Resource Centers bring you the widest selection of white papers, trial software, and on-demand webcasts for you to choose from. >> Review the list of White Papers, Trial Software or On-Demand Webcast at the MC Press Resource Center. >> Add the items to yru Cart and complet he checkout process and submit

  • Profound Logic Have you been wondering about Node.js? Our free Node.js Webinar Series takes you from total beginner to creating a fully-functional IBM i Node.js business application.

  • SB Profound WC 5536Join us for this hour-long webcast that will explore:

  • Fortra IT managers hoping to find new IBM i talent are discovering that the pool of experienced RPG programmers and operators or administrators with intimate knowledge of the operating system and the applications that run on it is small. This begs the question: How will you manage the platform that supports such a big part of your business? This guide offers strategies and software suggestions to help you plan IT staffing and resources and smooth the transition after your AS/400 talent retires. Read on to learn: