CN102144230B - 基于记录的代码结构 - Google Patents

基于记录的代码结构 Download PDF

Info

Publication number
CN102144230B
CN102144230B CN200980130576.7A CN200980130576A CN102144230B CN 102144230 B CN102144230 B CN 102144230B CN 200980130576 A CN200980130576 A CN 200980130576A CN 102144230 B CN102144230 B CN 102144230B
Authority
CN
China
Prior art keywords
code
database
compiled code
inquiry
computer program
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.)
Expired - Fee Related
Application number
CN200980130576.7A
Other languages
English (en)
Other versions
CN102144230A (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.)
Xsevo Systems Inc
Original Assignee
Group-A Motor Sports Corp
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
Priority claimed from US12/183,823 external-priority patent/US8171045B2/en
Priority claimed from US12/191,711 external-priority patent/US20100042585A1/en
Priority claimed from US12/210,629 external-priority patent/US7979450B2/en
Application filed by Group-A Motor Sports Corp filed Critical Group-A Motor Sports Corp
Publication of CN102144230A publication Critical patent/CN102144230A/zh
Application granted granted Critical
Publication of CN102144230B publication Critical patent/CN102144230B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • 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
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

计算机程序的编译代码分成多条存储于数据库内。各条可选地存储于单独数据记录中。计算机程序的执行包括使用数据库查询以取回多条编译代码用于执行。数据库和关联数据库管理逻辑用来在执行和管理计算机程序时提供诸多优点。例如在一些实施例中,数据库查询用来帮助有助于程序流程逻辑。在另一例子中,数据库查询基于命令行或者通用资源定位符。这些查询可以用来响应于命令行或者通用资源定位符来选择计算机程序的功能。

Description

