Mac 3270? Water and Vinegar?  How Mainframers began to use Macs

It may seem strange to think that users, application developers, and systems programmers of IBM mainframes may use a Mac 3270 solution for serious work.  Indeed, in the 1980s and early 1990s, much of the tech world was captivated by the battle between Big Blue and Apple Computer for the future of personal computing.  Big Blue was East Coast, big, bureaucratic, and specialized in big computers that seemed impersonal and perhaps distopic (e.g. Stanley Kubrick’s H.A.L. is I.B.M. minus one letter).  In contract, Apple was the scrappy start-up of California hippie types.  IBM’s open hardware standards and marketing expertise led the IBM PC standard to dominate the market.  However, this open standard would also eventually undermine IBM by waves of hardware commoditization by “IBM Compatibles” that would eventually allowed Microsoft to displace IBM as the PC hegemon, undermine the OS/2 operating system, and ensure the dominance of Microsoft Windows.

Fast forward two decades, and the competitive landscape appears quite different.  Despite creating the dominant PC architecture, IBM sold its ThinkPad division to Lenovo in 2005.  Following the return of Steve Jobs, Apple began its march back to popularity starting with the 1998 iMac, and massively accelerating following the 2001 release of the iPod, the 2007 release of the iPhone, and the 2010 release of the iPad.  Although Microsoft continues to fight both Apple in the PC and mobile market and IBM in the Enterprise market, IBM and Apple now exist in entirely separate and distinct market sectors.  Between IBM post-ThinkPad endpoint-agnosticism and the growing popularity of iOS and Mac OS X, it should therefore be no surprise that an increasing number of mainframe professionals seek to find ways to use Apple computers, phones, and tablets to administer and run mainframe environments.  In fact, a recent study has suggested that IBMers are collectively only second to Apple is the number of employees using OS X and iOS devices.

This guide seeks to help mainframe professionals maximize the use of their MacBooks when working with mainframes via 3270 terminal emulation.

Step One: Find a good 3270 Terminal Emulator

While there are countless makes and models of 3270 terminals, I have found that most mainframers running Windows use the IBM Personal Communications Tool (called PCOMM for short).  There are numerous reasons for this, including fantastic support for advanced 3270 features and built-in tools for things like FTP transfers.  However, for one reason or another, IBM has not decided to port this product to OS X, making Mac use of PCOMM only possible via VMWare or Parallels virtualization and a Windows guest.

In my opinion, the thought of running an entire layer of Windows to run a 3270 terminal emulator seems absurd.  I therefore suggest looking at the robust and long-standing Brown tn3270 terminal emulator.  This piece of software produced by staff at Brown University allowed Macs to emulate a 3270 terminal going back all the way to the early 1980s.  In short, they were Mac users long before Macs were cool.  The product is currently maintained and enhanced by Peter DiCamillo.  While there are certain advanced features missing from tn3270, such as support for LU names or 3270 graphics or a built-in FTP utility, these features will likely not be terribly missed by most.  Even better, this software is offered free-of-charge for both commercial and non-commercial use.

To download tn3270, go to the tn3270 product page on the Brown CIS website and click the HTTP download link  As of this post, 3.3b6 is the most current version.  Once you’ve downloaded the *.dmg file, open it and you’ll see a number of items, including a tn3270 X application bundle, release notes, (highly outdated) documentation, some utilities for customizing keymaps and printing, and an optional sound and font.

brown mac 3270 dmg package contents

In my case, I ignored the other files and merely installed the application by dragging the tn 3270 x application to my local Application Folder.  Once copied, the file is installed and ready for use.  Open the application and click File -> New Connection to see the following Dialog:

brown mac 3270 settings page

Type in the name or IP address of the host and the name of the connection.  You can also select SSL and other settings as needed by clicking on the other icons.  Once you’ve configured the settings, click Open Connection and you should see a familiar 3270 screen open.

brown mac 3270 default black screen

Step Two: Mac-ify the look of your 3270 through a White Background

Mac users tend to known as valuing a good-looking UI, and the built-in UNIX terminal app is no different.  Under the preferences of the OS X terminal, a user can select from any number of different looks.  However, the default “Basic” theme emphasized a plain white background that emphasizes the elegant simplicity of the UNIX terminal.  I very much like this look, and I’ve made my tn3270 terminal emulator look similar by opening up Session -> Colors and changing the background color to White.  This makes the 3270 look much for Mac-ish:

brown mac 3270 white screen

