Introduction to CICS Course introduction Course introduction What - - PowerPoint PPT Presentation

introduction to cics
SMART_READER_LITE
LIVE PREVIEW

Introduction to CICS Course introduction Course introduction What - - PowerPoint PPT Presentation

Introduction to CICS Course introduction Course introduction What is CICS? What is an application server? Why use an application server? Course introduction Services provided by CICS How CICS applications are defined Scaling CICS to meet


slide-1
SLIDE 1

Introduction to CICS

Course introduction

slide-2
SLIDE 2

What is CICS? What is an application server? Why use an application server?

Course introduction

slide-3
SLIDE 3

Services provided by CICS How CICS applications are defined Scaling CICS to meet demand

Course introduction

slide-4
SLIDE 4

What is CICS?

Overview of CICS

slide-5
SLIDE 5

What is CICS?

Application server on IBM Z Most application servers support a single language CICS supports many different languages

slide-6
SLIDE 6

Java Java Enterprise Edition COBOL and PL/l C, PHP, Assembly and others Third party vendor languages

Mixed language application server

slide-7
SLIDE 7

Who uses CICS?

Banking Transport Retail Insurance Fortune 500 companies

slide-8
SLIDE 8

Why use CICS?

Mission critical applications Downtime measured in $100,000+ Stock trading Credit cards

slide-9
SLIDE 9

Why do they use CICS?

Google searches: 40,000 – 60,000 > 200,000 Transactions per second

slide-10
SLIDE 10

Scalability Scalability - is the capability of a system, network, or process to handle a growing amount of work

Why do they use CICS?

slide-11
SLIDE 11

Reliability Reliability - an attribute of any computer-related component that consistently performs according to its specifications.

Why do they use CICS?

slide-12
SLIDE 12

Availability

99.999%

Availability - the probability that a system is operational at a given time

Why do they use CICS?

slide-13
SLIDE 13

Scalability Reliability Availability

99.999%

Why do they use CICS?

slide-14
SLIDE 14

Not just for mission critical apps Versatility and extensibility See ‘How Walmart Became a Cloud Services Provider with IBM CICS’

Why do they use CICS?

slide-15
SLIDE 15

Summary

CICS is used in a wide range of industries CICS provides support for applications in a number of different languages CICS has exceptionally high qualities

  • f service
slide-16
SLIDE 16

What is CICS?

What is an application server?

slide-17
SLIDE 17

Mixed language application server An application server hosts applications

What is an application server?

slide-18
SLIDE 18

Application: Book a holiday

Example application

slide-19
SLIDE 19

Application: Book a holiday

Flight Hotel

+

Example application

slide-20
SLIDE 20

Application: Book a holiday Program: Book Holiday

Interface Logic

Example application

slide-21
SLIDE 21

Application: Book a holiday Program: Book Holiday Call Book Flight Program: Book Flight

Business Logic Interface Logic

Example application

slide-22
SLIDE 22

Application: Book a holiday Program: Book Holiday Call Book Hotel Program: Book Flight Program: Book Hotel

Example application

slide-23
SLIDE 23

Call Book Flight, Call Book Hotel Return Success or Fail

Example application

Program: Book Holiday Program: Book Flight Program: Book Hotel Application: Book a holiday

slide-24
SLIDE 24

Development concerns

Transactionality

Application: Book a holiday Program: Book Holiday Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight Program: Book Hotel

slide-25
SLIDE 25

Development concerns

Web communication

Application: Book a holiday Program: Book Holiday Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight Program: Book Hotel

slide-26
SLIDE 26

Development concerns

Multiple users

Application: Book a holiday Program: Book Holiday Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight Program: Book Hotel

slide-27
SLIDE 27

Development concerns

Security

Application: Book a holiday Program: Book Holiday Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight Program: Book Hotel

slide-28
SLIDE 28

Development concerns

Transactionality Web communication Multiple users … Application: Book a holiday Program: Book Holiday Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight Program: Book Hotel

slide-29
SLIDE 29

Introducing the application server

Transactionality Web communication Multiple users … Application Server: CICS Application: Book a holiday Program: Book Holiday Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight Program: Book Hotel

slide-30
SLIDE 30

Introducing the API

