CN101809563B - 分布式、可扩展应用程序的创建和部署 - Google Patents

分布式、可扩展应用程序的创建和部署 Download PDF

Info

Publication number
CN101809563B
CN101809563B CN200880109406.6A CN200880109406A CN101809563B CN 101809563 B CN101809563 B CN 101809563B CN 200880109406 A CN200880109406 A CN 200880109406A CN 101809563 B CN101809563 B CN 101809563B
Authority
CN
China
Prior art keywords
assembly
service
apmb package
available
data
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
CN200880109406.6A
Other languages
English (en)
Other versions
CN101809563A (zh
Inventor
A·C·S·沈
C·J·拜特尔
R·W·汤姆
R·B·戈皮纳特
B·C·布洛姆奎斯特
M·卡尼甘蒂
D·邱
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101809563A publication Critical patent/CN101809563A/zh
Application granted granted Critical
Publication of CN101809563B publication Critical patent/CN101809563B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Abstract

创建分布式应用程序包括从远程服务器群集上可用的组件的列表中选择一组组件。从远程服务器群集接收安装所选组件所需的数据。响应于所接收到的数据创建指令的列表。随后存储指令的列表。处理指令的列表以提取安装所选组件所需的数据。将安装所选组件所需的数据传输到远程服务器群集以允许将组件安装在远程服务器群集上。

Description

分布式、可扩展应用程序的创建和部署
背景
安装在分布式计算网络上的软件允许用户创建利用主存在分开的服务器群集上的多个服务的端对端应用程序和解决方案。这些端对端应用程序可包含诸如商业数据、页面设计、页面布局、以及业务逻辑等组件,其各自都可任选地分布在不同服务器群集上。由于这些应用程序的分布式特性,其部署在诸如协调、认证、内容保真、冲突管理、以及可伸缩性等领域造成了各种困难。例如,随着可用服务的数量快速增长,这些应用程序必须按照可将未来的服务容易并灵活地合并到该应用程序中同时保留与之前创建的应用程序的完全向后兼容性的方式扩展。
发明概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
创建分布式应用程序的方法包括从远程服务器群集上可用的组件的列表中选择一组组件。从远程服务器群集接收安装所选组件所需的数据。响应于所接收到的数据创建指令的列表并存储该指令的列表。
一种有形计算机可读介质具有用于创建分布式应用程序的计算机可读指令。这些指令包括从分布式计算机系统上可用的服务的列表中选择服务。选择所选服务上可用的组件。从分布式计算机系统接收涉及所选组件的安装数据。响应于所接收到的数据创建包文件。存储该包文件。
用于集中化分布式计算应用程序的控制的系统包括处理器和计算机可读介质。系统还包括存储在计算机可读介质上并在处理器上执行的操作环境。还包括存储在计算机可读介质上并在处理器上执行的解决方案框架。该解决方案框架被配置成从服务器群集上可用的服务的列表中选择服务。选择所选服务上可用的组件。从所选的服务处接收涉及所选组件的安装数据。响应于所接收到的数据创建包文件。随后将该包文件存储在计算机可读介质上。
通过阅读以下具体实施方式并查阅相关联的附图,这些和其他特征和优点将是显而易见的。可以理解,前述一般描述和以下详细描述均仅是说明性的,且不是限制性的。此处所述的各实施例可被具体化为方法、设备、或其组合等。同样,各实施例可采用完全硬件实施例、完全软件实施例或者结合软件和硬件方面实施例的形式。因此,本文并非是局限性的。
附图简述
在附图中,相同标号表示相同元素。
图1是用于实现此处所述的计算机实现的方法的操作环境的框图;
图2是示出用于实现解决方案框架的操作环境的框图;
图3是示出包文件的实现的图示;
图4是示出选择一组组件的操作的流程图;
图5是示出创建包文件的操作的流程图;以及
图6是示出在分布式计算环境上部署包文件的操作的流程图。
各实现的详细描述
现在参考其中相同的标号代表相似的元素的附图,描述各实施例。具体地,图1和相应的讨论旨在提供对在其中可以实现各实施例的合适计算环境的简要、概括描述。
一般而言,提供负责在最终用户与服务群集之间接口的解决方案框架。解决方案框架可集中化分布式应用程序的创建和部署两者。在分布式应用程序的创建和部署两者中存在许多优点。例如,分布式应用程序可利用位于多个不同远程服务器上的多个服务上的组件以将许多分开的服务的功能组合成单个应用程序。
解决方案框架通过担当创建用户界面与服务的群集之间的中介来集中化分布式应用程序的创建。然而,在允许用户创建集成具体服务的包文件之前,用户可能需要向服务认证。解决方案框架还可通过将用户凭证信息传递到服务器群集中的每一个来集中化此认证进程。解决方案框架可随后允许被认证的用户通过选择在服务群集中可用的各组件来定义分布式应用程序。响应于应用程序的定义,创建包文件。通过使用基于文件的内容被包括在文件内的水印元数据来维护包文件的内容保真度。
在安装应用程序之前,可将包文件从定义该应用程序的用户处传输到另一用户处,或仅仅由定义该应用程序的用户安装。在安装期间,冲突解决也可由解决方案框架集中化地控制。一旦解决了冲突,解决方案框架可向所有相关服务群集通信并基于所定义的包文件将组件安装在正确位置。
现参考图1,将描述在各实施例中利用的计算机100的说明性计算机体系结构。图1所示的计算机体系结构可被配置为台式或移动计算机,并且包括中央处理单元5(CPU)、包括随机存取存储器9(“RAM”)和只读存储器(“ROM”)10的系统存储器7、以及将存储器耦合至CPU 5的系统总线12。
基本输入/输出系统存储在ROM 10中,它包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机100还包括用于存储操作系统16、应用程序24和解决方案框架26等的大容量存储设备14,这将在以下更为详尽地描述。
大容量存储设备14通过连接至总线12的海量存储控制器(未示出)连接到CPU 5。大容量存储设备14及其相关联的计算机可读介质为计算机100提供非易失性存储。虽然此处包含的计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质。
作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其它介质。
根据各实施例,计算机100可以使用通过诸如因特网等网络18与远程计算机的逻辑连接在网络化环境中操作。计算机100可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其它类型的网络和远程计算机系统。计算机100还可以包括用于接收和处理来自多个其它设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图1中示出)。
类似地,输入/输出控制器22可以为显示屏28、打印机或其它类型的输出设备提供输出。
如前简述地,多个程序模块和数据文件可以存储在计算机100的大容量存储设备14和RAM 9内,包括适于控制联网的个人计算机操作的操作系统16,如华盛顿州雷蒙德市的微软公司的WINDOWS VISTA操作系统。大容量存储设备14和RAM 9还可以存储一个或多个程序模块。具体地,大容量存储设备14和RAM 9可以存储一个或多个应用程序24。例如,大容量存储设备14可存储解决方案框架26。解决方案框架26集中化分布式应用程序的部署和安装。
图2示出解决方案框架26在其中操作的环境的实现。解决方案框架26工作可耦合到服务的群集230。服务的群集230可通过诸如因特网或外联网等网络耦合到解决方案框架26。服务的群集230可包括N个独立服务——服务232、234和236。可将各个服务存储在分开的位置。例如,可将服务230存储在第一位置处的第一服务器上,且可将服务240存储在第二位置处的第二服务器上。在其它实现中,可将多个服务存储在单个位置处。因此,解决方案框架可独立于各个服务的位置来操作。
每一服务可提供各种形式的功能。例如,服务可包括商业数据、页面设计或布局。在其它示例中,服务可包括业务逻辑。在另一些其它示例中,服务可包括任何其它形式的功能。
解决方案框架26还可耦合到创建界面210和部署界面220。创建界面210可提供允许用户定义包括一组所选服务的包文件的界面。部署界面220可提供允许用户部署包文件以安装一组所选服务的界面。在某些实现中,这些界面可以是以诸如超文本标记语言(HTML)或可扩展标记语言(XML)等标记语言编码的web界面。在其它实现中,这些界面可是以诸如C#或Java等其它语言编码的。
创建界面210可位于第一位置处的第一计算环境上并允许第一用户创建包文件,而部署界面220可位于第二位置处的第二计算环境上并允许第二用户部署包文件。在此类实现中,可将包文件从第一计算环境传输到第二计算环境。此传输可通过任何方式的文件传输来达成。例如,可将文件编码在计算机可读介质上,如物理地传输到第二计算环境的盘。在其它示例中,可通过两个计算环境之间的网络连接电子地传输文件,如通过在因特网上发送的电子邮件附件的方式。
在其它实现中,创建界面210和部署界面220可位于同一计算环境上。在此类实现中,同一用户既可创建又可部署来自相同计算环境的包文件。此外,在此类实现中,可避免以上所需的包文件的传输。
因此,解决方案框架26管理并集中化包文件和创建和包文件的部署两者。
图3示出包文件300的实现。包文件300可包括从位0到位767的768位。包文件300可包括从位0到位31的头部部分。包文件300还可包括描述所选组件的从位32到位63的清单。清单可包括从服务器群集230接收信息,这些信息描述关于可由服务使用以检测潜在冲突和组件可用性的组件的信息。例如,清单可包括由每一服务群集在小包创建时刻返回的描述小包中的组件的信息的一部分。以即使在没有物理小包的情况下,清单中的元信息仍可用于检测冲突的方式来设计清单。在头部和清单之后,包文件300可包括从位64到位127的净荷。如以下参考图5更详细地描述地,包文件300的净荷部分包括从所选服务接收的信息。
为了安全性,包文件300可包括诸如512位密钥等从位128到位639的公钥。为了进一步的安全性并启用文件完整性的验证,如以下参考图6详细描述地,包文件300可从位640到位767包括诸如加密128位安全散列算法5(SHA-I)散列等的水印。在其它实施例中,水印可包括消息摘要算法5(MD5)散列。散列可通过将任何散列算法应用到包文件内的净荷和清单来创建。
解决方案框架操作
现在参考图4,将描述用于定义要被包括在分布式应用程序中的组件集合的说明性进程400。
当阅读对在此提供的例程的讨论时,应当理解,各种实施例的逻辑操作被实现为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算机系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。
在起始操作之后,进程前进至操作410且在解决方案框架26处接收服务的列表。此进程可在例如用户在创建界面210上浏览至包创建页面时被触发。解决方案框架可随后对服务群集230作出调用,以请求可用服务的列表。为确定具体服务是否是可用的,解决方案框架26可集中化地仲裁创建界面210与服务群集230内的服务中的每一个之间的许可。例如,解决方案框架26可向服务群集230传输用户的简档并作为响应接收用户可访问的服务的集合。因此,可用性可依赖于联网到解决方案框架26的服务以及各个用户许可。
在解决方案框架26接收到并最终化可用服务的列表之后,进程前进至操作420,并选择第一服务。
可响应于从创建界面210接收到的指示用户查看服务内的组件的请求来选择该服务的命令来选择服务。一旦选择了服务,进程即前进至操作430,其中收集组件类型的列表。在此操作期间,解决方案框架26向所选服务传送传输所选服务上可用的各个组件类型的列表的请求。类型信息可包括描述可用组件的类型的信息和描述可用于选择各个组件的用户界面的信息。在某些实现中,此信息可包括用于选择专用于该服务的组件类型和组件的定制用户界面。
进程随后前进至操作440,其中收集了可用组件的列表。类似于上述服务的可用性,组件的可用性可不仅取决于组件是否连接到解决方案框架26,而且还取决于许可检查。
进程随后前进至操作450,其中处理接收到的、与所选组件相关联的类型信息并将其传输到创建界面210,在创建界面210中向用户呈现选择界面。响应于从所选服务接收到的类型信息来创建此选择界面,以使得可显示定制选择界面以便于选择可用组件的具体类型。此定制界面可包含供用户向所选组件输入任意参数的机制。这些参数可担当向解决方案框架、服务群集描述封装所选组件的方式的其它元信息。
进程随后前进至操作460,其中用户使用在图2的创建界面210上呈现的选择界面来选择所需组件。在某些实现中,在此操作期间,向服务群集230传输并在服务群集230处接收所选组件的列表。在其它实现中,不向服务群集230传输所选组件的列表直到该进程在操作470之后对每一所选服务完成。
移至操作470,作出关于是否选择了其它服务的判定。如果用户选择了其它服务,则进程返回到操作420,且为下一所选服务重复界面生成和组件选择进程。如果用户未选择其它服务,则进程继续至操作480。
继续到操作480,如以下参考图5更详细地描述地,将所有小包组合并格式化成单个包文件。随后该进程前进至结束操作并返回以处理其它动作。
现在参考图5,将描述用于创建诸如在操作480创建的包文件等包文件的说明性进程500。
在起始操作之后,进程前进至操作510且所选组件的列表由解决方案框架26处理。可在解决方案框架26处从创建界面210接收所选组件的列表。可例如根据图4中示出的进程400来创建所选组件的列表。
该进程随后前进至操作520,其中选择所选组件位于其中的第一服务。此选择是其中解决方案框架26迭代通过所选组件的列表上的各组件被包括在内的所有服务的自动进程的一部分。因此,服务可在没有用户通过创建界面210的介入或输入的情况下由解决方案框架26直接选择。一旦解决方案框架26选择了第一服务,该进程即前进至操作530,其中将与所选服务相关联的组件的描述从解决方案框架传输到第一所选服务。即,解决方案框架26向服务传输位于用户所选服务内的组件的列表。
一旦该服务接收了组件的列表,进程即前进至操作540,其中服务通过传输包含与所选组件相关联的信息的小包来对请求作出响应。小包可包括包含所请求的数据以及描述关于所请求的数据的元信息的清单的二进制数据流。
在操作550,作出是否要选择另一服务的判定。如果解决方案框架26循环并处理了处理所有所选组件所需的服务,则不需要选择其它服务且进程继续至操作560。如果解决方案框架26未对所选组件循环通过所有服务,则进程返回到操作520,并选择下一服务。在其它实施例中,可异步地执行此进程。即,其中解决方案框架26同时调用所有服务以接收小包并随后在其返回时组装它们的多线程环境。因此,此进程可按异步或线性/顺序两种方式执行。
在操作560,将所接收到的小包添加到包文件中。例如,可将小包串接在一起并添加到包文件300的净荷部分中。在其它实现中,可在小包被包括到包文件300的净荷部分内之前执行对小包的其它处理。
在操作570,将水印添加到包文件300。在某些实现中,水印可仅是从小包创建的散列。在其它实现中,可从小包和被包括在包文件中的诸如头部部分、清单部分或诸如密钥等安全性部分等其它数据创建水印。在某些示例中,水印可使用SHA-I散列算法来创建。因此,散列之后可用于验证数据的完整性,包括确定包文件300是否被篡改。随后该进程前进至结束操作并返回以处理其它动作。
现在参考图6,将描述用于部署包文件300的说明性进程600。
在起始操作之后,该进程前进至操作610,其中在解决方案框架26处从部署界面220接收包文件300。在某些示例中,可在包文件300的创建期间系统接收包文件300时从系统直接向解决方案框架26传输包文件300。这可发生在其中创建包文件300的用户也正在部署它的情况下。在其它示例中,可从不同用户处向解决方案框架26传输包文件300。例如,包文件300可在创建界面210处由第一用户接收,且随后在压缩盘(CD)上被传输或使用电子邮件发送给部署界面220处的第二用户,在部署界面220处包文件300随后被传输到解决方案框架26。
一旦在解决方案框架26接收了包文件300,则进程即前进至操作620。在操作620,作出包文件300是否有效的判定。可参考水印来作出此判定。例如,如果包文件300在各传输期间损坏了,或包文件300被有意地篡改了,则水印可能不再与包含在包文件300内的数据正确匹配。在其它示例中,可使用其它准则来确定包文件是否有效。例如,可对文件扩展名是否被更改进行参考。在其它示例中,可对文件大小进行参考。即,可分配默认最大文件大小且可将任何大于默认文件大小的文件标记为无效。因此,包文件300是否有效的判定可部分取决于水印并部分取决于包文件300的其它特性。因此,如果包文件300是有效的,则进程前进至操作630,其中处理继续。
如果包文件300不再有效,则进程前进至操作680,其中部署异常中止且流程继续至结束操作。在某些示例中,异常中止操作680可包括在部署界面向用户呈现错误信息。在其它示例中,异常中止操作680还可包括自动错误纠正以使可纠正的错误被解决方案框架26自动纠正且该进程可以继续。
在操作630,处理了包文件300并提取了净荷。处理该净荷以确定需要哪些服务。解决方案框架26随后确定由包文件所需的所有服务是否都是可用的。如果被包括在包文件300内的组件驻留在一特定服务上,则需要该服务。例如,如果创建包文件300时与部署包文件300时之间的时间流逝了,则在服务群集230中可用的服务中的一个或多个可能不再可用。
如上所述,如果例如部署包文件300的用户不具有访问特定服务的许可,或如果服务从网络断开,则服务可能不再可用。如果所需服务是不可用的,则该进程前进至操作680,其中部署异常中止。如果所有所需的服务都是可用的,则该进程前进至操作640。
在操作640,选择了第一服务。此选择是其中解决方案框架26迭代通过由包文件300的净荷中的组件利用的所有服务的自动进程的一部分。因此,服务可在没有来自用户通过部署界面220的介入或输入的情况下由解决方案框架26直接选择。一旦解决方案框架26选择了第一服务,该进程即前进至操作650,其中执行了冲突检查。
在操作650,可将包文件300的内容传输到服务群集230。在某些实现中,可仅传输清单以节省代价高昂的传输时间。清单可包括由每一服务群集在小包创建时刻返回的描述小包中的组件的信息的一部分。以即使在没有物理小包的情况下,清单中的元信息仍可用于检测冲突的方式来设计清单。每一服务随后检查包文件300的内容(或其它实现中的清单)并向解决方案框架26报告组件细节、组件冲突、以及用户可能在包文件300的部署期间遇到的任何其它部署问题。通过向解决方案框架26回报此信息,可集中化冲突检查进程的控制。如果冲突存在,则该进程前进至操作670。如果没有冲突存在,则该进程前进至操作660且部署进程继续。在其它实施例中,可异步地执行冲突检查的进程。即是,其中解决方案框架26同时检测冲突的多线程进程。因此,此进程可按异步或线性/顺序两种方式执行。
在操作670,作出冲突是否可由解决方案框架自动纠正的判定。如果解决方案框架可自动纠正冲突,则解决方案框架可随后自动纠正该冲突且该进程可继续至操作660。在某些实现中,可通过部署界面220向用户呈现警告消息以向用户告知被纠正的冲突。如果解决方案框架26不能自动纠正该冲突,则可向用户呈现错误消息以指示该致命冲突,且进程前进至操作680,其中部署异常中止。在其它实现中,可给予用户自动覆盖任何冲突以重写冲突组件的能力。在此类实现中,用户可能需要在尝试部署包文件300之前这样做,且如果冲突发生,则可使用来自包文件300的新组件来重写组件。
在操作660,通过向服务传输涉及所选组件的小包来部署所选服务的各组件。每一小包可包括专用于该服务的一系列二进制数据。所选服务可知晓如何将数据流去串行化成用于部署的相关数据。一旦在服务上部署了数据,该进程继续至操作690。
在操作690,作出是否要选择另一服务的判定。如果必须将其它组件部署在另一服务上,则进程返回到操作640,并选择下一服务。如果部署了所有组件,则进程前进至结束操作。
在其它实现中,可在将任何小包从解决方案框架26传输到服务群集230之前处理所有所选组件以检查冲突。例如,可循环通过所有服务,在冲突信息被集中化处理的解决方案框架处收集的冲突信息,且如果清除了这些冲突则将小包传输到服务群集230。以此方式,可集中化地处理所有冲突。
此外,可执行部署后进程。例如,在部署小包之后,每一服务群集可报告关于所部署的组件的信息。可随后将此部署后信息传送回每一服务群集。因此,所有服务群集在整个包的部署完成之后再次通信。这允许向服务群集通知部署在整个系统之间的所有组件。以此方式,每一群集可基于此信息执行部署后操作。例如,第一服务群集和第二服务群集中的组件可以是彼此非常紧密地相关的,且通过知晓彼此相关的最终部署信息,服务可执行增强这是端对端、紧密连系的分布式应用程序的部署而非许多隔离的部分的部署的事实的业务逻辑。
以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。