Now that we have our 3270 setup in a visually-pleasing way, let’s save these settings by clicking File -> Save Default Settings.  In addition, let’s save our connection and display settings my clicking File –> Save Settings as.  This will produce a settings file for this particular connection.  If you have to regularly connect to multiple different mainframes, you may want to dock the folder containing these settings folder in the OS X doc.  That way you only need to click on the folder and the particular settings file to auto-configure and auto-connect to the system you need at that moment.


Step Three: Free your Function Keys from Apple Hegemony

One annoyance of using a Macbook with 3270 terminal emulation is the need to hold down the fn key in order to press a function key.  Over time, I’ve come to grips with this situation, as I enjoy being able to activate OS X controls via those keys.  However, one particular problem is that, by default, OS X treats F10 as a shortcut to show Application Windows and F12 as a shortcut to shift the entire desktop to the OS X dashboard.  This needs to be disabled in order to be able to use all 12 F-Keys in tn3270.  To do this, select Keyboard from System Preferences, click Mission Control, and then disable the Application Windows and Dashboard options as follows:


Great!  Now your F-Keys have been liberated.  If you want to get to the dashboard in the future, simply use the three finger swipe to the right.  Speaking of multi-touch…

Step Four: Download Better Touch Tool and touch-enable TN3270 like a Boss

One of the greatest aspects of using a Mac is having such a fantastic touch-pad.  While MacBooks aren’t touch-screen devices, they are still quite touch-centric.  The two and three-finger gestures are amazing tools for power users.  Thankfully, there is a fantastic 3rd party tool called Better Touch Tool which allows various applications to have profiles that map touchpad gestures to keystrokes.  This is fantastic!

To download Better Touch Tool, head over to this CNET download page.  Unlike before, this app is delivered in a zip file.  Double click the compressed volume to see the Better Touch Tool app package, and then drag this app over to your Application Folder to install this tool.  Double click the app from your Application folder to start it.  You’ll now have a small icon at the top of your desktop that looks like a finger on a touchpad.  Click on this icon and select “Check for Regular Updates” to ensure that you’re on the latest version.


Once updated, click the app icon again and select preferences.  The screen will look as follows:


You’ll first need to add tn3270-specifc settings.  Do this by clicking the small + button under the Select Application panel on the left.  In the open dialog that pops up, select tn3270 and click the open button:


Now that you’ve opened and selected tn3270, click on the button labeled “Add New Gesture


Based on my experience, I suggest adding the following gestures.  These two-finger swipes will all you to use two finger swipes to navigate up, down, left, and right on a 3270 panel just like a web page in a browser.  The pinch in gesture is also mapped to F3 in order to make it easier to exit out of a program.  This may not map to Apple gestures, but until the 3270 supports zooming, I think that this is a good use of this gesture.



By following this guide, you Mac should now be able to 3270 with the best of them.  Damn the naysayers, full speed ahead!  In fact, your multi-touch settings should turn some serious heads in meetings.

Do you have any other suggestions for configuring tn3270 on a Mac? Do you know of any more suggestions for mainframers transitioning to using a Mac?  Let’s hear them in the comments!

Posted in Uncategorized.
IBM Rational software was acquired by IBM in 2003, to become one of its leading software brands. For some time, the name itself intrigued me the most, and after diving into its different products, it made perfect sense to me: every result or impact yielded was the direct effect of applying a smart but rational twist to how things were done. All in all, IBM Rational allows you to change how you design, develop, and deliver software, to build more innovative products and services, beat your competition, shorten time to market, with lower costs and cut down risk. 

Each software project, whether large or small, undergoes certain phases, which combined are known as the Software Development Lifecycle (SDLC). There exist five stages in the SDLC model: Requirement Analysis, Design, Implementation (coding), Testing, Evolution (maintenance). Under the Rational suite, there are many products that are key for a smarter development environment and complement the development life cycle.

IBM has dubbed Enterprise Modernization a cornerstone in their Smarter Computing initiative, offering an approach in revitalization and continuous improvement of aging applications, empowering development using both existing and new skills with productivity enhancements, unifying teams to increase organizational agility across all platforms, and optimizing usage of IT infrastructure by freeing up capital and capacity needed to run critical, production applications – all with the goal of making breakthroughs in IT efficiency and innovation.

There are several families of IBM Rational products in which Enterprise Modernization plays an important role in:

Rational Asset Analyzer is an application discovery and impact analysis tool for improving your understanding and insight into relationships within and among System z and composite applications. Not only will it allow you to understand the code better, but it will also show you existing application inter-dependencies, meaning changes can be made with fewer mistakes and comprehensive testing, helping complete projects on time and within budget.

