throbber
Proceedings of the
`Fourteenth ACM Symposium
`
`on
`
`Operating Systems Principles
`
`December 5-8, 1993
`The Grove Park Inn and Country Club
`Asheville, NC
`
`
`
`Sponsored by
`Association for Computing Machinery (ACM)
`Special Interest Group on Operating Systems (SIGOPS)
`
`Zynga Ex. 1016, p. 1
`Zynga v. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 1
`Zynga v. IGT
`IPR2022-00368
`
`

`

`The Association for Computing Machinery
`1515 Broadway
`New York, N.Y. 10036
`
`Copyright © 1993 by the Association for Computing Machinery, Inc. Copying without fee
`is permitted provided that the copies are not madeordistributed for direct commercial
`advantage,andcredit to the source is given. Abstracting with credit is permitted. For other
`copying ofarticles that carry a codeat the bottom ofthefirst page, copying is permitted
`provided that the per-copy fee indicated in the codeis paid through the Copyright Clearance
`Center, 222 Rosewood Drive, Danvers, MA 01923. For permission to republish write to:
`Director of Publications, Association for Computing Machinery. To copy otherwise or
`republish, requires a fee and/or specific permission.
`
`Additional copies may be ordered prepaid from:
`
`ACM ISBN:0-89791-632-8
`
`ACM Order Department
`P.O. Box 12114
`Church Street Station
`New York, N.Y. 10257
`
`Phone: 1-800-342-6626
`(U.S.A. and Canada)
`1-212-626-0500
`(All other countries)
`Fax: 1-212-944-1318
`E-mail: acmpubs@acm. org
`
`ACM Order Number: 534930
`
`Printed in the U.S.A.
`
`Zynga Ex. 1016, p. 2
`Zynga v. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 2
`Zynga v. IGT
`IPR2022-00368
`
`

`

`Zynga Ex. 1016, p. 3
`Zynga v. IGT
`IPR2022-00368
`
`
`
`This material may be protected by Copyright law (Title 17 U.S. Code)
`
`

