WO2000055731A1 - Method and system for providing a source software delivery system - Google Patents

Method and system for providing a source software delivery system Download PDF

Info

Publication number
WO2000055731A1
WO2000055731A1 PCT/US2000/005743 US0005743W WO0055731A1 WO 2000055731 A1 WO2000055731 A1 WO 2000055731A1 US 0005743 W US0005743 W US 0005743W WO 0055731 A1 WO0055731 A1 WO 0055731A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
program
ebo
compact
source
Prior art date
Application number
PCT/US2000/005743
Other languages
French (fr)
Inventor
Eric L. Hayes
Original Assignee
Hayes Eric L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hayes Eric L filed Critical Hayes Eric L
Priority to AU37251/00A priority Critical patent/AU3725100A/en
Publication of WO2000055731A1 publication Critical patent/WO2000055731A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Abstract

A method and system for delivering software applications over a distribution system such as the Internet in a fast and efficient manner is disclosed. The method and system includes converting a software program (102a) written in one language to a second program (106) which is a very compact and portable language. The size of the second program is substantially smaller than the first program written in another language. This conversion provides a significant advantage over other distribution systems such as Java. In the present invention, the second program is downloaded from the server (105) to the client (110) computer. The client computer (110) contains compilers, linkers, and object libraries needed to create the application from the second program's (106) source file. Because the second program's (106) source file is compact, the file's download time is minimal and file's compilation speed is faster than conventional software application delivery systems.

Description

