Académique Documents
Professionnel Documents
Culture Documents
US 8,509,230 B2
*Aug. 13, 2013
(54)
References Cited
U.S. PATENT DOCUMENTS
4,562,306 A 4,796,220 A
(Continued)
FOREIGN PATENT DOCUMENTS
0658837 0813325 6/1995 12/1997
(Continued)
OTHER PUBLICATIONS Bailey et al., Chart of Darkness: Mapping a Large Intranet, Dept of Computer Science, FEIT, The Australian National University, Canberra ACT 0200, Australia, pp. 1-23,http://pastime.anu.edu.au/ nick/pubs/www9/cod.html, Feb. 21, 2001.
(Continued)
Primary Examiner * Robert Wilson
US 2010/0023640 A1
(57)
Related US. Application Data
ABSTRACT
(63)
Continuation of application No. 11/100,956, ?led on Apr. 6, 2005, now Pat. No. 7,577,751, which is a continuation of application No. 10/228,680, ?led on Aug. 26, 2002, now Pat. No. 7,096,253, which is a continuation of application No. 09/098,075, ?led on Jun. 16, 1998, now Pat. No. 6,453,334.
Provisional application No. 60/049,759, ?led on Jun.
16, 1997.
Int. Cl.
H04L 12/28
US. Cl.
(2006.01)
server computer and a client computer. The server computer may include a program database and a streaming engine. In
operation the streaming engine may stream an executable streaming application from the program database to the cli
ent.
Thmahuld7 v
Y. running? N
quu v
f- 562
US 8,509,230 B2
Page 2
References Cited 5,918,015 5,923,885 5,925,126 5,926,552 5,929,849 5,931,907 5,933,603 5,933,822 5,940,591 5,943,424 5,948,062 5,948,065 5,949,877 5,950,195 5,953,506 5,956,717 5,960,411 5,960,439 5,961,586 5,961,591
5,963,944 5,968,176 5,973,696 5,987,454 5,987,608 6,003,065 6,003,095 6,014,686 6,018,619 6,026,166 6,028,925 6,038,379 6,038,610 6,047,323 6,049,792
4,949,257 4,970,504 4,999,806 5,012,512 5,032,979 5,047,928 5,063,500 5,109,413 5,166,886 5,210,850 5,293,556 5,311,596 5,325,489 5,442,791 5,481,611 5,495,411
5,533,123 5,537,566 5,544,321 5,546,526 5,547,202 5,548,645 5,553,139 5,553,143 5,555,376 5,611,050 5,629,980 5,630,049 5,635,906 5,638,513 5,652,887
U'S' PATENT DOCUMENTS A 8/1990 Orbach A 11/1990 Chen A 3/1991 Chernow et a1.
A A A A A A A A A A A A A 4/1991 7/1991 9/1991 1l/l99l 4/1992 11/1992 5/1993 3/1994 5/1994 6/1994 8/1995 1/1996 2/1996 BaSSO et 61. Hecht et al. Wiedemer ShOITer Comerford et a1. MOlIl?f 6t 31 Kelly et a1. Hill et al. Scott et al. Mitsuhira et a1. WrabetZ et a1. Owens et a1. Ananda
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A
6/1999 7/1999 7/1999 7/1999 7/1999 8/1999 8/1999 8/1999 8/1999 8/1999 9/1999 9/1999 9/1999 9/1999 9/1999 9/1999 9/1999 9/1999 10/1999 10/1999
10/1999 10/1999 10/1999 11/1999 11/1999 12/1999 12/1999 1/2000 1/2000
Suzuki et a1. Johnson et a1. Hsieh McKeon Kikinis Davies et a1. Vahalia et a1. Braden-Harder et a1. Boyle et a1. Berger et a1. TZelnic et a1. Eilert et 31, Traw et al. Stockwell et a1. Kalra et al. Kraay et al. Hartman et a1. Hamner et a1. Pedersen Jones et a1.
Adams Nessett et a1. Agranat et a1. Hobbs Roskind Yan et a1. Pekowski et a1. ElnoZahy et a1. Allard et a1.
5,513,305 A
5,963,444 A
A A A A A A A A A A A A A A A
7/1996 7/1996 8/1996 8/1996 8/1996 8/1996 9/1996 9/1996 9/1996 3/1997 5/1997 5/1997 6/1997 6/1997 7/1997
Force et a1. KOIlIlO et 81 Theimer et a1. Li et al. TSuIIlllfa Ananda ROSS et 61. ROSS et 61. Theimer er :11 Theimer et al. Ste?k et 81 CardOZ? 6t 31 JOSePh Ananda Dewey et a1.
5,666,293 A
5,696,965 5,701,427 5,706,440 5,715,403 5,758,150 5,761,445 5,764,906 5,764,918 5,765,152 5,765,153 5,768,528 5,768,539 5,771,354 5,778,395 5,790,753 5,805,809 5,809,144 5,812,865 5,812,881 5,818,711 5,822,537 5,832,289 5,835,722 5,838,910 5,839,910 5,855,020 5,874,986 5,878,425 5,881,229 5,881,232 5,892,915 5,892,953 A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
6,049,835 A
6,061,738 6,065,043 6,076,104 6,081,842 6,085,186 6,085,193 6,088,705 6,092,194 6,094,649 6,098,072 6,099,408 6,101,482 6,101,491 6,101,537 6,108,420 6,115,741 6,138,271 6,154,878 6,157,948 6,167,510 6,167,522 6,173,311 6,173,330 6,185,608 6,192,398 6,192,408 6,195,694 6,212,640 6,219,693 6,226,412 6,226,665 6,253,234
6,278,992 6,281,898 6,282,712 6,298,356
Dedrick Lathrop Compliment et a1. Ste?k Bell et 61. Nguyen EdelSteiIl et 81. Poulter EIiCkSOIl Benant?f et 81 Stllmm MetZ et a1. Crawford Whiting er :11 Krishnamoorthy et a1. Singh et 61. Sirbu et al. Theimer et al. Ku et 61. Schwabe et a1. Katseff et al. Shaw et 81 Bradshaw et a1. Domenikos et a1. Meller et al. Kirsch Gibbon et a1. Redpath Singh er 41 Cheng et a1. Duso et al. Bhagria et al.
Edwards et al. SiXtus Reed et al. Hoffert et al.
A A A A A A A A A A A A A A A A A A A A A B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1
B1 B1 B1 B1
A A A A A A A
6,275,470 B1 6,275,496 B1
5,905,990 A
5,909,545 A
6,301,584 B1 6,301,605 B1
6,301,629 B1
5,911,043 A
6,301,685 B1
2/2000 2/2000 3/2000 3/2000 4/2000 4/2000 4/2000 5/2000 5/2000 6/2000 6/2000 7/2000 7/2000 7/2000 7/2000 7/2000 8/2000 8/2000 8/2000 8/2000 8/2000 8/2000 9/2000 10/2000 11/2000 12/2000 12/2000 12/2000 1/2001 1/2001 2/2001 2/2001 2/2001 2/2001 4/2001 4/2001 5/2001 5/2001 6/2001 8/2001 8/2001 8/2001 8/2001 8/2001 10/2001 10/2001 10/2001 10/2001 10/2001
LeBourgeois Van Berkum et al. Fletcher et a1. Bel?ore et a1. Krause Hart et a1.
Gagnon
Osaku et a1. Domenikos et a1. McCue Shachar Christianson et a1. Malkin et a1. Lightstone et a1. Touboul Bowen et a1. Sluiman et al. Schneier et a1. DiAngelo et a1. Woods Edelstein et a1. Larose et 31, Domenikos et a1. Keeley Saboff Inoue et a1. Tran Lee et 31, Hassett et a1. Guo et a1. Hon et 31, Hunt Vahalia et al. Chen et a1. Abdelnur et al. Napolitano et a1. SchWab Deo et al. Hunt et al. Ricciulli Burns et al. Curtis et al. Nikolovska et al. Davis et a1. Jawahar et a1. Ranger Napolitano et al. Sastri et al. Shigeta
US 8,509,230 B2
Page 3
6,311,221 B1 6,314,425 B1 6,321,260 B1
6,330,561 B1
6,343,287 6,347,398 6,356,946 6,369,467 6,370,686 6,374,402 6,385,696 6,389,467 6,418,554 6,418,555
B1 B1 B1 B1 B1 B1 B1 B1 B1 B2
1/2002 2/2002 3/2002 4/2002 4/2002 4/2002 5/2002 5/2002 7/2002 7/2002
Knniar eta1. Partnasaratny eta1. Clegg eta1. Noro Delo eta1. Schmeidler et a1. Doweck Eyal Delo eta1. Mohammed
2001/0003828 2001/0014878 2001/0027493 2001/0034736 2001/0037399 2001/0037400 2001/0042833 2001/0044850 2001/0044851 2002/0015106
A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
6/2001 8/2001 10/2001 10/2001 11/2001 11/2001 11/2001 11/2001 11/2001 2/2002
6,418,556 B1
6,424,991 B1 6,425,017 B1 6,449,688 B1
6,453,334 B1
2002/0019864 A1
2002/0035674 A1 2002/0038374 A1 2002/0042833 A1
2002/0057893 A1
2/2002
3/2002 3/2002 4/2002
Peterson eta1. Mitra eta1. Wallace Eylon eta1. Eylon eta1. Raz eta1. Kenway Raz eta1. Rothrnan eta1. Taylor Mayer Vetrivelkumaran eta1. Gupta eta1. Hendler eta1.
5/2002 Woodetal,
6,457,076 B1 6,508,709 B1
6,510,458 B1
2002/0059402 A1 2002/0065848 A1
2002/0078170 A1
2002 0083183 A1
2,218,322 5%
$88;
'
6524017 B2
2002/0083187 A1
2:23:21)? g?
6,598,125 B2 6,601,103 B1
2588; 23131153151
2002/0087717 A1
6,594,682 B2
gggggggigg; :1
2002/0091901 2002/0116476 2002/0133491 2002/0138640 2002/0147849 2002/0156911 2002/0157089 2002/0161908 2002/0174215 2003/0004882 2003/0009538 2003/0056112 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
6,601,110 6,605,956 6,609,114 6,611,812 6,622,137 6,622,171 6,636,961 6,651,251 6,687,745 6,694,510 6 697 869 6711619
6,757,708 6,757,894 6,763,370 6,772,209 6,775,779 6,779,179 6,785,768
6,810,525 6,816,909 6,816,950 6,832,222
B2 B2 B1 B2 B1 B2 B1 B1 B1 B1 B1 B1
B1 B2 B1 B1 B1 B1 B2
B1 B1 B2 B1
10/2002
10/2002 11/2002 1/2003 1/2003
3/2003
Eyal eta1. Simetal. Raz eta1. Wong eta1. Croman eta1. Pate1eta1. Benitez eta1. Schaefer Holler eta1. shah eta1 . ' Vinson eta1.
Raz eta1. Warren Maesetal Smith eta1. car1soneta1. Cohen Raonnian eta1. Rivers-Moore et a1.
6,732,179 B1 637353631 B1
Craig m1, Eylon et a1 Schmeidler et a1. Chernock et a1, England eta1. Romm eta1. Peters et a1.
Safadl eta1~ Chang etal NChols . Zlmowskl
A1 A1 A1 A1 A1 A1 A1
A1 A1 A1 A1
6,785,865 B1
2004/0267813 A1
6,801,507 B1
2004/0268361 A1
72003 7/2003 2/2004 7/2004 7/2004 10/2004 11/2004 11/2004 12/2004 12/2004 1/2005 1/2005 4/2005 5,2005
Schaefer
Parkeretal. Greschler et a1. Nave eta1. Tan
2,222,333 3%
689l740 B2
6918U3 B2
6,959,320 6,970,866 6,985,915 7,024,677
2005/0193139 A1
2005/0289617 A1
2006/0010074 A1
2006/0031165 2006/0047716 2006/0048136 2006/0106770 2006/0123185 2006/0136389 2007/0038642 2007/0043550 2007/0067435 2007/0074223 2007/0126749 A1 A1 A1 A1 A1 A1 A1 A1 A1 A1
8/2005 Hegde Greschler et a1 et a1. Shah et a1 PraVetZ eta1. sonialwar eta1. Snyder et a1. 4/2006 Schaefer 5/2006 shah eta1. 5/2006 Artzi et a1. 6/2006 BeniteZ eta1. 8/2006 Cooksey eta1.
8/2006 Vinson eta1. ............... .. 709/203
2/2006 3/2006 Nave Kelth6t deVnes et 31. deVries deVries eta1. Cover et a1. 2/2007 Durgin eta1. 2/2007 Tzruya 3/2007 Landis et a1. 3/2007 Lescouet eta1. 6/2007 Tzruya eta1.
6/2007 Tzruya eta1.
2007/0129146 A1
B2 B2 B2 B1 B2
A1 A1 A1 A1 A1
Tzruya eta1. Song eta1. Tzruya eta1. Tzruya eta1. Jennings et a1.
US 8,509,230 B2
Page 4
FOREIGN PATENT DOCUMENTS
EP EP TW WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO WO 1020824 1143349 200644550 WO-98/40993 WO-98/50853 WO-99/57863 WO-99/60458 WO-00/04681 WO-00/31657 WO-00/31672 WO-00/56028 WO-01/27805 WO-01/46856 WO-02/44840 WO-2006/022745 WO-2006/047133 WO-2006/055445 WO-2006/102532 WO-2006/102621 7/2000 10/2001 12/2006 9/1998 11/1998 11/1999 11/1999 1/2000 6/2000 6/2000 9/2000 4/2001 6/2001 6/2002 3/2006 5/2006 5/2006 9/2006 9/2006
Sirbu et al., Netbill: An Internet Commerce System Optimized for Network-Delivered Services, IEEE Personal Communications,
28195, May 2, 2006, 3 Pages. Written Opinion of PCT Application No. PCT/US2004/28195, May 2, 2006, 4 Pages.
International Search Report of PCT Application No. PCT/US2005/
41024, Feb. 27, 2007, 1 Page. Written Opinion of PCT Application No. PCT/US2005/41024, Feb. 27, 2007, 3 Pages.
International Search Report of PCT Application No. PCT/US2006/
10637, Sep. 25, 2007, 1 Page. Written Opinion of PCT Application No. PCT/US2006/10637, Sep. 25, 2007, 4 Pages.
International Search Report of PCT Application No. PCT/US2006/
OTHER PUBLICATIONS
Boneh et al, An Attack on RSA Given a Small Fraction of the Private
Key Bits, Advances in CryptologyiASIACRYPT 98, Lecture Notes in Computer Science, 25-34, V.1514, Springer-Verlag Berlin
Heidelberg, retrieved online on Jun. 15, 2006 at http://crypto. stanford.edu/ .about.dabo/ abstracts/ bits.sub.--of. sub. --d.html
10904, Dec. 26, 2007, 1 Page. Co-pending U.S. Appl. No. 09/098,075, ?led Jun. 16, 1998. Notice ofAllowance Mailed Feb. 19, 2002 in Co-pending U.S. Appl. No. 09/098,075, ?led Jun. 16, 1998. Non-Final Of?ce Action Mailed May 22, 2001 in Co-pending U.S. Appl. No. 09/098,075, ?led Jun. 16, 1998.
Non-Final Of?ce Action Mailed Nov. 14, 2000 in Co-pending U.S. Appl. No. 09/098,075, ?led Jun. 16, 1998.
(1998).
Erin et al., The Anatomy of a Large-Scale Hypertextual Web Search
Final Of?ce Action Mailed Aug. 30, 2000 in Co-pending U.S. Appl. No. 09/098,075, ?led Jun. 16, 1998. Non-Final Of?ce Action Mailed Mar. 16, 2000 in Co-pending U.S. Appl. No. 09/098,075, ?led Jun. 16, 1998.
presnicldpapers/Referee/www6-referee.htrnl.
Faupel, Status of Industry Work in Signed Mobile Code, Joint Euro pean Networking Conference (JENC), May 1997, pp. 313-1-313-8. Fiedler et al, UNIX System V, Release 4 Administration, Second
Edition, 1991, 1-13, 37-116, 152-153, 175-200, 291-312, Hayden Books, Carmel, Indiana, USA.
George et al, Secure Transaction Processing in Firm Real-Time Database Systems, SIGMOD International Conference on Manage ment of Data 1997, 462-473, V26, Issue 2, Association for Comput
PDF/COOTS-96.pdf.
Rappaport, Robots & Spiders & Crawlers: How Web and Intranet Search Engines Follow Links to Build Indexes, Infoseek Software,
Co-pending U.S. Appl. No. 10/228,680, ?led Aug. 26, 2002. Notice of Allowance Mailed Aug. 19, 2005 in Co-pending U.S. Appl. No. 10/228,680, ?led Aug. 26, 2002. Non-Final Of?ce Action Mailed Apr. 28, 2005 in Co-pending U.S. Appl. No. 10/228,680, ?led Aug. 26, 2002. Non-Final Of?ce Action Mailed Feb. 10, 2005 in Co-pending U.S. Appl. No. 10/228,680, ?led Aug. 26, 2002. Co-pending U.S. Appl. No. 11/100,956, ?led Apr. 6, 2005. Notice of Allowance Mailed Apr. 10, 2009 in Co-pending U.S. Appl. No. 11/100,956, ?led Apr. 6, 2005. Non-Final Of?ce Action Mailed Apr. 7, 2008 in Co-pending U.S. Appl. No. 11/100,956, ?led Apr. 6, 2005. Non-Final Of?ce Action Mailed Sep. 26, 2007 in Co-pending U.S. Appl. No. 11/100,956, ?led Apr. 6, 2005. Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14, 2001. Notice ofAllowance Mailed Jul. 7, 2008 in Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14,2001. Advisory Of?ce Action May 30, 2008 in Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14,2001. Final Of?ceAction Mailed Jan. 8, 2008 in Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14,2001. Non-Final Of?ce Action Mailed Jan. 3, 2007 in Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14,2001. Final Of?ce Action Mailed Apr. 5, 2006 in Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14,2001. Non-Final Of?ce Action Mailed Jun. 29, 2005 in Co-pending U.S. Appl. No. 10/023,915, ?led Dec. 14,2001. Co-pending U.S. Appl. No. 11/273,862, ?led Nov. 14,2005. Final Of?ce Action Mailed Feb. 25, 2010 in Co-pending U.S. Appl. No. 11/273,862, ?led Nov. 14, 2005. Non-Final Of?ce Action Mailed Jun. 8, 2009 in Co-pending U.S. Appl. No. 11/273,862, ?led Nov. 14,2005. Co-pending U.S. Appl. No. 10/926,635, ?led Aug. 25, 2004. Final Of?ce Action Mailed Dec. 12, 2007 in Co-pending U.S. Appl. No. 10/926,635, ?led Aug. 25, 2004. Non-Final Of?ce Action Mailed Jun. 21, 2007 in Co-pending U.S. Appl. No. 10/926,635, ?led Aug. 25, 2004. Co-pending U.S. Appl. No. 10/988,014, ?led Nov. 12,2004. Notice of Allowance Mailed Mar. 21, 2007 in Co-pending U.S. Appl. No. 10/988,014, ?led Nov. 12, 2004. Non-Final Of?ce Action Mailed Oct. 16, 2006 in Co-pending U.S. Appl. No. 10/988,014, ?led Nov. 12,2004.
US 8,509,230 B2
Page 5
Co-pending U.S. Appl. No. 11/274,442, ?led Nov. 14, 2005.
Non-Final Of?ce Action Mailed Dec. 10, 2008 in Co-pending U.S. Appl. No. 11/274,442, ?led Nov. 14, 2005. Non-Final Of?ce Action Mailed Oct. 28, 2008 in Co-Pending U.S. Appl. No. 11/021,569, ?led Dec. 22, 2004. Final Of?ce Action Mailed Mar. 21, 2008 in Co-Pending U.S. Appl. No. 11/021,569, ?led Dec. 22, 2004. Of?ce Action Mailed Sep. 18, 2007 in Co-Pending U.S. Appl. No. 11/021,569, ?led Dec. 22, 2004.
Co-pending U.S. Appl. No. 11/388,381, ?led Mar. 23, 2006. Final Of?ce Action Mailed Mar. 29, 2010 in Co-pending U.S. Appl. No. 11/388,381, ?led Mar. 23, 2006.
Non-Final Of?ce Action Mailed Dec. 9, 2008 in Co-pending U.S. Appl. No. 11/388,381, ?led Mar. 23, 2006.
Co-Pending U.S. Appl. No. 09/826,607, ?led Apr. 5, 2001. Advisory Action Mailed Oct. 23, 2006 in Co-Pending U.S. Appl. No. 09/826,607, ?led Apr. 5, 2001.
Final Of?ce Action Mailed Jun. 19, 2006 in Co-Pending U.S. Appl. No. 09/826,607, ?led Apr. 5, 2001.
Non-Final Of?ce Action Mailed Nov. 20, 2005 in Co-Pending U.S.
Co-pending U.S. Appl. No. 09/784,699, ?led Jun. 13, 2006. Notice of Allowance Mailed Dec. 23, 2005 in Co -Pending U.S. Appl. No. 09/784,699, ?led Feb. 14,2001.
Non-Final Of?ce Action Mailed Oct. 3, 2005 in Co-Pending U.S.
Appl. No. 09/784,699, ?led Feb. 14,2001. Final Of?ce Action Mailed Mar. 7, 2005 in Co-Pending U.S. Appl. No. 09/784,699, ?led Feb. 14,2001.
Non-Final Of?ce Action Mailed Jun. 16, 2004 in Co-Pending U.S.
Appl. No. 09/784,699, ?led Feb. 14,2001. Co-pending U.S. Appl. No. 11/453,301, ?led Jun. 13, 2006. Non-Final Of?ce Action Mailed Apr. 7, 2010 in Co-Pending U.S. Appl. No. 11/453,301, ?led Jun. 13,2006. Non-Final Of?ce Action Mailed Aug. 6, 2009 in Co-Pending U.S. Appl. No. 11/453,301, ?led Jun. 13,2006. Co-Pending U.S. Appl. No. 09/847,813, ?led May 1, 2001. Final Of?ce Action Mailed Jan. 8, 2008 in Co-Pending U.S. Appl. No. 09/847,813, ?led May 1, 2001. Non-Final Of?ce Action Mailed Jul. 3, 2007 in Co-Pending U.S. Appl. No. 09/847,813, ?led May 1, 2001. Final Of?ce Action Mailed Mar. 16, 2007 in Co-Pending U.S. Appl. No. 09/847,813, ?led May 1, 2001.
Non-Final Of?ce Action Mailed Dec. 7, 2006 in Co-Pending U.S.
Appl. No. 09/847,813, ?led May 1, 2001. Final Of?ce Action Mailed Sep. 20, 2005 in Co-Pending U.S. Appl. No. 09/847,813, ?led May 1, 2001. Non-Final Of?ce Action Mailed Feb. 15, 2005 in Co-Pending U.S. Appl. No. 09/847,813, ?led May 1, 2001. Co-Pending U.S. Appl. No. 10/010,147, ?led Nov. 6, 2001. Notice ofAlloWance Mailed Oct. 28, 2005 in Co-Pending U.S. Appl. No. 10/010,147, ?led Nov. 6, 2001. Non-Final Of?ce Action Mailed Feb. 9, 2005 in Co-Pending U.S. Appl. No. 10/010,147, ?led Nov. 6, 2001. Co-Pending U.S. Appl. No. 11/021,569, ?led Dec. 22, 2004.
Appl. No. 09/826,607, ?led Apr. 5, 2001. Final Of?ce Action Mailed May 24, 2005 in Co-Pending U.S. Appl. No. 09/826,607, ?led Apr. 5, 2001. Non-Final Of?ce Action Mailed Oct. 6, 2004 in Co-Pending U.S. Appl. No. 09/826,607, ?led Apr. 5, 2001. Co-Pending U.S. Appl. No. 09/827,030, ?led Apr. 5, 2001. Notice ofAlloWance Mailed Jan. 26, 2005 in Co-Pending U.S. Appl. No. 09/827,030, ?led Apr. 5, 2001. Of?ce Action Mailed Jun. 18, 2004 in Co-Pending U.S. Appl. No. 09/827,030, ?led Apr. 5, 2001. Co-Pending U.S. Appl. No. 09/858,260, ?led May 15, 2001. Notice of Allowance Mailed May 10, 2005 in Co-Pending U.S. Appl. No. 09/858,260, ?led May 15, 2001. Of?ce Action dated Sep. 7, 2004 in Co-Pending U.S. Appl. No. 09/858,260, ?led May 15, 2001. Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Final Of?ce Action Mailed Jan. 25, 2010 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Non-Final Of?ce Action Mailed Mar. 3, 2009 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Advisory Action Mailed May 8, 2007 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6,2001. Final Of?ce Action Mailed Dec. 1, 2006 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Non-Final Of?ce Action Mailed Nov. 17, 2005 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Non-Final Of?ce Action Mailed Jun. 7, 2005 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Non-Final Of?ce Action Mailed Dec. 14, 2004 in Co-Pending U.S. Appl. No. 10/005,729, ?led Nov. 6, 2001. Co-Pending U.S. Appl. No. 09/996,180, ?led Nov. 27, 2001. Of?ce Action Mailed Feb. 24, 2005 in Co-Pending U.S. Appl. No. 09/996,180, ?led Nov. 27, 2001. Co-Pending U.S. Appl. No. 12/062,766, ?led Apr. 8, 2008. Co-Pending U.S. Appl. No. 12/062,789, ?led Apr. 8, 2008.
* cited by examiner
US. Patent
Sheet 1 of7
US 8,509,230 B2
r- 100
Web Content 108
Computer
106
Sewer
Network 102
Modem
Web Server 104
Computer
112
Interface 114
Modem
Gateway
Interface
120
coq'fgter
Computer
132
LAN 130
Server
Computer
134
Computer
122
Computer
126
FiIes i 138
FIG. 1
US. Patent
Sheet 2 of7
US 8,509,230 B2
140 ~
Computer 142
P
rocessor
148
Comm Interface 150
Memory 152
f 160
Display
Control 154
NV Storage
156
Display 146
HO Devices 144
FIG. 2
US. Patent
Sheet 3 of7
US 8,509,230 B2
300 ""~\
[- 330
l K 310
FTP Server 314 V 315
f 31-2
:
Client
> _ Computer 29
http Server
K 311
313
SQL Server
FIG. 3
US. Patent
300 "'j
Sheet 4 of7
US 8,509,230 B2
Memory 5151
Server Software 132
Processor ?g
/ Bus 418
Communication Interface 115
[- Bus. 428
Memory $_2_4_
Browser (optionai) 55;
Processor 5g; Client Shell 533 Cache. 55g
Client Computer 29
FIG. 4
US. Patent
500A N
Sheet 5 of7
US 8,509,230 B2
K
Visit Web site
502
Subscribe?
/.
506
i K508
Check username
f 512 f 510
-.
1 Km
Execute installation program
1 Km
Reboot machine
M
FIG. 5A
US. Patent
Sheet 6 of7
US 8,509,230 B2
5008 k
Start
522
Select title?
532
/
Display login dialog
v
528
f- 530
Validate user
[I
Generate session
538
FIG. 5B
US. Patent
Sheet 7 of7
US 8,509,230 B2
5000 a
K
> Download block
542
Threshold?
Y
N
546
/.
Execute title
1 ~48
Generate start message
Y
Still running?
558
f 5
.
54
N
560
@
Y
556
562
FIG. 5C
US 8,509,230 B2
1
SOFTWARE STREAMING SYSTEM AND METHOD
2
registry changes, ?les, and directories created; creating an
index for used by a client-side ?le system driver to present the virtual directory structure to the client; receiving a request for
application Ser. No. 11/100,956, ?led Apr. 6, 2005, entitled Software Streaming System and Method, which has issued
as US. Pat. No. 7,577,751, and which is a Continuation of
US. Pat. No. 7,096,253 ?led Aug. 26, 2002, entitled A Method and Apparatus for Streaming Software, which is a Continuation of US. Pat. No. 6,453,334, ?led Jun. 16, 1998 entitled Method and Apparatus to Allow Remotely Located
Computer Programs and/or Data to be Accessed on a Local
Computer in a Secure, Time-Limited Manner, with Persistent Caching, which claims priority to US. Provisional Patent
Application No. 60/049,759, ?led Jun. 16, 1997, all ofwhich are incorporated herein by reference.
BACKGROUND
20
the installation requirement prevents immediate execution of the software title. The purchaser of a software title generally
has to install the software title before the software title can be executed. This can be a time-consuming and frustrating endeavor.
If a person ?nds software on the Internet or a bulletin board, he or she must often follow current download methods which
25
ment, in operation the streaming engine may stream an executable streaming application from the program database to the client. In a non-limiting embodiment, in operation the
client shell stores at least some of the executable streaming
includes, for example, downloading a Zipped ?le, which the subscriber must unZip and install, requiring minutes to
accomplish. Execution does not occur until the Zipped ?le or the entire set of ?les associated with a software title is down loaded to a local machine.
FIG. 4 depicts an alternative representation of the client server streaming software system of FIG. 3.
40
tioned problems have been reduced or eliminated. In a non-limiting embodiment, a method for streaming software may include downloading blocks associated with a software title until an executable threshold is reached, initi
ating execution of the software title, and continuing to blocks of the software title while the software title is executed. By way of example but not limitation, the method may further
include logging on to a server site, selecting the software title
45
The following description of FIGS. 1 and 2 is intended to provide an overview of computer hardware and other operat
and embodiments of the invention described herein, but is not intended to limit the applicable environments. Similarly, the computer hardware and other operating components may be
suitable as part of the apparatuses of the various embodiments described herein. Applicable environments may include other
execution of the software title; downloading blocks associ ated with the requested data; and resuming execution of the software title with the requested data.
In another non-limiting embodiment, a method for stream ing software may include sending to a client data su?icient for
the client to build a virtual directory structure for use in executing a software title, streaming a subset of blocks asso
60
programmable consumer electronics, network PCs, mini computers, mainframe computers, and the like. Applicable environments may include distributed computing environ ments where tasks are performed by remote processing
devices that are linked through a communications network. FIG. 1 depicts a networked system 100 that includes sev
such as the TCP/IP protocol, and possibly other protocols such as the hypertext transfer protocol (HTTP) for hypertext markup language (HTML) documents that make up the World Wide Web (the web). The physical connections of the
US 8,509,230 B2
3
Internet and the protocols and communication procedures of
the Internet are Well knoWn to those of skill in the art. The Web server 104 is typically at least one computer system Which operates as a server computer system and is
4
system or a server computer system or as a Web server system.
Such a computer system can be used to perform many of the functions of an Internet service provider, such as ISP 110
having different softWare components providing the Web server functionality and the server functionality provided by
the server computer system 106, Which Will be described further beloW. Access to the netWork 102 is typically provided by Internet service providers (ISPs), such as the ISPs 110 and 116. Users on client systems, such as client computer systems 112, 118, 122, and 126 obtain access to the Internet through the ISPs
110 and 116. Access to the Internet alloWs users of the client
mission interface (e.g. direct PC), or other interfaces for coupling a computer system to other computer systems. The processor 148 may be, for example, a conventional
microprocessor such as an Intel Pentium microprocessor or
Motorola poWer PC microprocessor. The memory 152 is coupled to the processor 148 by a bus 160. The memory 152 can be dynamic random access memory (DRAM) and can also include static ram (SRAM). The bus 160 couples the processor 148 to the memory 152, also to the non-volatile
Client computer systems 112, 118, 122, and 126 can each, With the appropriate Web broWsing softWare, vieW HTML
pages provided by the Web server 104. The ISP 110 provides Internet connectivity to the client computer system 112 through the modem interface 114, Which can be considered part of the client computer system 112. The client computer
system can be a personal computer system, a netWork com
35
With conventional Well-knoWn technology. The non-volatile storage 156 is often a magnetic hard disk,
40
puter, a Web TV system, or other computer system. While FIG. 1 shoWs the modem interface 114 generically as a modem, the interface can be an analog modem, isdn
an optical disk, or another form of storage for large amounts of data. Some of this data is often Written, by a direct memory access process, into memory 152 during execution of soft Ware in the computer 142. One of skill in the art Will imme
diately recogniZe that the terms machine-readable medium or computer-readable medium includes any type of storage device that is accessible by the processor 148 and also encom
passes a carrier Wave that encodes a data signal.
The computer system 140 is one example of many possible computer systems Which have different architectures. For example, personal computers based on an Intel microproces
sor often have multiple buses, one of Which can be an I/O bus
for the peripherals and one that directly connects the proces
sor 148 and the memory 152 (often referred to as a memory
bus). The buses are connected together through bridge com ponents that perform any necessary translation due to differ
NetWork computers are another type of computer system that can be used With the present invention. NetWork comput
ers do not usually include a hard disk or other mass storage, and the executable programs are loaded from a netWork con
Alternatively, a server computer system 134 can be directly coupled to the LAN 130 through a netWork interface 136 to provide ?les 138 and other services to the clients 122 and 126, Without the need to connect to the Internet through the gate Way system 132. FIG. 2 depicts a computer system 140 for use in the system 100 (FIG. 1). The computer system 140 may be a conven tional computer system that can be used as a client computer
60
nection into the memory 152 for execution by the processor 148. A Web TV system, Which is knoWn in the art, is also considered to be a computer system according to the present invention, but it may lack some of the features shoWn in FIG. 2, such as certain input or output devices. A typical computer system Will usually include at least a processor, memory, and
a bus coupling the memory to the processor.
65
In addition, the computer system 140 is controlled by oper ating system softWare Which includes a ?le management sys
US 8,509,230 B2
5
tem, such as a disk operating system, Which is part of the
6
reference to any particular programming language, and vari
ous embodiments may thus be implemented using a variety of
programming languages.
According to an embodiment, subscribers can access a
Microsoft Corporation of Redmond, Wash, and their associ ated ?le management systems. Another example of operating system software With its associated ?le management system softWare is the Linux operating system and its associated ?le management system. The ?le management system is typi
cally stored in the non-volatile storage 156 and causes the processor 148 to execute the various acts required by the operating system to input and output data and to store data in memory, including storing ?les on the non-volatile storage 156.
softWare title on demand. By Way of example but not limita tion, a subscriber can rent a softWare title, instead of using conventional distribution channels to supply media/hard copy/boxes on store shelves. A non-limiting embodiment
includes a client-server architecture/platform to serve stream ing software or softWare-on-demand over a netWork, such as
the Internet. In another non-limiting embodiment, subscribers can rent softWare titles. The softWare titles may already be pre-con ?gured so there is little to no installation issues for the sub
Some portions of the detailed description are presented in terms of algorithms and symbolic representations of opera
tions on data bits Within a computer memory. These algorith
scriber. By Way of example but not limitation, a pre-con?g ured softWare may be pre-con?gured according to the
mic descriptions and representations are the means used by those skilled in the data processing arts to most effectively
convey the substance of their Work to others skilled in the art.
An algorithm is here, and generally, conceived to be a self consistent sequence of operations leading to a desired result.
Which the contents of the registry are knoWn, and all ?les prior to the installation of the target program are knoWn. (The description is, for illustrative purposes only, in the context of a WindoWs 95-type system.) By knoWing the state of the machine before the installation of the target program, changes made to the install machine caused by the installation of the
softWare title can be determined. It is sometimes required to
run the softWare title on the install system so that any ?nal
25
installation steps needed by the softWare title can be deter mined. This need may be determined manually on a case-by case basis. Of course, this could also be determined automati
30
environment that is virtually isolated from other components. Next, the softWare title is preprocessed. The purpose of the preprocessing phase in a non-limiting embodiment is tWo
fold: To create an index containing information about all the
apparent from the folloWing discussion, it is appreciated that throughout the description, discussions utiliZing terms such
as processing or computing or calculating or deter
be referred to as blocks.
puting device, that manipulates and transforms data repre sented as physical (electronic) quantities Within the computer systems registers and memories into other data similarly represented as physical quantities Within the computer sys
tem memories or registers or other such information storage, transmission or display devices. Some embodiments also relate to apparatus for performing
45
According to a non-limiting embodiment, the preprocess ing technique brings the softWare title to an on-demand client by utiliZing a manual or automated utility to preprocess the softWare title. The utility records Which ?les of the softWare
title are installed and hoW the registry is used. Unlike a stan
dard installer package, the utility analyZes hoW the softWare title is actually executed after installation. The index is used by the client-side ?le system driver (hereafter the FSD) to present a virtual directory structure to
50
the client machine, including all ?le properties (?le siZe, last modi?cation time, etc.) and the overall directory structure.
The blocks are doWnloaded by the FSD and cached, decom pressed, and decrypted, on an as-needed basis, during the
execution of the softWare title on the client machine. In a non-limiting embodiment, the ?les are broken into com
medium, such as, but is not limited to, any type of disk
including ?oppy disks, optical disks, CD-ROMs, and mag netic-optical disks, read-only memories (ROMs), random
access memories (RAMs), EPROMs, EEPROMs, magnetic
or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer sys
tem bus.
55
pressed, encrypted blocks in a preprocessing phase, rather than during runtime, to improve runtime performance. In another non-limiting embodiment, the index also contains the
60
The algorithms and displays presented herein are not inher ently related to any particular computer or other apparatus. Various general purpose systems may be used With programs in accordance With the teachings herein, or it may prove
convenient to construct more specialiZed apparatus to per
information used by the FSD to compute Which block to doWnload at runtime as it is needed. In this Way, the utility prepares the softWare title for streaming and stores the asso
ciated ?les on a server.
non-limiting embodiment, this may include adding the direc tory/ ?le to the index. Additional information may include, by
US 8,509,230 B2
7
Way of example but not limitation, ?le creation time, last modi?cation time, last access time, ?le siZe, short form of the
name, and long form of the name. The location of the ?le/
8
FTP services and a high performance ODBC database. These
extensions may interface to a database, or communicate With
the client 320. IIS Extensions (e.g., ISAPI Extensions) have an associated
message structure that may vary With neW versions. In a
non-limiting embodiment, the ISAPI extensions reside in a .dll ?le on the server 310. By Way of example but not limita
tion, ISAPI extensions may reside on an http server associ
ated With the server 310. The extensions, residing in a .dll type
?le, can be called from a client shell program on the client
20
limiting embodiment, is HTTP over TCP/IP. The folloWing methods are examples of messages that could be used according to a non-limiting embodiment. The folloWing method is called to create and update subscribers
the components of a dependency string.After the necessary components have been received, the server sends additional components on-demand. Advantageously, a subscriber, this
process is transparent. Since the softWare titles are prepro
cessed on a clean system, the softWare titles have their oWn
35
LPCTSTR
LPCTSTR LPCTSTR
Zip,
country, ccnumber, ocexpdate,
nameionicc,
LPCTSTR
LPCTSTR
Which is tracked by companys database. Subscriber usage may be measured, for example, by determining a start time
and an end time for each time period during Which a softWare
40
title is executing, and incrementing a time period counter according to the length of the time periods. In another non-limiting embodiment, an encryption pro cess prevents illegal use of the streaming softWare. This may
result in more security toWards a softWare package then cur
Word);
returns sessionID is called by the client shell after a subscriber enters a valid
45
subscribers can purchase streaming softWare. In other embodiments, chat rooms, and any other Internet-type related activity may be included. In another embodiment, contests betWeen subscribers may be included. FIG. 3 depicts a client-server streaming softWare system
300 according to an embodiment. The system 300 includes a
GetGameStream(LPCTSTR gametitle);
returns dependencystring is called by client shell to retrieve a ?le dependency string and
a minimum number of ?les required for the main executable to start executing. This gets called after a subscriber selects a
The message:
server 310, Which may include an FTP server, an HTTP 55 particular softWare title from Website.
server, and an SQL server and a client 320, Which may include a client shell and a cache. In a non-limiting embodiment, the system 300 includes a client server model based on, by Way of
example but not limitation, WindoWs NT and IIS/FTP ser vices. One of skill in the art should recogniZe that, in various embodiments, the system 300 can be used to serve legacy DOS, WindoWs, or any other softWare products.
The server 310 may include a high performance NT server machine or collection of machines. An ISAPI interface pro totype that included Web extensions to NTs IIS Web Server
returns gameID is called by client shell When minimum number of ?les have
been doWnloaded to a local machine and a softWare title starts
executing.
The message:
65
Was completed in June 1996. Accordingly, other components may include NTs IIS. Other components may also include
StopGameClock(LPCTSTR gameID);
sessionID,
LPCTSTR
US 8,509,230 B2
9
The message:
10
procedures may include, by Way of example but not limita
tion, establishing a session ID, querying a program ID in the
LogoffGWserver(LPCTSTR sessionID);
is called by the client shell to logoff a subscriber. Subscriber logon time is tracked in the database. The message:
database, selecting a dependency string associated With the program, sending the dependency string to the server 3 10, and
LogErrorsMsg(LPCTSTR errorrnsg)
is called When issues and errors need to be recorded in the database.
The server 310 and the client 320 are coupled to one
another through a network, such as a netWork described by Way of example but not limitation With reference to FIG. 1. A
connection is represented in FIG. 3 as a bi-directional arroW 330. A connection betWeen the server 310 and the client 320
?les ?rst) and the general performance (providing soon-to be-needed ?les next). The dependency algorithm obviated hard-coding a dependency string in a client shell, thereby
relieving the need to keep updating the client shell as neW
In certain embodiments, an Intranet-type netWork may be added to the system 300. Accordingly, in a non-limiting embodiment, the client may be part of an enterprises LAN
and doWnload performance can be at LAN (e.g., Ethernet or
loaded to a local ?le structure for execution by the client shell thereon. HoWever, this reduces some of the advantages asso ciated With fast execution of a softWare title.
The transaction 314 may include, by Way of example but not limitation, requesting ?les associated With the program.
The request for ?les is sent from the server 310 to the client
25
stored on an intranet, While requiring database-type messages alWays go back to a database server. Naturally, the database server could also be part of the intranet, though this may be
inappropriate in an embodiment Where the database server is managed by a party that does not oWn the intranet. A series of transactions betWeen the server and client are
3 10, and other procedures. The other procedures may include, by Way of example but not limitation, execution of the ?les
represented as the uni-directional arroWs 311, 312, 313, 314, and 315. It should be noted that each transaction may or may
not be accomplished as a single transaction or a series of bi-directional transactions, such as handshake or veri?cation
procedures that involve transmissions and replies. For illus trative purposes only, hoWever, the transactions are described
as if they are uni-directional in character.
used, and re-initiating transaction 315 at any time. Multiple programs may be run simultaneously. Accordingly, multiple
transactions 315 could be simultaneously carried out. The ?les, also referred to as blocks, may be individual pieces of a streaming softWare package. Files reside on the
embodiments, a systems user interface Was replaced With Web pages so that a subscriber could select softWare titles from a Web page. Of course, alternative embodiments could be used, such as the ?xed user interface that the Web page
40
server 310 until a subscriber chooses to run streaming soft Ware. The appropriate ?les are doWnloaded from the server
310 to the client 320 according to a streaming softWare pro cedure. A streaming softWare package can contain at least one
FIG. 4 depicts an alternative representation of the system 300. In the example of FIG. 4, the system 300 includes the
50
request.
The transaction 312 folloWs the generation of, for example,
the HTTP request. The transaction 312 may include doWn loading, by Way of example but not limitation, a token ?le at the server 310 folloWed by other procedures. The other pro
55
server 310 and the client 320, coupled to a netWork 402. In a non-limiting embodiment, the server 310 includes a proces sor 412, memory 414, a communication interface 416, each of Which is coupled to a bus 418. In a non-limiting embodiment, the client 320 includes a processor 422, memory 424, a com munication interface 426, each of Which is coupled to a bus 428. The communication interfaces 416, 426 facilitate com munication betWeen the server 310 and the client 320 through the netWork 402. It should be noted that the server 310 could
communication server.
instructed Which program is requested. The transaction 313 may include, by Way of example but
not limitation, querying a database, such as an SQL database accessible to an SQL server, and other procedures. The other
procedures, such as an operating system, drivers, and the like, as is Well-knoWn in the computer-related arts. Indeed, the
US 8,509,230 B2
11
modules, such as the server software 432, could be incorpo
rated into one or more software modules, such as the operat
12
subscriber may purchase time in advance, or be billed for time spent after streaming a title. Pro?les may be kept about sub scriber machines (e. g., the client 320), saving a subscriber the
ing system.
The server software 432 may or may not include multiple
machines (e.g., the client 320) that perhaps dont have all
necessary equipment, like a sound card for example. In certain embodiments, messaging between the server 3 10 and client 320 may be used to track software usage time and login session details. The subscriber database 436 may include information about previous subscribers, inactive sub scribers, and potential subscribers, in addition to active sub scribers. Billing subscribers may be accomplished in several ways. By way of example, the subscriber may have a monthly subscription rate, an hourly rate, or a per-software title
instance rate.
by way of example but not limitation, Windows NT Server using the IIS and FTP services. In a non-limiting embodi
ment, the server software 432 is associated with each of the transactions 311 to 315 of FIG. 3. The program database 434 may or may not include mul
According to a non-limiting embodiment, a streaming tech nology involves facilitating execution of a software title before the entire software title has been downloaded. Advan
tageously, the subscriber no longer has to download an entire set of ?les before running a streaming title. This may mean
that the subscriber can run a program up to 3-5 times faster. It
20
should be noted that unmodi?ed software titles may also be used if startup execution speed is not a factor or if associated
25
tially.
By way of example but not limitation, the technique may
involve the following. It may be noted that this process can be carried out manually or automated using a software program.
30
time. When the subscriber attempts to stream a title, the database is consulted to determine if the subscriber is attempting to stream the software title at a speci?c time that is between the start time and end time of the subscription. Obvi ously, the subscription end time could be more or less than a month in alternative embodiments. If a subscriber has an hourly rate, then the subscriber data base 436 may include a start time and an end time that is associated with a streaming session. For billing purposes, the period between the start time and end time is added to similar periods of time to determine total usage. It may be noted that different software titles may or may not have different hourly
rates.
Ordering records ?les used by the software title. Encrypting executable ?les and any other deemed-sensi tive ?les. This encryption prevents the subscriber from running the software title illegally (e.g., when not con nected to the companys server), or protects against
other hacking or deviant intentions a subscriber may try. Compressing the ?les and copying the ?les to the server
35
436 is consulted to determine if the subscriber is attempting to stream a software title for which the subscriber has paid.
45
second basis from all subscribers. Revenues associated with the software title may be split based upon the tracked usage. The more seconds the software title acquires (from sub scribers running that package), the more revenue a, for
subscriber clicks on the associated link, httped down to local machine, and passed to a client shell program. This mechanism allows the client shell to determine what software title the subscriber just selected on the
50
webpage.
In a non-limiting embodiment, the program database 434 is accessed in, or otherwise associated with, the transactions
311 to 315 ofFIG. 3. The subscriber database 436 may or may not include infor
55
validated. A unique session ID is generated, and start login time is recorded into the subscriber database 436. Assuming
the subscriber enters a valid combination, the subscriber is ready to select a software title. Once a software title is
times, software streaming times, a time period during which streaming is allowed (subscription-based), the amount of time purchased (usage-based), cumulative time spent stream
machine, the software is executed/run. A session start time message is sent to the subscriber database 436. If the software terminates, a stop time message is sent to the subscriber
revenue distribution to streaming software clients. The client shell allows subscribers to logout at any time, which gener ates a logout message that is sent to the subscriber database 436.
US 8,509,230 B2
13
In a non-limiting embodiment, the subscriber database 436 is accessed in, or otherwise associated with, the transactions 312 to 315 of FIG. 3. It should be noted that although the
program database 434 and the subscriber database 436 are 56X
14
-continued
Memb eriMktgiInfo Table
text
Internet hours
Magazine 2
number
text
Magazine 3
Magazine 4
text
text
ErroriMessages Table
ID
Tlm?sta-mp
Error
numb?
Date/Tun?
text
15
Player Name
ServiceiUsage Table
Unique Session
Lo gin Time Lo gout Time
text
text
date/time date/time
Elapsed Time
20
SoftwareiID Table
number (seconds)
text
. .
IP Address
,
text
text
Ext
25 package is downloaded. The performance of the streaming engine 438 may be improved by streaming software pre
processing techniques. By way of example but not limitation, streaming software pre-processing may include determining
so?war?iUsag? Tabl?
Unique Session
text
Uniqu? Gaine
text
date/time
sTtizlieTlme
iii/$21211 Seconds)
Ext
y?s/no Emmy y?s/no
date/time
well-known in the computer-related arts. Another pre-pro ces sing technique is to determine the number of ?les that are
required for a program to run. This technique facilitates
45 execution of the program prior to downloading the entire
Deactlvatlon Date
Strw Address City State
Zip code Country Cmdit Card Number Credit Card Expiration Date
date/m6
text text Ext
text mt Rumba date/time
Ext
text Ext
text
ut not 1m1tat1on, 1n ows su sequent re eases), Windows NT, or some other operating system.
1-
W- d
95
The client shell 444 facilitates access by the server 310, either directly or indirectly, to resources on the client 320. Conceptually, the client shell 444 acts as a layer between the
title that is streamed to the client shell has its own virtual environment including a virtual registry and virtual DLLs. The client shell 444 makes a ?le system associated with the
streaming program ont 'e c 1ent
'
1'
Occupation
Income level
text
number
65 granting control to the client shell 444, the client shell 444 can
execute streaming software in a secure manner. The client
US 8,509,230 B2
15
Advantageously, the client shell 444 can execute streaming software before all the blocks or ?les associated with the
streaming program are downloaded to client 320. The stream ing software is executed once the client 320 has downloaded a certain number of ?les. In a non-limiting embodiment, the
client shell 444 continues to download ?les as a background
16
Watchdog time support was incorporated into a prototype system in December 1996 to make sure streaming software was running and to perform other watchdog functions. In a
non-limiting embodiment, the client shell 444 can act as a
watchdog of subscriber running times, and can communi cate extensively with the server 310 to, by way of example but
not limitation, ensure that a subscriber is accessing appropri
ate memory resources at any given time. In a non-limiting embodiment, the header of a main execut able ?le may be scrambled so that, even if cached, a sub
task while streaming software is executing. In certain embodiments, streaming software execution
may be suspended to download a needed block. Thus, if the streaming software needs a ?le resource that is not yet
ing embodiment, the client shell 444 may call, by way of example but not limitation, CreateProcess( ), a Win32 API, to start executing the streaming software, and the client shell
444 uses a debugging property. When an error occurs in the
streaming software (e.g., because a ?le resource is missing), the error may be trapped by the client shell which then can
download the appropriate ?le resource from the server 310.
25
nation of non-volatile storage and volatile memory. It should be noted that if all ?les associated with a streaming program are left on the client 320, then, in some cases, performance
can be increased if the subscriber uses the streaming program again. If the client shell 444 determines that a next required ?le is already stored on the client 320 (in the cache 446), then the ?le need not be downloaded and, if applicable, uncom
30
example, IIS software extensions may be used to send data to a database. The client shell 444 may also be responsible for
prototype system in October 1996. Some ?les are left in the cache 446 after execution of a streaming program. This
allows execution of a repeat stream to occur faster. Since
35
?les already reside locally in the cache 446, the ?les dont
have to be downloaded again. So long as a su?icient amount
limiting embodiment, an encryption technique is used to pre vent subscribers from running streaming software while not
connected to the server 320.
required by the streaming program. If the cache 446 is not large enough, then ?les have to be deleted from the client 320
and downloaded again when needed. There are many known
ent 320 and the server 310. This includes, by way of example but not limitation, if a subscriber intentionally disconnects
from the server 310 or if any crashes occur, etc. The encryp
45
illegal copies.
In a non-limiting embodiment, to improve performance, a subset of ?les are encrypted. This is because performance will
50
administrator could assign a software title for streaming to client 320, obviating the need for a browser-based title selec tion procedure. The browser is associated with the transac tions 311 and 312 of FIG. 3. FIG. 5A depicts a ?owchart 500A of a method according to
an embodiment. The ?owchart 500A is intended to illustrate a subscription stage of a client-server model. It may be noted
that the method of FIG. 5A is optional since the subscription stage could be conducted using other techniques, such as an administrator adding new subscribers. Moreover, subscrip
tion could be assumed for clients on a particular network, such as a company LAN. Accordingly, FIG. 5A is intended to
serve as an optional example. In an embodiment, the ?owchart 500A starts at module 502
60
protection is compromised.
Certain embodiments may include compression. Compres
sion is used to reduce total number of bytes that have are sent
across a network/modem from the server 310 to the client 65
wherein a website is visited. A potential subscriber may visit a website using, by way of example but not limitation, a browser. The website may be maintained by a software title
320. Thus, the client shell 444 may or may not also uncom press blocks of a streaming program prior to use.