Download Systems and methods for dynamic access to program features

Transcript
USOO8909777B2
(12) United States Patent
(10) Patent N0.:
Chasen et a].
(54)
(45) Date of Patent:
SYSTEMS AND METHODS FOR DYNAMIC
ACCESS TO PROGRAM FEATURES
(75)
Inventors: Jeffrey M. Chasen, Bellevue, WA (US);
J oshlla E- Elman, Bellevue, WA (Us)
(73)
Assignee: Intel Corporation, Santa Clara, CA
Notice:
Subject to any disclaimer, the term of this
patent is extended or adjusted under 35
4/1992 Waite et al.
8/1992 Corbln
5,222,134 A
5,235,642 A
6/1993 Waite et a1.
8/1993 Wobber et a1.
App1.No.: 12/962,450
(22)
Filedr
8/1998 Coley et a1.
FOREIGN PATENT DOCUMENTS
0567800 A1
Jun 9’ 2011
Continuation of application No. 10/185,526, ?led on
Jun 26 2002 now abandoned
(51) Int CL
(52)
(58)
11/1993
OTHER PUBLICATIONS
Limewire 4.9 User Manual, Web page at http://WWW.1imeWire.com/ .
?les/support/ usergu1d49.pdf, 2000-2006 (24 pgs.).
(Continued)
Related US. Application Data
(63)
Halter et 31‘
East et al.
Grundy
Fahn et 81.
Ste?k et a1.
12/1998 _Benson et al'
(commued)
EP
Prior Publication Data
Us 2011/0138445 A1
6/1994
6/1994
12/1994
3/ 1995
5/1997
5’845’281 A
Dec- 7, 2010
(65)
A
A
A
A
A
5,790,664 A
U.S.C. 154(b) by 119 days.
(21)
Dec. 9, 2014
5,103,476 A
5,138,712 A
5,319,705
5,321,841
5,375,240
5,400,403
5,629,980
(Us)
(*)
US 8,909,777 B2
Prlmary Exammer i Kenny Lln
_
(74) Attorney, Agent, or Firm * Stoel R1ves LLP
(57)
ABSTRACT
G06F 15/173
(2006-01)
The multimedia client-server system provides a multimedia
G06F 21/10
(2013.01)
client program With a set of features and a server system that
US. Cl.
creates feature access information that determines Which fea
CPC .................................... .. G06F 21/10 (2013.01)
USPC ........................................................ .. 709/225
tures are to be made available to a particular user. The server
system may send the feature access information to the user
Field of Classi?cation Search
such that the information is accessible to the multimedia
USPC ........................................................ .. 709/225
client program. The multimedia client program may dynami
See application ?le for complete search history,
References Cited
cally control the user’s access to the program’s feature set by
using the feature access information to validate and verify the
user. In addition, the feature access information may be
US. PATENT DOCUMENTS
may periodically update the feature access information, such
(56)
accessible to the server system, such that the server system
4,658,093 A *
4,888,798 A *
4,919,545 A
5,023,907 A
4/1987
12/1989
Hellman ....................... .. 705/52
Earnest ......................... .. 705/54
as, for example, When the user accesses the server system to
download multimedia content.
4/1990 Yu
6/1991 Johnson et al.
37 Claims, 8 Drawing Sheets
650
INVALIDATE FEATURE
ACCESS INFORMATION
550
c
(SEE FIGURE 7)
690
ERROR MESSAGE
US 8,909,777 B2
Page 2
(56)
References Cited
U_S_ PATENT DOCUMENTS
5,854,891
5,862,325
5910987
5,933,087
5,953,005
6,044,471
A
A
A
A
A
A
6,070,171
6,085,224
6,108,420
6,199,113
A
A
A
B1
12/1998
1/1999
6/1999
8/1999
9/1999
3/2000
5/2000
7/2000
8/2000
postlewaite et al‘
Reed et al‘
Ginter et 31‘
Wright et al‘
Liu
Colvin
Snyder et al.
vvagner
Larose et al‘
3/2001 Alegre et al‘
6,205,480 B1 *
3/2001
6,213,391 B1
6,233,567 B1
6,248,946 B1
4/2001 Lewis
5/2001 Cohen
6/2001 Dwek
Broadhurst et a1. ........ .. 709/225
6/2002 Dutta et al.
2002/0076044
2002/0112056
2002/0116082
2002/0120579
2002/0129151
2002/0131561
2002/0143944
2002/0152400
2002/0156870
A1
A1
A1
A1
A1
A1
A1
A1
A1
6/2002
8/2002
8/2002
8/2002
9/2002
9/2002
10/2002
10/2002
10/2002
Pires
Baldwin et al.
Gudorf
Kawaguchi et al.
Yuen et al.
Gifford et al.
Traversat et al.
Zhang et a1.
Boroumand et al.
2002/0156917
2002/0161898
2002/0161990
2002/0164025
A1
A1
A1
A1
10/2002
10/2002
10/2002
11/2002
Nye
HaItop et al.
Zhang et al.
RaiZ et al.
2002/0174010 A1
11/2002 R199, 111
2002/0178385 A1
2002/0186232 A1
2002/0186843 A1
11/2002 Dent et al.
12/2002 Watanabe et al.
12/2002 Weinstein et al.
6,249,868 B1
6/2001
2003/0093507 A1 *
5/2003
6,366,907 B1
4/2002 Fanning et al‘
2003/0115069 A1
6/2003 Pence et al.
6,374,300 B2
6,374,359 B1 *
4/2002 Masters
4/2002 Shrader et al. .................. .. 726/5
2003/0120923 A1 *
2003/0135745 A1
6/2003 Gilman et al. .............. .. 713/170
7/2003 Llu
6,393,562
6,421,729
6,446,211
6,453,305
6,453,353
6,460,140
6,463,534
B1
B1
B1
B1
B1
B1
B1
Sherman et al‘
2002/0073204 A1
5/2002
7/2002
9/2002
9/2002
9/2002
10/2002
10/2002
Maillard
Paltenghe et al.
Colvin
Glassman et al‘
Win et 31‘
Schoch et 31‘
Geiger et al‘
2003/0149738
2003/0212710
2003/0212804
2003/0217011
2003/0231102
2004/0003079
2004/0015962
A1
A1
A1
A1
A1
A1
A1
8/2003
11/2003
11/2003
11/2003
l2/2003
1/2004
1/2004
6,466,983 B1 *
10/2002
Strazza ....................... .. 709/227
2004/0030537 A1
2/2004
6,490,684 B1
6,539,424 B1
6,567,107 B1
12/2002 Fenstemaker et al.
3/2003 Dutta
5/2003 Stannard
6,594,765 B2
7/2003 Sherman et al‘
6,675,205 B2
6,694,384 B1
1/2004 Meadway et al.
2/2004 Moeller et al.
6,735,627
5/2004
B2
Shapiro ....................... .. 709/222
Jacobs et al.
Guy
_
Hashem1
Peinado et al.
Fisher
Aiu et al.
Carbone et al.
Barnard
2004/0044757 A1
2004/0089346 A1
2004/0210765 A1
3/2004 Baker_
5/2004 SutardJa
10/2004 Erickson
2005/0240295 A1
10/2005 Vilcauskas et al.
OTHER PUBLICATIONS
Urien
_
_
_
_
6,742,023 B1
5 /2004 Fanning et al‘
Smart Comput1ng-Ed1tor1al, “How to . . . Use A1mster, Chat & Share
6,742,176 B1
6,754,715 B1
5/ 2004 Million et al.
6/2004 cannon et 31'
Digital Music Files With a Single Application”, web page at http://
www.smartcomputing.com/editorial/article.
ggigjt 31'
6,807,559 B1 * 10/2004 Budhiraja ................... .. 709/203
asp?articleIarticles%2Farchive%2Fg0904 . . . , as available via the
Internet and Printed D99 19, 2001 (5 PBS-l
6,816,909 B1
11/ 2004 Chang et al.
“After Napster: Boys will be ?le-swappers”, web page at http://cnn.
6,829,704 B2
12/2004 Zhaing et 31~
career.printthis.clickability.com/pt/printThis?:clickMapIprintThis
67835 7131 B1 * 12/2004 Whlte et 31; """""""""" " 463/1
&tb:Y&url:http%, as available via the Internet and printed Dec. 18,
6,839,734 B1
1/2005 Vega-Garcla et al.
6,857,006 B1
2/2005
6,865,600 B1
300% Brydon et 31‘
Randall, Ne1l; Power to the People , web page at http://www.
2001 (2 pgs)
Nishizawa
“
,,
6,876,103 B2
4/2005 Radusewicz et 31‘
pcmag.com/printiarticle/O,3048,a%3D2471,00.asp, Apr. 17, 2001,
6,877,134 B1
6,898,576 B2
6,944,136 B2
4/2005 Fuller et 31,
5/ 2005 Ste?k et al.
9/2005 Kim et al~
as available via the Internet and printed Dec. 19, 2001 (3 pgs.).
“How Napster Works”, web page at http://www.howstu?\vorks.com/
napster.htm/printable, as available via the Internet and printed Dec.
6,983,375 B2
6’993’664 B2
1/2006 Zhang et al.
1/2006 PadQIe et 31'
18, 2001 (5 pgs‘)‘
“Question of the day: What is Aimster?”, web page at http://www.
6’999’987 Bl
2/2006 Bllhngsley et al'
howstuffworks.com/question587.htm, as available via the Internet
7,010,582 B1*
3/2006 Cheng et al. ................ .. 709/219
7,032,000
7,032,177 B2
7 069 580 B1
4/2006 Novak
Tripp et al‘
6/2006 Dietz et al‘
d
. t dD
18 2001(2
)
ff“
W1ndows
.Pnn e NetMeetlng
W ’ .
Features
pgs' , web page at http://www.
microsoft.com/windows/NetMeeting/Features/default.ASP,
as
730853845 B2
8/2006 Woodward et 31,
available via the Internet and printed Dec. 19, 2001 (2 pgs.).
7 ,089,579 B1
7,095,871 B2
8/2006 Mao et 31,
8/2006 Jones et al.
“Windows NetMeeting Home Users”, web page at http://www.
microsoft.com/windows/NetMeeting/Home/default.ASP, as avail
9/2006 Peinado et al. ............... .. 705/51
able via the Internet and printed Dec. 19, 2001 (1 pg.).
7,103,574 B1 *
7,127,613
7,130,921
771437153
7’174’455
B2
B2
Bl
Bl
10/2006
10/2006
11/2006
2/2007
Pabla et al~
GOOdman et 31'
BlaCk et 31'
AmOld et al'
7,213,266 B1
5/2007
7,233,997 B1
6/2007 Leveridge et al‘
web page at http.//www.cnn.com/2001/TECH/1nternet/05/04/
7,260,608 B2
7,353,274 B1
7,483,958 B1
8/2007 Kuki
4/2008 Rouhi et al‘
1/2009 Elabbady e131,
napster.alternat1ves.1dg/ 1ndeX.html, May4, 2001, as ava11ablev1athe
Internet and printed Dec. 18, 2001 (6 pgs.).
“Undernet IRC FAQ (Part I) (updated Jun. 1, 1996)”, web page at
7,690,() 14 B2
3/2010 Sakao et a1,
http://www.user-com.undernet.org/documents/unetfaq1.html,
2001/0014883 A1
2001/0051928 A1
Maher et al.
“Windows NetMeeting Send a File”, web page at http://www.
microsoft.com/windows/NetMeeting/HomeFileShare/default.ASP,
as available via the Internet and printed Dec. 19, 2001 (1 pg.).
Gowan, Michael; “Hungry for Music? alook at Napster alternatives”,
8/2001 Yamane e1 31,
12/2001 Brody
‘
.
as
available via the Internet and printed Aug. 14, 2006 (24 pgs.).
ICS Department of Information & Computing Sciences; “IRC
2002/0004785 A1 *
1/2002 Schull ........................... .. 705/51
Undernet Frequently Asked Questions (FAQ) (Part 1 of 2)”, web page
2002/0027567 A1
2002/0060750 A1
3/2002 Niamir
5/2002 Istvan et al.
at http://www.cs.uu.nl/wais/html/na-dir/irc/undernet-faq/part1.html,
as available via the Internet and printed Jul. 26, 2006 (26 pgs.).
US 8,909,777 B2
Page 3
(56)
References Cited
OTHER PUBLICATIONS
Houghton, Ian; “PIRCH 1.0 FAQ”, Version 1.0L2, web page at http://
www.user-com.bearclaw.reXX.com/pammi/pirchfaqhtm, Nov. 7,
1998; as available via the Internet and printed Jul. 26, 2006 (19 pgs.).
“Overview of Napster, Description of Napster”, web page at http://
www.oldversion.com./program.php?n:napster, as available via the
Of?ce Action mailed Nov. 17, 2008 in U.S. Appl. No. 10/185,526,
?led Jun. 26, 2002.
Of?ce Action mailed Jun. 3, 2009 in U.S. Appl. No. 10/185,526,?led
Jun. 26, 2002.
Of?ce Action mailed Nov. 20, 2009 in U.S. Appl. No. 10/185,526,
?led Jun. 26, 2002.
Of?ce Action mailed Apr. 7, 2010 in U.S. Appl. No. 10/185,526,?led
Jun. 26, 2002.
Of?ce Action mailed Jun. 6, 2005 in U.S. Appl. No. 10/143,695, ?led
Internet and printed Mar. 25, 2008 (3 pgs.).
“Napster for Windows: Manual, Transfers”, web page at http://web.
May 9, 2002.
archive.org/web/20011202071039/www.napster.com/help/win/
Of?ce Action mailed Nov. 16, 2005 in U.S. Appl. No. 10/143,695,
manual/ transfer..., as available via the Internet and printed Mar. 25,
?led May 9, 2002.
Of?ce Action mailed Aug. 16, 2006 in U.S. Appl. No. 10/143,695,
?led May 9, 2002.
Of?ce Action mailed Feb. 26, 2007 in U.S. Appl. No. 10/143,695,
?led May 9, 2002.
Of?ce Action mailed Aug. 14, 2007 in U.S. Appl. No. 10/143,695,
?led May 9, 2002.
Of?ce Action mailed Apr. 3, 2008 in U.S. Appl. No. 10/143,695, ?led
2008 (3 pgs.).
“Napster for Windows: Manual, Chat and Instant Messaging”, web
page at http://web.archive.org/web/20011120190515/www.napster.
com/help/win/manual/ chatiim..., as available via the Internet and
printed Mar. 25, 2008 (7 pgs.).
Tyson, Jeff; “How the Old Napster Worked”, web page at http://
computer.howstuffworks.com/napster.htm/printable, as available via
the Internet and printed Mar. 24, 2008 (6 pgs.).
Of?ce Action mailed Aug. 19, 2005 in U.S. Appl. No. 10/185,526,
May 9, 2002.
?led Jun. 26, 2002.
Of?ce Action mailed Dec. 20, 2005 in U.S. Appl. No. 10/185,526,
?led Jun. 26, 2002.
Of?ce Action mailed Jun. 1, 2006 in U.S. Appl. No. 10/185,526, ?led
Jun. 26, 2002.
Of?ce Action mailed Jan. 2, 2007 in U.S. Appl. No. 10/185,526, ?led
Jun. 26, 2002.
Of?ce Action mailed Jun. 20, 2007 in U.S. Appl. No. 10/185,526,
?led Jun. 26, 2002.
Of?ce Action mailed Feb. 8, 2008 in U.S. Appl. No. 10/185,526, ?led
Jun. 26, 2002.
?led May 9, 2002.
Of?ce Action mailed May 12, 2009 in U.S. Appl.
?led May 9, 2002.
Of?ce Action mailed Oct. 26, 2009 in U.S. Appl.
?led May 9, 2002.
Of?ce Action mailed Feb. 16, 2010 in U.S. Appl.
?led May 9, 2002.
Of?ceAction mailedAug. 2, 2010 inU.S. Appl. No.
Of?ce Action mailed Dec. 16, 2008 in U.S. Appl. No. 10/143,695,
May 9, 2002.
* cited by examiner
No. 10/143,695,
No. 10/143,695,
No. 10/143,695,
10/143,695, ?led
US. Patent
Dec. 9, 2014
Sheet 1 0f8
US 8,909,777 B2
Three Tenogg; CamerasI Damingo, ngain
'
é“
‘"
'
ChaoseanAIbum
, A Mng Farm-as rs
; 1! Mega [ham Bran ..
i mum" Fugue n B
a 'Lit?a“ Fume m G M'nor
Johann Sebashan Bach Gmates! Hits
Uasical
18
, Eavwee??wm»
:L
éaawnmamdewummsune m
Q N, Lasgo {Mom Haraschde Cancelm.
JohmnSabastianBad'I Gmetes! Hts
Johann Sebastian Bach ?nealest Hits
Ciessica!
Uassmal
13
28
Q In dalca gubda
6 B.sl du he] m5: {if Thou 8e Near)
Johann Sebastian Benn Greatest Hus
Jaham Sebas?an Bach Breaded Ha:
Hassle-d
Oaszicai
21
22
Q U! Pmsvc [hum Reisan Concerto m F
Q Smfonia {from Cerzlaka "Wu Dankan.
Johann Sebasnan Each Grealmk HQ;
Juhann Sebasuan Bach Greatesk Hits
Ganiaei
29
Em du be; m“ m rhv
m Pram {from Item,
; gimmié {?t-Y" 93"“ 4
,
-
0 $0uveran
FIGURE 1
C‘assucal
US. Patent
Dec. 9, 2014
Sheet 2 0f8
US 8,909,777 B2
f 210
{MUZ?MIEBiXEiiEMEEéiQéEE?iim
5
230
220
:
E
/'
SERVER
'z
240
2
E
MEDIUM
5
USER COMPUTER
E
5;
MULTIMEDIA
;
CLIENT PROGRAM
I I I I I I I I I I I I I I I I I I
I I I I
;
5
COMMUNICATIONS
;
|
§;
F ,
I
l I I l
‘
G
5
l I l I I I I I l I I I I I I I I I I I I
A
13
CREATE USER ACCOUNT
DOWNLOAD PROGRAM
C2
SELECT FEATURES
:i
I I
I
I I
I
l l
D:
SEND FEATURE ACCESS INFORMATION
B:
F
RUN MULTIMEDLA CLIENT PROGRAM
UP‘DATE FEATURE ACCESS INFORMATION
G
RECEIVE UPDATED FEATURE ACCESS
INFORMATION
FIGURE 2
I
I I I l I I I I I I I I I I l l I I I I I I I I I I I I l I I I I I I
US. Patent
Dec. 9, 2014
Sheet 3 0f8
US 8,909,777 B2
220
f
USER COMPUTER
f 225
MULTIMEDIA CLIENT PROGRAM
MODULE
f 320
WEB BROWSER
f 310
FEATURE ACCESS MODULE
312
CREATE USER
ACCOUNT PROCESS
314
SET FEATURE
ACCESS PROCESS
316
VALLDATE USER
ACCESS PROCESS
V
330
COOKIE
DATABASE
f
FEATURE,
ACCESS
INFORMATION
FIGURE 3
332
US. Patent
Dec. 9, 2014
Sheet 4 0f8
US 8,909,777 B2
230
K.
SERVER
440
410
f
WEB
SERVER
r
USER ACCOUNT MODULE
412
CREATE
USER ACCOUNT
PROCESS
414
AUTHENTICATE
USER PROCESS
416
UPDATE
RULES PROCESS
V
420
430
v
RULES DATABASE
FIGURE 4
USER DATABASE
US. Patent
Dec. 9, 2014
Sheet 5 0f8
US 8,909,777 B2
314
START
I
510
QUERY USER FOR LOGIN /_
INFORMATION
1,
AUTHENTICATE
520
/
USER LOGIN
l
530
QUERY USER FOR USER /
PERSONALIZATION
INFORMATION
l
f 540
QUERY USER FOR
SELECTED FEATURES
AUTHENTICATE USER
(SEE FIGURE 7)
i
RECEIVE FEATURE
560
/'
ACCESS SETTINGS
Y
570
STORE FEATURE ACCESS /.
SETTINGS
¢
CONDUCT ANTITAMPERING
PROCEDURES
V
END
FIGURE 5
580
/
US. Patent
Dec. 9, 2014
Sheet 6 0f8
US 8,909,777 B2
316
610
RETRIEVE ANT I—
TAMPERING DATA
V
620
RETRIEVE FEATURE
ACCESS INFORMATION
v
630
COMPUTE ANTI
TAMPERING DATA
640
-1 TI-TAMPERIN
DATA THE SAME AS
COMPUTED ANTI
TAMPERING
'
DATA?
65°
INVALIDATE FEATURE
/_
ACCESS INFORMATION
l
v
670
I
SHOULD
660
AUTHENTICATE USER
(SEE FIGURE 7)
USER HAVE
ACCESS TO SELECTED
FEATURE?
i
ENABLE FEATURE
6 o
/_
r
ERROR MESSAGE
END
FIGURE 6
690
/
/
US. Patent
Dec. 9, 2014
Sheet 7 0f8
US 8,909,777 B2
414
710
RECEIVE
K
AUTHENTICATION
REQUEST
V
720
EXTRACT USER LOGIN ID
V
730
RETRIEVE USER
ACCOUNT INFORMATION
740
DETERMINE USER’S
FEATURE ACCESS
¢
CREATE FEATURE
750
/
ACCEss INFORMATION
DATA STRUCTURE
L
SEND FEATURE ACCESS f
INFORMATION TO
REQUESTING PARTY
FIGURE 7
760
US. Patent
Dec. 9, 2014
Sheet 8 0f8
US 8,909,777 B2
332
# Multimedia Client Program Cookie File
# http://www.netscape.com/newsref/std/cookie?spec.html
.clientprogram.com
TRUE
Cookie Version=l.0&
810'%:
/
FALSE
1072046052
Features
Feature_A=1!20020305§5&
Feature_B=0!OlO&
Feature_C=li20020125110&
Feature_D=1i2002053113&
Feature_E=O!OiO
/
.clientprogram.com
TRUE
Cookie~Version%2.0&
/ FALSE
1040560921 ClientgProgram
Encrypted_EmailwAddress%305BA7523B23DA3DF5182F2837293857290&
UserMID%45968015&
Service_Names%Gold_Level&
Service_Name_Status%Active&
Service_Name_Expiration_Date%20020526&
Service_Item%ContenthiContent_F[Content-P&
Service_ItenLExpirationuDate%20021117320021117t20021117&
Language~Code%English&
820.<
Postal~Code%97303&
CountryuCode%USA&
Cookie~Stale~Date%20020228&
ReauthenticatewDate%20020315&
Birth_Year%86&
Gender%M&
\
Hash_Value%M38XX
FIGURE 8
US 8,909,777 B2
1
2
SYSTEMS AND METHODS FOR DYNAMIC
ACCESS TO PROGRAM FEATURES
user’ s access to the program’s feature set by using the feature
access information to validate the user. In addition, the feature
access information may advantageously be accessible to the
CROSS REFERENCE TO RELATED
APPLICATIONS:
server system, such that the server system may periodically
update the feature access information, such as, for example,
when the user accesses the server system to download multi
media content.
This application is a continuation of US. application Ser.
For purposes of summarizing the invention, certain
No. 10/185,526, ?led Jun. 26, 2002, which is hereby incor
aspects, advantages, and novel features of the invention are
described herein. It is to be understood that not necessarily all
such advantages may be achieved in accordance with any
porated by reference in its entirety.
FIELD OF THE INVENTION
particular embodiment of the invention. Thus, for example,
The systems and methods of the present invention relate
generally to the control of program features in multimedia
client-server systems. In particular, the systems and methods
those skilled in the art will recognize that the invention may
be embodied or carried out in a manner that achieves one
advantage or group of advantages as taught herein without
necessarily achieving other advantages as may be taught or
relate to the dynamic access of features in multimedia client
programs.
suggested herein.
BACKGROUND
BRIEF DESCRIPTION OF THE DRAWINGS
20
FIG. 1 illustrates a sample interface of a multimedia client
To control user access to client software programs, it is
common for software vendors to require that users obtain
program with dynamically accessible features.
licenses before using the client software programs. To obtain
a license, the user typically submits information to the soft
ware vendor via the software vendor’s server. This informa
tion may include the user’s email address, contact informa
25
tion, and payment information. The software vendor then
FIG. 2 illustrates a high-level block diagram of one
embodiment of a multimedia client-server system that illus
trates a sample ?ow of data among the components.
FIG. 3 illustrates a high-level block diagram of one
embodiment of a user computer.
stores the user’s information in a database typically located
FIG. 4 illustrates a high-level block diagram of one
on its server. The user must then maintain contact with the
embodiment of a server.
software vendor’s server in order to run the client software 30
FIG. 5 illustrates a ?owchart of one embodiment of a
process for setting feature access.
program.
A common problem with conventional approaches is that
FIG. 6 illustrates a ?owchart of one embodiment of a
process for validating user access.
FIG. 7 illustrates a ?owchart of one embodiment of a
the user information that designates whether the user should
have access to the client software program is typically stored
in a database on the server as noted above. In order for the user 35 process for reauthorizing feature access.
to access the client software program, the client software
program sends a request to the server to verify whether the
user should be allowed access to the program. Thus, every
time the user attempts to access the client software program,
the client software program must send a request to the server
and wait for a response. As the number of users increases, the
FIG. 8 illustrates a sample set of feature access informa
tion.
40
server becomes inundated with database requests causing
signi?cant delay and decreased performance.
In other conventional approaches, requests to the server
database is limited by storing user information in a license ?le
which is stored on the user’s computer. In such approaches,
the license ?le is cloaked with multiple levels of security
protection to avoid any compromising of the license ?le.
While such techniques limit access to the ?le, they also
require the client software program to go through extensive
levels of security to even read the ?le thereby delaying user
45
Systems and methods which represent embodiments and
example applications of the invention will now be described
with reference to the drawings. Variations to the systems and
methods which represent other embodiments will also be
described. In one disclosed embodiment, the system and
method are used to provide dynamic access to client features
of a multimedia client program; however, the present inven
50
tion is not limited by the type of client program used. Other
types of client programs may be used such as, for example, a
word processor that has additional features such as fax or
letter templates that the user may receive as part of a subscrip
tion, or a tax preparation program where electronic ?ling is a
feature the user may receive as part of a subscription. The
access to the client software program.
An additional problem with the use of license ?les it that
such ?les typically include a pre-determined expiration time.
Thus, when the license ?le expires, the user is required to
DETAILED DESCRIPTION OF PREFERRED
EMBODIMENTS
55
?gures and descriptions, however, relate to embodiments of
re-initiate contact with the server to “renew” his or her rights
the invention wherein the client program is a multimedia
and to obtain a new license ?le.
program. It is also recognized that in other embodiments, the
systems and methods may be implemented as a single module
and/or implemented in conjunction with a variety of other
modules and the like.
SUMMARY OF THE INVENTION
60
In one aspect of the invention, the multimedia client-server
system provides a multimedia client program with a set of
features and a server system that creates feature access infor
mation that determines which features are to be made avail
able to a particular user. The server system may advanta
geously send the feature access information to the user. The
multimedia client program may then dynamically control the
65
The features of the systems and methods will now be
described with reference to the drawings summarized above.
Throughout the drawings, reference numbers are re-used to
indicate correspondence between referenced elements. In
addition, the ?rst digit of each reference number indicates the
?gure in which the element ?rst appears. The drawings, asso
ciated descriptions, and speci?c implementation are provided
US 8,909,777 B2
4
3
FIG. 1 illustrates an example interface 110 of a multimedia
to illustrate embodiments of the invention, and not to limit the
scope of the invention. The scope of the invention is de?ned
by the appended claims.
I. Overview
The client-server system may advantageously provide a
01
client program. The example multimedia client program
interface 110 includes a variety of features that may be
enabled for use by the user. The sample multimedia client
program interface 110 includes features, such as Crossfade,
Record Microphone/Line in, Print CD Jewel Case, Print
client program with a set of features and a server system that
creates feature access information that determines which fea
tures are to be made available to a particular user. The server
Music Library/Playlists, Manual Transcoding, Graphic
Equalizer, Video Controls, Theater Mode, Toolbar Mode, Hi
system may advantageously send the feature access informa
Bit Rate MP3 Encoding, and so forth. While these features are
tion to the user such that the information is accessible to the
not displayed on the sample interface 110, they may be
client program. The client program may dynamically control
the user’s access to the program’s feature set by using the
accessed via the menus and standard interface objects of the
multimedia client program.
feature access information to validate the user. In addition, the
The Crossfade feature may permit a user to fade one audio
feature access information may be advantageously accessible
to the server system, such that the server system may periodi
clip into the next when playing a series of clips thereby
cally update the feature access information, such as, for
creating a more professional sound. When turned on, the
volume of each audio clip will start to fade out as it nears its
example, when the user accesses the server system to down
load multimedia content or view the server’s web site.
In one embodiment, the feature access information is
stored in cookies on the user’s computer. Cookies are typi
cally used to store client information and to identify the user
end, and the volume of the next clip will fade in as it starts.
The two clips can also overlap so that the next clip will be
fading in even as the previous clip is fading out.
The Record Microphone/Line In feature may permit a user
to record analog signals from various sources, such as the
20
to a server. Information on how cookies are sent to the user’s
“Line In” connector on the user computer’ s sound card or the
computer and format in which they are stored are known in
the art. In this embodiment, however, the cookies are used to
microphone connected to the user’s computer.
The Print CD Jewel Case feature may permit a user to print
store client account information from the server on the client 25 CD jewel cases with graphics and song lists that correspond to
the user’s music collection.
side. Thus, whenever the user runs the client program or
The Print Music Library/Playlists feature may permit a
attempts to access a feature, the client has a copy of the
relevant client account information and does not have to
always contact the server. Furthermore, whenever the user
accesses the server, such as, for example, to download media
content, the cookies are automatically transmitted to the
30
The Manual Transcoding feature may permit a user to
change the ?le format of the user’s songs. For example, the
server permitting the server to update the client account infor
mation and to return the updated information to the client.
Thus, the server is able to transparently change feature access
without requiring interaction by the user. Alternatively, the
user may change an audio ?le from MP3 format to RealAudio
35
user may initiate an update of the user’ s cookies by changing
membership status or by logging onto the server to update the
One bene?t of this embodiment is that requests to the
40
special effects such as Reverb.
The Video Controls feature may permit a user to adjust
video clips or a clip’s components without having to change
the look of the user’s desktop. Video clip components may
include contrast, which alters the degree of difference
between the light and dark shades in the clip, brightness,
stored locally on the user’s computer and periodically
updated by the server.
An additional bene?t of this embodiment is that the client
program may advantageously determine feature access
dynamically using the feature access information stored on
the client side. If the feature access information changes or if
a feature has expired, the client program may regulate the
user’s access to the feature accordingly.
A further bene?t of this embodiment is that the feature
access information may not be “hard coded” into the client
program enabling the server to enable and disable features at
format.
The Graphic Equalizer feature may permit a user to cus
tomize the frequency response of the audio output. Slider
controls are provided to adjust the signal gain for a speci?c
frequency range and to control overall output volume and
user’s account.
server’s database are reduced. User account information is
user to print playlists, tracks, and albums from the user’s
media library to help the user keep track of the user’s music
collection.
45
which adjusts how light the picture appears overall, color
level, which adjusts the color saturation of the picture, that is
the brilliance of the colors, tint, which adjust the overall hue
of the picture, and sharpness, which adjusts the clarity of the
edges in the picture.
50
The Theater Mode feature may permit the user to view and
listen to a multimedia clip in theater mode eliminating clutter
any time. Thus, the server may periodically update the feature
on the screen and turning the user’s computer screen into a
access information depending on factors such as, for
desktop theater.
example, the user’s account status, the subscription or license
package selected by the user, or program promotion.
55
II. Sample Client Program and Sample Features
As noted above, in some embodiments, the client program
is a multimedia client program, though it is recognized that a
variety of client programs may be used. The multimedia client
program may be any program and/or application that may be
used to record and play audio ?les in a variety of formats, to
record and view video and image data, to retrieve and send
web documents, and so forth. For example, the multimedia
client program may be an audio player, a video player, a web
browser, a ?ash media player, a streaming video player, a
streaming audio player, a game application, and so forth as
well as any combination of the above.
60
The Toolbar Mode feature may permit the user to adjust the
player controls. The player controls are displayed as a Toolbar
at the bottom of the user’s computer screen.
The Hi Bit Rate MP3 Encoding feature may permit the user
to create high bit rate MP3 ?les. Thus, when media ?les are
converted, the best comparable bit rate is used such that the
quality of the new ?les are very close to the quality of the
original ?les.
65
It is recognized that FIG. 1 illustrates one sample multime
dia client program interface 110 and that other multimedia
client programs or interfaces may be used. Furthermore, the
multimedia client program interface 110 may include a vari
ety of features, and those features discussed above are meant
only to illustrate sample features. In other embodiments, the
US 8,909,777 B2
5
6
multimedia client program interface 100 may provide access
The De?nitive Guide,” by Chuck Musciano and Bill Kenney,
to features, such as, for example, fast forward, rewind, slow
speed, fast speed, 3-D graphics, color, and so forth.
published by O’Reilly & Associates, which is hereby incor
porated by reference in its entirety.
It is also recognized that feature information includes a
It is recognized that the multimedia client-server system
wide variety of information including information about the
210 may include other servers, such as content servers and/or
streaming servers, and/or the exemplary server 230 may also
features of the client program as well as information about the
user, the user’ s activity with respect to the client program, and
the user’ s subscription and/ or permission information regard
ing the client program. The feature information may also
include information about the user computer and the servers.
In addition, the feature information may include information
about feature access settings, such as information about the
features, whether a speci?c user has access to the features,
how long the user has access to the features, limitations on the
user’s access to the features, and so forth. The feature infor
mation may be stored in a variety of formats such as, for
example, text, as database records, embedded codes within
the system, and so forth. Furthermore, different parts of the
feature information may be stored in different locations and in
different formats.
perform content serving tasks, such as, for example, stream
ing and downloading of data in addition to its user informa
tion management tasks.
In one embodiment, the multimedia client-server system
210 provides a system for accessing multimedia content, such
as, for example, downloading and/or streaming audio,
graphic, and/or video data. In addition, the multimedia client
server system 210 may work in conjunction with a digital
rights management system that provides security to protect
the content data.
B. User Computer
FIG. 3 illustrates one embodiment of the user computer
20
III. The System
A. Multimedia Client-Server System
FIG. 2 illustrates one embodiment of a multimedia client
server system 210 which includes a user computer 220 that
communicates with a remote server system (“server”) 230 via
220 illustrated in FIG. 2. The exemplary user computer 220
includes the multimedia client program module 225 shown in
FIG. 2 as well as a web browser 320 and a cookie database
25
330.
As used herein, the word module, whether in upper or
lower case letters, refers to logic embodied in hardware or
?rmware, or to a collection of software instructions, possibly
a communications medium 240 enabling a user access to a
having entry and exit points, written in a programming lan
multimedia client program 225. FIG. 2 also illustrates a
guage, such as, for example, C++. A software module may be
sample ?ow of information between the user computer 220
compiled and linked into an executable program, or installed
and the server 230. In event A, a user utilizes the user com
in a dynamic link library, or may be written in an interpretive
puter 220 to create an account with the server 23 0 and the user 30 language such as BASIC. It will be appreciated that software
downloads the multimedia client program 225 as shown as
modules may be callable from other modules or from them
event B. In event C, the user selects features of the multimedia
client program 225 that he or she would like enabled and
selves, and/or may be invoked in response to detected events
or interrupts. Software instructions may be embedded in ?rm
ware, such as an EPROM. It will be further appreciated that
sends the information to the server 230. The user may select
features explicitly, such as, for example, by marking check
35
hardware modules may be comprised of connected logic
units, such as gates and ?ip-?ops, and/ or may be comprised of
programmable units, such as programmable gate arrays or
processors. The modules described herein are preferably
implemented as software modules, but may be represented in
40
hardware or ?rmware.
boxes indicating the features the user would like enabled, or
implicitly, such as, for example, by signing up for a subscrip
tion or license package that includes a subset of the available
features. In event D, the server 230 sends to the user computer
220 feature access information that designates the features to
1. Multimedia Client Program Module
The multimedia client program module (“multimedia cli
which the user has access. In event E, the user runs the
multimedia client program 225, and the multimedia client
program 225 dynamically determines which features should
ent program”) 225 may permit a user access to a variety of
be enabled for the user based on the feature access informa
multimedia content. The multimedia content may include, for
tion. The multimedia client program 225 does not have to
45
contact the server each time the user attempts to access a
feature. Periodically, the user computer 220 sends the feature
?les, etc.), web data (e.g., HTML pages, Java-based web
pages, etc.), SMIL content data, streaming ?ash data, Video
access information to the server 230 to be updated as in event
F. The server 230 updates the feature access information and
returns the updated feature access information to the user
computer 220 as shown in event G.
In one embodiment, the multimedia client-server system
50
210 may advantageously enable dynamic determination of
55
access to a network of multimedia pro gramming such as radio
60
In one embodiment, the multimedia client program 225
communicates with the remote server 230 using the standard
stations, software games, information on current events,
sports, entertainment, news, and so forth. The multimedia
client program 225 also includes a set of features that may be
enabled or disabled.
HyperText Markup Language (“HTML”) protocol. HTML is
an authoring language used to create documents on the World
Wide Web using a variety of tags and attributes. For more
information on HTML, please refer to “HTML & XHTML:
streaming server.
In one embodiment, the multimedia client program 225
includes an audio player, a video player, a digital music/video
jukebox, and a built-in media browser (not shown). In addi
tion, the multimedia client program 225 provides users with
determine in real-time whether the user has access to a fea
ture. Thus, if the user’s access has expired or been renewed
since the last time the user attempted to access the feature, the
multimedia client-server system 210 is able to more accu
rately determine user access.
Compact Disc data, as well as other types of multimedia data.
The multimedia content may be stored on the user computer
220 in a content database (not shown) and/or in a remote
location, such as, for example, in a remote database or on a
whether a user should have access to features of the multime
dia client program 225. When making dynamic determina
tions, the multimedia client-server system 210 may then
example, audio data (e.g., analog audio, MP3 ?les, WAV ?les,
Compact Disks, radio stations, etc.), video data (e.g., DVD,
MPEG-4, etc.), image data (e.g., TIFF ?les, GIF ?les, JPEG
The exemplary multimedia client program 225 includes a
65
feature access module 310 which manages access to the set of
features of the multimedia client program 225. As in the
example discussed above, the multimedia client program 225
US 8,909,777 B2
7
8
may include features, such as, for example, Crossfade,
Record Microphone/Line in, Print CD Jewel Case, Print
other data structures that are well know in the art such as
linked lists, stacks, binary trees, and so forth.
4. System Information
Music Library/ Play lists, Manual Transcoding, Graphic
Equalizer, Video Controls, Theater Mode, Toolbar Mode, Hi
related to the selected feature, and dynamically determines,
In one embodiment, the user computer 220 enables the user
to communicate with the server 230 via the communications
medium 240. The user computer 220 may be a general pur
pose computer using one or more microprocessors, such as,
for example, a Pentium processor, a Pentium II processor, a
Pentium Pro processor, a Pentium IV processor, an xx86
from the feature access information, whether the user should
have access to the selected feature. This determination may be
processor, an 8051 processor, a MIPS processor, a Power PC
processor, a SPARC processor, an Alpha processor, and so
based upon the information stored in the cookie, such as, for
forth.
Bit Rate MP3 Encoding, and so forth. When the user attempts
to turn on and/or access one of the features, the feature access
module 310 retrieves feature access information stored in the
cookie database 330, reviews the feature access information
example, whether the feature is enabled, the expiration date of
In one embodiment, the processor unit runs the Micro soft®
the feature with respect to the current date, and so forth.
Furthermore, when the server 230 updates the user’s feature
access information, the feature access module 310 stores the
information in the cookie database 330 and conducts anti
Windows® XP operating system andperforms standard oper
ating system functions. It is recognized that other operating
systems may be used, such as, for example, Microsoft® Win
dows® 3.X, Microsoft® Windows 98, Microsoft® Win
dows® 2000, Microsoft® Windows® NT, Microsoft® Win
dows® CE, Microsoft® Windows® ME, Palm Pilot OS,
tampering procedures to help prevent the information from
being modi?ed by an unauthorized party.
20
The exemplary feature access module 310 also includes a
Apple® MacOS®, Disk Operating System (DOS), UNIX,
create user account process 312, a set feature access process
314, and a validate user access process 316. These processes
IRIX, Solaris, SunOS, FreeBSD, Linux®, IBM® OS/2®
are discussed in more detail below in the section entitled
“Multimedia Client-Server System ProcessesiUser Com
puter Processes.”
25
example, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5),
Fiber Distributed Datalink Interface (FDDI), or Asynchro
nous Transfer Mode (ATM). Further, the user computer 220
2. Web Browser
The exemplary web browser 320 is a software program that
permits a user to access various web servers, including con
tent providers, through the communications medium 240. In
one embodiment, the web browser 320 is the Netscape®
30
Navigator developed by Netscape, Inc. or the Microsoft®
Internet Explorer developed by Microsoft Corporation. One
35
implement the web browser 320, such as, for example, other
types of Internet browsers, customer network browsers, two
way communications software, cable modem software,
point-to-point software, and the like. Furthermore, in other
embodiments, the user computer 220 may include different
1. User Account Module
on the server 230 interacting with the rules database 420 and
40
(e.g., the user’s credit card payment has cleared, the user’s
45
In connection with the cookie database 330, there may be
several processes (not shown) such as ID generators, number
generators, statistic generators, session generators, and tem
porary storage units that work with the database. Further
more, it is recognized that the database may be implemented
dia Client-Server System ProcessesiServer Processes.” The
50
user account module may also include other processes (not
shown) such as an update user account process which changes
the existing user account information.
2. Rules Database
The rules database 420 tracks and manages rules enabling
feature access based upon criteria, such as, the user’s current
55
license model or subscription package, the user’s historical
license or subscription model, current promotions, license or
subscription programs, upcoming promotions, as well as any
other information that may be used to promote the multime
dia client program 225. For example, one rule may be that any
60
user who signed up for the Gold Level subscription package
may have access to all features of the multimedia client pro
gram 225. Another rule may be that for two weeks after a new
using a variety of different databases in addition to or instead
of the cookie database 330, such as relational databases, ?at
?le databases, and/or object-oriented databases. Moreover, it
is recognized that in other embodiments, the database may be
The exemplary user account module 410 includes a create
user account process 412, an authenticate user process 414,
and an update rules process 416. These processes are dis
cussed in more detail below in the section entitled “Multime
other program and later read back from that browser or pro
gram. This is useful for having the web browser 320 remem
ber speci?c information from various pages. For example,
the user database 430. The user account module 410 creates
user accounts and determines whether the account is valid
feature access information is accurate, etc.).
preferences, which a server can store with a web browser or
when user downloads a program from a web site, the program
name, type, and version may be stored in a cookie ?le asso
ciated with the web browser 320 so that the web browser 320
knows information about the downloaded program and can
provide such information to remote servers. The feature
access information is discussed in more detail below.
FIG. 4 illustrates one embodiment of the server 230 illus
trated in FIG. 2. The exemplary server 230 includes a user
account module 410, a rules database 420, a user database
430, and a web server 440.
The user account module 410 manages the user accounts
components that enable the user to access the servers 230.
3. Cookie Database
The exemplary cookie database 330 is a collection of
cookie ?les stored on the user computer 220 including a
cookie ?le of feature access information 332. The cookie ?les
contain small pieces of information, such as user name and
may be con?gured to support a variety of network protocols
such as, for example NFS v2/v3 over UDP/TCP, Microsoft®
CIFS, HTTP 1.0, HTTP 1.1, DAFS, FTP, and so forth.
C. Server
of ordinary skill in the art will recognize, however, that
numerous other types of access software may also be used to
operating systems, and so forth.
In one embodiment, the user computer 220 is equipped
with conventional network connectivity, such as, for
version release of the multimedia client program 225, all
users who download the new version release can have access
65
to all features for fourteen (14) days. An additional rule may
implemented as two or more databases and may include other
be that any user that downloaded over 100 MP3 ?les in the
databases. In addition, the database may be implemented as
past 30 days can have access to the High Bit Rate MP3
US 8,909,777 B2
10
dows® 2000, Microsoft® Windows® NT, Microsoft® Win
dows® CE, Microsoft® Windows® ME, Palm Pilot OS,
encoding feature. It is recognized that these rules are meant as
samples only and that a variety of rules may be stored in the
rules database 420.
The rules database 420 enables the server 230 to control
and change the rules as to whether users should be given
access to particular features of the multimedia client program
225.
3. User Database
Apple® MacOS®, Disk Operating System (DOS), UNIX,
IRIX, Solaris, SunOS, FreeBSD, Linux®, IBM® OS/2®
operating systems, and so forth.
In one embodiment, the computer is equipped with con
ventional network connectivity, such as, for example, Ether
net (IEEE 802.3), Token Ring (IEEE 802.5), Fiber Distrib
The user database 430 stores information about users of the
uted Datalink Interface (FDDI), or Asynchronous Transfer
Mode (ATM). Further, the computer may be con?gured to
support a variety of network protocols such as, for example
NFS v2/v3 over UDP/TCP, Microsoft® CIFS, HTTP 1.0,
HTTP. 1.1, DAFS, FTP, and so forth.
D. Communications Medium
multimedia client program 225. This information, which may
be referred to as a “user pro?le,” includes information such as,
for example, the user’s ?rst name, login/password, zip/postal
code, gender, age, e-mail address, and payment information,
as well as other user identi?cation information. In addition,
the information may also include the features for which the
users has chosen to enable access as well as features that have
Focusing now on the communications medium 240, the
been automatically enabled for the user. The information may
also include data on the license model or subscription pack
age that the user has purchased indicating what type of con
tent the user may access (e. g., speci?c artists, speci?c catego
ries of contents, etc.), as well as the format in which the user
presently preferred communication medium 240 includes the
Internet made up of routing hubs that comprise domain name
system (DNS) servers, as is well known in the art. DNS is a
20
Transfer Control Protocol/ Internet protocol (TCP/IP) service
translates domain names to and from Internet Protocol (IP)
may access the content (e.g., streaming, download, etc.). It is
addresses. The routing hubs connect to one or more other
recognized, however, that the user database 430 may store a
variety of user information.
In connection with the user database 430 and the rules
routing hubs via high-speed communication links. One popu
25
database 420, there may be several processes (not shown)
such as ID generators, number generators, statistic genera
tors, session generators, and temporary storage units that
work with the databases. Furthermore, it is recognized that
the databases may be implemented using a variety of different
databases such as relational databases, ?at ?le databases,
and/or object-oriented databases. Moreover, while the data
bases depicted in FIG. 4 are comprised of two separate data
bases, it is recognized that in other embodiments, the data
bases may be implemented as a single database and/or one or
can, for example, include multiple geographically distributed
computer systems that are appropriately linked together.
30
35
both of the databases may include other databases. In addi
tion, one or both of the databases may be implemented as
Generally, the electronic web documents may display a vari
ety of data such as, graphical images, audio, video, and so
forth.
One of ordinary skill in the art will recognize that a wide
range of interactive communications mediums may be
employed in the present invention. For example, the commu
nications medium 240 may include interactive television net
works, telephone networks, wireless networks, wireline net
works, cellular networks, wireless data transmission systems,
two-way cable systems, customized computer networks,
other data structures that are well know in the art such as
linked lists, stacks, binary trees, and so forth.
4. Web Server
lar part of the Internet is the World Wide Web which includes
different computers which store electronic web documents
via their web sites. The term “site” is not intended to imply a
single geographic location, as a Web site or other network site
40
interactive kiosk networks, local area networks, wide area
In one embodiment, the server 230 includes a web server
networks, satellite networks, intranet networks, broadband
440 used to communicate with the user computer 220 via the
communications medium 240. The web server 440 may inter
act with a database of web documents (not shown) that are
sent to the web browser 320 on the user computer 220. The
web documents may include standard HTML documents as
well as other types of documents and may be formatted to
include and/ or transport cookie information. The web server
networks, baseband networks, and the like as well as any
combination of the above.
45
440 may process requests for the documents, review the docu
ments, and send the documents to the requesting computer via
the communications medium 240. In other embodiments, the
50
IV. Multimedia Client-Server System Processes
As noted above, in some embodiments, the multimedia
client-server system 210 includes several user computer pro
cesses and server processes.
A. User Computer Processes
server 230 may include other components to enable the user
computer 220 to communicate with the server 230.
5. System Information
In one embodiment, the server 230 runs on a computer that 55
The user computer processes in FIG. 3 include the create
user account process 312, the set feature access process 314,
and the verify user access process 316.
1. Creating a User Account
In one embodiment, the multimedia client program 225
includes a standard account creation process (“create user
account process”) 312. The create user account process 312
enables the server 230 to communicate with the user comput
queries the user for a login name and password and may
ers 220. The computer may be a general purpose computer
using one or more microprocessors, such as, for example, a
request other information, such as, for example, ?rst name,
middle name, last name, language, company name, country,
Pentium processor, a Pentium II processor, a Pentium Pro
processor, a Pentium IV processor, an xx86 processor, an
8051 processor, a MIPS processor, a Power PC processor, a
postal code, title, and so forth. The create user account pro
SPARC processor, an Alpha processor, and so forth.
In one embodiment, the processor unit runs the Micro soft®
send the information to the server 230. By using the POST
command, the data is sent to the server in a set of body data
rather than as part of the URL (as with a GET command). The
Windows 95 operating system and performs standard operat
ing system functions. It is recognized that other operating
systems may be used, such as, for example, Microsoft® Win
dows® 3.X, Microsoft® Windows 98, Microsoft® Win
cess 312 may utilize a standard HTML form web document to
query the user and then use the HTML “POST” command to
65
create user account process 312 then receives an indication
from the server 230 that the user’s account was successfully
created or that there was an error such that the user’s account
US 8,909,777 B2
11
12
was not created (e.g., password invalid, user name already
If the user is valid, then the set feature access process 314
queries the user for additional information (“user personal
ization information”) (block 530) such as, for example, lan
guage, country/region, zip or postal code, gender, birth year,
exists, missing information, etc.).
If the account is successfully created, then the create user
account process 314 may present the user with a hyperlink to
download the multimedia client program 225. When down
and so forth. In some embodiments, some of the additional
information may be designated as required, such as, for
loading the multimedia client program 225, the user is typi
example, the language, country/region, and zip or postal
cally prompted to select one of several license models or
subscription packages to use the multimedia client program
225. The license models or subscription packages are typi
code, while other information may be designated as optional,
such as, for example gender and birth year. The user person
alization information may also include designation of topics
cally of varying degrees. For example, for free, the user may
that are of interest to the user, such as, for example, entertain
sign up for the Basic Level that gives the user access to few, if
any, of the multimedia client program features. For a medium
ment, sports, news, gardening, and/or music. In other
fee, for example, $9.95 per month, the user may sign up for
query the user for personalization information and/or the
embodiments, the set feature access process 314 may not
the Silver Level which gives the user accesses to some, but not
create user account process 312 may collect such informa
all, of the multimedia client program features. For a higher
tion.
Next, the set feature access process 314 queries the user for
a selection of features that the user wishes to enable (block
540). For example, the user may be presented with a list of
fee, for example, $19.95 per month, the user may sign up for
the Gold Level which gives the user access to all of the
multimedia client program features. It is recognized that the
license models listed above are only sample models and that
a variety of models may be used. In addition, in some cases
the user may be given access to some or all of the features for
a limited period of time for promotional reasons, such as to
entice the user to sign up for a more comprehensive license.
It is recognized that the create user account process 312
20
subset of the features by marking a checkbox that corre
25
discussed above may be implemented using other embodi
ments. For example, a variety of information may be gathered
The set feature access process 314 then sends the user
information to the server.
30
FIG. 5 illustrates one embodiment of a ?ow chart for set
ting feature access (“set feature access process”) 314. It is
recognized that the multimedia client program 225 may
include a variety of features and that the set feature access
process 314 may be used to control access to a single feature,
a group of features, various groups of features, and so forth. In
one embodiment, the set feature access process 314 is initi
ated by the user when the user wants to initialize, update, or
change his or her access to features of the multimedia client
program.
Beginning at a start state, the set feature access process 314
queries the user of the multimedia client program 225 for
35
personalization information and the selection information to
the server 230 to authenticate the user (block 550). One
embodiment of a process for authenticating a user is dis
cussed below with respect to FIG. 7. The set feature access
process 314 may send the information using the HTML
POST command. Furthermore, in some embodiments, the set
feature access process 314 may also send other information to
the server 230, such as, for example, connection speed, mul
timedia client program name, multimedia client program
40
type, multimedia client program version, IP Address, date,
distributor code, OEM code, operating system build number,
player language, originator code, and so forth.
In one embodiment, the set feature access client process
login information (block 510). The login information may
include typical login information, such as, for example, a
login identi?er and a corresponding password. It is recog
sponds to desired features. It is recognized that in other
embodiments, the user may have already implicitly selected
which features are to be enabled by downloading the multi
media client program 225 and/or by purchasing a licensing
model or subscription package. The license model or sub
scription package typically includes access to a subset of the
features of the multimedia client program 225.
from the user, and various protocols may be used to send the
2. Setting Feature Access
features in a web document, and then the user may select a
314 may validate the information before sending the infor
mation to the server 230 (not shown). This validation may
45
include, for example, determining whether the user already
nized that in this embodiment, the term query includes pre
has an account such that the user may be offered a different
senting the user with a ?ll-in form via a web document that
login path, such as, for example, to create an account or to
con?rm a existing account information.
Next, the set feature access process 314 receives feature
access information 332 from the server 230 (block 560). In
one embodiment, the feature access information 332 may be
requests information and receiving the user’ s submitted infor
mation. It is recognized that in other embodiments, the user
may be queried using line prompts, voice prompts, and so
forth.
50
received by the multimedia client program 225 using the
Next, the set feature access process 314 authenticates the
standard cookie transport mechanism, though it is recognized
user’s login information (block 520). In one embodiment, to
authenticate the user’s login information, the login informa
tion is sent to the server 230 via an HTTP “POST” command 55
that a variety of transport protocols may be used, such as, for
example, HTTP posts using the GET command, as well as
to verify the user’s account status. By using the POST com
mand, the data is sent to the server in a set of body data rather
than as part of the URL (as with a GET command). A session
any other secure protocol that enables data to be sent and then
received. In some embodiments, the set feature access pro
cess 314 may also receive other information from the server
230, such as, for example, multimedia client program cook
ID or an error value is received from the server 23 0. If the user
feature access process 314 may send an error message to the
ies, registry setting information for country ID, the user’s
preferred language, the user’s zip/postal code, the user’s
user requesting that the user re-submit the login information
encrypted user name, as well as web browser cookies with
is not valid (e.g., an error value is received), then the set
60
(not shown) or proceed to an end state thereby terminating the
information about the multimedia client, the user, and the
set feature access process 314. User login authentication may
user’s preferences.
fail, for example, if the password was invalid for the login
identi?er, the user’s account is inactive, and/or the login
identi?er does not exist in the database.
65
The set feature access process 314 then stores the features
access information 332 on the user computer 220 (block 570)
as well as other information received from the server 230 in
US 8,909,777 B2
13
14
block 560. In one embodiment, the feature access information
332 and/ or other information may be stored as cookie ?les in
database 330 and computes the anti-tampering data (block
630). For example, the validate user access process 316 may
determine the date and time the feature access information
332 was last modi?ed and compute a hash of the feature
access information 332 using the machine ID. The validate
user access information process 3 1 6 then determines whether
the stored anti-tampering data is the same as the computed
the cookie database that are accessed by the web browser 320
and the multimedia client program 225. It is recognized,
however, that the feature access information 332 and/or other
information may be stored in other locations on the user
computer 220 that may be accessed by the multimedia client
program 225, such as, for example, in a separate database, as
anti-tampering data (block 640).
If the information is different, indicating that the informa
a ?at ?le, and so forth.
Proceeding to the next state, the set feature access process
tion may have been compromised, then the validate user
314 may initiate anti-tampering procedures to protect the
feature access information 332 (block 580). The anti-tamper
332 (block 650), such as setting all of the features to be
ing procedures may include, for example, recording the date/
disabled or expired, and then contacts the server 230 to
time the feature access information 332 was last modi?ed,
authenticate the user (block 660). One embodiment of
access process 316 invalidates the feature access information
encrypting the feature access information 332, computing the
authenticating a user is discussed below with respect to FIG.
hash value of the feature access information 332 and storing
the anti-tampering information in a pre-determined location
7. It is recognized that the information may be compromised
for a variety of reasons such as, for example, if the informa
to be used later to ensure that the feature access information
tion has been changed, if the executing computer is changed,
332 has not been modi?ed. The set feature access process 314
if the system has indicated that the information is tainted (e. g.,
20 invalid credit card, login failure, credit card expiration, etc.),
then proceeds to an end state.
and so forth.
As noted above, various anti-tampering procedures may be
If the information is the same, then the validate user access
used, such as, for example, computing the hash value of the
process 316 determines whether the user should have access
feature access information 332. To compute the hash value,
the feature access information, which is of a variable length,
is converted to a ?xed-length output, typically called a hash
value. One sample hash function is an XOR of the input or a
to the selected feature (block 670). For example, the validate
25
MOD of the input, though it is recognized that a variety of
functions may be used. In addition, other anti-tampering pro
cedures may be used, such as, for example, message authen
tication codes, symmetric encryption algorithms, asymmetric
user access process 316 may look in the feature access infor
mation 332 to determine whether the selected feature is set as
enabled and/or whether the expiration date of the selected
feature has expired. If the user should have access to the
selected feature, the validate user access process 316 enables
30
the feature (block 680) and proceeds to an end state. If not,
encryption algorithms, hybrid algorithms, anti-debugging
then the validate user access process 316 sends the user an
mechanisms, code obfuscation, and so forth. For more infor
error message (block 690) and may send the user information
on how to gain access to the feature, such as, for example,
paying a fee of $2.95 per month.
mation on sample anti-tampering procedures, please refer to
“Applied Cryptography” by Bruce Schneier, published by
John Wiley & Sons, Inc. 1996, which is hereby incorporated
by reference in its entirety.
It is recognized that the set feature access process 314
illustrated in FIG. 5 depicts one embodiment of a set feature
access process 314 and that other embodiments may be used.
For example, the set feature access process 314 may store
additional user information on the user computer 220 after it
35
It is recognized that FIG. 6 illustrates one embodiment of a
validate user access process 316 and that other embodiments
may be used. In other embodiments, the validate user access
process 316 may also include presenting the user with infor
mation if a feature is set to expire within a window of time,
40
such as, for example, within ten days. In addition, the feature
access information 332 may be stored using a variety of
is received in block 530. In addition, the information may be
anti-tampering techniques. For example, in other embodi
stored in the user computer’s cookie database 330 or in other
ments, the feature access information 332 may be encrypted.
B. Server Processes
locations, such as, for example, in a separate database, in a ?at
?le, and so forth. Furthermore, a variety of anti-tampering
procedures may be used, such as encryption.
45
the update rules process 416.
3. Validate User Access
FIG. 6 illustrates one embodiment of a process for validat
ing user access (“validate user access process”) 316. In one
embodiment, the validate user access process 316 is initiated
The server processes in FIG. 4 include the create user
account process 412, the authenticate user process 414, and
1. Creating a User Account
The create user account process 412 receives user infor
50
mation from a requesting user computer 220. The information
when a user attempts to access or enable one of the features of
may include, for example, login name, password, ?rst name,
the multimedia client program 225. In other embodiments,
55
middle name, last name, language, company name, country,
postal code, title, and forth. The create user account process
412 then veri?es that the login name is unique and that the
password is valid, and creates a record in the user database
the validate user access process 316 may be initiated on a
periodic basis (e.g., once a day, once a week, etc.) and/or
every time the user runs the multimedia client program 225.
Beginning at a start state, the validate user access process
430. The create user account process 412 may then send a
316 retrieves the anti-tampering data (block 610). The anti
tampering data may include, for example, the date and time
whether the user account was successfully created or whether
the feature access information 332 was last modi?ed, the hash
there was an error such that the user account was not created,
of the feature access information 332 using the machine ID,
message to the requesting user computer 220 that indicates
60
such as, for example, if the password is invalid, the user name
and so forth. The anti-tampering data may be stored in one or
more predetermined locations on the user computer 220. For
already exists, there is missing information, and so forth. In
example, the anti-tampering data may be stored in a ?at ?le,
in an existing ?le created by the user computer’s operating
also store payment information, such as, for example, credit
system, and so forth.
The validate user access process 316 then retrieves the
feature access information 332 (block 620) from the cookie
some embodiments, the create user account process 412 may
card number, billing address, and expiration date.
65
2. Authenticating a User
FIG. 7 illustrates one embodiment of a process for authen
ticating a user (“authenticate user process”) 414. In one
US 8,909,777 B2
15
16
3. Updating License Rules
embodiment, the authenticate user process 414 is initiated
The server 230 also includes a process for updating the
when the server receives a request from a multimedia client
program 225 that has determined that the feature access infor
rules (“update rules process”) 416. The update rules process
mation 332 has been compromised, such as, for example, the
416 receives new rules to add to the rules database 420 and
feature access information 332 has been modi?ed or replaced
by an unauthorized party. The authenticate user process 414
The rules, as discussed above, may detail which features are
store, modify, and/or delete rules in the rules database 420.
to be enabled for particular groups of users, and/or they may
also identify the window of time for which the features should
be enabled.
V. Sample Feature Access Information
may also be initiated by the multimedia client program 225
when the user’s feature access information 332 expires. For
example, the server may include in the feature access infor
mation 332, a date at which the information becomes stale,
FIG. 8 illustrates one embodiment of the feature access
thereby indicating that the multimedia client program 225
information 332 illustrated in FIG. 3. The exemplary feature
should initiate the authenticate user process 414. Thus, in one
access information 332 includes information about the mul
timedia client program 225, the user, feature access informa
tion, and content access information. The cookie value for
each feature is stored as:
embodiment, the multimedia client program 225 checks to
see if the feature access information 332 is stale when the user
runs the multimedia client program 225. In addition, the
authenticate user process 414 may be initiated when the user
accesses multimedia content data on the server 230, when the
user accesses the server 230 to update account information,
and/ or, on a periodic basis, such as, for example, once a day,
FeatureiNaIneIONiOFF lExp ire lDaysiToiWam
In the example feature cookie entry, Feature_Name is the
20
once a week, once a month, and so forth. Furthermore, the
authenticate user process 414 may be initiated when the user
accesses a web site related to the server 230 such as, for
example, to obtain multimedia content, when the user down
loads plug-ins to the multimedia client program 225, when
the user has not logged into the server 230 for X amount of
time, where X is a predetermined value or set as the date when
the user should login (“reauthentication date”), and so forth.
In one embodiment, for example, X may be 30 days or set to
Apr. 15, 2002.
signi?es the expiration date, represented as YYYYMMDD,
25
entry 810 in FIG. 8.
FeatureiAII \20020305 \5
multimedia client program 225 to authenticate a user (block
35
amount of time, where X is a predetermined value or a pre
determined date, such as, for example, 10 days, 30 days, 60
days, and/ or a speci?c date. In other situations, the login
40
Thus, Feature A is enabled and set to expire on Mar. 5,
2002. In addition, the multimedia client program 225 will
warn the user ?ve (5) days before FeatureA is going to expire.
The exemplary feature access information 332 is stored in
the standard cookie format, though, as discussed above, it is
recognized that the feature access information 332 may be
stored in a variety of formats and stored in a variety of loca
tions. Furthermore, various types of information may be
included in the feature access information and/ or the infor
mation may be represented in different forms. For example,
the expiration date may be represented in YYMMDD, where
YY is the year, MM is the month, and DD is the day. In
without action by the user, such as, for example, if the user’s
feature access information and/ or multimedia client program
information has become stale. The authenticate user process
414 then extracts the user’s login identi?er from the request
(block 720) and retrieves the user’ s account information from
The Days_To_Wam value signi?es the number of days before
For example, the following is one sample feature cookie
30
proceeds to the next state and receives a request from the
information may be sent from the user’s multimedia cookie
whereYYYY is the year, MM is the month, and DD is the day.
the expiration date in which the user should be warned that the
feature is to expire soon.
Beginning at a start state, the authenticate user process 414
710). In some instances, the user is required to “login” by
submitting a login ID and a password. For example the user
may be requested to “login” if the user has not logged in for X
name of the cookie feature. The ON_OFF value signi?es
whether the feature should be enabled or disabled. If the
feature is to be enabled, the ON_OFF value is 1; if the feature
is to be disabled, the ON_OFF value is 0. The Expire value
addition, dates/times may be represented using epoch time, in
45
which the value for Mar. 5, 2002 at noon is represented as
the user database 430 using the login identi?er (block 730).
1015329600. Epoch time is the basis of date and time calcu
The authenticate user process 414 thenuses the rules database
420 and the user’s account information to determine which
features, if any, that the user should have access to (block
740). Next, the authenticate user process 414 creates a data
structure with the user’s feature access information 312
lation on most computers and is represented as the amount of
50
time that has elapsed since 1 Jan. 1970 00:00:00. Epoch time
is usually expressed in seconds, but many browsers use mil
liseconds.
FIG. 8 also includes a set of multimedia client program
(block 750) and sends the feature access information 332 to
information 820 which may be used by the multimedia client
the requesting multimedia client program 225 (block 760). In
program 225 to customize the multimedia client program
interface 110 and/or to validate or initiate authentication of
the user. The sample multimedia client program information
one embodiment, the authenticate user process 414 sends the
feature access information 332 to the multimedia client pro
gram 225 as a cookie ?le using the standard cookie transport
55
820 includes: cookie version, encrypted email address, user
id, subscription service name, subscription service status,
subscription service expiration date, content subscription
mechanism, though it is recognized that a variety of transport
protocols may be used as discussed above. Furthermore, in
other embodiments, the authenticate user process 414 may
use other unique IDs to identify the user.
It is recognized that the authenticate user process 414 illus
trated in FIG. 7 represents one embodiment of the authenti
item, content subscription expiration date, language code,
60
the date the user should be reauthenticated, the user’s birth
year, the user’s gender, and the hash value of a portion of the
multimedia client program information 820.
cate user process 414 and that other embodiments may be
used. For example, other identi?ers may be used to identify
the user, and a variety of data structures may be used to store
the feature access information. Furthermore, a variety of fea
ture access information may be created for the user.
postal code, country code, the date the cookie becomes stale,
While one set of multimedia client program information
65
820 is shown in FIG. 8, it is recognized that a variety of
multimedia client program information 820 may be used
and/or different information may be stored. Further, while the
US 8,909,777 B2
17
18
exemplary multimedia client program information 820 is
stored in cookie format, it is recognized that other formats
The server then sends the updated feature access cookie to
Chad’s computer which stores the new feature access cookie.
Chad’s computer may then integrate the plug-in with his
may be used to store the multimedia client program informa
tion 820.
audio player and when Chad runs the audio player and
accesses Feature D, the audio player checks his feature access
V. Sample Operation
A sample operation of one embodiment of the systems and
methods will now be described, though it is recognized that
the sample operation illustrates only an example implemen
cookie and gives Chad access to Feature D.
VI. Conclusion
While certain embodiments of the invention have been
tation of the systems and methods and that other implemen
described, these embodiments have been presented by way of
tations may be used.
example only, and are not intended to limit the scope of the
Company is offering for download an audio player with
Feature A, Feature B, and Feature C, such as, for example,
Graphic Equalizer, Video Controls, and Theater Mode. Fur
present invention. Accordingly, the breadth and scope of the
present invention should be de?ned in accordance with the
following claims and their equivalents.
ther, Company offers three subscription packages.
What is claimed is:
Gold: Unlimited streaming
1. A client system comprising:
150 downloads per month
a processor; and
Features A, B, and C
$20.00 per month
a non-transitory storage medium comprising instructions
Silver: 100 streams
50 downloads per month
Features A and B
that, when executed by the processor, cause the proces
sor to:
20
feature of a client program executing on the client sys
tem, from among a plurality of additional features of the
client program, that the user desires to be enabled;
$10.00 per month
Bronze: 50 streams
15 downloads per month
Feature A
$5.00 per month
Users can sign-up for a subscription package, download
the audio player, and utilize the program to listen to audio
?les.
User Chad has decided to sign up for the Silver package
and logs on to Company’s web site. Chad creates a login/
transmit the user selection to a server system;
25
30
35
he likes acoustic guitar music.
Company’ s server takes Chad’s information, including his
additional feature of the client program.
When Chad uses the audio player, the audio player
executed by the processor, cause the processor to receive new
45
feature access information indicating the ?rst additional fea
ture should be disabled and prevent use of the ?rst additional
feature of the client program by the user of the client program
executing on the client system upon a determination that the
50
tional feature of the client program.
3. The client system of claim 1, wherein the client program
is a multimedia player.
4. The client system of claim 1, wherein the client program
is an audio player.
5. The client system of claim 1, wherein the access infor
mation includes information related to a subscription package
of the user for the client program.
6. The client system of claim 1, wherein the access infor
mation includes information related to a pro?le of the user.
ture access cookie is not stale, that user Chad has logged into
the server within the last thirty (30) days, and that Chad has
access to Features A, B, and C. After ?ve days, however,
access information does not permit access to the ?rst addi
download an audio ?le. Chad’ s feature access cookie is trans
mitted as part of the HTTP request to the web site. While
Chad is in the process of downloading the audio ?le, the
55
server reads his feature access cookie to recognize the user as
Chad, looks up Chad’s account information, determines that
Features A and B are to expire in ten (10) days and that
Feature C has expired. Because Chad has paid for his sub
scription for the next month and his last credit card charge was
authorized, the server updates the expiration date of Features
60
A and B to expire in thirty (30) days.
7. The client system of claim 1, wherein the non-transitory
storage medium further comprises instructions that when
executed by the processor, cause the processor to verify that
the access information is associated with the user.
In addition, Company is offering a new Feature D as a
plug-in to the audio player. The server queries Chad to see if
he wants to download the plug-in for free. Chad accepts and
downloads the plug-in. The server then adds to Chad’ s feature
access cookie that Feature D is to be enabled for ten (1 0) days.
that the access information permits access to the ?rst
2. The client system of claim 1, wherein the non-transitory
storage medium further comprises instructions that, when
the feature access cookie to Chad’s computer.
Chad’s access to Feature C expires, and when Chad attempts
to use Feature C, the audio player checks his feature access
cookie and denies him access to Feature C.
Next, Chad decides to contact Company’s web site to
retrieve the feature access information for enabling the ?rst
additional feature of the client program executing on the
client system, wherein the ?rst additional feature of the
client program is ancillary to a primary function of the
client program; and
client system upon a determination by the client system
40
ing its Gold package, the feature access cookie also enables
Feature C for a trial period of ?ve (5) days. The server sends
accesses the feature access cookie to determine that the fea
tem each time the user accesses the server system;
store the feature access information on the client system;
enable use of the ?rst additional feature of the client pro
gram by a user of the client program executing on the
request for the Silver package, and creates a feature access
cookie for user Chad which enables Features A and B for
thirty (30) days. Furthermore, because Company is promot
receive from the server system feature access information,
wherein the feature access information indicates the ?rst
additional feature should be enabled and a second addi
tional feature should remain disabled, and wherein the
feature access information is updated by the server sys
password, selects the Silver package, submits his credit card
information, and downloads the audio player. Chad also sub
mits additional information such as his preference for
English, that he is a male, he is in the 25-30 age category, and
receive a user selection that indicates a ?rst additional
65
8. The client system of claim 1, wherein the access infor
mation is generated by a remote server in communication
with the client system and sent to the client system by the
remote server.