`

`software out in the field. This body of software consists of
`several tools and modules that use a novel communications
`infrastructure known as the Information Bus. Allof the soft-
`ware components work together to provide a complete dis-
`tributed system environment.
`
`This paperis organized as follows. Section 2 providesa
`detailed description of the problem domain and summarizes
`the requirements for a solution. Section 3 outlines the Infor-
`mation Bus architecture in detail, states principles that
`drove our design, and discusses some aspects of the imple-
`mentation. Section 4 describes the notion of adapters, which
`mediate between old applications and in the Information
`Bus. Section 5 describes other software components that
`use the Information Bus and provide a complete application
`environment. This section also provides an exampletoillus-
`trate the system. Section 6 presents related work. Section 7
`summarizes the paper and discusses open issues. The
`Appendix discusses the performance characteristics of the
`Information Bus.
`
`2 Background
`An ICfabrication plant represents a hugecapital invest-
`ment. This investment, therefore, is cost-effective only if it
`can remain operational twenty-four hours a day. To bring
`down an entire plant in order to upgrade a key software
`component, such asthe ““Work-In-Process”tracking system,
`would result in lost revenue and wasted material. There is
`no opportunity to “reboot”the entire system. We state this
`requirementas R1:
`
`Rl Continuous operation. It is unacceptableto bring
`down the system for upgrades or maintenance.
`
`Despite the need for continuous operation, frequent
`changes in hardware and software must also be supported.
`New applications and new versions of existing applications
`need to be brought on-line. Business requirements and fac-
`tory models change, and such changes need tobe reflected
`in the application behavior. For example, new equipment
`types could be introduced into the factory. We state this
`requirement as R2:
`
`R2 Dynamic system evolution. The system must be
`capable of adapting to changesin application ar-
`chitecture and in the type of information ex-
`changed. It should also support
`the dynamic
`integration of new services and information.
`
`In the systems that we have built and installed, this
`requirementhas posed the greatest challenge. The sheer size
`of these systems, typically ranging from one hundred to a
`thousand workstations, makes changes expensive or even
`impossible, unless change is planned from the beginning.
`
`Businesses often have huge outlays in existing hard-
`ware, software, and data. To be accepted by the business
`
`community, a new system must be capable of leveraging
`existing technology; an organization will not throw away
`the product of an earlier costly investment. We state this
`requirementas R3:
`
`R3_ Legacy systems. New software must be able to
`interact smoothly with existing software, regard-
`less of the age of that software.
`
`Other important requirements are fault-tolerance, scal-
`ability, and performance. The system mustbe fault-tolerant;
`in particular it must not have a single point of failure. The
`system must scale in terms of both hardware and data.
`Finally, our installations must meet stringent performance
`standards. In this paper, we focus on requirements R1, R2,
`and R3 because they represent“real-world” constraints that
`have beenless studiedin research settings.
`
`The typical customer environmentconsists of a distrib-
`uted collection of independent processors, nodes, that com-
`municate with each other by passing messages over the
`network. Nodes and the network mayfail, and it is assumed
`that these failures are fail-stop [Schneider83] and not Byz-
`antine [Lamport82].! The network may lose, delay, and
`duplicate messages, or deliver messages out of order. Link
`failures may cause the network to partition into subnet-
`works that are unable to communicate with each other. We
`assumethat nodes eventually recover from crashes. For any
`pair of nodes, there will eventually be a time when they can
`communicate directly with each other after each crash.
`
`3 Information Bus Architecture
`
`The requirements of a "24 by 7" environmentdictated
`numerous design decisions that ultimately resulted in the
`Information Bus that we have today. We havedistilled those
`decisions into several design principles, which are high-
`lighted as they becomeapparentin this section.
`
`Because it is impossible to anticipate or dictate the
`semantics of future applications, it is inadvisable to hard-
`code application semantics into the core communications
`software—for performance reasons and because there is no
`“right” answer for every application [Cheriton93]. For
`example, complex ordering semantics on message delivery
`are not supported directly. Atomic transactions are also not
`supported: in our experience most applications do not need
`the strong consistency requirements of transactions. Instead,
`we provide tools and higher-level services to cover the
`range of requirements. This allows us to keep the communi-
`cations software efficient, while still allowing us to adapt to
`the specific needs of each class of customers. The following
`principle is motivated by requirements R2 and R3.
`
`
`1. Failures in our customer environments closely approximate
`fail-stop behavior; furthermore, protecting against the rare Byzan-
`tine failure is generally too costly.
`
`59
`
`Zynga Ex. 1016, p. 4
`Zyngav. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 4
`Zynga v. IGT
`IPR2022-00368
`
`

`

