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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program 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
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)
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)
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 |
-
2000
- 2000-03-02 WO PCT/US2000/005743 patent/WO2000055731A1/fr active Application Filing
- 2000-03-02 AU AU37251/00A patent/AU3725100A/en not_active Abandoned
Patent Citations (3)
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)
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 |