no integration without tiers l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
No Integration Without Tiers PowerPoint Presentation
Download Presentation
No Integration Without Tiers

Loading in 2 Seconds...

play fullscreen
1 / 49

No Integration Without Tiers - PowerPoint PPT Presentation


  • 103 Views
  • Uploaded on

No Integration Without Tiers. Brock Shaw Torridon Associates. Objective. To look at the opportunities for distributed application integration using IDMS. Consider the alternative strategies available and where these should be used.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'No Integration Without Tiers' - orsin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
no integration without tiers

No Integration Without Tiers

Brock Shaw

Torridon Associates

objective
Objective
  • To look at the opportunities for distributed application integration using IDMS.
  • Consider the alternative strategies available and where these should be used.
  • Examine the three most common protocols from the designer and the programmers perspective.
topics
Topics
  • What is Integration
  • What are the technology options
  • Issues of integration
  • SQL Call interfaces (ODBC/JDBC)
  • Message Queue Processing (MQ)
  • Program to Program interfaces (TCP/IP)
  • Summary
no integration without tiers4
No Integration without Tiers

Client

Server

Mainframe

Midrange

types of integration
Types of Integration

Client

Server

Mainframe

Midrange

sql level client
SQL Level (Client)

Client

Server

ODBC

Mainframe

Midrange

sql level server
SQL Level (Server)

Client

Server

Internet

ODBC

Mainframe

Midrange

transaction streams
Transaction Streams

Client

Server

Posting Transactions

AppA

AppB

Mainframe

Midrange

program to program
Program to Program

Client

Server

Send & Receive

PrgA

PrgB

Mainframe

Midrange

program to program10
Program to Program

Client

Server

PrgA

PrgB

Mainframe

Midrange

program to program11
Program to Program

Client

Server

PrgA

PrgB

Mainframe

Midrange

the integrated it world
The Integrated IT World

Client

Server

Mainframe

Midrange

the technology available
The Technology Available
  • ODBC
  • JDBC
  • MQ Series
  • LU6.2
  • TCP/IP
  • SNA
  • VTAM

odbc jdbc
ODBC/JDBC
  • “Open” protocol for real-time DB access
  • ODBC built as general SQL access tool
  • JDBC equivalent for Java
  • Windows or J2EE support
  • The Calling Program issues an SQL request
  • Request is linked to a “Data Source”
  • Response from request as normal SQL
  • Synchronous
mq series
MQ Series
  • A Message
  • A Message Queue (Named Entity)
  • Initiating task “Pushes” message on queue
  • MQ Software handles all delivery issues
  • Receiving task “Pops” message from queue
  • Asynchronous (usually)
tcp ip
TCP/IP
  • Compare APPI and LU6.2
  • TCP/IP and sockets are simpler
  • Initiating task connects and sends
  • Receiving task confirms and receives
  • Message is internally free-format
  • Receiver unrestricted in message handling
  • Synchronous or Asynchronous
issues for design
Issues for Design
  • Synchronicity
  • Real-time vs Pseudo-converse
  • Processing latency
  • Recoverability
  • Coordinating Commits
  • Process efficiency
design case 1 sql processing
***Design Case 1***SQL Processing
  • Program seeks to have direct access to a DB through an SQL command.
  • Single record processing
  • Multi-record processing
  • Efficiency requires maximising each call
  • What is the call really accessing
sql request architecture
SQL Request Architecture
  • All calls are based on Dynamic SQL
non sql idms using sql
Non-SQL IDMS using SQL

Define SQL version of the network schema

Take a non-SQL record e.g. CUSTOMER

Create SQL Select

CREATE SCH CREATE SCHEMA sqlname FOR NONSQL SCHEMA disctnam2.schmname;

SELECT * FROM customer WHERE customer_id = “ABC Corp”;

maximising sql power
Maximising SQL Power
  • Design access for probable need
  • Minimise number of calls for a process
  • Make access efficient for non-SQL
  • Normal database efficiency issues
  • Avoid non-SQL by going Network
table procedures and quickbridge
Table Procedures and QuickBridge
  • Define a Table Procedure
  • Receiving Program Parameter List

CREATE TABLE PROCEDURE schmname.table_name ( <normal table element definitions> );

IDENTIFICATION Division

. . .

PROCEDURE DIVISION USING

<same list of element definitions> .

. . .

table procedure logic
Table Procedure Logic

SQL Request

QuickBridge template

(USING parameter list)

BIND RUN-UNIT

.

.

.

OBTAIN …

.

.

.

FINISH

Virtual Table

designing transactions
Designing Transactions
  • Minimise SQL calls
  • Preload data where possible
  • Minimise setup times
  • Make Table Procedures to handle DML
  • Ensure SQL compatibility of the network schema
programming concerns
Programming Concerns
  • Each environment has a protocol to package an SQL call for the ODBC processor.
  • Call, class method or graphical
  • Simple SQL handled within IDMS
  • Table procedure template (QuickBridge)
  • Error response of a Table Procedure must match that of a real SQL call
design case 2 transaction streams
***Design Case 2*** Transaction Streams
  • This is like feeding a batch process
  • One message at a time
  • Where is it likely to be found?
  • Not time critical (i.e. synchronous)
  • Pushing a message onto a queue
  • Popping a message off a queue
  • Asynchronicity
mq architecture
MQ Architecture

App A

Message

Local

Queue

Message

Message

Message

Message

Message

Message

MQ Routing Information

Message

Message

Message

Remote

Queue

Message

Message

Message

Message

App B

Message

mq calls
MQ Calls

The calls in the MQI can usefully be grouped as follows:

