`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 0f20
`
`4,768,150
`
`A
`
`B
`
`APPLICATION
`PROGRAM
`
`16
`
`b
`o— CONVERSATION ——»
`
`APPLICATION
`PROGRAM
`
`LOGICAL
`UNIT (LU)
`
`o—SESSION —#
`
`LOGICAL
`UNIT (LU)
`
`(7
`
`NETWORK
`ADAPTER
`CARD
`
`et
`
`BD rete
`
`fe
`vs
`
`NETWORK
`
`ATTACHMENT
`
`18
`
`CONNECTION
`
`FIG.
`
`3
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`US. Patent Aug. 30, 1988
`
`Sheet 4 of 20
`
`4,768,150
`
`EOE:
`
`
`
`
`
`min :35: _ 522
`
`
`
`“.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
`
`
`
`U.S. Patent
`
`Aug. 30, 1988
`
`Sheet 5 of 20
`
`4,768,150
`
`AUOWIN
`
`Idd¥
`
`“JUNLINYLS
`
`SSaudgyAYONIN
`J1VI011VI0él
`JLVOOTIVi
`§SALYLSQN3S
`youdsON3S
`£|Svs”139J|aLnaldliy”139JHSTY|NINOJ|WUNOD|
`
`WVYOOUdNOLLVOI
`
`WILSASONILVY3d0
`
`6£
`
`(av
`
`Pan
`11901
`
`HW4ONIS
`
`£4
`
`Ruiz Food Products, Inc.
`Exhibit 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
`
`
`
` ‘>UlDyopuepaublsung"plsBuoyoe}AySYsnjy
`yonays
`
`
`
`“Ch:pasapoubisun
`ayl‘{neepodasues
`jul
`bl.
`
`[ado
`
`LS
`
`QLFSTYSN}YFUNLONYLS
`
`6¢SSiuddyANOWIN
`
`
`
`WVUDOUdNOLLVOITdd¥
`
`96£9&Ge
`
`(QUsm|‘oa11901
`
`S11¥0WILSASONILVYSdO
`
`
`
`WALSASONIL¥USd0
`
`&I
`
`SHAAN
`
`J01A30
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`aenea
`dS”J}}DpoNsys jG6lL——~ASTAD=FYNITONYLS
`
`6¢SSANddYAYONIW
`
`Tdd¥
`ONILVHdd0 WVYIOUd
`
`
`
` y©FG]4040]91109UO1}DSIBAUODIDY9
`
`
`
`
`‘[gy)ewpunypaljijonbAjjnysauydspyo
`
`
`
`"7gy)auipunypalzijonbA\jny-umo,syd
`
`‘pidHuo]
`
`AYOWIN
`
`NOILVOI
`
`U.S. Patent
`
`Aug.30, 1988
`
`Sheet 9 of 20
`
`4,768,150
`
`tt
`
`
`snyojsuuodpaubisun‘[6]ewouspow
`
`sDyd
`
`
`
`
`
`:2
`
`‘|
`
`
`
`t:passpaubisun
`
`
`
`
`
`j9Aa|Adanogaspaubisun
`
`
`
`jaaa,ouspaubisun
`
`(Ouv
`
`
`
`
`
`
`
`
`
`‘Jingiliy1399oa)|11901S11¥9WILSAS
`
`
`
`WALSASINILV¥Ydd0
`
`aSUFAlu
`
`JOIAAG
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 10 of 20
`
`4,768,150
`
`
`
` t.”"}°abpw!ujspaublsun7‘snyo4sjul
`
`‘pisGuo]
`
`
`
` idjspojsBhyondys
`
`ms8‘ebowi,1oyo
`
`
`AYOWIN
`0844S4DISh-JYNLONYLS|BESSayddYAYONINWYY90UdNOILVOITdd¥
`
`
`
`
`
`
`
`
`
`(ouV]‘SMLVLS13904)11901ST1VOWILSASONILYYRd0
`
`
`
`‘G):pastpoubisun
`
`
`
`‘ua;abou!;soysn
`
`
`
`WILSASONILVUId0
`
`£Y SuaAtNd
`
`JO1AI0
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`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: 2.3 .55; 553335? _
`
`
`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
`
`
`
`Aug. 30, 1988
`
`NOLLVOT1dd¥
`
`WVUSONd
`
`
`
`STIVOWILSASINILV49d0
`
`cradNS
`
`WAISASINIL¥YId0
`
`US. Patent
`
`Sheet 12 of 20
`
`4,768,150
`
`
`
`
`
`SHFATYC
`
`491A50
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`U.S. Patent
`
`Aug.30, 1988
`
`Sheet 13 of 20
`
`4,768,150
`
`98
`
`
`
`LQ-%—JjS0119-FYNLINYLS|GESS3NGdYAYONIH
`
`NOILVIETdd¥
`
`
`
`‘gp:/passpaubisun
`‘,<SadAypauBblsunPoaeuas
`
`b]‘plsBuoy
`jul
`ie>44SOdsa
`Jondys
`(94¥|“YOUNGNaS
`
`aa)|1190
`WVY90Ud
`
`AYOWIN
`
`
`
`WIISASINITLVYIdO
`
`
`
`etSUdALYC
`
`JdIAIG
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 14 of 20
`
`4,768,150
`
`
`
`‘ph>passapaubisun
`
`
`
`‘2:adh}paubisun
`
`GL}djs"yw}yonays
`
`!apooasuasur06ppp-ywyyJpya
`
`Tdd¥
`ageAJSYW)FFYUNLONYIS|GESSINGdVAYONINWVUIOUdNOLLVOI
`
`
`
`
`
`
`
`
`(QUV]“HW4QNJS|ayn|s901ST1V¥9WALSASONILVY3d0
`
`
`
`WAHLSASINILVYId0
`
`tb
`
`SUAAING
`
`JOIAAO
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 15 of 20
`
`4,768,150
`
`AYOWIN
`
`
`
`16—2%—JISDIS“4FYNLINYIS|GESSIXCQYAYOWIN
`
`‘bp:adh}paubisun
`
`£g:pipoubisun
`-plaGuo]9046)5bJISJD4S
`
`fapooasuesjul
`fonsys
`(94|“SNLVLSGN3S
`
`Tdd¥
`
`
`
`WVUI0UdNOLLVOI
`
`
`
`
`
`ST1VOWALSASONILVYId0
`
`
`
`WILSASQNILVY3d0
`
`SUAAIYO
`
`JI1AI0
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`Sheet 16 of 20
`
`4,768,150
`
`US. Patent
`
`Aug. 30, 1988
`
`AYOWIN
`
`Tdd¥
`
`26-2ssjoap“JUYNLINYLS|GESsayadvAYOWIN
`
`ty“ByejDeppaubisunIAegi_paubisun
`
`
`v6!piaDuo}eg}14S"|pap
`blaparajul
`
`‘2p“passpaublsun
`jonays
`(9uv|‘31V9071VI0os)|11001
`
`
`‘usd|‘aian|avaowns:
`
`ST1VIWIISASONTLVYad0
`
`WVU90UdNOILVOI
`
`WALSASONILVUdd0
`
`£&9¢
`
`fFougnia
`
`JIIAA0
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 17 of 20
`
`4,768,150
`
`
`
`
`
`
`
`
`
`66>“(g9}Ud}
`}16JsO|}oyonsys
`
`‘[6]ewouapows
`
`AYOWIN
`-13AU09SNOlAaIdD40}Plt,/oy‘9podasuas2Pasi
`
`96—r—JISO1]0“FYNLONYLS|GESSIddYAYONIWWVY9I0NdNOLLVOITdd¥
`
`
`
`
`
`
`
`
`
`(ouv]“31¥9071¥0a)|11901STIVOWILSASONELVHSd0
`
`/,WOlsDs
`
`~wNNNAN A we we
`
`
`‘wnu-gns
`
`
`
` fulgS}attLO0bJys~didjonjjs
`
`“JUNLONYLS
`SS3ydqV
`
`AYOWIW
`
`00-2Ajiioud
`
`poubisun
`
`Lore}PASJ
`
`jana}~ouds
`paubisun
`peubisun
`
`9g2adh}
`paubisun
`
`:0hang}7nogad
`257)€0b-2tdid
`
`
`peubisun
`
`poubisun
`
`pObadjssas
`paubBisun
`
`
`
`ays-did,44sdid
`
`S0h4
`
`poubisun
`
`Buoy
`
`jul
`
`jonas
`
`“4
`
`:HojyudyoAs
`
`
`paubisun
`
`-4IDYD
`
`86
`
`[94]D}Op-qns4pY97Borat{‘{$9]
`
`
`
`WALSASINILVYId0
`
`yéSUFATHA
`
`JO1AIG
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 18 of 20
`
`4,768,150
`
`
`
`_gpanleoedpuas0}jSanbe.jul
`
`‘ouul
`
`
`
`
`
`2hh~———~_$NOTdad=FFJYNLONYIS
`
`
`
`jno~podsyondys
`
`AYOWIA
`
`ehh
`
`
`ty:iesw4}juoopaublsun
`
`ty:6a}D90||Deppoubisun
`
`‘2:Shvou}doUdipaubisun
`tho:021adKj-ojDappaubisun
`
`
`
`
`
`
`JONIYS pndulyona4s;A}S-O174XO
`
`
`
`ssas‘9Ho;-ysniy‘}*¢zp-r-adkypaubisunpaubisun
`
`(yo:sph-owpaubisun
`
`t:é=
`
`
`
`
`
`“}ndu!
`
`
`gy:pisp6paubisun
`
`ty:gunuj-4asnpaubisun
`
`(po:92hpasspaubisun
`
`pl—~‘apooasuasjul
`
`
`
`
`
`oo“Ayi014dpaubisun}(1X3]HLONIT‘vivaas)|KovaST1V9WIISASONILVYIdO
`
`=¢pagsO}Dpjoumpaubisuneh
`‘G+pAds™josjuoo”yoym=pauhisun
`
`
`
`eebh)PAQa”|0u4U09JOURjul
`tho:8h14paubisun|pplroiibepPebisunWIISASONIL¥UId0
`
`
`
`
`SebpaynaeJ91A30
`
`(PAOpus-0j-bupoublsun)SHIAIHG
`
`
`
`
`
`t2—IPAQDIOP1NdLN0aia‘wow“v1¥G]°G19)|}DYMqu!(3dAL-9|“WldGVINWNS
`
`Gyr‘9poodjulasuas
`
`
`SSANGdYAYONINSid
`
`WhG2OORTGORo£fe
`
`
`
`
`SSINddYAYOWIN
`
`geg1WVYDONdNOLLVOITda¥
`
`8b“Old
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`
`
`
`
`
`US. Patent
`
`Aug. 30, 1988
`
`Sheet 19 of 20
`
`4,768,150
`
`:cPAOXpus”Oo}bapoublsun}2}jndjno
`
`
`*pagsD}DP-jouUMpaubisun
`
`:“boy7ysnyypoubssun
`:spb
`
`pAdI™[O1JUOS~JoUMpaub/sun
`act“ynduy
`
`
`O2h~_adAj~ojjoappauBbisun69}D90||Dappaubisun
`yonsys
`
`
`6hhwiljuodpaubisun
`
`SZ}AGA}Ssaspaubisun
`omvojjdoudpaublsun
`enSjndutone
`
`y2h-2ajpo0|jdpaubisun
`
`ADIYOj|dappaubisun
`621'}dJS-OE4XO
`
`S-"Kysolidpaubisun
`
`dwpaubisunI!)paubisun
`Jonsys
`
`a
`or or!
`OS ON awe ret ee ee ee ee oe ON
`
`
`
`
`
`‘apoo”asuas
`
`
`
`‘paataoadpuasOyjsanbasjul
`
`
`
`(ddAL-9]“UldLIMaia‘iowa“W1VQ}'Q19)]LINMYNS
`
`
`Lhh——™448014X8)S3YNLONYIS
`
`SSIUGdYAYONIA1a
`
`
`
` }|NO-ayMJondjs
`
`Reh
`
`GLOK”6OF6G
`
`ve
`
`AYONIN
`
`62y~——~..NOaplam.=FUNLONYLS
`
`
`
`SSaudgyAYOWIN
`
`
`
`
`
`6sgtWVN90UdNOILVOITdd¥
`
` WILSAS
`
`INTLVHId0
`
`Om
`AD9
`=
`
`
`
`
`:.guniy-asnpoubisun
`
`ech—FonsPaubisun
` “pliBuo$lT+hajno{‘9pooaguasiu1SauBisun
`
`
`“ualpuisaut
`
`th
`
`SUSALYG
`
`JIIAIG
`
`6r‘91i4
`
`Soc,
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`NOILVORTdd¥
`
`
`(d4)}998019
`
`
`
`STIVOWALSASINIL¥4Sd0
`
`WVED0Ud
`
`
`
`(013)ISTOVNS
`
`WIISASINILVYdd0
`
`U.S. Patent
`
`Aug. 30, 1988
`
`Sheet 20 of 20
`
`4,768,150
`
`
`
`
`
`SYJAIYO
`
`JOA
`
`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 moreparticularly to a
`processing system running an application program hav-
`ing access to networking functions.
`BACKGROUND ART
`
`FIG. 1 showsthe layers of a typical processing sys-
`tem 1. The application program 9 runs on the operating
`system 10. All of the commandsofthe 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 SNAstructure,all nodes,
`or linked elements follow these definitions.
`Systems Network Architecture has two components
`that control the operation of the local nodein the net-
`work. Oneis 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 protocolconsists 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-secondaryrelationship.
`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
`
`10
`
`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 programsthat allow a system to attach to a
`particular communications link 14. The link session
`includes the remote node2, but only describes the phys-
`ical environmentof 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 SNAsession defines the network path that links
`twological 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 conversationsare 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 LU1,2, and 3 application
`transaction programs.
`A mapped conversation is a connection between two
`transaction programsthat allows them to exchangedata
`records of any length and in any formatspecified by the
`transaction programs. This conversation typeis 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 generalclass ofuser,
`the programmerrequires 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 aboveis 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 commandsforuse by the applica-
`tion program in accessing networking functions.
`SUMMARYOF 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
`changesin a network configuration from an application
`program.
`In furtherance of the objects of this invention an
`application program interface mapsa 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 anda 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 ofthis 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 AIX! 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.
`*lAIXis 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 networkfunction.
`The commands and routines typically comprise a pa-
`rameter that identifies the connection through a con-
`nection ID, a parameterthat identifies a network func-
`tion request, and a parameter that points to a specific
`structure in memory.
`
`BRIEF DESCRIPTION OF THE DRAWING
`
`FIG. 1 showsa processing system connected to a
`network as knownin theart.
`FIG. 2 shows an operating system for use with the
`interface of this invention.
`FIG.3 illustrates a network environment.
`FIG. 4 showsthe 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
`
`20
`
`25
`
`35
`
`45
`
`50
`
`55
`
`65
`
`4,768,150
`
`4
`FIG.7 showsthe request function indicating that the
`remotesite received the last transmission withouterror.
`FIG.8 showsa request function that sends the data in
`the local LU buffer to the remote LU.
`FIG.9 showsa request function that gets information
`about a specified conversation.
`FIG.10 showsa 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 showsa 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 errorin 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 showsa subroutine and a commandforre-
`moving the allocation of the specified conversation
`from the local transaction program.
`FIG.17 showsa subroutine and a commandforcreat-
`ing a session and conversation between twotransaction
`programs.
`FIG.18 shows a subroutine and commandforreceiv-
`ing information from a conversation.
`FIG. 19 shows a subroutine and command for send-
`ing data to a remote program,
`FIG. 20 showsa subroutine and a commandforclos-
`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
`U.S. 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 inventionis
`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-27into one of the corresponding system
`calls 31-37.
`FIG.4 through FIG.20illustrates 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
`
`5
`mands, routines, and the corresponding parametersis
`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 parametersin the different LU environments, such
`as LU1, 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 OPEN31.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” command35 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 maybe oneof the following: CONFIRM 61, CON-
`FIRMED 62, FLUSH 63, GET_ATTRIBUTE 64,
`GET_STATUS65, PREPARE_TO_RECEIVE66,
`REQUEST_TO_SEND 67, SEND_ERROR 68,
`SEND3FMH 69, and SEND_STATUS 70. The
`“ioctl” command 35 has the additional two requests
`ALLOCATE 71 and DEALLOCATE72.
`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 U.S. 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” parameter56 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 parametersfor the requested function. The param-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`350
`
`55
`
`65
`
`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 “snacti” 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_ERROR68.
`The CONFIRM request 61 on “snactl” 25 and “ioctl”
`35 has the structure of type “conf_str” 73 as shownin
`memory 38. The “sense_code” parameter 74specifies a
`variable that contains the sense code to be reported to
`the remote session. The “rid” parameter 75 specifies the
`resource ID.
`Referring to FIG. 7, the CONFIRMEDrequest 62is
`a response to the CONFIRMrequest 61 (FIG.6) indi-
`cating that the remotesite (B FIG.3) received the trans-
`mission without detecting any errors. The parameter
`“arg” 55, 56 for this request specifies the resource ID
`for the conversation that was returned by the ALLO-
`CATErequest 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 (6B 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 “endchain” 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_ATTRIBUTErequest
`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 memory38receives output
`from the GET_ATTRIBUTE request 64 for
`the
`“snactl” subroutine 25 and the “ioctl” commands35.
`Referring to FIG. 10, the GET_STATUSrequest 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 currentlink 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 “rin_image” 82 whenset 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
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`Ruiz Food Products, Inc.
`Exhibit 1017
`
`
`
`20
`
`7
`amount of BIND image data in bytes that can be re-
`turned by the request when the GET_STATUS65is
`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 datais to be
`stored.
`the PREPARE_TO_RE-
`Referring to FIG. 11,
`CEIVErequest 66 notifies the remote LU (6B FIG.3)
`that the local LU (6A FIG.3) has changed the conver- 10
`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. 15
`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 canbegin sending to the remote LU. The parameter
`“arg” specifies the resource ID “rid” 75 for the conver-
`sation.
`Referring to FIG. 13, the SEND_-ERRORrequest
`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