METHOD AND SYSTEM FOR PROVIDING A SOURCE SOFTWARE DELIVERY SYSTEM
FIELD OF THE INVENTION
The present invention relates to a system for delivery software over a network.
BACKGROUND OF THE INVENTION The Holy Grail for software developers has been the ability to write one software program that can run on any hardware/software platform without having to be rewritten to accommodate the unique characteristics of the platform. For example, a program written in C, should run the same on the Windows 95/NT platform as it does on the Macintosh or UNIX platforms. Java, a programming language developed by Sun Microsystems, accomplishes this goal. Software written in Java can run on any platform that has a Java virtual machine. A virtual machine is an interpreter that translates Java bytecodes into processor instructions. Because of Java's portable architecture and compact design, it is used to create small applications, applets, which can be distributed over the internet. Although Java presents an elegant solution to a problem that has long plagued developers, the Java solution has several drawbacks.
1. Although Java has a compact design, a robust applet can still be sizeable.
Because the bandwidth of many networks (such as ISP-home modem) is limited, it can take a significant amount of time for an applet to download from the server to the client. 2. Since Java is an interpreted language, it is significantly slower than a compiled language. Users of Java applications can see a noticeable lag in the applications response time to user actions. Even with Just-in-Time compilation, Java programs will always be slower than compiled programs.
3. A large installed base of C, C++, Pascal programs already exist. To convert these programs to Java will take a significant amount of resources.
4. Java's algorithm specifications are controlled by Sun; the specifications may be written in a way that handicaps the performance of the program on other platforms.
5. Java programs can be decompiled, allowing others to easily see how proprietary algorithms within the software work.
These problems have delayed Java's acceptance by the developer community.
Accordingly, what is needed is a system that overcomes the above-identified problems. The present invention addresses such a need.
SUMMARY OF THE INVENTION
A method and system for delivering software applications or applets over a distribution system such as the Internet in a fast and efficient manner is disclosed. The method and system includes converting a software program written in one language to a second program which is a very compact and portable language. The size of the second program is substantially smaller than the first program written in another language. This conversion provides a significant advantage over other distribution systems such as Java. In the present invention, the second program is downloaded from the server to the client computer. The client computer contains compilers, linkers, and object libraries needed to create the application from the second program's source file. Because the second program's source file is compact, the file's download time is minimal and file's compilation speed is faster than in conventional software delivery systems. The present invention has many advantages:
1. Since the second program's files are smaller than the original source code, they download quickly over the internet.
2. Since applications or applets are compiled, they run much faster than interpreted applications.
3. Any computer language can be used to create the source code for applications. 4. The compression algorithm associated with the present invention makes it difficult to reverse engineer to the original source code.
5. Since applications or applets are compiled, their execution speed is dependent solely on the speed of the computer system. The execution speed is not dependent on the performance of algorithms specified by an outside company. 6. The system makes it harder to determine how proprietary algorithms work in an original application. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows the path from the original source file to the application in source software delivery system.
Figure 2 is a flowchart of the Expressor algorithm. Figure 3 shows how SSDS uses DIFF files to upgrade applications on the client.
DETAILED DESCRIPTION
Definitions:
SSDS - Source Software Delivery System. SSDS is the system for delivering an application or applet from one place to another place. Usually the system being described is the internet where the goal of the system is to deliver an application or applet from the server computer to the client computer. An example of a delivery system is Java/HTML. Makefile-A text file which tells the linker which libraries should be linked in what order to the compiled source file(s). Archived file-An archived file is a file that acts as a container. The archive file holds the contents of many files. These hidden files can be extracted from the archived file in their entirety.
Ebo-A very compact language that describes a program's function. This description is done with the minimal number of characters needed to convey a program's function. Essentially, Ebo files lack the information necessary to make a program readable by people. Characters such as whitespace are eliminated. Function, procedure, and variable names; identifiers and other keywords contain only the number of characters needed to make the keyword unique to the compiler. Ebo files contain just enough information to be compiled into an application or applet that can perform the original program's function. Ebo files are created by Expressor
Expressor-A tool within SSDS which converts a software program written in one language to a program written in Ebo. Essentially Expressor compresses the source code to a minimal number of bytes needed to convey what the program does.
Comparator-A tool within SSDS which logs the differences between two Ebo files. The purpose of using the comparator is to create a Diff file that is sent over the network to update an older Ebo file. The Diff file is much smaller than the new Ebo file that makes downloading faster.
Integrator-A tool on the Client side of SSDS which integrates the changes from the Diff file into the original Ebo file. The new resulting Ebo file is then compiled into the application.
Description of the Preferred Embodiment
The present invention relates to a system for delivering software over a network. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
Figure 1 is a block diagram showing the path from the original source file to the application using a system and method in accordance with the present invention. The original source file 102a contains source code for the application which may be written in a traditional language such as C, C++, or Java or the like. The conversion tool or Expressor 104 converts the original source code file written in one language to a second or Ebo file 106 written in the Ebo language by eliminating white space, replacing variable, procedure, and class names with a minimal set of characters. The Ebo language is a very compact language which describes a program's function. Essentially the Expressor 104 compresses the source code to a minimal number of bytes needed to convey what the program does. The log file 108 keeps a table of variable, procedure, and class names and the set of characters replacing them. Expressor 104 incorporates the makefile 102b into the converted source file resulting in Ebo file 106. The makefile 102b contains a description of how the Ebo Linker 120 on the client 110 should link the Ebo Libraries 122 with the compiled Ebo File. The Ebo file 106 is a compact file describing the application. The Ebo file 106 may be a single file or it may be an archived file containing the converted description of many source files.. The description in Ebo file 106 is created with the minimal characters needed. Essentially, Ebo files lack the information needed to make a program readable by people. Characters such as white space are eliminated. The Ebo file 106 is the file which is sent over the network to the client 110. Ebo files contain a representation of the makefile which tells the linker on the client system how to link the Ebo file(s) with the libraries residing on the client system.
Figure 1 shows a block diagram of the Client system 110. When the Ebo file 106 is downloaded on to the client system 106, it is checked to see if it is encrypted and compressed. If the Ebo file 106 is encrypted, it goes through the decryption 116a. If the Ebo file 106 is compressed, it goes through decompression 116b. The resulting Ebo file goes to the Ebo compiler 118. The result of the Ebo compiler 118 is an Ebo object code that goes to the Ebo linker 120. Using the makefile contained in the Ebo file 106, the Ebo linker 120 combines the Ebo object code with the correct Ebo libraries 122. The result is an application 124 if the Ebo file 106 represents an application; or an applet 124, if the Ebo file represents an applet embedded in a web page or email 114. -An application 124 will run on independent of any other application. -An applet 124 will require the client's browser to be connected to web page 114 to run. Figure 2 is a block diagram showing the processes involved in the conversion tool
104. First, the original source code file 202 is read, examined for reserved language keywords and the symbols which will replace those keywords, via step 204. Next, all unnecessary white space (tabs, spaces, carriage returns) is removed, via step 206. Then, all comment statements are removed, via step 208. The scope of variables and procedures is recorded via step 210a, and also whether each word is a procedure or variable is recorded, via step 210b. The number of bytes each variable and procedure name occupy within the source file 202 is counted, via step 212. Then the variables and procedure names are sorted into a list in order of the number of bytes each word occupies in the source file 202, via step 214. Each variable and procedure name in the source file 202 is replaced by a minimal number of characters, starting with a base character, in accordance with the number of bytes each word occupies in the file, via step 216. The word's scope and type is also taken into account in step 216. Each language keyword is replaced with a replacement symbol, via step 218. A second compact file 106 and 220, and a log file 108, is then created via step 220. If desired, this second compact file 106/220 may be compressed, via step 222, in which case a compressed second compact file 224 results. If desired, this second compact file 106/220 or the compressed second compact file 224 may be encrypted, via step 226, in which case an encrypted second compact file or an encrypted, compressed second compact file 228 results.
Figure 3 is a block diagram which illustrates how the converter method and system in accordance with the present invention may be used in conjunction with a comparator and Diff File to compare and update differing versions of the second compact file produced by the converter method and system/algorithm.
Referring now to Figure 3, the previously released original source file 302 is sent to the converter method and system 304, producing a second compact file 306. The most recent version of the source file 308 is sent to the converter method and system 310, producing a second compact file 312. The first compact file 306 and second compact file
312 are then compared by the comparator tool 330. The comparator tool 330 logs the differences between two compact files by doing a byte by byte comparison of the different versions of the compact files, and then creates a Diff file 314 which is then sent over the network to update an older compact file 316. The Diff file 314 contains a log of only the changes between the two files 306 and 312. Because the Diff file 314 contains only a log, it is smaller than the original compact files 306 and 312, which makes it ideal for upgrading software.
The integrator 318 integrates the changes from the Diff file 314 into the previous version of the compact file 316. The result of the integrator 318 goes to the Ebo compiler 320. The result of the Ebo compiler 320 is an Ebo object code that goes to the Ebo linker
322. Using the makefile obtained from the integrator 318, the Ebo linker 322 combines the Ebo object code with the correct Ebo libraries 324. The result is an application 326 if the Ebo file 316 represents an application; or an applet 326, if the Ebo file represents an applet embedded in a web page or email. Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one or ordinary skill in the art without departing from the spirit and scope of the appended claims.