`FIGURE 1. Model of computation
`
`Service object
`
`Service object
`
`
`
` subscribe—_request
`
`local data
`
`
`Client appl.
`
`Client appl.
`
`Pl Minimal core semantics. The core communica-
`tion system and tools can make few assumptions
`about the semantics of application programs.
`
`Our model of computation consists of objects, both
`data objects and service objects, and two styles of distrib-
`uted communication:
`traditional
`request/reply
`(using
`remote procedure call [Birrell84]) and publish/subscribe,
`the hallmark of the Information Bus architecture. This is
`depicted in Figure 1. Publish/subscribe supports an event-
`driven communication style and permits data to be dissemi-
`nated on the bus, whereas request/reply supports a demand-
`driven communication style reminiscent of client/server
`architectures. For each communication style, there are dif-
`ferent levels of quality of service, which reflect different
`design trade-offs between performance andfault-tolerance.
`The next section elaborates on these mechanisms.
`
`An objectis an instance ofa class, and eachclassis an
`implementation of a type”. Our system modeldistinguishes
`between twodifferent kinds of objects: service objects that
`control access to system resources and data objects that
`contain information and that can easily be transmitted. A
`service object encapsulates and controls access
`to
`resources such as databases or devices and its local data
`objects. Service objects typically contain extensive state
`and maybe fault-tolerant. Because they tend to be large-
`grained, they are not easily marshalled into a wire format
`and transmitted. Instead of migrating to another node, they
`are invoked where they reside, using a form of remote pro-
`cedure call. Examples of service objects include network
`
`
`
`2. A type is an abstraction whose behavioris defined byan inter-
`face that is completely specified by a set of operations. Types are
`organized into a supertype/subtype hierarchy. A class is an imple-
`mentation of a type. Specifically, a class defines methods that
`implementthe operations defined in a type’s interface.
`
`file systems, database systems, print services, and nameser-
`vices.
`
`A data object, on the other hand, can be easily copied,
`marshalled, and transmitted. Such objects are at the granular-
`ity of typical C++ objects or database records. They abstract
`and encapsulate application-level concepts such as docu-
`ments, bank accounts, CAD designs, and employee records.
`They run the gamutfrom abstracting simple data records to
`defining complex behaviors, such as “recipes” for control-
`ling IC processing equipment.
`
`Each data objectis labelled with a swbject string. Sub-
`jects are hierarchically structured, as illustrated by the fol-
`lowing well-formed subject “fab5S.cc.litho8.thick.” This
`subject might translate to plant “‘fabS,” cell controller, lithog-
`raphystation “litho8,” and wafer thickness. Subjects are cho-
`sen by applications or users.
`
`The secondprinciple, P2, is motivated by requirements
`R2 and R3, and together with data abstraction, allows appli-
`cations to adapt automatically to changes in an object’s
`implementation and data representation.
`
`P2 Self-describing objects. Objects, both service and
`data objects, are “self-describing.” Each supports
`a meta-object protocol
`[Kiczales91], allowing
`queries aboutits type, attribute names,attribute
`types, and operation signatures.
`
`P2 enables our systems and applications to support
`introspective access
`to their
`services, operations,
`and
`attributes. In traditional environments, introspection is used
`to develop program analysis tools, such as class browsers
`and debuggers. In the Information Bus environment,intro-
`spection is used by applications to adapt their behaviors to
`change. This is key to building systems that can adapt to
`changeat run-time.
`
`60
`
`Zynga Ex. 1016, p. 5
`Zynga v. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 5
`Zynga v. IGT
`IPR2022-00368
`
`