Transactionality Web communication Multiple users … Application Server: CICS API Application: Book a holiday Program: Book Holiday (Java) Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight (C) Program: Book Hotel (COBOL)

slide-31
SLIDE 31

Development concerns

Transactionality Web communication Multiple users Mixed languages Application Server: CICS Application: Book a holiday Program: Book Holiday (Java) Call Book Flight, Call Book Hotel Return Success or Fail Program: Book Flight (C) Program: Book Hotel (COBOL)

slide-32
SLIDE 32

Other concerns beside business logic Application server handles these other concerns on behalf of the application Faster time to value Provided for mixed language applications

Summary

slide-33
SLIDE 33

CICS as an application server

Section overview

slide-34
SLIDE 34

Connection technologies Security Passing data between programs Accessing databases Monitoring Transactions

CICS as an application server

slide-35
SLIDE 35

Summary

Services CICS provides to applications CICS uniquely provides these to mixed language applications

slide-36
SLIDE 36

CICS as an application server

Connecting to your application

slide-37
SLIDE 37

Connecting over the web

Application: Book a holiday Application Server: CICS Book Holiday Java program Book Flight C program Book Hotel COBOL program

slide-38
SLIDE 38

Connecting via a queue

Application: Book a holiday Book Holiday Java program Book Flight C program Book Hotel COBOL program Application Server: CICS

slide-39
SLIDE 39

Connecting via a queue

Application: Book a holiday Application Server: CICS Book Holiday Java program Book Flight C program Book Hotel COBOL program

slide-40
SLIDE 40

Different data formats

Application: Book a holiday JSON Application Server: CICS Book Holiday Java program Book Flight C program Book Hotel COBOL program { “destination”: ”New York” }

slide-41
SLIDE 41

Different data formats

Application: Book a holiday XML Application Server: CICS Book Holiday Java program Book Flight C program Book Hotel COBOL program <destination> New York </destination>

slide-42
SLIDE 42

Application: Book a holiday JSON Application Server: CICS Book Holiday Java program Book Flight C program Book Hotel COBOL program XML

CICS data transformation

slide-43
SLIDE 43

Application: Book a holiday native data JSON Application Server: CICS Book Holiday Java program Book Flight C program Book Hotel COBOL program XML { “destination”: ”New York” } <destination> New York </destination>

CICS data transformation

slide-44
SLIDE 44

Faster time to value No code changes, less risk Connect existing programs to new technologies

CICS data transformation

slide-45
SLIDE 45

CICS provides a range of connection technologies Data transform technologies Efficient reliable connection

Summary

slide-46
SLIDE 46

CICS as an application server

Securing your application

slide-47
SLIDE 47

Identification and authentication Authorization Encryption

Securing your application

slide-48
SLIDE 48

Application Server: CICS Application: Book a holiday Book Holiday Java program Book Flight C program Book Hotel COBOL program

Identification and authentication

User : Alice Password: passw0rd User : Bob Password: letmein

slide-49
SLIDE 49

Username and password SSL certificate Open Authorization CICS handles authenticating the token

Identification and authentication

slide-50
SLIDE 50

Is the identification provided ‘valid’ CICS shares the System Authentication Facility of z/OS Single security control point for the entire platform

Identification and authentication

slide-51
SLIDE 51

Can this user access this resource Can this user perform this action Authorization rules held in SAF Applied to individual users or groups

  • f users

Authorization

slide-52
SLIDE 52

Application Server: CICS Application: Book a holiday Book Holiday Java program Book Flight C program Book Hotel COBOL program

Encryption

User : Alice Password: passw0rd User : Bob Password: letmein

slide-53
SLIDE 53

Identification and authentication Authorization Encryption Security single point of control

Summary

slide-54
SLIDE 54

CICS as an application server

Calling programs and transferring data

slide-55
SLIDE 55

Calling a program

Application Server: CICS Application: Book a holiday Book Holiday Java program Book Flight C program Book Hotel COBOL program

slide-56
SLIDE 56

Calling a program in the same language

Application Server: CICS Application: Book a holiday Book Flight Java program Book Hotel Java program Book Holiday Java program

slide-57
SLIDE 57

Calling a program as an external service

Application Server Application Server Book Flight C program Application Server Book Hotel COBOL program Book Holiday Java program XML JSON

