Showing posts with label SOA. Show all posts
Showing posts with label SOA. Show all posts

Sunday, 16 September 2012

CICS communication history

In the beginning, CICS programmers used conversational transactions – but not any more. Pseudo-conversational coding is less resource-intensive, user think time costs are eliminated, and sites can run more simultaneous transactions. On the down side, programming is more difficult, application design requires re-starting programs, it’s more difficult to debug programs, and programs require an area to store data between tasks.
 

And so we get the Communication Area (COMMAREA). It’s a terminal-based scratchpad that’s dynamic in size (0 to 32,500 bytes), and is private and chained to the terminal. The COMAREA can hold data between pseudo-conversations, has a maximum in size of 32K, can be passed from program to program, can be empty, partially full, or full, and is automatically cleaned up when not used.

However, COMMAREAs have obvious limitations, and so IBM gave us channels and containers. There are no size limitations on data in containers, the number of containers in a channel is unlimited, and there can be separate containers for input and output.
Another way round COMMAREA limitations is to use an XML (eXtensible Mark-up Language) front-end application. Associated with this are:

  • Extensible Stylesheet Language Transformation (XSLT) is the recommended style sheet language of XML.
  • XML namespaces – in XML, element names are defined by a developer.
  • XML schema is an XML document that describes the structure and constrains the contents of other XML documents.
  • XML parser is a program that is invoked by an application to process an XML document, ensure that it meets all the rules of XML as well as the syntax of the DTD or schema, making the data available to the calling application.

With the introduction of Services Oriented Architecture (SOA), programmers now use CICS Web services. A Web service is a collection of operations that are network accessible through standardized XML messaging. The Web services architecture is based on interactions between three components: a service provider, which is the platform that hosts access to the service; a service requester, which is the application that is looking for and invoking or initiating an interaction with a service; and service registry, which is a place where service providers publish their service descriptions, and where service requesters find them.


Universal Description, Discovery and Integration (UDDI) is a specification for distributed Web-based information registries of Web services. The service provider “owns” the service, creates the WSDL (Web Service Description Language – see below), publishes the WSDL, and processes the requests. The service requester “finds” the service, binds to the service, and invokes the service using the WSDL. The service registry hosts the service description and is optional for statically bound requesters.


WSDL is an XML application for describing Web services. WSDL comprises:

  • Types – the data types in the form of XML schemas
  • Message – an abstract definition of the data in the form of a message
  • PortType – an abstract set of operations mapped to one or more end points
  • Binding – the concrete protocol and data formats for the operations
  • Service – a collection of related end points.

Simple Object Access Protocol (SOAP) is an XML-based protocol for the exchange of information in a distributed environment. A SOAP message is encoded as an XML document.
 

The CICS Web services assistant is a set of batch utilities that can help users transform existing CICS applications into Web services and to enable CICS applications to use Web services provided by external providers. The CICS Web services assistant comprises two utility programs:
  • DFHLS2WS generates a Web service binding file from a language structure. This utility also generates a Web service description.
  • DFHWS2LS generates a Web service binding file from a Web service description. This utility also generates a language structure that you can use in your application programs.

You can use Rational Developer for System z for Web services and XML development. A CICS pipeline is responsible for dealing with SOAP headers. It’s implemented as a series of programs, and can be configured by end users by using message handlers. A message handler is a program in which you can perform your own processing of Web service requests and responses.

Saturday, 19 May 2012

Making it look nice for CICS users

Let’s look at an archetypal MVS site. Kenny wrote most of the original Assembler and quite a bit of the COBOL code that drove the business all those years ago. He was a big man and a real hippie. He even came to work in his sandals and decorated his office with album covers. He thought that writing comments in code was just a waste of time. Doug, who took over from Kenny was an absolute troglodyte. Whereas Kenny was fun to go for a drink with – and boy could he drink – Doug was forever under the floor connecting high speed back-up technology that no-one else really understood. He was great because he’d help everyone with code problems, but he seldom turned up to meetings or understood the concept of budgets. But everything worked like a dream and the company made money.

