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

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

Info

Publication number
CN1875343B
CN1875343B CN2004800326320A CN200480032632A CN1875343B CN 1875343 B CN1875343 B CN 1875343B CN 2004800326320 A CN2004800326320 A CN 2004800326320A CN 200480032632 A CN200480032632 A CN 200480032632A CN 1875343 B CN1875343 B CN 1875343B
Authority
CN
China
Prior art keywords
software
user
script
application program
software package
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
CN2004800326320A
Other languages
English (en)
Other versions
CN1875343A (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的
Figure G2004800326320D00011
计算机)包含一组为每个项目构建的规范而创建的定制软件部件。换句话说,某些计算机必须具有第一套软件,例如文字处理软件、音频-视频软件,而另一组计算机可能被指定具有第二套不同的软件,以此向顾客提供更多的选择。在这里“软件套件”指计算机的完备的和全部的软件集合、以及发布到比如各厂家和测试小组的部件,这些部件作为整个项目发布的部分被组装在一起。
创建每个定制程序组需要许多的步骤,其中涉及多个互相分离的程序。迄今为止,在汇编程序组的各个程序时,工程师们不得不从一个或多个中央数据库中手工定位所期望的程序并且将这些程序复制到比如用于将软件载入到计算机上的光盘上。这些操作费时并且为了从零开始构建新指定的程序组而需要人工干预。此外,由于“构建”不是自动的,因此错误和不一致性不可避免地出现在这样的“构建”中。
经审察而知,理想的方式是提供一种为计算机组汇编软件套件的自动方法。然而,正如这里进一步认识到的,汇编者可能不具备编程语言(例如C++)的专业知识。因此,本发明认识到需要提供一种不需要正规的编程知识就能够自动汇编软件套件的方法。
发明内容
一种为计算机汇编软件包的方法包括将XML结构呈现给用户、并允许用户使用该结构来构造XML脚本,所述脚本定义了软件包的内容。该方法还包括解析脚本以提交C++软件代码以及执行该C++软件代码从而自动地将内容汇编成软件包。
在优选实施例中,该结构是面向对象的编程环境中的类。该类可在计算机显示器上的类窗口中呈现给用户,以供用户对其进行选择。在执行期间,用户可被提示输入与例如软件包的标识相关的信息。
另一方面,用于自动将至少两个软件应用程序汇编成软件包并将其载入到计算机上的系统中,包括用于识别脚本中应用程序的分层的面向对象方法。该系统还包括将脚本解析成可执行代码的方法。提供了用于执行代码以自动汇编软件包的方法。
在又一方面,软件系统包括模型部件,所述模型部件包含可用于生成软件应用程序列表的面向对象应用程序编程接口(API)。控制器部件与模型部件进行通信,并且控制器部件包含分析程序,分析程序将列表解析成用于执行的代码,以将应用程序自动汇编成软件包。查看部件与控制器部件进行通信来将对象类呈现给用户,以在生成列表时使用对象类。
附图说明
参考附图可更好地理解本发明的细节(关于其结构和操作),其中相同的标记指相同的部分,附图中:
图1是本系统的框图;
图2是软件结构的框图;
图3是本发明的通用逻辑单元的流程图;
图4是示出XML脚本分层图的示意图;以及
图5是示出用户显示的屏幕截图。
具体实施方式
首先参见图1,示出的是一般表示为10的系统,其中包括载入定义计算机12,所述载入定义计算机12具有一个或多个输入装置14(例如鼠标、键盘等)以及一个或多个输出装置16(例如计算机监视器、打印机、网络等)。载入计算机12与一个或多个软件应用程序的数据源(例如载入数据库18)进行通信,以将应用程序汇编成程序组或软件包,所述的程序组或软件包可被复制到例如光盘20上用于将这些软件应用程序载入到目标计算机上,例如可以是比如Sony电脑的膝上型计算机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 identifier  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%project
name%
   %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 (9)

1.一种用于为计算机(22)将至少两个软件应用程序汇编成软件包的方法,包括:
将XML结构呈现给用户,所述结构是用于获得应用程序的、面向对象编程环境中的类;
允许所述用户使用所述结构构造XML脚本,所述脚本定义所述软件包的内容,以便包括通过所述用户使用的、用于构造所述脚本的所述结构而获得的应用程序;
解析所述脚本以便提供C++软件代码;以及
执行所述C++软件代码以便自动将所述脚本定义的应用程序汇编成所述软件包。
2.如权利要求1所述的方法,其中包括:在计算机显示器(40)的类窗口(42)中呈现至少某些类,以便供用户对其进行选择。
3.如权利要求1所述的方法,其中包括:提示至少与所述软件包的标识有关的信息的输入,以便开始所述执行动作。
4.一种用于为计算机将至少两个软件应用程序汇编成软件包的系统,包括:
模型部件(24),包含用于生成软件应用程序列表的面向对象应用程序编程接口(API);
控制器部件(26),与所述模型部件(24)进行通信并包含分析程序,所述分析程序将所述列表解析成将其执行的代码,以便自动将所述应用程序汇编成软件包;以及
查看部件(28),与所述控制器部件(26)进行通信来将用于获得应用程序的对象类呈现给用户,以便在生成列表时使用所述对象类。
5.如权利要求4所述的系统,其中,所述列表包含与所述应用程序相关联的存储位置。
6.如权利要求4所述的系统,其中所述API是基于XML的。
7.如权利要求6所述的系统,其中所述代码是C++。
8.如权利要求7所述的系统,其中包括:在计算机显示器(40)的类窗口(42)中呈现至少一些类以便由用户对其进行选择的单元。
9.如权利要求8所述的系统,其中包括:对至少与所述软件包的标识有关的信息之输入进行提示的单元。
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 2004-10-13
US10/964,899 US20050102652A1 (en) 2003-11-07 2004-10-13 System and method for building software suite
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 CN1875343A (zh) 2006-12-06
CN1875343B true 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)

Families Citing this family (14)

* 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
US7735060B2 (en) * 2006-06-29 2010-06-08 Augusta Systems, Inc. Method and system for rapidly developing and deploying 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
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
CN103218226A (zh) * 2013-04-08 2013-07-24 北京小米科技有限责任公司 一种处理应用显示界面的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020013939A1 (en) * 1999-12-30 2002-01-31 International Business Machines Corporation Request based automation of software installation, customization and activation
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
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
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
US20020174421A1 (en) * 2001-03-30 2002-11-21 Zhao Ling Z. Java application response time analyzer

Family Cites Families (25)

* 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
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
EP1182192A4 (en) * 1999-04-09 2002-06-05 Mochida Pharm Co Ltd 4-HYDROXYPIPERIDINE DERIVATIVES WITH ANTI-ARRHYTHMIC EFFECT
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
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
WO2002054233A1 (en) * 2000-12-28 2002-07-11 Hamilton Scientific, Ltd. Browser container for hypertext application
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
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
US20020013939A1 (en) * 1999-12-30 2002-01-31 International Business Machines Corporation Request based automation of software installation, customization and activation
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
US20020174421A1 (en) * 2001-03-30 2002-11-21 Zhao Ling Z. Java application response time analyzer

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MICHAEL R. WICK.Kaleidoscope:using design patterns in CSI.ACM SIGCSE Bulletin,Proceedings of the thirty-second SIGSE technical symposium on Computer Science Education,33 1.2001,33(1),258-259.
MICHAEL R. WICK.Kaleidoscope:using design patterns in CSI.ACM SIGCSE Bulletin,Proceedings of the thirty-second SIGSE technical symposium on Computer Science Education,33 1.2001,33(1),258-259. *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN100354823C (zh) 用于创建、管理和使用代码段的系统和方法
US20090083268A1 (en) Managing variants of artifacts in a software process
US7600182B2 (en) Electronic data capture and verification
CN1875343B (zh) 用于建立软件套件的系统和方法
Said et al. A method of refinement in UML-B
France et al. Providing support for model composition in metamodels
US20070174814A1 (en) System and method for build script generation in a software development environment
US20090006987A1 (en) Visual design tools for portal content creation
US20050177828A1 (en) Restore media build automation
US7519947B2 (en) Orchestration designer
JP2013518321A (ja) パターンベースのユーザインターフェース
Taulavuori et al. Component documentation—a key issue in software product lines
JP4330559B2 (ja) グリーン調達装置及びグリーン調達処理プログラム
Gassner Flash Builder 4 and Flex 4 Bible
JP2000357082A (ja) 企業環境において展開記述子を実施するための方法と装置
Weathersby et al. Integrating and extending BIRT
Kaur et al. Candidate process models for component based software development
Dong et al. Design pattern evolutions in QVT
Sheldon et al. Professional Visual Basic 2012 and. NET 4.5 Programming
Geraldino et al. The JGOOSE Tool.
Coïc et al. Modelica, FMI and SSP for LOTAR of Analytical mBSE models: First Implementation and Feedback
Leonard et al. SQL Server 2012 integration services design patterns
Japikse et al. Building Web Applications with. NET Core 2.1 and JavaScript: Leveraging Modern JavaScript Frameworks
Vogel Practical code generation in. NET: covering Visual Studio 2005, 2008, and 2010
US11941386B2 (en) Flexible provision of multi-application content

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