Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.



Published on

Websphere sMash is a new, development paradigm and execution platform for quickly building agile,
web-based application. It harness on the flexibility of Web 2.0 technology and uses dynamic scripting to
build simple situational apps.

Published in: Technology
  • Be the first to comment

  • Be the first to like this


  1. 1. WebSphere sMash with CICS For Z/OS User Group
  2. 2. Abstract <ul><li>CICS has been powering the world's transactions for forty years, continually evolving and adopting new technologies. Many customers see CICS's adoption of a technology as validation that it's ready at the enterprise level. Through WebSphere sMash, CICS brings seamless integration of rich Web 2.0 interfaces to your core CICS applications. WebSphere sMash is a new agile Web application platform for developing and running modern Web 2.0 applications. It can be used to create RESTful Web services and rich AJAX interfaces using popular Web technologies such as PHP and Groovy. This session explores the integration of CICS and sMash and the role of dynamic scripting in the enterprise world. The session will explain and demonstrate the SupportPac CA1S provides the ability to use PHP scripts in CICS as an option to service enable your applications in a RESTful style. We will also show how easy it is to create situational applications using sMash with CICS via the CICS Transaction Gateway. </li></ul>
  3. 3. Agenda <ul><li>Web 2.0 </li></ul><ul><li>Situational Applications </li></ul><ul><li>WebSphere sMash </li></ul><ul><li>WebSphere sMash with CICS examples </li></ul><ul><li> </li></ul>
  4. 4. Agenda <ul><li>Web 2.0 </li></ul><ul><li>Situational Applications </li></ul><ul><li>WebSphere sMash </li></ul><ul><li>WebSphere sMash with CICS examples </li></ul><ul><li> </li></ul>
  5. 5. Web 2.0 – Philosophy – not just Technology <ul><li>An important trend in delivering software applications </li></ul><ul><li>An enabler for richer web applications </li></ul><ul><ul><li>New business models </li></ul></ul><ul><ul><li>Peer-to-peer user participation </li></ul></ul><ul><ul><li>New technologies </li></ul></ul><ul><ul><li>Interactive filtering, presentation, data entry </li></ul></ul><ul><li>A combination of core technology components </li></ul><ul><ul><li>Rich user experience (maps, grids, animation, D&D, etc) </li></ul></ul><ul><ul><li>Loose-coupling, composite applications via reuse and “mash-ups” </li></ul></ul><ul><ul><li>Technologies (SOAP, REST, JSON, ATOM, Java, PHP, Dojo, Ruby, Python, Perl, etc) </li></ul></ul>
  6. 6. Web 2.0 Application Characteristics <ul><li>Rich user experience with minimal page transitions </li></ul><ul><li>Dynamic content </li></ul><ul><li>Data asynchronously retrieved via REST or SOAP service calls </li></ul><ul><li>Client-side validation </li></ul><ul><li>User encouraged to add value </li></ul><ul><li>Simplified user interface </li></ul><ul><li>Integration of relevant data from multiple sources </li></ul>
  7. 7. Web 2.0 for the Enterprise? <ul><li>Web 2.0 is </li></ul><ul><ul><li>Creating new markets </li></ul></ul><ul><ul><li>Lowering competitive barriers </li></ul></ul><ul><ul><li>Encouraging creativity to come from anywhere </li></ul></ul><ul><ul><li>Harnessing community created media </li></ul></ul><ul><ul><li>Tapping into the wisdom of the crowds </li></ul></ul><ul><ul><li>Enhancing communications and making information more impactful </li></ul></ul><ul><li>What does it means for the enterprise? </li></ul><ul><ul><li>Greater collaboration and innovation across the value chain </li></ul></ul><ul><ul><li>Increased levels of customer intimacy </li></ul></ul><ul><ul><li>Simplification of complex IT and business infrastructure </li></ul></ul><ul><ul><li>Business model flexibility to capitalize on new market opportunities </li></ul></ul>It’s fast becoming a Web 2.0 business world, where innovation never goes out of style. According to Gartner Missing out on the non-technology aspects of Web 2.0 means that many organizations will also miss out on some of the positive business benefits
  8. 8. Agenda <ul><li>Web 2.0 </li></ul><ul><li>Situational Applications </li></ul><ul><li>WebSphere sMash </li></ul><ul><li>WebSphere sMash with CICS examples </li></ul><ul><li> </li></ul>
  9. 9. The Application Landscape Usage Number of Applications ERP CRM SCM Enterprise applications Traditional developers building strategic applications Developers building simple applications and services to solve simple problems IT created applications User created applications Sales analysis Dashboards
  10. 10. Scenario: Enable Mobile Access Information delivered : Formatted to allow direct download into the mobile device Function delivered : Drill into any specific customer situation from the mobile device. Source: Centralized Data Base of client support information <ul><li>Goal: Enable mobile access to IBM’s Customer Support Portal </li></ul><ul><li>WebSphere sMash used to quickly and simply deliver mobile, on-demand, “need to know” view of client information to busy executives </li></ul>
  11. 11. Agenda <ul><li>Web 2.0 </li></ul><ul><li>Situational Applications </li></ul><ul><li>WebSphere sMash </li></ul><ul><li>WebSphere sMash with CICS examples </li></ul><ul><li> </li></ul>
  12. 12. Accelerate business and IT alignment with sMash WebSphere sMash provides an agile web 2.0-based dynamic scripting environment, based on known technologies, for quick delivery of dynamic applications. Speed Simplicity Agility Dynamic scripting languages Templates & pre-built services No-charge, robust browser & Eclipse based tooling Simply create rich Web 2.0 interfaces Nimble runtime optimized for Agile environment Application “is” the server
  13. 13. Rapidly Develop Applications WebSphere sMash is easy for developers to access, learn, and use <ul><li>Speed </li></ul><ul><li>Dynamic Scripting in PHP and Groovy (Java Language Syntax) </li></ul><ul><li>Effortless creation of RESTful Services and Data Feeds (RSS, Atom) </li></ul><ul><li>Repository of pre-built templates, services, libraries, and connectors result in less time coding & configuring. </li></ul>
  14. 14. Dynamic Scripting <ul><li>WebSphere sMash is a dynamic scripting platform </li></ul><ul><li>Applications created in one of two scripting languages </li></ul><ul><ul><li>Groovy (for people that prefer Java) </li></ul></ul><ul><ul><li>PHP (for the 3 Million existing PHP programmers) </li></ul></ul><ul><li>Java is positioned as the “system” language </li></ul><ul><ul><li>Mostly used to implement system extensions and application libraries </li></ul></ul><ul><ul><li>Entire applications can be written in Java, if desired </li></ul></ul><ul><li>PHP and Java components can directly invoke each other </li></ul><ul><ul><li>Easy integration and reuse of enterprise assets </li></ul></ul>
  15. 15. Rapidly Expose Data RESTfully Zero resource model enables developers with a simple programmatic and HTTP Data API <ul><li>Application data model </li></ul><ul><li>Constrained set of APIs encourage a RESTful application architecture </li></ul><ul><li>Data model that maps well into Atom feeds and JSON formats </li></ul><ul><li>Robust framework for persistence, validation, and serialization </li></ul>
  16. 16. Quickly Assemble Applications WebSphere sMash system design optimized for “zero” unneeded complexity <ul><li>Simplicity </li></ul><ul><li>No charge IDE’s provide a simple environment for constructing applications based on dynamic scripting languages. </li></ul><ul><li>Visual tooling makes it simple to create complex, rich, dynamic, data-centric Web 2.0 user interfaces based on Ajax. </li></ul><ul><li>Programming model and approach to configuration are optimized for keeping simple tasks easy, more complex tasks possible. </li></ul>
  17. 17. sMash Application Builder <ul><li>Browser-Based Development IDE </li></ul><ul><li>Built as a sMash application </li></ul><ul><li>Provides full development lifecycle for sMash applications </li></ul><ul><ul><li>Create, Edit, Test, Debug </li></ul></ul><ul><li>Provides Visual Editors for Activities and Web Page construction </li></ul><ul><ul><li>Including a DOJO-enabled page editor </li></ul></ul><ul><li>Basic Eclipse-based tooling also available if preferred </li></ul>
  18. 18. Agility in Dynamic Scripting – Groovy / PHP Variety of browser-based visual editing tools provide rapid time to value Dynamic Scripting Editor Visual UI Editor Visual Flow Editor Simplicity in constructing web pages (Javascript) Speed in scripting / assemble activities into a flow
  19. 19. An Optimized Runtime WebSphere sMash focuses on deploying applications, not servers <ul><li>Agility </li></ul><ul><li>Nimble execution </li></ul><ul><ul><li>Instant On - Application available for service in less than 1 sec </li></ul></ul><ul><li>Cost effective execution </li></ul><ul><ul><li>Memory and disk footprint minimal </li></ul></ul><ul><ul><li>Idle application footprint ~380 KB </li></ul></ul><ul><ul><li>Running application JVM ~28 MB </li></ul></ul><ul><li>Clean execution </li></ul><ul><ul><li>Applications are isolated and secured from each other </li></ul></ul><ul><ul><li>Graceful recovery, isolation, tolerates “bad” code </li></ul></ul><ul><ul><li>No state lost on restart </li></ul></ul>
  20. 20. Application Centric Runtime <ul><li>WebSphere sMash is an application-centric runtime </li></ul><ul><ul><li>You create an application and run it </li></ul></ul><ul><ul><li>You do not package an application and deploy it to a multi-application server </li></ul></ul><ul><ul><ul><li>Simple zip, copy, unzip when deploying to new host machine </li></ul></ul></ul><ul><ul><li>Each application runs in its own process (JVM) </li></ul></ul><ul><ul><li>Runtime is designed to be short lived </li></ul></ul><ul><li>WebSphere sMash is a full stack runtime </li></ul><ul><ul><li>Everything needed to run the application is provided by WebSphere sMash </li></ul></ul><ul><ul><ul><li>Including the HTTP stack </li></ul></ul></ul><ul><ul><li>No external proxy or web server is required </li></ul></ul>
  21. 21. Modular Architecture makes for more agile, more simply managed environment <ul><li>WebSphere sMash applications are based on a very small core </li></ul><ul><ul><li>5.4 MBytes (includes Groovy). </li></ul></ul><ul><ul><ul><li>PHP adds additional 17 Mbytes </li></ul></ul></ul><ul><ul><li>Core provides all of the framework and runtime support, including HTTP transport </li></ul></ul><ul><li>Additional features provided in downloadable modules </li></ul><ul><ul><li>Applications declare a dependency on desired features (using Ivy) </li></ul></ul><ul><ul><li>A package management system manages your dependencies, including: </li></ul></ul><ul><ul><ul><li>The ability to share dependencies on a machine </li></ul></ul></ul><ul><ul><ul><li>The ability to demand load missing dependencies from the network </li></ul></ul></ul><ul><ul><ul><li>The ability to manage updates to dependencies that you are using </li></ul></ul></ul>
  22. 22. WebSphere sMash Activities Developers visually “mash-up” services and feeds <ul><li>Assemble-style Development </li></ul><ul><li>Visually or programmatically combine existing feeds and REST services that enrich, sort, and filter data in a pipeline through “wiring” </li></ul><ul><li>Configure templates to alter pipeline routes, log events along the pipeline </li></ul><ul><li>Numerous built-in activities, including </li></ul><ul><ul><li>Get Feed, Call Service, Aggregate, Sort, Transform, Filter, Send Mail, XSLT, Conditionals, Loops </li></ul></ul>
  23. 23. Agenda <ul><li>Web 2.0 </li></ul><ul><li>Situational Applications </li></ul><ul><li>WebSphere sMash </li></ul><ul><li>WebSphere sMash with CICS examples </li></ul><ul><li> </li></ul>
  24. 24. Examples <ul><li>sMash with CICS Transaction Gateway. </li></ul><ul><li>sMash with Atom feeds from CICS </li></ul><ul><li>Generating REST resources using scripting within CICS – PHP SupportPac CA1S </li></ul>
  25. 25. Examples <ul><li>sMash with CICS Transaction Gateway. </li></ul><ul><li>sMash with Atom feeds from CICS </li></ul><ul><li>Generating REST resources using scripting within CICS – PHP SupportPac CA1S </li></ul>
  26. 26. sMash with CICS Transaction Gateway sMash application index.html book.php Library CTG CICS LIBRARY JZOS ECI Browser REST Java Bridge book.json CTG client
  27. 27. REST Primer. <ul><li>RESTful Design </li></ul><ul><ul><li>Collection Model </li></ul></ul><ul><ul><li>Action can be taken on the entire collection or a specified member of the collection </li></ul></ul><ul><ul><li>URI and HTTP method define the resource request </li></ul></ul><ul><li>REST and WebSphere sMash </li></ul><ul><ul><li>WebSphere sMash supports </li></ul></ul><ul><ul><li>URI and HTTP method define the collection resource model </li></ul></ul><ul><ul><li>Each script in the <apphome>/app/resources directory represents a resource handler </li></ul></ul><ul><ul><li>URL convention for interacting with resources based on </li></ul></ul><ul><ul><li>/resources/<collectionName>[/<memberID>[/<pathInfo>]] </li></ul></ul><ul><ul><li>where the actions are defined as follows: </li></ul></ul>HTTP Method URI Description GET /people List members POST /people Create member GET /people/1 Retrieve member PUT /people/1 Update member DELETE /people/1 Delete member Resource GET PUT POST DELETE Collection list putCollection create deleteCollection Member retrieve update postMember delete
  28. 28. Interacting with CICS Programs <ul><li>Build a Java object representation of your COMMAREA with JZOS </li></ul><ul><ul><li>JZOS is included in the IBM JDK for zOS </li></ul></ul><ul><li>Use the CTG Java Client Libraries </li></ul><ul><ul><li>From Groovy </li></ul></ul><ul><ul><li>From PHP via the Java Bridge </li></ul></ul>ADATA Java Class for COMMAREA ctgclient.jar PHP Java Bridge Compiler JZOS COBOL Source COMMAREA
  29. 29. CICS REST Service in PHP Import CTG and COMAREA classes Send Request to CICS Process Results
  30. 30. Example
  31. 31. Examples <ul><li>sMash with CICS Transaction Gateway. </li></ul><ul><li>sMash with Atom feeds from CICS </li></ul><ul><li>Generating REST resources using scripting within CICS – PHP SupportPac CA1S </li></ul>
  32. 32. ATOM support in CICS TS 4.1 URIMAP PATH(atom/*) ‏ USAGE(ATOM) ‏ ATOMSERVICE ATOMTYPE(FEED) ‏ STATUS(ENABLED) ‏ RESOURCENAME(FILEA) ‏ RESOURCETYPE(FILE) ‏ BINDFILE CONFIGFILE XSDBIND file <cics:atomservice type=&quot;feed“ <cics:feed cics:window=&quot;window-size&quot;> <cics:resource name=“FILEA&quot; type=“FILE“/> . . . <atom:feed xmlns:atom=&quot;;> . . . . <atom:content cics:resource=&quot;cics-resource-name&quot; cics:type=&quot;cics-resource-type&quot;/> </atom:feed> </cics:atomservice>
  33. 33. sMash with CICS Atom feeds sMash Application .html Situational Business Logic PHP or Groovy or Flow CICS FILE Browser REST .json ATOMSERVICE ATOM TSQ Program
  34. 34. Examples <ul><li>sMash with CICS Transaction Gateway. </li></ul><ul><li>sMash with Atom feeds from CICS </li></ul><ul><li>Generating REST resources using scripting within CICS – PHP SupportPac CA1S </li></ul>
  35. 35. CICS PHP: Interfacing with CICS CA1S supportPac HFS pipeline config URIMAP CICS TS V3 TCPIPSERVICE CPIH CWXN Requester URIMAP matching CSOL Pipeline RFPHNDLR HTTP JVM PHP Interpreter PIPELINE PHP Scripts PHP Script
  36. 36. PHP in CICS: Interacting with CICS Programs <ul><li>PHP in CICS has a Java Bridge </li></ul><ul><ul><li>Build a Java object representation of your COMMAREA with JZOS </li></ul></ul><ul><ul><li>LINK to your business program using the provided API </li></ul></ul><ul><ul><li>LINK, Syncpoint, and Rollback supported </li></ul></ul>CICS TS V3 PHP Script COBOL Source COBOL Program COMMAREA JZOS ADATA Load Module LINK Data to COMMAREA Data from COMMAREA Compiler 1 2 3 4 5 2 1 3 4 5 Generate ADATA from compiler (data layout info) Generate Java Data object using JZOS Set data in COMMAREA object LINK to business logic Get data from COMMAREA object
  37. 37. Summary of CA1S Features <ul><li>Handle HTTP requests with PHP code </li></ul><ul><li>Call CICS commarea programs from PHP </li></ul><ul><li>Access DB2 databases from PHP </li></ul><ul><li>Manage units of work from PHP (commit/rollback) </li></ul><ul><li>Use event handlers to easily create RESTful Web Services </li></ul><ul><li>Debug PHP scripts with Eclipse PDT </li></ul><ul><li>Access any Java classes from PHP code using the PHP/Java Bridge </li></ul>
  38. 38. sMash with CA1S CICS LIBRARY CA1S PHP sMash Application .html Situational Business Logic PHP or Groovy or Flow Browser REST .json REST
  39. 39. Agenda <ul><li>Web 2.0 </li></ul><ul><li>Situational Applications </li></ul><ul><li>Introducing WebSphere sMash </li></ul><ul><li>Demonstrations </li></ul><ul><li> </li></ul>
  40. 40. WebSphere sMash based on IBM’s Project Zero incubation effort <ul><li>Project Zero is the development and incubation community </li></ul><ul><ul><li>Live on the Internet since June 2007 </li></ul></ul><ul><li>Project Zero represents </li></ul><ul><ul><li>The people that build and use WebSphere sMash </li></ul></ul><ul><ul><li>The incubation of new technology </li></ul></ul><ul><ul><li>The community of 3 rd party assets that leverage the WebSphere sMash platform </li></ul></ul><ul><li>All released versions are called WebSphere sMash </li></ul> Community Site WebSphere sMash Based on Project Zero
  41. 41. Resources: <ul><li>WebSphere sMash - </li></ul><ul><ul><li>Project Zero - </li></ul></ul><ul><li>CA1S – PHP Support Pac </li></ul><ul><ul><li>More info about CA1S: phpOnCics </li></ul></ul><ul><ul><li>Video of CA1S: phpOnCicsVideo </li></ul></ul><ul><li>CA8k – Atom Support Pac </li></ul><ul><li>JZOS - </li></ul><ul><li>ATOM - </li></ul><ul><li>REST - </li></ul><ul><li>CICS Supportpac CA8K - </li></ul>