The Role of HostBridge in the CICS Services Architecture
|
|
|
- Maximilian Ford
- 9 years ago
- Views:
Transcription
1 The Role of HostBridge in the CICS Services Architecture or, Most of Everything You Ever Wanted to Know About Transforming CICS Terminal Oriented Applications into Web Services A HostBridge Anti White Paper version 1.1 By Russ Teubner, CEO January 1, 2009 This is a work in progress; readers will be invited to visit to share thoughts, comments, cogitations, and excitations... Copyright HostBridge Technology, LLC
2 Copyright , HostBridge Technology, LLC. All rights reserved. HostBridge and the HostBridge logo are registered trademarks of HostBridge Technology. All other trademarks, trade names, service marks, and logos are property of their respective owners., January 1, 2009 Copyright HostBridge Technology, LLC
3 Table of Contents 1. Preface The Genesis of HostBridge...7 Guiding Principles...8 The HostBridge Patent...8 HostBridge Extended... 9 What is Scripting and Why is it Cool?...10 HostBridge Tooling The Alphabet Soup of Services and Integration...13 Web Services vs. Business Services...13 Formal vs. Informal Web Services...14 Summary CICS TS v3, WSA, and SFF...17 CICS TS Web Services Assistant...17 Service Flow Feature...18 Service Flow Modeler...18 Onward to Composition The What of Composition...21 Visual vs. Non Visual CICS Applications...21 Fine Grained vs. Coarse Grained CICS Applications The Why of Composition...23 Fine Grained vs. Coarse Grained Business Services...24 Why Again? The Where of Composition...25 Relative Position of the Service Boundary and Service Composition...26 Option 1: Service Provider Boundary and Service Composition Outside the Mainframe...27 Option 2: Service Provider Boundary and Service Composition Inside the Mainframe, but Outside CICS...28 Option 3: Service Provider Boundary and Service Composition Inside CICS TS...30 Option 4: Service Provider Boundary Outside the Mainframe and Service Composition Inside CICS TS...31 Summary The How of Composition...33 Composition Tools...33 What is Modeling?...34 Modeling Gone Mad...35 Picking the Right Tool for the Job...36 The Solution: Modeling AND Scripting The Who of Composition...39 Copyright HostBridge Technology, LLC
4 Modeling Means Writing Code?...40 Summary SFM and HostBridge Together at Last...42 HostBridge and SFM Integration: A Bit of Background...43 Invoking a Script as a LINKable Program from SFM...43 Invoking a Script as a WEBSERVICE via SFM...43 Invoking a Script as an SFM Generic Node...44 SFM Importer Extension Point and API...44 IBM and HostBridge Partnership Positioning...45 IBM and HostBridge Technology Positioning Summary...48 Cut to the Chase...49 Flowchart 1: Do I Need to Compose Anything?...51 Flowchart 2: What Tools Should I Use to Compose My CICS Based Web Service?...52 Flowchart 3: Which Tools Should I Use to Compose the Micro Flows of the Service?...53 Shameless Sales Pitch Your Perspectives...55 Revision Notes...55 Copyright HostBridge Technology, LLC
5 The Role of HostBridge in the CICS Services Architecture or, Most of Everything You Ever Wanted to Know About Transforming CICS Terminal Oriented Applications into Web Services 1. Preface As I wrote this paper I tried to keep two things in mind 1. Most white papers are boring (including a few I ve authored). They re too formal in tone, and they don t tell an interesting story. So for this paper I decided to adopt a more relaxed style and tell a story. To some it will seem a bit bloggish; hopefully it never devolves into a rant. 2. Most white papers are thinly veiled attempts at marketing, hiding a sales pitch behind an objective façade. I m not going to try and fool anyone: I have a point to make. (Wow! What a revelation!) And my point is... That HostBridge, CICS Transaction Server v3, and IBM s Service Flow Feature, when used together, meet the broadest possible range of CICS application integration 1 requirements and in the most intelligent manner possible. I hope to make my point with technical accuracy, passion, humor, and a bit of irreverence. Thus the Anti White Paper moniker. But there is a problem: this is an amazingly difficult point to make! Why? Because it relies on a clear understanding of what each of these products does individually and how they can work in concert. Why is this so difficult? Consider the actors involved in the typical CICS integration project: IBM sales and technical representatives, independent software vendors, and YOU, the customer. You, the technology, architecture, or business integration professional, are the primary actor. If you are like many of your peers, you feel overwhelmed overwhelmed by the myriad of business requirements and projects fighting for attention; overwhelmed by the diversity of systems and applications in your organization; overwhelmed by the fact that the technology innovation rate always seems to outpace the technology implementation rate (the larger your organization, the more true this is). Whatever you do, it seems that you can t keep up or catch up. Technology professionals who support mainframe systems are acutely aware of this dynamic. They ve been expected to accomplish more with less for the last decade. 1 To some, the phrase application integration smacks of Enterprise Application Integration, which was a popular integration approach, with a corresponding 3 letter buzz word (EAI), in the 1990 s. When I use this phrase, no such linkage is intended. I use the phrase application integration as the most generic way to describe the act of incorporating CICS applications into architectures such as SOA, WOA, ESB or any other yet to be discovered integration architecture that can be described by 3 letters. Copyright 2008 HostBridge Technology, LLC 5
6 Take heart, however. You are not alone! Your IBM sales reps (and technical staff) are also overwhelmed. They feel your pain well, their version of your pain. They are overwhelmed by the sheer volume of IBM product and service offerings! I do not mean this to be disrespectful in any way. Very few have the time or opportunity to really understand what IBM products do well, or even which IBM product to suggest for a particular requirement. And if they are pressed for time to understand their own products, they certainly don t have time to understand the products offered by their business partners (like HostBridge). So the IBM sales message tends to be simple and all encompassing: IBM products do whatever it is that you need to do. 2 For example, you might hear something like, CICS TS v3 will meet all your application integration requirements. Chances are high that this not true, but you are the one who has to figure this out! (Hopefully, this paper will help.) Most independent software vendors (ISVs) in the CICS integration space have an equally simple yet confusing approach. It s usually something like, IBM products are bad; our products are good. You see this approach reflected both in the vendors words and product offerings. The advantage of this approach is that it does yield clarity to the marketing message. And in the face of IBM s we do it all message, it s understandable why some ISVs take this tack. And given how busy you are, it s easy to understand why these simple marketing messages are so alluring. The HostBridge approach is different, and our message is different: IBM is good; HostBridge is good. There you have it. Well, almost. While this message appears simple, it s not. It implicitly calls on you to understand when and how IBM and HostBridge products can be used in concert to meet your business requirements. For a vendor, articulating a nuanced message based on an accurate understanding of the facts is always more difficult. But we think this approach pays rich dividends for customers. Unfortunately, many customers are prone to opt for a simple message solution before exploring more nuanced, specialty solutions like HostBridge. Witness the fact that the majority of our customers tried and many even purchased an integration product before they ultimately came to HostBridge. On the positive side (at least for us), after the failure of a CICS integration project, customers are usually well informed as to what IBM and other ISV products do or don t do. Unfortunately, they ve wasted a lot of time and money on a process that amounted to nothing more than an expensive learning experience. My goals in writing this paper are to provide some valuable education and save you the time, expense, and agony associated with failed CICS integration projects. And my point it bears repeating is that IBM is good and HostBridge is good together. So let s peel back the onion, and savor the nuance... 2 Sometimes the message is even simpler: IBM does it all. While this statement seems rather bombastic, it s actually more correct. IBM Global Services can do just about anything you can imagine (even produce great TV commercials). But do you really need your CICS SOA/integration project to become an IBM Global Services engagement? Are your requirements really that unique? Probably not. Copyright 2008 HostBridge Technology, LLC 6
7 2. The Genesis of HostBridge So where should I begin? Well let s start at the beginning. I think the story of how HostBridge came into being, both as a company and product, reveals our DNA pretty well. HostBridge started as a clean sheet design to solve a specific problem. The story began in late 1999, on a sunny day in San Francisco. The context was a meeting between Russ Teubner, Scott Glenn (HostBridge co founders), and Marshall Gordon (then Chief IT Architect at Delta Dental of California). During the conversation Marshall stated, We will no longer deploy any CICS integration solutions that rely on screen scraping techniques. Marshall didn t need to embellish the thought. Having worked in the industry for many years, Scott and I understood. Screen scraping was the fundamental flaw in many mainframe integration solutions. 3 It led to what could best be described as application rigor mortis, whereby applications cannot evolve over time because too many things break when they do! Not to mention the performance of such integration solutions, especially in high volume environments, was usually very poor. During our meeting, we discussed various approaches to solve these problems. One component of a possible solution seemed obvious the use of XML to exchange information between a distributed system and an existing CICS transaction (this was 1999, mind you XML was still big news). Another component that intrigued us was a new bridging feature that IBM introduced in CICS TS 1.2 and formalized in CICS TS 1.3. Using this feature in conjunction with a supported API, a program could intercept CICS Basic Mapping Support (BMS) SEND and RECEIVE commands before the terminal data stream was generated as output or expected as input. The implication was huge: Just because a CICS application was terminal oriented did NOT mean that the only way to integrate with it was on the basis of screen geometry (i.e., screen scraping). We agreed that these two components should be integral to our solution. Later that evening, thanks to crayons and our white butcher paper table cloth at Buca di Beppo in downtown San Francisco, Scott and I completed the first HostBridge block diagram. This initial version of HostBridge was designed to exploit the Start Bridge interface within CICS TS 1.3 for the purpose of XML enabling CICS BMS applications. 3 The essence of screen scraping is that row/column coordinates, indicating the location of data on a screen, are used to create a static, binding relationship between two programs. For example, imagine a CICS transaction that displays data as part of a screen image, and a distributed program that masquerades as a terminal so that it can capture the screen image in memory and copy ( scrape ) data off it. If the distributed program references data on the screen using row/column coordinates, a static, binding relationship exists between the distributed program and the CICS transaction on that basis. If the CICS transaction is changed so that the screen format is modified in any way, then the binding will probably be incorrect and the distributed program may fail. Copyright 2008 HostBridge Technology, LLC 7
8 Guiding Principles From the beginning, HostBridge the company and HostBridge the product have been guided by the same set of principles: Start with a full understanding of what real customers do with real CICS applications Exploit the best of what CICS TS has to offer natively Assess the latest trends in Web based application development Adhere to relevant industry standards (HTTP, XML, SOAP, etc.) Retain our obsession with high fidelity integration. 4 As IBM has evolved the bridging capabilities within CICS TS (e.g., Link Bridge), HostBridge has been fully supportive. In fact, because HostBridge customers are among the heaviest users of the Link Bridge interface, and because HostBridge probably has more experience with the bridging capabilities of CICS TS than any other ISV, we have helped drive Link Bridge functional requirements of CICS TS. The focus of HostBridge, both as a company and product, has always been on integration of CICS terminal oriented transactions with modern web technologies. Initially we focused on BMS based applications, and later expanded to fully support non BMS applications as well even non CICS applications. Working closely with the CICS product development team, we have also been able to add support for capabilities that were once considered impossible (e.g., the PAGE, ACCUM, and PAGING options of the EXEC CICS SEND command). While our forte is integration with terminal oriented transactions, we also added support for LINKable COMMAREA programs in response to customer requests. The majority of our customers use HostBridge primarily for integration with terminal oriented CICS applications. With this in mind, we have invested heavily in making sure the product supports the broadest range of CICS terminal oriented applications. For example, HostBridge is the only product of its type that is CA SMART certified for use with all the Computer Associates application platforms that run on the mainframe CA Ideal, CA IDMS, CA Telon, and CA Gener/OL. HostBridge also supports a number of CICS based third party applications that use proprietary techniques for screen description/mapping (other than BMS). 5 The HostBridge Patent On December 27, 2005, HostBridge was awarded US Patent No. 6,981,257 B2. In the wonderfully arcane language of patent speak, the HostBridge patent describes: A system, method and apparatus to 4 I like to use the phrase high fidelity when discussing CICS integration, but I realize it can be confusing. High fidelity, when applied to video or audio, implies the reproduction of sights or sounds with minimal distortion and maximum resolution. These concepts of minimal distortion and maximum resolution are directly applicable to CICS application integration. Many application integration techniques inject a degree of distortion and/or a loss of resolution between the components being integrated. 5 This allows HostBridge to eliminate the use of static binding relationships on the basis of screen geometry (i.e., screenscraping). Copyright 2008 HostBridge Technology, LLC 8
9 facilitate the invocation of existing CICS BMS transactions and deliver the executed transaction output to a requesting application as a standardized XML document. The broad objectives of the patent are to: Allow enterprises to integrate CICS transactions into scalable e business applications Facilitate communications between CICS and non CICS platforms and applications without screen scraping Provide for XML based communications between CICS transactions and client applications without CICS application, transaction, or system modification. To accomplish these objectives, HostBridge uses the CICS TS bridge interface to intercept the flow of control between a user transaction and BMS, and then replaces the 3270 terminal oriented data streams with XML documents. By eliminating the 3270 data stream, we also eliminate techniques like screen scraping The patent covers any integration solution that has three characteristics: (a) supports access to CICS BMS applications, (b) relies upon a CICS based mechanism to intercept the flow of terminal input and output to/from the application, and (c) uses XML to express the application s output. What does the patent mean in practical terms? First, it demonstrates that HostBridge has been a visionary and pioneer in the area of CICS application integration. We know this is important to our current customers; we hope it s important to our prospective customers too. Second, it ensures that our customers have unimpeded access to best of breed CICS integration technology. HostBridge Extended Customers were pleased with the value proposition of HostBridge, as well as its technical merits. As more customers implemented the product, however, new issues emerged, particularly involving orchestration of the micro flows intrinsic to CICS transactions and sequences of HTTP/XML requests and responses. Terminal oriented applications were designed for use by human operators. As a result, a single interaction with such an application rarely embodies the full scope of work that must be performed to accomplish a business process. The business process usually requires the execution of multiple transactions as part of a conversation or pseudo conversation (a CICS technical concept). Thus, a detailed sequence of steps must usually be performed. These steps are often referred to as the micro flows necessary to accomplish a business service. (We ll talk more about micro flows later.) In the early days of HostBridge, customers would typically write a server based process, such as a Java application running under WebSphere, to automate the exchange of a series of HTTP/XML requests and responses with HostBridge. (Incidentally, since interacting with HostBridge only required the use of HTTP and XML, customers have adopted a wide range of middle tier tools to build their automation processes and we do mean WIDE.) However, when a distributed program was used to automate the micro flows required to implement a business service, there were certain ramifications. First, if the Copyright 2008 HostBridge Technology, LLC 9
10 process was complicated, involving many steps, it would require numerous HTTP requests/responses, and the aggregate latency associated with execution of the overall business service could become excessive. Second, CPU consumption associated with the processing of individual HTTP requests/responses on the zos system could be high. In response, we introduced a CICS based process automation engine as part of HostBridge version 4. This component, initially referred to as HostBridge Extended, allows a customer to describe/codify a sequence of steps using ECMAScript (a.k.a., JavaScript). 6 A collection of objects are included with the product that allows a HostBridge script to interact with terminal oriented transactions, COMMAREAbased programs, files, databases, and any CICS managed resource. As with the first version of HostBridge, HostBridge Extended represented a clean sheet design that leveraged the native capabilities of CICS TS. Oh wait I guess this begs a key question What is Scripting and Why is it Cool? The concept of scripting is derived from the performing arts, in which the interactions between various human actors are codified in a script. Not surprisingly then, a scripting language is a programming language that is intended to sequence, control, or otherwise glue together various software applications or data sources. Scripts enable the behavior of the underlying application/data to be adapted to a particular need. Scripting languages enable programming at a higher level of abstraction than languages like COBOL, C, or Java. Scripting languages are also easier to learn and faster to code. 6 The name "ECMAScript" was a compromise between the organizations involved in standardizing the language, especially Netscape and Microsoft. Brendan Eich, the creator of JavaScript, is on record as saying that "ECMAScript was always an unwanted trade name that sounds like a skin disease." Copyright 2008 HostBridge Technology, LLC 10
11 JavaScript was conceived expressly as a scripting language. (And despite its name, JavaScript is essentially unrelated to the Java programming language.) Implementing a native ECMAScript engine within CICS seemed odd, at least initially, to some industry observers. However, it was perfectly consistent with the principles that have always guided our rethinking of CICS integration. Then and now, HostBridge Extended allows organizations to integrate their existing CICS applications and data with leading edge, Web based applications. HostBridge customers were even integrating their CICS applications into AJAX enabled, Web 2.0 style applications way before Web 2.0 was cool. HostBridge Tooling Included with the first version of HostBridge Extended was a Windows based Integrated Development Environment (IDE). Customers use this tool to write, debug, and deploy HostBridge scripts. Our scriptingbased approach allows customers to describe and execute business services based upon very complicated application micro flows. This is where HostBridge excels. But it also means that customers require an IDE/tooling environment that can rapidly evolve to meet their requirements. Customers, however, don t like having to learn different IDEs for different purposes or products. They prefer to use common IDE platforms such as Eclipse. So in 2007 HostBridge began delivering its IDE/tooling in the form of an Eclipse 7 plugin. Adopting Eclipse made perfect sense. It demonstrated (a) our support for open standards, (b) our reluctance to play favorites when it comes to middle tier platforms, and (c) our desire to operate consistently with IBM s strategy and direction. Using Eclipse also provides many ancillary benefits such as tighter integration between HostBridge tooling and a customer s version control system. Of course, Eclipse does not always mean the same thing to everyone. Some prefer pure Eclipse as distributed by the Eclipse organization, some prefer a more streamlined Eclipse based environment such as Aptana, while others prefer IBM s implementation of Eclipse, Rational Developer. Fortunately, the Eclipse plugin architecture is fairly standard, and HostBridge supports all of these incarnations. By leveraging the Eclipse framework, we can focus on the unique HostBridge tooling features, not the general IDE environment. Our decision to support Eclipse was also made in recognition of one other key factor: Eclipse is IBM s strategic tooling platform. Our philosophy has always been to leverage IBM CICS services and tools wherever possible and steer clear of duplication. Our commitment to Eclipse will pave the way for HostBridge and CICS to work together in new and exciting ways. Definitely stay tuned. 7 Eclipse is a software platform comprising extensible application frameworks, tools, and a runtime library for software development and management. It is written primarily in Java to provide software developers and administrators an integrated development environment (IDE). Users can extend its capabilities by installing plugins written for the Eclipse software framework. Eclipse is free and open source software. Copyright 2008 HostBridge Technology, LLC 11
12 We are now at the point in the story where we can begin to consider how HostBridge complements the capabilities of CICS TS v3. Copyright 2008 HostBridge Technology, LLC 12
13 3. The Alphabet Soup of Services and Integration Well, wait a second. We re getting ready to do a swan dive into the world of Web services, specifically Web services as implemented in the CICS world. But before we jump off that cliff, we need to define some concepts and terminology. Getting these things nailed down early should help you decode what IBM, HostBridge, or other vendors have to say about these topics. We are, in essence, building a CICS Web services secret decoder ring. 8 Hopefully, it will help us see through the coded and cryptic messages regarding application integration and observe the underlying truth. Web Services vs. Business Services In this paper, the terms business service and Web service will be used liberally. While similar, they are not synonymous. It has become common practice in our industry to use the term business service to denote a programmatic entity that accomplishes a specific function relevant to a business. The function may be high level (e.g., obtain details on all pending orders for a customer) or low level (e.g., change the billing zip code for a customer). When we say business service we are highlighting the fact that a programmatic service exists. What we are trying to avoid are any assumptions as to HOW the business service is invoked or how data is exchanged. Specifically, we are often trying to avoid the baggage, and imprecision, associated with the term Web service. The term Web service has become part of popular culture and vocabulary. Many people use Web service to describe any service that is accessible via a Web browser (e.g., looking up the value of a used car on edmunds.com). This is perfectly understandable. In fact, some IT vendors exploit the imprecision of the term (which drives me crazy). However, in the IT community the term Web service means something a bit more specific or at least it should. Per Wikipedia: A Web service is defined by the W3C as a software system designed to support interoperable Machine to Machine interaction over a network. Web services are frequently just Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. The W3C Web service definition encompasses many different systems, but in common usage the term refers to clients and servers that communicate using XML messages that follow the SOAP standard. Common in both the field and the terminology is the assumption that there is also a machine readable description of the operations supported by the server written 8 For readers not acquainted with American colloquialisms, a secret decoder was an inexpensive toy popular among young children beginning in the 1930s. Decoder badges or pins were occasionally included as a toy prize in boxes of breakfast cereal and snack foods such as Cracker Jack. Among the most famous decoders were the ones given to kids by the makers of Ovaltine. Ovaltine started cryptological premiums for the Little Orphan Annie radio program and continued with the Captain Midnight radio and television programs. Decoder rings were introduced in the 1960s by the PF Shoes company and others. (Wikipedia: Secret Decoder Ring, accessed 6/21/08) Copyright 2008 HostBridge Technology, LLC 13
14 in the Web Services Description Language (WSDL). The latter is not a requirement of a SOAP endpoint, but it is a prerequisite for automated client side code generation in many Java and.net SOAP frameworks. Some industry organizations, such as the WS I, mandate both SOAP and WSDL in their definition of a Web service. (Wikipedia: Web service, accessed 6/21/08) That s a lot of alphabet soup, but we can glean two observations from this definition. First, the term Web service simply implies a program to program interaction over a network, and this network can take many different shapes and forms. The de facto assumption is usually that the network is implemented using TCP/IP, and the programs exchange requests and responses using HTTP. But this is just an assumption, as many alternatives exist (e.g., message brokers such as WebSphere MQ or TIBCO). Second, there are a number of ways to implement this program to program interaction (i.e., how requests are described and data exchanged between clients and servers). This distinction creates the need to define two other terms. Formal vs. Informal Web Services The definition above reflects the fact that there are a number of ways to implement program toprogram interactions and still be considered as Web services. For example, the Web service can be implemented as a Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services. Or the Web service can be implemented according to a more formal approach: clients and servers that communicate using XML messages that follow the SOAP standard. This distinction is very important. But we need some words to describe the difference. In this paper I ll use the words informal and formal to denote two basic approaches to implementation of Web services. At this point in history, when someone uses the phrase Web services or Services Oriented Architecture (SOA) they often assume the formal approach (use of SOAP, WSDL, etc.). But the practical reality is that a formal approach to Web services requires more human planning, as well as machine processing, on both sides of the connection. Thus, deploying a formal Web services approach may be more appropriate when: You don t own/control both the requesting and responding system (e.g., inter company connections) The client and server are in different security zones (e.g., outside and inside the firewall, respectively) Volume is low to medium The business relationship between the two parties is loosely coupled. Copyright 2008 HostBridge Technology, LLC 14
15 Alternatively, deploying an informal Web services approach may be appropriate when: You do own/control both the requesting and responding system (e.g., intra company connections) The client and server are in the same security zone Volume is medium to high. The distinction between informal and formal Web services is very important. In fact, we are starting to see glimpses of support for informal Web services built into CICS TS (e.g., support for RESTful services and protocols like ATOM). 9 HostBridge customers have always been at the leading edge of implementing CICS based Web services. And while some use HostBridge as part of a formal Web services approach, the majority use HostBridge to implement informal Web services. Specifically, the most common methodology is using HTTP GET or POST requests, whereby the input parameters are specified using a URL query string or POST data, and the output data is an XML document (using a customer specific or service specific XML vocabulary). Why do customers do this? Because it s very simple and efficient. Summary I may slip up here or there, but these are my working definitions in this paper: Business service a programmatic entity that accomplishes a specific function relevant to the business; it might be deployed as a Web service, but there is no such assumption made Web service a particular approach to making a business service broadly available in a networked, machine to machine environment o o Formal Web service an approach whereby clients and servers communicate using XML messages that follow the SOAP standard; WSDL is used to describe the operations supported by the server Informal Web service any approach to implementing a Web service that does not abide by the SOAP and/or WSDL specifications. HTTP and XML are used but the formality of SOAP and WSDL are dispensed with. 9 Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web. As such, it is not strictly a method for building what are sometimes called "web services." The terms representational state transfer and REST were introduced in 2000 in the doctoral dissertation of Roy Fielding, one of the principal authors of the Hypertext Transfer Protocol (HTTP) specification. The terms have since come into widespread use in the networking community. REST strictly refers to a collection of network architecture principles that outline how resources are defined and addressed. The term is often used in a looser sense to describe any simple interface that transmits domain specific data over HTTP without an additional messaging layer such as SOAP or session tracking via HTTP cookies. These two meanings can conflict as well as overlap. (Wilkipedia) Copyright 2008 HostBridge Technology, LLC 15
16 Now that we have our secret decoder ring prepped and ready, we can explore a bit further down the road of CICS application integration. Copyright 2008 HostBridge Technology, LLC 16
17 4. CICS TS v3, WSA, and SFF Everyone encounters situations where they think, If I had a dollar for every time I (fill in the blank), I d be rich. For me, I d fill in the blank with every time I explain what CICS TS v3 and Service Flow Feature do or don t do. Understanding the capabilities of CICS TS v3 and SFF is critical to understanding the value of HostBridge. In CICS TS v3, IBM added a number of significant features under the heading of Web services enablement. For example, CICS TS v3 added an elegant and robust transport management architecture built around new CICS components (i.e., pipelines, channels, and containers). Furthermore, support for HTTP 1.1 was added, and support for SOAP was formalized. Layered on top of these capabilities were new features to implement formalized Web services. These features were implemented via new resource definitions (e.g., WEBSERVICE), EXEC CICS commands (e.g., EXEC CICS WEBSERVICE), and the CICS Web Services Assistant utility program. Collectively, these infrastructure improvements laid the foundation for CICS TS functioning as a first class citizen in the Web services world. I used the word infrastructure deliberately, because it describes the correct relationship between HostBridge and CICS TS: HostBridge builds upon the Web services infrastructure provided by CICS TS. Our focus has always been on the layers above Web services infrastructure. Our focus is application integration not SOA infrastructure. In fact, the explosion of new features in CICS TS v3 became the foundation of numerous HostBridge enhancements, thus providing additional value to HostBridge customers. For example, HTTP 1.1 support improved HostBridge throughput; channels and containers provided new means to handle large blocks of data within HostBridge; HTTP and SOAP enhancements made it easier to issue outbound service requests from HostBridge scripts; and the additional transport layer security options gave HostBridge customers many new options. However, for all its new features and capabilities, CICS TS v3 is not a full weapons platform when it comes to CICS application integration. To illustrate this fact, let s pose a question. Without modifying your existing applications, what kinds of Web services can you build using CICS TS v3? The answer is simple. A Web service that invokes a single COMMAREA program. That s good, but that s it! CICS TS Web Services Assistant The component of CICS TS v3 that facilitates deployment of a single COMMAREA program as a Web service is the Web Services Assistant (WSA). WSA provides two utility programs: one that generates a WSDL from a language structure (e.g., a COBOL copybook) and one that generates a language structure from a WSDL. Additionally, these utility programs assist with the generation of the CICS artifacts/definitions that permit deployment of the Web service (e.g., the WSBIND file). WSA is a great tool for those organizations (a) that have lots of COMMAREA programs and (b) whose individual COMMAREA programs fully implement the required business service. Just remember WSA Copyright 2008 HostBridge Technology, LLC 17
18 does not allow you to build a Web service from multiple COMMAREA programs or from terminaloriented applications. So how do you do that? Enter tools like Service Flow Feature and HostBridge. Service Flow Feature On November 22, 2005, IBM announced the CICS Service Flow Feature (SFF). The title of the announcement is important: IBM CICS Service Flow Feature enables composition of CICS applications to create CICS business services. Note two key concepts: composition and business services (we ve already discussed business services ; we ll delve into composition momentarily). The title reflects SFF s primary role as service composition, without dictating how the resulting service is deployed. To quote the announcement letter: CICS Service Flow Feature, comprising a tooling component and a run time component: Is a business service integration adapter for CICS applications. Enables integration developers to create CICS business services by composing a sequence of CICS application interactions. These can be integrated in Service Oriented Architectures (SOA) or business process collaborations. Delivers a graphical integrated development environment for composing the CICS application interactions, a generation facility for creating a run time application, and a runtime component that exploits CICS interfaces to support the service flow. The driving idea behind Service Flow Feature is that of composing a coarse grained service from existing fine grained CICS applications (we ll explore granularity a bit later). The tooling component of SFF is Service Flow Modeler (SFM); the run time component is Service Flow Run Time (SFR). I won t say much about SFR. If you understand what SFM is and does, you can pretty much take SFR for granted (well, you can, but I can t). When IBM announced CICS TS v3, they also defined their commitment to Rational Developer for System z (RDz) as a strategic tool for CICS application development. 10 Consistent with this, SFM layers on top of the facilities and services of RDz. Service Flow Modeler Here s the IBM explanation of SFM: The CICS Service Flow Modeler delivers the flow modeling and mapping capabilities required to transform the behavior of the application components to form a business service without changing the underlying implementation. At first blush, it sounds like SFM is some sort of a really big magic wand it can transform the behavior of an existing CICS application without having to change the actual application. Cool! Sign me up! I want two of those puppies!... Back to reality. SFM doesn t auto magically transform anything in the sense that your existing CICS 10 At the time CICS TS v3 was announced, RDz was known as WDz (WebSphere Developer for System z). Before that, WDz was known as WSED (WebSphere Enterprise Edition). And before that well, you get the idea. It s now called RDz. Copyright 2008 HostBridge Technology, LLC 18
19 applications behave or operate any differently. The magic (and I m not opposed to calling it that) is in orchestrating the execution of existing CICS applications according to a specified flow. Repeat after me The magic is in the flow. (And before it s all over, we re going to talk a lot about flows and not just flows, but micro flows and macro flows. ) That s why another description of SFM sounds more correct: a graphical modeling integrated development environment that enables the creation of CICS business services by composing a flow of CICS application interactions. But what does that phrase integrated development environment mean? It means that SFM layers on top of RDz. RDz, in turn, is built on top of Rational Developer (RD). And RD is IBM s proprietary superset of Eclipse. A diagram of the SFM environment would look like this But what happens after the flow has been modeled? Well, here s where reality sets in. If you are new to the world of modeling, you need to understand that there is usually another notion that goes hand in hand with it: code generation. Commensurate with this, once a CICS business service has been modeled, SFM generates a set of COBOL programs to implement the service flow. This is what IBM means when they say that SFM delivers A generation capability that transforms the composed flow of CICS application interactions to form a run time application, highly optimized for the CICS environment Let that all soak in for just a moment. It s not bad, just different. 11 These COBOL programs will orchestrate invocation of your existing CICS applications to implement the functionality described by the model. The generated COBOL programs are then uploaded to the mainframe for compilation (under TSO) and testing (under CICS). This process (model, generate, upload, compile, and test) is repeated during the development cycle or whenever changes are required. This approach also relies upon downloading various source code artifacts to the RDz environment (e.g., COBOL copybooks and BMS maps), but that s something of a distraction at this point. Onward to Composition We ve now covered the basics about CICS TS v3, the Web Services Assistant, and SFF. We ve said that SFF is all about composition. Since this concept lies at the heart of why products like SFF and HostBridge exist, we will explore it in detail. The very word composition begs certain essential questions: 11 Actually, in some cases it is bad. One weakness of the modeling/code generation approach is that the functionality implemented by the generated code is inherently constrained by the operations allowed via the modeling tool. Furthermore, generated code is difficult or impossible for developers to hand edit. If they do hand edit the code, they will lose the changes when they regenerate the code using the modeling tool. So it s never a good idea to change the generated code. Don t even think about it. Copyright 2008 HostBridge Technology, LLC 19
20 From what are we composing the service? Why are we composing the service? Where are we deploying the service? How do we compose the service? Who composes the service? These questions will serve as the lens through which we explore CICS application integration in general, along with SFF and HostBridge in particular. When all the dust settles, I hope to have laid the foundation for understanding why SFF and HostBridge are very complementary, and how to leverage their respective strengths together. In the process, we will also embellish our secret decoder ring. Copyright 2008 HostBridge Technology, LLC 20
21 5. The What of Composition In music, we form a composition from notes that have a particular pitch and duration. (Get used to the music analogies; integration technology borrows heavily from the concepts and vocabulary of music.) The primary notes from which a CICS business service is composed are the existing CICS applications. In the same way that musical notes have unique characteristics, so do these CICS resources. Broadly speaking, existing CICS application resources fall into two broad categories. Various words or phrases can be used to describe these categories. I tend to use visual and non visual. Visual vs. Non Visual CICS Applications A visual application is one that expresses a presentation interface to an end user at a terminal. You could also refer to a visual application as a terminal oriented application. In contrast, non visual applications do not interact with an end user. Instead, they are designed to be invoked by another program. Non visual programs are also referred to as COMMAREA programs because the input/output parameters are passed to/from the program using an area of storage referred to as the communication area, or COMMAREA. 12 In describing existing CICS applications, the SFF announcement letter reflects this same dichotomy: Traditional CICS applications were designed to be accessed from a 3270 terminal. The applications exploit CICS provided interfaces to generate and interpret the screen content and to manage the control and interaction with the 3270 terminal. Typically such applications were designed to deliver a sub second response to a terminal user by exchanging small amounts of information in quick succession; in other words, to support a fine grained interaction pattern. In some cases, well structured CICS applications implement a separation of the 3270 presentation logic and the application business logic. They introduce the option of exposing a callable component interface typically implemented as a CICS COMMAREA [program] The distinction between visual (terminal oriented) and non visual (COMMAREA) applications is huge. Why? Because from a composition and hence an integration perspective, they are radically different. 12 With the advent of CICS TS v3, IBM created the concept of channels and containers that can be used to pass data between programs. These architectures overcome the historic limitation that a CICS COMMAREA could be no more than 32,500 bytes. Question: if a LINKable CICS program expects to receive/return data via the channel/container architecture, should we still refer to it as a COMMAREA program? Technically, probably not. We should probably refer to it more generically as a LINKable program. However, the prase COMMAREA program is so ingrained in the collective CICS consciousness (and synonymous with LINKable program ) that I ll continue to use it until someone objects or it causes too much confusion. Copyright 2008 HostBridge Technology, LLC 21
22 Fine Grained vs. Coarse Grained CICS Applications One way to describe the difference between visual and non visual CICS applications is in terms of their granularity. 13 I (along with IBM) frequently use the terms fine grained and coarse grained to describe the differences between them. Terminal oriented applications are often described as fine grained because they are designed to deliver a sub second response to a terminal user by executing a very specific processing step and exchanging small amounts of information in quick succession. By comparison, COMMAREA programs are usually considered more coarse grained (or at least not fine grained). Theoretically, whether you want to consider a particular COMMAREA program as coarse or fine grained should depend on what it does. A COMMAREA program might be designed to yield extremely fast response time, perform a simple operation (e.g., validate a ZIP code), and return a small amount of data (e.g., true or false). Perhaps these attributes should qualify such a program to be considered as finegrained. However, the fact that the program has well defined inputs and outputs, and does NOT interact with a terminal user, changes everything. And since a COMMAREA program operates by a far simpler (and more concrete) set of assumptions, it is far easier to incorporate into a CICS business service. So as a practical matter, I will consider all COMMAREA programs to be coarse grained. To summarize in terms of our music analogy, there are basically two types of notes in a CICS service composition: terminal oriented applications and COMMAREA programs. Due to their granularity, composing a series of interactions with a terminal oriented application into a CICS business service is fundamentally different and more difficult than composing a CICS business service out of COMMAREA applications. But there s a catch: terminal oriented applications are more common. 13 Confusion Alert: We are going to use this notion of granularity two ways: first to describe the nature of the underlying CICS application assets; second to describe the nature of the composed service. Copyright 2008 HostBridge Technology, LLC 22
23 6. The Why of Composition Lest we get ahead of ourselves, let s consider a fundamental question. Whether we are composing musical notes into a melody or existing CICS applications into a business service, what is the purpose? Why are we doing it? Simple question... Important answer. Every business software application (past, present, and future) is shaped by a unique set of business processes, value propositions, and technology constraints. Organizations have always tried to make sure that their investments in business application software are as timeless as possible. However, it s impossible to avoid the fact that each such investment reflects a unique set of business processes, value propositions, and technology constraints that are good, desirable, or true at a particular point in time. Organizations that have developed business systems around CICS are well acquainted with this dynamic. And it makes perfect sense for them to leverage their existing CICS applications as their organization and business requirements evolve. And make no mistake... Business processes do change and evolve. A few years ago you may have understood a certain business process as being comprised of steps 1, 2, and 3. Today, you may understand it as steps 1 and 2, optionally steps 3 and 4, but always followed by step 5. If you have already developed application software to implement steps 1, 2, and 3, then it makes perfect sense to try and reuse it as your processes evolve. The IBM SFF announcement letter puts it like this: Reuse of existing application components can significantly benefit new solution implementation by reducing cost and risk, and by speeding delivery. These benefits are further magnified if the implementations of the reused components are encapsulated behind an open standard interface such as that offered by Web Services, since component reuse will not require platform specific implementation knowledge. Simply stated, you compose existing CICS applications into a business service so you can do two things: (a) reuse them as part of a service and (b) expose the resulting service. So the themes of application reuse, service composition, and system integration go hand in hand. But and this is important the whole value proposition can succeed or fail based on the efficiency of how the distributed system interacts with the business service. I like the way the SFF announcement letter reflects this: In order to implement an optimal method of integration between modern enterprise solutions and an existing enterprise system, the number of interactions between the systems should be minimized. This reduces the volume of request data being exchanged over the transport and the cost of data content processing in each system. This suggests a coarse grained interaction pattern across the external system boundary complemented by highly optimized processing of the request payload within the bounds of each system. Copyright 2008 HostBridge Technology, LLC 23
24 As you can see, the notion of granularity enters this discussion as well. Fine Grained vs. Coarse Grained Business Services We have already introduced the terms fine grained and coarse grained to describe the CICS application resources from which we are composing the business service. We can also apply coarse vs. fine distinctions to the business service we compose. However, we approach this discussion from a different angle. When discussing CICS applications, and assessing their characteristics, we have to start with reality what is as opposed to what should be. Terminal oriented applications are fine grained. They are what they are. Period. We can t change their nature by wishing it so. Non visual applications are coarsergrained. Period. However, a discussion of CICS business services proceeds from a different place what should be as opposed to what is. Since we are creating something new, albeit from things that already exist, we have choices. And one of the most important choices you will make regards the granularity of the business service. But just because we have choices doesn t mean that all of the options are equally good. There will be times when a fine grained business service is required. However, when it comes to the granularity of a business service, coarse is better. Why? Because the granularity of the business service dictates the pattern of interaction between distributed systems. And on balance, it is always better to minimize the number of interactions between distributed systems. In other words, keep the business services high level. I want to use this discussion about the granularity of CICS applications and the granularity of a CICS business service composed from those applications to make a point regarding CICS application integration products in general. I may be guilty of stating the obvious, but here goes: a critical role of any CICS integration product is to transcend the difference in granularity between CICS applications and the business services composed from them. If the CICS integration product cannot fully embrace the fine grained nature of most existing CICS applications, there will be problems! For example, if the CICS integration product makes assumptions about or imposes limitations on the way visual transactions behave in certain situations, then the business benefit of using such a product will be compromised. Likewise, if the CICS integration product does not permit wide freedom and choice as to how the CICS business service is exposed to the outside world, then the business benefit will be compromised. Why Again? That was a fairly long digression, so let s regroup. Why are we worried about composing existing CICS applications into a business service? Because business changes, and you don t want to rewrite your applications or services every time it does! Copyright 2008 HostBridge Technology, LLC 24
25 7. The Where of Composition We ve considered the what and why of composition. Let s talk about where. Where is a pretty broad concept when it comes to business or Web services. Since there are usually lots of moving parts, we could use it to analyze many different attributes. However, I ll focus primarily on two: (a) where the Web service boundary exists and (b) where the business service composition is executed. In this discussion I m going to assume that the business service is being exposed as a formal Web service (though the argument doesn t change much even if the business service is exposed as an informal Web service). Also, I m going to use a series of diagrams to describe the three most utilized configuration options. All the diagrams will include the following components: Service Provider Service Requestor Web Service Provider Boundary Service Composition A D Application / Data Components Here are my definitions for these key components: Service Requestor (or Consumer) The distributed system or program that expresses a request using standard Web service methods (e.g., SOAP). Service Provider (or Publisher) The software components, collectively, that respond to a request expressed using standard Web service methods. The action under the covers of the Service Provider can be broken out in a number of different ways. Because we are discussing the composition of services from existing CICS applications and data, we will highlight three key components: Service Provider Boundary A program that receives and processes the Web service request. The boundary function passes control to the program that implements the business service. In the context of our discussion, we will assume that this is a composed service. Service Composition A program that contains the logic describing how the existing CICS applications and data are to be executed or accessed. The Service Composition is the business service. ( How this service composition is created will be discussed in the next section.) Copyright 2008 HostBridge Technology, LLC 25
26 Application/Data Components The existing CICS transactions, programs, and/or data services that will be executed or accessed as part of the Service Composition. Since we are focused on CICS integration, we will assume that the Application/Data Components always reside in a CICS TS region on the System z Mainframe (duh!). However, the Service Provider Boundary and the Service Composition can be deployed in various ways, or, more to the point, on different platforms: either on a Server or on the System z Mainframe. 14 I will use diagrams, like the following, to denote the platform on which the Service Provider Boundary and the Service Composition are deployed: Note that these diagrams assume that the Service Requestor exists on a distributed system. This would usually connote a physically distinct hardware/software platform of some ilk. While this may be typical, it may not be the case. For example, the distributed system could be WebSphere running on zos or zlinux. In the modern world of IBM System z, zos, zlinux, and virtualization, what happens where can be rather fluid. Please consider this a diagrammatic convenience rather than a limiting assumption. The question we want to focus in is what goes where? on the right side of the diagram. Relative Position of the Service Boundary and Service Composition Our objective in this section is to examine where the Web service boundary exists and where the business service composition is executed. You can do the math and figure out that there are quite a few alternatives. However, there are four common approaches, and we will discuss each. Note that they all have a common characteristic: the Service Composition function is always inside the Service Provider Boundary. That s because doing otherwise is a bad idea. The first three approaches also have something else in common: the Web service boundary exists on the same platform where the business service composition is executed. The fourth approach highlights a case in which these two functions are split across platforms. 14 By System z Mainframe I mean the zos operating system environment running on a z Series Mainframe. By server I mean an execution platform that is distinct from the zos environment running on the z Series Mainframe. By this definition, WebSphere running under the Linux operating system environment on a System z Mainframe could be a server. I m not going to worry about these distinctions further because we have enough details to contemplate already. Copyright 2008 HostBridge Technology, LLC 26
27 Remember our discussion about how HostBridge Extended came into being? Before the introduction of the HostBridge scripting engine, customers would typically write a server based process to automate a series of HostBridge requests. However, when a distributed program is used to automate the microflows required to implement a business service, there are certain ramifications. If the composition involves many steps, numerous requests/responses must be exchanged between the distributed system and the mainframe. As a result, the response time associated with execution of the business service can become excessive. And if the distributed program and the mainframe communicate using a Web services approach formal or informal resource consumption on both the server and mainframe can be high. I ve already made reference to the following paragraph from the SFF announcement letter, but I think it bears repeating because it captures this precise thought very well: In order to implement an optimal method of integration between modern enterprise solutions and an existing enterprise system, the number of interactions between the systems should be minimized. This reduces the volume of request data being exchanged over the transport and the cost of data content processing in each system. Enough said. It s just a bad idea to automate fine grained transactions and programs across a Web services boundary. You want this type of orchestration/composition activity to be as close to the underlying components as possible. But I also want to clarify something I m NOT saying. While orchestrating micro flows across a Web services boundary is a bad idea, orchestrating macro flows across a Web services boundary is normal and to be expected. In fact, a whole category of orchestration products is growing up, centered on BPEL (Business Process Execution Language), that allow you to compose high level Web services from lowerlevel Web services. However, I digress. What these products do and excel at is entirely different from what we are concerned with: composition and orchestration of micro flows involving existing CICS application assets. Now that you know why the Service Composition will always be behind the Service Boundary in the following diagrams, let s get on with it. Option 1: Service Provider Boundary and Service Composition Outside the Mainframe This configuration relies on a middle tier server to express the Web service boundary to the outside world and to execute the Service Composition. Copyright 2008 HostBridge Technology, LLC 27
28 This model was popular during the early days of Web services, no doubt because Web services capabilities were available on server based platforms before they were on the mainframe. And if you combined a server based Web services implementation with a traditional server based screen scraping product presto! you got something that looked like a Web services gateway for the mainframe! Fortunately, those days are mostly over, although this configuration sometimes still appeals to organizations that, for whatever reason, have issued edicts like thou shalt not put any new software on the mainframe. They may think such a configuration saves them money, but in my experience, it doesn t. In fact, it s often counterproductive. The most egregious implication of this configuration is that each interaction with a CICS application/data component requires a full travel on the network that connects the server and the mainframe. Groan. As you may have surmised from my comments, this approach has the following attributes, all negative: Very high response time due to request/response latency Potentially high CPU utilization on the mainframe, depending on how the server and mainframe exchange requests/responses Integration with CICS terminal oriented applications is usually accomplished via screen scraping (I ve already waxed eloquent about that nastiness) Integration with COMMAREA applications is usually limited to the exchange of 32 KB of data per interaction Limited or, more likely, no access to CICS managed resources. Not a pretty picture. Option 2: Service Provider Boundary and Service Composition Inside the Mainframe, but Outside CICS This second configuration jettisons the middle tier server but replaces it with an additional, non CICS mainframe subsystem. However, this mainframe subsystem is responsible for the same tasks as the Copyright 2008 HostBridge Technology, LLC 28
29 middle tier server in Option 1 express the Web service boundary to the outside world and execute the Service Composition. As you consider this option, keep in mind one thing: the software vendors who promote this approach often have a big investment in code that was developed before CICS TS was introduced. As a result, some of these products turn a blind eye to the capabilities that are now built into CICS TS. This approach has the following attributes: Lower response time because the Service Composition and Application/Data Components are on the mainframe CPU consumption on the mainframe will depend on the nature of the service composition and the operational characteristics of the additional System z subsystem. Integration with CICS terminal oriented applications is frequently still accomplished via screenscraping (can we not rid ourselves of this infernal scourge?!) 15 Integration with COMMAREA applications is usually limited to the exchange of 32 KB of data per interaction Capabilities built into CICS TS are usually not exploited (as far as I m concerned, you re paying for them, so you might as well use them) No integration with the CICS TS operational environment (e.g., security) Limited or no access to CICS managed resources To me, this approach is better, but it still has serious issues that can compromise the overall fidelity of the integration solution. It also begs an important question: if your objective is to expose CICS applications/data as a Web service, why would you ignore the capabilities included in CICS TS and 15 Some have attempted to exercise the CICS Link Bridge interface across an EXCI boundary. Others implement a Link Bridge proxy within CICS and use cross memory services to pass data between address spaces. In my experience, both techniques yield lower fidelity solutions because important information about the context of the CICS application is either ignored or unavailable. Copyright 2008 HostBridge Technology, LLC 29
30 implement the Web services boundary outside of the CICS TS environment? Why would you relegate CICS TS to be anything other than a first class Web service end point? Option 3: Service Provider Boundary and Service Composition Inside CICS TS Our third configuration jettisons the non CICS mainframe subsystem and exploits the capabilities of CICS TS v3. Now we re talking! CICS TS v3 expresses the Web service boundary to the outside world. Furthermore, software running inside of CICS describes and executes the Service Composition. By collapsing everything within CICS TS, we can achieve optimal performance and maximum sensitivity to the application/data components. Distributed System System z Mainframe CICS TS Service Requestor Web Service Provider Boundary Service Composition A D Application / Data Components This approach has the following attributes: Lowest possible response time because the Service Composition and Application/Data Components are combined under the control of a single subsystem on the mainframe CPU consumption on the mainframe still depends on the nature of the service composition, but we have eliminated the overhead of an additional subsystem, and we can exploit the efficiencies of the CICS environment. Integration with most CICS terminal oriented applications can be accomplished without screenscraping (finally!) Integration with COMMAREA applications can exploit CICS TS capabilities and is not limited to the exchange of 32 KB of data per interaction Complete exploitation of CICS TS capabilities and full integration within the CICS TS operational environment (e.g., security) Full access to CICS managed resources Perhaps it s no surprise, but to me this is the preferred approach. By a long shot! At this point you may be tempted to think: Of course he likes this approach because HostBridge is a Service Composition tool that runs inside of CICS TS. Actually, such musing raises an interesting question. Which came first? Did we design HostBridge and then declare that we liked this approach? Or Copyright 2008 HostBridge Technology, LLC 30
31 did we decide that this approach was the best and then design HostBridge to exploit it? Allow me to shout out the answer loud and clear: we decided that this approach was best and designed HostBridge to exploit it! Remember, HostBridge began life as a clean sheet design in a CICS Transaction Server world (we never envisioned supporting versions of CICS before CICS TS v1). We built HostBridge from the ground up because it made perfect sense to us to exploit the capabilities that IBM was adding to CICS TS. We hope it makes the most sense to you too. Option 4: Service Provider Boundary Outside the Mainframe and Service Composition Inside CICS TS This fourth configuration is a hybrid, and there are some real world situations in which it can make good sense. For the reasons already cited, this configuration benefits from executing the Service Composition on the Mainframe and within the CICS TS environment. But this leads us to another fact: where the Service Composition runs is more important that where the Service Provider Boundary exists. Imagine that the server is WebSphere and that a Java application invokes a CICS based Service Composition (hopefully implemented using HostBridge). It might be very inefficient to use a formal Web services boundary between the distributed system and the server, and then implement another formal Web services boundary between WebSphere and CICS TS. 16 Another scenario in which this configuration surfaces in when an Enterprise Service Bus (ESB) or integration appliance (e.g., Cast Iron Systems) is used. The point here is pretty simple: in many real world situations it s very convenient (and in some cases more efficient) to implement the Service Provider Boundary outside the zos environment. 16 In high volume (and high sanity ) environments, there are only so many formal Web services boundaries that one may wish to implement! Copyright 2008 HostBridge Technology, LLC 31
32 Summary If you ve stayed with me through this discussion you are to be commended. Your reward is that you now have a good tool to analyze almost every conceivable CICS integration approach, solution, or product. While I spared both of us the pain of wading through all the possible combinations and permutations, we have covered the most common. I do hope you come away from this discussion with one settled conclusion: it is critical that the Service Composition execute as close to the CICS application context as possible. Copyright 2008 HostBridge Technology, LLC 32
33 8. The How of Composition So far we ve discussed the what, why, and where of composing CICS business services. It s time to discuss how. Of course, in theory, this is supposed to be quite simple and the pat answer should be: use modeling to compose applications into business services, exposing them as Web services as part of an SOA or at least making sure they plug and play with our ESB. If only real life were as simple as stringing buzz words together. An insightful discussion of how you compose a CICS business service is critical. But I do dread it because it s where things can go haywire and I can easily be misunderstood (like a discussion of politics at your local coffee house, wine bar, or pub). Certain terms and concepts need to be clearly defined. First and foremost is modeling speaking of which, brace yourself. I m going to use the M word a lot and it s not going to be pretty. You re going to hear me say blasphemous things like modeling is NOT good for CERTAIN purposes. WHAT?! Modeling isn t ALWAYS good? Say it ain t so! I thought modeling was one of our technological saviors; it s supposed to achieve an optimal division of labor and reduce our reliance on all those pesky programmers! Yeah, right. Oh, and if that s not enough, you ll hear me imply that the modeling that has crept into many CICS integration tools is not really modeling at all. And it s counter productive. ARGHH!!! (Go ahead, let it out.) OK. Strap yourself in and let s get started. But please be patient. I hope to make a few key points, and they require a little setup. Composition Tools Let s start by going back to the music analogy. Music has many different elements, such as melody, rhythm, and harmony. Creating music involves arranging notes into a melody. Rhythm is the arrangement of these notes in time. Each note has its own pitch and duration, and harmony has to do with relationships between pitches. Since there is a high affinity between technology professionals and musical aptitude, I ll not belabor the point further. Building a new CICS business service from existing CICS applications and data is very much like the process of composing music. All the same elements apply. 17 So whether you are a music composer or CICS business service developer, here s the BIG question: exactly HOW do you author your composition? How do you go about getting the music you hear in your head codified such that your composition can be played over and over. What are the most appropriate tools for the task at hand? 17 Just so you ve heard me say it, this whole music analogy does break down at points. For example, while improvisational skills are highly esteemed among musical performers and aficionados, improvisation is not something one wishes to encounter in a business service. A business service must work the same way every time. And when CICS terminal oriented transactions are the foundation of the business service, you need to make sure that your tooling gives you complete control every time. Copyright 2008 HostBridge Technology, LLC 33
34 The tools available to a modern music composer are much different from what Beethoven, Bach, or Mozart had to work with. Today, you can sit down at an electronic keyboard connected to a computer, start playing, and software will record your keystrokes and arrange them (as best it can) into a rough musical score. In essence, you use the keyboard to model the musical score. Then, in the hands of a person who is both musically talented and proficient with the software, the modeled composition can be edited and refined. These tools are very powerful for composing a new musical work. However, let s consider a different use case. I took piano lessons for two years as a boy (my parents forced me before I could choose a different instrument). I can still play the Battle Hymn of the Republic sort of. Does my ability to hack out a rough approximation of that song mean I could use a music composition system to recreate the majesty of William Steffe s tune and worthy of Julia Ward Howe s words? I think not! I would make so many mistakes in substance or style that I d end up spending way too much time editing my original composition. And really, this would be a laughable use of the technology. I d be attempting to use a musical composition tool, essentially, to reverse engineer the way a particular song should sound. When simply playing or attempting to play my intention is not to model a new composition, but to operate something already in existence and very well defined. 18 What is Modeling? So Let s talk about modeling. And specifically let s talk about the way this word has crept into the context of building CICS business services. In the software world, the term modeling implies different things to different people. But it does have a certain sex appeal. To many it implies easy to use or no programming. Universally it seems to imply a level of abstraction that is higher than the ultimate implementation. In the field of software engineering, the word modeling usually implies some relationship to Unified Modeling Language (UML) or other formal, top down software modeling approaches. UML is a generalpurpose modeling language that includes a standardized graphical notation used to create an abstract model of a system, referred to as a UML model. Modeling, in the software engineering sense, always implies a level of abstraction that is higher than the ultimate implementation. I m not a big fan of UML mostly because I fell asleep just trying to read an introductory primer (if you think modeling implies 18 Just for fun, let s push the analogy and argument a bit further. The Battle Hymn of the Republic has nothing of shorter duration than a sixteenth note. The song moves along very methodically and is simple to learn, play, or sing. It s easily accessible. In the world of CICS applications, what correlates most closely to such a song? Non visual (COMMAREA) applications. With well defined inputs, outputs, and operational characteristics, they are easily accessible. And to what song would I correlate the operational characteristics of visual (terminal oriented) applications? Perhaps Flight of the Bumble Bee. If you think of each note representing a single interaction with a fine grained terminal oriented application, and the entire song representing a meaningful unit of work, you intuitively grasp the challenges associated with integrating visual applications into a CICS business service. If you don t get the notes and rhythm just right, the whole thing breaks down and is unrecognizable. Copyright 2008 HostBridge Technology, LLC 34
35 ease of use go buy a UML book). 19 However, modeling in the UML sense at least hangs together conceptually and linguistically. Modeling Gone Mad Now switch gears. Let s imagine I use a tool to record a sequence of detailed interactions with a CICS visual application. And let s assume that when I press the STOP icon, the tool generates a visual/graphical notation of those steps on the screen. Cool!... Perhaps. But whatever you think of this approach, it s certainly not top down modeling a la UML. At best it is bottom up modeling. (Oh my bad mental image.) In one sense, of course, I did model something. But what? Did I model a business process? No. Did I model the application? No. All I did was record one way a human being can interact with a particular application, and it s only one particular use case. So what did I model? I modeled me! I modeled my behavior this one specific time! This is no different than me using music composition software to record my attempt at playing the Battle Hymn of the Republic and act as my scribe. The model I recorded does not represent all the pathways through the application, or all the functions it can perform. There is no assurance that the model is correct or complete. In fact, this model probably excluded the most important part: how the application behaves in various error conditions. If you want your model to account for other pathways through the application, or the error conditions that may arise, you will have to model those steps separately and somehow knit all these models together. In practice, what happens is that you immediately begin to hand edit the model to account for alternate pathways and error cases. And if you do a thorough job at this, you end up pulling your hair out and soon realize the level of abstraction of the model is virtually identical to the ultimate implementation. 20 The steps you have codified using the tool are no more or less abstract than the code that will be generated to implement them. To me, drawing a flowchart of how to operate a CICS terminal oriented application is not really modeling. Yes, you are using graphical symbols to represent activities; yes, you are wiring them together; yes, code will be generated to do whatever. But give me a break. This is modeling in the same sense that some of us old guys used to use plastic templates and mechanical pencils to draw flowcharts of COBOL programs AFTER we wrote the code! And in those flowcharts, as in most models, you never account for all the stuff the application really does (or how it can break). 19 One of the most enjoyable and insightful articles you can read on the topic of modeling was written by Bertrand Meyer over a decade ago. The article was titled UML: The Positive Spin and can still be found on the Eiffel Software Web site. It was originally published in the 1997 special UML issue of Ed Yourdon's American Programmer, in response to a request by Mr. Yourdon. The article is satirical and may offend UML devotees. Modeling and UML have their place in the software development world. However, like many things, when a good idea is pushed to an illogical extreme the outcome is often antithetical to the original objective. In a lighthearted way, the article reminds us that good software should be correct, robust, easy to change, reusable, and efficient. And if the processes used to create software don t work toward these ends, then they are poor by definition. 20 Ever tried to tie your shoe strings while wearing mittens? Yeah that s the feeling. Copyright 2008 HostBridge Technology, LLC 35
36 At best, your modeling efforts have devolved into visual programming. 21 But there s a problem. Most modeling tools are rather poor visual programming tools! Besides, weren t we trying to get away from programming by using the modeling tool to begin with? Vendors of such tools embrace the metaphors and vocabulary of modeling (in the software architecture sense) in hopes that the (perceived) value proposition of that approach will splash on them. They hope you won t notice that this is only modeling in the most limited sense of the word, and that you won t think about the implications. Picking the Right Tool for the Job So here s the point. When you compose a new CICS business service from existing CICS applications, two very different activities are taking place. First, you create something new, the business service, by defining the high level building blocks of the service and how it will be exposed to the outside world. This activity lends itself nicely to modeling. Modeling is an ideal approach to abstractly describing something new and allowing the tool to generate the code required to implement it. The second activity is very different: you have to specify the implementation of those building blocks. This boils down to codifying i.e., programming how your existing CICS applications must be operated to implement the desired functionality. This second activity is very different from the first and does not play to the strengths of modeling tools. Let s reference what we ve already observed about the two different types of CICS applications. CICS COMMAREA programs (with their well defined inputs, outputs, and operational characteristics) may, in many situations, be well suited to a modeling approach. However, as the operational level of these programs becomes more complex or detailed, modeling tools start to get in the way. CICS terminal oriented applications are another story. Remember, terminal oriented applications evolved over many years with an eye toward solid business value, optimal execution efficiency, and acceptable productivity of reasonably well trained end users. These applications often defy the blackand white, square edged, if then else mentality of modeling tools. They were not written to be sympathetic to, or viewed through the lens of, a modeling tool. When modeling tools are used to describe the operation of such applications, the tool itself usually becomes the limiting factor as to what can be accomplished Per Wikipedia: A Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols. Most VPLs are based on the idea of "boxes and arrows," that is, boxes or circles or bubbles, treated as screen objects, connected by arrows, lines or arcs. (Wikipedia: Visual Programming Language, accessed 7/11/08.) 22 In the interest of technical accuracy, I will qualify this statement, but only a tiny bit. If all you are going to do is invoke one or two visual transactions and extract a few data items off each screen (the sort of scenario that vendors like to use during a sales demo), then you can probably model that activity. However, if you go beyond such simple scenarios (as most real world applications do), you ve got a problem. Copyright 2008 HostBridge Technology, LLC 36
37 A modeling tool is perfect for describing the macro level flows of a business service. Macro flows include the top level flow of the service, top level decision points (conditional processing and looping constructs), and the invocation of coarse grained CICS programs. However, using a modeling tool to script the operation of fine grained CICS terminal oriented transactions is like trying to use a hammer to turn a screw. Describing and controlling micro flows requires a different approach. Micro flows include the low level flows of the service (the specific steps required to operate or interact with a terminal oriented application) as well as the low level data gathering, conditional processing, and looping constructs that are also required. In such cases, a simpler and more direct approach is called for. Otherwise, the tool will become a constraint. I ll summarize as succinctly as possible. You can t get away from the fact that CICS terminal oriented applications are rather unique programmatic things. They operate in certain odd ways, though for very good reasons. And they have all the operational consistency of the human being who authored them. No degree of modeling will change these facts. The only issue is how to embrace these applications most effectively and efficiently. If your business processes are based on CICS terminal oriented transactions, you ve got a radically different problem to solve, and it requires the appropriate tool. The experience of using a modeling tool to script the operation of a terminal oriented transaction can feel like Chinese water torture 23 slow and ultimately painful. The Solution: Modeling AND Scripting If modeling is not the right way to script the operation of a CICS terminal oriented application, then what is? Take a deep breath... The answer is SCRIPTING! Wow! What a revelation! But it s not just scripting per se; it is scripting used to intelligently operate a series of terminal oriented transactions and access data within the context of a modeled CICS business service. (For some readers, that last sentence may yield a buzzword bingo.) This should come as no surprise since I ve already described that a key feature of HostBridge is its integrated process automation engine. This process automation engine allows integration scripts to be developed and executed within the CICS environment. A HostBridge integration script can access any CICS visual transaction, non visual program, or data source and many non CICS resources. As a result, system architects, process designers, and application developers can create services that automate and aggregate existing fine grained transactions and data sources (we ll explore more of the Who issue later). 23 Per Wikipedia: What is called the Chinese water torture was a torture described by Hippolytus de Marsiliis in the 16th century that was supposed to drive its victim insane with the stress of water dripping on a part of the forehead for a very long time. It may also be characterized by the inconsistent pattern of water drips. Supposedly, the desire for the human brain to make a pattern of the timing between the drops will also eventually cause insanity to set in. (Wikipedia: Water Torture, accessed 8/4/08.) In light of the frequent inconsistency among CICS terminal oriented applications, and the assumption of consistency embodied within most modeling tools, this seemed like an apt comment. Copyright 2008 HostBridge Technology, LLC 37
38 The reality is that no technology modeling or otherwise can overcome one simple fact: a human being today is trying to express how to operate a series of programs written by another human being yesterday, or perhaps a very long time ago. So the question is how should you approach doing this. Scripts are very concise. They codify the well defined steps that a human operator goes through to operate a terminal oriented transaction (e.g., enter value in field x, press Enter key, get value from field y ). Scripts allow a human to break down a problem in a way that makes sense. 24 Each step is visible and can be easily comprehended as part of the overall process. On the other hand, modeling diagrams with any degree of real world detail or complexity tend to become large and unwieldy. The only way to deal with this is to create embedded models (models within models). But when you are working on the lowest level model, it is almost impossible to comprehend how it corresponds and interacts with a higher level model. As a result, the overall process becomes obscured. Both modeling and scripting have their place in a high volume, high fidelity CICS integration architecture. But when it comes to intelligently operating a series of terminal oriented transactions, scripting wins hands down I suppose you could even say that the script models the human approach. But that would beg the question: Is scripting a better modeling tool? If I get started down that road, this paper will never end. 25 One of my initial reviewers of this paper (a prominent industry analyst) observed: This a L O N G way of saying the how of composition is scripting micro flows and NOT modeling. He s right; it was long. My apologies. Copyright 2008 HostBridge Technology, LLC 38
39 9. The Who of Composition I really like this topic. It allows us to slip the surly bonds of earth and ascend into alternate realities. It also allows me to slip into a playful, if not cynical, mode (please bear this in mind as you continue reading). Modeling tools, like SFM, enable a mythical breed of IT professional, known as enterprise integration architects, to be highly productive. These people are non programmers who understand: How to use the Eclipse IDE environment How to use the Rational and RDz extensions to the Eclipse IDE environment How to use the Eclipse (EMF) and SFM modeling paradigm How business services are described within SFM How CICS COMMAREA programs work How COBOL copybooks are used to describe the inputs/outputs for CICS COMMAREA programs How CICS terminal oriented applications work (it varies between applications) How BMS maps are used to describe inputs/outputs for CICS BMS terminal oriented transactions How 3270 datastreams are used to describe inputs/outputs for non BMS CICS terminal oriented transactions How to code ESQL, required to implement conditional logic within a service flow How to generate the COBOL code, and CICS resource definitions, used to implement the service flow How to compile COBOL programs under zos and interpret job output How, potentially, to debug the COBOL code generated by SFM How to deploy services, programs, and resources into CICS How to test the resulting services How to diagnose CICS and SFF SOAP faults How to evaluate CICS AUX traces to diagnose errors (in some cases that s the only way). Whoa That s sounds like the skill set of a TEAM, not a PERSON! But let s assume you DO have real human beings in your organization with such a dazzling breadth of skills. Here s the REAL question. Do they have the intestinal fortitude to repeat the process over and over to incrementally develop, debug, and deploy CICS business services? HA! GOTCHA! All kidding aside, the above list of skills is daunting. However, tools like Eclipse, RDz, and SFM can be learned. It just takes time, and, hopefully, learning them represents a one time investment. (I say hopefully because, in my experience, unless you use these tools frequently you find yourself having to relearn them.) Copyright 2008 HostBridge Technology, LLC 39
40 What are we to make of the other skills/tasks on the list? In my opinion, there are a few items that are far more critical than others. They represent the critical factors that can compromise the whole vision of building business services out of existing CICS applications. These critical factors are: Incorporating terminal oriented applications within a service flow Coding ESQL to implement modeled behavior Performing iterative/incremental development of service flows that include terminaloriented applications Debugging an errant service flow that includes terminal oriented applications. Do you see a thread of consistency here? The most problematic aspects of using SFM to compose CICS business services involve our good friend the CICS terminal oriented application. I won t take time now to expound on these too much because we re getting very close to beating a dead horse. But I do want to make a comment about the need to code ESQL to implement modeled behavior. This is a complete surprise to most people. It shouldn t be. In only the rarest of situations, does modeling ever eliminate the need to author code. Modeling Means Writing Code? A flow model within SFM is composed using the following actions or nodes : Receive, Reply, Invoke, Throw, Assign, Switch, and While. When you create a flow model involving terminal oriented transactions there are always and I do mean always lots of conditions and checks you must include. In an SFM flow, such operations are represented using Switch or While nodes. Let s say you drag a Switch node into a flow model. What exactly does the Switch node do? Uhhh You mean it can t read my mind? Nope sorry. The answer is that the Switch node will do whatever you tell it to do by virtue of hand coding a series of ESQL statements. 26 Yes, you read that right. I can almost hear you say, But wait a minute. I thought modeling meant I didn t have to write code! And what the heck is ESQL anyway? Ah yes your trip down the Alice in Wonderland rabbit hole continues. And by the way, those ESQL statements you wrote will ultimately be used to generate COBOL statements which you will then get to debug. GULP! Authoring a service flow that includes lots of Switch and While nodes is tedious enough. But you also end up with something that is terribly difficult to test, change, or support. Furthermore, it s almost impossible for anyone, other than the original author, to understand what it does. I take that back... It s often difficult for the original author of a service flow to figure out after lunch what they did before lunch. Perhaps it s just me, but clawing through a multi level flow model, and exploring each and every group of ESQL statements to determine what s going on, is not my idea of productivity. 26 In some cases you can answer questions posed by a wizard to define properties of the node. However, this also results in the generation of ESQL statements (which results in the generation of COBOL code)! Copyright 2008 HostBridge Technology, LLC 40
41 Summary Let me say once more, I like SFM. Otherwise I would not have spent so much time and money making sure HostBridge works with it. However, SFM presents you with a serious temptation: to push modeling to the inappropriate extreme of orchestrating micro flows. Theoretically, the modeling approach should yield the magic combination of simplicity and productivity. In practice, this doesn t happen too often. In fact, the exact opposite may occur. It is quite possible for people using such tools to become less productive and paranoid about touching or changing anything after they get it working. 27 Bottom Line: When the tool becomes the constraint, progress ceases. 27 Much like the rigor mortis that integration techniques such as screen scraping produced. Copyright 2008 HostBridge Technology, LLC 41
42 10. SFM and HostBridge Together at Last A key objective of this paper is to describe how HostBridge complements CICS TS v3, Service Flow Feature, and Service Flow Modeler in particular. I understand if you re thinking: Wow you d never know it! Admittedly, I ve chosen a circuitous route to arrive at this point. I did so to create a balanced perspective on the relative merits of modeling and scripting, and where each fits in the process of composing CICS business services. SFM implements a modeling approach. This is fine when you are focused on the high level flow of the service the macro flows and on describing how the service should be exposed to the outside world. But SFM is guilty of pushing this modeling orientation too far. 28 And the end result is predictable. SFM can devolve into an overly complex visual programming tool that restricts functionality. But and this is a BIG but just because SFM pushes the modeling approach too far doesn t mean it s a bad tool, or that it should be avoided. All it means is that SFM has a split personality: part service modeling/ deployment tool, and part visual programming tool. And when it comes to composing serious CICS based services from terminal oriented transactions, I think one side of SFM s personality has a lot to offer, and the other side should be avoided. To me there is no debate that using SFM to describe the high level flow of a business service, and orchestrate coarse grained CICS applications (i.e., COMMAREA programs), is good. Furthermore, SFM s ability to generate and deploy the resulting business service into the CICS TS environment is very good. Not so good is what happens when you cross the line and begin to use SFM as a visual programming tool, when you try to use it to orchestrate micro flows within/between fine grained CICS terminaloriented transactions. This is when frustrations begin and productivity ends. Using SFM for this purpose becomes arduous at best and impossible at worst. By no means is this intended as a slight on SFM; it s just an inherent consequence of the product s approach. Composing business services out of terminal oriented transactions requires shall we say a more delicate approach. In contrast to SFM, HostBridge implements a scripting approach to service composition. Now, I ll be the first to agree (in a magnanimous gesture of objectivity) that there are all sorts of ways that scripting tools can be pushed too far as well, just like modeling tools. But a tool like HostBridge is perfect for doing certain things, such as codifying how fine grained CICS applications and data should be accessed to implement some or all of a modeled business service. OK. Assume what I m saying is correct. SFM modeling is good for certain tasks involved in the composition of a CICS business service, and HostBridge scripting is good for other tasks. How do we bring these two approaches together? 28 Perhaps I should say that SFM is guilty of tempting YOU to push the modeling orientation too far. After all, no one s holding a gun to your head. Copyright 2008 HostBridge Technology, LLC 42
43 I m glad you asked. HostBridge and SFM Integration: A Bit of Background What if SFM and HostBridge could work together, allowing their respective strengths to be leveraged? What would that look like? During 2007, IBM and HostBridge collaborated to answer this question. The first and most obvious answer was this: allow a HostBridge script to be invoked as part of an SFM flow. Specifically, allow a HostBridge script to be the implementation of an Invoke node within an SFM flow. EUREKA! This would be a wonderful combination of product strengths. But how should we do it? Technically, a HostBridge script could already be invoked as part of an SFM flow. In fact, there were two options: (1) invoke a HostBridge script as a LINKable COMMAREA program or (2) invoke a HostBridge script as a Web service. Both were ruled out as the preferred approach because they were deemed to be either too crude or too resource intensive. However, I m going to take a moment to explain these approaches briefly because they do work and they frame the priorities of the joint development work that IBM and HostBridge performed. Invoking a Script as a LINKable Program from SFM An SFM flow can include anything that looks, acts, or smells like a LINKable COMMAREA program. This is SFM s strength. 29 Furthermore, a HostBridge script can be invoked as a LINKable COMMAREA program. So why not just do this? Simple. The SFM generated COBOL program and the invoked HostBridge script would have to agree on the layout of the COMMAREA used to pass data between them (for input and output). Is that a problem? Not really, but a COMMAREA is simply a linear area of storage in which data fields have specific, fixed attributes (e.g., length and type). There is no information in or associated with this COMMAREA that describes its content. That is, there is no inherent metadata (data about the data). As a result, the HostBridge script would have to include information about the COMMAREA layout. Even worse, a unique COMMAREA layout would have to be defined for each script. When a HostBridge script is developed, users don t want to think about COMMAREAs at all! People who compose HostBridge scripts want to think in terms of field name/value pairs as would be received in a SOAP request, XML document, or HTTP POST data. HostBridge likes metadata, and the simplest form of metadata is the name of a field. For this reason, invoking a script as a LINKable COMMAREA program seemed rather crude. Invoking a Script as a WEBSERVICE via SFM The SFM plugin that was delivered with RDz v7 added support for the invocation of a Web service as part of a service flow. At design time, such a node is defined to SFM based on a WSDL. At run time, the 29 SFF views LINKable programs as the basic building blocks of all CICS life. And this view is pervasive. Furthermore, this view influences other SFF implementation concepts, such as deployment patterns and adapters. When all s said and done, an Invoke node within an SFM flow corresponds to the invocation of an adapter. Adapters are (surprise, surprise) implemented as LINKable programs. The adapter, in turn, is responsible for doing work. For example, the DPL adapter LINKs to a COMMAREA program you know the one you wrote a decade ago and are trying to execute as part of a business service. Copyright 2008 HostBridge Technology, LLC 43
44 SFM generated COBOL program performs an EXEC CICS INVOKE WEBSERVICE. This opened up an avenue of consideration. Let s assume that a particular HostBridge script was described using a WSDL. That artifact could then be referenced by SFM to incorporate the execution of a HostBridge script within a flow. Sounds straight forward, but there was a snag. If the SFM generated COBOL code were to invoke the HostBridge script as a formal Web service (via EXEC CICS INVOKE WEBSERVICE), a significant amount of CICS overhead would occur! It just made no sense for the SFM generated program to invoke a HostBridge script using such a formal boundary when both the SFM generated program and HostBridge are running under CICS TS (and probably in the same region). Conceptually it was good because it solved the metadata problem, but the implementation was far too heavy. Besides, formulating a unique WSDL for each HostBridge script would be a royal pain in the you know what. Invoking a Script as an SFM Generic Node Both of the approaches described above DO work. However, we HostBridge and IBM wanted a more ideal approach that would reconcile SFF s bias toward LINKable COMMAREA programs and HostBridge s thirst for metadata. We agreed that the most elegant and generic way to integrate a HostBridge script into an SFM flow would be to implement a new concept within SFM: a generic node that receives both data and metadata. The starting point of such an ideal solution was another feature that IBM added to SFM in v7: support for LINKable programs that exchange data using CICS TS Channels and Containers. Within SFM, such a program is modeled by an Invoke node with multiple input/output messages. At run time, when the SFM generated COBOL program LINKs to the target program, it passes to the target program a channel containing multiple containers (one message per container). This mechanism allows SFM to pass a collection of information to a LINKable program that is more robust than a simple COMMAREA. If HostBridge were the target program, all sorts of interesting information (e.g., metadata) could be exchanged between SFM and HostBridge at run time via containers. Cool! But At design time, how do you specify to SFM that a HostBridge script is the implementation of such a node? How do you specify the name of the HostBridge script? And how do you specify the arguments to be exchanged between the SFM flow and the HostBridge script? The answers to these questions led us directly to the joint development work performed by IBM and HostBridge. SFM Importer Extension Point and API Within SFM, importing is an important concept. Every Invoke node within an SFM flow is described by an operation file (a.wsdl file), along with one or more message files (a.mxsd file). These files are very complex XML documents. An importer is a program that takes an existing artifact (e.g., a COBOL copybook) and creates a corresponding operation and/or message file. IBM provides a number of importers with SFM (e.g., to create a message file from a COBOL copybook). As part of our joint development work, IBM enhanced SFM to allow third parties (like HostBridge) to provide custom importers. A custom importer is invoked via the Importer Extension point. The term Copyright 2008 HostBridge Technology, LLC 44
45 generic node was adopted to describe an SFM Invoke node that is created via the Importer Extension point. To complete the picture, IBM defined an API SFAPI that allows a custom importer to build the operation and message files associated with the node. Using these new SFM features, HostBridge created a custom importer that makes it extremely easy to include a HostBridge script within an SFM flow. Depending on the context, I will refer to this component as either the HostBridge SFM Importer or SFM Plugin. And just to clarify, the HostBridge Eclipse IDE Plugin and the HostBridge SFM Plugin are not the same thing. The HostBridge IDE Plugin is used to author, test, and deploy HostBridge scripts, and can be used in any Eclipse based environment. The HostBridge SFM Plugin exploits these new features of SFM and therefore requires the RDz environment. The following diagram illustrates how these components fit together. Rational Application Developer (RAD), the Eclipse Core, is the foundation. RDz builds upon RAD; SFM builds upon RDz; and the HB SMF Plugin builds upon SFM. Note that the HB IDE Plugin builds directly on the Eclipse Core functionality. IBM and HostBridge Partnership Positioning So what exactly has happened? I ll use IBM s words: IBM and HostBridge Technology have worked to develop an API for the Service Flow Modeler (SFM) component of Rational Developer for System z (RDz) to enable software vendors to extend SFM with complementary capability. The new API allows IBM Business Partners and customers to take full advantage of the benefits of using RDz as a development environment for CICS integration. Using this new API business partners are able to access vendor runtimes from nodes within SFM. Thus, IBM customers will be Copyright 2008 HostBridge Technology, LLC 45
46 able to select from a range of nodes that suit their application needs, enabling reuse of CICS resources as business services without any changes to existing code. This collaboration demonstrates a commitment from IBM to work with business partners to the benefit of mutual customers. Similarly, HostBridge Technology is committed to support IBM tooling for the purpose of CICS integration. Needless to say, HostBridge Technology is very pleased to have the opportunity to partner with IBM in this manner. Plus, we get to work closely with some really talented IBMers in the CICS TS and RDz product groups. IBM and HostBridge Technology Positioning Perhaps it s also a good time to reiterate why IBM and HostBridge have collaborated in this manner. Again, I ll use IBM s words: YES!!! 30 Enterprise customers running CICS have a broad spectrum of integration needs: for applications that range from relatively straightforward to extremely complex. IBM and HostBridge Technology have collaborated to offer an integration solution that deals with the full spectrum of integration needs. Rational Developer for System z's CICS Service Flow Modeler provides immediate access to both COMMAREA programs and simple, well behaved terminal oriented transactions using high level modeling of service flows. HostBridge extends this scope by adding provision for access to complex terminal oriented transactions, direct connections to data sources (such as DB2), and transactions making extensive use of MRO. Together, RDz's CICS SFM, HostBridge, and CICS TS V3 provide access to all your CICS resources using common tooling without requiring any changes to your existing applications. That last sentence says it all: Together, RDz's CICS SFM, HostBridge, and CICS TS V3 provide access to all your CICS resources using common tooling without requiring any changes to your existing applications. Way back in this paper we posed a question: Without modifying your existing applications, what kinds of Web services can you build using CICS TS v3? The answer was simple: A Web service that invokes a single COMMAREA program. Now we can pose another question: Without modifying your existing applications, what kinds of Web services can you build using CICS TS v3, Service Flow Feature, and HostBridge? The answer is far more interesting: You can do ANYTHING and EVERYTHING! With CICS TS v3, SFF, and HostBridge, you can build business/web services from any combination of COMMAREA programs, terminal oriented transactions (BMS or non BMS), data sources (DB2, VSAM, DLI, etc.), and even non CICS services. 30 Should be read in a loud voice with fists raised in the air. Copyright 2008 HostBridge Technology, LLC 46
47 CICS TS v3 provides the necessary infrastructure to enable robust and scalable services deployment. SFF provides a graphical modeling environment that enables the creation of CICS business services by composing a flow of CICS application interactions. HostBridge provides the ability to easily incorporate fine grained terminal oriented transactions within a service flow, as well as CICS controlled data sources. The bottom line is simple: HostBridge, CICS TS v3, and SFF are complementary. But really, a stronger word than complementary is called for. For customers who want to compose web/business services from their existing terminal oriented applications, we think HostBridge is practically a requirement. The combination of these products provides a complete solution for implementing a CICS based services oriented architecture (SOA). Copyright 2008 HostBridge Technology, LLC 47
48 11. Summary After I wrote this paper right up to this point I gave it to a couple of insightful and trusted customers (the kind who would tell me the truth politely, but not so politely that I couldn t figure out what they really thought). They seemed to be Ok with the style; in fact one remarked, it was the only white paper I ve read recently that I actually wanted to keep reading. Great. Mission accomplished on that front. That same person also had some other comments/questions: Must we use SFF/SFM? Are you in favor of modeling or not? You re missing a conclusion or final recommendation! Indeed, it s time to cut to the chase. What is the end of this story?! Well Before I draw all this to a close, please allow me to make a few observations. If I ve done my job well, you have come to appreciate all the issues and decision points involved in composing existing CICS application and data assets into reusable services. But slicing, dicing, and analyzing the various factors is simple at least when compared with trying to pull all those concepts back together in a coherent way. Furthermore, creating succinct guidelines or rules of thumb turns out to be challenging (at least if it s done with any degree of accuracy). Perhaps part of the problem is that I m too much of a technology guy (or not enough of a sales guy ) to pretend that exposing CICS applications as web/business services is not a one size fits all proposition. It s not, and any vendor who says it is should be run out of your office (your IBM rep included)! CICS has been around for a long time. Given the evolution of CICS over four decades, it s silly to think that all CICS applications are homogeneous. Many are purely terminal oriented; a few are purely COMMAREA based; most are hybrids. If they are terminal oriented in any way, you have some additional and important issues to consider. Of course these categories are obvious. The real complications usually stem from the fact that many CICS terminal oriented applications have important operational characteristics that are not apparent and sometimes unknown to the people using or maintaining the application. 31 So you really aren t going to hear me postulate too many rules of thumb. 32 The good news is that you have options; the bad news is that you have options. But if you exercise your options carefully you have some very real ROI opportunities. 31 Just last week (as I write), I was onsite at a prospective customer, in the financial services industry, who had a mission critical CICS application in need of web enablement. Their CICS apps have been around for a long time and they work great. However, in order to clean up successfully in certain error situations, one application relies on a cleanup transaction being started by their ZNEP exit. However, a ZNEP exit is only invoked for real terminals not bridge facilities. What was needed was an integration product (and vendor) that understood the nature of such applications. HostBridge was able to deliver to the customer equivalent functionality within 48 hours (via native HostBridge capabilities and a HostBridge user exit). 32 Unless it s: Call me and let s talk about your CICS SOA/integration requirements. Copyright 2008 HostBridge Technology, LLC 48
49 The place to start is by considering a few top level questions: What are the characteristics of your existing CICS application and data assets? How do these CICS assets relate to the business services you wish to expose? How do you want to expose your business service? These questions give rise to many others, but they are definitely the place to start. Cut to the Chase Rather than try to organize all the questions, answers, and decision points into long paragraphs with many words, I have resorted to long flowcharts with many boxes. 33 In fact, I ve attempted to boil it all down into three flowcharts. Flowchart 1 starts with a simple assumption: you want to expose one or more CICS programs or transactions to the outside world. You know you need to expose something. The question is whether you need to compose them into a service! Flowchart 2 starts with the assumption that you do need to compose a service from your CICS applications and/or data sources. The question is what tools should you consider using to compose the CICS based service? Flowchart 3 starts with the assumption that you do need to include CICS terminal oriented transactions in your service. The question is what tools should you consider using to compose the micro flows among these transactions. Flowchart 3 is my chef d'oeuvre. 34 It comes as close to codifying what we ve observed and learned about building high volume, high fidelity CICS based services from terminal oriented transactions since the introduction of CICS TS v1 (way back at the turn of this century). And, while this flowchart is styled to help you decide whether to use HostBridge or SFM to compose your CICS based service, I hope you interpret it a bit more broadly. The questions it poses about your CICS terminal oriented transactions are the precise questions you should consider regardless of the particular tools you are comparing. Flowchart 3 may come off as overly critical of SFM, so allow me to focus the energy this graphic is meant to convey. SFM is a good product. Its ability to compose a service flow from COMMAREA programs is very nice. Furthermore, the assistance SFM provides in deploying a web/business service within the CICS environment is spot on. However, SFM s forte is NOT deep integration with CICS terminal oriented applications. That s where HostBridge fits in. 33 Besides, I think Visio is one of the coolest tools ever concocted. 34 chef d'oeuvre A masterpiece, especially in literature or art. This paper doesn t qualify as art, but it s starting to be long enough to possibly qualify as literature (non fiction). Copyright 2008 HostBridge Technology, LLC 49
50 I like SFM and think it s a tool that CICS customers should consider using depending on their requirements. I trust the converse is also true: I hope IBM likes HostBridge and thinks it s a tool that CICS customers should consider using depending on their requirements. Hopefully our mutual respect is evident from the fact that we regularly collaborate to insure that IBM and HostBridge customers can experience the best of both products. To be sure, SFM doesn t pre req HostBridge, and HostBridge doesn t pre req SFM. They are each fullfeatured, stand alone products that have unique value. But when they are used together, some really interesting possibilities open up! At the end of the day, our vision and mission is the same: Allow CICS TS customers to experience higher levels, and longer horizons, of business value from their investment in CICS applications. Copyright 2008 HostBridge Technology, LLC 50
51 Flowchart 1: Do I Need to Compose Anything? Copyright 2008 HostBridge Technology, LLC 51
52 Flowchart 2: What Tools Should I Use to Compose My CICS Based Web Service? Copyright 2008 HostBridge Technology, LLC 52
53 Flowchart 3: Which Tools Should I Use to Compose the Micro Flows of the Service? Which tool should I use to COMPOSE the micro flows of the service? Flowchart 3: This flowchart starts with the assumption that you DO need to include CICS terminal-oriented transactions in your service. Are any of your transactions based on a vendor-provided application development platform (e.g., CA-IDEAL)? Or, are they part of an vendor-provided application package (especially if it has it s own screen mapping facility)? NO Are your CICS applications still changing, evolving or being maintained? NO Are ALL of the CICS transactions BMS-based? YES Do ALL of the CICS transactions exist within the SAME region? YES YES or Maybe YES NO or Not Sure NO or Not Sure HostBridge has specific support for various application development platforms, including CA-IDEAL. HostBridge also supports various vendor-provided application packages and proprietary screen mapping facilities. Updating a HostBridge script is simple; updating an SFM flow is not. Using SFM with non-bms, or mixed mode apps (BMS and non-bms) is confusing and difficult to support. HostBridge supports both in a consistent manner. Using SFM, implementing transaction access across multiple AORs is difficult, inefficient or impossible. HostBridge fully supports all complex MRO environments. Do you need to execute more than 3-4 transactions/interactions as part of the service? NO Do you need to perform any processing or decision making based upon data extracted from the transaction screens? Will your service be used to update data, or will it require any compensation logic? What about error handling? NO Do your CICS transactions ever ABEND? Do they rely upon an orderly logoff sequence to perform cleanup? If a session fails, do they rely upon a ZNEP exit to perform the cleanup logic? NO YES or Maybe YES or Maybe YES or Don t Know Using SFM, as soon as you model more than 3-4 interactions it s easy to get lost in the flow diagrams (also difficult to support and modify). Using SFM, describing processing and logic operations within a flow gets complicated fast (you must code ESQL). Not so with HostBridge. HostBridge supports a variety of user exits that allow support for any application cleanup scenario, even across multiple AORs. SFM does not. Is the XML output from the service fairly simple? YES NO HostBridge allows complete customization of the XML output. Do your services need to be stateful? NO Do any of your transactions exist outside of CICS (e.g., CA-IDMS, IMS) NO Are you absolutely sure you ve answered these questions correctly? In other words, do you REALLY know your CICS applications as well as you think you do?! YES YES, Maybe or Don t Know YES or Maybe NO SFM does not support stateful services. HostBridge does. Using SFM to construct a flow that included both CICS and non-cics applications is, practically speaking, almost impossible. HostBridge fully supports. WARNING: Once an integration project begins, many organizations are surprised by what they don t know or didn t remember about their CICS applications! You can use either SFM or HostBridge to compose the service. Use HostBridge to compose the service. Copyright 2008 HostBridge Technology, LLC 53
54 Shameless Sales Pitch Software vendors, like the customers they serve, have unique domains of expertise. At HostBridge, ours is transforming CICS terminal oriented applications into high volume, high fidelity business services. We are subject matter experts in this area, and we probably have more experience with real world CICS terminal oriented applications accessed via the CICS Bridge interface than all other ISVs combined. 35 It s not that we re smarter than anyone else. It s simply that this is what we do all day, every day. As a result, our software has evolved to be the most robust CICS integration product for terminal oriented applications. Successful, mission critical CICS integration projects call for a deft touch. 36 And if you get the feeling that your CICS integration vendor (including IBM) is approaching your project with a cookie cutter mentality Run! If you are already a HostBridge customer thank you for your business. It s a privilege to lock arms with our customers and help them achieve success. If you are not a HostBridge customer, we would consider it a privilege to compete for your business. 35 Per Yogi Bera: It ain t bragging if it s true. Check out for more Yogi isms. 36 I love this word. Deft: neatly skillful and quick in one's movements; demonstrating skill and cleverness. Copyright 2008 HostBridge Technology, LLC 54
55 12. Your Perspectives You don t have to know me very long before you realize that, to me, words have meaning. I put that in quotes because I have said it so many times that friends and business colleagues give me a hard time about it. The fact is, I ll sometimes stop what I m saying mid sentence because I just don t like the way it s coming out. I ll restart and reword the sentence until I m satisfied. It s probably annoying, but I really do care about how I say what I say. With this in mind, it should not surprise you to learn that it took a long time for me to write this paper. It also took a long time for me to let anybody else read it. And it certainly took a long time to relinquish control to a trusted editor (Mike O Neill). The only way I could bring myself to unclutch was to think of this paper as a work in progress: something that will be maintained and have versions just like our software products. It s not perfect and I know it. So this last section of the paper will keep track of how it evolves. At HostBridge we depend on our customers to help us improve our products to better meet real CICS integration needs. I want to continue doing something similar with this anti white paper. I invite all readers to share their knowledge, experience, and insight; help shape future versions of the paper; and make it a fruitful dialog about SFM, HostBridge, and integrating CICS into service oriented architectures. You can share your perspectives in any of the following ways: Online: [email protected] Mail: HostBridge Technology Attn: AWP Feedback 100 East 7th Ave. Stillwater, OK Please mention the version of the paper as well as page number or topic/section number you are responding to. Version info is included in the footer. Future versions of the paper will be available on the web page indicated above. Thanks in advance for helping make this paper and our knowledge of mainframe integration better. I look forward to your feedback. Revision Notes, published in January 2009, retains the organization of v1.0, published August 2008, but has been updated throughout. Copyright 2008 HostBridge Technology, LLC 55
56 Version Comments 1.0 Limited circulation: a handful of customers, two handfuls of IBMers, one long standing magazine/journal publisher in the mainframe arena (thanks Bob T.), one long standing CICS insider (thanks Bob Y.) and one long standing industry analyst (thanks Dale V.). Holding my breath. 1.1 Feedback was all over the place. One IBM reviewer framed his dread regarding the length of the Paper by saying: You and your team are some of the smartest people I know in the CICS industry. I understand the huge depth of experience that you have of both customer applications and of the CICS systems infrastructure. That experience makes HostBridge worthy of attention as a very credible commentator in the CICS space. In short; if you guys say something is broke or missing or needs improvement then 99.98% of the time it does. The casual style of the Paper was a hot topic. For some, it made the Paper an easier read: Best White Paper I can remember reading. (Thanks Brian.) Of course, everyone has their own opinion about humor: You re not as funny as you think you are. (Allison, I agree.) But the style of the paper was problematic for some of my IBM friends: Humor and a lighthearted approach is always a challenging style to capture, especially when you're trying to relay technical position of products. While I'm not sure that this is the most effective style for making your point, I am sure that we all agree that the partnership between CICS, SFF and HostBridge continue to be a highly valued partnership that delivers tremendous value to the CICS community. This was very valuable feedback. I had spent so many hours writing, shaping, and tweaking the specific words, sentences, and paragraphs (and trying to make it pithy) that I may have lost sight of the bigger picture. In version 1.1, I have started to pull myself back from examining trees and take a look at the forest. I have incorporated as much specific feedback as possible. I still have more changes to make, but for now this will have to suffice. Please keep the feedback coming. Copyright 2008 HostBridge Technology, LLC 56
CICS Web Services Vendor Shootout
SHARE 2011 Orlando, FL CICS Web Services Vendor Shootout Russ Teubner, Founder & CEO Copyright 2011 HostBridge Technology, Copyright LLC 2011 HostBridge Technology Who Is HostBridge Technology? CICS integration
The Integration Between EAI and SOA - Part I
by Jose Luiz Berg, Project Manager and Systems Architect at Enterprise Application Integration (EAI) SERVICE TECHNOLOGY MAGAZINE Issue XLIX April 2011 Introduction This article is intended to present the
Service Mediation. The Role of an Enterprise Service Bus in an SOA
Service Mediation The Role of an Enterprise Service Bus in an SOA 2 TABLE OF CONTENTS 1 The Road to Web Services and ESBs...4 2 Enterprise-Class Requirements for an ESB...5 3 Additional Evaluation Criteria...7
Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA
Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA Enterprise Web 2.0 >>> FAST White Paper November 2006 Abstract Modern Rich Internet Applications for SOA have to cope with
A standards-based approach to application integration
A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist [email protected] Copyright IBM Corporation 2005. All rights
Service-Oriented Architecture: Analysis, the Keys to Success!
Service-Oriented Architecture: Analysis, the Keys to Success! Presented by: William F. Nazzaro CTO, Inc. [email protected] www.iconatg.com Introduction Service-Oriented Architecture is hot, but we seem
Beyond the Hype: Advanced Persistent Threats
Advanced Persistent Threats and Real-Time Threat Management The Essentials Series Beyond the Hype: Advanced Persistent Threats sponsored by Dan Sullivan Introduction to Realtime Publishers by Don Jones,
CICS Modernization & Integration
CICS Modernization & Integration Modernization easier than thought The irony is that host applications are probably better suited for exposure as part of an SOA than many applications based on more modern
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
Extend the value of your core business systems.
Legacy systems renovation to SOA September 2006 Extend the value of your core business systems. Transforming legacy applications into an SOA framework Page 2 Contents 2 Unshackling your core business systems
SOA REFERENCE ARCHITECTURE: WEB TIER
SOA REFERENCE ARCHITECTURE: WEB TIER SOA Blueprint A structured blog by Yogish Pai Web Application Tier The primary requirement for this tier is that all the business systems and solutions be accessible
Mainframe Integration Using JavaScript Tools
Mainframe Integration Using JavaScript Tools By Russ Teubner HostBridge Technology This three-part series describes developer productivity gains, fast SOA/cloud deployments by real companies, and more
What You Need to Know About Transitioning to SOA
What You Need to Know About Transitioning to SOA written by: David A. Kelly, ebizq Analyst What You Need to Know About Transitioning to SOA Organizations are increasingly turning to service-oriented architectures
Streamlining Web and Email Security
How to Protect Your Business from Malware, Phishing, and Cybercrime The SMB Security Series Streamlining Web and Email Security sponsored by Introduction to Realtime Publishers by Don Jones, Series Editor
Take full advantage of IBM s IDEs for end- to- end mobile development
Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise
Steps to Migrating to a Private Cloud
Deploying and Managing Private Clouds The Essentials Series Steps to Migrating to a Private Cloud sponsored by Introduction to Realtime Publishers by Don Jones, Series Editor For several years now, Realtime
Web Application Development for the SOA Age Thinking in XML
Web Application Development for the SOA Age Thinking in XML Enterprise Web 2.0 >>> FAST White Paper August 2007 Abstract Whether you are building a complete SOA architecture or seeking to use SOA services
Modernizing CICS and System z with Web Services/SOA
Modernizing CICS and System z with Web Services/SOA The HostBridge Approach A HostBridge White Paper 866-965-2427 [email protected] Copyright Notice Copyright 2011 by HostBridge Technology. All rights
Getting started with API testing
Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...
My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies
About the author My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies I am going to take you through the journey that my team embarked on as we looked for ways to automate processes,
Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus
Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 Unit objectives
Research on the Model of Enterprise Application Integration with Web Services
Research on the Model of Enterprise Integration with Web Services XIN JIN School of Information, Central University of Finance& Economics, Beijing, 100081 China Abstract: - In order to improve business
Enterprise Service Bus 101
Enterprise Service Bus 101 Marty Wasznicky Director, Product Business Development Neudesic Copyright 2010 Neudesic, LLC. All rights reserved. Table of Contents Abstract... 3 Understanding the Enterprise
Importance of Data Abstraction, Data Virtualization, and Data Services Page 1
Importance of Data Abstraction, Data Virtualization, and Data Services David S. Linthicum The management of data is core to successful IT. However, few enterprises have a strategy for the use of data assets,
Why HTML5 Tests the Limits of Automated Testing Solutions
Why HTML5 Tests the Limits of Automated Testing Solutions Why HTML5 Tests the Limits of Automated Testing Solutions Contents Chapter 1 Chapter 2 Chapter 3 Chapter 4 As Testing Complexity Increases, So
What is the difference between Workflow Engines and BPM Suites?
What is the difference between Workflow Engines and BPM Suites? Phil Gilbert Chief Technology Engineer Lombardi Software May 2005 Table of Contents Introduction... 3 The Workflow Solutions of the 90 s...
Service Oriented Architecture 1 COMPILED BY BJ
Service Oriented Architecture 1 COMPILED BY BJ CHAPTER 9 Service Oriented architecture(soa) Defining SOA. Business value of SOA SOA characteristics. Concept of a service, Enterprise Service Bus (ESB) SOA
A Modern Approach to Monitoring Performance in Production
An AppDynamics Business White Paper WHEN LOGGING ISN T ENOUGH A Modern Approach to Monitoring Performance in Production Ten years ago, the standard way to troubleshoot an application issue was to look
Oracle SOA Reference Architecture
http://oraclearchworld.wordpress.com/ Oracle SOA Reference Architecture By Kathiravan Udayakumar Introduction to SOA Service Oriented Architecture is a buzz word in IT industry for few years now. What
Service-oriented architecture in e-commerce applications
Service-oriented architecture in e-commerce applications What is a Service Oriented Architecture? Depends on who you ask Web Services A technical architecture An evolution of distributed computing and
Enterprise Application Designs In Relation to ERP and SOA
Enterprise Application Designs In Relation to ERP and SOA DESIGNING ENTERPRICE APPLICATIONS HASITH D. YAGGAHAVITA 20 th MAY 2009 Table of Content 1 Introduction... 3 2 Patterns for Service Integration...
RS MDM. Integration Guide. Riversand
RS MDM 2009 Integration Guide This document provides the details about RS MDMCenter integration module and provides details about the overall architecture and principles of integration with the system.
Bridging the Gap between On-Premise BizTalk ESB and Windows Azure platform AppFabric
SERVICE BUS and ACCESS CONTROL Bridging the Gap between On-Premise BizTalk ESB and Windows Azure platform AppFabric Brian Loesgen Principal SOA Architect Microsoft Corporation San Diego.NET User Group,
Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test.
Ce document a été téléchargé depuis le site de Precilog. - Services de test SOA, - Intégration de solutions de test. 01 39 20 13 55 [email protected] www.precilog.com End to End Process Testing & Validation:
Lesson 18 Web Services and. Service Oriented Architectures
Lesson 18 Web Services and Service Oriented Architectures Service Oriented Architectures Module 4 - Architectures Unit 1 Architectural features Ernesto Damiani Università di Milano A bit of history (1)
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
SOA Myth or Reality??
IBM TRAINING S04 SOA Myth or Reality Jaqui Lynch IBM Corporation 2007 SOA Myth or Reality?? Jaqui Lynch Mainline Information Systems Email [email protected] Session S04 http://www.circle4.com/papers/s04soa.pdf
Service Oriented Architectures
8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ The context for SOA A bit of history
Making the Right Choice
Tools & Automation Making the Right Choice The features you need in a GUI test automation tool by Elisabeth Hendrickson QUICK LOOK Factors to consider in choosing a GUI testing tool Treating GUI test automation
Testing Web Services Today and Tomorrow
Copyright Rational Software 2002 http://www.therationaledge.com/content/oct_02/m_webtesting_jb.jsp Testing Web Services Today and Tomorrow by Jason Bloomberg Senior Analyst ZapThink LLC With all the attention
Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group. Tuesday June 12 1:00-2:15
Service Oriented Architecture and the DBA Kathy Komer Aetna Inc. New England DB2 Users Group Tuesday June 12 1:00-2:15 Service Oriented Architecture and the DBA What is Service Oriented Architecture (SOA)
IBM Information Management
IBM Information Management January 2008 IBM Information Management software Enterprise Information Management, Enterprise Content Management, Master Data Management How Do They Fit Together An IBM Whitepaper
Curl Building RIA Beyond AJAX
Rich Internet Applications for the Enterprise The Web has brought about an unprecedented level of connectivity and has put more data at our fingertips than ever before, transforming how we access information
How To Build A Financial Messaging And Enterprise Service Bus (Esb)
Simplifying SWIFT Connectivity Introduction to Financial Messaging Services Bus A White Paper by Microsoft and SAGA Version 1.0 August 2009 Applies to: Financial Services Architecture BizTalk Server BizTalk
Internationalization and Web Services
Internationalization and Web Services 25 th Internationalization and Unicode Conference Presented by Addison P. Phillips Director, Globalization Architecture webmethods, Inc. 25 th Internationalization
Application security testing: Protecting your application and data
E-Book Application security testing: Protecting your application and data Application security testing is critical in ensuring your data and application is safe from security attack. This ebook offers
Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence
Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence Service Oriented Architecture SOA and Web Services John O Brien President and Executive Architect Zukeran Technologies
www.progress.com DEPLOYMENT ARCHITECTURE FOR JAVA ENVIRONMENTS
DEPLOYMENT ARCHITECTURE FOR JAVA ENVIRONMENTS TABLE OF CONTENTS Introduction 1 Progress Corticon Product Architecture 1 Deployment Options 2 Invoking Corticon Decision Services 4 Corticon Rule Engine 5
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all
Oracle Application Development Framework Overview
An Oracle White Paper June 2011 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services
PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone
Standalone PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone Most developers are familiar with Visual SourceSafe. It's a popular version control
Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich
Di 6.1a January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich Warum naive SOA scheitert Ein Erfahrungsbericht Adam Bien How To Kill a SOA Project Early? [Warum naive SOA scheitert]
Options for integrating new applications with current applications that run on a mainframe
Options for integrating new applications with current applications that run on a mainframe Determine the right integration technique for your unique environment Waseem Roshen IT Architect, IBM 06 June
Base One's Rich Client Architecture
Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.
Version 14.0. Overview. Business value
PRODUCT SHEET CA Datacom Server CA Datacom Server Version 14.0 CA Datacom Server provides web applications and other distributed applications with open access to CA Datacom /DB Version 14.0 data by providing
Global Software Change Management for PVCS Version Manager
Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.
Service-Oriented Architectures
Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems
WHAT IS AN APPLICATION PLATFORM?
David Chappell December 2011 WHAT IS AN APPLICATION PLATFORM? Sponsored by Microsoft Corporation Copyright 2011 Chappell & Associates Just about every application today relies on other software: operating
BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use
Product Data Sheet BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use BEA AquaLogic Integrator delivers the best way for IT to integrate, deploy, connect and manage process-driven
A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus
A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus Karim M. Mahmoud 1,2 1 IBM, Egypt Branch Pyramids Heights Office Park, Giza, Egypt [email protected] 2 Computer
What is Open Source? Open source is defined by three key components:
Integrating Open Source into your business To help businesses deal with the complexity of globalization, unanticipated opportunities, unexpected threats, competitive demands and fiscal constraints, a business
1 What Are Web Services?
Oracle Fusion Middleware Introducing Web Services 11g Release 1 (11.1.1) E14294-04 January 2011 This document provides an overview of Web services in Oracle Fusion Middleware 11g. Sections include: What
THE ELEMENTS OF USER EXPERIENCE
THE ELEMENTS OF USER EXPERIENCE USER-CENTERED DESIGN FOR THE WEB Jesse James Garrett chapter 2 Meet the Elements THE ELEMENTS OF USER EXPERIENCE 21 The user experience development process is all about
A SHORT INTRODUCTION TO CLOUD PLATFORMS
A SHORT INTRODUCTION TO CLOUD PLATFORMS AN ENTERPRISE-ORIENTED VIEW DAVID CHAPPELL AUGUST 2008 SPONSORED BY MICROSOFT CORPORATION COPYRIGHT 2008 CHAPPELL & ASSOCIATES CONTENTS Defining Terms: What is a
Federal Enterprise Architecture and Service-Oriented Architecture
Federal Enterprise Architecture and Service-Oriented Architecture Concepts and Synergies Melvin Greer Chief Strategist, SOA / Cloud Computing Certified Enterprise Architect Copyright August 19, 2010 2010
JAVASCRIPT CHARTING. Scaling for the Enterprise with Metric Insights. 2013 Copyright Metric insights, Inc.
JAVASCRIPT CHARTING Scaling for the Enterprise with Metric Insights 2013 Copyright Metric insights, Inc. A REVOLUTION IS HAPPENING... 3! Challenges... 3! Borrowing From The Enterprise BI Stack... 4! Visualization
Developing SOA solutions using IBM SOA Foundation
Developing SOA solutions using IBM SOA Foundation Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 4.0.3 Unit objectives After completing this
Why You Need to Follow Up with Your Customers
Why You Need to Follow Up with Your Customers You create a digital information product, and work hard towards your product launch. You announce it to your list. You ve even done quite a bit of legwork
Methods and tools for data and software integration Enterprise Service Bus
Methods and tools for data and software integration Enterprise Service Bus Roman Hauptvogl Cleverlance Enterprise Solutions a.s Czech Republic [email protected] Abstract Enterprise Service Bus (ESB)
Putting the power of Web 2.0 into practice.
White paper July 2008 Putting the power of Web 2.0 into practice. How rich Internet applications can deliver tangible business benefits Page 2 Contents 2 Introduction 3 What Web 2.0 technology can do for
Programmabilty. Programmability in Microsoft Dynamics AX 2009. Microsoft Dynamics AX 2009. White Paper
Programmabilty Microsoft Dynamics AX 2009 Programmability in Microsoft Dynamics AX 2009 White Paper December 2008 Contents Introduction... 4 Scenarios... 4 The Presentation Layer... 4 Business Intelligence
An Oracle White Paper May 2011. Oracle Tuxedo: An Enterprise Platform for Dynamic Languages
An Oracle White Paper May 2011 Oracle Tuxedo: An Enterprise Platform for Dynamic Languages Introduction Dynamic languages, also sometimes known as scripting languages, have been in existence for a long
Service-Oriented Architecture and Software Engineering
-Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based
1 What Are Web Services?
Oracle Fusion Middleware Introducing Web Services 11g Release 1 (11.1.1.6) E14294-06 November 2011 This document provides an overview of Web services in Oracle Fusion Middleware 11g. Sections include:
BPM and SOA require robust and scalable information systems
BPM and SOA require robust and scalable information systems Smart work in the smart enterprise Authors: Claus Torp Jensen, STSM and Chief Architect for SOA-BPM-EA Technical Strategy Rob High, Jr., IBM
Can I customize my identity management deployment without extensive coding and services?
SOLUTION BRIEF CONNECTOR XPRESS AND POLICY XPRESS UTILITIES IN CA IDENTITY MANAGER Can I customize my identity management deployment without extensive coding and services? SOLUTION BRIEF CA DATABASE MANAGEMENT
SOA and Cloud in practice - An Example Case Study
SOA and Cloud in practice - An Example Case Study 2 nd RECOCAPE Event "Emerging Software Technologies: Trends & Challenges Nov. 14 th 2012 ITIDA, Smart Village, Giza, Egypt Agenda What is SOA? What is
EBXML FEATURE SOAP WSDL. written by Una Kearns UDDI. Content Management & Web Services. 6 November 2001 www.wsj2.com
WS J FEATURE SOAP EBXML written by Una Kearns UDDI WSDL Content Management & Web Services 6 November 2001 econtent Services the services behind Web Services Una Kearns, XML architect at Documentum, leads
Service Oriented Architecture
Service Oriented Architecture Charlie Abela Department of Artificial Intelligence [email protected] Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline
Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario
Oracle Service Bus Situation A service oriented architecture must be flexible for changing interfaces, transport protocols and server locations - service clients have to be decoupled from their implementation.
Extending Legacy Applications to Consume Web Services. OpenSpan White Paper Series: Extending Legacy Applications to Consume Web Services
OpenSpan White Paper Series: Extending Legacy Applications to Consume Web Services Extending Legacy Applications to Consume Web Services Achieving SOA Now p.2 OpenSpan White Paper Series: Extending Legacy
Becoming Proactive in Application Management and Monitoring
The Essentials Series: Improving Application Performance Troubleshooting Becoming Proactive in Application Management and Monitoring sponsored by by Becoming Proactive in Application Managem ent and Monitoring...
What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.
What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4
Introduction to Service-Oriented Architecture for Business Analysts
Introduction to Service-Oriented Architecture for Business Analysts This course will provide each participant with a high-level comprehensive overview of the Service- Oriented Architecture (SOA), emphasizing
Building Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2008 Vol. 7, No. 8, November-December 2008 What s Your Information Agenda? Mahesh H. Dodani,
A Step-by-Step Guide to Defining Your Cloud Services Catalog
A Step-by-Step Guide to Defining Your Cloud Services Catalog Table of Contents Introduction Chapter 1 Defining the Services Catalog Chapter 2 Building a Services Catalog Chapter 3 Choosing the Right Solution