Nowadays we’ve got Ross heading up software on our z/OS CICS system. He does attend meetings – lots of them. He’s on the committee at a local user group and he’s given presentations at SHARE. He’s even got a wife and children! The problem is that much of the code that Ross looks after is quite old and doesn’t have many comments. There was an effort in 1999 to document everything, but it’s now out-of-date since the SOA (Services-Oriented Architecture) project.

The trouble at many sites is that their Ross is kept very busy at the mainframe end of his CICS system and thinks that the bit of AJAX on the Web browser front-end is enough to keep the end users happy. The truth is, end users are never happy! So what if someone at a conference told Ross there was an easy way (well, perhaps not easy, but fairly straightforward certainly) to make the end user experience of his CICS applications look like it was written in 2012 and not 1912!?!? Do you think Ross would be interested?

Before we look at what this amazing solution might be, let’s briefly look at Web design. Back in 1999, a Web site was pretty much made up of static pages. Someone wrote the pages in HTML and, over time, people updated the information on those pages. Then we had PHP and MySQL. This provided a database that users could update as necessary, and the PHP pages pulled out the latest information. They still looked like static pages, but they were easier to update. Then, we had JavaScript that gave us programming capabilities and all the flexibility that goes with that. Then we had JQuery, which was JavaScript with all the hard work already done for us. You’ve seen Web sites with JQuery-like effects – the ability to click on a thumbnail image and see it large in the middle of the page while much of the rest of the screen is covered with a semi-transparent layer. An example would be clicking on a photo in Facebook.

So let’s tell Ross about the Dojo Toolkit from the Dojo Foundation. Now at Version 1.7, the Web site at http://dojotoolkit.org/ says: “Dojo saves you time and scales with your development process, using web standards as its platform. It’s the toolkit experienced developers turn to for building high quality desktop and mobile web applications.” Now, suppose there was some way to plug that into CICS. So while Ross was looking after the CICS applications, Dojo was making sure that the end users had a good experience.

The Virtual CICS user group (www.fundi.com/virtualcics/) heard from Stephen Mitchell, Managing Director of Matter of Fact Software Limited, earlier this month. He gave a talk entitled: “Utilizing the Dojo Toolkit for Web browser-driven applications from CICS”, which really got to grips with how CICS and the Dojo Toolkit could be integrated. The base functionality of the Dojo Toolkit is made available to a Web page by including a link to dojo.js. This includes plenty of features like CSS-based queries, event handling, animations, AJAX, class-based programming, and a package system that makes getting access to the rest of Dojo very easy.

There are additional stable (but optional) components for advanced animations, I/O, data, drag-and-drop, and much more with Dojo Core. Dijit is Dojo’s theme-able, accessible, easy-to-customize UI library. Dijit requires Dojo Base and various Dojo Core modules to use. It allows for the creation of widgets. For the more adventurous, there’s DojoX, which contains a number of sub-projects based on the Dojo Base. Each project has a varying states of maturity – from very stable and robust to alpha.

Stephen’s company recognized a need to control the Dojo Toolkit that was being used by their PlexSpy application status monitor product. And they decided that if it was an issue for them, it was most likely an issue for others. So they created a generic server solution that could be used by anyone with CICS on z/OS. As a consequence, the Dojo Toolkit has been taken into the mainframe environment and is served from CICS out of PDSs. This brings the strengths of the mainframe to sites using the Dojo Toolkit – providing the control over it that those sites needed.

Ross can now put his feet up at home with his family knowing that his end users are happy with their working environment. And the code Kenny and Doug wrote is still doing its job for another generation.

Saturday, 2 July 2011

Where do the tablets go?

So, your organization has a mainframe – had one for years – and everything is nicely locked down. You can recover almost up to the minute the system or subsystem crashed (which it hardly ever does), and you’ve got people who seem to know, almost by instinct these days, when something isn’t performing quite right.