slide-58
SLIDE 58

Complex maintenance and administration Inefficient solution

Calling a program as an external service

slide-59
SLIDE 59

Language independent Allows one program to call another CICS LINK API CICS handles all the mixed language concerns in a robust manner

CICS API

slide-60
SLIDE 60

Book Flight C program Book Hotel COBOL program

CICS link

Book Holiday Java program

slide-61
SLIDE 61

Application Server: CICS Application: Book a holiday Book Flight C program Book Hotel COBOL program

CICS link with data

From: LHR To: LDW Date: 14/01/17 Time: 1300 Near: LDW Date: 14/01/17 Nights: 5 Stars: 3

Book Holiday Java program

slide-62
SLIDE 62

Channels and containers used to pass data between programs Container – named data area Channel – a collection of containers The CICS LINK API call provides a parameter to specify a channel name

Channel and containers

slide-63
SLIDE 63

Calling a program and passing data

Book Holiday Java program Book Flight C program From-Airport FLIGHT-CHANNEL

LHR

Dest-Airport

LDW

Time

1300

Date

14/01/17

Booking-ref

ABCDE1234

slide-64
SLIDE 64

Programs can call others irrespective

  • f language

Mixed language application server New programs can easily re-use existing business logic

Summary

slide-65
SLIDE 65

CICS as an application server

Accessing databases

slide-66
SLIDE 66

Accessing databases

Application Server: CICS Application: Book a holiday Book Holiday Java program Book Flight COBOL program Book Holiday Java program

slide-67
SLIDE 67

Efficient connectors to databases Use language specific APIs for access

CICS is not a database

slide-68
SLIDE 68

When things go wrong

Application Server: CICS Application: Book a holiday Book Holiday Java program Book Flight C program Book Hotel COBOL program

slide-69
SLIDE 69

Summary

slide-70
SLIDE 70

CICS as an application server

Monitoring

slide-71
SLIDE 71

Service Level Agreements Application use Capacity planning

Monitoring an application

slide-72
SLIDE 72

Monitoring use

Application: Book a holiday Application Server: CICS Book Holiday Java program Book Flight C program Book Holiday COBOL program

slide-73
SLIDE 73

Language independent monitoring Monitoring records written to a central location

Monitoring use

slide-74
SLIDE 74

Monitoring use

Time of day Number of users

slide-75
SLIDE 75

Application: Book a holiday 40% Application Server: CICS Book Holiday Java program Book Flight C program Book Holiday COBOL program 60%

Monitoring use

slide-76
SLIDE 76

Pushing to the limit

Application: Book a holiday Monitoring Records Monitoring Reports Book Holiday Java program Application Server: CICS Book Flight C program Database Book Holiday COBOL program

slide-77
SLIDE 77

CICS provides functions to measure application performance Measure performance over a mixed language application No changes to program source code Monitor the whole application, not just the sum of its parts

Summary

slide-78
SLIDE 78

CICS as an application server

Transactions

slide-79
SLIDE 79

Handling problems

Application Server: CICS Application: Book a holiday Book Flight C program Book Hotel COBOL program Book Holiday Java program

slide-80
SLIDE 80

Handling problems

Application Server: CICS Application: Book a holiday Unit of work Book Flight C program Book Hotel COBOL program Book Holiday Java program

slide-81
SLIDE 81

Transactionality applies to all resources All requests processed within a unit of work All updates are in doubt until the transaction is completed

Extended transactions

slide-82
SLIDE 82

Syncpoint Rollback

Syncpoint API

slide-83
SLIDE 83

Transactions are not unique to CICS Java Transaction Architecture (JTA) Maintain transaction over mixed language applications

Mixed language transactions

slide-84
SLIDE 84

Transactions are important Each request is a transaction Implicit transaction model Transactions supported over mixed languages

Summary

slide-85
SLIDE 85

CICS as an application server

Summary

slide-86
SLIDE 86

CICS provides services to applications Single or mixed languages applications Extend existing applications Operate application as a single entity

Summary

slide-87
SLIDE 87

Configuring an application in CICS

Introduction to resource definitions

slide-88
SLIDE 88

Example application

Application: Book a holiday Application Server: CICS Program: Book Flight Program: Book Hotel Program: Book Holiday