`

`Introspection enables programmers to write generic
`software that can operate on a wide range of types. For
`example, consider a “print” utility. Our implementation of
`this utility can accept any object of any type and produce a
`text description of the object. It examines the object to
`determine its type, and then generates appropriate output. In
`the case of a complex object, the utility will recursively
`descend into the components of the object. Theprintutility
`only needs to understand the fundamental types, such as
`integer orstring, but it can print an object of any type com-
`posed of those types.
`
`The third principle, P3, enables new concepts and
`abstractions to be introduced into the system.
`
`P3 Dynamic classing. New classes implementing
`either existing or new types can be dynamically
`defined and usedto create instances. This is sup-
`ported for both service and data objects.
`
`P3 enables new types to be defined, on-the-fly. Note
`that P2 enables existing applications to make use of these
`new types without re-programmingorre-linking.
`
`To support dynamic classing, we have implemented
`TDL, a small,
`interpreted language based on CLOS
`[Keene89]. We have chosen a subset of CLOSthat supports
`a full object model, but that could be supported in a small,
`efficient run-time environment.
`
`3.1 Publish/Subscribe Communication
`
`To disseminate data objects, data producers generate
`them, label them with an appropriate subject, and publish
`them on the Information Bus. To receive such objects, data
`consumers swbscribe to the same subject. Consumers need
`not know whoproducesthe objects, and producers need not
`know whoconsumesor processes the objects. This property
`is expressed in principle P4. We call this model’ Subject-
`Based Addressing™,andit is a variant of a generative
`communication model [Carriero89]. This principle is moti-
`vated by requirements R1 and R2,andit allows applications
`to tolerate architectural changesonthefly.
`P4 Anonymous communication. Data objects are
`sent and received based on a subject, indepen-
`dent of the identities and location of data pro-
`ducers and data consumers.
`
`Subjects can be partially specified or “wildcarded” by
`the consumer, which permits accessto a large collection of
`data from multiple producers with a single request. The
`Information Busitself enforces no policy on the interpreta-
`tion of subjects. Instead, the system designers and develop-
`ers have the freedom and responsibility to establish
`conventions on the use of subjects.
`
`Anonymous communication is a powerful mechanism
`for adapting to software changes that occur at run-time. A
`
`new subscriber can be introduced at any time and will start
`receiving immediately new objects that are being published
`under the subjects to which it has subscribed. Similarly, a
`new publisher can be introduced into the system, and exist-
`ing subscribers will receive objects from it. Our model of
`computation does not require a traditional nameservicelike
`Sun’s NIS or Xerox’s Clearinghouse [Oppen83].
`
`In a traditional distributed system, whenever newser-
`vices are added to the system, or a service is being replaced
`with a new implementation,
`the name service must be
`updated with the new information. To use that information,
`all applications must be aware that the new services exist,
`must contact the nameservice to obtain the location of the
`new service, and then bindto the service. In our model, the
`new implementation need only use the same subjects as the
`old implementation; neither publishers nor subscribers must
`be aware of the change. Subject names can be reboundat
`any time to a new address, a facility that is more general
`than traditional late-binding.
`
`The semantics of publish/subscribe communication
`depends on the requirements of the application. The usual
`semantics we provide is reliable message delivery. Under
`normaloperation, if a sender and receiver do not crash and
`the network does not suffer a long-term partition, then mes-
`sages are delivered exactly once in the order sent by the
`same sender; messages from different senders are not
`ordered. If the sender or receiver crashes, or there is a net-
`work partition,
`then messages will be delivered at most
`once.
`
`A stronger semantics is guaranteed messagedelivery.
`In this case, the message is logged to non-volatile storage
`before it is sent. The message is guaranteed to be delivered
`at least once, regardless of failures. The publisher will
`retransmit the message at appropriate times until a reply is
`received. If there is no failure, then the message will be
`delivered exactly once. Guaranteed delivery is particularly
`useful when sending data to a database over an unreliable
`network.
`
`For local area networks, reliable publication is imple-
`mented with Ethemet broadcast. This choice allows the
`same data to be delivered to a large numberofdestinations
`without a performance penalty. Moreover, Ethernet broad-
`cast eliminates the need for a central communicationserver.
`Our current implementation uses UDPpackets in combina-
`tion with a retransmission protocol to implementreliable
`delivery semantics.
`
`In our implementation of subject-based addressing, we
`use a daemononevery host. Each application registers with
`its local daemon,and tells the daemon to which subjects it
`has subscribed. The daemon forwards each message to each
`application that has subscribed.It uses the subject contained
`in the message to decide which application receives which
`message.
`
`61
`
`Zynga Ex. 1016, p. 6
`Zynga v. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 6
`Zynga v. IGT
`IPR2022-00368
`
`