基于记录的代码结构
相关申请的交叉引用
本申请要求对以下美国非临时申请的优先权:
于2008年7月31日提交并且标题为“Record Based Code Structure”的第12/183,823号申请;
于2008年8月14日提交并且标题为“Command Interpretation”的第12/191,711号申请;以及
于2008年9月15日提交并且标题为“Instance Management of Code ina Database”的第12/210,629号申请。
这些申请的公开内容通过引用结合于此。
技术领域
本发明为计算系统领域并且具体为计算机编程和提供领域。
背景技术
在典型计算模型中,程序员使用编辑器来生成源代码。这一源代码可以被配置成在执行它或者使用编译器将它编译成可执行代码时加以解释。编译代码通常比解释代码更快地执行,因为编译过程包括在执行之前解析和语法校验。编译代码也将代码置于可以使用操作系统来直接可执行的形式(例如目标代码)。
使用如下归档系统来存储编译代码,该系统通常具有配置成执行编译代码的操作系统。例如编译代码可以存储于“.exe”文件中用于在Windows操作系统内执行。编译代码可以链接到包含可执行代码、数据或者脚本的其它文件。这一链接可以出现于执行代码之前或者之时。当执行代码时,文件系统用来标识代码存储于其内的文件,并且这一文件由操作系统打开和处理。
这一计算模型有若干弊端。例如对编译代码的修改通常涉及到重新编译其整个源代码或者文件。如果修改源代码内的诸多函数之中的单个函数,则在逐个文件的基础上重新编译整个源代码。另外需要具体权限和具体软件(例如编辑器)以修改源代码。这在编辑器和代码在不同计算设备上时可能不方便。
数据库和配置成管理数据库的数据库程序常用来存储和访问数据。有时这一数据由数据库程序外部的计算机程序使用。例如外部程序可以使用数据库程序以取回然后由外部程序操作的数据。数据库程序也可以包括如下“数据库存储的过程”,这些过程是数据库程序的用户预备用于对数据库操作的函数。数据库存储的过程限于对存储的数据操作并且区别于其它类型的计算机程序,因为这些过程运行于数据库程序的控制之下(例如数据库程序内)而不是外部操作系统的直接控制之下。
通常使用如下命令行来执行编译代码,该命令行包括编译代码的名称如程序名称并且可选地包括通向编译代码的路径。这一命令行可选地在图形用户界面中由图形图标代表。命令行可选地还包括有时称为开关的如下参数,这些参数用作向编译代码的输入并且可以用来控制编译代码的操作。例如DOS命令行“CD lib”包括程序标识符“CD”和参数“lib”。程序标识符用来标识如下编译代码,该代码在这一情况下被配置用于改变文件目录。参数用来向编译代码传递将改变成的目录的标识。
可选地使用通用资源定位符(URL)通过计算机网络如因特网访问编译代码。例如URL www.xsevo.com/login.esp可以用来执行在xsevo.com托管的登录程序。URL也可以用来向程序传递参数。例如URL www.xsevo.com/login.esp?lvl=high可以用来向程序login.esp传递用于参数“lvl”的“high”值。URL和命令行因此可以用来向先前建立的编译代码提供参数。
发明内容
本发明的各种实施例包括如下计算架构,其中用于在数据库程序外部执行的可执行代码存储于数据库的记录内。在执行时从数据库取回可执行代码。这一可执行代码通常包括准备好在操作系统上执行的编译代码。与现有技术比较,经由数据库程序而不是仅经由文件系统来管理和访问可执行代码。
在数据库的记录内存储可执行代码提供多种优点,这里提供其中一些优点作为例子。例如代码可以在数据库中比在文件系统中更易于管理。可以按照比使用文件系统将通常实际的粒度更大的粒度来存储可执行代码。在一些实施例中,可以按照如下粒度来存储可执行代码使得个体函数位于数据库的不同数据记录中。在一些情况下,这允许按照函数级而不是按照文件级来管理、修改或者以别的方式操纵可执行代码。
在执行计算机程序期间,数据库查询用来从数据库取回存储的代码。取回的代码然后在数据库外部加以执行并且受操作系统支持。可以一次一个部分地执行代码,各部分是从数据库单独取回的。查询可选地用来有助于条件程序流程。例如,如下数据库查询可以实施如下CASE语句,该语句使用标记以在多个备用路径之间指引程序流程,该查询使用该标记作为查询参数。
可选地使用包括命令行或者通用资源定位符的命令来选择将执行的编译代码。例如可以在形成对编译代码数据库的查询时使用通用资源定位符内的对象。通用资源定位符因此可以用来选择包括用户所需特定代码的个体数据记录。在一些实施例中,在命令内的对象用来直接映射到数据记录。本发明的一些实施例包括配置成解析命令行或者通用资源定位符的逻辑。这一逻辑还可以被配置成解释命令的语法结构。
编译代码、源代码和/或其它信息的多个实例可选地存储于编译代码数据库内。这些实例可以包括不同版本、具有不同功能、包括开发和生产版本、与不同安全级有关、与不同人类语言关联等。数据库管理逻辑和在其上进行的查询可以用来有助于实例管理。
有能力通过访问计算机程序的不同部分存储于其中的个体数据记录来访问这些不同部分可以允许外部控制或者执行这些不同部分。例如外部调度程序可以用来通过根据调度执行一个或者多个数据记录中存储的编译代码来调度对计算机程序的子集的执行。
本发明的各种实施例包括一种系统,该系统包括:计算设备;操作系统逻辑,配置成运行于计算设备上并且存储于计算设备的计算机可读介质上;数据库,存储于计算机可读介质上并且包括配置成存储计算机程序的编译代码的数据记录;数据库管理逻辑,配置用于访问数据库;以及代码执行逻辑,配置成通过在数据库管理逻辑上执行一个或者多个查询从数据记录取回编译代码并且在操作系统逻辑上执行取回的代码。
本发明的各种实施例包括一种方法,该方法包括:接收对执行计算机程序的请求;执行第一查询以识别数据库的第一数据库记录,计算机程序的编译代码子集存储于第一数据库记录中;从识别的第一数据库记录取回第一代码作为第一查询的结果;向操作系统提供取回的第一代码用于执行;基于取回的第一代码的执行结果来生成第二查询;使用生成的第二查询以识别数据库的第二数据库记录,计算机程序的编译代码存储于第二数据库记录中;从第二数据库记录取回编译代码作为第二查询的结果;并且向操作系统提供取回的编译代码用于执行。
本发明的各种实施例包括一种方法,该方法包括:接收计算机程序的源代码,源代码包括多个函数;编译多个函数,编译函数被配置用于在操作系统上执行;在单独数据库记录中存储多个函数的各编译函数;并且使用数据库记录中存储的函数的标识符对各单独数据库记录编索引,标识符被配置成根据程序流程逻辑来选择多个函数的成员。
本发明的各种实施例包括一种系统,该系统包括:计算设备;数据库,存储于计算机可读介质上并且包括配置成存储计算机程序的编译代码的数据记录;数据库管理逻辑,配置成访问数据库;代码执行逻辑,配置成通过在数据库管理逻辑上执行一个或者多个查询从数据记录取回编译代码并且在操作系统逻辑上执行取回的代码;以及命令解释逻辑,存储于计算机可读介质上并且配置成通过解释命令来生成一个或者多个查询。
本发明的各种实施例包括一种方法,该方法包括:接收包括命令行或者通用资源定位符的命令;解析命令以生成多个数据库查询;使用多个数据库查询从数据库内的多个数据记录取回编译代码,编译代码的不同部分存储于数据记录的不同成员中;并且响应于接收命令在数据库外部执行取回的编译代码。
本发明的各种实施例包括一种方法,该方法包括:读取接收的命令行或者通用资源定位符内的第一对象;将第一对象标识为预定义前缀,预定义前缀被配置成表征接收的命令行或者通用资源定位符内的一个或者多个其它对象的类型;读取接收的命令行或者通用资源定位符内的第二对象;并且将第二对象标识为向数据库内的数据记录的映射,数据记录包括响应于接收所接收的命令行或者通用资源定位符来执行的编译代码。
本发明的各种实施例包括一种系统,该系统包括:计算设备;操作系统逻辑,配置成在计算设备上执行计算机程序;数据库,存储于计算机可读介质上并且包括第一数据记录、第二数据记录和第三数据记录;代码管理逻辑,配置成在第一数据记录中存储第一编译代码、在第二数据记录中存储第二编译代码并且在第三数据记录中存储第三编译记录,第一编译代码和第二编译代码包括计算机程序的不同部分,第二编译代码和第三编译代码包括计算机程序的部分的不同实例;数据库管理逻辑,配置成访问数据库;以及代码执行逻辑,配置成选择编译代码的不同实例之一并且通过对数据库执行一个或者多个查询从数据记录取回编译代码的选择的实例(使用数据库管理逻辑),并且在操作系统逻辑上执行取回的实例。
本发明的各种实施例包括一种计算机可读介质,该计算机可读介质具有存储于其上的以下逻辑:配置成接收计算机程序的代码的逻辑;配置成将代码划分成多个部分的逻辑;配置成存储多个部分的逻辑,各部分在数据库的单独记录中;配置成修改多个部分的成员以从成员的原实例产生成员的修改实例的逻辑;配置成在数据库中存储修改实例的逻辑;以及配置成使用数据库查询来有选择地选择原实例或者修改实例的逻辑。
本发明的各种实施例包括一种方法,该方法包括:接收计算机程序的代码;将代码划分成多个部分;存储多个部分,各部分在数据库的单独记录中;修改多个部分的成员以从成员的原实例产生成员的修改实例;在数据库中存储修改实例;使用数据库查询来有选择地选择原实例或者修改实例;并且可选地执行选择的实例。
本发明的各种实施例包括一种系统,该系统包括:计算设备,配置成使用操作系统逻辑来执行计算机程序;数据库,存储于计算机可读介质上并且包括配置成将计算机程序的编译代码存储为单独部分的数据记录;数据库管理逻辑,配置用于访问数据库;以及调度逻辑,在计算机程序外部并且配置成请求根据时间表在计算设备上执行单独部分的子集。
附图说明
图1图示了根据本发明各种实施例的计算系统。
图2图示了根据本发明各种实施例的数据结构。
图3图示了根据本发明各种实施例的分布式计算系统。
图4图示了根据本发明各种实施例的执行计算机程序的方法。
图5图示了根据本发明各种实施例的创建和修改计算机程序的方法。
图6图示了根据本发明各种实施例的使用图1的计算系统来解释命令的方法。
图7图示了根据本发明各种实施例的解析命令的方法。
图8图示了根据本发明各种实施例的存储计算代码的多个实例的方法。
具体实施方式
在各种实施例中,本发明包括:一种计算设备,计算机程序存储于该计算设备上的数据库内;存储和修改该计算机程序的系统和方法;执行该计算机程序的系统和方法;以及这里讨论的其它特征。存储的计算机程序包括编译代码以及可选地包括数据、脚本、标记语言、图像、源代码等。可选地按照粒度存储计算机程序,其中个体函数存储于单独数据记录中。通过在执行时从数据库取回存储的编译代码来执行计算机程序。在一些实例中,计算机程序是配置成通过浏览器来访问、修改和/或执行的基于因特网的应用的部分。
编译代码是已经解析并且从人类可读源代码形式转换从而更有效地由软件解释器执行的目标代码或者字节代码。字节代码可以由虚拟机(例如解释器)执行或者它可以进一步编译成机器代码。使用字节代码,可以在两个阶段中执行计算机程序:首先将源代码编译成字节代码、然后将字节代码传递给虚拟机。这样的虚拟机可移植和存在用于流行的编程语言,比如C、Java、Python、PHP(超文本预处理器)、Forth和Tcl(工具命令语言)的虚拟机。字节代码的其它例子包括BCPL编程语言的代码、UCSD Pascal的p-代码、Scheme 48、CLISP、CMUCL、Microsoft.Net共用中间语言等等。目标代码是编译器或者汇编器已经生成的源代码表示。这一代码可以包括二进制指令(机器代码)、用于由代码使用的数据、程序符号、重定位信息、调试信息等。对目标代码或者字节代码的编译通常包括对源代码进行语法校验并且解析源代码至少一次以生成目标或者字节代码。
图1图示了根据本发明各种实施例的计算系统100。计算系统100被配置用于预备、存储和/或执行计算机程序。如这里进一步所述,计算系统100可选地是包括多个配置成互相通信的分立设备的分布式系统。计算系统100包括至少一个计算设备110。计算设备110包括配置成执行计算机程序的硬件,比如处理器、存储器和输入/输出。在各种实施例中,计算设备110包括服务器、个人计算机(PC)、工作站、便携计算设备等。
计算设备110可选地经由网络120连接到其它计算设备。网络120可以包括因特网、广域网、局域网等。例如在一些实施例中,计算设备110包括配置成执行计算机程序的服务器,该计算机程序的输出通过因特网来传达并且在浏览器内呈现给用户。网络120也可以被配置成有助于在计算系统100的各种分布式单元之间的通信。
计算系统100还包括操作系统逻辑130。操作系统逻辑130可选地存储于计算设备110内的计算机可读介质上并且被配置成在计算设备110上运行以便支持在计算设备110上执行目标代码或者字节代码。操作系统逻辑130可选地还被配置成支持计算设备110上的文件系统。操作系统逻辑130可以例如包括LINUX、UNIX、BSDUnix、Mac OS X、HPUX、Solaris、Microsoft Windows等。
计算系统100还包括数据库140。数据库140通常是存储于计算机可读介质上的关系数据库并且可以存储于计算设备110上或者计算系统100内的一些其它计算设备上。数据库140包括配置成存储计算机程序的编译代码的数据记录。数据库140内的数据记录可选地也被配置成存储计算机将对其操作的数据、与计算机程序有关的配置数据、非编译计算指令等。例如存储于数据库140的数据记录中的非编译计算指令可以包括脚本、标记语言指令、源代码、配置成以文本格式来解释的代码等。编译和非编译计算指令可以存储于相同和/或不同数据记录中。在一些实施例中,计算系统100包括配置成存储编译代码的数据库140的实例和配置成存储有关源代码的类似数据库。编译代码在不同数据记录之中的逻辑划分可以类似于源代码在数据库记录之中的划分。这里例如参照图2描述数据库140的更多细节。
数据库140通常由与数据库140安装于相同计算设备上的数据库管理逻辑150管理。数据库管理逻辑150被配置成使用查询来访问(例如读取或者写入)数据库140内的记录。数据库管理逻辑150也可以被配置成控制对数据库140的访问、限定数据库140内的数据记录表、登记对数据库140的操作和/或进行从数据库管理工具普遍可用的其它功能。数据库140可选地被配置成存储多于一个的计算机程序的编译代码。
计算系统100还包括代码执行逻辑160。代码执行逻辑160被配置成通过数据库管理逻辑150执行一个或者多个查询从数据记录取回编译代码并且使用操作系统逻辑130来执行取回的代码。代码执行逻辑160可以存储于计算设备110上或者计算系统100内的一些其它计算设备上。
具体而言,代码执行逻辑160被配置成制定如下查询,这些查询被配置成取回下一条所需存储的编译代码。例如当先执行计算机程序时,代码执行逻辑160可以用来制定如下查询,该查询被配置成识别数据库140内的如下数据记录,该数据记录包括计算机程序的入口点的代码。这一查询可以包括程序的标识符以及如下参数,该参数表明需要入口点。这一查询的结果包括然后向操作系统逻辑130传递用于执行的入口点代码。代码执行逻辑160然后用来制定第二查询,该第二查询被配置成从数据库140取回下一代码用于在操作系统逻辑130上执行。可以在制定第一查询之后和/或可以在执行第一代码之后制定第二查询。
如果按照通过第一查询来取回的代码的程序流程已知,则可以在第一查询之后不久制定第二查询。程序流程是将执行代码的顺序。可以例如使用计算机程序内的条件分支语句来改变程序流程。这些条件分支语句例如包括IF语句、WHILE语句、CASE语句等。如果计算机程序包括条件分支语句,则第二查询的内容可以依赖于执行使用第一查询来取回的代码的结果。因此,在一些实施例中,可能直至完成执行第一查询的代码才有可能制定第二查询。
有时条件分支语句包括程序流程应当跳转至的标记。在现有技术的系统中,这一标记可以转换成指针。在一些实施例中,标记用作第二查询中的参数。在查询内,这一标记由数据库管理逻辑150用来识别将执行的下一代码存储于其中的数据记录。由于这一特征,数据库管理逻辑150的查询能力可以用来控制执行的程序内的程序流程。这可以实现若干优点。例如可以通过向数据库140添加适当数据记录并且使用将在查询中包括的标记对添加的数据记录编索引(通过代码执行逻辑160)来向条件分支语句添加新选项(程序流程目的地)。在各种实施例中,代码执行逻辑160从用户、从命令行、从配置文件、从对可用硬件的检查接收在查询中包括的参数,从数据库、Web请求数据和/或另一计算机程序取回查询中包括的参数。
代码执行逻辑160可以被配置成在第二查询之后制定和执行具有类似特性的更多查询。重复这一过程直至程序终止。
计算系统100还可选地包括配置成从源代码生成编译代码的代码编译逻辑170。代码编译逻辑170可选地是配置用于将源代码编译成字节或者目标代码的标准编译器。代码编译逻辑170代之以是配置成将源代码编译成字节或者目标代码并且以如下逐条形式输出源代码的定制编译器,该形式包括范围适合于在数据库140中存储的多条编译代码。例如编译逻辑170可以将编译代码划分成函数(过程)级、功能级、按照类别定义的部分或者其它逻辑单元。在一些实施例中,基于计算机程序内的程序流程将编译代码划分成部分。在这些实施例中,可以在代码内的向标记的跳转的产生点划分编译代码。在一些实施例中,代码编译逻辑170被配置成自动编译接收的源代码,然后在数据库140中存储编译代码。代码编译逻辑170可以存储于计算设备110或者计算系统100的一些其它计算设备中。在一些实施例中,代码编译逻辑170被配置成在数据记录中存储用于类的定义代码或者代之以在单独数据记录中存储类别的各类方法。
计算系统100可选地还包括配置用于修改和以别的方式操纵编译代码的代码管理逻辑180。在一些实施例中,代码管理逻辑180被配置用于让用户访问源代码、取回访问的源代码、编辑源代码、使用代码编译逻辑170来编译源代码和/或在数据库140中存储编译的源代码。代码管理逻辑180通常将数据库管理逻辑150用于访问、取回和在数据库140中存储编译代码。数据库管理逻辑150可选地还使用数据库管理逻辑150(或者其实例)来访问数据库140或者另一数据库中存储的源代码。
代码管理逻辑180可选地被配置用于在Web浏览器内使用。例如代码管理逻辑180可以被配置用于经由因特网来与数据库管理逻辑150和/或代码编译逻辑170通信。在一些实施例中,代码管理逻辑180被配置成使用数据库管理逻辑150的一个或者多个实例来访问编译代码和源代码。例如,如果源代码存储于数据库中,则代码管理逻辑180可以使用查询以访问这一源代码。源代码可以存储于单个记录中或者以逐条方式存储于多个记录中。在源代码存储于多个记录中的实施例中,代码管理逻辑180可选地被配置成一次向用户呈现一条源代码或者同时向用户呈现若干条源代码。当同时向用户呈现若干条源代码时,对包括源代码的数据库的查询结果可以附加在一起,从而将源代码呈现为人类可读文本的连续体。代码管理逻辑180可选地被配置成在编辑环境内向用户呈现源代码,从而源代码可以由用户修改。
如果编辑源代码,则代码管理逻辑180被配置成存储编辑的源代码。这一存储可以在文件中或者在数据库中。代码管理逻辑180还被配置成编译编辑的源代码并且在数据库140中存储编译的源代码。源代码可以按照它的整体或者以逐条方式来编译。例如,如果从数据库取回仅一条源代码和对它进行编辑,则可以重新编译并且在数据库140中以编译形式存储仅这一条源代码。
计算系统100可选地包括配置成解释接收的命令的命令解释逻辑190。命令解释逻辑190可以存储于计算设备110内的计算机可读介质上并且可选地被包括于代码执行逻辑160和/或代码管理逻辑180中。命令解释逻辑190被配置成接收命令并且处理这一命令用于执行可执行代码。接收的命令可以包括命令行或者通用资源定位符并且通常包括多个可解释对象。
代码管理逻辑180可选地被配置用于管理数据库140的记录内的这里讨论的编译代码、源代码或者其它信息的不同实例。例如第一版本的编译代码可以存储于第一记录中而第二版本的编译代码可以存储于第二记录中。记录可选地包括配置用于存储如下信息的字段,该信息可以用来区别两个实例。这一字段可以包括版本标识符、口令、日期、调试标志、浏览器标识、标记、数据库发出的唯一ID(例如整数)、人类可读描述等。
在一些实施例中,不同代码实例因用户进行的改变而不同。例如用户可以编辑源代码并且在第一记录中存储原版本而在第二记录中存储新版本。在一些实施例中,不同代码实例不同在于它们的编译方式。例如一个实例可以包括用于在开发模式中使用的调试信息而一个实例可能缺乏如将在生产模式中希望的调试信息。在一些实施例中,不同代码实例不同在于与安全级或者权限有关的方式。例如可以根据用户是否登录、用户的口令、标识和/或权限、网络安全协议、网际协议地址、MAC地址等来选择不同实例。在一些实施例中,不同代码实例不同在于它们与之关联的人类语言。例如一个实例可以被配置成解析英文字符而另一实例可以被配置成解析中文字符。实例可以不同在于其它功能类型、例如不同在于如何进行计算、向用户赋予的特征、界面样式、它们支持的浏览器、它们支持的硬件等。
代码管理逻辑180可选地还被配置成管理数据库140的不同记录中的除了代码之外的多个信息实例。例如配置数据、样式表、显示文本的不同实例可以存储于不同记录中。可以基于可用硬件、浏览器类型、优选人类语言等来选择这些实例。例如可以响应于接收的关于可用硬件、目标操作系统、用户偏好等的信息来选择配置数据的特定实例。
在一些实施例中,计算机程序的不同部分的实例在逻辑上分组成实例集。实例集是配置成一起操作的多个实例。例如,如果计算机程序包括多个部分并且这些部分中的一些部分被修改,则修改的部分可以相互依赖。与第二部分的修改实例组合使用第一部分的原实例可能造成错误。在一些实施例中,代码管理逻辑180被配置成将在相同事件期间修改的实例分组成实例集。这一分组可选地是自动的。数据库140的记录可选地包括配置成存储一个或者多个如下标签的字段,该标签标识实例集中的隶属关系。实例可以是多个实例集的成员。可以使用这里别处讨论的前缀或者映射来选择实例集。
在一些实例中,代码管理逻辑180被配置成使用数据库管理逻辑150的特征以帮助管理各种实例。例如数据库管理逻辑150中包括的事件登记特征可选地用来跟踪数据库140内的实例。在另一例子中,数据库管理逻辑150内包括的退回特征可以用来恢复先前实例。
有能力按照比现有技术中可能的粒度级更多的粒度级执行、存储和操纵计算机程序的部分可以具有诸多优点。例如,如果需要计算机程序的两个不同版本,则在现有技术中保持源文件和可执行文件的两个副本。如果在计算机程序的版本之间的差异出现于仅一个或者两个函数中,则在本发明的一些实施例中仅必须存储这些函数的实例。
本发明的一些实施例包括调度逻辑185。调度逻辑185被配置成允许根据调度表来执行计算机程序的函数。调度逻辑185可以用来在逐个函数的基础上调度这一执行。例如调度逻辑185可以向代码执行逻辑160发送请求以请求执行数据库140的记录中存储的特定函数。可选地完成这一点而不执行该函数为其一部分的计算机程序的其它部分。调度逻辑185可以执行于数据库服务器、Web服务器、客户端设备等上并且可以执行于与数据库140或者计算设备110分离的设备上。
在命令内的可解释对象可以例如包括预定义前缀、向数据库140的映射和/或静态值。预定义前缀是用来表征后续对象的对象。例如预定义前缀可以用来表明命令内的接下来三个对象应当视为映射和两个值或者一些其它对象组合。预定义前缀指定的对象可以是另一预定义前缀。这导致命令内对象之间的等级关系。使用预定义前缀也允许命令解释为语法结构。例如一种如下结构,其中对象的解释可以依赖于命令内的其它对象而不是仅依赖于静态模板。在一些实施例中,语法结构允许命令包括有关对象的短语。
映射对象是向数据库140内的数据记录映射的对象。在各种实施例中,映射对象包括指向特定数据记录的索引和/或可以用来选择多个数据记录。由于映射对象映射到数据库140内的一个或者多个数据记录,所以映射对象可以用来选择特定可执行代码用于执行。例如映射对象可以传递给代码执行逻辑160用于被包括于查询中。传递的映射对象可以被配置成选择多个替代函数之一用于执行。在一些实施例中,映射对象也可以适于作为预定义前缀。例如映射对象可以用来选择数据库140内的数据记录并且也表征命令内的后续对象。值对象包括静态值,比如串、字符、整数、浮点数或者任何其它简单或者复合数据类型。映射对象可以包括在映射集与存储于数据库140中的编译代码之间建立多对多关系的数据库引用。映射对象可以映射到包括存储的映射对象的数据记录。这一存储的映射对象可以在标识符与存储于数据库140中的编译代码之间进行映射。
以通用资源定位符“http://xsevo.com/itemA/1/itemB/2/edit production”为例来说明将各种对象与命令一起使用。这一命令包括协议信息“http”和可转换成网际协议(IP)地址的串“xsevo.com”。这一命令还包括由命令解释逻辑190解释的5个对象。可以响应于可以在对象之中包括的任何预定义前缀以多种不同方式解释这些对象。
例如“itemA”可以是指定应当跟随有一个值对象的预定义前缀、指定应当跟随有值对象和第二预定义前缀的预定义前缀或者指定应当跟随有三个值对象的预定义前缀。预定义前缀可以指定值对象的数据类型。例如“itemA”可以指定第一值对象“1”将视为整数而第二值对象“itemB”将视为串。预定义前缀定义的对象视为该预定义前缀的语法短语。
如果对象“itemB”也是预定义前缀,则它可以是“itemA”的语法短语的部分或者第二独立语法短语的开头。当第二预定义前缀是第一预定义前缀定义的语法短语的部分时,存在预定义前缀之间的等级关系。第二预定义前缀和由第二对象定义的任何对象可以视为第一预定义前缀的子代和/或孙代。
在一些实施例中,预定义前缀包括数据类型标志和其它对象的混合。例如预定义前缀可以包括用于命令内的另一对象的数据类型标志并且也包括静态值、映射或者某一其它预定义前缀。在一个实施例中,预定义前缀包括第一串类型标志、整数类型标志、静态布尔和映射。
通常,命令解释逻辑190被配置成通过一次考虑一个对象并且将各对象视为任何先前考虑的预定义前缀的函数来解析命令。通常在用户如程序员接收命令之前定义预定义前缀。预定义前缀可以存储于命令解释逻辑190可访问的位置。命令解释逻辑190被配置成比较命令内的对象与这些存储的预定义前缀。
在一些实施例中,当命令内的对象未识别为预定义前缀并且不是预定义前缀表征的对象时,于是该对象视为映射。例如在上文讨论的通用资源定位符例子中,对象“edit_production”可以是向数据库140内的数据记录的映射。作为映射,“edit_production”传递给代码执行逻辑160,在该逻辑使用该对象来生成查询。然后使用数据库管理逻辑150向数据库140应用这一查询。在一些实施例中,映射在查询中直接用作搜索项。在上文讨论的例子中,映射“edit_production”可以映射到配置用于在生产模式中编辑源代码的编译代码。替代映射如“edit_development”可以映射到配置用于在开发模式中编辑源代码的编译代码。对象“itemA”、“1”、“itemB”和“2”可以用来标识将编辑的源代码、版本信息、访问要求、编辑器选项、登录信息等。
在一些实施例中,映射对象和/或预定义前缀为两大类。第一类对象被配置成使用于准确匹配比较中,而第二类对象被配置用作规则表达式。规则表达式是一种标识对象如文本串的灵活手段。例如规则表达式“edit\d”包括通配符字符“\d”并且可以用来匹配文本串“edit1”、“edit2”等。规则表达式可以使用于接收的命令行或者通用资源定位符中、存储的预定义前缀中或者数据记录中。规则表达式可以与如下准确表达式对照,该准确表达式是配置用于进行准确匹配的表达式。
规则表达式可以被配置成与整个命令行或者整个通用资源定位符比较。取而代之,规则表达式可以被配置成与命令行或者通用资源定位符的子集比较。例如规则表达式可以与在命令内的语法短语或者单个对象匹配。规则表达式可选地用来将作为命令的部分而接收的对象分离成两个参数。例如接收的对象“edit6”可以与预定义前缀“edit\d”匹配。在这一情况下可以分离和独立使用接收的对象的“edit”和“6”。具体而言,映射“edit(?P<Id>\d)”可以用来在与串“edit6”匹配时向目标代码传递参数Id=6。除了其它优点之外,这还可以允许易于引用“edit”对象映射到的编译代码的若干不同版本。
命令解释逻辑190可选地被配置用于属性在接收的命令的要素之间的继承。例如对命令的解析可以视为解析树而属性可以沿着此树(向上和/或向下)来继承。子对象中的值可以盖写母对象中设置的值或者相反。例如包括“/itemA/itemB/edit_production”的命令(其中itemA和itemB是各前缀而edit_production是映射)可以使用前缀itemA和itemB以各自设置向edit_production传递的一个或者多个参数。itemB可以盖写itemA设置的一个或者多个参数。itemB可以盖写itemA设置的参数的子集。
命令解释逻辑190可选地分布于计算系统100的若干部分之中。例如命令解释逻辑190的部分可以被包括于代码执行逻辑160中而命令解释逻辑190的部分可以被包括于代码管理逻辑180中。
图2图示了根据本发明各种实施例的如可以在数据库140中包括的数据结构200。数据结构200包括分别标注为210A、210B、...210N的多个记录210。数据结构200可以包括任何数目的记录210。各记录210包括分别标注为220A、220B、...220N的多个数据字段220。各记录210可以包括比图2中所示更多或者更少的字段220。使用由数据库管理逻辑150执行的查询可访问、读取和写入这些字段220。通常在数据库140中包括数据结构200的若干实例。各数据结构200可选地存储于不同文件中。可以在替代实施例中变化图2中所示数据字段220的顺序。
在一个示例实施例中,字段220A被配置成存储记录索引值。索引值通常是配置成标识特定数据记录的唯一标识符。索引值可选地用作标记以控制程序流程。字段220B被配置成存储计算机程序的一条可执行代码或者源代码。如这里别处讨论的那样可以在逐行基础上、在函数基础上、在功能基础上、在基于程序流程的基础上或者在用于将计算机程序划分成单独多条的一些其它基础上存储这一代码。
可选字段220C被配置成存储数据或者函数类型。这一类型可以是存储于字段220B中的代码预期的值(或者对象)的类型或者存储于字段220B中的代码返回的值(或者对象)的类型。
可选字段220D被配置成存储如下数据,存储于字段220B中的代码被配置成对该数据操作。例如数据字段220D可以包括用于由存储的代码使用的常数。
记录210可以包括在图2中由字段220N代表的广泛多种附加字段。一个或者多个字段220N可以包括如下字段,这些字段被配置成存储:配置成控制程序流程的更多标记、后续一条代码的标记(或者索引值)、存储于字段220B中的代码的版本标识符、配置信息、映射信息、调度信息、对代码的人类可读描述或者说明、用于编辑器的组织信息等。
数据库140通常存储于各自包括数据结构200的实例的一个或者多个表中。可选地使用JOIN指令等来组合这些表。例如在一些实施例中,代码存储于包括函数类型、函数名称、函数参数和默认数据的第一数据库表、包括用于函数的各实例的源代码的第二表和包括各函数实例的编译字节代码(等)的第三表中。
图3图示了计算系统100的分布式实施例。在这些实施例中,计算系统100例如划分成管理服务器305和数据库服务器310。管理服务器305包括操作系统逻辑130、代码执行逻辑160并且可选地包括代码编译逻辑170和代码管理逻辑180。数据库服务器310包括数据库140和数据库管理逻辑150。管理服务器305和数据库服务器310被配置成通过网络120的部分(例如局域网120A)来相互通信。管理服务器305可选地被配置成与数据库服务器310的多个实施例通信。这些实例中的各实例可以被配置成支持一个或者多个不同计算机程序。在一些实施例中,数据库140的一个实例视为主控数据库,而数据库140的可选地存储于单独设备上的其它实例视为从属数据库。例如主控数据库可以视为数据的最当前状态而从属数据库为主控的再现。
管理服务器305还被配置成与这里称为客户端315A、客户端315B、客户端315C等的一个或者多个客户端315通信。这一通信可以通过网络120的另一部分,例如因特网120B。在一些实施例中,管理服务器305被配置成经由因特网浏览器320如Internet Explorer或者Firefox由客户端的用户访问。这一访问可以包括执行数据库140中存储的计算机程序和/或开发和修改这些计算机程序。
图4图示了根据本发明各种实施例的执行计算机程序的方法。如这里别处所述,通过从数据库取回可执行代码并且在数据库外部的操作系统上执行这一取回的代码来执行计算机程序。可以可选地响应于从客户端315接收的通信使用计算系统100来进行这些方法。可以按照替代顺序进行图4中所示步骤。
在接收请求步骤410中,对执行计算机程序的请求由计算系统100接收。可以从另一计算设备、从管理服务器305的用户或者从客户端315之一的用户接收这一请求。在一些实施例中,该请求经由浏览器320来接收、包括通用资源定位符(URL)和/或经由HTTP来传达、经由TCP/IP来传达和/或使用POST操作来提供。除了标识计算机程序的信息之外,该请求还可选地包括比如安全信息、配置数据、版本信息、上传的文件数据、图像、视频等其它数据。
在外部查询步骤415中向数据库管理逻辑150提供查询。这一查询被配置成从数据库140内的记录210之一取回计算机程序的编译代码的子集。查询可以是预定查询或者可以响应于作为请求的部分而接收的数据来配置。
在取回代码步骤420中,在执行查询步骤415中执行的查询的执行造成从数据库140取回第一条代码。这第一条代码是计算机程序的代码的子集。如这里别处讨论的那样,取回的代码可以是单个函数、单个功能单位、在程序流程中的条件分支之间的码块、单行代码或者计算机程序的全部代码的其它划分。
如果在取回代码步骤420中取回代码失败,例如如果代码不可用,则在可选的生成代码步骤425中使用代码编译逻辑170从源代码生成编译代码。这一生成的代码然后存储于数据库140的记录210之一中。生成代码步骤425可以包括计算机程序的全部代码的所有代码或者子集。如果生成所有代码,则生成的代码的不同部分存储于不同记录210中。
在可选的存储编译代码步骤430中,使用数据库管理逻辑150在数据库140的一个或者多个记录210中存储在生成代码步骤425中生成的任何代码。然后再次尝试取回代码步骤420。这一存储可以出现于数据库140的原副本或者数据库140的高速缓存副本中。高速缓存副本可选地由代码执行逻辑160或者计算系统100的其它单元创建。
在提供代码步骤435中向操作系统逻辑130提供在取回代码步骤420中取回的可执行代码用于执行。这一执行通常并不依赖于数据库管理逻辑150。例如,如图3中所示,可选地在不同计算设备上包括操作系统逻辑130和数据库管理逻辑150。代码因此可选地执行于与数据库管理逻辑150远离的操作系统逻辑130上。
在生成查询步骤440中生成第二查询。这一查询被配置成从数据库140取回计算机程序的另外代码。第二查询可选地基于取回的第一代码的执行结果。例如执行取回的第一代码可以生成确定程序流程的值,例如后续IF或者CASE语句的对象。然后可以在第二查询中包括此值作为参数。
在用户查询步骤445中,生成的第二查询用来识别数据库140的第二记录210。这一第二记录210可以包括计算机程序的编译代码、其它可执行代码、非编译代码、数据、脚本、标记语言、图像、源代码等。
在接收代码步骤450中从第二数据库记录取回可执行代码作为第二查询的结果。这一代码由包括操作系统逻辑130的计算设备如管理服务器305接收。可选地经由网络120接收可执行代码。
在提供代码步骤455中向操作系统逻辑130提供在接收代码步骤445中接收的可执行代码用于执行。这一执行可选地独立于数据库管理逻辑150,尽管该执行可以生成以后用来使用数据库管理逻辑150来访问数据库140的结果。这样,可以重复生成查询步骤440到提供代码步骤455以取回和执行来自数据库140的多条代码。这一过程可以继续直至计算机程序终止。
图5图示了根据本发明各种实施例的创建和修改计算机程序的方法。在这些方法中取回和编译源代码。编译代码以编索引方式分成多条存储于记录210内。该方法可选地包括更多如下步骤,其中存储源代码或者其它数据、修改存储的编译代码、数据库管理逻辑150用来提供附加特征和/或通过供应数据库140的副本来提供数据库计算机程序。可以按照替代顺序进行图5中所示步骤。
在接收源代码步骤510中,计算机程序的源代码由计算系统100接收。可以从存储设备、经由网络120从另一计算设备或者从输入文本的用户接收计算机程序。接收的源代码通常包括多个函数。
在编译步骤515中使用代码编译逻辑170来编译在接收源代码步骤510中接收的源代码。这一步骤可以包括生成单块编译代码或者生成如这里别处讨论的多条编译代码。例如代码编译逻辑170可以用来将编译代码划分成可以单独存储于数据库140的记录210中的多条。例如在一些实施例中,代码编译逻辑170用来基于源代码的函数或者程序流程来产生单独多条编译代码。在编译步骤515中生成的编译代码被配置用于在操作系统逻辑130上执行并且通常在字节代码、目标代码、机器代码等中。
在存储步骤520中,在编译步骤515中生成的编译代码存储于数据库140的记录210中。各条编译代码可选地存储于单独多个记录210中。如果在编译步骤515中生成多条代码,则通常可以直接存储这些多条代码。然而如果编译步骤515获得单块编译代码,则存储步骤520包括将这一块划分成单独多条代码。这一划分可以使用代码管理逻辑180来进行并且通常包括在这里别处讨论的一个或者多个基础上划分代码。
存储步骤520可选地包括存储除了编译代码之外的更多信息。例如存储步骤520可以包括存储其它可执行代码、配置代码、将由代码操作的数据、数据类型信息或者这里讨论的任何其它信息。
在索引步骤525中对编译代码存储于其中的记录210的成员编索引。通常使用代码管理逻辑180和/或数据库管理逻辑150来进行编索引过程。编索引被配置用于标识和取回存储的编译代码并且可选地标识和取回其它信息。各条单独存储的代码通常与唯一索引或者索引集关联。因此可以使用编索引来标识各条代码。在一些实施例中,索引步骤525包括向记录210添加对于程序流程有意义的标记(或者其它标识符)。例如在索引步骤525中添加的标记可以将一条代码标识为在条件语句之后的程序流程目的地。
在可选的存储源代码步骤530中存储在接收源代码步骤510中接收的源代码。源代码可选地与编译代码一起分成多条存储于数据库140中或者分成多条存储于结构与数据库140的结构类似的单独数据库中,例如其中字段220用来存储源代码而不是编译代码。取而代之,存储源代码步骤530可以包括在常规文本文件中存储源代码。
在可选的存储配置数据步骤535中,配置数据存储于数据库140中。这一配置数据被配置用于向用户提供接收的源代码代表的计算机程序的替代配置。例如在一些实施例中,多个配置数据集存储于数据库140中(各集合在不同数据记录中)。使用数据库管理逻辑150来执行的查询然后可以用来取回用户希望的或者适合于具体硬件目标的配置等。
在可选的修改步骤540中修改记录210内的编译代码。这一修改过程可以包括更改存储的源代码或者接收新的源代码、编译更改或者新的源代码并且用新的编译源代码替换一个或者多个记录210中存储的编译代码。修改步骤540可以使用代码管理逻辑180来进行以修改源代码、使用代码编译逻辑170来进行以编译源代码并且使用数据库管理逻辑150来进行以在一个或者多个记录210中存储新的编译代码。
可选地一次对一条编译代码进行修改步骤540。例如可以对存储于记录210中的仅一个记录或者子集中的编译代码进行修改。无需必然重新编译相同计算机程序的其它编译代码。这样,修改和重新编译可以限于基于函数、功能、程序流程等与其它代码分离的单条代码。在一些实施例中,代码编译逻辑170被配置成在生产模式和开发模式中操作。在修改代码之后相对于开发模式在生产模式中重新编译更大量编译代码。
在可选的版本管理步骤545中使用数据库管理逻辑150的登记能力来进行对存储的编译代码和计算机程序的其它部分的版本控制。例如在一些实施例中,数据库管理逻辑150包括配置成登记数据库140的改变的登记特征。这一特征可以用来跟踪计算机程序的改变。类似的,数据库管理逻辑150可以具有配置成将数据库返回至先前状态的退回特征。这一特征可以用来恢复先前代码版本。在一些实施例中,数据库管理逻辑150被配置成保持数据库140或者个体记录210的多个副本并且使用版本信息来跟踪这些副本。
在可选的控制访问步骤550中,数据库管理逻辑150的访问控制特征用来控制对计算机程序或者其特征的访问。例如数据库管理逻辑150可以被配置成控制对数据库140内的特定记录210或者其集合的访问(或者控制对整个数据库140的访问)。这一访问控制可以用来防止用户访问与计算程序的具体功能、具体数据、图像或者任何其它方面关联的多条编译代码。
在可选的提供步骤555中,通过向计算设备提供数据库140的副本来向该计算设备提供计算机程序。可以通过网络120进行这一提供。该步骤利用如下事实:在一些实施例中,数据库140可移植。
图6图示了根据本发明各种实施例的使用图1的计算系统来解释命令的方法。解释的命令可以包括命令行或者通用资源定位符。尽管参照编译代码来讨论图6中所示步骤,但是也可以结合其它种类的可执行代码和/或数据来进行它们。
在可选的定义步骤610中预定义前缀。这一预定义可以例如使用代码管理逻辑180、数据库管理逻辑150或者编辑器由程序员或者系统管理员进行。预定义通常包括表征对象的一个或者多个数据类型和标识预定义前缀的标记的规范。例如预定义前缀可以包括“成员;串;整数;前缀”。这一预定义前缀包括如下标记“成员”,该标记被配置成标识预定义前缀并且在标记出现于命令中时匹配这一标记于预定义前缀。这一预定义前缀还包括如下数据类型“串”和“整数”,这些数据类型在一些实施例中被配置成表明接下来两个对象应当分别视为串和整数。这一预定义前缀还包括类型“前缀”。这一类型可选地用来表明对象应当视为子代预定义前缀。在各种实施例中,预定义前缀可以包括广泛多种替代语法、类型等。
在各种实施例中,前缀可以包括以下各项中的一项或者多项:a)用于前缀的唯一标识符,例如整数;b)用来匹配前缀的串;c)父代前缀的标识符,例如整数或者指针;d)如下串,该串标识有望在命令内的可能对象(例如值)和用于赋值的变量;e)如下串,该串标识将向可执行代码传递的静态值和可执行代码的用于赋这些值的变量;f)使能/禁止标记;g)前缀的人类可读名称;h)指向外部数据库的键;i)样式标识符;配置成对前缀属于的一个或者多个应用进行标识的应用标识符;j)配置参数;k)与前缀在其上可用的和/或可以使用的网站有关的信息(例如网际协议地址);以及l)前缀的人类可读描述。预定义前缀存储于命令解释逻辑190可访问的位置,可选地在数据库140中。
在可选的提供步骤615中通过向计算设备如数据库服务器130传送数据库140和预定义前缀集来在计算设备上提供计算机程序。
在接收步骤620中,命令由计算系统100接收。这一命令包括诸如预定义前缀、值、映射等多个对象。通常,该命令包括命令行或者通用资源定位符等。在一些实施例中,经由浏览器和/或网络如网络120B接收命令。
在解析步骤625中使用命令解释逻辑190来解析在接收步骤620中接收的命令。如这里别处讨论的那样,这一解析可以包括识别在接收的命令内的预定义前缀、映射、值和/或其它对象。解析步骤625包括基于在解析步骤625中识别的一个或者多个对象使用代码执行逻辑160来生成一个或者多个查询。在一些实施例中,在查询之一中包括在接收的命令内识别的映射作为搜索项。
在取回步骤630中使用在解析步骤625中生成的一个或者多个查询从数据库140的数据记录210取回编译代码。通常使用数据库管理逻辑150来进行这一取回。例如在一些实施例中使用在解析步骤625中生成的查询从数据记录210的不同成员取回计算机程序的编译代码的不同部分。可以响应于从用户接收初始请求或者可以在接收该请求之前进行解析步骤625和/或取回步骤630。如果在接收请求之前进行,则在接收请求时高速缓存编译代码用于执行。
在执行步骤635中例如使用操作系统逻辑130来执行在取回步骤630中取回的编译代码。这一执行通常在数据库管理逻辑150外部。例如该执行可以包括从数据库管理逻辑150向操作系统逻辑130传递编译代码,该代码在该操作系统逻辑执行于计算设备110上。
图7图示了根据本发明各种实施例的解析接收的命令的方法。通常使用命令解释逻辑来进行这一过程。
在读取对象步骤710中读取在接收的命令内的第一对象。在各种实施例中从右到左或者从左到右读取命令。在命令内的对象可以由“/”、“\”、“.”、“;”或者其它适当字符分离。
在识别步骤715中将读取对象步骤719中读取的对象识别为值、预定义前缀和/或映射。通过比较读取的对象与存储于计算系统100中的预定义前缀集来识别预定义前缀。这一存储通常在接收命令之前。在一些实施例中,读取的对象如果未标识为值对象或者预定义前缀则默认标识为映射。如果已经标识预定义前缀(例如在识别步骤715的在先进行中),则识别步骤715可以响应于这一预定义前缀。例如,如果预定义前缀将下一对象表征为值对象并且读取的对象是下一对象,则将该对象识别为值对象。
在可选的校验语法步骤720中校验读取的对象的语法。例如,如果对象识别为字符或者浮点值,则校验该对象具有分别符合这些类型的语法。可选地在图7中所示方法期间的其它时间进行校验语法步骤720。可以在个体基础上向接收的命令内的对象或者语法短语应用校验语法步骤720。这样可以在从命令读取另外对象之后重复校验语法步骤720。
在读取下一对象步骤725中读取在接收的命令内的下一对象。通常,这下一对象将是与命令中的先前读取的对象相邻的对象。
在处理下一对象步骤730中使用命令解释逻辑190来处理在读取下一对象步骤725中读取的对象。这一处理包括识别对象并且可以依赖于先前读取的预定前缀。例如,如果在识别对象步骤715中识别的对象是将下一对象表征为字符的预定义前缀,则在处理下一对象步骤730中将读取下一对象步骤725中读取的对象自动识别为字符。通常重复读取下一对象步骤725和处理下一对象步骤730直至处理整个接收的命令。
在可选的使用映射步骤735中向代码执行逻辑160传递在识别步骤715或者处理下一对象步骤730中识别的映射对象用于在生成数据库查询时使用。如这里别处讨论的那样,这一映射可以用来从数据库140内选择可执行代码,比如编译代码。可以与在命令中识别的其它对象组合向代码执行逻辑160传递映射对象。例如映射对象可以与文本串、整数或者一些其它类型的对象组合,并且该组合可以由代码执行逻辑160用来生成数据库查询。使用映射步骤735可以出现于图7所示方法内的其它时间。例如可以一旦识别映射对象就进行使用映射步骤735,然后在识别第二映射对象时重复该步骤。在使用映射步骤735中可以执行映射对象标识的编译代码或者可以作为参数传递给另一条编译代码。
图8图示了根据本发明各种实施例的存储计算代码的多个实例的方法。在这一方法中,计算机程序的部分存储于数据库14的单独记录中,修改这些部分中的一个或者多个部分以创建部分的修改实例,代码管理逻辑170然后用来在执行和/或提供计算机程序时在修改的实例或者原实例之间选择。
在接收代码步骤810中,计算代码由计算系统100接收。接收的代码可以包括源代码、可执行代码、配置数据和/或其它信息。在一些实施例中,可以例如经由网络120以单个文件接收代码。可选择地,可以例如在代码由用户键入时用逐条方式接收它。在一些实施例中经由在浏览器中呈现的编辑界面接收代码。接收代码步骤810可以随时间出现。
在划分代码步骤820中将接收代码步骤810中接收的代码划分成单独部分用于存储于记录210中,各部分存储于记录210的不同成员中。这一步骤可以包括解析代码以确定划分点。如这里别处讨论的那样,可以使用多种途径来划分代码,这些途径包括但不局限于按照函数(过程)、按照类定义、按照语句等级、按行、按照程序流程分支等来划分代码。例如在一些实施例中,计算机程序的各函数存储于记录210的单独成员中。在一些实施例中,在函数内的最高语句等级用来划分接收的代码的部分。例如使用WHILE语句、CASE语句或者IF语句可以创建等级结构,其中在这些语句之一内的子语句处于较低等级级别。可以按照包括WHILE、CASE和IF语句的等级级别来划分接收的代码。
在一些实施例中,在划分代码步骤820中的代码划分在用户的控制之下。例如用户可以通过编辑器或者类似界面来指定将如何划分代码。用户在源代码内放置这些记号可以有助于这一指定。代码管理逻辑180可选地被配置成使用这些记号以识别可以划分源代码的位置。另外,代码编译逻辑170可选地被配置成在编译源代码之时使用这些记号以划分所得编译代码。记号可选地放置于如下文本内,该文本在源代码的变成语言内原本将解释为注释。
在一些实施例中,根据如何接收代码来划分接收的代码。例如,如果以逐条方式接收代码作为部分,则可以根据这些部分来划分它。
可以使用相同划分来存储源代码和从源代码生成的编译代码或者可以不这样做。例如可以划分源代码并且可以在与源代码相同的点划分编译代码。取而代之,可以不划分源代码,例如它可以存储为单个文件,并且可以划分编译源代码而生成的编译代码。最后在一些实施例中划分源代码、但是不同地划分编译代码。这可以例如出现于该划分依赖于在编译过程期间确定的程序流程时。
在存储代码步骤830中,在接收代码步骤810中接收并且在划分代码步骤820中划分的代码存储于数据库140内。代码的各划分部分存储于记录210的单独成员中。通常该存储使用数据库管理逻辑150来实现并且可以通过网络120进行。可选地进行接收代码步骤810、划分代码步骤820和存储代码步骤830多次以处理计算机程序的多个部分。
在修改代码步骤840中,产生存储代码步骤830中存储的代码的一个或者多个部分的修改实例。这一修改可以包括编辑源代码、重新编译或者替换编译代码等。例如在一些实施例中使用查询从数据库140取回存储代码步骤830中存储的源代码。源代码然后可选地经由浏览器界面由用户编辑。在一些实施例中,修改代码步骤840包括修改编译代码。例如可以修改、然后重新编译源代码以生成修改的编译代码。可以用不同方式(例如用不同编译器设置)编译相同源代码以生成修改的编译代码。
在可选的编译代码步骤850中使用代码编译逻辑170来编译修改代码步骤840中修改的源代码。编译代码步骤850在修改的代码已经为编译形式时或者在无需代码的编译形式时是不必要的。在存储修改的代码步骤860中,在修改代码步骤840中产生并且可选地在编译代码步骤850中编译的修改代码存储于一个或者多个记录210中。修改的代码可选地存储为原代码的单独实例。存储修改的代码步骤860可以包括在记录210的字段中设置值以区别代码的不同实例。通常使用数据库管理逻辑150来进行该存储。
在选择实例步骤870中进行在代码的不同实例(例如原实例和在修改代码步骤840中产生的实例)之中的选择。这一选择可以响应于对访问和/或执行代码的请求进行。可选地,使用数据库查询和数据库管理逻辑150来进行该选择。可选地使用操作系统逻辑130来执行那个所选实例。
这里具体图示和/或描述了若干实施例。然而将清楚修改和变化为上述教导所覆盖并且在所附权利要求的范围内而不脱离其精神实质和既定范围。例如这里讨论的各种逻辑可以包括硬件、固件和/或存储于计算机可读介质上的软件。计算机程序的不同部分可选地存储于数据库140的不同表内。例如当计算机程序包括多个源文件和/或目标文件时,这些文件中的各文件可以存储于单独的表中。这里讨论的编译代码可选地被配置用于在浏览器内执行。这里讨论的各种实施例可以应用于Web或者非Web应用。这里讨论的编译代码可以执行于虚拟机上。类似地,计算系统100的各种部件可以包括虚拟机。在接收的命令内的对象可以用来从数据库140取回除了编译代码之外的诸如样式表、静态数据等信息。这里讨论的术语预定义前缀可以代之以是后缀。本发明的各种实施例包括配置成指定映射对象、前缀等的图形用户界面。例如图形用户界面可以用于根据给定映射来选择将执行的目标代码。
这里讨论的实施例举例说明本发明。由于参照图示描述了本发明的这些实施例,对描述的方法和/或具体结构的各种修改或者适应变得为本领域技术人员所清楚。依赖于本发明的教导并且使这些教导已经对本领域有所发展的所有这样的修改、适应或者变化视为在本发明的精神实质和范围内。因此这些描述和附图不应在限制意义上加以考虑,因为理解本发明决不仅限于所示实施例。

