CN101452402A - 软件运行系统和软件运行方法 - Google Patents

软件运行系统和软件运行方法 Download PDF

Info

Publication number
CN101452402A
CN101452402A CNA2008102195475A CN200810219547A CN101452402A CN 101452402 A CN101452402 A CN 101452402A CN A2008102195475 A CNA2008102195475 A CN A2008102195475A CN 200810219547 A CN200810219547 A CN 200810219547A CN 101452402 A CN101452402 A CN 101452402A
Authority
CN
China
Prior art keywords
file
software
read
client
submodule
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CNA2008102195475A
Other languages
English (en)
Other versions
CN101452402B (zh
Inventor
朱熠锷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Software Co Ltd
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 Zhuhai Kingsoft Software Co Ltd filed Critical Zhuhai Kingsoft Software Co Ltd
Priority to CN2008102195475A priority Critical patent/CN101452402B/zh
Publication of CN101452402A publication Critical patent/CN101452402A/zh
Priority to US12/457,976 priority patent/US20100138479A1/en
Priority to JP2009155695A priority patent/JP2010129080A/ja
Application granted granted Critical
Publication of CN101452402B publication Critical patent/CN101452402B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Abstract

本发明涉及一种全新的软件运行方法和软件运行系统。软件运行系统,包括客户端执行模块和服务器端控制与数据分发模块;客户端执行模块包括;进程加载子模块,其获取和加载软件包定义文件,并在客户端建立起应用程序运行所需的环境;为待执行的应用程序创建所对应的进程;I/O监控及处理子模块,监控并截获应用程序的I/O请求;网络通讯子模块,与服务器端进行网络通讯;服务器端控制与数据分发模块包括:控制子模块,协调客户端和服务器端其它子模块之间的工作;数据分发子模块,为客户端提供软件包中的具体数据。本发明软件运行系统大大减少了对客户端计算机存储空间的要求,也免除了在客户端进行整个软件安装的过程。

Description

软件运行系统和软件运行方法
技术领域
本发明涉及一种全新的软件运行方法和软件运行系统。
背景技术
首先,对描述本申请过程所涉及的一些技术术语进行解释:
内存-文件映射机制:一种操作系统的I/O机制,它将一个文件的内容映射到进程的一段地址空间中,然后通过访问这些内存地址即可读取文件中的内容。在其底层实现中,文件的内容一般都没有全部读入物理内存,而是由操作系统的页错误处理机制来读入实际所需的部分。
程序模块文件:指那些保存着应用程序执行所需要的指令的文件,操作系统通过内存-文件映射机制来读取其中的数据。例如常见的扩展名为.EXE/.DLL的文件都属于此类。
数据文件:指那些应用程序执行时会主动调用操作系统提供的I/O API函数来访问的文件,一般保存的是配置数据、图片或音乐等资源数据等。
软件包:指某一个或一组程序运行时会使用到的数据的集合,包括一个或多个软件所需的文件。比如一个WPS软件包中包括WPS文字、WPS演示和WPS表格三个软件所需要的文件。
软件包定义文件:用于描述某一软件包中所包含的数据项、以及这些数据项的访问地址等数据的文件。
软件源:由软件包及其软件包定义文件组成,代表一个可以以流模式运行的软件包。
一个程序所能实现的逻辑或功能是由一系列的CPU能够理解和执行的指令来完成的。这些指令一般被分割为一个个的子程序(或称为子函数)并保存在一个或多个文件中,我们称这些文件为程序模块文件。程序也可能根据它的设计,将一部分完成它功能所需要的数据,例如程序配置、图片、声音等,保存在单独的文件中,在使用时通过操作系统的I/O API函数来读写,这些文件我们称之为数据文件。
组成子程序的指令在执行前必须读入内存。在一个程序的执行过程中,会有一系列的子程序(子函数)被依次执行,而这些子程序一般都不是在同一个文件中顺序保存的,很可能情况是被分布在不同的程序模块文件中。例如有程序App,它由app.exe、foo.dll和bar.dll三个可执行模块文件组成,app.exe包含子程序A、B和C,foo.dll包含子程序D,bar.dll则包含了子程序E。假定程序App启动时调用子程序的顺序是A->D->B,点击界面上的某一菜单后则会调用E。那么为了完成启动过程,app.exe和foo.dll文件中对应位置的内容需要根据需求被读入到内存。点击了菜单后则bar.dll中E所对应的区域也需要被读入内存。
另一方面,在前述的执行流程中,任一时刻都没有用到3个文件中的全部内容。在启动过程中文件bar.dll是不会被用到的,app.exe虽然是需要的,但它保存子程序C的那个部分却没有被用到。因此对程序模块文件而言,存在着文件和文件内数据块两个级别上的使用局部性。
数据文件与之类似。程序在某个时间可能不会读取全部的数据文件、或者某一文件的全部区域。因此数据文件也存在着文件和文件内数据块两个级别上的使用局部性。
虽然存在此局部性,但若程序执行流所需要的数据得不到满足,程序是无法继续执行的。而一个给定的程序根据用户操作方式的不同、输入数据的不同,其内部执行流是不同且无法预期的,因此在传统模式下必须要将软件包的全部文件通过安装程序安装好才能启动程序,虽然其中的某些文件和数据永远也不会被用到。这样无疑增大了计算机的存储空间损耗以及用于准备这些数据的时间开销。
但如果我们能够实现一个机制,监测到应用程序执行过程对数据的使用请求,并分别加以满足,则可以在不执行完整安装过程的情况下运行程序,进而节省本地计算机的存储空间。
发明内容
本发明克服了现有技术中的不足,本发明的第一目的是提供一种软件运行系统,使用该系统可以一数据流的方式运行应用程序,无需在本地安装软件,更无须在本地存储整个软件源。
本发明的第二目的是提供软件运行方法。
为了实现上述第一目的,本发明采用如下技术方案:
软件运行系统,包括位于客户端的客户端执行模块和位于服务器端的服务器端控制与数据分发模块;
客户端执行模块进一步包括;
进程加载子模块,其一方面获取和加载软件包定义文件,并在客户端建立起应用程序运行所需的环境;另一方面为待执行的应用程序创建所对应的进程;
I/O监控及处理子模块,监控并截获应用程序的I/O请求;
网络通讯子模块,根据其它子模块的请求,与服务器端进行网络通讯,下载相应的数据到本地计算机;
服务器端控制与数据分发模块进一步包括:
控制子模块,协调客户端和服务器端其它子模块之间的工作;
数据分发子模块,为客户端提供软件包中的具体数据。
为了实现上述第二目的,本发明采用如下技术方案:
使用上述软件运行装置的软件运行方法,包括如下过程:
<1>、在服务器上安装服务器端控制与数据分发模块;在客户端计算机上安装客户端执行模块;为待运行的软件制作软件源,并将该软件源部署在服务器上;
<2>、进程加载子模块首先检查所指定的软件源的软件包定义文件是否已经缓存到客户端本地计算机,若没有则连接服务器端进行下载;接着,进程加载子模块在一个预先配置好的位置中检查是否已经存在与此软件包所对应的工作目录,若没有,则创建一个与此软件包所对应的工作目录;
<3>、根据上述工作目录的位置和用户所指定的可执行文件的文件名得到一个该可执行文件的完整路径,进程加载子模块以此路径作为参数调用操作系统的API来创建一个新进程;
<4>、操作系统创建新进程时通过I/O相关的API函数来打开所述完整路径所指向的所述可执行文件,并基于“内存-文件映射机制”将所述可执行文件的内容映射到进程的地址空间中,若此可执行文件存在对其它程序模块文件的依赖,则操作系统会重复此过程,将这个被依赖的程序模块文件也打开并映射到地址空间中;此过程直至将所有的依赖的文件都打开并映射到地址空间中才停止;
<5>、接着操作系统开始执行前述可执行文件中所定义的入口函数,此函数又会根据它自己的逻辑继续调用本文件或其它文件中的其它函数,CPU在执行每个函数时对每个函数所在的地址执行读取操作,以便得到指令的内容并进行解码和执行,当所访问的地址所对应的文件数据没有在物理内存中时,会产生一个页面错误,此时原始执行流程暂停,页面错误的处理子程序发起一个I/O读取请求,将对应文件中的对应区域读到物理内存中,然后再继续原有执行流程;I/O监控及处理子模块能够监控到每一个I/O读请求,它首先检查待读取的数据在内存中是否已经存在,若存在则从内存中读出并返回给上层调用者来完成此读操作;若内存中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,并返回给上层调用者来完成此读操作。
采用上述软件运行方法是一种全新的软件运行模式——数据流方式,即,无需在客户端计算机安装整个待运行软件,在客户端计算机只安装一个体积较小的客户端运行环境,也就是所述的客户端执行模块,软件在执行过程中所需的子程序以数据流的方式从服务器端下载,没有使用到的文件或者子程序无需下载,这样一方面大大减少了对客户端计算机存储空间的要求,另一方面也免除了在客户端进行整个软件安装的过程。上述软件运行方法还有一个优点就是,增强了软件的安全性,对于在客户端计算机进行安装的软件来说,很容易被破译而制作出盗版软件。而使用本方法的软件,在客户端并不存在软件源,不存在被破译的可能。
更进一步的技术方案是:
上述方法还包括:<6>、若应用程序想要读取某数据文件中的某部分内容,I/O监控及处理子模块监测到此I/O读请求,检查待读取数据在内存中是否已经存在,若存在则从内存中读出并返回给上层调用者来完成此读操作;若内存中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,并返回给上层调用者来完成此读操作。
一般的软件运行还需要对数据文件的读取,上述步骤是针对数据文件的读取机制。
附图说明
图1为存在于服务器端的WPS软件包中文件集合图;
图2为第二实施例软件运行系统的结构框图。
以下结合实施例对本发明内容进行详细说明。
具体实施方式
实施例一
软件运行系统,包括位于客户端的客户端执行模块和位于服务器端的服务器端控制与数据分发模块;
客户端执行模块进一步包括;
进程加载子模块,其一方面获取和加载软件包定义文件,并在客户端建立起应用程序运行所需的环境;另一方面为待执行的应用程序创建所对应的进程。
I/O监控及处理子模块,监控并截获应用程序的I/O请求,转调本发明下述的特殊处理流程来处理。
网络通讯子模块,根据其它子模块的请求,与服务器端进行网络通讯,下载相应的数据到本地计算机;
服务器端控制与数据分发模块进一步包括:
控制子模块,协调客户端和服务器端其它子模块之间的工作;
数据分发子模块,为客户端提供软件包中的具体数据。
下面以WPS软件为例,介绍使用上述软件运行装置的软件运行方法,包括如下过程:
1、准备环境。在服务器上安装好服务器相关的模块;在客户计算机上安装好客户端相关的模块;利用辅助工具为WPS应用程序制作软件源,这个软件源包括如图1中所示的WPS软件包和软件包定义文件,此软件包中包括了WPS文字、WPS演示和WPS表格三个应用程序所需要的文件,下面以用户准备使用WPS文字应用程序为例介绍;将软件源部署在服务器上。接下来,最终用户在客户端计算机上运行客户端执行模块,提供服务器的网络地址、软件源的名称、可执行程序的文件名等信息,来启动整个的执行流程。
2、进程加载子模块首先检查上述软件源的软件包定义文件是否已经缓存到客户端本地计算机,若没有,则连接服务端进行下载。接着,进程加载子模块在一个预先配置好的位置中检查是否已经存在与此软件包所对应的工作目录,若没有则进行创建。该预先设定好的位置可以是本地磁盘的任意位置,比如C:\Program Files\Kingsoft中的“WPS文字”文件夹。
3、根据工作目录的位置(C:\Program Files\Kingsoft\WPS文字)和用户所指定的可执行文件的文件名(图1中的WPS文件)可得到一个该WPS文件的完整路径。进程加载子模块以此路径作为参数调用操作系统的API来创建一个新进程。
4、操作系统创建上述新进程时会通过I/O相关的API函数来打开前述的完整路径所指向的可执行文件WPS,而该文件WPS在本地计算机并不存在,在本地计算机中存在的是位于“WPS文字”文件夹中的一个名称为WPS的空文件(防止与上述WPS文件混淆,将此WPS空文件称为“WPS空”),基于“内存-文件映射机制”将WPS文件的内容映射到进程的地址空间中。若WPS文件存在对其它可执行模块文件的依赖(使用了其它模块中的函数,比如wpscore.dll),则操作系统会重复此过程,将这个被依赖的wpscore.dll文件也打开并映射到地址空间中。此过程直至将所有的依赖的文件都打开并映射到地址空间中才停止。
5、接着操作系统开始执行前述WPS文件中所定义的入口函数,此函数又会根据它自己的逻辑继续调用本文件或其它文件中的其它函数。CPU在执行每个函数时会对它所在的地址执行读取操作,以便得到指令的内容并进行解码和执行。因为操作系统已经将这些地址和可执行模块文件通过“内存-文件映射机制”建立了映射关系,当CPU所访问的地址所对应的文件数据没有在物理内存中时,会产生一个页面错误,此时原始执行流程暂停。页面错误的处理子程序发起一个I/O读取请求,将对应文件中的对应区域读到物理内存中,然后再继续原有执行流程。I/O监控及处理子模块能够监控到每一个I/O读请求,它首先检查待读取的数据在内存中是否已经存在,若存在则从内存中读出并返回给上层调用者来完成此读操作。若内存中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,并返回给上层调用者来完成此读操作。
6、同样的道理,若应用程序想要读取某数据文件(如文件夹data中的某文件)中的某部分内容,I/O监控及处理子模块监测到此I/O读请求,检查待读取数据在内存中是否已经存在,若存在则从内存中读出并返回给上层调用者来完成此读操作。若内存中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,并返回给上层调用者来完成此读操作。
最后,当应用程序结束时,客户端模块监测到此动作并执行对应的资源清理工作。
实施例二
本实施例与实施例一的区别在于,在实施例一所述软件运行系统的基础上增加缓存管理子模块(参见图2),该缓存管理子模块是客户端执行模块的一部分,缓存管理子模块的主要作用是将从服务器端下载的数据缓存在本地,以加速后继的操作请求。从上述实施例一软件运行方法的步骤5和步骤6中可见,待读取的数据从服务器端下载后都存放到内存中,而内存中的数据是随时更新的,如果这部分数据下次又需要使用时,还需要到服务器端继续下载,运行速度可能会稍受限制,也比较麻烦。而所述缓存管理子模块可以将这部分已经下载的数据暂时存储到本地的某个空间内,下次如果仍需要使用这部分数据,可以先到该本地空间内查找,如果本地空间有这部分数据,便无需再次下载了。
相应的,本实施例软件运行方法与实施例一的软件运行方法也有不同,但最开始的步骤1-4与实施例一相同,在此不再重复,接下来的过程如下:
5、I/O监控及处理子模块监控到操作系统所发出的打开文件的I/O请求,通过标准流程完成此打开请求的同时,会去检查客户端本地计算机中是否已经有了对应的缓存文件,若没有,则由缓存管理子模块创建一个内容为空的初始缓存文件;
6、接着操作系统开始执行所述可执行文件中所定义的入口函数,此入口函数又会根据它自己的逻辑继续调用本文件或其它文件中的其它函数,CPU在执行每个函数时对每个函数所在的地址执行读取操作,以便得到指令的内容并进行解码和执行,当所访问的地址所对应的文件数据没有在物理内存中时,会产生一个页面错误,此时原始执行流程暂停,页面错误的处理子程序发起一个I/O读取请求,将对应文件中的对应区域读到物理内存中,然后再继续原有执行流程;I/O监控及处理子模块能够监控到每一个I/O读请求,I/O监控及处理子模块首先检查待读取的数据在此文件所对应的缓存文件中是否已经存在,若存在则从缓存文件中读出并返回给上层调用者来完成此读操作;若缓存文件中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,然后在再将这分数据写入到缓存文件,并返回给上层调用者来完成此读操作。
7、若应用程序想要读取某数据文件中的某部分内容,I/O监控及处理子模块监测到此I/O读请求,检查待读取数据在此文件所对应的缓存文件中是否已经存在,若存在则从缓存文件中读出并返回给上层调用者来完成此读操作;若缓存文件中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,然后在再将这分数据写入到缓存文件,并返回给上层调用者来完成此读操作。
最后,当应用程序结束时,客户端模块监测到此动作并执行对应的资源清理工作。比如清理缓存文件、工作目录中的“WPS空”文件等。
以上实施例描述仅用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,应涵盖在本发明的权利要求范围当中。

Claims (8)

1、软件运行系统,其特征在于,包括位于客户端的客户端执行模块和位于服务器端的服务器端控制与数据分发模块;
客户端执行模块进一步包括;
进程加载子模块,其一方面获取和加载软件包定义文件,并在客户端建立起应用程序运行所需的环境;另一方面为待执行的应用程序创建所对应的进程;
I/O监控及处理子模块,监控并截获应用程序的I/O请求;
网络通讯子模块,根据其它子模块的请求,与服务器端进行网络通讯,下载相应的数据到本地计算机;
服务器端控制与数据分发模块进一步包括:
控制子模块,协调客户端和服务器端其它子模块之间的工作;
数据分发子模块,为客户端提供软件包中的具体数据。
2、根据权利要求1所述的软件运行系统,其特征在于,
所述客户端执行模块还包括缓存管理子模块,其负责将从服务器端下载的数据缓存在客户端,加速后继的操作请求;
所述I/O监控及处理子模块,监控并截获操作系统所发出的打开文件的I/O请求,它通过标准流程完成此打开请求的同时,会去检查客户端是否已经有了对应的缓存文件,若没有则由缓存管理子模块创建一个内容为空的初始缓存文件。
3、使用权利要求1所述软件运行系统的软件运行方法,其特征在于,包括如下过程:
<1>、在服务器上安装服务器端控制与数据分发模块;在客户端计算机上安装客户端执行模块;为待运行的软件制作软件源,并将该软件源部署在服务器上;
<2>、进程加载子模块首先检查所指定的软件源的软件包定义文件是否已经缓存到客户端本地计算机,若没有则连接服务器端进行下载;接着,进程加载子模块在一个预先配置好的位置中检查是否已经存在与此软件包所对应的工作目录,若没有,则创建一个与此软件包所对应的工作目录;
<3>、根据上述工作目录的位置和用户所指定的可执行文件的文件名得到一个该可执行文件的完整路径,进程加载子模块以此路径作为参数调用操作系统的API来创建一个新进程;
<4>、操作系统创建新进程时通过I/O相关的API函数来打开所述完整路径所指向的所述可执行文件,并基于“内存-文件映射机制”将所述可执行文件的内容映射到进程的地址空间中,若此可执行文件存在对其它程序模块文件的依赖,则操作系统会重复此过程,将这个被依赖的程序模块文件也打开并映射到地址空间中;此过程直至将所有的依赖的文件都打开并映射到地址空间中才停止;
<5>、接着操作系统开始执行前述可执行文件中所定义的入口函数,此入口函数又会根据它自己的逻辑继续调用本文件或其它文件中的其它函数,CPU在执行每个函数时对每个函数所在的地址执行读取操作,以便得到指令的内容并进行解码和执行,当CPU所访问的地址所对应的文件数据没有在物理内存中时,会产生一个页面错误,此时原始执行流程暂停,页面错误的处理子程序发起一个I/O读取请求,将对应文件中的对应区域读到物理内存中,然后再继续原有执行流程;I/O监控及处理子模块能够监控到每一个I/O读请求,它首先检查待读取的数据在内存中是否已经存在,若存在则从内存中读出并返回给上层调用者来完成此读操作;若内存中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,并返回给上层调用者来完成此读操作。
4、根据权利要求3所述的软件运行方法,其特征在于,还包括:<6>、若应用程序想要读取某数据文件中的某部分内容,I/O监控及处理子模块监测到此I/O读请求,检查待读取数据在内存中是否已经存在,若存在则从内存中读出并返回给上层调用者来完成此读操作;若内存中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,并返回给上层调用者来完成此读操作。
5、根据权利要求4所述的软件运行方法,其特征在于,还包括:<7>、当应用程序结束时,客户端模块监测到此动作并执行对应的资源清理工作。
6、使用权利要求2所述软件运行系统的软件运行方法,其特征在于,包括如下过程:
<1>、在服务器上安装服务器端控制与数据分发模块;在客户端计算机上安装客户端执行模块;为待运行的软件制作软件源,并将该软件源部署在服务器上;
<2>、进程加载子模块首先检查所指定的软件源的软件包定义文件是否已经缓存到客户端本地计算机,若没有则连接服务器端进行下载;接着,进程加载子模块在一个预先配置好的位置中检查是否已经存在与此软件包所对应的工作目录,若没有,则创建一个与此软件包所对应的工作目录;
<3>、根据上述工作目录的位置和用户所指定的可执行文件的文件名得到一个该可执行文件的完整路径,进程加载子模块以此路径作为参数调用操作系统的API来创建一个新进程;
<4>、操作系统创建新进程时通过I/O相关的API函数来打开所述完整路径所指向的所述可执行文件,并基于“内存-文件映射机制”将所述可执行文件的内容映射到进程的地址空间中,若此可执行文件存在对其它程序模块文件的依赖,则操作系统会重复此过程,将这个被依赖的程序模块文件也打开并映射到地址空间中;此过程直至将所有的依赖的文件都打开并映射到地址空间中才停止;
<5>、I/O监控及处理子模块监控到操作系统所发出的打开文件的I/O请求,通过标准流程完成此打开请求的同时,检查客户端本地计算机是否已经有了对应的缓存文件,若没有,则由缓存管理子模块创建一个内容为空的初始缓存文件;
<6>、接着操作系统开始执行所述可执行文件中所定义的入口函数,此入口函数又会根据它自己的逻辑继续调用本文件或其它文件中的其它函数,CPU在执行每个函数时对每个函数所在的地址执行读取操作,以便得到指令的内容并进行解码和执行,当CPU所访问的地址所对应的文件数据没有在物理内存中时,会产生一个页面错误,此时原始执行流程暂停,页面错误的处理子程序发起一个I/O读取请求,将对应文件中的对应区域读到物理内存中,然后再继续原有执行流程;I/O监控及处理子模块能够监控到每一个I/O读请求,I/O监控及处理子模块首先检查待读取的数据在此文件所对应的缓存文件中是否已经存在,若存在则从缓存文件中读出并返回给上层调用者来完成此读操作;若缓存文件中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,然后在再将这分数据写入到缓存文件,并返回给上层调用者来完成此读操作。
7、根据权利要求6所述的软件运行方法,其特征在于,还包括:<7>、若应用程序想要读取某数据文件中的某部分内容,I/O监控及处理子模块监测到此I/O读请求,检查待读取数据在此文件所对应的缓存文件中是否已经存在,若存在则从缓存文件中读出并返回给上层调用者来完成此读操作;若缓存文件中没有,I/O监控及处理子模块请求网络通讯子模块从服务器端下载这部分数据到内存中,然后在再将这分数据写入到缓存文件,并返回给上层调用者来完成此读操作。
8、根据权利要求7所述的软件运行方法,其特征在于,还包括:<8>、当应用程序结束时,客户端模块监测到此动作并执行对应的资源清理工作。
CN2008102195475A 2008-11-28 2008-11-28 软件运行系统和软件运行方法 Active CN101452402B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2008102195475A CN101452402B (zh) 2008-11-28 2008-11-28 软件运行系统和软件运行方法
US12/457,976 US20100138479A1 (en) 2008-11-28 2009-06-26 Software operating system and the software-operating method thereof
JP2009155695A JP2010129080A (ja) 2008-11-28 2009-06-30 ソフトウェア実行システムおよびソフトウェアの実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102195475A CN101452402B (zh) 2008-11-28 2008-11-28 软件运行系统和软件运行方法

Publications (2)

Publication Number Publication Date
CN101452402A true CN101452402A (zh) 2009-06-10
CN101452402B CN101452402B (zh) 2012-05-30

Family

ID=40734649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102195475A Active CN101452402B (zh) 2008-11-28 2008-11-28 软件运行系统和软件运行方法

Country Status (3)

Country Link
US (1) US20100138479A1 (zh)
JP (1) JP2010129080A (zh)
CN (1) CN101452402B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073488A (zh) * 2009-11-20 2011-05-25 中兴通讯股份有限公司 一种软件集成方法、安装方法及软件集成装置、安装装置
CN102135892A (zh) * 2010-01-22 2011-07-27 北京金山数字娱乐科技有限公司 应用程序运行方法、装置及系统
CN102360285A (zh) * 2011-07-21 2012-02-22 福州锐达数码科技有限公司 在Windows操作系统中实现局域网程序分发的方法
CN103049315A (zh) * 2012-12-18 2013-04-17 柏科数据技术(深圳)有限公司 远程处理软件包的方法及系统
CN103294489A (zh) * 2012-02-23 2013-09-11 腾讯科技(深圳)有限公司 开放平台中互联网应用的管理方法及任务管理器
CN103678389A (zh) * 2012-09-19 2014-03-26 腾讯科技(深圳)有限公司 清理垃圾文件的方法和装置
CN104572218A (zh) * 2015-01-28 2015-04-29 宇龙计算机通信科技(深圳)有限公司 应用程序的运行控制方法、运行控制系统和终端
CN104731568A (zh) * 2013-12-23 2015-06-24 朱晓东 应用程序的运行方法和运行装置
WO2016150331A1 (zh) * 2015-03-25 2016-09-29 腾讯科技(深圳)有限公司 一种运行游戏客户端的方法和装置
CN107479920A (zh) * 2017-08-04 2017-12-15 浙江大学 一种单elf文件实现多操作系统加载的方法
CN108089890A (zh) * 2016-11-21 2018-05-29 杨正 一种基于磁盘的应用运行方法及系统
CN108733426A (zh) * 2017-04-21 2018-11-02 海马云(天津)信息技术有限公司 电子设备运行应用的方法、装置及电子设备
CN108762821A (zh) * 2017-04-18 2018-11-06 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
CN109375997A (zh) * 2018-09-28 2019-02-22 北京三快在线科技有限公司 一种处理网络资源的方法、装置、设备及可读存储介质
CN111125642A (zh) * 2018-10-31 2020-05-08 北京数聚鑫云信息技术有限公司 一种管理api的方法、装置、存储介质及计算机设备
CN113821273A (zh) * 2021-09-23 2021-12-21 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN115934112A (zh) * 2023-03-10 2023-04-07 德萱(天津)科技发展有限公司 一种基于驱动属性的多种类软件协作处理方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8434093B2 (en) * 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8255584B2 (en) * 2010-03-03 2012-08-28 I/O Doctors Llc Systems and methods for managing I/O throughput for large scale computing systems
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US8782106B2 (en) 2010-07-02 2014-07-15 Code Systems Corporation Method and system for managing execution of virtual applications
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
RU2453917C1 (ru) 2010-12-30 2012-06-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для оптимизации выполнения антивирусных задач в локальной сети
JP5941541B2 (ja) * 2011-04-11 2016-06-29 ラケシュ、シャールマRakesh Sharrma モバイル・アプリケーション開発のためのシステムおよび方法
CN103593200B (zh) * 2012-08-13 2017-12-08 腾讯科技(深圳)有限公司 获取应用程序的方法和装置
CN106528188B (zh) * 2015-09-09 2019-08-30 腾讯科技(深圳)有限公司 一种应用加速方法及装置
US10585678B2 (en) * 2018-04-19 2020-03-10 Oracle International Corporation Insertion of custom activities in an orchestrated application suite
CN111737661A (zh) 2020-05-22 2020-10-02 北京百度网讯科技有限公司 异常堆栈处理方法、系统、电子设备及存储介质
CN114546508B (zh) * 2022-02-28 2024-04-12 广联达科技股份有限公司 工具型应用软件的云端访问方法及装置
CN116796331B (zh) * 2023-04-26 2024-04-05 之江奇安科技有限公司 一种在podman中实现进程监控和白名单机制的自动化hook方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0464160A (ja) * 1990-07-04 1992-02-28 Casio Comput Co Ltd データ処理システム
US6826758B1 (en) * 1994-12-13 2004-11-30 Microsoft Corporation Method and system for accessing operating system resources
US5886733A (en) * 1996-05-17 1999-03-23 Sun Microsystems, Inc. Method and apparatus for successive refinement of broadcasted video frames
US6463530B1 (en) * 1999-06-10 2002-10-08 International Business Machines Corporation Method and apparatus for remotely booting a client computer from a network by emulating remote boot chips
US20030014476A1 (en) * 2001-01-03 2003-01-16 Peterson David Allen Thin client computer operating system
TWI242160B (en) * 2002-04-01 2005-10-21 Shun-Tang Hsu Method and tools to downsize existing operating systems for embedded applications
JP3924502B2 (ja) * 2002-07-04 2007-06-06 富士通株式会社 モバイル通信方法およびモバイル通信システム
CN1474269A (zh) * 2002-08-08 2004-02-11 力捷电脑股份有限公司 程序模块加载系统的方法
CN100495334C (zh) * 2003-01-22 2009-06-03 上海科泰世纪科技有限公司 一种基于工作例程/主导例程运行线程/进程的方法
US7146610B2 (en) * 2003-03-27 2006-12-05 Taiwan Semiconductor Manufacturing Company, Ltd. Method for upgrading software components without system shutdown
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
US20050065855A1 (en) * 2003-09-23 2005-03-24 Extreming, Inc. Virtual server consumer authorization, verification and credit update method and article
US20060080331A1 (en) * 2004-10-12 2006-04-13 International Business Machines Corporation Common interface system administration service library
CN100472469C (zh) * 2005-02-07 2009-03-25 佳能株式会社 运行日志获取方法
JP2006277446A (ja) * 2005-03-30 2006-10-12 Matsushita Electric Ind Co Ltd デバイスドライバ及びアプリケーションソフトウェアの提供システム
JPWO2008099786A1 (ja) * 2007-02-13 2010-05-27 日本電気株式会社 メモリ障害復旧方法、情報処理装置およびプログラム
JP5024999B2 (ja) * 2007-09-28 2012-09-12 東芝ソリューション株式会社 暗号管理装置、暗号管理方法、暗号管理プログラム
CN100517335C (zh) * 2007-10-25 2009-07-22 中国科学院计算技术研究所 一种分布式文件系统的文件写入系统和方法
US8326972B2 (en) * 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073488A (zh) * 2009-11-20 2011-05-25 中兴通讯股份有限公司 一种软件集成方法、安装方法及软件集成装置、安装装置
CN102135892A (zh) * 2010-01-22 2011-07-27 北京金山数字娱乐科技有限公司 应用程序运行方法、装置及系统
CN102135892B (zh) * 2010-01-22 2015-03-04 广州华多网络科技有限公司 应用程序运行方法、装置及系统
CN102360285A (zh) * 2011-07-21 2012-02-22 福州锐达数码科技有限公司 在Windows操作系统中实现局域网程序分发的方法
CN102360285B (zh) * 2011-07-21 2014-09-03 福州锐达数码科技有限公司 在Windows操作系统中实现局域网程序分发的方法
CN103294489B (zh) * 2012-02-23 2017-12-01 腾讯科技(深圳)有限公司 开放平台中互联网应用的管理方法及任务管理器
CN103294489A (zh) * 2012-02-23 2013-09-11 腾讯科技(深圳)有限公司 开放平台中互联网应用的管理方法及任务管理器
CN103678389A (zh) * 2012-09-19 2014-03-26 腾讯科技(深圳)有限公司 清理垃圾文件的方法和装置
CN103049315A (zh) * 2012-12-18 2013-04-17 柏科数据技术(深圳)有限公司 远程处理软件包的方法及系统
CN104731568A (zh) * 2013-12-23 2015-06-24 朱晓东 应用程序的运行方法和运行装置
CN104572218A (zh) * 2015-01-28 2015-04-29 宇龙计算机通信科技(深圳)有限公司 应用程序的运行控制方法、运行控制系统和终端
CN104572218B (zh) * 2015-01-28 2019-02-01 宇龙计算机通信科技(深圳)有限公司 应用程序的运行控制方法、运行控制系统和终端
WO2016150331A1 (zh) * 2015-03-25 2016-09-29 腾讯科技(深圳)有限公司 一种运行游戏客户端的方法和装置
US10635449B2 (en) 2015-03-25 2020-04-28 Tencent Technology (Shenzhen) Company Limited Method and apparatus for running game client
CN108089890B (zh) * 2016-11-21 2019-09-20 杨正 一种基于磁盘的应用运行方法及系统
CN108089890A (zh) * 2016-11-21 2018-05-29 杨正 一种基于磁盘的应用运行方法及系统
CN108762821A (zh) * 2017-04-18 2018-11-06 海马云(天津)信息技术有限公司 电子设备运行应用的装置及方法、电子设备
CN108733426A (zh) * 2017-04-21 2018-11-02 海马云(天津)信息技术有限公司 电子设备运行应用的方法、装置及电子设备
CN107479920A (zh) * 2017-08-04 2017-12-15 浙江大学 一种单elf文件实现多操作系统加载的方法
CN107479920B (zh) * 2017-08-04 2020-05-29 浙江大学 一种单elf文件实现多操作系统加载的方法
CN109375997A (zh) * 2018-09-28 2019-02-22 北京三快在线科技有限公司 一种处理网络资源的方法、装置、设备及可读存储介质
CN111125642A (zh) * 2018-10-31 2020-05-08 北京数聚鑫云信息技术有限公司 一种管理api的方法、装置、存储介质及计算机设备
CN113821273A (zh) * 2021-09-23 2021-12-21 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN113821273B (zh) * 2021-09-23 2023-10-13 武汉深之度科技有限公司 一种应用程序运行方法、计算设备及存储介质
CN115934112A (zh) * 2023-03-10 2023-04-07 德萱(天津)科技发展有限公司 一种基于驱动属性的多种类软件协作处理方法
CN115934112B (zh) * 2023-03-10 2023-05-12 德萱(天津)科技发展有限公司 一种基于驱动属性的多种类软件协作处理方法

Also Published As

Publication number Publication date
CN101452402B (zh) 2012-05-30
JP2010129080A (ja) 2010-06-10
US20100138479A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
CN101452402B (zh) 软件运行系统和软件运行方法
US20230024083A1 (en) Method and System for Executing Applications Using Native Code Modules
RU2304305C2 (ru) Системы и способы управления драйверами в вычислительной системе
US7206819B2 (en) Method and apparatus for providing virtual namespaces for active computing environments
US9946873B2 (en) Methods and apparatuses for secure compilation
US6029000A (en) Mobile communication system with cross compiler and cross linker
US8677329B2 (en) Methods and apparatuses for a compiler server
KR100441115B1 (ko) 정보 단말기의 자바 프로그램 처리 속도 향상을 위한 자바컴파일 온 디멘드 서비스 시스템 및 그 방법
US7984438B2 (en) Virtual machine transitioning from emulating mode to enlightened mode
US20210173665A1 (en) Bootstrapping Profile-Guided Compilation and Verification
US20020133529A1 (en) Method and apparatus for representing and encapsulating active computing environments
KR101213275B1 (ko) 무선 장치에서 사용할모놀리식(monolithic)이미지를 제공하기 위한시스템 및 방법
CN102279765A (zh) 预编译托存托管代码
TWI715762B (zh) 虛擬機器創建方法和裝置
CN101297280A (zh) 隔离扩展和设备驱动程序的配置
CN105577813A (zh) 一种web混合应用的更新方法和系统
KR20150131535A (ko) 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
CN105553961A (zh) 应用程序的强制访问控制方法、系统和管理服务器
US20150113506A1 (en) Method and system for adaptive loading of application
CN103530165B (zh) 一种应用于物联网行业的java解决方案
CN108376074B (zh) 一种基于嵌入式系统的RancherOS ros核心模块移植方法
CN116028163A (zh) 一种容器组的动态链接库调度方法、装置及存储介质
CN113946528A (zh) 切换系统架构的方法与装置
RU2786200C1 (ru) Система и способ установки персонализированного приложения на мобильное устройство
KR20050107690A (ko) 라이브러리에 대한 사용을 지원하는 플랫폼을 구비한이동통신단말기

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ZHUHAI KINGSOFT KUAIKUAI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: ZHUHAI KINGSOFT SOFTWARE CO., LTD.

Effective date: 20110822

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20110822

Address after: Sixth, 622F 519015, main building, No. 10, science and technology road, Harbour Road, Tang Wan Town, Guangdong, Zhuhai

Applicant after: Zhuhai Jinshan Kuaikuai Technology Co.,Ltd.

Address before: Jinshan computer Building No. 8 Jingshan Hill Road, Lane 519015 Zhuhai Jida Lianshan Guangdong city of Zhuhai Province

Applicant before: Zhuhai Kingsoft Software Co., Ltd.

EE01 Entry into force of recordation of patent licensing contract

Assignee: Beijing Jinshan Software Co., Ltd.|Beijing Jinshan Digital Entertainment Technology Co., Ltd.|Zhuhai Jinshan Software Co., Ltd.

Assignor: Zhuhai Jinshan Kuaikuai Technology Co.,Ltd.

Contract record no.: 2011110000160

Denomination of invention: Software operation system and software operation method

License type: Common License

Open date: 20090610

Record date: 20110914

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING JINSHAN SOFTWARE CO., LTD.

Free format text: FORMER OWNER: ZHUHAI KINGSOFT KUAIKUAI TECHNOLOGY CO., LTD.

Effective date: 20130710

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 519015 ZHUHAI, GUANGDONG PROVINCE TO: 100085 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20130710

Address after: Kingsoft 33 Building No. 100085 Beijing Haidian District City 1 Xiaoying Road West

Patentee after: Beijing Jinshan Software Co., Ltd.

Address before: Sixth, 622F 519015, main building, No. 10, science and technology road, Harbour Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: Zhuhai Jinshan Kuaikuai Technology Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: GUANGZHOU CHINADUO NETWORK TECHNOLOGY CO.,LTD.

Free format text: FORMER OWNER: BEIJING JINSHAN SOFTWARE CO., LTD.

Effective date: 20130822

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100085 HAIDIAN, BEIJING TO: 510630 GUANGZHOU, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130822

Address after: 510630 Guangdong city of Guangzhou province Tianhe District Road No. 48-50 Capitol International Building two floor

Patentee after: Guangzhou Huaduo Network Technology Co., Ltd.

Address before: Kingsoft 33 Building No. 100085 Beijing Haidian District City 1 Xiaoying Road West

Patentee before: Beijing Jinshan Software Co., Ltd.

EC01 Cancellation of recordation of patent licensing contract

Assignee: Beijing Jinshan Software Co., Ltd.|Beijing Jinshan Digital Entertainment Technology Co., Ltd.|Zhuhai Jinshan Software Co., Ltd.

Assignor: Zhuhai Jinshan Kuaikuai Technology Co.,Ltd.

Contract record no.: 2011110000160

Date of cancellation: 20131212

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20090610

Assignee: Beijing Jinshan Software Co., Ltd.

Assignor: Guangzhou Huaduo Network Technology Co., Ltd.

Contract record no.: 2013990000880

Denomination of invention: Software operation system and software operation method

Granted publication date: 20120530

License type: Common License

Record date: 20131226

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model