User provides holiday information Holiday is booked User receives response

slide-89
SLIDE 89

Example application

Application: Book a holiday Application Server: CICS Program: Book Flight Program: Book Hotel TCPIPSERVICE URIMAP PROGRAM Program: Book Holiday

slide-90
SLIDE 90

Handling a request from the web

Application: Book a holiday Application Server: CICS Program: Book Flight Program: Book Hotel TCPIPSERVICE URIMAP PROGRAM Program: Book Holiday (Java)

slide-91
SLIDE 91

Example web request

http://cics.ibm.com:80/Holiday/AliceInfo

Hostname = http://cics.ibm.com Port = 80 Request = Holiday/AliceInfo

slide-92
SLIDE 92

Listening for a web request

Defines the port for CICS to listen on Can specify security options such as to use SSL encryption Resource Definition: TCPIPSERVICE

Application Server: CICS

slide-93
SLIDE 93

Reaching our application

Routes a request to target program

‘/Holiday/*’ to Book Holiday

Resource Definition: URIMAP

http:/ /cics.ibm.com:80/Holiday/AliceInfo

Application Server: CICS Program: Book Holiday (Java)

slide-94
SLIDE 94

Our application program

Reference to the actual program Describes how and where the program should execute Resource Definition: PROGRAM

Application Server: CICS Program: Book Holiday (Java)

slide-95
SLIDE 95

What has happened so far

User has sent a request to CICS over the web CICS has listened for and routed that request to our program

Application Server: CICS Program: Book Holiday (Java)

slide-96
SLIDE 96

What happens next

Our program will process the request and respond to the user using the same communication channels and protocols.

Application Server: CICS Program: Book Holiday (Java)

slide-97
SLIDE 97

Resource definitions

Layer of abstraction above underlying resources Application: program Infrastructure: HTTP connection

slide-98
SLIDE 98

Why use resource definitions?

Allow configuration of various application and system components Programs refer to resource definition not to the underlying resource Underlying resource can be changed without needing to alter the program

slide-99
SLIDE 99

Example

Replace ‘Book Hotel’ with Java program ‘Book Holiday’ can remain unaltered Calls Book Hotel through the CICS API

Application: Book a holiday Book Flight C program Book Hotel COBOL program Book Holiday Java program

slide-100
SLIDE 100

TCPIPSERVICE URIMAP PROGRAM Other definitions available to configure

  • ther capability

Summary

slide-101
SLIDE 101

Configuring an application in CICS

Working with resource definitions

slide-102
SLIDE 102

Resource definitions

CICS provides interfaces to create resource definitions Definitions can be grouped together

slide-103
SLIDE 103

Example application

TCPIPSERVICE URIMAP PROGRAM PROGRAM PROGRAM DATABASE

slide-104
SLIDE 104

Example application

TCPIPSERVICE URIMAP PROGRAM PROGRAM PROGRAM DATABASE

Example application

PROGRAM PROGRAM PROGRAM DATABASE

slide-105
SLIDE 105

Installing resources, installs the application Installed resources control the application

Resource definitions

slide-106
SLIDE 106

PROGRAM resource

USE COUNT– how many times the program has been used NEWCOPY – reload the program into CICS

slide-107
SLIDE 107

Temporarily disable new requests Change the security profile

TCPIPSERVICE resource

slide-108
SLIDE 108

Resource definitions are used to install applications Resource definitions can also control applications

Summary

slide-109
SLIDE 109

Scaling a CICS application

Introduction to scaling

slide-110
SLIDE 110

Introduction to scaling

slide-111
SLIDE 111

Example application

Application Server: CICS Application: Book a holiday Program: Book Flight Program: Book Hotel Program: Book Holiday

slide-112
SLIDE 112

Example application

CICS region Application: Book a holiday Program: Book Flight Program: Book Hotel Program: Book Holiday

slide-113
SLIDE 113

Example application

CICS region Application: Book a holiday Program: Book Flight Program: Book Hotel Application: Book a cruise Program: Book Day Trip Program: Book Holiday Program: Book Cruise

slide-114
SLIDE 114

Enough is never enough

Running a region at maximum is not always optimum Single point of failure CICS applications can span multiple regions

slide-115
SLIDE 115

Example application

Application: Book a holiday Application: Book a cruise CICS region CICS region Program: Book Day Trip Program: Book Hotel Program: Book Holiday

slide-116
SLIDE 116

Configuration changes

REMOTESYSTEM attribute No program source code changes required Channel and containers are shipped to the remote region

slide-117
SLIDE 117

Summary

CICS can scale to run very large workloads Programs can be run across multiple CICS regions How to best split an application over multiple CICS regions

slide-118
SLIDE 118

Scaling a CICS application

Splitting an application into layers

slide-119
SLIDE 119

Applications split into layers Each layer provides a different capability Interface logic Business logic Each layer is a subset of programs

Application layers

slide-120
SLIDE 120

Interface logic

Interface Logic Business Logic

slide-121
SLIDE 121

Interface logic

Business Partner Business Logic Web Mobile

slide-122
SLIDE 122

Business logic

REST API Business Logic Web Web Service

slide-123
SLIDE 123

Naming conventions

WOR AOR WOR WOR

slide-124
SLIDE 124

Why split into layers

Different layers require different runtime characteristics Each request might spend more time in certain layers Each layer can be scaled independently

slide-125
SLIDE 125

Splitting the example into layers

CICS region Application: Book a holiday Program: Book Flight Program: Book Hotel Program: Book Holiday Business Logic Interface Logic

slide-126
SLIDE 126

Book a holiday – in two layers

Program: Book Flight Program: Book Hotel CICS region CICS region Business Logic Interface Logic Program: Book Holiday

slide-127
SLIDE 127

Example application

Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region CICS region Program: Book Holiday

slide-128
SLIDE 128

Example application

Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region CICS region Program: Book Holiday CMAS

slide-129
SLIDE 129

Example application

Program: Book Flight Program: Book Hotel CICS region CICS region Program: Book Holiday Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region CMAS

slide-130
SLIDE 130

Summary

Applications split into layers Each layer runs in one or more region CMAS can route work to any of the regions

slide-131
SLIDE 131

Scaling a CICS application

Scaling for resilience

slide-132
SLIDE 132

Scaling for resilience

Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region AOR WOR CICS region Program: Book Holiday

slide-133
SLIDE 133

AOR WOR

Scaling for resilience

Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region CICS region Program: Book Holiday CMAS

slide-134
SLIDE 134

AOR WOR

Scaling for resilience

Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region CICS region Program: Book Holiday CMAS

slide-135
SLIDE 135

Scaling for resilience

Program: Book Flight Program: Book Hotel CICS region Program: Book Flight Program: Book Hotel CICS region CICS region Program: Book Holiday

TCPIPSERVICE

CICS region Program: Book Holiday

TCPIPSERVICE

slide-136
SLIDE 136

Scaling for resilience

LPAR – single instance of z/OS A single mainframe can support multiple LPARs CICS can be distributed across LPARs

slide-137
SLIDE 137

Scaling for resilience

LPAR 1 CICS region CICS region CICS region CICS region LPAR 2 CICS region CICS region CICS region CICS region

slide-138
SLIDE 138

Scaling for resilience

LPAR 1 CICS region CICS region CICS region CICS region LPAR 2 CICS region CICS region CICS region CICS region

slide-139
SLIDE 139

Scaling for resilience

LPAR 1 CICS region CICS region LPAR 2 CICS region CICS region CICS region CICS region CICS region CICS region

slide-140
SLIDE 140

Single system image

CICS region CICS region Define / install / administer resource CICS region CMAS

slide-141
SLIDE 141

Summary

CICS applications scale across servers, operating systems and hardware Workload can be maintained during upgrading or system failure 99.999% reliability

slide-142
SLIDE 142

Summary

Course review

slide-143
SLIDE 143

Course review

CICS is an application server on z Systems Used by majority of Fortune 500 companies Runs mission critical applications

slide-144
SLIDE 144

Course review

CICS provides all the capabilities of an application server CICS can host applications consisting

  • f programs written in different

programming languages Single API allows programs to call and share data

slide-145
SLIDE 145

Course review

As your business scales so does your application with CICS CICS can provide resilience across many instances Single system image allows you to control all instances from a single interface

slide-146
SLIDE 146

Course review

CICS is an unparalleled mixed language application server Security, transactionality, management, monitoring are independent of programming language