Claims (75)

1.一种计算系统,包括:
用于访问数据库的装置,所述数据库存储于计算机可读介质上并且包括被配置成存储计算机程序的编译代码的数据记录;
用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置;
用于在操作系统上执行所述取回的代码的装置,所述操作系统被配置成运行于计算设备上并且被存储于所述计算设备的计算机可读介质上;
用于修改所述存储的编译代码的装置;以及
用于通过经由网络向所述计算设备发送所述数据库来向所述计算设备提供应用的装置。
2.根据权利要求1所述的系统,还包括:
用于通过解释命令来生成所述一个或者多个查询的装置。
3.根据权利要求1所述的系统,其中:
所述操作系统被配置成在所述计算设备上执行计算机程序;
所述数据库包括第一数据记录、第二数据记录和第三数据记录;
还包括:用于在所述第一数据记录中存储第一编译代码、在所述第二数据记录中存储第二编译代码并且在所述第三数据记录中存储第三编译代码的装置,所述第一编译代码和所述第二编译代码包括计算机程序的不同部分,所述第二编译代码和所述第三编译代码包括所述计算机程序的一部分的不同实例;以及
所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置包括:用于选择所述编译代码的不同实例中的所述编译代码的一个实例并且通过使用所述用于访问数据库的装置来对所述数据库执行一个或者多个查询从所述数据记录取回所选择的所述编译代码的实例;并且
所述用于在操作系统上执行所述取回的代码的装置包括:用于在所述操作系统上执行所述取回的实例的装置。
4.根据权利要求1-3之一所述的系统,其中所述编译代码的至少部分被存储为函数。
5.根据权利要求1-3之一所述的系统,其中所述编译代码的至少部分被配置成控制所述数据库外部的设备。
6.根据权利要求1-3之一所述的系统,其中所述编译代码包括编译Python代码或者编译Microsoft.Net共用中间语言代码。
7.根据权利要求1-3之一所述的系统,其中所述数据库还包括被配置成存储非编译代码的数据记录。
8.根据权利要求1-3之一所述的系统,其中所述数据库还包括被配置成存储所述编译代码的源代码的数据记录。
9.根据权利要求1-3之一所述的系统,其中所述数据库还包括被配置成存储超文本标记语言、脚本或者扩展标记语言的数据记录。
10.根据权利要求1-3之一所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于通过对所述数据库进行多个查询来执行计算机程序并且执行作为这些查询的结果而返回的多个编译代码的装置。
11.根据权利要求1-3之一所述的系统,其中所述计算机程序的程序流程依赖于所述查询。
12.根据权利要求1-3之一所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于确定所述查询的装置,所述查询基于条件程序流程逻辑。
13.根据权利要求1-3之一所述的系统,其中所述用于修改所述编译代码的装置包括:用于在生产模式和开发模式中选择性地操作的装置,其中在修改所述编译代码之后相对于所述开发模式在所述生产模式中重新编译更大量所述编译代码。
14.根据权利要求1-3之一所述的系统,其中所述系统还包括:用于经由浏览器来访问所述用于修改所述编译代码的装置的装置。
15.根据权利要求1-3之一所述的系统,其中所述用于修改所述编译代码的装置包括:用于按照个体记录的级别来编辑所述数据库内的源代码的装置。
16.根据权利要求1-3之一所述的系统,其中所述用于修改所述编译代码的装置包括:用于在存储于所述数据库中之前自动编译代码的装置。
17.根据权利要求1-3之一所述的系统,其中所述用于修改所述编译代码的装置包括:用于在逐个记录的基础上编辑和重新编译所述代码的装置。
18.根据权利要求1-3之一所述的系统,其中所述用于修改所述编译代码的装置包括:基于源代码中的程序流程逻辑对所述数据记录编索引的装置。
19.根据权利要求1-3之一所述的系统,还包括用于从源代码生成所述编译代码的装置。
20.根据权利要求1-3之一所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于执行数据库查询以确定所述编译代码的部分在所述数据库中是否可用并且如果所述编译代码的所述部分在所述数据库中不可用则使用用于从源代码生成所述编译代码的装置以生成所述编译代码的所述部分的装置。
21.根据权利要求1-3之一所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于在所述数据库中高速缓存所述编译代码的生成的部分的副本的装置。
22.根据权利要求2所述的系统,其中所述命令是通用资源定位符的全部或者部分。
23.根据权利要求2和22之一所述的系统,其中所述命令全部或者部分是命令行的形式。
24.根据权利要求2所述的系统,其中所述用于通过解释命令来生成所述一个或者多个查询的装置还包括:用于生成所述一个或者多个查询以从所述数据库取回具体函数的装置。
25.根据权利要求1-3之一所述的系统,其中所述编译代码包括编译Perl代码、编译PHP代码、编译Ruby代码或者编译Java代码。
26.根据权利要求2所述的系统,其中所述用于通过解释命令来生成所述一个或者多个查询的装置还包括:用于生成所述一个或者多个查询以从所述数据库取回具体的超文本标记语言、脚本或者扩展标记语言的装置。
27.根据权利要求2所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于通过对所述数据库进行多个查询来执行计算机程序并且执行作为所述用于通过解释命令来生成所述一个或者多个查询的装置生成的所述查询的结果而返回的多个编译代码的装置。
28.根据权利要求2之一所述的系统,其中所述计算机程序的程序流程依赖于所述用于通过解释命令来生成所述一个或者多个查询的装置生成的所述一个或者多个查询。
29.根据权利要求1-3之一所述的系统,还包括:用于向所述数据库内的多个数据记录映射多个映射的装置。
30.根据权利要求2所述的系统,其中所述用于通过解释命令来生成所述一个或者多个查询的装置包括:用于解释经由浏览器接收的命令的装置。
31.根据权利要求2所述的系统,其中所述用于通过解释命令来生成所述一个或者多个查询的装置包括:用于基于所述命令来选择编译代码版本用于执行的装置。
32.根据权利要求2所述的系统,其中所述用于通过解释命令来生成所述一个或者多个查询的装置生成的所述一个或者多个查询被配置成从所述数据库的记录取回编译代码和非编译信息。
33.根据权利要求2所述的系统,其中所述用于通过解释命令来生成所述一个或者多个查询的装置包括:用于解释所述命令的语法结构的装置。
34.根据权利要求33所述的系统,其中所述语法结构包括预定义前缀和向其中存储编译代码的所述数据库的数据记录的映射。
35.根据权利要求34所述的系统,其中所述预定义前缀和所述映射为等级关系。
36.根据权利要求33所述的系统,其中所述语法结构被配置成向可执行代码的参数传递所述数据库中存储的编译代码。
37.根据权利要求33所述的系统,其中所述语法结构的部分包括规则表达式,并且所述语法结构的部分包括准确表达式。
38.根据权利要求33所述的系统,其中所述语法结构的部分包括规则表达式,并且所述用于通过解释命令来生成所述一个或者多个查询的装置包括:用于从所述规则表达式提取多于一个的对象的装置。
39.根据权利要求38所述的系统,其中所述多于一个的对象之一是向所述数据库内的数据记录的映射。
40.根据权利要求3所述的系统,其中所述编译代码的所述不同实例包括所述编译代码的不同版本。
41.根据权利要求3所述的系统,其中所述不同实例包括具有不同功能的编译代码。
42.根据权利要求3所述的系统,其中所述不同实例包括所述编译代码的所述部分的开发版本和生产版本。
43.根据权利要求3所述的系统,其中所述不同实例与不同安全级关联。
44.根据权利要求3所述的系统,其中所述不同实例与不同人类语言关联。
45.根据权利要求1-3之一所述的系统,其中所述数据库还包括被配置成存储应用配置数据的不同实例的数据记录。
46.根据权利要求3所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于让用户按照函数级在编译代码的不同实例之中选择的装置。
47.根据权利要求3所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于让用户使用命令行或者通用资源定位符在所述编译代码的不同实例之中选择的装置。
48.根据权利要求3所述的系统,其中所述用于通过在所述用于访问数据库的装置上执行一个或者多个查询从所述数据记录取回所述编译代码的装置还包括:用于基于前缀或者映射来取回实例集的装置。
49.根据权利要求1-3之一所述的系统,其中所述执行的取回代码包括在第一日期编译的所述计算机程序的第一函数和在第二日期编译的所述计算机程序的第二函数,所述第一日期不同于所述第二日期。
50.一种计算方法,包括:
从计算设备接收对执行计算机程序的请求;
执行第一查询以识别数据库的第一数据库记录,所述计算机程序的编译代码的子集存储于所述第一数据库记录中;
修改所述编译代码,并且将所述修改的编译代码添加到所述数据库;
通过经由网络向所述计算设备发送所述数据库来向所述计算设备提供应用;
从所述识别的第一数据库记录取回第一代码作为所述第一查询的结果;
向操作系统提供所述取回的第一代码用于执行;
基于所述取回的第一代码的执行的结果来生成第二查询;
使用所述生成的第二查询以识别所述数据库的第二数据库记录,所述计算机程序的编译代码存储于所述第二数据库记录中;
从所述第二数据库记录取回所述编译代码作为所述第二查询的结果;以及
向所述操作系统提供所述取回的编译代码用于执行。
51.根据权利要求50所述的方法,其中通过计算网络接收所述请求。
52.根据权利要求50所述的方法,其中所述第二查询基于所述计算机程序的条件程序流程逻辑。
53.根据权利要求50所述的方法,其中所述编译代码包括编译函数。
54.根据权利要求50所述的方法,还包括:
确定所述编译代码在所述数据库中不可用;
生成所述编译代码;并且
在所述数据库中存储所述生成的编译代码。
55.根据权利要求50所述的方法,其中从所述第一数据库或者第二数据库接收源代码。
56.根据权利要求50所述的方法,还包括在所述数据库中存储所述计算机程序的非编译代码。
57.根据权利要求50所述的方法,还包括在所述数据库中存储所述计算机程序的配置数据。
58.根据权利要求50所述的方法,还包括通过经由网络向计算设备提供所述数据库来提供所述计算机程序。
59.根据权利要求50所述的方法,还包括通过修改单独的数据库记录中的一个数据库记录来修改所述计算机程序。
60.根据权利要求59所述的方法,其中修改所述计算机程序包括重新编译所述单独的数据库记录中的所述一个数据库记录中存储的函数、但是未重新编译所述数据库记录中存储的多个函数的其它成员。
61.根据权利要求59所述的方法,其中修改所述计算机程序包括解析所述单独的数据库记录中的所述一个数据库记录中存储的函数并且执行所述函数的语法校验。
62.根据权利要求50所述的方法,还包括使用数据库管理程序来修改所述计算机程序。
63.根据权利要求50所述的方法,还包括使用数据库管理程序对所述计算机程序进行版本控制。
64.根据权利要求50所述的方法,还包括使用数据库管理程序来提供对所述计算机程序的访问控制。
65.根据权利要求50所述的方法,其中所述取回的编译代码包括计算机程序的不同部分。
66.根据权利要求50所述的方法,还包括使用数据库查询从多个数据记录取回非编译代码。
67.根据权利要求50所述的方法,还包括创建标识符向存储于数据记录的不同成员中的所述编译代码的不同部分的映射。
68.根据权利要求50所述的方法,还包括使用第二对象以生成被配置成从数据记录选择所述编译代码的数据库查询。
69.一种用于存储计算代码的多个实例的设备,包括:
用于接收计算机程序的代码的装置;
用于将所述代码划分成多个部分的装置;
用于存储所述多个部分的装置,各部分在数据库的单独的记录中;
用于修改所述多个部分的成员以从所述成员的原实例产生所述成员的修改实例的装置;
用于在所述数据库中存储所述修改实例的装置;以及
用于使用数据库查询来有选择地选择所述原实例或者所述修改实例的装置。
70.根据权利要求69所述的设备,其中所述计算机程序的所述代码包括源代码。
71.根据权利要求69或者70所述的设备,还包括用于编译所述多个部分中的各部分的装置和用于在所述数据库的单独的记录中存储所述编译的部分中的各部分的装置。
72.根据权利要求69或者70所述的设备,其中所述计算机程序的所述代码包括编译代码。
73.根据权利要求69或者70所述的设备,还包括用于使用数据库管理程序的登记特征以管理所述原实例和所述修改实例的装置。
74.根据权利要求69或者70所述的设备,还包括用于使用数据库管理程序的退回特征来恢复所述原实例的装置。
75.根据权利要求69或者70所述的设备,还包括用于使用数据库管理程序来控制对所述代码的访问的装置。
CN200980130576.7A 2008-07-31 2009-06-25 基于记录的代码结构 Expired - Fee Related CN102144230B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US12/183,823 US8171045B2 (en) 2008-07-31 2008-07-31 Record based code structure
US12/183,823 2008-07-31
US12/191,711 US20100042585A1 (en) 2008-08-14 2008-08-14 Command Interpretation
US12/191,711 2008-08-14
US12/210,629 US7979450B2 (en) 2008-09-15 2008-09-15 Instance management of code in a database
US12/210,629 2008-09-15
PCT/US2009/048672 WO2010014323A1 (en) 2008-07-31 2009-06-25 Record based code structure