| MQCONN, MQCONNX, and MQDISC | Use these calls to connect a program to (with or without | options), and disconnect a program from, a queue manager. Writers of CICS for MVS/ESA programs or OS/400 programs do not need to use these calls. However, you can use them if you want your application to be portable to other platforms.

MQOPEN and MQCLOSE Use these calls to open and close an object, such as a queue.

MQPUT and MQPUT1 Use these calls to put a message on a queue.

MQGET Use this call to browse messages on a queue, or to remove messages from a queue.

MQINQ Use this call to inquire about the attributes of an object.

MQSET Use this call to set some of the attributes of a queue. You cannot set the attributes of other types of object.

| MQBEGIN, MQCMIT, and MQBACK | Use these calls to start and commit a global unit of work (where | coordination is performed by MQSeries) and indicate to the queue | manager that all messages put or retrieved as part of a unit of | work since the last syncpoint are to be backed out.

The MQI calls are described fully in the MQSeries Application Programming Reference manual.

programming mq
Programming MQ

MOVE MQMT-REQUEST TO MQMD-MSGTYPE.

MOVE MQCI-NONE TO MQMD-CORRELID.

MOVE MQMI-NONE TO MQMD-MSGID.

MOVE W02-TEMPORARY-Q TO MQMD-REPLYTOQ.

MOVE SPACES TO MQMD-REPLYTOQMGR.

MOVE 5 TO MQMD-PRIORITY.

MOVE MQPER-NOT-PERSISTENT TO MQMD-PERSISTENCE.

COMPUTE MQPMO-OPTIONS = MQPMO-NO-SYNCPOINT +

MQPMO-DEFAULT-CONTEXT.

MOVE LENGTH OF CSQ4BIIM-MSG TO W03-BUFFLEN.

*

CALL 'MQPUT' USING W03-HCONN

W03-HOBJ-INQUIRY

MQMD

MQPMO

W03-BUFFLEN

W03-PUT-BUFFER

W03-COMPCODE

W03-REASON.

IF W03-COMPCODE NOT = MQCC-OK

mq and dc
MQ and DC

MQ

IDMS-DC

Prg 1

Prg 2

mq and dc32
MQ and DC

MQ

IDMS-DC

DCMQ

Handler

Prg 2

Prg 1

mq and ucf cics
MQ and UCF/CICS

IDMS-UCF

MQ

CICS

CICSMQ

Handler

mq and dc queues
MQ and DC Queues

IDMS-DC

MQ

Batch DC

GET QUEUE

.

.

.

PUT QUEUE

MQPUT

DCRUN

issues of mq
Issues of MQ
  • Audit issues (Did message arrive?)
  • Commit issues (like 2PC)
  • MQ has robust error handling
  • “Somebody Else’s Problem”
  • Asynchronicity
design case 3 program to program
***Design Case 3*** Program to Program
  • Two co-operating processes
  • Really more like peer to peer
  • Passing data or messages
  • Using data to trigger secondary processes
  • Getting feedback on results
  • Each process operates within its own view
  • Problem: coordinating recovery
tcp ip architecture
TCP/IP Architecture

Linux

TCP/IP

Socket API

Task A

Port 1

Task B

Port 2

CICS

IDMS

Advantage CA-IDMS region

functional view
Functional View

Initiator

Listener

Process

A

Process

B

Create socket

Bind

Listen

functional view39
Functional View

Initiator

Listener

Process

A

Process

B

Create socket

Connect

Accept

Send

Receive

Receive

Send

Close

Close

pseudo conversations
Pseudo Conversations

Initiator

Listener

Process

A

Process

B

Create socket

Connect

Accept

Send

Receive

(Setup Listener)

Close

(Process data)

pseudo conversations41
Pseudo Conversations

Listener

Initiator

Process

A

Process

B

Create socket

Connect

Accept

Send

Receive

Close

Close

(Process data)

its good to talk
Its Good to Talk
  • Where application programs talk directly
  • Functional orientation
  • Synchronicity
  • Pseudo-conversations
  • Interface independent of data structure
  • Recovery and commit issues
programming tcp ip
Programming TCP/IP

IF ( SOCKET(

SOCKET-FUNCTION-WRITE

SOCKET-RETCD,

SOCKET-ERRNO,

SOCKET-RSNCD,

SOCKET-LISTENER-SOCKDESC,

BUFFER-ARRAY(WK-SUBSCRIPT),

WK-LENGTH,

RETLEN) NE 0)

THEN DO.

WRITE TO LOG

MESSAGE TEXT = 'TCPADSL1: WRITE ERROR'.

CALL TCPERROR.

CALL TCPCLOSE.

LEAVE ADS.

END.

best solution examples
Best Solution Examples?
  • Windows app wants to check stock level
  • Web app wants to do a complex update
  • Updates need to be applied to other DB
  • Access to “foreign” system required
  • Load balancing required for back-end
  • Cooperating processes - different platforms
choice of technology
Choice of Technology
  • Horses for courses
  • Define the applications requirements:
    • Platforms involved
    • Best platform for a function
    • Synchronicity requirements
    • Latency tolerance
    • Recoverability
    • Platform synchronisation (like 2PC)
objectives revisited
Objectives Revisited
  • To look at the opportunities for distributed application integration using IDMS.
  • Consider the alternative strategies available and where these should be used.
  • Examine the three most common protocols from the designer and the programmers perspective.

conclusion
Conclusion

Client

Server

IDMS will survive

only if it works well

in this context!

This is our

IT World!

Mainframe

Midrange

conclusion48
Conclusion

Client

Server

If we don’t embrace these

changes, the IT world may

just look like this.

Midrange