`
`Technical Presentation
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 1 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Why Strings?
`
`Communications systems need to be:
`
`Dynamic: networks, media types and end points are
`unpredictable
`
`Distributed: content, resources and processing need to
`be distributed to maximum networked elements
`
`Efficient: managing communications must be efficient
`for everything from overloaded back-end systems to
`resource constrained clients
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 2 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Potential Strings Enabled Systems
`
`• Multimedia applications:
`– Video Players, Browsers, Audio Players, Video Conferencing,
`VoIP systems, Video on Demand, Digital/Personal VCR
`• Networking:
`– NAT, Firewalls, Soft Routers, Soft Bridges, Remote Control
`• Server:
`– File Servers, Media Servers
`• Gateways:
`– Wireless Application Gateways, Media Gateways, Telephony
`Gateways, Web Portals, Content Management Systems
`• Peer-to-Peer:
`– File Sharing systems, Collaboration systems, Distributed
`Processing systems
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 3 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Devices
`Modules
`
`Client
`
`App
`
`Server
`
`Application Evolution
`
`Bit Pipe
`
`Control
`
`Bit Pipe
`
`Bit Pipe
`
`confidentialconfidential
`
`
`
`----------------
`
`Page 4 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`A Traditional Video Player
`
`App
`
`1. Application has built in knowledge of devices
`2. Application features are tied together
`3. Application components are not reusable in other
`contexts at runtime
`4. Application cannot be decomposed and distributed
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 5 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Strings Vernacular
`
`• Beads
`– separate the software’s internal activity from
`external relationship
`• Labels
`– externalize description of Beads
`• Mapping
`– Glue together Beads using their Labels
`• Paths
`– global context of a set of mapped Beads
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 6 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`A Strings Video Player
`
`Source and Sink Beads
`Transform Beads
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 7 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`A Look Inside
`
`Video Card
`
`Video Path
`
`Audio Path
`
`MPEG Path
`
`GL
`MPEG2
`Player
`
`MPEG2
`Video
`Decoder
`
`UI
`
`MPEG2
`Parser
`
`Speaker
`
`Audio
`Player
`
`Dolby
`Digital
`(AC3)
`
`File
`system
`
`Disk
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 8 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`A Distributed Video Player
`
`Video Card
`
`Video Card
`
`GL
`
`MPEG
`Player
`
`MPEG
`Video
`Decoder
`
`UI
`MPEG
`Encoder
`
`IP
`
`UDP
`
`RTP
`
`GL
`
`MPEG
`Player
`
`MPEG
`Video
`Decoder
`
`Framer
`
`Camera
`
`IP
`
`UDP
`
`Bit Pipe
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Speaker
`
`UI
`MPEG
`Parser
`
`RTP
`
`Audio
`Player
`
`Dolby
`Digital
`(AC3)
`
`Page 9 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Example: Distributed Media System
`
`Internet
`
`Audio Stream Source
`
`Request
`Source
`
`Audio
`Switch
`
`Audio
`Control
`
`Server Feature
`
`Discovery
`
`Heartbeat
`
`Audio
`Browser
`List
`
`File
`Globalizer
`
`Local
`Disk
`
`File
`Crawler
`
`Playlist
`Parser
`
`HTTP
`Server
`
`Portal
`Sock
`
`Speaker
`
`Heartbeat
`
`Audio
`Out
`
`Discovery
`
`Audio
`Control
`Synchronous
`
`Audio
`Content
`List
`
`Audio
`Receiver
`List
`
`Heartbeat
`
`Discovery
`
`Receiver Feature
`
`Browser Feature
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 10 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Benefits Over Traditional Systems
`
`1. Device knowledge encapsulated in Beads
`2. Features are re-configurable at initialization
`or run time
`3. Network services are dynamically discovered
`4. Beads can be re-organized to create a
`distributed service
`5. Behavior can be modified without requiring
`new code
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 11 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Platform Independence
`
`• Interface Libraries provide access to external
`resources such as drivers, OS services and
`API
`• Operating System Abstraction Layer (OAL)
`provides abstraction from underlying Kernel
`services such as access to physical memory,
`CPU scheduling and locks
`• Strings manages scheduling, memory, timers
`and module loading for consistency across
`underlying platforms
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 12 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Achieving Platform Independence
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 13 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Beads
`
`• Software components that encapsulate
`algorithms.
`• Composed of a series of inputs and outputs
`• Beads provide a service that when described
`to the core system can be used to create
`higher level services (features) on the fly.
`• Focused only on encapsulating internal
`algorithms not external relationships.
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 14 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Labels
`
`• Labels are names used to tag information
`with query-able attributes.
`• Labels are used to define inputs and outputs
`to Beads.
`• Labels can be arbitrarily rich.
`• A registry in Strings is used to name space
`created by the available labels.
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 15 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Mapping
`
`• The Mapping Engineis a system level service for
`determining what Beads are necessary to handle a
`given type of media within a given set of constraints.
`• The Mapis a set of rules to impose upon the graph
`search the Mapping Engine performs.
`• Mapping is adaptive to the changing environment.
`• Mapping is rules based meaning the determination of
`Beads can be influenced by external rules (security,
`network bandwidth etc..)
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 16 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Paths
`
`• Paths capture the global context of stream of
`data through a set of Beads.
`• Paths can be extended across machines
`boundaries.
`• Paths are efficient abstractions for managing
`streams of data.
`• Paths are dynamically constructed and
`destructed.
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 17 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Mapping
`
`• Framework to string modules from source device to
`sink device(s)
`• Necessary pieces
`– Resource Discovery and Route Selection
`– Code Module Installation
`
`Resources (Devices)
`
`SrcDev
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`SnkDev
`
`Page 18 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Input to the process
`
`• Media object
`– Requirements to play
`• User
`– Preferences
`• Node
`– Capabilities and Devices (Resources)
`• Systems Integrator
`– Rules of Composition
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 19 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`End-to-End Mapping
`• Global Path Construction
`source
`intermediaries
`
`sink
`
`Resource Discovery and Route Selection
`• Local Path Construction
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 20 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Global Path Construction
`
`• Resource Discovery
`– Directory Service (Node Capabilities)
`• Route Selection
`– Functionality
`Locate sufficient resources for function chains
`Pattern Match (Rules with Node Capabilities)
`– Connectivity
`Issue: Limiting the search space
`Shortest Path/ K-shortest Paths / Overlay
`
`Assume we are given a single route …….
`
`----------------
`
`confidentialconfidential
`
`Page 21 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Dynamic
`
`• Identify optimal set of Beads to handle a data
`flow
`• Discover Beads on remote nodes to distribute
`processing
`• Adjust Paths as necessary to adapt to
`changing QoS and resources
`• Reroute Paths based on user input or system
`input
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 22 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Distributed
`• Name Space
`• Distributing Content
`• Distributing Resources
`• Distributing Control
`• End to End Paths
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 23 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Efficient
`
`• Vertical
`Scheduling
`• QoS
`• Logical Paths
`• Physical Paths
`• Code Reuse
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 24 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Beads
`
`• Beads are autonomous units of
`functionality which provide a well-
`defined service.
`• The service provided by a Bead is
`described by its Schema.
`• Instantiating a Bead requires
`configuring it to participate in higher-
`level services called Features.
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 25 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Features
`
`• A Feature is a collection of Beads and/or
`other Features
`• Features are implemented in terms of the
`services provided by the elements (Beads &
`sub-Features) of the Feature.
`• The service provided by a Feature can be
`described by the same Schema as the
`Schema used for a Bead
`• Feature can be thought of as a composite
`Bead.
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 26 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Service
`
`• Features can be configured in such a
`way as to exported to the network
`• Other hosts in the network can leverage
`that Feature either at runtime, via
`remote mapping
`• …or at configuration time in the
`construction of higher level Features.
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 27 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Example Schemas
`
`<BEAD_SCHEMA name="mpegDecoder"
`sessionKeyType="device"
`configurationFileType="speakerConfigurationFileFor
`mat" />
`<INPUT_EDGE name="multimedia" format="mp4" />
`<OUTPUT_EDGE name="audio" format="pcm" />
`<OUTPUT_EDGE name="video" format="bmp" />
`</BEAD_SCHEMA>
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 28 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Strings Registry
`
`• Rich & Diverse name space (e.g. files, devices,
`resources, media types, network addresses)
`• Rich Querying language (e.g. where are my jazz
`files? What network service provides mpeg2 decoding
`with support for RTP framing?)
`• Distributed Discovery (e.g. can support discovery
`services such as UPnP or Strings Discovery Protocol)
`• Extensible (e.g. support NTFS, LDAP, Gnutella, UDDI)
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 29 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Microsoft
`
`• DirectX – multimedia framework
`• NDIS – network framework
`• COM – OO framework
`• C#, .NET – distributed services framework
`• UPnP – discovery services
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 30 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Sun
`
`• Java – OO framework for platform
`independent applications
`• Jini – discovery services and API for
`distributed applications on Java
`• JXTA – A peer to peer framework
`
`
`
`----------------
`
`
`
`confidentialconfidential
`
`Page 31 of 31
`
`Implicit Exhibit 2002
`Sonos v. Implicit, IPR2018-0766, -0767
`
`