Claims (19)

1.一种用于创建分布式应用程序的方法,所述方法包括:
从在远程服务器群集(230)上可用的组件的列表中选择一组组件;
从所述远程服务器群集的不同服务(230)接收(410)安装所选组件所需的数据;
响应于所接收到的数据创建(480)用于创建所述分布式应用程序的指令的列表;以及
存储所述指令的列表;
其中从在远程服务器群集(230)上可用的组件的列表中选择一组组件还包括:
选择(420)在所述远程服务器群集(230)上可用的服务;
接收(440)在所选服务上可用的组件的列表;以及
选择(460)在所选服务上可用的组件。
2.如权利要求1所述的方法,其特征在于,存储所述指令的列表还包括:
在所述指令的列表中编码所接收到的信息;以及
在所述指令的列表中编码(570)水印。
3.如权利要求1所述的方法,其特征在于,选择在所选服务上可用的组件包括接收专用于在所选服务上可用的组件的类型的选择界面数据。
4.如权利要求1所述的方法,其特征在于,还包括:
处理所述指令的列表以提取安装所选组件所需的数据;以及
将安装所选组件所需的数据传输到所述远程服务器群集(230)以允许将所述组件安装在所述远程服务器群集(230)上。
5.如权利要求4所述的方法,其特征在于,处理所述指令的列表还包括:
向与所选组件相关联的服务传输所选组件的描述;
接收来自所述服务的冲突信息;
集中化地处理所述冲突信息以确定所选组件内是否存在冲突;以及
响应于集中化处理所述冲突信息,在冲突不存在时,将安装所选组件所需的数据传输(660)到所述远程服务器群集(230)以允许在所述远程服务器群集(230)上安装所述组件。
6.如权利要求5所述的方法,其特征在于,处理所述指令的列表还包括:
在冲突存在时,确定(670)是否可自动处理所述冲突;以及
响应于是否可自动处理所述冲突的判定自动处理所述冲突。
7.一种用于创建分布式应用程序的方法,所述方法包括:
从在分布式计算机系统上可用的服务的列表中选择(420)服务;
选择(460)在所选服务上可用的组件;
从所述分布式计算机系统接收涉及所选组件的安装数据;
响应于所接收到的数据创建(480)用于创建所述分布式应用程序的包文件;以及
存储所述包文件。
8.如权利要求7所述的方法,其特征在于,存储所述包文件还包括:
编码描述所述包文件中的所选组件的清单;
将所述包文件中的安装数据编码(560)为净荷;以及
在所述包文件中编码(570)水印。
9.如权利要求8所述的方法,其特征在于,在所述包文件中编码(570)所述水印还包括创建被包括在所述包文件中的数据的加密散列。
10.如权利要求7所述的方法,其特征在于,选择在所选服务上可用的组件还包括:
接收专用于在所述服务上可用的组件的类型的选择界面数据;以及
将所述选择界面数据传递到用于响应于所述选择界面数据生成选择界面的部署界面。
11.如权利要求7所述的方法,其特征在于,还包括:
处理所述包文件以提取所述安装数据;以及
向所述分布式计算机系统传输所述安装数据以允许安装所述分布式应用程序。
12.如权利要求11所述的方法,其特征在于,处理所述包文件还包括:
向与所选组件相关联的所选服务传输所述清单;
接收来自所选服务的冲突信息;
集中化地处理所述冲突信息以确定(650)冲突是否存在;以及
响应于集中化处理所述冲突信息,向所选服务传输所述安装数据以允许安装所述分布式应用程序。
13.如权利要求11所述的方法,其特征在于,处理所述包文件还包括:
确定所选服务是否可用;以及
在所选服务可用时向所述分布式计算机系统传输所述安装数据以允许安装所述分布式应用程序。
14.如权利要求11所述的方法,其特征在于,处理所述包文件以提取所述安装数据还包括:
基于用户许可确定所选组件是否可用;以及
在所选组件可用时向所述分布式计算机系统传输所述安装数据以允许安装所述分布式应用程序。
15.一种用于创建分布式应用程序的系统,所述系统包括:
用于从在分布式计算机系统上可用的服务的列表中选择服务的装置;
用于选择在所选服务上可用的组件的装置;
用于从所述分布式计算机系统接收涉及所选组件的安装数据的装置;
用于响应于所接收到的数据创建用于创建所述分布式应用程序的包文件的装置;以及
用于存储所述包文件的装置。
16.如权利要求15所述的系统,其特征在于,用于存储所述包文件的装置还包括:
用于编码描述所述包文件中的所选组件的清单的装置;
用于将所述包文件中的安装数据编码为净荷的装置;以及
用于在所述包文件中存储水印的装置。
17.如权利要求15所述的系统,其特征在于,用于选择在所选服务上可用的组件的装置还包括:
用于接收专用于在所述服务上可用的组件的类型的选择界面数据的装置;以及
用于将所述选择界面数据传递到用于响应于所述选择界面数据生成选择界面的部署界面的装置。
18.如权利要求15所述的系统,其特征在于,还包括:
用于处理所述包文件以提取所述安装数据的装置;以及
用于向所述分布式计算机系统传输所述安装数据以允许安装所述分布式应用程序的装置。
19.如权利要求18所述的系统,其特征在于,用于处理所述包文件的装置还包括:
用于向与所选组件相关联的所选服务传输所述清单的装置;
用于接收来自所选服务的冲突信息的装置;
用于集中化地处理所述冲突信息以确定冲突是否存在的装置;以及
用于响应于集中化处理所述冲突信息,向所选服务传输所述安装数据以允许安装所述分布式应用程序的装置。
CN200880109406.6A 2007-09-26 2008-09-12 分布式、可扩展应用程序的创建和部署 Expired - Fee Related CN101809563B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/861,877 2007-09-26
US11/861,877 US20090083732A1 (en) 2007-09-26 2007-09-26 Creation and deployment of distributed, extensible applications
PCT/US2008/076136 WO2009042421A2 (en) 2007-09-26 2008-09-12 Creation and deployment of distributed, extensible applications