Rational Team Concert is a unified and collaborative multiplatform team infrastructure including support for System z and distributed systems to help streamline the entire application development and deployment life cycle across all operating environments. Following is a simplified example of why team collaboration is a very important parameter for a productive environment. Imagine a kitchen in a restaurant where dinner (source code) is being planned (designed). The chef (project manager) will hand out tasks (jobs) to the rest of the cooks (developers). Each will have to prepare his list of ingredients (requirements) and cook his dishes (artifacts). At the end, all dishes collectively leave the kitchen (lab) to form the dinner (end product). For this event to be successful the chef (project manager) needs to be aware of what each cook (developers) is working on, make sure that every one is in sync and that no duplicates are being cooked (developed), securing a smarter development environment. 
Rational Developer for System z helps make traditional System z development, web development, and integrated Service Oriented Architecture based multi-platform development faster and more efficient. It supports modern user interfaces and full web application processing and web services to integrate these application styles and processes together. It creates, maintains, debugs and deploys transactional and batch applications to the z/OS platform. It promotes the reuse and transformation of existing applications to help reduce costs and shorten the development cycle.  For all of us young mainframers, RDz offers a “GUI” interface to the good old green screen while adding great new features and capabilities.
Rational Development and Test Environment for System z provides a small-scale, unit test environment for developers who will be able to run z/OS and z/OS middleware on an Intel or Intel-compatible (x86) personal computer, thus bringing flexibility and reducing the cost of developing in a mainframe environment. The developer is now capable of building and testing new System z applications virtually at anytime and from anywhere. The z/OS features are still the same, however, developers can now create applications in the unit test environment before being released on the mainframe, hence shared mainframe environments or processes are left intact. Since the testing is run in the unit test environment, this means that mainframe development MIPS (million instructions per second) are spared for production capacity. 
Rational Host Access Transformation Services quickly transforms your 3270 and 5250 green screen applications to intuitive web, portlet, rich client or mobile device user interfaces, and extend 3270, 5250, and VT green screens as standard web services. 

The purpose of this post was to give you a quick overview of what IBM Rational software has to offer to the development world. More detailed follow up posts will be coming your way soon, so stay tuned and remember to always think Rationally.

Posted in Uncategorized.

I can pull up by the curb,
I can make it on the road,
Goin’ mobile
I can stop in any street
And talk with people that we meet
Goin’ mobile
Keep me moving…

Apologies to The Who, but I just couldn’t resist. Computing horsepower is at our fingertips these days – whether we’re at the curb, on the road, at home, while talking to “people that we meet”, etc. Last week I finally joined the ranks of the iPhone users. Mine has 32GB of storage – more space than the entire DASD farm of my first IBM customer. It’s rather staggering to see the horsepower available to mobile users in comparison to the computing capability that some of us worked with back in “the good ol’ days”.

But what does this have to do with mainframes, other than to trigger the “Back in my day…” reminiscing? A lot, actually. All of this circles around computing architectures, including thin vs. fat clients, centralized vs. decentralized computing, and ultimately into the cloud.

First, some background on where we are and where we’ve come from.

According to a recent Gartner Group survey, mobile computing is the second highest tech priority for CIOs. “BYOD” is the watch word in corporate IT now…and is garnering much concern from IT management that must protect and secure the assets in the enterprise. It’s a very similar picture to the early 90s when “client/server” technology was pushed from the ground level by PC users who began downloading corporate data to their desktops and building innovative new applications that used technology in new ways.

After the client/server boom exposed flaws in pulling all this data down to workstations & servers, another paradigm shift began – to “thin clients”. Smartphones, tablets and other “pervasive” devices are computers with little or no local storage but with fairly significant compute capacity. IBM dabbled with this concept of the thin client in the mid/late ’90s with the “Network Station“…a diskless workstation that required an external monitor, no hard disk, and ran a JVM only. Applications were to be downloaded from the server side and executed on the workstation, but some apps could be pre-loaded. It was a very early cloud computing implementation but didn’t go too far because of limitations in JVM technology, applets and a huge lack of network bandwidth. Today’s thin clients are mobile devices, but the capability that is now built into the average smartphone or tablet dwarfs that of the old Network Station…hardly “thin.”

Now users are finding new ways to use existing data and applications on their mobile phones – the New Thin Client – and are demanding that corporations support these new mobile devices. Always on, everywhere on…it’s being referred to as “Generation C” (for “Connected”). It’s a technology boom that again is being driven by the empowerment of the end user to drive the technology/IT experience, rather than being driven from the IT department downhill.

But even though the users are empowered with this new technology, we still have this problem of applications and data that resides on “the mother ship” that must be accessed from this New Thin Client. And in our case, that “server side” is the mainframe.