Claims

CLAIMSWhat is claimed is:
1. A method for delivering a software program comprising the steps of: (a) providing a first software program from a server; (b) converting the first software program written in one language to a second program, the second program being more compact than the first program; and (c) downloading the second program to a client system; (d) creating the application from the second program in the client system.
2. The method of claim 1 wherein the first program comprises a first source file.
3. The method of claim 2 wherein the second program comprises an Ebo source file.
4. The method of claim 3 wherein the Ebo source file lacks information which allows a program to be readable by a human.
5. The method of claim 4 wherein in the Ebo source file whitespace characters are eliminated.
6. The method of claim 5 wherein in the Ebo source files comment statements are removed.
7. The method of claim 6 wherein the converting step comprises: (bl) read source file containing keywords and symbols which will replace those keywords; (b2) removing all whitespace characters; (b3) removing comment statements; (b4) recording the scope of variables; (b5) counting the number of bytes each variable occupies within the source file; (b6) sorting the variables in an ordered list according to the number of bytes used and the scope/according to byte size and scope; (b7) replacing each variable with a minimal number of characters; and (b8) replacing each keyword with a replacement symbol.
8. A method for delivering an updated source file comprising the steps of: (a) providing a first compact file of a previous version of the source file; (b) providing a second compact file of a more recent version of the same file; (c) comparing the first and second compact files; (d) creating a DIFF file based on the comparison of the first and second compact files, the DIFT file containing a log of the changes between the first and second compact files; (e) sending the DIFF file to a client system which contains the first compact file; and (f) updating the first compact file based upon the DIFF file.
9. The method of claim 8 wherein the first and second compact files comprises first and second Ebo source files.
10. The method of claim 9 wherein the first and second Ebo source files lack information which allows a program to be readable by a human.
11. The method of claim 10 wherein in the first and second Ebo source files whitespace characters are eliminated.
12. The method of claim 11 wherein in the first and second Ebo source files comment statements are removed.
PCT/US2000/005743 1999-03-12 2000-03-02 Method and system for providing a source software delivery system WO2000055731A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU37251/00A AU3725100A (en) 1999-03-12 2000-03-02 Method and system for providing a source software delivery system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26728899A 1999-03-12 1999-03-12
US09/267,288 1999-03-12

