`
`Juno Phase 0 Document
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`1
`
`Page 1 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Ó 2000/2001 BeComm Corporation™ All Rights Reserved
`
`This document is protected by copyright. No part of this document may be reproduced in
`any form, by any means, without prior written authorization from BeComm
`Corporation™.
`
`The information contained in this document may be protected by one or more U.S.
`patents, foreign patents, or pending applications.
`
`Trademark Information
`
`The following trademarks or registered trademarks of BeComm Corporation™ in the
`United States and/or other countries may or may not appear in this document:
`
`BeComm™, BeComm Corporation™, Strings™, Beads™, HotBeads Service™
`
`All other product names mentioned herein are the trademarks or registered marks of their
`respective owners.
`
`Documentation Warranty Information
`
`This document is provided As Is, without warranty of any kind, either expressed or
`implied, including but not limited to the implied warranties of merchantability, fitness for
`a particular purpose, or non-infringement.
`
`This document could include technical inaccuracies or typographical errors. Changes are
`periodically added to the information herein. These changes will be incorporated in new
`editions of the document. BeComm Corporation™ may make improvements and/or
`changes in the product(s) or program(s) described in this document at any time.
`
`Confidentiality Information
`
`The contents of this document are BeComm Corporation’s confidential material and are
`intended only for those entities—including their agents, employees, and legal
`representatives—who have been expressly permitted by BeComm Corporation™ to view
`the contents. Any attempt to review, read, or disseminate, by any means, the contents of
`this document without prior written permission from BeComm Corporation™ are
`expressly prohibited. All contents herein should be handled in accordance with any and
`all Non-Disclosure Agreements or any other such agreements that limit the use of this
`document or any other documentation belonging to BeComm Corporation™.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`2
`
`Page 2 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Table Of Contents
`
`Table Of Contents .............................................................................................................. 3
`Preface ................................................................................................................................ 5
`Document Contributors .................................................................................................. 5
`Audience ........................................................................................................................ 5
`Purpose and Scope ......................................................................................................... 5
`Communication ..........................................................................................................5
`Brainstorming .............................................................................................................5
`Documentation Conventions .......................................................................................... 6
`Terminology ................................................................................................................... 6
`What Is AudioPort? ........................................................................................................... 7
`Media Server .................................................................................................................. 7
`Adapter ........................................................................................................................... 7
`Remote Control .............................................................................................................. 7
`Media Center .................................................................................................................. 7
`What Is Juno? .................................................................................................................... 8
`Transformation ............................................................................................................... 8
`Routing ........................................................................................................................... 8
`Delivery .......................................................................................................................... 8
`Assumptions ....................................................................................................................... 9
`Licensing ........................................................................................................................ 9
`Content URLs ................................................................................................................ 9
`Feature Scope ................................................................................................................. 9
`AudioPort/Juno Interface Location ................................................................................ 9
`Juno Network Stack ....................................................................................................... 9
`Adapters Are Not Audio Sources .................................................................................. 9
`Requirements ................................................................................................................... 10
`Source Content Variants .............................................................................................. 10
`Encoding Format ......................................................................................................10
`Local/Remote & Live/Recorded ..............................................................................10
`Codec Integration ......................................................................................................... 10
`Integration Method ...................................................................................................11
` Licensing .........................................................................................................11
` RealAudio Integration ....................................................................................11
`Track Control ............................................................................................................... 11
`Core Commands .......................................................................................................12
`Recorded Content Commands .................................................................................12
`Events .......................................................................................................................13
`Unsupported Commands ..........................................................................................13
`Errors ........................................................................................................................13
`Playlist Control ............................................................................................................ 14
`Commands ...............................................................................................................14
`Events .......................................................................................................................14
`Multiple Adapters ........................................................................................................ 14
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`3
`
`Page 3 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`Multiplexing .............................................................................................................14
`Synchronization .......................................................................................................15
` Multiplexing vs. Multiple Independent Sessions .............................................15
`Scalability .................................................................................................................15
`Performance ................................................................................................................. 15
` Non-Juno Performance Characteristics ...........................................................16
`Quality of Service ........................................................................................................ 16
`Metrics .....................................................................................................................16
`Security ........................................................................................................................ 16
`Authentication ..........................................................................................................16
`Authorization ...........................................................................................................17
`Encryption ................................................................................................................17
` Additional Security Requirements ...................................................................17
`Portability ..................................................................................................................... 17
`Administration ............................................................................................................. 17
` Installation & Uninstallation ............................................................................17
` Extensibility .....................................................................................................17
`Internationalization ...................................................................................................... 17
`Media Center ................................................................................................................ 18
`Operating System .....................................................................................................18
`Hardware ..................................................................................................................18
`Adapter ......................................................................................................................... 18
`Operating System .....................................................................................................18
`Hardware ..................................................................................................................18
`CES Demo ................................................................................................................... 18
`Training ....................................................................................................................19
` Adapter Hardware for CES Demo ...................................................................19
`Issue Exploration ............................................................................................................. 20
`Decoding Architecture ................................................................................................. 20
`Adapter Decoding ....................................................................................................20
`Media Center Transcoding .......................................................................................20
`Playlists ........................................................................................................................ 21
`Strings-based Playlists .............................................................................................21
`AudioPort-based Playlists ........................................................................................21
`State Synchronization .................................................................................................. 21
`Network Integration ..................................................................................................... 21
`Network Protocols ....................................................................................................... 22
`Preliminary Project Schedule ......................................................................................... 23
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`4
`
`Page 4 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Preface
`
`Document Contributors
`Adam Greene
`Guy Carpenter
`Scott Bradley
`Edward Balassanian
`
`Producer; Engineering Mentor
`Engineering Master
`Development Manager
`President; CEO
`
`Audience
`The intended audience of this document is members of the BeComm Development Team
`and members of Jupiter’s AudioPort team.
`
`Purpose and Scope
`This document is the first milestone in defining the product (Juno) that BeComm will be
`building as part of Jupiter’s AudioPort initiative. The primary goals of this phase are
`communication and brainstorming.
`
`Communication
`The primary purpose of this phase is to make sure we're speaking the same language. We
`will summarize what we understand to be the project’s requirements including
`assumptions and open issues.
`
`Brainstorming
`In addition, we will highlight what we believe to be critical problems areas and present
`alternative solution approaches.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`5
`
`Page 5 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`
`
`
`
`
`
`Documentation Conventions
`The following conventions are used in this document:
`
`
`We use this icon to highlight open issues or questions that need to be
`resolved in phase 1.
`We use this icon to highlight areas of extreme importance or risk to the
`project.
`
`Terminology
`When possible, we will use terms defined in Jupiter’s AudioPort Product Requirements
`Document. Terms such as Media Server should be interpreted to mean the Juno portion
`of the AudioPort Media Server unless the context dictates otherwise.
`
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`6
`
`Page 6 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`What Is AudioPort?
`Jupiter’s AudioPort is an integrated home audio network that enables intelligent audio
`services in the home environment. In this document, AudioPort refers specifically to
`AudioPort Version 1 for which BeComm is developing Juno.
`AudioPort’s capabilities include audio streaming, jukebox functionality, CD ripping,
`personal listening profiles, and e-commerce transactions for acquiring Internet based
`audio content and services. AudioPort consists of four components: Media Server,
`Media Center, Adapter, and Remote Control.
`
`Media Server
`The Media Server resides on a Windows PC and manages a database of audio content on
`the PC. If an Internet connection is available, the Media Server can also incorporate
`internet-based audio content and services into the database. A single Media Server may
`service multiple Adapters concurrently. The Media Server has no user interface. Users
`interact directly with one of the other components, but most commands are transmitted to
`the Media Server for processing.
`
`Adapter
`The Adapter component is physically attached to a home audio device that:
`•
`relays commands from the Remote Control to the Media Server.
`•
`relays responses from the Media Server to the Remote Control.
`•
`decodes and relays audio content from the Media Server to the Adapter’s
`associated home audio device.
`An Adapter is served by a single Media Server. A subset of the controls available at the
`Media Center is available on the Adapter.
`
`Remote Control
`The Remote Control provides remote access to a subset of the controls available at the
`Media Center. The Remote Control sends commands to an Adapter that in turn relays
`them to the Media Server.
`
`Media Center
`The Media Center component is a GUI application for administering the Media Server
`and Adapters. The Media Center sends commands to the Media Server for processing.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`7
`
`Page 7 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`What Is Juno?
`
`Juno is BeComm’s code name for subset of the AudioPort product being developed by
`BeComm. Juno will be built using Strings, BeComm’s flagship technology platform for
`networking, communications and multi-media products. Strings consists of the
`Distributed Media Engine, the magic that manages the routing, transformation, and
`delivery of media on appliances; and Beads, the software components that are
`dynamically strung together to create end applications.
`Juno will leverage the Strings platform to provide streaming audio services between the
`AudioPort Media Server and Adapter(s).
`
`Transformation
`Juno performs any necessary transcoding and/or decoding of content. This includes
`encryption, decryption, compression, and decompression or the audio content sent from
`the Media Server to an Adapter.
`
`Routing
`Juno routes content from the Media Server to the appropriate Adapter(s). The dynamic
`nature of Strings-based media routing will make it easy to support additional source
`content types, codecs, and network architectures in the future.
`
`Delivery
`Juno seamlessly manages both network and endpoint resources to ensure that high-
`quality audio is delivered to Adapters.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`8
`
`Page 8 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Assumptions
`
`In this section, we attempt to capture the basic assumptions that we have used to bound
`this analysis process.
`
`Licensing
`Jupiter will obtain licenses for all third party software to be integrated into Juno before
`Juno is released (see also Codec Licensing below).
`
`Content URLs
`All content referenced by Juno will be addressable by a URL.
`
`Feature Scope
`Juno is primarily responsible for streaming audio content from the Media Server to one or
`more Adapters. Examples of AudioPort features not implemented by Juno include user
`profile management and e-commerce functionality.
`
`AudioPort/Juno Interface Location
`All Juno commands will be sent to a well-known network port on the Media Server, and
`possibly another well-known network port on the Adapter as well. In other words, Juno
`will not be used to transmit commands from the Remote to the Adapter.
`
`Juno Network Stack
`The Juno network stack will not be used for non-Juno networking such as e-commerce
`transaction. In other words, it is not directly accessible for general IP networking
`services. An implication of this is that Juno will not provide Internet connection sharing
`to Adapters. Adapters are assumed to communicate with the Media Server only. If an
`Internet connection is available to Juno, it is assumed to be local to the Media Server.
`
`Adapters Are Not Audio Sources
`We assume that an AudioPort Adapter receives content from the Media Server, but it
`never sends content to the Media Server. This means that an Adapter cannot, for
`example, stream to the Media Server FM radio content from the stereo receiver to which
`it is attached.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`9
`
`Page 9 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Requirements
`
`In this section, we attempt to verify that we understand the requirement by which the
`success of Juno will be measured. We have categorized Juno requirements as follows:
`
`Source Content Variants
`AudioPort requires support for multiple types of source content. By source content we
`mean the content in its original form on the Media Server before Juno performs any
`transformations on it. This does not necessarily correspond to the formats that are sent
`over the wire and decoded on the Adapter.
`While some of the variants are abstracted by SDKs such as Real Audio and Windows
`Media, we have found that subtle aspects of behavior tends to be inconsistent; therefore,
`it is essential for a test plan to cover all variants. There are two independent variables to
`consider:
`
`Encoding Format
`By this we refer to the codec that was used to encode the source content. The following
`will be supported:
`• Real Audio
`• Windows Media
`• MP3
`Additional source content types such as Liquid Audio had previously been discussed, but
`it has been decided not to include these in Juno. See also Codec Integration below.
`
`Local/Remote & Live/Recorded
`These variants address whether the content resides on the Media Server or on the Internet
`and whether it is streamed live or recorded. Not all of these apply to all encoding
`formats:
`• Local (Recorded) – This category refers to recorded content on the Media Server
`such as content ripped from audio CDs or downloaded from an Internet site such
`as MP3.com.
`• Remote Recorded– This category refers to recorded content that resides on the
`Internet.
`• Remote Live – This category refers to live content streamed from the Internet
`such as Internet radio stations.
`
`Codec Integration
`Juno depends on the integration of third party codecs for the processing of audio content.
`Specifically, the following codecs are anticipated to be required:
`• MP3
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`10
`
`Page 10 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`• AAC
`• RealAudio
`• Windows Media
`• Meridian Packed PCM
`With regard to the above codecs, there are two issues to consider:
`
`Integration Method
`Strings provides 2 different integration options for enabling content of a particular format
`(see Decoding Architecture below in Solutions Ideas).
`
` Licensing
`Jupiter must obtain licensing for each codec. The type of license required may depend on
`the nature of the integration. Specifically, Jupiter is attempting to license Real Audio and
`Windows Media codecs in support of decoding Real Audio and Windows Media content
`on the Adapter (see Decoding Architecture below in Solutions Ideas). Since it is not
`expected that the contracts for these licenses will be finalized before the end of Juno
`Phase 1, the success of the project will be contingent on the future acquisition of those
`licenses. We consider this a substantial risk to the project.
`
` RealAudio Integration
`Prior experience with this SDK has proven to be a significant risk area. Examples of
`problems areas include:
`•
`Inconsistent support for different media types supported by the SDK.
`•
`Inconsistent behavior between different versions of the SDK that claim
`backward compatibility.
`• Difficulty integrating RealAudio installations.
`• Lack of full playlist functionality.
`• Minimal documentation.
`• No support.
`
`Track Control
`While Juno has no end user interface, AudioPort requires an interface for controlling the
`playback and routing of audio content implemented by Juno. The term track refers to an
`individual piece of audio content tracks in one of the supported source content formats
`(see Source Content Variants below) that an end user would typically interact with using
`commands such as play, stop, pause, etc. Examples of tracks include MP3 files, and Real
`Audio or Windows Media radio stations. Note that for radio stations, a track does not
`correspond to an individual song.
`AudioPort requires the following track controls:
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`11
`
`Page 11 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Core Commands
`The following commands apply to all types of content:
`• Add Adapter – Adds the specified adapter to the list of target adapters for a
`track.
`• Remove Adapter – Removes the specified adapter from the list of target adapters
`for a track.
`• Play – Starts playback of a stream. If a stream is already playing for that
`adapter, the previous stream is stopped (quenched).
`• Stop – Stops playback of the current stream.
`• Get Song Attributes – AudioPort requires the ability to obtain information about
`the currently playing song. Specific attributes to be supported are:
`o Song name
`o Artist name
`o Album name
`o Genre
`o Length (recorded content only)
`• Get Stream Status – Requests status information about a stream such as the
`current playback state (e.g. playing, paused, stopped).
`
` The set of states and associated information is TBD.
`
`
`
` Open/Play and Stop/Close
`In prior solutions of this type, we have made distinctions between:
`• Opening and playing
`• Stopping and closing
`This can be important for Internet content: Stopping and Playing does not incur a
`reconnect penalty while Closing and Opening requires a new Internet connection.
`
`Recorded Content Commands
`The following commands apply to recorded content only:
`• Pause – Pauses the current stream.
`• Resume – Continues playback after a Pause.
`• Seek – Begin playing from a different position in the stream.
`It is noteworthy that Pause is supported only for recorded content. Juno will not provide
`the ability to pause, resume, and seek within live content.
`
` Resume vs. Play
`Juno will keep track of the current playback state (e.g. playing, paused, stopped) and will
`validate requests against the current state (e.g. a stop command in a stopped state is
`ignored). Because of this, it is not strictly necessary to have separate Play and Resume
`commands in the Juno control interface since Juno will know the intent based on the
`current playback state. Overloading the Play command in this way:
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`12
`
`Page 12 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`• minimizes the control interface
`•
`avoids AudioPort having to check playback state to determine whether to issue a
`Play or Resume command
`avoids introducing additional error cases when the command does not match the
`current state (e.g. Resume issued while Stopped)
`Jupiter has been made aware of this alternative, and has expressed a preference for
`keeping Resume & Play separate.
`
`•
`
`Events
`By events, we do not mean to imply any particular architecture. Rather, this section
`attempts to capture the information that is transmitted from Juno to AudioPort in contrast
`with the above commands that are transmitted from AudioPort to Juno.
`
`AudioPort requires notification of the following events:
`• Beginning – The track has started playing. Stop, Pause, and Seek commands are
`permitted.
`• Stopped – The track has stopped. Play commands are permitted.
`• Paused – The track is paused. Play, Stop, and Seek commands are permitted.
`• Resumed – The track has resumed playback after being Paused. Stop, Pause,
`and Seek commands are permitted.
`• Buffering – The track is buffering. Stop commands are permitted. This
`generally an interim state on the way to Playing.
`• Metadata Available – Additional non-audio data has been encountered in the
`track.
`
` The details of the event are TBD.
`
` Progress Updates
`We suggest the addition of progress updates for potentially long-running operations such
`as connecting and starting playback so that the Media Center can display a progress
`indicator.
`Unsupported Commands
`Juno will not support the following:
`• Volume Control
`• Mute
`
`Errors
`AudioPort requires notification of the following error conditions:
`• Content not found
`• Unable to connect to server (for remote content only)
`• Disconnected from server (for remote content only).
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`13
`
`Page 13 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
` Unmapped Error Information
`AudioPort requires a mechanism for receiving errors information that cannot be mapped
`to one of the above events. We suggest that Juno publish events in XML format. The
`use of XML would enable Juno to communicate errors from a wide variety of sources in
`a consistent yet flexible manner. The schema of these XML documents is TBD.
`
`Playlist Control
`The term playlist refers to a sequence of discrete tracks that an end user would typically
`interact with using commands such as next and previous. An example of a playlist is an
`M3U file. We explore playlist architecture further in Playlists below in Solution Ideas.
`This section describes playlist functionality independent of the architecture alternatives
`explored below in Playlists under Solution Ideas.
`
`Commands
`AudioPort requires following playlist commands:
`• Next – Move to the next track in the playlist.
`• Previous – Move to the previous track in the playlist.
`
` Jump
`We believe that end users desire the ability to jump to an arbitrary track in a playlist in
`addition to the next or previous track. The jump command could potentially be used in
`place of next and previous by mapping next and previous commands to appropriate jump
`commands.
`
`Events
`AudioPort requires notification of the following playlist events:
`• Start of track
`• End of track
`• End of playlist
`
`Multiple Adapters
`AudioPort requires that a single Media Server be capable of concurrently supporting
`multiple Adapters.
`
`Multiplexing
`When the end user desires to hear the same content on multiple adapters concurrently,
`Juno will multiplex the content to avoid unnecessary use of resources. This is especially
`important for Internet content to avoid multiple Internet connections. Multiple Adapters
`may be specified when a stream is started or additional Adapters may be added to a
`currently playing stream.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`14
`
`Page 14 of 23
`
`Implicit Exhibit 2009
`Sonos v. Implicit, IPR2018-0766, -0767
`
`
`
`
`
`Synchronization
`When multiplexing to multiple adapters, Juno will make a best effort to keep the
`playback at the Adapters synchronized. Both Jupiter and BeComm recognize that true
`synchronization is an unsolved computer science problem, but a best effort will be made
`in this regard.
`
` Multiplexing vs. Multiple Independent Sessions
`The AudioPort/Port Juno interface may need to distinguish between the following
`scenarios:
`• A single user listening to content simultaneously on multiple Adapters.
`• Multiple users listening to the same content independently on multiple Adapters.
`
`Scalability
`For Juno, scalability regards the behavior of the system as additional load is placed on the
`Media Server.
`Graceful Degradation
`AudioPort requires that the quality of existing streams not be compromised to start
`additional streams. Juno will attempt to detect available resources and reject requests for
`new streams when sufficient resources are unavailable.
`Bandwidth Allocation (DEFERRED)
`In order to ensure a high quality listening experience, Jupiter would like to be able to
`leverage bandwidth allocation schemes present in underlying network architectures such
`as HomeRF. The end-to-end nature of a Strings audio stream will allow Juno to leverage
`such technologies as they become available. However, this feature is out of scope for this
`project.
`Metrics
`AudioPort specifies the following scalability metrics:
`•
`Juno will be capable of supporting 5 concurrent audio streams consisting of 4
`Adapters and a stream playing locally on the Media Center PC.
`Juno will be capable of rendering a single stream while consuming less than
`10% of the CPU capabilities on a minimal Audio Port Media Server PC (see
`Media Server Hardware below).
`
`•
`
`Performance
`AudioPort has outlined the following performance requirements:
`• For local content only, less than 0.5s latency from when a user requests play
`until they begin hearing audio. In order to meet this requirement, Jupiter has
`suggested the use of stream ahead technology for local content. In contrast to
`the traditional buffering approach used by solutions like RealAudio (and Juno
`for remote content), stream ahead involves a trade off of reliability for latency
`during the beginning of a stream.
`• Less than 0.25s latency from when a user submits a request on the Remote
`Control until they receive some feedback on that request.
`
`BeComm Corporation -- Juno Phase 0 Document – December 3, 2000
`
`15
`
`Page 15 of