US007330872B2

(12) Patent (10) Patent N0.: US 7,330,872 B2 Peart et a]. (45) Date of Patent: Feb. 12, 2008

(54) METHOD FOR DISTRIBUTED PROGRAM 5,870,552 A 2/1999 Dozier et a1...... 395/200.49 EXECUTION WITH WEB-BASED FILE-TYPE 5,896,533 A 4/1999 Ramos et a1...... 395/680 ASSOCIATION 5,898,835 A 4/1999 Truong ...... 395/20047 5,903,727 A 5/1999 Nielsen ...... 395/200.42 (75) Inventors: Franklyn Peart’ Davie’ FL (Us); 6,026,433 A 2/2000 D’Arlach et a1...... 709/217 Michael Richtberg Coral Springs FL 6,038,596 A 3/2000 Baldwin et a1...... 709/219 ’ ’ 6,047,312 A * 4/2000 Brooks et a1...... 709/203 (Us) 6,088,515 A 7/2000 Muir et a1...... 395/20047 6,125,387 A 9/2000 S' if tal...... 709/218 (73) Assignee: , Inc., Fort Lauderdale, 6,128,642 A 10/2000 131312532153, et 31‘ FL (Us) 6,131,116 A 10/2000 Riggins et a1...... 709/219 6,154,218 A 11/2000 Murase et a1. ( * ) Notice: Subject to any disclaimer, the term of this _ patent is extended or adjusted under 35 (Connnued) U-S-C- 154(b) by 484 days- FOREIGN PATENT DOCUMENTS (21) Appl. No.: 09/970,462 W0 WO 01/38973 A2 5/2001 (22) Filed: Oct. 2, 2001 OTHER PUBLICATIONS U.S. Appl. No. 09/970,038, ?led Oct. 2, 2001, Peart. (65) Prior Publication Data Continued US 2003/0069924 A1 Apr. 10, 2003 ( ) Primary ExamineriKenny Lin (51) Int. Cl. (74) Attorney, Agent, or FirmiChoate Hall & Stewart LLP G06F 15/16 (2006.01) (52) us. Cl...... 709/203; 709/217; 709/218 (57) ABSTRACT (58) Field of Classi?cation Search ...... 715/744; _ _ _ 707/10; 709/202’ 203’ 226’ 246 In one aspect the mventlon'rela'tes to a method for enablmg See application ?le for Complete Search history' distributed program executlon 1n a network that mcludes a cl1ent system and a plural1ty of server systems. The method (56) References Cited includes the step of presenting a graphical depiction of a data ?le that is stored on a web server. A request to execute a ?rst U.S. PATENT DOCUMENTS executable program, that includes information concerning a

4,949,248 A 8/1990 Caro ...... 364/200 second executable program associated with the data ?le is 5,204,947 A 4/1993 Bernstein et a1. 395/157 reviewed. The second program can execute with on the 5,265,239 A 11/1993 Ardolino ...... 395/500 system or one of a plurality of server systems. 5,761,656 A 6/1998 Ben-Shachar Application output data from the second executable program 5,764,908 A 6/1998 Shoji et a1...... 395/200.47 is reviewed and formatted by the ?rst executable program 5,801,170 A 9/1998 Gaster et a1. and received application output data is presented to the user. 5,832,274 A 11/1998 Cutler et a1. 5,838,906 A * 11/1998 Doyle et a1...... 709/202 5,859,978 A 1/1999 Sonderegger et a1. 38 Claims, 17 Drawing Sheets

92

"WEB" SERVER

57 :20 l 80'“ 15 I1 57. 32 CLIENT 94 EE

SERVER US 7,330,872 B2 Page 2