`

`Given the high traffic rates, Ethernet broadcast across
`wide area networks is undesirable. We could use IP multi-
`cast [Cheriton85], but unfortunately, commercial implemen-
`tations are not mature enough for mission-critical use.
`Therefore, wide area networks require additional communi-
`cation tools.
`
`Our implementation uses application-level “informa-
`tion routers” to solve the problem posed by wide area net-
`works. To the Information Bus,
`these routers look like
`ordinary applications, but they actually integrate multiple
`instances of the bus. Messages are received by one router
`using a subscription, transmitted to another router, and then
`re-published on another bus. Therouter is intelligent about
`which messages are sent to which routers: messages are
`only re-published on buses for which there exists a sub-
`scription on that subject; the router can also perform other
`functions, such as transforming subjects or logging mes-
`sages to non-volatile storage. Thus, the overall effect is to
`create the illusion of a single, large bus that is capable of
`publishing over any network.
`
`3.2 Dynamic Discovery
`
`In a distributed system, it is often necessary for an
`application to discover the identify of the participants in a
`protocol. For example, a new client needs to determine the
`set of servers that serve a subject; a new server needs to
`determine if any clients have pending requests; a replicated
`server needs to find the other servers that maintain the repli-
`cated data. Specifically, in Xerox’s corporate email service,
`a traditional distributed system, client mail applications find
`a mail service for posting mail messages by using an
`expanding ring broadcast technique, a kind of discovery
`protocol [Xerox88].
`
`In the Information Bus, the discovery protocolis in the
`form of two publications. One participant publishes “Who’s
`out there?” under a subject. The other participants publish “I
`am” and other information describing their state, if they
`serve the subject in question. Section 3.3 provides a specific
`example of this exchange. This approach preserves P4
`(anonymous communication). The subject alone is enough
`for one participant to make contact with its cohorts.
`
`The publish/subscribe communication model is well-
`suited to supporting a discovery protocol. Since publication
`does not require any boot-strapping or nameresolution,it
`can be the first step in a protocol. We are effectively using
`the networkitself as a name service. A subject is mapped to
`a specific set of servers by allowing the servers to choose
`themselves. The ““Who’s out there?” publication can contain
`service-specific information, so further refinements are pos-
`sible when selecting servers.
`
`3.3 Remote Method Invocation
`
`Remote method invocation (RMI), or remote procedure
`call, is the second means of performing distributed compu-
`tations. This paired request/reply satisfies the demand-
`driven style of interaction. Clients invoke a method on a
`remote server object without regard to that server object’s
`location, the server object executes the method, and the
`serverreplies to the client. Servers are named with subjects.
`
`Standard RMI provide exactly-once semantics under
`normal operation and at-most-once semantics in the pres-
`ence of failures. Customer-specific requirements such as
`exactly-once semantics, which guarantees that the method
`will be executed exactly once, even in the presence offail-
`ures, can be built on the a layer above standard RMI.
`
`There are two parts to RMI: discovering the server
`object for a client, and establishing a connection to that
`server over which requests and replies will flow. The dis-
`covery algorithm in our implementation employs publish/
`subscribe communication as described in Section 3.2. In
`this algorithm, the client searches for all servers by publish-
`ing a query message on a subject specific to that service.
`The servers receive this message, and then they publish
`their point-to-point address to all clients on the same sub-
`ject. Finally, the client invokes a service request on a server
`object using the point-to-point address. The point-to-point
`address can refer to any simple, connection mechanism,
`such as a TCP/IP connection [Postel81]. Figure 2 illustrates
`this protocol.
`
`FIGURE 2. RMI Protocol
`
`Client
`
`Server
`
`publish
`
`oint-to-point request
`
` ss
`
`More than one server can respond to requests on a sub-
`ject. Several server objects can be used to provide load bal-
`ancing orfault-tolerance. Our system allows an application
`to choose between several different policies. The servers
`can decide among themselves which one will respond to a
`request from the client. Alternatively, the client can receive
`every response from all of the servers and then decide
`whichserver the client wants to use.
`
`4 Adapters
`
`The Information Bus must allow for interaction with
`existing systems, as dictated by requirement R3. To inte-
`grate existing applications into the Information Bus we use
`
`62
`
`Zynga Ex. 1016, p. 7
`Zynga v. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 7
`Zynga v. IGT
`IPR2022-00368
`
`