Publications (1)

Publication Number Publication Date
WO2000055731A1 true WO2000055731A1 (en) 2000-09-21

Family

ID=23018157

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/005743 WO2000055731A1 (en) 1999-03-12 2000-03-02 Method and system for providing a source software delivery system

Country Status (2)

Country Link
AU (1) AU3725100A (en)
WO (1) WO2000055731A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085014A2 (en) * 2005-02-11 2006-08-17 Fidelys Sarl Method and device for transferring information that can be accessed on a plurality of information supports

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768597A (en) * 1996-05-02 1998-06-16 Starfish Software, Inc. System and methods for improved installation of compressed software programs
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6047318A (en) * 1997-11-19 2000-04-04 International Business Machines Corporation Method of downloading java bean files in a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768597A (en) * 1996-05-02 1998-06-16 Starfish Software, Inc. System and methods for improved installation of compressed software programs
US6047318A (en) * 1997-11-19 2000-04-04 International Business Machines Corporation Method of downloading java bean files in a network
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085014A2 (en) * 2005-02-11 2006-08-17 Fidelys Sarl Method and device for transferring information that can be accessed on a plurality of information supports
WO2006085014A3 (en) * 2005-02-11 2007-01-11 Fidelys Sarl Method and device for transferring information that can be accessed on a plurality of information supports

Also Published As

Publication number Publication date
AU3725100A (en) 2000-10-04

Similar Documents

Publication Publication Date Title
US6370646B1 (en) Method and apparatus for multiplatform migration
US7600225B2 (en) System and method for intra-package delta compression of data
US7356816B2 (en) Method and apparatus for multiplatform migration
US7062765B1 (en) System and method for updating information via a network
US6397385B1 (en) Method and apparatus for in service software upgrade for expandable telecommunications system
KR100562398B1 (en) Method and apparatus for pre-processing and packaging class files
US6609248B1 (en) Cross module representation of heterogeneous programs
EP1011043B1 (en) Method and apparatus for loading a java application program
US6381737B1 (en) Automatic adapter/stub generator
US6542908B1 (en) Technique for automatically and transparently transforming software components into software components capable of execution in a client/server computing environment
US7222341B2 (en) Method and system for processing software dependencies in management of software packages
US6978450B2 (en) Method and system for optimizing compilation time of a program by selectively reusing object code
US20040015831A1 (en) Method and apparatus for building software packages
US20020042833A1 (en) Streaming of archive files
US20040194059A1 (en) Method to deploy software using an open service gateway initiative (OSGi) framework
US6732108B2 (en) Class file archives with reduced data volume
CN109614165B (en) Multi-version parallel operation method and device for COM (component object model) component
EP0501613A2 (en) Heterogeneous software configuration management apparatus
JPH09171465A (en) System and method for enabling different naming service provider to dynamically bond naming federation
US20060085461A1 (en) System & method for using web based applications to manipulate data with manipulation functions
KR20060085698A (en) Dynamic addressing (da) using a centralized da manager
US20020138821A1 (en) Method and apparatus for seamless porting of object code between operating system environments
EP1303802B1 (en) System and method of verifying the authenticity of dynamically connectable executable images
WO2000055731A1 (en) Method and system for providing a source software delivery system
US7685313B1 (en) Universal conversion server

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase