CN1875343A - 用于建立软件套件的系统和方法 - Google Patents

用于建立软件套件的系统和方法 Download PDF

Info

Publication number
CN1875343A
CN1875343A CNA2004800326320A CN200480032632A CN1875343A CN 1875343 A CN1875343 A CN 1875343A CN A2004800326320 A CNA2004800326320 A CN A2004800326320A CN 200480032632 A CN200480032632 A CN 200480032632A CN 1875343 A CN1875343 A CN 1875343A
Authority
CN
China
Prior art keywords
software
user
class
script
xml
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
CNA2004800326320A
Other languages
English (en)
Other versions
CN1875343B (zh
Inventor
J·T·萨尔姆
V·G·雷哈
S·A·巴顿
V·M·卡利安普尔
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.)
Sony Electronics Inc
Original Assignee
Sony Electronics Inc
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 Sony Electronics Inc filed Critical Sony Electronics Inc
Publication of CN1875343A publication Critical patent/CN1875343A/zh
Application granted granted Critical
Publication of CN1875343B publication Critical patent/CN1875343B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Abstract

本发明提供了基于XML的编程语言、工具箱以及开发环境(24、26、28),无需正规的软件编程技术就可以容易地使用并理解它们,以为计算机汇编完整的软件套件。

Description

用于建立软件套件的系统和方法
相关申请
本申请要求2003年11月7日提交的美国临时专利申请序号为No.60/518,258的优先权。
I.技术领域
本发明通常涉及个人计算机。
II.背景技术
个人计算机(例如Sony的VAIO计算机)包含一组为每个项目构建的规范而创建的定制软件部件。换句话说,某些计算机必须具有第一套软件,例如文字处理软件、音频-视频软件,而另一组计算机可能被指定具有第二套不同的软件,以此向顾客提供更多的选择。在这里“软件套件”指计算机的完备的和全部的软件集合、以及发布到比如各厂家和测试小组的部件,这些部件作为整个项目发布的部分被组装在一起。
创建每个定制程序组需要许多的步骤,其中涉及多个互相分离的程序。迄今为止,在汇编程序组的各个程序时,工程师们不得不从一个或多个中央数据库中手工定位所期望的程序并且将这些程序复制到比如用于将软件载入到计算机上的光盘上。这些操作费时并且为了从零开始构建新指定的程序组而需要人工干预。此外,由于“构建”不是自动的,因此错误和不一致性不可避免地出现在这样的“构建”中。
经审察而知,理想的方式是提供一种为计算机组汇编软件套件的自动方法。然而,正如这里进一步认识到的,汇编者可能不具备编程语言(例如C++)的专业知识。因此,本发明认识到需要提供一种不需要正规的编程知识就能够自动汇编软件套件的方法。
发明内容
一种为计算机汇编软件包的方法包括将XML结构呈现给用户、并允许用户使用该结构来构造XML脚本,所述脚本定义了软件包的内容。该方法还包括解析脚本以提交C++软件代码以及执行该C++软件代码从而自动地将内容汇编成软件包。
在优选实施例中,该结构是面向对象的编程环境中的类。该类可在计算机显示器上的类窗口中呈现给用户,以供用户对其进行选择。在执行期间,用户可被提示输入与例如软件包的标识相关的信息。
另一方面,用于自动将至少两个软件应用程序汇编成软件包并将其载入到计算机上的系统中,包括用于识别脚本中应用程序的分层的面向对象方法。该系统还包括将脚本解析成可执行代码的方法。提供了用于执行代码以自动汇编软件包的方法。
在又一方面,软件系统包括模型部件,所述模型部件包含可用于生成软件应用程序列表的面向对象应用程序编程接口(API)。控制器部件与模型部件进行通信,并且控制器部件包含分析程序,分析程序将列表解析成用于执行的代码,以将应用程序自动汇编成软件包。查看部件与控制器部件进行通信来将对象类呈现给用户,以在生成列表时使用对象类。
附图说明
参考附图可更好地理解本发明的细节(关于其结构和操作),其中相同的标记指相同的部分,附图中:
图1是本系统的框图;
图2是软件结构的框图;
图3是本发明的通用逻辑单元的流程图;
图4是示出XML脚本分层图的示意图;以及
图5是示出用户显示的屏幕截图。
具体实施方式
首先参见图1,示出的是一般表示为10的系统,其中包括载入定义计算机12,所述载入定义计算机12具有一个或多个输入装置14(例如鼠标、键盘等)以及一个或多个输出装置16(例如计算机监视器、打印机、网络等)。载入计算机12与一个或多个软件应用程序的数据源(例如载入数据库18)进行通信,以将应用程序汇编成程序组或软件包,所述的程序组或软件包可被复制到例如光盘20上用于将这些软件应用程序载入到目标计算机上,例如可以是比如SonyVAIO电脑的膝上型计算机22上。
图2示出了可由载入计算机12执行的软件结构,图3以非限制性的流程图格式示出了该结构的主要功能性。如图2所示,本软件可包括模型部件24、控制器部件26和查看部件28。模型部件24包含系统应用程序编程接口(API),它是用于生成软件应用程序列表的最好的XML面向对象结构。因此,API是一组为编程自动化提供公用窗口命令的函数。模型部件24实质上是工具箱和信息库,该信息库包含了从文件处理和程序执行到消息显示和数据库18访问的若干函数。
更具体地说,模型部件24创建了动态链接库(DLL)文件,根据下文的公开内容通过微软公司的“.NET”系统可理解动态链接库(DLL)文件。模型部件24还是用户为获得应用程序可选择的所有XML对象类的知识库。另外,模型部件24可包括具有用于通用包装函数的适配器的控制部分,以使原始C++数据类型结构(例如“int”和“char*”)分别被转换成Object*和String*。它还具有可用来记录任何命令执行结果的设置类。这实际上可通过类内的C++函数实现。每个API命令可以是单(single)类内的函数,或者可以作为个别(individual)类来实现。
控制器模块26包含了系统语言结构背后所有的业务逻辑,系统语言结构包括变量说明和条件语句,并且该模块代表了将收自用户的应用程序列表解析成用于执行的代码以将应用程序自动汇编成软件包的分析程序。为此,控制器模块26包含了在查看部件28和模型部件24之间的最小限度的耦合,并在两者之间提供了清晰的分隔。如果该代码转换成另两个部件中的任何一个,则控制器模块26不需要重新编译。
查看模块28是用户界面,它允许通过控制器部件26访问模型部件24以将对象类呈现给用户,以在生成定义将要汇编成软件包的应用程序的列表或脚本时使用对象类。可以有两个查看,一个仅用于程序执行以及可在命令行运行的调试,而另一个是用于创建、编辑以及执行系统脚本的用户界面。两者都可以从XML脚本或者另外通过界面内的API选择来接收输入。
图3示出了嵌入系统10的总体逻辑。从方框30开始,在比如基于XML对象类中的所期望的功能性被置于模型部件24中。在方框32处,调用查看部件28以在图1所示的监视器16上向用户呈现在下文中将进一步讨论的功能类。在方框34处,用户可以选择不同的类以生成将要汇编成软件包或软件套件的应用程序的脚本或列表。一旦完成,该逻辑转到方框36,通过将XML解析成可执行代码(例如C++)并且然后执行代码从而执行该脚本,根据包含在脚本中的指令(例如,可以发现某些应用程序的位置),自动地检索在脚本中被标识的应用程序并将其汇编成软件包。作为执行的一部分,可用变量名、值以及其他信息(例如软件包名称等)提示用户。
图4表明根据上述原理生成的脚本38可以是分层的,并且因此将其作为命令的分层序列来对待,这个命令的分层序列被组合以形成可执行的程序。脚本内的所有命令可方便地利用被称为文档类型定义或DTD的所有可能命令的主文件来验证。在执行前通过对照DTD验证XML脚本中的所有命令,保证语法是正确的。
如上所述,将XML解析成比如C++可在控制器部件26内完成,控制器部件26处理所有的系统语言结构。在某些实施例中,可使用微软公司的.NET系统的API类XMLValidatingReader处理脚本的验证,所述XMLValidatingReader将XML语法从头到尾每次一个节点地读进存储器用以验证。可利用.NET的API类XPathNavigator完成实际的解析,它使用W3C文档对象模型或DOM[3]。与仅允许向前解析XML代码的XMLTextReader不同,DOM还允许向后导航。对于大多数基本系统命令来说,仅向前解析是足够的,但是对于需要条件语句或者循环的高级命令来说,还需要向后解析,这意味着DOM风格的解析并将全部代码保持在存储器中。
因此,可提供基本的和高级的两类命令。当其来自模型部件24时可使用基本命令。它们可独立于任何语言结构并且事实上组成了大部分的系统API。另一方面,高级命令需要额外的XML解析,所述额外的XML解析可能会要求多次调用同一命令。另外,某些高级命令(例如条件和循环语句)允许嵌套命令。图4所示的XML脚本38的分层结构通常类似于树。根据脚本布局,其结构可以是浅层的并代表一个或多个灌木,或者可以是深层的并代表树或森林。的确,图4描述了应用于条件语句以及XML脚本本身的嵌套能力。图4中的图解以脚本中的相同方式呈现,该图从左到右和从上到下读取。
在某些实施例中,为了跟踪通过嵌套命令的向前和向后导航,必需知道深度和当前节点。在脚本执行期间,可记录返回值以确定所期望的路径。非期望的路径被抛弃。这通过在一组堆栈中记录信息而实现。对节点的当前指针通过解析条件语句而移进树的更深处。执行完条件语句后的当前深度被推进堆栈。当指针通过嵌套的条件语句向更深处移动或者在完成后向更浅处移动时,当前深度分别被推进堆栈或者从堆栈中弹出。另外,有若干个类似的堆栈以跟踪按条件的返回值。尽管可以有四个用于条件语句的堆栈,但是IF和ELSE语句二者都用一个来跟踪深度,还用一个来跟踪返回值。通过将当前节点的值与堆栈中的当前值进行比较,系统10能够理解甚至最复杂的嵌套结构。
本发明认识到会出现两种其中类结构必须被知道的场合。第一种为用户界面所需,用以显示所有系统API命令的名称和参数。第二种为控制器模块26所需,控制器模块26在执行期间动态地解释系统API命令参数,以传递输入并调用各命令。
图5示出了示范性的用户界面40,其中系统API(实质上是功能性类)的列表42被呈现于右侧方格区,示范的消息框命令的参数被呈现于底部方格区44。通过向上或向下滚动右侧方格区,其他命令的参数也可在底部方格区中被显示。还可方便地设置工具条46。也可设置主方格区50。
每个系统API命令不必要求控制器26内单独的解析函数来处理每个命令的可变数目的参数,而是共用.NET API的通用解析函数来动态地解释和调用系统API命令。这可通过被称作自省的面向对象部件概念以及动态调用来实现。取自XML脚本的输入被动态地传递到系统API命令以作动态调用。这意味着输入(XML脚本)可改变而无需重新编译控制器部件26。通常,在未应用这些概念的情况下,对于通过常规应用程序的静态调用,参数值将是固定的。只有高级命令需要明确的、单独的解析函数。
上文已提到.NET内部过程调用。通过直接或者间接引用的系统API完全被包含在模型部件24内。没有直接被包含在模型部件24内的所有API命令被要求具有将控制器部件26指向它们各自位置的包装函数。在某些场合,可能需要许多嵌套的包装函数,它们再次使用已有的、几乎未修改的代码和编程成果。在一些实施例中,独立于语言的代码的再次使用可通过微软公司的部件对象模型(COM)而方便实现。
在一些非限定性的实施例中,没有提供需要增加逻辑的用户界面。一旦部件被注册,该部件就可加以应用,如同代码是直接在模型部件24中的相关类内一样。图1所示的数据库18的数据输入可通过具有包含了专用于其任务的GUI字段的用户界面的COM对象方便实现。它可以是单个功能块,但是它本身不是完整的应用程序,而是一个对象,例如是包含用户交互和后端功能性的应用程序块。它不能就这样使用,因此必须在使用前将其置于容器中。本系统10提供了这样一个称作ControlForm的容器。该类基本上是具有两个按钮-OK和Cancel的窗口。实际的功能性来自被置于ControlForm容器中的一个或多个可交换的COM对象。作为其多态性的一例,该容器对象是一个窗口,该窗口在一种场合请求数据库18登录数据输入而在另一场合请求数据库18项目选择数据输入。一个显示可交换部件的容器之使用意味着,通用容器逻辑以及OK与Cancel按钮不需要设在每个COM部件内。它还意味着,如果需要也不必专门创建唯一的新表格与部件就可在同一表格上显示不止一个部件。
根据本发明的原理,各系统API命令最好返回一个告知命令是否正确执行的值,使得根据布尔真或假来解析高级结构成为可能。除了所需要的布尔返回值,各命令还可返回近乎无限的专用于命令的值。.NET的ArrayList结构通过将数据存储为动态可扩展的对象阵列而使之成为可能。对象可以是允许转换到任何其他类型的类属.NET结构。
可以只是临时将Arraylist返回结构保持在存储器中。对于每个由XML脚本执行的命令,其返回结构被下一命令的返回结构所代替。这要求在执行系统API命令之后立即保存任何的返回值。在执行高级系统命令时,该过程自动执行。当使用用户定义的变量时,用户可以手动地将返回值从存储器保存到变量中。
在一些实施例中,可提供四种说明用户定义的变量的方法。第一种是通过系统API命令AddVariable,它在运行前需要将变量名与值置于脚本中。各变量类型作为字符串存储,并且各命令内部的每个参数首先作为字符串被读取,稍后通过当前系统命令或通过另一系统命令转换成另一类型。
说明变量的第二种方法是通过系统API命令PromptAddVariable,它与AddVariable类似,但它只在用于变量值的执行时提示用户。该变量名仍然在脚本内说明,并且在运行时固定。
说明变量的第三种方法是通过系统API命令AddVarFromMem,它根据前一命令的ArrayList返回结构中的指定位置存储返回值。这需要对前一命令和可用的返回结构有一些了解。
说明变量的第四种方法是AddMultipleFromMem,它类似于AddVarFromMem,但是允许将前一命令的所有返回值存储到多个用户定义的变量中。
通过利用AddVarFromMem或AddMultipleFromMem,在程序运行时,临时存储的返回值可被保留在存储器中。通过使用上述四个命令的组合,用户可说明变量并且为变量赋值、将用户输入读入变量并将变量指派给另一命令的输出。
系统专用语言命令可包括“If”、“For”和“While”。系统API命令可包括CopyFolder、DeleteFolder、RenameFolder CopyFile、DeleteFile、RenameFile、ExecuteProgram、AddRegKey、RemoveRegKey、CreateFile、WriteToFile、AddIniSection、RemoveIniSection、AddIniKey、RemoveIniKey、Settings、SetStatus、MsgBox、IsFile、IsDir、IsInFile、IsRegKey、IsRegValue、IsIniSection、IsIniKey、IsNT。
以下呈现的是一些所谓的“用例”,它们代表没有经过正式的XML格式化的脚本。
                   1.1创建INI配置文件
Description Create INI file or files for a given recovery tool
Use Case identidier B1
Author
Date 5/01/2003
Revised
Actors Release Engineer
Pre-conditions FI-%Project name%-PAC File-BOM is locked
Actions (Use AddVarToText after each command)
Run Program to generate INI script files
   open VSMS database
   Query Project(GetProject)
   open FI-project-Pac File BOM(GetBOMData?)
   Assign Pac Files(AutoAssignPACFiles)
   Update multiplie(set all to compressed)(SetARCDCompressed?)
   open Program to generate INI script files
   Generate ARCD recovery media Scripts(GenerateARCDScripts)
   Select Drive to generate files to
   View Scripts(Optional)
Check-in INI configuration files(Checkin)
Upload to VSMS database(UploadFiles)
Send Release Mail for INI(DumpText)
    Subject=VAIO INI FILES RELEASE NOTIFICATION % project
name%
  %phase%
  Project
  PC Model
    Build
    INI File name and unique identifier
    list changes from last build
Post-conditions Tested during PAC File Creation process
Includes  Check-In
Upload
Extends
Generalizes
                    1.2创建Pac文件(套装软件)
Description Creates PAC file(s)for software recovery tools
Use Case identifier  B2
Author
Date 5/01/2003
Revised
Actors Release Engineer
Pre-conditions INI file(s)created
Actions Copy files to local drive
  Open browser
  Browse to ARCD Scripts directory
  Execute program to copy individual software locally from the network
  (ExecuteProgram)
  Verify files are copied to local drive
Execute program to package each directory(ExecuteProgram)
Check-in PAC File(s)(CheckIn)
Upload to VSMS database(UploadFiles)
Send Release Mail for PAC File(s)(DumpText)
    Subject=VAIO PAC FILES RELEASE NOTIFICATION % project
name%
  %phase%
   Project
   PC Model
   Phase
   DMI information
   #PAC Files
   PAC File Names
   Changes from Last Build
   Known Issues
   Special Notes
Post-conditions Must be tested during software download and recovery
process
Includes Create INI
Check-In
Upload PAC File(s)
Extends Create-INI
Generalizes
                       1.3创建RDVD恢复媒体
Description Creates RDVD(s)for HDD Recovery machines that have
DVD drives
Use Case identifier B5
Author
Date 5/02/2003
Revised
Actors Release Engineer
Pre-conditions Pac File(s),INI File(s),and Image File(s)are
created
Actions Create PAC File(s)
Create Recovery Partition
Test Recovery Functionality
Copy files to local drive
  Copy PI Contents Local
     Copy Foundation Image files(s)local
     Delete the Minint Folder
     Copy RDVD Boot files to Local
Create ISO File(s)
Create master RDVD(s)
Test
Check-in RDVD(s)
Turn-in RDVD(s)to Software Librarian
Send Release Mail for RDVD
   Subject=VAIO RDVD FILES RELEASE NOTIFICATION % projectname%
   %phase%
   Project
   PC Model
   Phase
   Image Unique identifier
   RDVD Unique identifier
   Recovery partition Unique identifier
   DMI information
   Version
   Media
   Volume Labels
   Changes from Last Build
   Known Issues
   Special Notes
Post ISO File(s)
Post-conditions Must be tested with the correct machine(s),DMI
information
Includes     Check-In
Post ISO(not created yet)
Extends None
Generalizes None
                         1.4创建HRCD恢复媒体
Description Creates HRCD(s)for HDD Recovery machines that do not
have DVD drives
Use Case identifier B6
Author
Date 5/02/2003
Revised
Actors Release Engineer
Pre-conditions Pac File(s),INI File(s),and Image File(s)are created
Actions Create PAC File(s)
Create Recovery Partition
Test Recovery Functionality
Create master HRCD(s)
Create ISO File(s)
Test
Check-in HRCD(s)
Turn-in HRCD(s)to Software Librarian
Send Release Mail for HRCD
    Subject=VAIO HRCD FILES RELEASE NOTIFICATION % project
name%
  %phase%
  Project
  PC Model
  Phase
  Image Unique identifier
  HRCD Unique identifier
    Recovery Partition Unique identifier
    DMI information
    Version
    Media
    Volume Labels
    Changes from Last Build
    Known Issues
    Special Notes
Post ISO File(s)
Post-conditions   Must be tested with the correct machine(s),DMI
information
Includes   Check-In
Post ISO(not created yet)
Extends    None
Generalizes  None
                            1.5登记
Description    Check in any item into VSMS database
Use Case identifier  S1
Author
Date  5/02/2003
Revised
Actors  Release Engineer
Pre-conditions  None
Actions    Check-in an item
Open VSMS database
  Select Software Release/Submit
     Select Vendor
     Select Component/Release Name
     Click Submit
    Fill in the form completely with all applicable data
  Click Submit
Post-conditions None
Includes None
Extends None
Generalizes None
                     1.6加载到VSMS数据库
Description    Upload an item to the appropriate locations
Use Case identifier S2
Author
Date  5/02/2003
Revised
Actors     Release Engineer
Pre-conditions   Item is checked in to VSMS database
Actions    Open VSMS database
   Select Software Release/Query
       Select Vendor
       Select Component/Release Name
       Click on the Unique identifier for the Item
       Select view item
       Click on Upload
       Follow on screen prompts
Post-conditions  None
Includes          None
Extends          None
Generalizes      None
                    1.7加载ISO文件
Description      Upload an item to the appropriate locations
Use Case identifier   S2
Author
Date  5/02/2003
Revised
Actors   Release Engineer
Pre-conditions  None
Actions      Check-in an item
Open VSMS database
  Select Software Release/Query
     Select Vendor
     Select Component/Release Name
  Click Submit
Post-conditions  None
Includes  None
Extends    None
Generalizes  None
尽管这里所示并被详细描述的、特别的“用于建立软件套件的系统和方法”完全能获得本发明的上述对象,但是当会理解,它是本发明目前的优选实施例且因此是本发明广泛考虑的主题的代表,本发明的范围完全包括本领域技术人员显而易见的其他实施例,除了所附权利要求之外,本发明的范围不受任何其他限制,文中以单数形式提到一个元件并意指“仅有一个”(除非明确说明),而是指“一个或多个”。一个装置或方法不必处理本发明试图解决的每一个问题,因为这些问题由本发明的权利要求涵盖。此外,无论元件、部件或方法步骤是否在权利要求中被明确列举,本公开中没有意在奉献于公众的元件、部件或方法步骤。凡本文未明确定义的,权项将给出所有普通的和惯常的含意,它们与本说明及申请档案资料没有冲突。

Claims (10)

1.一种用于为计算机(22)汇编软件包的方法,包括:
将XML结构呈现给用户;
允许所述用户使用所述结构构造XML脚本,所述脚本定义所述软件包的内容;
解析所述脚本以提供C++软件代码;以及
执行所述C++软件代码以自动将所述内容汇编成所述软件包。
2.如权利要求1所述的方法,其中,所述结构是面向对象编程环境中的类。
3.如权利要求2所述的方法,其中包括:在计算机显示器(40)的类窗口(42)中呈现至少某些类,以供用户对其进行选择。
4.如权利要求1所述的方法,其中包括:提示至少与所述软件包的标识有关的信息的输入,以开始所述执行动作。
5.一种软件系统,包括:
模型部件(24),包含用于生成软件应用程序列表的面向对象应用程序编程接口(API);
控制器部件(26),与所述模型部件(24)进行通信并包含分析程序,所述分析程序将所述列表解析成将其执行的代码,以自动将所述应用程序汇编成软件包;以及
查看部件(28),与所述控制器部件(26)进行通信来将对象类呈现给用户,以在生成列表时使用所述对象类。
6.如权利要求5所述的系统,其中,所述列表包含与所述应用程序相关联的存储位置。
7.如权利要求5所述的系统,其中所述API是基于XML的。
8.如权利要求7所述的系统,其中所述代码是C++。
9.如权利要求8所述的系统,其中包括:在计算机显示器(40)的类窗口(42)中呈现至少一些类以由用户对其进行选择的方法。
10.如权利要求9所述的系统,其中包括:对至少与所述软件包的标识有关的信息之输入进行提示的方法。
CN2004800326320A 2003-11-07 2004-10-14 用于建立软件套件的系统和方法 Expired - Fee Related CN1875343B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US51828503P 2003-11-07 2003-11-07
US60/518,285 2003-11-07
US10/964,899 US20050102652A1 (en) 2003-11-07 2004-10-13 System and method for building software suite
US10/964,899 2004-10-13
PCT/US2004/034013 WO2005048100A1 (en) 2003-11-07 2004-10-14 System and method for building software suite

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201010167158XA Division CN101907988B (zh) 2003-11-07 2004-10-14 汇编软件包的方法、设备和系统

Publications (2)

Publication Number Publication Date
CN1875343A true CN1875343A (zh) 2006-12-06
CN1875343B CN1875343B (zh) 2010-06-16

Family

ID=34556427

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201010167158XA Expired - Fee Related CN101907988B (zh) 2003-11-07 2004-10-14 汇编软件包的方法、设备和系统
CN2004800326320A Expired - Fee Related CN1875343B (zh) 2003-11-07 2004-10-14 用于建立软件套件的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201010167158XA Expired - Fee Related CN101907988B (zh) 2003-11-07 2004-10-14 汇编软件包的方法、设备和系统

Country Status (6)

Country Link
US (1) US20050102652A1 (zh)
EP (1) EP1680738A4 (zh)
KR (1) KR101099173B1 (zh)
CN (2) CN101907988B (zh)
HK (1) HK1149348A1 (zh)
WO (1) WO2005048100A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218226A (zh) * 2013-04-08 2013-07-24 北京小米科技有限责任公司 一种处理应用显示界面的方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210066B2 (en) * 2002-12-31 2007-04-24 Sun Microsystems, Inc. Method and system for determining computer software test coverage
US7761843B2 (en) * 2005-07-01 2010-07-20 Ronald Ortscheid Computer source code generator
US8015547B2 (en) * 2006-06-29 2011-09-06 Augusta Systems, Inc. Reconfigurable, hierarchical component-based architecture and framework and methods for rapidly developing sensor device-enabling software applications
US20080005721A1 (en) * 2006-06-29 2008-01-03 Augusta Systems, Inc. Method and System for Rapidly Developing Sensor-Enabled Software Applications
US8095923B2 (en) * 2006-06-29 2012-01-10 Augusta Systems, Inc. System and method for deploying and managing intelligent nodes in a distributed network
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying sensor-enabled software applications
US20080046435A1 (en) * 2006-08-18 2008-02-21 Microsoft Corporation Service discovery and automatic configuration
US20080127128A1 (en) * 2006-10-30 2008-05-29 Daniel Mateescu Type Validation for Applications Incorporating A Weakly-Typed Language
US8538889B2 (en) * 2008-06-25 2013-09-17 Microsoft Corporation Application hierarchy and state manipulation
KR101574603B1 (ko) 2008-10-31 2015-12-04 삼성전자주식회사 컨디셔널 프로세싱 방법 및 장치
US8904276B2 (en) 2008-11-17 2014-12-02 At&T Intellectual Property I, L.P. Partitioning of markup language documents
CN102339219B (zh) * 2010-07-20 2016-08-24 甲骨文国际公司 用于支持面向对象脚本工具的系统和方法
US20130191249A1 (en) * 2012-01-23 2013-07-25 International Business Machines Corporation Personalizing customer response

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5961603A (en) * 1996-04-10 1999-10-05 Worldgate Communications, Inc. Access system and method for providing interactive access to an information source through a networked distribution system
US6272538B1 (en) * 1996-07-30 2001-08-07 Micron Technology, Inc. Method and system for establishing a security perimeter in computer networks
US6311218B1 (en) * 1996-10-17 2001-10-30 3Com Corporation Method and apparatus for providing security in a star network connection using public key cryptography
AUPO847897A0 (en) * 1997-08-08 1997-09-04 Canon Information Systems Research Australia Pty Ltd Network resource access method and apparatus
US6085236A (en) * 1998-01-06 2000-07-04 Sony Corporation Of Japan Home audio video network with device control modules for incorporating legacy devices
US6385651B2 (en) * 1998-05-05 2002-05-07 Liberate Technologies Internet service provider preliminary user registration mechanism provided by centralized authority
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6453353B1 (en) * 1998-07-10 2002-09-17 Entrust, Inc. Role-based navigation of information resources
US6470453B1 (en) * 1998-09-17 2002-10-22 Cisco Technology, Inc. Validating connections to a network system
US6301708B1 (en) * 1998-11-12 2001-10-09 Hewlett-Packard Company Software installation process using abstract data and program files
WO2000061557A1 (fr) * 1999-04-09 2000-10-19 Mochida Pharmaceutical Co., Ltd. Derives de 4-hydroxypiperidine ayant un effet anti-arythmique
US6407753B1 (en) * 1999-05-04 2002-06-18 International Business Machines Corporation System and method for integrating entities via user-interactive rule-based matching and difference reconciliation
US20020152180A1 (en) * 1999-09-10 2002-10-17 Paul Turgeon System and method for performing secure remote real-time financial transactions over a public communications infrastructure with strong authentication
US6678733B1 (en) * 1999-10-26 2004-01-13 At Home Corporation Method and system for authorizing and authenticating users
US7120692B2 (en) * 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US6715144B2 (en) * 1999-12-30 2004-03-30 International Business Machines Corporation Request based automation of software installation, customization and activation
DE10121790B4 (de) * 2000-06-03 2006-11-23 International Business Machines Corp. Softwarekonfigurationsverfahren zur Verwendung in einem Computersystem
US6681391B1 (en) * 2000-06-21 2004-01-20 Microsoft Corporation Method and system for installing software on a computer system
GB2369202B (en) * 2000-08-31 2003-03-19 Sun Microsystems Inc Computer system and method of operating a computer system
WO2002019663A1 (en) * 2000-08-31 2002-03-07 Sun Microsystems, Inc. Computer system and method of operating a computer system
US7036144B2 (en) * 2000-12-21 2006-04-25 Jon Ryan Welcher Selective prevention of undesired communications within a computer network
US20020120459A1 (en) * 2000-12-26 2002-08-29 Appareon System, method and article of manufacture for manipulating the sequence of work item execution in a supply chain system
WO2002054233A1 (en) * 2000-12-28 2002-07-11 Hamilton Scientific, Ltd. Browser container for hypertext application
US7461369B2 (en) * 2001-03-30 2008-12-02 Bmc Software, Inc. Java application response time analyzer
FI110464B (fi) * 2001-04-26 2003-01-31 Nokia Corp IP-tietoturva ja liikkuvat verkkoyhteydet
US20030028664A1 (en) * 2001-08-02 2003-02-06 Kaijun Tan Method and system for secure distribution and utilization of data over a network
US7076797B2 (en) * 2001-10-05 2006-07-11 Microsoft Corporation Granular authorization for network user sessions
US20030088857A1 (en) * 2001-11-06 2003-05-08 Alexander Balva Method for facilitating application development
US6983449B2 (en) * 2002-03-15 2006-01-03 Electronic Data Systems Corporation System and method for configuring software for distribution
US20030195969A1 (en) * 2002-04-04 2003-10-16 Neuman Darren D. System and method supporting infrared remote control over a network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218226A (zh) * 2013-04-08 2013-07-24 北京小米科技有限责任公司 一种处理应用显示界面的方法及装置

Also Published As

Publication number Publication date
CN1875343B (zh) 2010-06-16
EP1680738A4 (en) 2008-11-05
HK1149348A1 (en) 2011-09-30
WO2005048100A1 (en) 2005-05-26
CN101907988B (zh) 2012-11-14
KR20060120670A (ko) 2006-11-27
KR101099173B1 (ko) 2011-12-27
US20050102652A1 (en) 2005-05-12
EP1680738A1 (en) 2006-07-19
CN101907988A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
CN1096637C (zh) 管理类方法名
CN1082208C (zh) 从语言中性源程序产生语言专用接口定义的系统和方法
CN1677365A (zh) 通过属性控制的测试实例继承
CN100351822C (zh) 用简化视图定义、处理和表示用户界面组件的方法和工具
CN1285997C (zh) 链接内容浏览支持装置及其方法
CN1130626C (zh) 支援并行程序的装置以及支持程序编制的方法
CN1794231A (zh) 具有替换格式的上下文无关的文档部分
CN1875343A (zh) 用于建立软件套件的系统和方法
CN1821956A (zh) 用现有内容生成用于执行任务的活动内容向导可执行文件
CN1437110A (zh) 用于断点设定的装置和方法
CN101052948A (zh) 对象过程图应用程序开发系统
CN1959631A (zh) 一种基于itron的应用软件自主装配技术
CN1609793A (zh) 用于计算机平台的编程接口
CN1321275A (zh) 与源代码控制系统交互的方法和设备
CN1811702A (zh) 开发门户应用和自动部署门户应用的系统和方法
CN1908892A (zh) 测试用例设计方法和系统
CN1613240A (zh) 基于网络的软件扩展
CN1578949A (zh) 数据对象导向的储存系统
CN101052956A (zh) 在标记语言环境中使用可撤消命令来编辑文档的文档处理和管理方法
CN1573759A (zh) 公共查询运行期系统以及应用编程接口
CN1834908A (zh) 用于将开发模式应用于基于组件的应用程序的系统和方法
CN1321923A (zh) 画面程序作成方法、记录媒体
CN1476613A (zh) 信息处理设备和方法
CN1740970A (zh) 无缝地比较对象的系统和方法
CN1399737A (zh) 便于组件选择的软件开发系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20100616

Termination date: 20191014

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