In the mobile/mainframe context, I’m tempted to immediately mention support for 3270 terminal emulation on mobile devices, but that’s really not where the action is. The more intriguing question is: how can we leverage the mobile platform and interfaces not just to expose applications (3270 or otherwise) and data, but how can we modernize and simplify? There are a number of approaches to integrating mobile computing platforms with mainframe data and applications, and much of this technology is based on what IBM has been building into the System z software portfolio for years. It revolves largely around support for integration with z/OS subsystems such as CICS, IMS and DB2 and on access to virtualized servers running on Linux under z/VM – all technologies that have been in place for a number of years.

So how might a company use a mobile platform to take advantage of the resources on the mainframe? Let’s start by looking at the user interface – the mobile device itself.

The “app marketplace” has become a cottage industry for software development. Apps on iOS, Android, and even (coming soon) Microsoft’s Metro interface have re-ignited the world of fat client applications (if you consider any mobile device to be “fat”!). Developer tools such as Apple’s Xcode IDE, Eclipse and Android’s plethora of open source tools have made it far easier to build these interfaces, and with the pending acquisition of Worklight, IBM now moves into a much stronger position as a “platform agnostic” provider of mobile development tools. And beyond the single-purpose business-aligned apps there are a new breed of general-purpose business apps such as Cognos Mobile, which can be used to access Cognos data/reports that might be generated from Cognos data residing on System z.

If the mobile device application is designed as a true “thin client”, with little/no logic residing on the device, then there is little difference between a browser app on a PC and a browser app on the Smartphone. And for years we’ve been writing apps that run on back-end web application servers that, in turn, invoke transactions or pull data from mainframe systems. But there are a couple of twists here with respect to the user interface. Until recently, mobile browsers were pretty low-functioning, could not support the modern functions of Javascript and related APIs, and the screen real estate was too small to use effectively. With the advent of mobile Safari, Chrome and others, rendering a standard web page on a mobile is pretty easy. However, there are still some pretty significant usability and viewing considerations for a browser app that runs on a 3″ handheld screen vs. a 10″ tablet vs. a 27″ iMac. So UI design is critical, even for browsers. A key emerging technology for building thin-client browser apps for mobile is HTML 5. Some companies have moved from the app model to HTML 5 implementations – the Kindle Cloud Reader and the Financial Times apps have now moved into the browser, and their function is basically indiscernable from a “real” app.

On the mainframe/server side, there are a couple of key technologies to enable data/transaction access by mobile devices. Existing applications can be “mobile-enabled” by exposing their functionality as services. The data and transactions must be exposed for access by standardized APIs. Web Services and REST technologies can be used to access IMS, CICS and DB2 on the mainframe. For example, there is a great sample of how to build an iPhone browser application that can access CICS transaction data and integrates with Google Maps on the mobile device. CICS Web Services is used to call an existing CICS application from a “Rich UI” application developed using Rational and WebSphere tools. A similar application model could be used to access IMS transactions or even DB2 data on existing mainframe systems. A very nice Redbook on the topic of using z/OS-based technologies with mobile devices is “System z On The Go – Accessing z/OS from Smartphones“. It contains a lot of details on how to use several z/OS-centric technologies with mobile devices.

New and rewritten applications on System z should be designed with service usability in mind. Service-Oriented Architecture design principles are key to providing interfaces that a modern UI developer can access easily. Data design is key to easy access via relational queries or new business intelligence and analytics tools. Again, I’m particularly intrigued by the possibilities in using Cognos Mobile to access mainframe-hosted data. Other such technologies, such as IMS, Adabas and IDMS provide relational access paths that can also open those repositories to mobile data tools.

You’ll notice that I haven’t spent a lot of time talking about specific mainframe integration technologies. That’s because little has changed between the mobile and the “traditional” mainframe integration/enablement that we’ve been doing for years now. Mobile is a UI-layer technology that does little at a technology level to impact System z. Like the browser enablement of the last decade or so, mobile UI enablement will further boost the demand for integration at the back end and will drive even more demand for System z transaction and data resources as users discover how easy it is to access information. If you need information on how to approach mainframe integration, check out an IBM Redbook that I co-authored a few years ago: SOA Transition Scenarios for the z/OS Platform. In that book, we describe many of the service integration and enablement technologies that would be needed to expose mainframe applications and data for access by a mobile device.

Oh, and if you insist on going mobile with 3270, there is a way.

But the key point is: mobile technology is NOT a matter of shifting FROM mainframe applications to mobile applications – it’s about shifting the user interface of mainframe applications to one that is friendly to mobile or browsers or whatever the Next Big Thing is in user interface design.

Posted in IBM.