Publications (2)

Publication Number Publication Date
CN102144230A CN102144230A (zh) 2011-08-03
CN102144230B true CN102144230B (zh) 2015-07-01

Family

ID=41610667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980130576.7A Expired - Fee Related CN102144230B (zh) 2008-07-31 2009-06-25 基于记录的代码结构

Country Status (3)

Country Link
CN (1) CN102144230B (zh)
DE (1) DE112009001892T5 (zh)
WO (1) WO2010014323A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201490B2 (en) 2013-03-15 2015-12-01 International Business Machines Corporation Power management for a computer system
CN103257934B (zh) * 2013-04-12 2016-02-10 广东数字证书认证中心有限公司 数字证书的存储、获取方法和装置
CN103838614B (zh) * 2014-02-19 2017-12-22 华为技术有限公司 一种数据处理方法及装置
US10169513B2 (en) * 2016-05-06 2019-01-01 Baidu Usa Llc Method and system for designing FPGA based on hardware requirements defined in source code
CN112463149B (zh) * 2020-12-07 2022-07-19 中国科学院软件研究所 一种面向软件定义卫星的可复用代码库构建方法与装置
US12067122B2 (en) * 2020-12-22 2024-08-20 Microsoft Technology Licensing, Llc Detecting added functionality in open source package

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586329A (en) * 1989-09-01 1996-12-17 Amdahl Corporation Programmable computer with automatic translation between source and object code with version control
US6279151B1 (en) * 1998-01-20 2001-08-21 International Business Machines Corporation Method and apparatus for remote source code inclusion
CN1542657A (zh) * 2003-04-07 2004-11-03 ��ķ��ɭ 用于分层数据格式的数据库模型

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3411139A (en) * 1965-11-26 1968-11-12 Burroughs Corp Modular multi-computing data processing system
US20050187980A1 (en) * 2004-02-10 2005-08-25 Microsoft Corporation Systems and methods for hosting the common language runtime in a database management system
US20070038662A1 (en) * 2005-08-04 2007-02-15 Peter Bendel Method and system for managing external routines in a database management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586329A (en) * 1989-09-01 1996-12-17 Amdahl Corporation Programmable computer with automatic translation between source and object code with version control
US6279151B1 (en) * 1998-01-20 2001-08-21 International Business Machines Corporation Method and apparatus for remote source code inclusion
CN1542657A (zh) * 2003-04-07 2004-11-03 ��ķ��ɭ 用于分层数据格式的数据库模型

