`Skeen et al.
`
`73 Assignee:
`
`(54) APPARATUS AND METHOD FOR
`PROVIDING DECOUPLING OF DATA
`EXCHANGE OETALS FOR PROVIDING
`HGH PERFORMANCE COMMUNICATION
`BETWEEN SOFTWARE PROCESSES
`75) Inventors: Marion D. Skeen, San Francisco;
`Mark Bowles, Woodside, both of
`Calif.
`Teknekron Software Systems, Inc.,
`Palo Alto, Calif.
`21 Appl. No.: 386,584
`(22
`Filed:
`Jul. 27, 1989
`51) int. Cl............................................... G06F 15/16
`52) U.S. C. ............................. 395/600; 364/DIG. 1;
`364/281.3; 364/240.8; 364/246.3
`(58) Field of Search .................. 364/DIG. 1, DIG. 2;
`395/600
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,363,093 12/1982 Davis et al. .................. 364/DIG. 1
`4,688,170 8/1987 Waite et al. .................. 364/DIG.
`4,718,005 1/1988 Feigenbaum et al......... 364/DIG.
`4,815,030 3/1989 Cross et al. ......................... 364/900
`4,851,988 7/1989 Trottier et al. .....
`........ 364/200
`4,914,583 4/1990 Weisshaar et al. ..
`364/DIG.
`4,937,784 6/1990 Masai et al. .........
`364ADIG. 2
`4,975,830 12/1990 Gerpheide et al. ................. 364/200
`4,992,972 2/1991 Brooks et al. .......
`... 364/900
`4,999,771 3/1991 Ralph et al.......................... 364/200
`5,062,037 10/1991 Shorter et al. ......
`... 364ADIG. 1
`5,073,852 12/1991 Siegel et al......
`... 395/700
`5,101,406 3/1992 Messenger ......................... 370/94.1
`OTHER PUBLICATIONS
`TIB Reference Manual, "The Teknekron Information
`Bus TM : Programmer's Reference Manual," Version
`1.1, Sep. 7, 1989, pp. 1-46.
`"BASIS Application Programming Interface (AIP),"
`pp. 1-82.
`"BASIS Objectives, Environments, Concepts Func
`tions, Value for Business Partners and Customers,"
`IBM Confidential.
`
`|H|||||IIII
`US005187787A
`5,187,787
`11) Patent Number: .
`Feb. 16, 1993
`(45)
`Date of Patent:
`
`DataTrade R1, "Lans Lans/Wans," Aug. 23, 1990, pp.
`1-4.
`DataTrade R1, "Llans DT Rl Software Components,'
`Aug. 23, 1990, pp. 1-7.
`DataTrade R1, "Lans DT R1 Networkf Architecture,"
`Aug. 23, 1990, pp. 1-14.
`DataTrade R1, "Lans Broadcast Concepts," Aug. 23,
`1990, pp. 1-9.
`DataTrade R1, "Lans Broadcast Performance," Aug.
`23, 1990, pp. 1-3.
`DataTrade R1, "Lans Point-Point Concepts,” Aug. 23,
`1990, pp. 1-4.
`DataTrade R1, "Lans Security," Aug. 23, 1990, pp. 1-4.
`DataTrade R1, "API. Overview," Jun. 6, 1990, pp. 1-11.
`DataTrade R1, "API Datatrade API Verbs," Jun. 6,
`1990, pp. 1-14.
`(List continued on next page.)
`
`Primary Examiner-Thomas M. Heckler
`Attorney, Agent, or Firm-Ronald Craig Fish
`(57)
`ABSTRACT
`A communication interface for decoupling one soft
`ware application from another software application
`such communications between applications are facili
`tated and applications may be developed in modularized
`fashion. The communication interface is comprised of
`two libraries of programs. One libray manages self.
`describing forms which contain actual data to be ex
`changed as well as type information regarding data
`format and class definition that contain semantic infor
`mation. Another library manages communications and
`includes a subject mapper to receive subscription re
`quests regarding a particular subject and map them to
`particular communication disciplines and to particular
`services supplying this information. A number of com
`munication disciplines also cooperate with the subject
`mapper or directly with client applications to manage
`communications with various other applications using
`the communication protocols used by those other appli
`cations.
`
`68 Clains, 9 Drawing Sheets
`
`HOST2
`
`
`
`Network or sAPsd exor Y or sAMEd disTriouTed stoPE
`
`Zynga Ex. 1005, p. 1
`Zynga v. IGT
`IPR2022-00368
`
`
`
`5,187,787
`Page 2
`
`OTHER PUBLICATIONS
`DataTrade R1, "DataTrade Using DataTrade: APs,"
`Aug. 23, 1990, pp. 1-14.
`"Delivering Integrated Solutions," 6 pages.
`Digital, "PAMS Message Bus for VAX/VMS," May
`11, 1990, pp. 1-3.
`Howard Kilman and Glen Macko, "An Architectural
`Perspective of a Common Distributed Heterogeneous
`Message Bus," 1987, pp. 171-184.
`Glen Macko, "Developing a Message Bus for Integrat
`ing VMS High Speed Task to Task Communications,"
`Fall 1986, pp. 339-347.
`Steven G. Judd, "A Practical Approach to Developing
`Client-Server Applications Among VAX/VMS,
`CICS/VS, and IMS/VS LU6.2 Applications Made
`Easy," Spring 1990, pp. 95-112.
`Product Insight, "Don't Miss the Lates Message Bus,
`VAXPAMSV2.5," Jun. 1989, pp. 18-21.
`Digital Equipment Corporation, "Digital Packaged
`Application Software Description PASD PASD Name:
`VAX-PAMS PASD; US.002.002,' Version 2.5, Dec. 5,
`1989, pp. 1-8.
`Digital Equipment Corporation, "PAMS Basic Call Set
`
`PAMS Message BUS Efficient Task-to-Task Commu
`nication," Jul. 1989, pp. 1-25.
`Digital Equipment Corporation, "Package Application
`Software Description for ULTRIX-PAMS," Version
`1.2, Dec. 5, 1989, pp. 1-7.
`Digital Equipment Corporation, "Package Application
`Software Description for PC-PAMS," Version 1.2,
`Dec. 5, 1989, pp. 1-7.
`Digital Equipment Corporation, "PAMS Self-Mainte
`nance Service Description," Apr. 3, 1990, pp. 1-3.
`Digital Equipment Corporation, "LU6.2 PAMS Sel
`f-Maintenance Service Description," Apr. 3, 1990, pp.
`1-3.
`Digital Equipment Corporation, "PAMS Installation
`and Orientation Service Description," Jan. 31, 1989, pp.
`1-3.
`Digital Equipment Corporation, "PAMS LU6.2 Instal
`lation and Orientation Service Description," Apr. 19,
`1990, pp. 1-3.
`Digital Equipment Corporation, "Package Application
`Software Description for PAMS LU6.2," Version 2.1,
`Apr. 19, 1990, pp. 1-18.
`The Metamorphosis of Information Management;
`David Gelernter; Scientific American, Aug. 1989; pp.
`66-73.
`
`Zynga Ex. 1005, p. 2
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 1 of 9
`
`5,187,787
`
`Ndd
`
`¢LSOH
`2 LSOH
`
`NOILLVONddV
`
`
`
`ot
`
`tLSOH
`
`vivd
`
`Ol
`
`LINANOdWOD
`
`SONVHOXS
`
`3OVSYSLNI
`
`YaDVNVNN
`
`SNOLLVOINNWINOODSSV10SNYO4
`
`
`
`
`
`
`
`
`
`
`
`
`
`AOIAUSSXHOMLIN vtAHOLOSHIOHO(IWNOILdO)WALSAS3114
`
`
`
`3HOLSGALNGINLSIGGAYVHSHOAHOWAWGSYVHSYOWHOMLAN
`
`Lunds
`
`8292
`
`ve
`
`
`
`SOIAWSSLoarans
`
`
`
`a1evia1avi
`
`Zynga Ex. 1005, p. 3
`Zyngav. IGT
`IPR2022-00368
`
`Zynga Ex. 1005, p. 3
`Zynga v. IGT
`IPR2022-00368
`
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 2 of 9
`
`5,187,787
`
`EXAMPLE FORM CLASS DEFINITIONS
`
`PLAYERNAME: CLASS 1000
`RATING: FLOATING POINT CLASS Il
`AGE: INTEGER CLASS 12
`LASTNAME: STRING 20 ASCII CLASS 10
`FIRSTNAME: STRING 20 ASCII CLASS 10
`
`FIGURE 2
`
`PLAYERADDRESS: CLASS 1001
`STREET: STRING 20 ASCII CLASS 10
`CITY:
`STRING 20 ASCII CLASS 10
`STATE: STRING 20 ASCII CLASS 10
`
`FIGURE 3
`
`TOURNAMENT ENTRY: CLASS 1002
`TOURNAMENTNAME: STRING 20 ASCII CLASS 10
`PLAYER: PLAYERNAME CLASS 1000
`ADDRESS: PLAYERADDRESS CLASS 1001
`
`FIGURE 4
`
`STRING 20 ASCII: CLASS 10
`STRING 20 ASCII
`NTEGER: CLASS 12
`INTEGER. 3
`FLOATING - POINT : CLASS 11
`FLOATING POINT 111
`
`FIGURE 5
`
`Zynga Ex. 1005, p. 4
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 3 of 9
`
`5,187,787
`
`INSTANCE OF FORM OF CLASS TOURNAMENT ENTRY
`CLASS 1 OO2 AS STORED IN MEMORY
`
`38
`
`a -40
`
`-1000 4h
`
`su1240
`
`J10) BUZZ
`
`-10 (PALOALTo h"
`74-10
`80
`FIGURE 6
`
`
`
`ACTUALDATA
`(VALUE)
`
`ACTUALDATA 2
`
`DATA STORED
`NINSTANCE
`OF THIS FORM
`
`SEMANTIC
`INFORMATION
`STORED IN
`CLASS DEFINITION
`
`FIGURE 7
`
`Zynga Ex. 1005, p. 5
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 4 of 9
`
`5,187,787
`
`90
`
`108
`
`DONE PROCESSING
`ALL FIELD'S CON
`TANING PRMITIVE
`CLASSES OF FORMS
`NO 110
`
`YES
`
`FND NEXT FIELD
`CONTAINING A
`PRMTVE CLASS
`OF FORM
`
`112
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`RECEIVE FORMAT
`CONVERSON CALL
`FROM APPLICATION
`OR ANOTHER MODULE
`IN COMMUNICATION
`INTERFACE
`
`ACCESS APPROPRIATE
`FORMAT SPECIFIC TABLE
`FOR SPECIFIED CONVERSION
`100
`
`FIND FIRST FIELD
`CONTAINING A PRMITIVE
`CLASS OF FORM
`
`LOOK UP FROM" FORMAT
`OF PRIMITIVE CLASS IN
`FORMAT SPECIFIC TABLE
`AND DETERMNE RECURED
`"TO FORMAT
`
`ACCESS GENERAL
`CONVERSION PROCEDURE
`TABLE AND FIND "FROM-TO"
`PAR ENTRY
`
`PERFORM CONVERSION
`PROGRAM IDENTIFIED IN
`"FROM-TO PAR ENTRY
`TO CONVERT SELECTED
`FIELD'S CONTENTS TO
`"TO FORMAT
`
`
`
`FORMAT OPERATION
`FIGURE 8
`
`Zynga Ex. 1005, p. 6
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 5 of 9
`
`5,187,787
`
`DECTO
`ETHERNETTM
`
`TO
`
`11
`
`TM
`ETHERNET
`TO. IBM
`
`
`
`FIGURE 9
`
`FIGURE 10
`
`GENERAL CONVERSION
`PRODECURES TABLE
`
`
`
`FROM TO CONVERSION PROGRAM
`
`FLOAT | ETHER
`
`INTEGER IETHER
`ASCIETHER
`ETHER FLOAT2
`ETHER INTEGER
`ETHER LEBCDIC
`
`FIGURE 11
`
`Zynga Ex. 1005, p. 7
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 6 of 9
`
`5,187,787
`
`SEMANTIC-DEPENDENT PROCESSING
`
`
`
`RECEIVE A
`GET FIELD
`RECUEST FOR
`SEMANTIC
`DEPENDENT
`OPERATION
`
`CLASS MANAGER
`ACCESSES CLASS
`DEFINITION FOR
`THE FORM CLASS
`IDENTIFIED IN
`ORIGINAL CALL
`
`CLASS MANAGER
`SEARCHES CLASS
`DEFINITION FOR
`FIELD OF INTEREST
`
`CLASS MANAGER
`RETURNS A
`RELATIVE ADDRESS
`FOR THE FIELD
`OF INTEREST IN
`INSTANCES OF
`FORMS OF THIS
`CLASS
`
`120
`
`122
`
`124
`
`126
`
`128
`
`RECEIVE
`GET DATA CALL
`FROM CLIENT
`APPPLICATION AND
`RELATIVE ADDRESS
`OF FIELD AND
`DELIVER APPROPRIATE
`DATA
`
`FIGURE 12
`
`Zynga Ex. 1005, p. 8
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 7 of 9
`
`5,187,787
`
`PERSON CLASS: CLASS 1021
`LAST: STRING20 ASCII
`FIRST: STRING20 ASCII
`
`CLASS DEFINITION
`
`FIGURE 13A
`
`140
`
`1
`42
`
`146
`s
`PERSON CLASS
`
`144
`
`152-1122 -154
`156-1502 -158
`160- 15
`162
`164-15 striNG 20 Asci -166
`168- 1502 - 170
`
`174-15 STRING20 ASCII
`178
`
`CLASS DESCRIPTOR STORED
`NRAMAS A FORM
`
`FIGURE 3B
`
`Zynga Ex. 1005, p. 9
`Zynga v. IGT
`IPR2022-00368
`
`
`
`U.S. Patent
`
`Feb. 16, 1993
`
`Sheet 8 of 9
`
`5,187,787
`
`
`
`964301AN3S
`
`(M3NSSNOfMOQ)
`
`GauIsadYO4
`
`YH3ANAaS
`
`Ol
`
`MOVETWO
`
`ANILNOW
`
`QAaWVN
`
`TIVO3gIHOSENS
`
`NOLLVOINddV
`
`NOILVOINNWAWOD
`
`LNANOdWOO
`
`8st
`
`LOarEns
`
`18
`
`
`v4>vlaHNDISuiN>NT
`
`00z202~—sat”v6t061a
`
`sacea]194%
`
`08}
`
`reiee
`
`261Sa0IAuas
`AHOLOAUIG
`
`oObha9wo>8Te
`
`IPR2022-00368
`
`Zynga Ex. 1005, p. 10
`Zynga v. IGT
`IPR2022-00368
`
`
`
`
`
`
`
`
`
`U.S.
`
`Patent
`
`Feb. 16, 1993
`
`Sheet 9 of 9
`
`5,187,787
`
`Process Architecture
`
`230
`
`HOST CPU
`
`16
`
`18
`
`
`
`APPLICATION
`
`
`
`
`
`
`
`APPLICATION
`233
`235
`RMDP TIBINFO
`Communication Library
`
`231
`TIBFORMS
`Form Library
`
`30A
`
`3OB
`
`32
`
`O O. O. O. O. o O O. O. O. o O O to o O O O e o O O. O. O. e. d e o O O. O. O. O. O. O. O. O. O. O. O. O. O. O. O. O. O. O. 8 O 8 O
`
`FIGURE 15
`
`Software Architecture
`
`34
`Service
`Discipline
`MDSS
`
`236
`Service
`Discipline
`MSA
`
`238
`Service
`Discipline
`SASS
`
`Distributed Communication Comp.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`237
`
`TIBFORMS
`
`
`
`
`
`Forms &
`Classes
`
`239
`
`232
`24
`
`Network interface(s)
`FIGURE 16
`
`Zynga Ex. 1005, p. 11
`Zynga v. IGT
`IPR2022-00368
`
`
`
`O
`
`tion.
`
`y
`
`1
`
`APPARATUS AND METHOD FOR PROVIDING
`DECOUPLNG OF DATA EXCHANGE DETALS
`FOR PROVIDING HGH PERFORMANCE
`COMMUNICATION BETWEEN SOFTWARE
`PROCESSES
`
`5
`
`5, 187,787
`2
`formats and communication protocols which must be
`understood and followed to receive data from these
`SOCeS.
`In complex data situations such as financial data re
`garding equities, bonds, money markets, etc., it is often
`useful to have nesting of data. That is, data regarding a
`particular subject is often organized as a data record
`having multiple "fields," each field pertaining to a dif
`ferent aspect of the subject. It is often useful to allow a
`particular field to have subfields and a particular sub
`field to have its own subfields and so on for as many
`levels as necessary. For purposes of discussion herein,
`this type of data organization is called "nesting." The
`names of the fields and what they mean relative to the
`subject will be called the "semantic information" for
`purposes of discussion herein. The actual data represen
`tation for a particular field, i.e., floating point, integer,
`alphanumeric, etc., and the organization of the data
`record in terms of how many fields it has, which are
`primitive fields which contain only data, and which are
`nested fields which contain subfields, is called the "for
`mat" or "type" information for purposes of discussion
`herein. A field which contains only data (and has no
`nested subfields) will be called a "primitive field," and a
`field which contains other fields will be called a "con
`structed field' herein.
`There are two basic types of operations that can
`occur in exchanges of data between software modules.
`The first type of operation is called a "format opera
`tion' and involves conversion of the format of one data
`record (hereafter data records may sometimes be called
`"a forms") to another format. An example of such a
`format operation might be conversion of data records
`with floating point and EBCDIC fields to data records
`having the packed representation needed for transmis
`sion over an ETHERNET TM local area network. At
`the receiving process end another format operation for
`conversion from the ETHERNETTM packet format to
`integer and ASCII fields at the receiving process or
`software module might occur. Another type of opera
`tion will be called herein a "semantic-dependent opera
`tion" because it requires access to the semantic informa
`tion as well as to the type or format information about
`a form to do some work on the form such as to supply
`a particular field of that form, e.g., today's IBM stock
`price or yesterday's IBM low price, to some software
`nodule that is requesting same.
`Still further, in today's environment, there are often
`multiple sources of different types of data and/or multi
`ple sources of the same type of data where the sources
`overlap in coverage but use different formats and differ
`ent communication protocols (or even overlap with the
`same format and the same communication protocol). It
`is useful for a software module (software modules may
`hereafter be sometimes referred to as "applications') to
`be able to obtain information regarding a particular
`subject without knowing the network address of the
`service that provides information of that type and with
`out knowing the details of the particular communica
`tion protocol needed to communicate with that infor
`mation source.
`A need has arisen therefore for a communication
`system which can provide an interface between diverse
`software modules, processes and computers for reliable,
`meaningful exchanges of data while "decoupling" these
`software modules and computers. "Decoupling" means
`that the software module programmer can access infor
`
`BACKGROUND OF THE INVENTION
`The invention pertains to the field of decoupled infor.
`mation exchange between software processes running
`on different or even the same computer where the soft
`ware processes may use different formats for data repre
`sentation and organization or may use the same formats
`and organization but said formats and organization may
`later be changed without requiring any reprogramming,
`15
`Also, the software processes use "semantic' or field
`name information in such a way that each process can
`understand and use data it has received from any for
`eign software process, regardless of semantic or field
`20
`name differences. The semantic information is decou
`pled from data representation and organization informa
`With the proliferation of different types of computers
`and software programs and the ever-present need for
`different types of computers running different types of
`software programs to exchange data, there has arisen a
`need for a system by which such exchanges of data can
`occur. Typically, data that must be exchanged between
`software modules that are foreign to each other com
`prises text, data and graphics. However, there occasion
`ally arises the need to exchange digitized voice or digi
`tized image data or other more exotic forms of informa
`tion. These different types of data are called "primi
`tives." A software program can manipulate only the
`primitives that it is programmed to understand and
`35
`manipulate. Other types of primitives, when introduced
`as data into a software program, will cause errors.
`"Foreign." as the term is used herein, means that the
`software modules or host computers involved in the
`exchange "speak different languages." For example, the
`40
`Motorola and Intel microprocessor widely used in per
`sonal computers and work stations use different data
`representations in that in one family of microprocessors
`the most significant byte of multibyte words is placed
`first while in the other family of processors the most
`45
`significant byte is placed last. Further, in IBM comput
`ers text letters are coded in EBCDIC code while in
`almost all other computers text letters are coded in
`ASCII code. Also, there are several different ways of
`representing numbers including integer, floating point,
`50
`etc. Further, foreign software modules use different
`ways of organizing data and use different semantic in
`formation, i.e., what each field in a data record is named
`and what it means.
`The use of these various formats for data representa
`55
`tion and organization means that translations either to a
`common language or from the language of one con
`puter or process to the language of another computer or
`process must be made before meaningful communica
`tion can take place. Further, many software modules
`60
`between which communication is to take place reside
`on different computers that are physically distant from
`each other and connected only local area networks,
`wide area networks, gateways, satellites, etc. These
`various networks have their own widely diverse proto
`65
`cols for communication. Also, at least in the world of
`financial services, the various sources of raw data such
`as Dow Jones News or Telerate TM use different data
`
`Zynga Ex. 1005, p. 12
`Zynga v. IGT
`IPR2022-00368
`
`
`
`5,187,787
`4.
`3
`nent in the communications interface according to the
`mation from other computers or software processes
`invention.
`without knowing where the other software modules
`In the preferred embodiment, the functions of the
`and computers are in a network, the format that forms
`interface are carried out by the various subroutines in
`and data take on the foreign software, what communi
`the libraries of subroutines which together comprise the
`cation protocols are necessary to communicate with the
`interface. Of course, those skilled in the art will appreci
`foreign software modules or computers, or what com
`ate that separate programs or modules may be used
`munication protocols are used to transit any networks
`instead of subroutines and may actually be preferable in
`between the source process and the destination process;
`and without knowing which of a multiplicity of sources
`SO
`C3SeS.
`Data format decoupling is provided such that a first
`of raw data can supply the requested data. Further,
`process using data records or forms having a first for
`"decoupling,' as the term is used herein, means that
`mat can communicate with a second process which has
`data can be requested at one time and supplied at an
`data records having a second, different format without
`other and that one process may obtain desired data from
`the need for the first process to know or be able to deal
`the instances of forms created with foreign format and
`with the format used by the second process. This form
`15
`foreign semantic data through the exercise by a commu
`of decoupling is implemented via the data-exchange
`nication interface of appropriate semantic operations to
`component of the communication interface software
`extract the requested data from the foreign forms with
`system.
`the extraction process being transparent to the request
`The data-exchange component of the communication
`ing process.
`interface according to the teachings of the invention
`Various systems exist in the prior art to allow infor
`includes a forms-manager module and a forms-class
`mation exchange between foreign software modules
`manager module. The forms-manager module handles
`with various degrees of decoupling. One such type of
`the creation, storage, recall and destruction of instances
`system is any electronic mail software which imple
`of forms and calls to the various functions of the forms
`ments Electronic Document Exchange Standards in
`class manager. The latter handles the creation, storage,
`25
`cluding CCITT's X.409 standard. Electronic mail soft
`recall, interpretation, and destruction of forms-class
`ware decouples applications in the sense that format or
`descriptors which are data records which record the
`type data is included within each instance of a data
`format and semantic information that pertain to particu
`record or form. However, there are no provisions for
`lar classes of forms. The forms-class manager can also
`recording or processing of semantic information. Se
`receive requests from the application or another com
`30
`mantic operations such as extraction or translation of
`ponent of the communication interface to get a particu
`data based upon the name or meaning of the desired
`lar field of an instance of a form when identified by the
`field in the foreign data structure is therefore impossi
`name or meaning of the field, retrieve the appropriate
`ble. Semantic-Dependent Operations are very impor
`form instance, and extract and deliver the requested
`tant if successful communication is to occur. Further,
`data in the appropriate field. The forms-class manager
`35
`there is no provision in Electronic Mail Software by
`can also locate the class definition of an unknown class
`which subject-based addressing can be implemented
`of forms by looking in a known repository of such class
`wherein the requesting application simply asks for in
`definitions or by requesting the class definition from the
`formation by subject without knowing the address of
`forms-class manager linked to the foreign process
`the source of information of that type. Further, such
`which created the new class of form. Semantic data,
`40
`software cannot access a service or network for which
`such as field names, is decoupled from data representa
`a communication protocol has not already been estab
`tion and organization in the sense that semantic infor
`mation contains no information regarding data repre
`lished.
`Relational Database Software and Data Dictionaries
`sentation or organization. The communication interface
`are another example of software systems in the prior art
`of the invention implements data decoupling in the
`45
`for allowing foreign processes to share data. The short
`semantic sense and in the data format sense. In the se
`coming of this class of software is that such programs
`mantic sense, decoupling is implemented by virtue of
`the ability to carry out semantic-dependent operations.
`can handle only "flat" tables, records and fields within
`These operations allow any process coupled to the
`records but not nested records within records Further,
`the above-noted shortcoming in Electronic Mail Soft
`communications interface to exchange data with any
`other process which has data organized either the same
`ware also exists in Relational Database Software.
`or in a different manner by using the same field names
`SUMMARY OF THE INVENTION
`for data which means the same thing in the preferred
`According to the teachings of the invention, there is
`embodiment. In an alternative embodiment semantic
`dependent operations implement an aliasing or syn
`provided a method and apparatus for providing a struc
`ture to interface foreign processes and computers while
`onym conversion facility whereby incoming data fields
`providing a degree of decoupling heretofore unknown.
`having different names but which mean a certain thing
`The data communication interface software system
`are either relabeled with field names understood by the
`requesting process or are used as if they had been so
`according to the teachings of the invention consists
`essentially of several libraries of programs organized
`relabeled.
`Data distribution decoupling is provided such that a
`into two major components, a communication compo
`requesting process can request data regarding a particu
`nent and a data-exchange component. Interface, as the
`lar subject without knowing the network address of the
`term is used herein in the context of the invention,
`server or process where the data may be found. This
`means a collection of functions which may be invoked
`form of decoupling is provided by a subject-based ad
`by the application to do useful work in communicating
`dressing system within the communication interface.
`with a foreign process or a foreign computer or both.
`Subject-based addressing is implemented by the com
`Invoking functions of the interface may be by subrou
`munication component of the communication interface
`tine calls from the application or from another compo
`
`55
`
`10
`
`65
`
`Zynga Ex. 1005, p. 13
`Zynga v. IGT
`IPR2022-00368
`
`
`
`O
`
`35
`
`5, 187,787
`6
`5
`FIG. 14 is a block diagram illustrating the relation
`of the invention. The communication component re
`ships between the subject-mapper module and the ser
`ceives "subscribe" requests from an application which
`vice discipline modules of the communication compo
`specifies the subject upon which data is requested. A
`nent to the requesting application and the service for
`subject-mapper module in the communication compo
`subject-based addressing.
`nent receives the request from the application and then
`FIG. 15 illustrates the relationship of the various
`looks up the subject in a database, table or the like. The
`modules, libraries and interfaces of an alternative en
`database stores "service records" which indicate the
`bodiment of the invention to the client applications.
`various server processes that supply data on various
`FIG. 16 illustrates the relationships of various mod
`subjects. The appropriate service record identifying the
`ules inside the communication interface of an alterna
`particular server process that can supply data of the
`tive embodiment.
`requested type and the communication protocol (here
`after sometimes called the service discipline) to use in
`DETAILED DESCRIPTION OF THE
`communicating with the identified server process is
`PREFERRED AND ALTERNATIVE
`returned to the subject-mapper module.
`EMBOOMENTS
`15
`The subject mapper has access to a plurality of com
`Referring to FIG. 1 there is shown a block diagram of
`munications programs called "service disciplines."
`a typical system in which the communications interface
`Each service discipline implements a predefined com
`of the invention could be incorporated, although a wide
`munication protocol which is specific to a server pro
`variety of system architectures can benefit from the
`cess, network, etc. The subject mapper then invokes the
`teachings of the invention. The communication inter
`20
`appropriate service discipline identified in the service
`face of the invention may be sometimes hereafter re
`record.
`ferred to as the TIB or Teknekron Information Bus in
`The service discipline is given the subject by the
`the specification of an alternative embodiment given
`subject mapper and proceeds to establish communica
`below. The reader is urged at this point to study the
`tions with the appropriate server process. Thereafter,
`glossary of terms included in this specification to obtain
`25
`instances of forms containing data regarding the subject
`a basic understanding of some of the more important
`are sent by the server process to the requesting process
`terms used herein to describe the invention. The teach
`via the service discipline which established the commu
`ings of the invention are incorporated in several librar
`ies of computer programs which, taken together, pro
`nication.
`Service protocol decoupling is provided by the pro
`vide a communication interface having many functional
`30
`cess described in the preceding paragraph.
`capabilities which facilitate modularity in client applica
`Temporal decoupling is implemented in some service
`tion development and changes in network communica
`disciplines directed to page-oriented server processes
`tion or service communication protocols by coupling of
`such as Telerate TM by access to real-time data bases
`various client applications together in a "decoupled"
`which store updates to pages to which subscriptions are
`fashion. Hereafter, the teachings of the invention will be
`outstanding.
`referred to as the communication interface. "Decou
`pling," as the term is used herein, means that the pro
`BRIEF DESCRIPTION OF THE DRAWINGS
`grammer of client application is freed of the necessity to
`FIG. 1 is a block diagram illustrating the relationships
`know the details of the communication protocols, data
`representation format and data record organization of
`of the various software modules of the communication
`interface of one embodiment of the invention to client
`all the other applications or services with which data
`applications and the network.
`exchanges are desired. Further, the programmer of the
`FIG. 2 is an example of a form-class definition of the
`client application need not know the location of ser
`vices or servers providing data on particular subjects in
`contructed variety.
`FIG. 3 is an example of another constructed form
`order to be able to obtain data on these subjects. The
`45
`communication interface automatically takes care of all
`class definition.
`FIG. 4 is an example of a constructed form-class
`the details in data exchanges between client applications
`definition containing fields that are themselves con
`and between data-consumer applications and data-prov
`structed forms. Hence, this is an example of nesting.
`ider services.
`FIG. 5 is an example of three primitive form classes.
`The system shown in FIG. 1 is a typical network
`coupling multiple host computers via a network or by
`FIG. 6 is an example of a typical form instance as it is
`shared memory. Two host computers, 10 and 12, are
`stored in memory.
`shown in FIG. 1 running two client applications 16 and
`FIG. 7 illustrates the partitioning of semantic data,
`18, although in other embodiments these two client
`format data, and actual or value data between the form
`applications may be running on the same computer.
`class definition and the form instance.
`55
`These host computers are coupled by a network 14
`FIG. 8 is a flow chart of processing during a format
`which may be any of the known networks such as the
`operation.
`ETHERNETTM communication protocol, the token
`FIG. 9 is a target format-specific table for use in
`ring protocol, etc. A network for exchanging data is not
`format operations.
`required to practice the invention, as any method of
`FIG. 10 is another target format-specific table for use
`exchanging data known in the prior art will suffice for
`in format operations.
`purposes of practicing the invention. Accordingly,
`FIG. 11 is an example of a general conversion table
`shared memory files or shared distributed storage to
`for use in format operations.
`which the host computers 10 and 12 have equal access
`FIG. 12 is a flow chart for a typical semantic-depend
`will also suffice as the environment in which the teach
`ent operation.
`ings of the invention are applicable.
`FIGS. 13A and 13B are, respectively, a class defini
`Each of the host computers 10 and 12 has random
`tion and the class descriptor form which stores this class
`access memory and bulk memory such as disk or tape
`definition.
`
`50
`
`65
`
`Zynga Ex. 1005, p. 14
`Zynga v. IGT
`IPR2022-00368
`
`
`
`10
`
`25
`
`5,187,787
`8
`7
`A typical system model in which the communication
`drives associated therewith (not shown). Stored in these
`interface is used consists of users, users groups, net
`memories are the various operating system programs,
`works, services, service instances (or servers) and sub
`client application programs, and other programs such as
`jects. Users, representing human end users, are identi
`the programs in the libraries that together comprise the
`fied by a user-ID. The user ID used in the communica
`communication interface which cause the host comput
`tions interface is normally the same as the user ID or
`ers to perform useful work. The libraries of programs in
`log-on ID used by the underlying operating system (not
`the communication interface provide basic tools which
`shown). However, this need not be the case. Each user
`may be called upon by client applications to do such
`is a member of exactly one group.
`things as find the location of services that provide data
`Groups are comprised of users with similar service
`on a particular subject and