Every few months someone will be in my office (I am being very generous when I call the space I sit in an office; it’s more like a room in an art museum, lots of open space, people walking through and things on the walls I don’t understand) up in arms that we are not getting the message out about what we do. Someone in the office will receive a call from one of our customers asking if we do “such and such”. The response will be “of course we do such and such it is one of the primary uses of our product and you are already licensed for it”. The person that received the call will then come into my office all up in arms – not because our product doesn’t do “such and such” but because our customer didn’t know we do it and that they already had it. “We need to change the demo slide set, revamp the web page, change our marketing message. If our own customers don’t know what we do how can we expect potential customers to understand what we do?” So we will make some changes in the slide set, change the web site to have different key phrases, change our language when we talk to potential customers all to make sure that everyone knows we do “such and such”. I think for the most part this reshuffling of our message on a regular basis is good, although I am not in as quite as much of a panic as some.
When we “win” a new customer it is usually for a very focused solution for a very specific problem our customer is trying to solve. I would guess that on average a typical customer uses somewhere around 5-10% of what our product line is capable of, with different customers using different feature sets. That percent might be surprising to some considering we only have a handful of products, most of which only target the CICS space. But what we really sell is a set of tools – not a solution to a specific problem. When I work on my lawn tractor I usually only end up using a screw driver and an adjustable wrench, I have a lot of other tools in the toolbox that I use for other jobs (okay not so much anymore, after my installation incident with my dishwasher) and a whole lot of tools I rarely use if ever (I am sure I needed them when I purchased them). Our customers are very focused on their problems, not our entire solution set. Therefore, I don’t find it surprising that they don’t know they have a HostBridge toolbox full of stuff and not just a pair of pliers (why do we say pair of pliers, if there is only one?).
So how do I tell our customers all of the things our tools are capable of doing? Well, the honest answer is I can’t. Customers surprise me all the time with the inventive ways they find to use the HostBridge products, things I would have never thought of. When I am doing my demo for prospective customers I usually try to sum up what we do by saying “HostBridge allows you to integrate anything inside of CICS with anything outside of CICS without having to make any changes to your applications.” While that may seem like an overly broad statement, it really doesn’t say enough. I can’t write enough words to cover everything we do (really, I can’t; I am already about 50% over quota) so I will just put together a list of things I know our customers are doing and maybe a few things they could do. I am going to focus on Base HostBridge and HB.js as that is where I spend most of the time. So before I get to the list here is a short description of what I think (everyone in the company would have a different description) Base and HB.js does.
Base HostBridge allows me to programmatically exercise an application that was only meant to run on a terminal. What does that mean? There are many, many, many applications written to run under CICS that were only meant to run at a terminal where an operator has to supply the input and interpret the output. If you want to reuse the program logic built into these applications you either have to use a screen scraper to wrapper them or rewrite them to remove the terminal interactions or use Base HostBridge. It is not an exaggeration to say there are 100’s of millions of dollars invested in these types of transactions across multiple industries. Transactions that are still capable of fulfilling the business needs of the company but have an interface that no one wants to use. Base HostBridge provides an API to your existing transactions that programs can interact with, without having to change the existing application. For some of our customers this has saved 10’s of millions in not having to rewrite applications.
Okay – so now for the list. It is really just a list of capabilities that can be combined in any number of ways. It is not comprehensive and in no particular order. I am sure it will be added to as people point out things I have missed.
- Leverage/use existing security/auditing/logging
- Create new security models (you don’t have to)
- Expose CICS transactions as web services
- Work with DB2
- Expose DB2 data with web services
- Dynamic SQL, stored procedures
- Work with VSAM
- Expose as web services
- Work with MQ
- Invoke web services on the inter or intranet, COBOL programs running in CICS calling web services using HB.js
- Use nearly any API style
- SOAP, XML, JSON, Restful, ATOM, URL query string, HTML, text, CSV, etc
- Leverage MRO
- Run transactions in any region
- Load balancing
- High availability
- Any client/application platform can invoke/use your CICS applications (I mean anything, Java, .Net, Apache, Tomcat, WebSphere, Adobe Reader, Excel Spreadsheets, etc. . . . .
- Encrypt any or all conversations (SSL)
- Authenticate and authorize users using host security systems and/or host application data for web applications
- Submit batch jobs
- Trigger timed events in CICS
- HostBridge services can be triggered by CICS Events
- HostBridge service can trigger CICS Events
- Read/write/delete TSQueues
- Read/write TDQueues
- HostBridge services can be triggered by TDQueue writes
- Call CICS programs
- Channels and containers
- Call non-CICS programs
- Run CICS programs in batch
- Run batch programs in CICS
- Act as a web server
- Authenticate conversations with
- Basic authentication
- Client Certificates (x.509)
- Trusted Host
- No authentication
- Interact with real terminals with or with out BMS maps
- Invoke nearly any CICS API (if you need one we don’t support we will add it)
- Push data real time out of CICS
- Gather CICS statistics
- Publish dashboards
- Bidirectional data replication