`

`software modules called adapters. These adapters convert
`information from the data objects of the Information Bus
`into data understood by the applications, and vice versa.
`Adapters mustlive in two worlds at once,translating com-
`munication mechanisms and data schemas. Adapters often
`require P1 in order to be feasible.
`Adapters are essential for integrating the Information
`Bus into a commercial environment. In the factory floor
`example, our customer already had a Work In Progress
`(WIP) system with its own data schemas. We designed an
`adapterthat allowsthe existing WIP software to communi-
`cate with the Information Bus. This achievement demon-
`strates the flexibility of the Information Bus model:
`the
`existing WIP system is written in Cobol, and there is only a
`primitive terminalinterface. The adapter mustact as a vir-
`tual user to the terminal interface.
`
`The Object Repository is an exampleof a sophisticated
`adapter that integrates a commercially available relational
`database system into the Information Busarchitecture. The
`Object Repository maps Information Bus objects into data
`base relations for storage or retrieval. This mapping is
`driven by the meta-data of each object. Besides satisfying
`requirement R3 as an adapter, the design of the repository
`also supports dynamic system evolution, which satisfies
`requirement R2. Users may work freely in the object model
`without concerning themselves with the relational data
`model? [Codd70]. Using P2, the repository can automati-
`cally adaptthe relational model to the type structure of the
`data objects.
`
`The repository behaves as a kind of schema converter
`from objects to database tables, and vice versa. Users are
`thus insulated from any changes implementors may wish to
`make to the database representation of objects. For exam-
`ple, our conversion algorithm decomposes a complex object
`into one or more database tables and reconstructs a complex
`object from one or more database tables to answer a query
`from a user. This conversion respects the type hierarchy,
`enabling queries to return all objects that satisfy a con-
`straint, including objects that are instancesof a subtype. Old
`queries will still work even as new subtypesare introduced,
`which helpsto satisfy R2. This operation can be fully auto-
`mated; only the type information is necessary to do the
`transformation. When the repository needs to store an
`instance of a previously unknowntype,it is capable of gen-
`erating one or more new database tables to represent the
`new type.
`
`
`
`3. Our object modeldiffers significantly from the relational data
`model in the following way. A database table is a flat structure
`composed of simple data types and has little semantics, while an
`object may contain other objects, may have subtypes or super-
`types, and may have methods to manipulate instances ofthe type.
`
`The repository may be configured in any number of
`ways, dependingonthe application. For example, it may be
`configured as a capture server that captures all objects for a
`given set of subjects and inserts those objects automatically
`into the repository underthose subjects; it may also be con-
`figured as a query server to receive requests from clients
`andreturn replies.
`
`5 Example Application
`In the previous section, we discussed the Information
`Bus architecture primarily in terms of an abstract object
`model and two communication styles, and we espoused sev-
`eral principles of system design. To make the architecture
`more concrete, we present an example that shows how the
`various components fit together into a single application and
`that illustrates how an application can adapt to changes in
`the environment.In particular, we show howtheprinciples
`are applied in the context of the example, and discuss some
`software components that have been built on top of the
`Information Busandthatare installed at customersites.
`
`Figure 3 shows an example taken from a financial trad-
`ing floor, where traders must receive newsstories in near
`real-time. Two news adapters receive news stories from
`communication feeds connected to outside news services,
`such as Dow Jones and Reuters. Each raw newsservice
`defines its own news format. Each adapter parses the
`received data into an appropriate vendor-specific subtype of
`a commonStory supertype, and publishes each story on the
`Information Bus under a subject describing the story’s pri-
`mary topic (for example,“news.equity.gmc” for stories on
`General Motors). P1 ensuresthat the raw feeds do not have
`to support complex semantics.
`
`The figure depicts two applications that consume the
`Story objects: the Object Repository and the News Monitor.
`The News Monitor subscribes to and displays all stories of
`interest to its user. Incomingstories are first displayed in a
`“headline summary list.” This list format is defined by a
`“view”that specifies a set of named attributes? from incom-
`ing objects and formatting information. When the user
`selects a story in the summary list, the entire story is dis-
`played. This is accomplished by using the object’s meta-
`data to iterate through all ofits attributes and display them,
`as provided by P2.
`The Object Repository subscribes to all newsstories
`and inserts theminto a relational database. The repository
`converts Story objects into a database table format. This
`conversion is nontrivial because a story is a highly struc-
`tured object containing other objects suchaslists of “indus-
`try groups,” “sources,” and “country codes.” Every object
`
`4. “Attributes” of an object are often referred to as “instance vari-
`ables”or “fields.”
`
`63
`
`Zynga Ex. 1016, p. 8
`Zyngav. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 8
`Zynga v. IGT
`IPR2022-00368
`
`

`

`FIGURE 3. Brokerage Trading Floor
`
`Dow Jones
`
`Reuters
`
`NewsMonitor
`
`
`
`
`
`Information Bus
`
`
`
`
`
`Repository
`
`must be mapped into collections of simple database rela-
`tions.
`
`5.1 Graphical Application Builder
`
`mation Bus (P3). The Object Repository can dynamically
`generate extensions to the database schema to accommo-
`date such new types. Such generation may entail creating
`one or more new database tables for each new type,
`depending on the particular database representation. When
`We needed a simple, general way to access information
`instances of the new type are received, they are dynami-
`on the Information Bus and in the databasein a pleasing,
`cally converted to the new database schema. P2 implies that
`graphical form. It was notsatisfactory to buildasingle,
`the repository will be able to recognize and process objects
`Static solution, since each customerhasdifferent needs, and
`that have a new type.
`they change frequently. Instead, webuilt a graphical appli-
`cation builder, designed for applications with a graphical
`user interface builder. We have used it for several applica-
`tions, including the News Monitor example and the front-
`end to a Factory Configuration System, which is the system
`for storing factory control information.
`
`The application builder is an interpreter-driven, user
`interface toolkit. It combines the ability to construct sophis-
`ticated user interfaces with a simple, object-oriented lan-
`guage. All high-level application behavioris encodedin the
`interpreted language; only low-level behaviorthat is com-
`mon to manyapplications is actually compiled.
`The resulting applications are fully integrated into the
`Information Bus, providing access to all subjects and ser-
`vices.It is possible to examinethelist of available services
`on the Information Bus by using various nameservices.
`Services are self-describing, so users can inspect the inter-
`face description for each service. Using that information, a
`user can quickly constructa basic user interface for any ser-
`vice. This whole process requires only a few minutes, and
`typically no compilation is involved. Sometimes, a single
`user interface can be used to access several services, further
`reducing the amount of work involved.
`
`5.2 Dynamic System Evolution
`
`In this section weillustrate how our design principles
`support the requirementof dynamic system evolution.First,
`we consider the introduction of a new type into the Infor-
`
`Second, we consider what happens if a newservice of a
`completely different nature is introduced. Consider a Key-
`word Generator, as illustrated in Figure 4. The Keyword
`Generator subscribes to stories on major subjects and
`searches the text of each story for “keywords” that have
`been designated under several major“categories.” For each
`Story object, a list of keywords is constructed as a named
`Property? object of the Story object and published underthe
`same subject. It also supports an interactive interface that
`allows clients to browse categories and associated key-
`words.
`
`When the Keyword Generator comes on-line, the News
`Monitor will start receiving Property objects on the same
`subjects on whichit is receiving Story objects. According to
`P4, the News Monitor will be able to receive the new data
`immediately. Since properties are a general conceptin the
`architecture, it can reasonably be assumed the News Moni-
`tor is configured to accept Property objects, to associate
`them with the objects they reference, and to display them
`along with the attributes of an object when the object is
`selected. This capability can be set up using the scripting
`language of the Graphical Application Builder,
`
`
`5. The Object Management Group’s “Object Services Architec-
`ture” is the basis for the nomenclature used here. Accordingly, a
`“property” is a name-value pair that can be dynamically defined
`and associated with an object. In this example, the property name
`is “keywords” and the valueis the set of keywords found.
`
`64
`
`Zynga Ex. 1016, p. 9
`Zynga v. IGT
`IPR2022-00368
`
`Zynga Ex. 1016, p. 9
`Zynga v. IGT
`IPR2022-00368
`
`

`

`FIGURE 4. Adding a Key Word Generatorto the Brokerage TradingFloor.
`
`Dow Jones__
`
`Reuters
`
`News Monitor
`
`Information Bus
`
`
`
`
`The interactive interface of the Keyword Generator is
`an instance of a new service type. Using introspection, the
`News Monitor can enable the user to interact with this new
`type: menuslisting the operations in the interface can be
`poppedup, and dialogue boxes that are based onthe opera-
`tions’ signatures can lead the user through interactions with
`the new service.
`
`Hence, as soon as the Keyword Generator service
`comes on-line, the user’s world becomes muchricher, both
`in terms of information and of services. As seen by theuser,
`the new service and information is dynamically integrated
`into the environment. This showsthe adaptive flexibility of
`the overall approach. Note that the example requires only
`that the News Monitor support Property objects, but it does
`not require knowledge of how properties are generated, in
`compliance with P4.
`
`6 Related Work
`
`The Linda system, developed at Yale University, was
`the first system to support a generative communication
`model [Carriero89]. In Linda, processes generate tuples,
`which are lists of typed data fields. These generated tuples
`are stored in tuple space and persist until explicitly
`deleted. Other Linda processes may invoke operations to
`remove or read a tuple from tuple

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket