`Chang et al.
`
`[11]
`[45]
`
`Patent Number:
`Date of Patent:
`
`4,768,150
`Aug. 30, 1988
`
`[54] APPLICATION PROGRAM INTERFACE TO
`NETWORKING FUNCTIONS
`
`[75] Inventors: Chij-Mehn Chang, Austin, Tex.;
`Thomas J. Freund, Winchester,
`England; Larry K. Loucks, Austin;
`Robert L. Wierwille, Leander, both
`of Tex.
`
`[73] Assignee: International Business Machines
`Corporation, Armonk, N.Y.
`
`[21] Appl. No.: 908,533
`[22] Filed:
`Sep. 17, 1986
`
`[51] Int. Cl.‘ .............................................. .. G06F 1/00
`[52] U.S. CI. ................................ .. 364/300
`[58] Field of Search ...................... .. 364/200, 300, 900
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,672,570 6/1987 Benken .............................. .. 364/900
`
`OTHER PUBLICATIONS
`An Introduction to Advanced Program-To-Program
`Communication, Jul. 1983, GG24-1584-0, IBM.
`IBM RTPC SNA Access Method, Aug. 1986.
`“Using System/36 Communications”, IBM Corpora
`
`tion, Order No. SC21-9082; pp. 9-1 to 9-22, pp. 10-1 to
`10*41 PP- Fl'lO.
`“Interactive Communications Feature: Base Subsys
`tems Reference”, IBM Corporation, Order No.
`SC21-9530; pp. l-28 to 1-38, pp. 4-17 to 4-40, PP- B-l
`to B-8.
`VTAM Programming, IBM Corporation, Order No.
`SC23-0115; pp. 3-32, 39-76, 77-152.
`DECnet/SNA VMS APPC/LU6.2 Programming In
`terface Guide, Digital Equipment Corporaion, Jun.
`1985, Order No. AA-ET91A-TE.
`IBM RT PC SNA Access Method Guide and Refer
`ence, IBM Corporation.
`Primary Examiner—Raulfe.B. Zache
`Attorney, Agent, or Firm-Marilyn D. Smith
`[57]
`ABSTRACT
`A system for, and method of, providing an interface to
`an application program for accessing networking func
`tions. The application program interface translates rou
`tines requesting networking functions to the operating
`system commands which contain facilities for accessing
`networking functions. In addition, the application pro
`gram interface externalizes the operating system com
`mands for use by the application program in accessing
`networking functions.
`
`34 Claims, 20 Drawing Sheets
`
`APPLICATION TRANSACTION PROORAII
`
`)
`
`SIAOPEII
`SIIACLSE
`SIAREAO
`SIIAIRIT
`SIIAOTL
`SIIADEAL
`SIIAL LOO
`
`APPLICATION PROORAI IIII'ER -
`HOE SERVICES
`
`28
`
`OFEII
`CLOSE
`REAO
`WRITE
`IOCTL
`REAOX
`IRITEX
`
`OPERATING svsm BALLS
`
`FILE svsm
`
`1_|
`
`|_z
`
`OPERATING SISTEII
`
`IO
`
`SIIA DEVICE DRIVER
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent A‘ug.30, 1988
`
`Sheet 1 0f 20
`
`4,768,150
`
`APPL I CATION PROGRAM
`
`A PI
`
`NETWORK ARCH I TECTU RE
`
`I40
`
`I 04
`
`2
`
`L08 ICAL UN I T
`SERVICES
`
`6 —|T PHYSICAL UN I T
`-
`‘ SERVICES
`
`7
`-
`
`OPERATING SYSTEM
`
`VRM
`
`| on
`
`DEVICE DRIVERS
`
`I/ 0 DEV ICES
`
`I 4
`
`IN
`
`FIG..4
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent A‘ug.30, 1988
`
`Sheet 2 of 20
`
`4,768,150
`
`APPL I CAT LON TRANSACTION PROGRAM
`
`SNAOPEN
`SNACLSE
`SNAREAD
`SNAWR IT
`SNACTL
`SNADEAL
`SNAL L00
`
`B
`
`APPLICATION PROGRAM INTER -
`FACE SERVICES
`28
`
`'
`
`OPEN
`CLOSE
`READ
`WRITE
`IOCTL
`READX
`WR l TEX
`
`OPERATING SYSTEM CALLS
`
`El LE SYSTEM
`
`OPERATING SYSTEM
`
`SNA DEVICE DRIVER
`
`42
`
`40
`
`45
`
`FIG. 2
`
`a‘
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent
`
`-Aug.30, 1988
`
`Sheet 3 0f 20
`
`4,768,150
`
`A
`
`B
`
`APPLICATION
`PROGRAM
`
`Is
`}/
`'
`c-—CONVER5ATION——.
`
`APPLICATION
`PROGRAM
`
`ATTACHMENT
`
`LOCICAL
`UNIT (LU)
`
`4?
`
`/‘
`“'SESS'°“""
`
`LOCICAL
`UNITILUI
`
`NETWORK
`ADAPTER
`
`{a
`H
`
`rcfivafiwiv:
`ATA LINK fl
`
`w
`
`?.
`3;;
`
`NETNORN
`ADAPTER
`
`ATTACHMENT
`
`
`3
`CONNECTION
`
`2 ‘
`
`F’I (3 .
`
`35
`
`Ruiz Food Products, Inc.
`
`EbeH1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent Aug. 30, 1988
`
`Sheet 4 of 20
`
`4,768,150
`
`EOE:
`
`
`
`
`
`min 522 :35: _
`
`
`
`“.Jf 2 2 :
`
`
`
`A 2:0 _ E: V E; 35 5;: Q2 _ EEO
`
`
`
`
`
`Q |
`
`is; 02 _ 2573
`2 2 5;
`
`2 £522
`
`
`
`.5223: .2535 f f z a
`
`‘v
`
`w;
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent
`
`m
`
`02rm5t
`
`051I}0067I)4
`
`w353::S%:33::
`0,325.25525215
`
`
`3a$25.23:2:MySEE:AI1
`2:23
`zo_P<o_4mm<
`
`>zozmx
`
`“mmsrrozmbmmmmmmmoc<>zozmz
`
`=<zuozm
`
`mm
`
`
`
`zm~m>maz_F<zmmo
`
`Ruiz Food Products, Inc.
`
`EXhi
`
`it 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent Aug. 30, 1988
`
`Sheet 6 0f 20
`
`4,768,150
`
`:25;
`
`2m 23 GE?
`
`i J\ m l .
`
`L
`
`
`
`2556.8 9562b“ ml“ 32:: 22;: w .250: 2222::
`
`
`
`
`
`
`
`2V8. wwv?mav? E: - u .22. £118 a _s :35
`:\.\ . V M I A N L
`
`fa r; f 2 F2 f ‘
`
`
`
`
`
`2% £53 .Q: :2: 220 5;; 25; :0
`
`l s 2 a B 2
`
`z
`
`.3 w;
`
`col
`
`5;
`
`s;
`
`
`
` a 55; 05:5“; i 2 2
`
`w . 0 _ n.
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent Aug. 30, 1988
`
`Sheet 7 0f 20
`
`4,768,150
`
`2551.
`
`
`
`mm 3:22 22;: .
`
`
`
`2 3 2 3 z
`
`
`
`z: - 0 Q: .5523 is 5:;
`
`“ A A J . I E 2 N w E 2
`
`
`
`
`
`
`
`1562; 23:6 _ In;
`
`2 w;
`
`¢ v w m a ‘
`
`a: .5558 .Q: :8 _ 3:; is; 3:53
`
`
`
`
`
`. am >
`
`M 2:22
`
`o * Q 2. is
`
`is; :55:
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 8 of 20
`
`4,768,150
`
`.U52:12;.335:»\.u:9.2
`
`:x\v5153:
`:23
`
`.57383:22:
`2~...AHmwuoolmmcwm
`t:
`E.
`
`:23:
`
`
`
`$8.?52;:”mmapupmkm
`
`
`
`mafia::5sz
`
`3:53:
`
`320$3;
`
`:5;3:22;:
`
`2
`
`£33:
`
`misc
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent
`
`8
`
`9twhS
`
`02pm.
`
`051O}867I}4
`
`
`3:325%33:12:;3:32:
`:20Am2:833:3:32882885
`19337:383
`
`.message2232:.We:32.3252
`
`W‘:23:32:
`
`\\€:9::32Iv:m:38.5m
`
`“3:95:Elgzzogurglsca8.:
`mS:oeoclslufltssclr51:20.:Eo
`
`:33:
`
`
`
`:13.3III.“manpozmhm
`
`3
`
`3:22:33:
`
`.250:
`
`22:32:
`
`2:2.53EC<IE5
`E:3:
`
`3.29:3;3:25:
`
`
`
`.35;3:25,;
`
`2332%
`
`“3:9
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`W1
`
`hS
`
`2.m01
`
`{nu7,4
`
`nuvE
`
`
`
`:mJEwo332m
`
`:55:
`
`
`
`
`
`
`
`om\._\:m.Emo”mmzkosmpmmum$222:52“:2:03:23:32“:
`
`
`
`
`
`
`
`
`
` a\\.mmzmwzafifl3:70E.255ng.23:22”Va3Ba
`
`
`
`”meH233:22;mv”uocs_:=*_co=a_m==
`
`
`
`:20M$2133::23:
`
`
`,gmN.
`0.9A$35;
`
`nxumy
`.1Vo
`
`w.is;3:23.;
`
`22:2:03;:
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`
`
`3:2:51:55:2:2:;5:;3:25.;
`
`
`
`
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent Aug. 30, 1988
`
`Sheet 11 0f 20
`
`4,768,150
`
`» .
`
`“in E2 “6:32;
`mggl?im t:
`
`:55:
`
`
`
`SA m M, M; w;
`
`I 2 S \\ . W, m w ¢ ¢ m
`
`
`
`
`
`. N \3: mummomb? A ti; E: 553335? _ 2.3 .55;
`
`
`
`om twig; 222:? Z 3 3 3 Z
`
`
`
`
`
`£\~\:m|3a $5525 a 3:2: :55: w 5:52: 22:; 3%:
`
`
`
`mm 3 2 2 :
`
`.@ w. W ‘ ‘
`
`
`
`2:: .1: a .E V :2: 3:; 5;; 2:252
`
`
`
`5;
`
`w]
`
`mI ‘
`
`a l
`
`‘ES; 02:55.3
`
`2 2 is
`
`a
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 12 of 20
`
`4,768,150
`
`>¢ozmz
`
`x<zwozm
`
`
`
`
`
`m44<ozmpm»muz_p<zwmo
`
`zo_b<o_4mm<
`
`
`
`smpw>maz_p<zw¢o
`
`fl2<2”
`
`wzm>Ea
`
`mo_>ma
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 13 0f 20
`
`4,768,150
`
`
`
`H2::8:32:
`
`.2::2:32;
`
`\\2V:mlotw
`837..
`
`:35:
`;\~\:mno:wHmEDHQDmHmmm3:22:33:2:50:2223:”:
`
`
`
`\\J:9::am:05Ext:2%ES:05;
`
`
`A32.xozmmlczmm5:2:3:3:5392:55;
`
`:5;@325;
`
`2$32:
`
`”3;:
`
`m..
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`8891
`
`02d41tMWhS
`
`I}4
`
`HI:
`
`[nu
`
`-\u1’nxU
`
`nnv
`
`
`
`mwmAone“$882.3:2M.5335;:30
`
`ES8:32:
`
`
`
`2::3:22;
`
`>zoxm=
`
`
`
`wm\v\:m1:e*“mzapozmkm
`
`:wIEESEE
`
`
`£2155
`
`
`
` :05:$\\\\.~E_9::“VE.
`
`2235222013.:
`mm3:22ESE:
`
`mmenenmm
`
`nmmmmmmmm
`
`
`
`
`
`2:2.zzglozmm5:3:2:3:5;92:53:
`
`:5;3:25,;
`
`we
`
`wzm>_xa
`
`mo_>ua
`
`.vv.
`
`Ruiz Food Products, Inc.
`
`EXMbH1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 15 of 20
`
`4,768,150
`
`22:32“:
`
`mmHE3:32;
`
`525135;2:
`
`:33:
`
`.:98
`
` 82$3\~\_EIGG”mmzhuzmpm
`
`av“08:3:22;
`
`:xxfku.J513:
`
`a”wmmxoo<>mcxm:
`
`.1252:
`
`
`
`2:2Jaimie2mm
`
`
`
`mi::5;uEmemo
`
`
`
`:5;3:5;me
`
`2:2:
`
`3;:
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 16 of 20
`
`4,768,150
`
`:55:
`
`
`
`
`
`Nm\.\:ml_ccv“#2:”;me$533:32:2532:23:22“:
`
`
`
`
`
`
`
`
`
`..v\oozl3%3.6.2:.
`
`VJ.2ocoolwmimt:“/328:92;
`
`32kW.:wSoc:23
`
`2,.xJ:9::ECUEE;‘52:
`
`
`
`
`
`
`
`2:2fizoojfiaECQEwig5;:02:53:
`
`
`
`:5;”325%
`
`22:2:
`
`”3:9
`
`*.
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 17 of 20
`
`4,768,150
`
`\8:8
`
`
`
`m__wlq_qy.fim.q_q
`
`noT~
`
`#0:.fim
`
`mA
`
`€2.332:ww||Z::452.;mmh.*#
`
`“EN.4:35:2%eaas
`
`“mmzbozmpm
`mmmmoo<
`
`>mozm2
`
`r.
`
`Vm
`
`wmm>_mo
`
`mo_>mo
`
`
`
`:mpw>moz_p<mwmo
`
`Ruiz Food Products, Inc.
`
`EXhi
`
`it 1017
`
`>moxmz
`wa.\\H\\.~Wlo:c“mmsfihoamwmmmwmmmoo<>¢oxmzx<moozmzo_p<o_amm<
`
`
`
`
`
`m
`
`u—NNNNNw-em
`
`Hoc_*-=q*|o>m
`mmvwammwu=a_
`
`mmmuvsccmace\\
`V25123BE;
`IN.czu
`..530
`
`um=o_m==
`
`mm
`
`.cav‘e\>:.o:q
`
`um:o_w==
`
`veeux_c>m.gSka:
`
`_m>o_uo:>m
`cocoaca
`uwcoucz
`cm=o_m:=
`
`H25432.33.
`“miéqa
`
`u¢=o_m:=
`
`cw=a_m==
`
`eavlrma>~lmmom
`uwcaa==
`
`Nu>m_
`cu=o_m==
`
`mauoouemcuw
`
`was
`
`#=_
`
`
`
`..M>=oow=o_>u_ac.o%c_..\n~.~.mu_.
`8%.5532E:2:mi:55302—25%
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`U S. Patent
`
`Aug. 30, 1988
`
`Sheet 18 0f 20
`
`4,768,150
`
`..I.f.m32:8:32;30~29}?
`
`
`..Noczlgmzz3:32;.4Nmfiévgrlmmmm3:22:
`
`
`3:325JHm28°5%3:32;IuREM55:83:32:
`
`
`MNmw:coioicfi3:325
`
`m:
`
`\..\.E;_8$95m23368t:
`
`m:E
`
`:JL1.A.m83:35mStarm38425813,?WE
`
`
`.thwEEIIEBE;.Eat:.EIESOEgg:azcaazizw
`m3:2228::
`
`
`.2m:o:m:mm.mm
`
`m;
`
`Going:825
`
`:32“:
`
`
`
`$75tango.”$3535
`
`
`
`3553.ESE:
`
`
`
`3m.252:zezezfi
`
`v2311:;SE:
`SE:825
`
`
`
`.N..:3:8:32;w5.523555:251:235:52
`
`
`
`
`
`
`
` 2:32;m"“:flmwwwufiwwwuwmnn2:232:53:JH3742.3123ch
`
`.SE
`
`8:22:6”ESJEESJEB22225|J”28-8038?»
`
`
`
`3:22.:2.“finuz:gm2E3:32:WSEES
`
`3::2.3032”3;:
`
`”of2338:2254.umuff32c23255Hocimdmz
`
`
`ifixscoolowsmt:
`.:S25%;;M
`Egdmfmzozz
`
`3.oi‘.
`
`Ruiz Food Products, Inc.
`
`EXhi
`
`it 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 19 of 20
`
`4,768,150
`
`0..-.-.
`......-..—..-.
`NN vw-w-vvq-va
`
`....-.....-.......
`erf‘o
`*
`
`.m3
`
`87%;:23%8.3.2;
`Nixroczlfizz3:32:
`
`a:25:83:22:
`
`37.227383:32;
`
`2.cogqo'cfi3:22:M,
`
`
`EJlflcoozo3:225
`:8:8:32:52:fSS:82%a:.vzmlojxoSE:
`83-23%8:32:W282338:32:
`.32:32;
`2:3:32.:
`C:.53.:4:555:;mi:$533:53.;
`
`5533:25,;
`
`.uuooudmccm
`
`62602123121533.2...
`
`
`
`fiECé.zzlmtm;5.2523.52.235:25
`
`
`
`:_r\/:m|o_lts“mmaoompm
`
`$53325::
`
`m;
`
`
`
`
`
`aNTS:26102;?Hump—023m
`
`:8sz
`
`v392:;SE;
`
`
`
`mmmmag23$:
`
`,a:
`2o:2:mm,
`
`
` 2Sm52::2222::
`
`22:18.28:5;2.22:.
`
`
`
`EEIESJZ;3:32:
`
`ngfiuufileéuocswgVi.23:5:25
`
`_wo2.92:.m:\..\cw>m.wocamca
`
`
`_8::.2.2.22:.
`acouiwmsm::
`
`.:=02\waao._m
`.=¢_I$Ew=u.=_
`
`:33*
`
`ml.
`
`252%
`
`“Sin
`
`mw.0.“—
`
`if»)
`
`Ruiz Food Products, Inc.
`
`EXhi
`
`it 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`uAA
`
`nnw3ca
`
`0091
`
`00
`
`02
`
`2d.
`
`{nu79‘41
`
`p‘d19nxu
`
`nnu
`
`nuwo_>me
`02_F<ZMlo%2s;
`mm=mFm>m
`
`|ml3:222;:52;2222::
`
`
`
`
`:35:
`
`2I:3.555
`
`flakywmvo_w44<o=mpm»maz_H<zmmo
`
`
`
`
`
`
`
`mmw>_mo
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`1
`
`4,768,150
`
`APPLICATION PROGRAM INTERFACE TO
`NETWORKING FUNCTIONS
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`filed Sept. 17, 1986 for a A
`Ser. No. 908,534,
`METHOD AND SYSTEM FOR AN APPLICA-
`TION
`PROGRAM TO
`COMMUNICATE
`THROUGH A NETWORK PROTOCOL, currently
`copending, and assigned to the same assignee as the
`present invention.
`FIELD OF THE INVENTION
`
`This invention relates to processing systems con-
`nected through networking, and more particularly to a
`processing system running an application program hav-
`ing access to networking functions.
`BACKGROUND ART
`
`FIG. 1 shows the layers of a typical processing sys-
`tem 1. The application program 9 runs on the operating
`system 10. All of the commands of the operating system
`10 that go to the devices 4 must go through the virtual
`resource manager 8 which includes the device drivers
`13. In order for a processing system 1 to communicate
`to other remote processing systems or other devices 2,
`the processing system must have an architecture 5 that
`defines the information flow through the network sys-
`tem. A typical network architecture 5 comprises a total
`description of the logical structure, formats, protocols,
`and operational sequences for transmitting information
`through the communication system.
`A typical network architecture 5 is called Systems
`Network Architecture (SNA). Systems Network Ar-
`chitecture (SNA) is a specification that formally defines
`the functional responsibilities for components of a data
`communications system, and specifies how those com-
`ponents must interact. In an SNA structure, all nodes,
`or linked elements follow these definitions.
`Systems Network Architecture has two components
`that control the operation of the local node in the net-
`work. One is the physical unit 7, the other is the logical
`unit 6. Each one of these components has a special
`assigned function in the network. Also, each of these
`components can be separately addressed by other mem-
`bers of the network.
`
`The physical unit 7 controls the physical resources of
`the node. Physical resources include the data links 14
`that connect the node to the network, storage, and
`input/output devices 4. All nodes in the network must
`have a physical unit.
`The logical unit 6 provides the interface to the net-
`work for the end user. It provides protocols that allow
`end users to communicate with each other and with
`other components in the network. A logical unit (LU) is
`classified according to the protocol that it implements.
`For example, the SNA protocol consists of unique envi-
`ronments for LU types 1,2,3, and 6.2.
`Logical Units 1, 2, and 3(LU1, LU2, LU3) communi-
`cate with a host in a primary-to-secondary relationship.
`The host computer, as the primary node, controls the
`data interchange between the two nodes. Specifically,
`the LU 1 protocol manages the input/output devices
`associated with the logical unit such as printers, card
`readers, storage devices, and operator consoles. The
`LU 2 protocol describes the protocol of an IBM 3270
`data terminal connected to the host. It provides key-
`
`5
`
`IO
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`2
`board input and display output. The LU 3 protocol
`describes the protocol of a printer connected to the
`host. It provides printed output. The LU 6.2 protocol
`provides advanced program to program communica-
`tions (APPC) for communications between two pro-
`grams on a peer-to-peer basis instead of in a primary-to-
`secondary relationship. More information about
`this
`protocol is found in IBM International Systems Centers
`An Introduction To Advanced Program-To-Program Com-
`munication (APPC) #GG24-1584-0, July 1983 which is
`herein incorporated by reference.
`A link session describes the physical hardware and
`supporting programs that allow a system to attach to a
`particular communications link 14. The link session
`includes the remote node 2, but only describes the phys-
`ical environment of the nodes. For example, a link ses-
`sion may be an adapter for hardware 4, cabling, and
`Synchronous Data Link Control (SDLC) software that
`enables a system to attach to a SDLC network.
`An SNA session defines the network path that links
`two logical units 6 in different nodes together to enable
`them to establish communications. An SNA session
`includes network addressing, the name of the remote
`program, and other descriptive information.
`A conversation is a pathway between two application
`programs that allows them to transfer information to
`each other. Two types of SNA conversations are a basic
`conversation and a mapped conversation.
`A basic conversation is a connection between two
`
`transaction programs that allows them to exchange
`logical records. This conversation type is used by ser-
`vice transaction programs and LUl, 2, and 3 application
`transaction programs.
`A mapped conversation is a connection between two
`transaction programs that allows them to exchange data
`records of any length and in any format specified by the
`transaction programs. This conversation type is used for
`LU 6.2 conversations only and is used primarily for
`application transaction programs.
`An application program interface (API) 3 is a mecha-
`nism by which a communications application program 9
`acquires use of the network protocol 5. The application
`program interface 3 is typically quite complex and con-
`tains details of the network protocol. In order to write
`extremely efficient application programs that provide
`high level networking services to a general class of user,
`the programmer requires direct interaction with, and
`intimate knowledge of the network protocols. Further-
`more, if the network protocols change, the application
`program must be rewritten to adjust to the changes.
`Deficient in the above is an interface to an application
`program for accessing networking functions. With the
`invention of this application is provided an application
`program interface which translates routines requesting
`networking functions to the operating system com-
`mands which in turn contain facilities for accessing
`networking functions. The interface further externalizes
`the operating system commands for use by the applica-
`tion program in accessing networking functions.
`SUMMARY OF THE INVENTION
`
`It is therefor an object of this invention to give an
`application program direct interaction with a network
`environment without requiring intimate knowledge of
`the network protocols.
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`3
`is a further object of this invention to isolate
`It
`changes in a network configuration from an application
`program.
`In furtherance of the objects of this invention an
`application program interface maps a set of subroutines
`to a corresponding set of operating system call func-
`tions. The application program interface comprises
`services that map specific requests for communication
`functions onto facilities provided by the operating sys-
`tem’s commands. The system of this invention further=
`more externalizes the operating system calls as an appli— -
`cation program interface.
`The application program interface of this invention
`allows transaction programs to establish a connection
`with one or more remote transaction programs,
`ex—
`change data with that program, and to disconnect from
`the remote transaction program.
`The interface comprises routines that are translated
`by an application program interface service to corre—
`sponding operating system calls. A first routine initial-
`izes a connection to a remote node. A second routine
`creates a conversation between the local transaction
`program and a transaction program at a remote node.
`To begin a data exchange with a remote program, a
`third routine is used to get data from a remote program,
`and a fourth routine is used to send data to the remote
`program. A fifth routine is used to monitor and control
`the conversation. A sixth routine dissolves the conver-
`sation between two transaction programs. A seventh
`routine ends the connection.
`
`The system and method of this invention also allows
`an application transaction program access to the Sys-
`tems Network Architecture through the application’s
`use of the operating system calls. The AIXl operating
`system calls
`comprise OPEN, CLOSE, READ,
`WRITE, IOCTL, READX, WRITEX. The OPEN
`command opens a resource. The READ and READX
`commands receive data from a remote transaction pro-
`gram. The WRITE and WRITEX commands sends
`data to a remote transaction program. The IOCTL
`command controls the data transfer between local and
`remote transaction programs. The CLOSE command
`closes a connection.
`“AIX is a trademark of International Business Machines Corporation.
`Both the routines and system commands comprise
`specific parameters that enable the routines and com-
`mands to perform the corresponding network function.
`The commands and routines typically comprise a pa-
`rameter that identifies the connection through a con-
`nection ID, a parameter that identifies a network func-
`tion request, and a parameter that points to a specific
`structure in memory.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`FIG. 1 shows a processing system connected to a
`network as known in the art.
`FIG. 2 shows an operating system for use with the
`interface of this invention.
`FIG. 3 illustrates a network environment.
`FIG. 4 shows the routine and command for opening
`a connection.
`FIG. 5 shows the routine and command for control-
`ling the data transfer between a local and remote trans-
`action program.
`FIG. 6 shows the request function for asking the
`remote transaction if the last transmission was success-
`fully received.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`4,768,150
`
`4
`FIG. 7 shows the request function indicating that the
`remote site received the last transmission without error.
`FIG. 8 sh0ws a request function that sends the data in
`the local LU buffer to the remote LU.
`FIG. 9 shows a request function that gets information
`about a specified conversation.
`FIG. 10 shows a request function for getting informa-
`tion about a current link and session.
`FIG. 11 shows a request function for notifying the
`remote LU that the local LU needs to change the con-
`versation direction so the local LU can receive from the
`remote LU.
`
`FIG. 12 shows a request function for notifying the
`remote LU that the local LU needs to change the con«
`versation direction so the local LU can send to the
`remote LU.
`
`FIG. 13 shows a request function for informing the
`remote transaction program that the local transaction
`program has detected an error in the information that it
`received from the remote program.
`FIG. 14 shows a request function that sends an FM
`header to the remote LU.
`FIG. 15 shows a request function that sends status
`information about devices on the local session to the
`host program.
`FIG. 16 shows a subroutine and a command for re-
`moving the allocation of the specified conversation
`from the local transaction program.
`FIG. 17 shows a subroutine and a command for creat-
`ing a session and conversation between two transaction
`programs.
`FIG. 18 shows a subroutine and command for receiv-
`ing information from a conversation.
`FIG. 19 shows a subroutine and command for send-
`ing data to a remote program,
`FIG. 20 shows a subroutine and a command for clos-
`ing a connection.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`FIG. 2 illustrates the use of the application program
`interface 20 of this invention in a processing system 1
`having an operating system 10. The operating system 10
`has a device driver interface 15 to Systems Network
`Architecture. The device driver 15 is accessed through
`the file system 12 of the operating system through the
`operating system calls 11. Accessing SNA through a
`device driver 15 within an operating system 10 is fur-
`ther disclosed in the commonly assigned, co-pending
`US. application Ser. No. 908,534, “A Method and Sys-
`tem for an Application Program to Communicate
`Through a Network Protocol”, filed Sept. 17, 1986,
`which is hereby incorporated by reference. However,
`the application program interface 20 of this invention is
`applicable to other systems accessing a SNA protocol,
`also.
`
`The interface 20 of this invention allows an applica-
`tion program 9 to either issue subroutines 21-27 or to
`issue system call commands 31-37 when accessing a
`network protocol. If subroutines 21—27 are issued, the
`application program interface service 28 translates the
`subroutines 21—27 into one of the corresponding system
`calls 31-37.
`FIG. 4 through FIG. 20 illustrates the commands and
`routines in an application program interface for access-
`ing networking functions. A general description of the
`commands, routines, and the corresponding parameters
`is as follows. A more detailed description of the com-
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`4,768,150
`
`6.
`eter “c_type” 57 specifies a character constant that
`indicates the conversation type.
`Referring to FIG. 6, the CONFIRM request parame-
`ter 61 on the “snactl” subroutine 25 and the “ioctl”
`
`command 35 asks the remote transaction program 9B
`(FIG. 3) to tell whether the last transmission was suc-
`cessfully received. The remote transaction program 9B
`(FIG. 3) must respond with one of two requests, CON-
`FIRMED 62 or SEND_ERROR 68.
`The CONFIRM request 61 on “snactl” 25 and “ioctl”
`35 has the structure of type “conf_str” 73 as shown in
`memory 38. The “sense—code” parameter 74 specifies a
`variable that contains the sense code to be reported to
`the remote session. The “rid” parameter 75 specifies the
`resource ID.
`
`10
`
`15
`
`5
`mands, routines, and the corresponding parameters is
`found in IBM RT PC SNA Access Method Guide and
`Reference which is herein incorporated by reference.
`The IBM RT PC SNA Access Method Guide and Refer-
`ence has been published, and is currently available, as
`SNA Services Guide and Reference, IBM Corporation,
`order number SC23-0814. This manual provides addi-
`tional information for using the commands, routines,
`and parameters in the different LU environments, such
`as LUl, LU2, LU3, and LU6.2.
`Referring to FIG. 3 and FIG. 4, to open a connection
`18 (FIG. 3) between a local transaction program 9A
`(FIG. 3) and a remote transaction program 9B (FIG. 3)
`the application 9 issues either a subroutine referred to as
`“snaopen” 21, or the system call command OPEN 31. If
`the subroutine 21 is issued, runtime services (RTS) 28
`translates the subroutine 21 to the OPEN command 31.
`
`The “snaopen” subroutine 21 includes a resource pa-
`rameter 41 that specifies a connection profile name of
`the resource to be opened. The OPEN command 31
`includes a “path” parameter 42 and an “oflag” parame-
`ter 43. The “path” parameter 42 also specifies the re-
`source to be opened by specifying the SNA device
`driver name to be used to open the resource, and by
`specifying the connection profile name of the resource
`to be opened. If the “snaopen” subroutine completes
`successfully, it returns an integer that specifies the con-
`nection ID (cid) for the connection 18 (FIG. 3). Like~
`wise, if the OPEN command 31 completes successfully,
`it returns an integer that specifies the file descriptor (fd)
`for the connection 18 (FIG. 3).
`With reference to FIG. 5, the “snactl” subroutine 25
`and the “ioctl” command 35 provides control functions
`for transfer operations between a local 9A (FIG. 3) and
`a remote transaction program (9B). The control func-
`tion is specified by the request (req) parameter 51, 52
`and may be one of the following: CONFIRM 61, CON-
`FIRMED 62, FLUSH 63, GET_A'ITRIBUTE 64,
`GET_STATUS 65, PREPARE_TO_RECEIVE 66,
`REQUEST_TO_SEND 67, SEND_ERROR 68,
`SENDgFMH 69, and SEND__STATUS 70. The
`“ioctl” command 35 has the additional two requests
`ALLOCATE 71 and DEALLOCATE 72.
`The parameters of the “ioctl” command 35 include
`“fd” 54, “req” 52, and “arg” 56. The parameter “fd” 54
`specifies the variable that contains the file descriptor
`returned by the OPEN system call 31 as described in
`co-pending US. application Ser. No. 908,534, “A
`Method and System for an Application Program to
`Communicate Through a Network Protocol”,
`filed
`Sept. 17, 1986. The parameter “req” 52 specifies the
`function to be performed. The “arg” parameter 56 is an
`integer that can be used to specify either the variable
`that contains the resource i.d. (rid) returned by the
`“ioctl” ALLOCATE system call, or a pointer to a
`structure that contains additional input parameters for
`the requested function 52.
`The parameters of the “snactl” command 25 include
`“cid” 53, “req” 51 , “arg” 55, “c_type” 57. The “cid”
`parameter 53 specifies the variable that contains the
`connection ID returned by the “snaopen” subroutine
`21. The parameter “req” 51 specifies the function to be
`performed. The parameter “arg” 55 specifies the vari-
`able that contains one of the following (which depends
`on the function performed as specified in the request
`field): the resource ID returned by the snalloc com-
`mand, or a pointer to a structure that contains additional
`input parameters for the requested function. The param-
`
`25
`
`30
`
`35
`
`Referring to FIG. 7, the CONFIRMED request 62 is
`a response to the CONFIRM request 61 (FIG. 6) indi-
`cating that the remote site (B FIG. 3) received the trans-
`mission without detecting any errors. The parameter
`20 5s
`arg” 55, 56 for this request specifies the resource ID
`for the conversation that was returned by the ALLO-
`CATE request for the conversation.
`Referring to FIG. 8, the FLUSH request 63 sends any
`information in the local LU (6A FIG. 3) send buffer to
`the remote LU (68 FIG. 3). The LU normally buffers
`the data from “WRITE” calls or “snawrit” commands
`until it has enough data to transmit. Using this request,
`the local program 9A (FIG. 3) forces the local LU 6A
`(FIG. 3) to transmit the data in the buffer. The local
`program 9A (FIG. 3) can use this request to decrease
`the delay required to get the data to the remote system
`(B FIG. 3).
`The “arg” parameter 55, 56 points to the structure of
`type “flush_str” 76 in the memory 38. The “flush_.str”
`structure 76 contains the input parameters for the
`FLUSH request 63. The “end_.chain” parameter 77
`specifies whether or not to send the buffer with the end
`chain indication. The program specifies this parameter
`as a 1 to complete a chain. To flush the send buffer
`without completing the chain, the program specifies
`this parameter as a 0. The “sense_code” parameter 74
`specifies a field that receives indications of errors that
`occurred on previously sent data.
`Referring to FIG. 9 the GET_ATTRIBUTE request
`64 gets information about a specified LU6.2 conversa-
`tion. The parameter “arg” 55, 56 for this request is a
`pointer to a structure of type “attr_str” 79 which con-
`tains the input parameter “rid” 75, and receives the
`output information from the request. The “attr..str”
`structure 79 as shown in the memory 38 receives output
`from the GET_A'ITRIBUTE request 64 for
`the
`“snactl” subroutine 25 and the “ioctl” commands 35.
`Referring to FIG. 10, the GET_STATUS request 65
`gets information about the current link (14 FIG. 3) and
`session (17 FIG. 3), as well as the unprocessed image
`from the BIND for the LU—LU session. The parameter
`“arg” 55, 56 for this request is a pointer to a structure of
`type “gstat_str” 80 which contains the input parameter
`“rid” 75, and receives the output status information
`from the request. The “gstat_str” structure 80 as shown
`in the memory 38 provides current link information and
`session information in response to a GET_STATUS
`request 65. The parameter “status” 81 specifies the cur-
`rent status of the physical and logical link. The parame-
`ter “rtn_image” 82 when set indicates that the BIND
`image associated with the session should be returned in
`the buffer pointed to by “image._ptr”. The “ima-
`ge_len” parameter 83 either contains the maximum
`
`45
`
`50
`
`55
`
`65
`
`Ruiz Food Products, Inc.
`
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`4,768,150
`
`7
`amount of BIND image data in bytes that can be re-
`turned by the request when the GET_STATUS 65 is
`issued, or, contains the actual amount of BIND image
`data in bytes that was returned when the request is
`complete. The “image” parameter 84 specifies a pointer
`to the buffer area in which the Bind image data is to be
`stored.
`
`the PREPARE_TO_RE-
`Referring to FIG. 11,
`CEIVE request 66 notifies the remote LU (6B FIG. 3)
`that the local LU (6A FIG. 3) has changed the conver-
`sation (16 FIG. 3) direction so that the local LU (6A
`FIG. 3) can begin receiving from the remote LU (6B
`FIG. 3). The structure “prep..str” 85 provides addi-
`tional parameters for the PREPARE_TO_RECEIVE
`request 66. The structure 85 is as shown in memory 38.
`The parameter “type” 86 specifies the type of request to
`be performed for this conversation. The “sense_code”
`parameter 74 specifies a field that receives indications of
`errors that occurred on previously sent data.
`Referring to FIG. 12, the REQUEST—TO-SEND
`request notifies the remote LU that the local LU needs
`to change the conversation direction so that the local
`LU can begin sending to the remote LU. The parameter
`“arg” specifies the resource ID “rid” 75 for the conver-
`sation.
`
`Referring to FIG. 13, the SEND-ERROR request
`68 informs the remote transaction program (9B FIG. 3)
`that the local transaction program (9A FIG. 3) has
`detected an error in the information that it received
`from, or sent to, the remote program. The parameter
`“arg” 55, 56 for this request is a pointer to a structure of
`type “erro_str” 87 which contains the input parameters
`for the request. The structure for “erro_str” 87 is as
`shown in the memory 38. The “rid” parameter 75 is the
`only parameter used for a mapped conversation. For a
`basic conversation. the parameter “type” 86 specifies
`the level of error that is being reported as either an
`application program (9A, 9B FIG. 3) produced the
`error, or the LU services (6A, 6B FIG. 3) produced the
`error. Also for a basic conversation, the parameter “sen-
`se_code” 74 specifies a variable that contains the sense
`code to be reported to the remote session.
`Referring to FIG. 14, the SEND_FMH request 69
`sends the FM header to the remote LU (6B FIG. 3).
`The “arg” parameter 55, 56 is a pointer to a structure of
`type “fmh..str” 88 which contains the input parameters
`for the request 69. The structure for “fmh_str”