Also Published As

Publication number Publication date
DE112009001892T5 (de) 2011-07-21
WO2010014323A1 (en) 2010-02-04
CN102144230A (zh) 2011-08-03

Similar Documents

Publication Publication Date Title
US9684495B2 (en) Command interpretation
CN100547552C (zh) 用于自动化管理任务的系统和方法
US9405736B1 (en) Method and system for automatically downloading and storing markup language documents into a folder based data structure
CN100592256C (zh) 无缝地比较对象的系统和方法
US7761786B2 (en) Reusable XPath validation expressions
US20170102925A1 (en) Automatch process and system for software development kit for application programming interface
CN101073057B (zh) 提供命令行操作环境的方法和系统
US20100042585A1 (en) Command Interpretation
CN102144230B (zh) 基于记录的代码结构
US20050278697A1 (en) Object type-declaration prefix syntax
US20030009323A1 (en) Application platform for developing mono-lingual and multi-lingual systems and generating user presentations
US20120173575A1 (en) Record Based Code Structure
JP2003288143A (ja) ユーザインタフェースを自動的に生成する方法
Lerman et al. Programming entity framework: code first
Winesett Agile web application development with Yii1. 1 and PHP5
Walther ASP. Net Unleashed
White et al. Datadeps. jl: Repeatable data setup for reproducible data science
CN116719735A (zh) 一种测试用例生成方法及装置
Ganeshan Spring MVC: Beginner's Guide
US20050044523A1 (en) Method and system for compiling Java code with referenced classes in a workspace environment
JP2005228234A (ja) サービス情報生成方法及び実施システム並びに処理プログラム
KR100953094B1 (ko) 호스트 소프트웨어 관리 시스템 및 방법
DiLeo et al. Two Web Application Approaches: Rails and Sinatra
Willis Beginning SQL Server 2000 for Visual Basic Developers
Uphill Puppet 5 Cookbook: Jump start your Puppet 5. x deployment using engaging and practical recipes

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: GROUP-A MOTOR SPORTS CORP.

Free format text: FORMER OWNER: XSEVO SYSTEMS INC

Effective date: 20131029

Free format text: FORMER OWNER: KURT ADLER DUSTIN

Effective date: 20131029

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

Effective date of registration: 20131029

Address after: California, USA

Applicant after: XSEVO SYSTEMS Inc.

Address before: California, USA

Applicant before: XSEVO SYSTEMS Inc.

Applicant before: Adler Dustin Kurt

Effective date of registration: 20131029

Address after: California, USA

Applicant after: XSEVO SYSTEMS, Inc.

Address before: California, USA

Applicant before: XSEVO SYSTEMS Inc.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150701

CF01 Termination of patent right due to non-payment of annual fee