WO2000055731A1 - Procede et systeme proposant un systeme de distribution de logiciel source - Google Patents

Procede et systeme proposant un systeme de distribution de logiciel source 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
English (en)
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/fr

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

Definitions

  • the present invention relates to a system for delivery software over a network.
  • Java has a compact design, a robust applet can still be sizeable.
  • Java 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.
  • 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.
  • Java programs can be decompiled, allowing others to easily see how proprietary algorithms within the software work.
  • a method and system for delivering software applications or applets over a distribution system such as the Internet in a fast and efficient manner 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.
  • 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:
  • 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.
  • SSDS Source Software Delivery System.
  • SSDS is the system for delivering an application or applet from one place to another place.
  • 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.
  • 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.
  • 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.
  • 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.
  • FIG. 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.
  • FIG. 1 shows a block diagram of the Client system 110.
  • 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.
  • the Ebo linker 120 combines the Ebo object code with the correct Ebo libraries 122.
  • FIG. 1 is a block diagram showing the processes involved in the conversion tool
  • step 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.
  • 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 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
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un procédé et système de distribution d'applications logicielles sur un système de distribution tel qu'Internet de manière rapide et efficace. Le procédé consiste à convertir un programme (102a) logiciel écrit dans un langage en un second programme (106) qui est un langage très compact et transférable. La taille du second programme est nettement inférieure à celle du premier programme écrit dans un autre langage. Cette conversion offre, ce qui représente un avantage incontestable, d'autres systèmes de distribution tels que Java. Selon l'invention, le second programme est téléchargé du serveur (105) vers l'ordinateur (110) client. L'ordinateur (110) client contient des compilateurs, des éditeurs de liens et des bibliothèques d'objets nécessaires à la création d'une application à partir du fichier source du second programme (106). Grâce à la compacité du fichier source du second programme (106), la durée de téléchargement du fichier est minime et la vitesse de compilation du fichier est plus rapide que celle des systèmes de distribution d'applications logicielles classiques.
PCT/US2000/005743 1999-03-12 2000-03-02 Procede et systeme proposant un systeme de distribution de logiciel source WO2000055731A1 (fr)

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 (fr) 2000-09-21

Family

ID=23018157

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/005743 WO2000055731A1 (fr) 1999-03-12 2000-03-02 Procede et systeme proposant un systeme de distribution de logiciel source

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085014A2 (fr) * 2005-02-11 2006-08-17 Fidelys Sarl Procede et dispositif de transfert d'information accessible sur plusieurs supports d'information

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 (fr) * 2005-02-11 2006-08-17 Fidelys Sarl Procede et dispositif de transfert d'information accessible sur plusieurs supports d'information
WO2006085014A3 (fr) * 2005-02-11 2007-01-11 Fidelys Sarl Procede et dispositif de transfert d'information accessible sur plusieurs supports d'information

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
US8806428B1 (en) Deploying and distributing of applications and software components
US6609248B1 (en) Cross module representation of heterogeneous programs
EP1011043B1 (fr) Procédé et appareil pour charger une application Java
CN100559365C (zh) 规定异步Web服务的方法和设备及规定接收回调的逻辑的方法和设备
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
CN109614165B (zh) 一种com组件的多版本并行运行方法和装置
US20020042833A1 (en) Streaming of archive files
US6732108B2 (en) Class file archives with reduced data volume
US20020083416A1 (en) Automatic stub/adapter generator
EP0501613A2 (fr) Dispositif hétérogène de gestion de configurations de logiciels
JPH09171465A (ja) 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法
US20060085461A1 (en) System & method for using web based applications to manipulate data with manipulation functions
KR100871778B1 (ko) 중앙집중형 동적 어드레싱 매니저를 이용한 동적 어드레싱방법 및 장치
KR20020085876A (ko) 객체지향 컴퓨터 프로그램의 로딩
US20020138821A1 (en) Method and apparatus for seamless porting of object code between operating system environments
JP4698925B2 (ja) 動的に接続可能な実行可能イメージの真正性検証システム及び方法
WO2000055731A1 (fr) Procede et systeme proposant un systeme de distribution de logiciel source
CN112988225B (zh) 注解配置方法、装置、设备及存储介质

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