US. PATENT DOCUMENTS US. Notice of Allowance and Allowability dated May 23, 2006, in US. Appl. No. 09/970,038. 6,185,609 B1 2/2001 Rangarajan et a1...... 709/219 US. Of?ce Action, dated Dec. 10, 2004, in US. Appl. No. 6,195,678 B1 2/2001 Komuro ...... 709/202 09/970,037. 6,256,662 B1 7/2001 Lo et al. .. . 709/203 US. Notice of Allowance and Allowability dated May 13, 2005, in 6,256,666 B1 7/2001 Singhal ...... 709/217 6,263,363 B1 7/2001 Rosenblatt et a1. .. 709/217 US. Appl. No. 09/970,037. 6,266,678 B1 7/2001 McDevitt et al. 707/201 Russian Inquiry dated Oct. 5, 2006, in Russian App. No. 6,362,836 B1* 3/2002 Shaw et al...... 715/744 2004112417/09. 6,421,673 B1 * 7/2002 Caldwell et al. .. 707/10 Russian Decision on Granting, dated Jan. 26, 2007, in Russian App. 6,442,565 B1 8/2002 Tyra et a1. No. 2004112417/09. 6,502,133 B1 12/2002 Baulier et al. Australian First Report, dated Oct. 7, 2005, in Australian App. No. 6,721,803 B1 4/2004 Kirkeby 2002332001. 6,779,117 B1 8/2004 Wells Australian Second Report, dated Oct. 16, 2006, in Australian App. 6,813,770 B1* 11/2004 Allavarpu et al...... 719/316 No. 2002332001. 2001/0007995 A1 7/2001 Makino ...... 709/219 Australian Notice of Acceptance, dated Nov. 21, 2006, in Australian OTHER PUBLICATIONS App. No. 2002332001. Australian First Report, dated Mar. 13, 2007, in Australian App. No. U.S. Appl. No. 09/970,037, ?led Oct. 2, 2001, Peart. 2006233277. Anonymous. “Tarantella Web-enabling , One World, One Australian Second Report, dated Mar. 26, 2007, in Australian App. Network, One Answer, An SCO Technical White Paper” Santa Cruz No. 2006233277. Operation, Inc. Dec. 31, 1999, pp. 1-25. Anonymous. “Tarantella Administration Guide> Reference > Australian Notice of Acceptance, dated Jun. 25, 2007, in Australian Objects and attributes: Windows Application Object” The Santa App. No. 2006233277. Cruz Operation, Inc. 1999, pp. 1-4. Chinese Of?ce Action, dated May 12, 2006, in Chinese App. No. Anonymous. “Tarantella Administration Guide > Introduction > 028241878 Essential information for Tarantella Administrators: Giving users European Of?ce Action, dated Feb. 18, 2005, in European App. No. access to applications and documents” The , 027689363. Inc. 1999, pp. 1-3. European Summons to Attend, Oral Proceedings, dated Nov. 25, Anonymous. “Tarantella Administration Guide > Reference > Load 2005, in European App. No. 027689363. balancing with arrays: Multiple application servers” The Santa Cruz Operation, Inc. 1999, pp. 1-2. European Result of Consultation, dated Dec. 23, 2005, in European International Search Report from PCT/US02/ 31261, mailed Jun. 7, App. No. 027689363. 2004. Australian First Report, dated Aug. 23, 2007, in Australian App. No. European Patent O?ice, Decision to Refuse a European Patent 2006233857. application, Apr. 18, 2006 (15 pages). Notice of Registration from the Patent Of?ce of the People’s U.S. Of?ce Action, dated Jan. 4, 2005, in US. Appl. No. Republic of China, dated Aug. 3, 2007, in Chinese Patent App. No. 09/970,038. 028241878 US. Of?ce Action, dated Jun. 30, 2005, in US. Appl. No. 09/970,038. * cited by examiner U.S. Patent Feb. 12, 2008 Sheet 1 0f 17 US 7,330,872 B2

mm

om vm

I I I I I I l I

.GEF

om or 2:N: qwmm 23 2.: mm v3 m’ N:l 2:, 2:. U.S. Patent Feb. 12,2008 Sheet 2 or 17 US 7,330,872 B2

30

4r— 42 10

MASTER 43

CUENT ?s 32

46

SERVER FIG. 2A

50 10 MASTER 41?~ 51

53 32 CUENTNODE 4v

54

SERVER FIG. 2B U.S. Patent Feb. 12, 2008 Sheet 3 0f 17 US 7,330,872 B2

.30 20 a2

80 CLIENT 84 SERVER

57 2o 86

58 a '1 ~57' CLIENT 88 SERVER

FIG. 2C U.S. Patent Feb. 12, 2008 Sheet 4 0f 17 US 7,330,872 B2

30

59 10

MASTER 58» 571-43 72 32

APP #1 70 \ APP #2

so

MASTER 57 57' 20 A 34 73 65 32 APP 58" ( t \ #2

"62 66 SERVER SERVER 74 36

APP #3 FIG. 3B SERVER U.S. Patent Feb. 12, 2008 Sheet 5 0f 17 US 7,330,872 B2

30

MASTER 77

76 ( 57

CLIENT SERVER

78 34

SERVER

FIG. 3C U.S. Patent Feb. 12, 2008 Sheet 6 0f 17 US 7,330,872 B2

mm om mm

an?‘

#m

om Rm,

ow U.S. Patent Feb. 12, 2008 Sheet 7 0f 17 US 7,330,872 B2

/30

SERVICE (PNSVC) , DATABASE ’ ) 44 48 Z SERVER

62

I 52 /

APPLICATION USER PROGRAM H INTERFACE 56 INTERFACE PNAPI ( ) \;| LOCAL 60 E

CLIENT

FIG. 4 U.S. Patent Feb. 12, 2008 Sheet 8 0f 17 US 7,330,872 B2

/3o'

sERvICE , APPLICATION \ (PNSVC) DATABASE 48. 44-/ I APPLICATION usER INTERFACE PROGRAM -*-——- PNuI INTERFACE \ (PNAP!) \ LOCAL 56' 52/. . CACHE “60' sERvER

62'

2o \ REMOTE APPLICATION ~64 MANAGER

CLIENT

FIG. 5

U.S. Patent Feb. 12, 2008 Sheet 10 0f 17 US 7,330,872 B2

vmw EEE

@ wmEwQoE

523mm: EM>3.»2m28H um:

9-“0 as: (if am: @w8053562E995<9 69°. U.S. Patent Feb. 12, 2008 Sheet 11 0f 17 US 7,330,872 B2

MASTER CLIENT APPLICATION OTHER SERVER NODE SERVER SERVERS IN NODE SERVER FARM

l 80~ REQUEST LOG-ON & PROVIDE USER RECEIVE CREDENTIALS USER v82 CREDENTIALS l AUTHENTICATE DESKTOP s5 USER “84 DISPLAY I REQUEST APPLICATION ~86 LAUNCH AN RELATED /88 APPLICATION ~92 INFORMATION PROGRAM TRANSMIT /93 ‘ APPLICATION RUN DEVELOP RELATED DATABASE OF INFORMATION PROGRAM APPL RELATED NEIGHBORHOOD ‘ I'NFO _90 APPLICATION /94 F'RI'J'N'PRO'G'R'AM'“ T ------" NISTSIIISIM SERVER TO L ------“J SERVICE CLIENT USE USER EST/‘BUSH CREDENTIALS TO ’100 9s~ CONNECTION DETERMINE

PROGRAM NEIGHBORHOOD l TRANSMIT / 102 PROGRAM DISPLAY NEIGHBORHOOD FIG- 7 1o4~ PROGRAM TO CLIENT NEIGHBORHOOD U.S. Patent Feb. 12, 2008 Sheet 12 0f 17 US 7,330,872 B2

RECEIVE Y MAPPING M SEND EXECUTION REQUEST 1.22 I RECEIVE EXECUTION I RULES LAUNCH LOCAL DISPLAY APPLICATION 130

PRESENT DATA FILE(S) ON LOCAL V NODE RECEIVE APPLICATION OUTPUT DATA I Jl‘l RECEIVE SELECTION OF DATA FILE Io, DISPLAY l 11 APPLICATION OUTPUT DATA 'I_3_8_ IDENTIFY ASSOCIATION g

FIG. 8A U.S. Patent Feb. 12, 2008 Sheet 13 0f 17 US 7,330,872 B2

:‘ ADMINISTRATOR RECENE DATA \ ? ,1 FROM DATA FILE I m

PROVIDE 154 APPLICATION — OUTPUT DATA . ______i ______m l l i PROVIDE EXECUTION l RULES i l I

RECEIVE REQUEST TO EXECUTE PROGRAM 162 l EXECUTE PROGRAM EQ

FIG. 8B U.S. Patent Feb. 12, 2008 Sheet 14 0f 17 US 7,330,872 B2

PRESENT DATA-FILE(S) ON SERVER NODE(S) @

I

RECEIVE SELECTION OF A DATA FILE 21

TRANSMIT SELECTION I RECEIVE REQUEST TO EXECUTE PROGRAM IN..x N I

EXECUTE PROGRAM

RECEIVE DATA FROM DATA FILE m

PROCESS RECEIVED DATA 22;! FIG. 9A U.S. Patent Feb. 12, 2008 Sheet 15 0f 17 US 7,330,872 B2

R E C E N E MAPPING 240

STORE DATA FILE ON SERVER SYSTEM(S) 244

RECEIVE SELECTION OF DATA FILE 248

IDENTIFY ASSOCIATED EXECUTABLE PROGRAM 252

SEND REQUEST TO EXECUTE IDENTIFIED PROGRAM E

PROVIDE DATA ASSOCIATED WITH SELECTED DATA FILE IIIIIIIIII‘ llllllllI‘ 260 U.S. Patent Feb. 12, 2008 Sheet 16 0f 17 US 7,330,872 B2

PRESENT GRAPHICAL DEPICTION OF DATA FILE ON WEB SERVER 280

V

RECEIVE SELECTION OF DATA FILE 155

V

PROVIDE SELECTION OF DATA FILE mm 400

V

RECEIVE EXECUTION REQUEST E

V

EXECUTE FIRST PROGAM E

V

SEND REQUEST TO EXECUTE SECOND PROGRAM JE

I

RECEIVE APPLICATION OUTPUT DATA E

V DISPLAY APPLICATION \ OUTPUT DATA @) 1 U.S. Patent Feb. 12, 2008 Sheet 17 0f 17 US 7,330,872 B2

TRANSMIT GRAPHICAL DEPICTION OF DATA FILE 32

TRANSMIT EXECUTION REQUEST &

FIG. 10B US 7,330,872 B2 1 2 METHOD FOR DISTRIBUTED PROGRAM formulates and delivers queries to a server node. A user of EXECUTION WITH WEB-BASED FILE-TYPE the client node enters the queries through a user interface ASSOCIATION operating on the client node. The server node evaluates the queries and delivers responses to the client node for display FIELD OF THE INVENTION on the client user interface. Usually, the server nodes host a variety of application The present invention relates generally to distributed programs that are accessed and executed by client nodes. program execution in client-server networks. In particular, When a client node launches an application program, the the present invention relates to methods for automatically execution of that application program occurs at either the executing a program associated With a data ?le When the client node or the server node, depending upon the comput data ?le and the executable program are located on different ing model folloWed by the computer netWork. In a server computing nodes. based computing model, the server node executes the appli cation program, and only the control information for the BACKGROUND OF THE INVENTION client user interface is transmitted across the computer netWork for the client node for display. In a client-based In desktop computers employing command-line based computing model, the server node transmits the application operating systems, such as DISK program to the client node so that the client node executes (DOS) from Corporation of Redmond, Wash. or the program using the resources of the client node. UNIX from AT&T Corporation of NeW York, NY, initiating Users of contemporary computer netWorks desire func the execution of a computer program required a user to enter 20 tionality similar to that provided on desktop computers by the path and ?lename of the executable program at a MacOS and members of the WINDOWS family of operating command prompt. In response, the operating system systems offered by Microsoft Corporation of Redmond, attempted to execute the speci?ed ?le. The user also entered Wash. HoWever, in a client-server netWork the executable one or more “arguments” after the path and ?lename that program, the data ?le, and the user’s virtual desktop may all provided additional information that controlled the execu 25 be present on different computers. In this case, selection of tion of the executable program. For example, typical argu the data ?le Will typically invoke the operating system ments a?fected program operation and included the names of functionality described above, attempting to initiate the data ?les that the program Would process. If an argument execution of an executable program on the same computer speci?ed a data ?le for processingifor example, a spread as the data ?le. For several reasons, this is not likely the sheetiWhose contents Were not supported by the executable 30 behavior desired by the user: the computer storing the data program4e.g., a Word processorithe result ranged from ?le may not have the desired application; the computer system failure to a scrambled display. This problem also storing the data ?le may be shared, subjecting other users to existed betWeen similar softWare sold by different vendors: signi?cant performance degradation When executing execut a Word processor from one vendor typically Was incapable able programs, etc. Therefore, it is desirable to provide of reading the ?les associated With another vendor’s Word 35 apparatus and methods that facilitate distributed program processor. execution, Whereby selecting a data ?le or a representation One solution to this problem involved a voluntary naming thereof on one computer initiates the execution of an asso convention: ?lenames ended in a period and an extension ciated executable program on another computer. that speci?ed their contents. HoWever, nothing ensured that different vendors Would not adopt the same ?le extension, 40 SUMMARY OF THE INVENTION that the ?lename extension Was correct, or that the contents of the ?le Were accurately speci?ed by the extension. In one aspect the invention relates to a method for Moreover, nothing ensured that a user, confronted With a ?le enabling distributed program execution in a netWork that With an unfamiliar extension, Would utiliZe the correct includes a client system and a plurality of server systems. executable program to access the contents of the ?le, assum 45 The method includes the step of presenting a graphical ing the user had the appropriate executable program to begin depiction of a data ?le that is stored on a Web server. A With. request to execute a ?rst executable program, that includes The MACINTOSH OPERATING SYSTEM (MacOS) information concerning a second executable program asso from Apple Computer of Cupertino, Calif. Introduced one ciated With the data ?le is revieWed. The second program can solution to this problem for desktop computers. Each ?le 50 execute With on the client system or one of a plurality of stored on a computer running MacOS had a ?le type and a server systems. Application output data from the second creator identi?er associated With it. Each executable ?le executable program is revieWed and formatted by the ?rst under MacOS had a special ?le type indicating that the ?le executable program and received application output data is Was executable and an associated creator identi?er that presented to the user. In other embodiments, the method also matched the creator identi?er of the ?les it Was capable of 55 includes the step of receiving the ?rst executable program. editing. To edit a data ?le, a user selected a graphical In still other embodiments the method includes the step of depiction of the data ?le, Which automatically initiated receiving a rule for determining Whether an identi?ed execution of an associated executable program sharing the executable program is to be executed on the client system or creator identi?er of the data ?le. If the computer lacked an one of the plurality of server systems. In still further executable program With a creator identi?er matching that of 60 embodiments, the method includes the step of displaying the the selected data ?le, the user Was presented With a dialog application output data using the ?rst executable program. In informing her of that fact. some of these embodiments the method includes the step of Moving beyond the desktop, contemporary computer receiving data associated With the data ?le. netWorks consist of a number of computer systems, called In another aspect, the invention relates to a method for nodes, communicating With other computer systems via 65 enabling distributed program execution. A graphical depic communications links. Typically, some of the nodes are tion of a data ?le is transmitted and a request to execute a client nodes and other nodes are server nodes. A client node ?rst executable program is made. The ?rst executable pro