Publications (2)

Publication Number Publication Date
CN101809563A CN101809563A (zh) 2010-08-18
CN101809563B true CN101809563B (zh) 2013-03-06

Family

ID=40473096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880109406.6A Expired - Fee Related CN101809563B (zh) 2007-09-26 2008-09-12 分布式、可扩展应用程序的创建和部署

Country Status (7)

Country Link
US (1) US20090083732A1 (zh)
EP (1) EP2203842A4 (zh)
JP (1) JP5269081B2 (zh)
KR (1) KR101574811B1 (zh)
CN (1) CN101809563B (zh)
RU (1) RU2473112C2 (zh)
WO (1) WO2009042421A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840960B2 (en) * 2002-12-17 2010-11-23 Kabushiki Kaisha Toshiba Content distribution method and content distribution package
FR2920935B1 (fr) 2007-09-06 2009-12-11 Miyowa Procede pour echanger des requetes entre l'application informatique d'un terminal mobile et un serveur de messagerie instantanee
FR2923131B1 (fr) * 2007-10-24 2010-01-15 Miyowa Procede et systeme de messagerie instantanee pour terminaux mobiles equipe d'un serveur de presence virtuelle configure pour gerer differentes listes de contacts d'un meme utilisateur
FR2923130A1 (fr) * 2007-10-24 2009-05-01 Miyowa Sa Procede et systeme de messagerie instantanee pour terminaux mobiles equipe d'un serveur de presence virtuelle permettant de gerer automatiquement une session de messagerie instantanee
FR2926176B1 (fr) * 2008-01-08 2014-10-10 Miyowa Reseau de communication de transfert d'informations entre un terminal mobile et des serveurs sources, ainsi que terminal et procede de gestion de transfert d'informations dans un tel reseau.
US20100179982A1 (en) * 2009-01-15 2010-07-15 Miyowa Method for auditing the data of a computer application of a terminal
US20100228790A1 (en) * 2009-03-03 2010-09-09 Miyowa Method for activating functionalities proposed in a computer terminal
FR2944624A1 (fr) * 2009-04-16 2010-10-22 Miyowa Procede pour autoriser une connexion entre un terminal informatique et un serveur source
KR101812165B1 (ko) 2010-07-06 2017-12-26 엘지전자 주식회사 애플리케이션 확장 방법 및 그 방법을 이용한 영상표시기기
US9286037B2 (en) * 2010-12-29 2016-03-15 Microsoft Technology Licensing, Llc Platform for distributed applications
US8825864B2 (en) * 2011-09-29 2014-09-02 Oracle International Corporation System and method for supporting a dynamic resource broker in a transactional middleware machine environment
US20130117749A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Provisioning and Managing an Application Platform
US9569274B2 (en) 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
US9766870B2 (en) 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
CN105094758A (zh) * 2014-04-29 2015-11-25 国际商业机器公司 用于避免事务回滚的方法和装置
US10809989B2 (en) 2017-05-05 2020-10-20 Servicenow, Inc. Service release tool
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
CN112114939A (zh) * 2020-09-04 2020-12-22 青岛海信网络科技股份有限公司 一种分布式系统部署设备和方法
US11893120B1 (en) * 2022-09-08 2024-02-06 Soos Llc Apparatus and method for efficient vulnerability detection in dependency trees

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1333507A (zh) * 2000-07-14 2002-01-30 国际商业机器公司 分布式计算机系统中协调器服务的非中断性迁移
US6918112B2 (en) * 2000-11-29 2005-07-12 Microsoft Corporation System and method to facilitate installation of components across one or more computers
US6986135B2 (en) * 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134282A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd プログラム作成方法
US6256771B1 (en) * 1997-10-16 2001-07-03 At&T Corp. Method and apparatus for providing a dynamic service composition software architecture
US6330710B1 (en) * 1998-06-19 2001-12-11 At&T Corp. Servlet-based architecture for dynamic service composition
US6718364B2 (en) * 1999-08-10 2004-04-06 Sun Microsystems, Inc. Method and apparatus for expedited file downloads in an applet environment
WO2001082070A1 (en) * 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for finding and displaying linked objects
US7310801B2 (en) * 2000-04-27 2007-12-18 Microsoft Corporation Servicing a component-based software product throughout the software product lifecycle
US7188158B1 (en) * 2000-07-15 2007-03-06 Hewlett-Packard Development Company, L.P. System and method for component-based software development
US7363354B2 (en) * 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
US7340520B1 (en) * 2002-04-01 2008-03-04 Microsoft Corporation System and method to facilitate manageable and agile deployment of services in accordance with various topologies
EP1429513A1 (en) * 2002-12-09 2004-06-16 Koninklijke Philips Electronics N.V. Method and apparatus for searching data in a peer to peer network
US20040148370A1 (en) * 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US7412686B2 (en) * 2003-02-10 2008-08-12 Microsoft Corporation Integrated development environment access to remotely located components
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7260599B2 (en) * 2003-03-07 2007-08-21 Hyperspace Communications, Inc. Supporting the exchange of data by distributed applications
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
WO2005020071A1 (ja) * 2003-08-20 2005-03-03 Japan Tobacco Inc. プログラム生成システム、プログラム生成プログラムおよびプログラム生成モジュール
US20050066324A1 (en) * 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software
CN100407154C (zh) * 2004-04-29 2008-07-30 国际商业机器公司 在分布式网络体系结构中建模和动态部署服务的系统和方法
EP1684170A3 (en) * 2005-01-21 2007-01-24 Outsystems, software em redes, S. A. Software development system and method
US20070050446A1 (en) * 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
CN100416449C (zh) * 2005-04-29 2008-09-03 国际商业机器公司 软件服务提供商自动获得及运行软件服务的方法和装置
JP4126705B2 (ja) * 2005-06-17 2008-07-30 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェア・パッケージを再構成する方法、装置、プログラム
JP2007072712A (ja) * 2005-09-06 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> 利用情報を用いたサービス部品発見システム及び方法
US20070156872A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US7925554B1 (en) * 2006-12-29 2011-04-12 Amazon Technologies, Inc. Using configured application pricing to determine end user fees for use of invocable services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1333507A (zh) * 2000-07-14 2002-01-30 国际商业机器公司 分布式计算机系统中协调器服务的非中断性迁移
US6918112B2 (en) * 2000-11-29 2005-07-12 Microsoft Corporation System and method to facilitate installation of components across one or more computers
US6986135B2 (en) * 2001-09-06 2006-01-10 Cognos Incorporated Deployment manager for organizing and deploying an application in a distributed computing environment