On top of that, you’ve got another layer of IT. People who use laptops with Windows and/or people who use Linux, and possibly bits or Solaris dotted around. These people have more interesting lives. They have to fight to get the best performance. Their back-up strategy is good if they can recover to last night! They probably still insist on people using XP as their Windows operating system because Vista was no good and it’s a bit of a jump to Windows 7. Plus they’re probably coming to the end of a virtualization project to reduce the number of server boxes they’ve got lying around. Parhaps they’re installing Citrix to virtualize desktops, or SharePoint to produce an intranet and join up all the separate islands of computing.

Plus you’ve got remote users, who are logging in over somebody else’s wifi. Or they might be using the 3G network on their smartphone. It’s your fault, of course, because you spent so long changing your CICS and IMS applications so they could be used in a Service-Oriented Architecture (SOA) environment. But, I guess you have strategies in place to secure the connection, and secure what applications they can run, and what data they can see.
In fact, you’re probably convincing senior managers in your organization that it really was their idea all along to combine the strengths of mainframe computing with the flexibility of distributed systems. What your organization needs is a nice z196 mainframe – perhaps one of the planned-but-not-quite-announced Business Class (BC) machines.

For those of you who’ve spent the past year on Mars, the z196 brings together the latest mainframe technology with POWER7 and x86 IBM blade systems, giving potential users z/OS, AIX, Linux, and (coming soon) Windows, all on the one box. At this stage, I should point out that there are very strong arguments for going to zLinux. It’s been around for 10 years now, and is just becoming an overnight success – as they say.

So, there you are thinking that you can use your mainframe experience and expertise to tidy up all the other computing areas in your organization and get them under your control when HR tells you they have supplied everyone on the board of directors with an iPad. Now, you might think this is a good opportunity to bring some of the board into the 21st century, but it creates yet another rip in the secure blanket you've been throwing over the company’s computing infrastructure. Can you set up a security policy for iPads? Well, yes, if they come into a Microsoft server – in the same way you would for Mac users. Can you allow board members to download apps? Or can they have only pre-approved ones? Where do you start building proper security? It’s back to herding cats!

And don’t think I’ve singled out iPads, Androids have similar issues. You can download firewalls and anti-virus software for them, but it’s not the same as RACF!

And it might not just be board members – you may still have road warriors that want the small form factor of a tablet. The issues of theft or forgetfulness compound your security problems.

My suggestion at this stage is to wait for Windows 8 tablets, and hope that the policies laid down by the non-mainframe ITers will apply to them. And by then, Windows will be running on our z196 box. So everyone’s a winner!

Sunday, 12 September 2010

Cheaper mainframe data access?

Accessing mainframe data and applications (including CICS) just got easier and perhaps cheaper with the announcement by HostBridge (www.hostbridge.com) of  HostBridge for zIIP – shortened to HBzIIP.

HostBridge – the software rather than the company – aids mainframe integration. The HostBridge base product runs under CICS and intercepts CICS data before terminal data streams are generated as output or expected as input. HostBridge then auto-converts the data to XML documents for integration with other applications, distributed systems, Web applications, and anything using Service-Oriented Architecture (SOA). The HostBridge base product is a prerequisite for all other HostBridge products, modules, and connectors.

The company has now released HostBridge Version 6.5. The extra appeal of this version is that users are able to reduce their costs by moving integration/SOA workloads to the zIIP specialty engine. The other advantages the company promises include the development of Web services with greater speed and flexibility, and the ability to add Web 2.0 functionality to integration/SOA initiatives.

zIIP (z Integrated Information Process) specialty engines allows organizations to increase mainframe processing capacity for specific workloads without higher licence fees. As we’ve said before, when looking at NEON’s zPrime product amongst others, users need to pay to have the zIIP processor activated, but then pay less for usage of the main processor because the work is being processed on the zIIP engine. For most mainframe users, it can be quite a complicated spreadsheet calculating whether using zIIP or zAAP (z Application Assist Processor) specialty processors is worthwhile. But once you’ve got them, the more processing you can run on them, the less money you pay IBM each month.