Also Published As

Publication number Publication date
RU2010111569A (ru) 2011-09-27
KR101574811B1 (ko) 2015-12-04
KR20100074149A (ko) 2010-07-01
CN101809563A (zh) 2010-08-18
EP2203842A4 (en) 2011-08-24
EP2203842A2 (en) 2010-07-07
US20090083732A1 (en) 2009-03-26
RU2473112C2 (ru) 2013-01-20
JP2010541070A (ja) 2010-12-24
WO2009042421A2 (en) 2009-04-02
WO2009042421A3 (en) 2009-05-28
JP5269081B2 (ja) 2013-08-21

Similar Documents

Publication Publication Date Title
CN101809563B (zh) 分布式、可扩展应用程序的创建和部署
CN102591597B (zh) 信息处理装置及其控制方法
CN100485673C (zh) 嵌入装置及其控制方法
CN101385011B (zh) 用于提供以不可用字体格式化的文字元素的准确视觉再现的方法
JP6087528B2 (ja) 管理システム、管理装置、画像形成装置、制御方法およびコンピュータプログラム
CN102859510B (zh) 复杂分布式应用程序中的自动化恢复和升级
US10091388B2 (en) Print control system and print control method
US9237120B2 (en) Message broker system and method
EP2972758A2 (en) Cloud services platform
CN103765423A (zh) 收集与本地存储的数据文件相关联的事务数据
CN101842802A (zh) 富客户端和浏览器客户端之间的电子表格协作
US8515981B2 (en) Program distribution server, image forming apparatus, program distribution system, and contract document integration method
US20120078864A1 (en) Electronic data integrity protection device and method and data monitoring system
CN101496000A (zh) 通过web聚合的双向多主同步
EP2933726B1 (en) Apparatus, system and method for application log data processing
CN102594860A (zh) 混合同步和异步数据流
US20130041980A1 (en) Deploying applications in a smart thin client server
CN108616671A (zh) 电子设备、信息分发系统、信息分发方法及存储介质
CN102932476B (zh) 网络存储同步系统
CN103503388B (zh) 一种分布式队列消息读取方法及设备、系统
CN109062599A (zh) 微服务架构下代码更新的管理方法和装置
CN101876905A (zh) 基于前置业务平台的客户端开发系统及其实施方法
CN104427003B (zh) 传送装置、传送方法和中继系统
CN109559107B (zh) 共享车辆结算异常处理方法、车辆、服务器、装置及系统
CN112749124A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150422

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

Effective date of registration: 20150422

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

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

Granted publication date: 20130306

Termination date: 20190912

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