Quoting from the press release, the new version offers the following advantages:
  • HostBridge Process Automation Engine.
    The new HB Process Automation Engine is a JavaScript-based development/runtime facility that lets users integrate any CICS application or CICS-accessible data source (DB2, VSAM, DL/I, Datacom) with any distributed systems. HB Process Automation also allows users to orchestrate and automate complex CICS transaction processes as a single service.
  • Web 2.0/Lightweight Services.
    Newly-supported services technologies include REST, E4X, XPath, JSON, and Atom. They offer simpler alternatives to formal SOAP/WSDL-based services for faster, more agile integration of CICS data and business logic into new composite applications and mash-ups.
If your looking at XMLing your mainframe applications and you have zIIP running workloads already, then it’s worth a look.

Sunday, 17 January 2010

2009 – a review

2009 was quite an interesting year considering that we entered it in the middle of the worst financial crisis for x number of years – I’ll leave you to fill in a value for ‘x’, but whatever number you put, things were bad.

So, what exciting things did happen? Well, IBM continued with the inexorable progress of its mainframe software. We saw IMS V11 actually being GAed – it had been available as a beta for a while. The new version boasted even better SOA (Service-Oriented Architecture) and Java features and a host of other useful enhancements for IMS users.

The people at Hursley gave us CICS/TS Version 4.1. This again had robust all-round improvements plus featured enhancements in the areas of Web 2.0, dashboards, and business event publishing.

DB2 didn’t exactly manage a new release proper, but did beta Version 10. Again, this is designed to improve performance and save MIPS – which being chargeable is a good thing to have. Obviously someone at IBM owns a Mac rather than a PC because they are calling it DB2 X (like Mac OS X).

Perhaps the most important release is the new version of the operating system. The cool kids are now using z/OS V1.11. Like all good operating system upgrades it is backwards compatible and improves performance. There were also some enhancements to autonomic computing – the software answer to the ageing IT population – which means the software will identify potential faults before they occur and take steps to prevent them. Or if it’s too late for that, they will recover from them – and all without human intervention.

Away from the mainframe, perhaps the biggest news was Oracle buying Sun Microsystems. Reports are coming in of potential massive job cuts at Sun. Interestingly, Michael ‘Monty’ Widenius, co-creator of MySQL (which Sun owns), ran a Web campaign called “Save MySQL” to convince European regulators to prevent Oracle’s buyout.

The other big news for mainframers was NEON Enterprise Software’s announcement of zPrime. Why the excitement? Well, IBM and many independent software vendors (ISVs) generally charge users for software by the amount of General Purpose Processor (GPP) capacity they use. IBM also sells specialty processors, which are available for workloads like Linux, Java (think WebSphere), and DB2. For a typical mainframe site, processing work in a specialty processor saves money because it is not using the chargeable GPPs – and there’s an added benefit that it can save an organization money by putting off the need for an expensive processor upgrade. The controversial zPrime software, according to NEON, allows users to run up to 50% of their workload on specialty processors. So in effect a zIIP doesn’t just run DB2 work, it can also run IMS, CICS, TSO/ISPF, batch, etc, etc. On the plus side this offers the strong possibility of bringing down the total cost of ownership of the mainframe, which is always good for users (though there is some debate about the achievable level of savings). On the negative side, IBM and ISVs may opt to limit the use of zPrime through licence changes (particularly for those users who are tied into Enterprise Licence Agreements) if specialty processors are used for workloads other than those intended. IBM has already issued letters about customers violating agreements if they use zPrime, and NEON has sued IBM. It will be interesting to see what happens in 2010.

Personally, 2009 was an interesting year. I became an IBM Data Champion in an IBM-sponsored initiative that was rebadged as IBM Information Champions. I was also a finalist in the Computer Weekly blog awards in the category of Individual IT professional male. In addition, I qualified as a clinical hypnotherapist and psychotherapist and added loads of letters after my name. (If you want to know, look at http://www.itech-ed.com/hypno/us.htmhttp://www.itech-ed.com/hypno/us.htm.)

Looking forward to 2010, the Arcati Mainframe Yearbook will be available shortly with its annual mainframe user survey; the Virtual IMS Connection user group has a full calendar of events for IMS users; you can now follow my IT-related tweets on Twitter (twitter.com/t_eddolls), and become a fan of iTech-Ed on Facebook. It will be interesting to see what else happens.