CN107430515B - 开发环境中的可定制类型的可视化框架 - Google Patents
开发环境中的可定制类型的可视化框架 Download PDFInfo
- Publication number
- CN107430515B CN107430515B CN201680016231.9A CN201680016231A CN107430515B CN 107430515 B CN107430515 B CN 107430515B CN 201680016231 A CN201680016231 A CN 201680016231A CN 107430515 B CN107430515 B CN 107430515B
- Authority
- CN
- China
- Prior art keywords
- customization
- elements
- customized
- type
- user interface
- 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
Links
- 238000011161 development Methods 0.000 title claims abstract description 128
- 238000012800 visualization Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 claims description 68
- 230000007246 mechanism Effects 0.000 claims description 40
- 230000008859 change Effects 0.000 claims description 27
- 230000000007 visual effect Effects 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 7
- 238000007726 management method Methods 0.000 description 29
- 230000008520 organization Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 108700041286 delta Proteins 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 229910000906 Bronze Inorganic materials 0.000 description 1
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 241001422033 Thestylus Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000010974 bronze Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- KUNSUQLRTQLHQQ-UHFFFAOYSA-N copper tin Chemical compound [Cu].[Sn] KUNSUQLRTQLHQQ-UHFFFAOYSA-N 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- -1 modules Substances 0.000 description 1
- 230000037081 physical activity Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
在一个示例中,一种开发系统包括:定制部件,被配置为检测用户开发输入以开发计算系统的元素,元素包括在计算系统中建模的类型;系统显示,被配置为生成用户界面显示;以及可视化系统,被配置为标识定制元素的集合、非定制元素的集合、以及针对定制元素中的每一个定制元素的定制类型。可视化系统包括:显示系统控制器,被配置为控制显示系统以生成集成视图用户界面显示,集成视图用户界面显示可视地区分定制元素的集合与非定制元素的集合并且指示定制元素的定制类型。
Description
背景技术
计算系统目前正在广泛使用。一些计算系统相对较大,并且可以包括例如数千个不同的用户界面和数据实体,如表和其他制品。这些计算系统通常在它们被部署在给定的实现中之前而被定制(一些被深度定制的)。例如,可以在各种开发工具上开发计算机程序。许多软件开发人员使用交互式(或集成的)开发环境(IDE)以便开发软件。开发人员使用IDE以便开发计算系统中的类型模型,并以便于定制这些模型。
作为示例,一些计算系统包括企业资源规划(ERP)系统、客户关系管理(CRM)系统、业务线(LOB)系统等。这些类型的计算系统通常包括数千的被建模和定制的不同类型。作为示例,一些这样的系统通常单独地具有数千种不同的形式,更不用说许多其他类型。这样的系统通常还包括允许用户访问系统并执行活动或任务的集合的大量逻辑,以及工作流程和数据实体(例如表),以便在他们正在工作的特定组织中执行它们的任务。
这些系统不是具有大量类型的计算系统的唯一类型。例如,游戏系统或各种各样的其他类型的系统通常还具有在计算系统中被建模的数千种不同类型。
在计算系统中被建模的各种类型被编译(或汇编)到在运行期间运行的程序集。建模的类型可以表示数据或工作流程。例如,计算系统可以将信息存储为实体的集合,其中每个实体代表与组织相关的项目。例如,客户实体可以代表客户。例如,销售订单实体可以代表销售订单。销售报价实体可以代表销售报价。这些仅是说明性的示例。
当这样的计算系统被部署在特定的组织中时,计算系统通常被高度定制以便满足在其中它被部署的特定组织的功能需求。通过示例的方式,不同的组织可能希望在给定的表单上具有表示客户实体的不同字段。此外,例如,不同的组织可能期望在费用报告表单上具有用于计算货币转换的不同逻辑。因此,可以看出,给定的计算系统可以被深度定制,使得其满足正在使用它的给定组织的要求。
计算系统还可以具有多个不同的定制层。例如,已经创建和开发基系统的软件公司可以简单地将系统作为基础产品出售。然后,独立软件供应商(ISV)可以为基础产品生成定制集合,使得该基本产品可以和这些定制被再次出售。增值经销商(VAR)可以添加另一层定制,并且产品的最终终端用户可能与开发合作伙伴建立伙伴关系,其中开发伙伴添加它们自己的定制。
目前,当开发人员或其他程序员生成对基本产品的定制时,定制用于覆盖基本产品中的基本应用模型。这样的覆盖是通过用已经做出的改变编译应用模型(以反映定制)来实现的。
上面的讨论仅被提供用于一般背景信息,并且不旨在被用作为确定所要求保护的主题的范围的辅助。
发明内容
在一个示例中,一种开发系统包括:定制部件,被配置为检测用户开发输入以开发计算系统的元素,元素包括在计算系统中建模的类型;系统显示,被配置为生成用户界面显示;以及可视化系统,被配置为标识定制元素的集合、非定制元素的集合、以及针对所述定制元素中的每一个定制元素的定制类型。所述可视化系统包括:显示系统控制器,被配置为控制显示系统以生成集成视图用户界面显示,集成视图用户界面显示可视地区分定制元素的集合与非定制元素的集合并且指示所述定制元素的所述定制类型。
本发明内容以简化的形式被提供以介绍一些概念的选择,这些概念在下面的详细描述中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于辅助确定所要求保护的主题的范围。所要求保护的主题不限于解决背景技术中指出的任何或所有缺陷的实现。
附图说明
图1是开发通道的一个示例的框图。
图2是具有用于开发基系统的开发功能的开发架构的一个示例的框图。
图3-1是用于生成定制系统的方法的一个示例的流程图。
图3-2图示了基类型的XML文件表示的一个示例。
图4是差异/组合引擎的一个示例的框图。
图5是使用存储的德尔塔来构造定制系统的方法的一个示例的流程图。
图6图示了可视化系统的一个示例。
图7-1和7-2是集成视图的示例的屏幕截图。
图8是用于对开发人员可视化定制和冲突的方法的一个示例的流程图。
图8-1、8-2和8-3图示了已经被定制的示例元件。
图8-4是冲突解决窗口的一个示例的屏幕截图。
图8-5和图8-6是示出层次定制冲突的视图的示例的屏幕截图。
图9-1、9-2和9-3是由生命周期管理系统提供的用户界面的示例的屏幕截图。
图10是用于升级基系统的方法的一个示例的流程图。
图11A是DSL建模系统的一个示例的框图。
图11B是图2示出的架构的一部分的、更详细地图示类型存储的一个示例。
图11C是图2示出的架构的一部分的、更详细地图示应用类型存储和运行时环境的框图。
图11D是图示图11A示出的DSL建模系统的操作的一个示例的流程图。
图12A-12C示出了用户界面显示的示例。
图12D-1至图12D-5(统称为图12D)示出针对DSL的XML的一个示例和针对DSL扩展的DSL的一个示例。
图13是示出了被部署在云计算架构中的、图2中图示的架构的一个示例的框图。
图14-16示出了可以在先前附图中讨论的架构中使用的移动设备的各种示例。
图17是可以在前面附图中阐述的体系结构的各个部分中使用的计算环境的一个示例的框图。
具体实施方式
图1是开发通道100的一个示例的框图。开发通道100可以说明性地包括系统开发人员102、独立软件供应商(ISV)104、增值经销商(VAR)106、伙伴或客户108、运行时环境110、和终端用户112。图1示出了系统开发人员102可以说明性地是设计和开发基系统114(诸如基本业务软件系统)的原始软件制造商。例如,基系统114可以是游戏系统、ERP系统、CRM系统、LOB系统等。
根据系统的类型,可能是在基系统114被部署在运行时环境110之前其被深度定制或扩展,用于由一个或多个终端用户112使用。作为示例,ISV 104通常定制基系统114并使其可用于增值经销商106,增值经销商106他们自己定制基系统114(在其已经由独立软件供应商104定制之后)。还可能是,客户108(诸如终端用户112的组织)期望甚至进一步定制基系统114以满足组织的功能需求,使得其可以在运行时环境110中被成功地部署。备选地或者附加地,客户108可以在进一步定制基系统114中与伙伴合伙。
这种类型的定制可能是有问题的。例如,当系统开发人员102尝试发布对基系统114的更新时,该更新在某些方面可能与终端用户的定制不兼容。因此,如果终端用户尝试安装该更新,则可能会产生问题。此外,即使在系统开发人员102简单地尝试维护基系统114的代码库的情况下,在维护与已经由ISV 104、VAR 106、和/或客户108做出的定制相冲突的情况下这也可能产生问题。
图2是具有用于开发具有在计算系统中运行的应用元素(或对象)的基系统202的开发功能的开发(定制)架构200的一个示例的框图。作为示例,开发架构200可以由ISV104、VAR 106和/或客户108中的任何一个使用以定制基系统202以满足组织的功能需求,使得定制系统204可以成功地被部署在由组织的终端用户208使用的运行时环境206中。在该示例中,架构200可以表示图1示出的开发通道100的任何部分。
图2示出了在一个示例中,基系统202包括模型210。模型210包括容纳对应的元数据212的容器并且也可以具有代码214。在所图示的示例中,模型210包括对应于基系统202内的各种不同类型的应用元素(即,类型)的元数据和代码。根据具体的基系统,模型210可以包括被存储在类型存储装置216中的数千种不同的元素类型。类型可以基于由开发环境220(例如,交互式或集成开发环境(IDE))采用的类型系统框架来定义。
“类型”表示抽象,表示系统中被建模的概念。在一个示例中,架构200采用丰富的层次类型系统,其中基类型可以被扩展以创建更复杂的子类型。基类型包括模型中的基本或原始的部件。基类型的示例包括但不限于整数类型、字符串类型、浮点数类型、枚举值类型、布尔类型等。这些基类型可以被扩展以创建子类型,诸如但是不限于数量类型、货币代码类型、销售价格类型、小时类型等。这些子类型可以进一步扩展以创建更复杂的类型。
例如,类型可以被用于表示组织中(诸如但不限于,ERP或CRM系统中的客户、销售订单、雇员等)的各种抽象或概念或或者以种方式针对组织的具体需求来处理组织信息(如雇用雇员、创建订单、处理批准等)。这些类型的一些示例包括但不限于表(其各自表示保持的对象,诸如销售订单)、类(其包含逻辑)、表单(其代表针对信息的顾客的信息的呈现)、安全角色(表示对顾客的信息的访问控制)、工作流(其表示处理的流程)、菜单项、实体、权限、和定义应用的其他支持概念。这些类型由各自使用特性或属性(例如,键/值对)的集合描述的元素的结构以及用于与结构交互的相关联的操作集合来定义。属性、方法和/或计算的特定结构定义给定元素类型的元素的运行时行为。例如,表对象包含用于保持数据库中应用数据的元数据和代码,并且形成包含元数据和代码的对象,以针对应用用户描述要在各种设备中显示的信息内容,以消耗信息并与应用交互。
以这种方式,每个元素类型具有定义该元素类型的元素的运行时行为的性质、方法和/或计算的特性结构。例如,表单元素类型可以包括名称(例如,“客户表”)和标识客户的特性(例如客户ID、地址等)的性质的集合。此外,在该示例中,表单元素类型可以包括用于计算客户的值的方法和/或用于显示该值的方法。
类型的实例由开发人员218设计的(例如,开发人员218设计客户表或销售订单表单应当是什么样的),并且运行时环境206在运行定制系统204时创建、管理和保持这些类型的特定实例(例如,客户表类型和销售订单类型等),并且为这些实例提供框架和环境以相互交互。
系统202的类型作为在存储介质(诸如计算机文件系统、数据库或云存储装置)中具有定义的模式(例如,可扩展标记语言(XML)、JavaScript对象符号(JSON)、专有模式等)的文档或文件被保持或存储在类型存储装置216中。为了现在的讨论而不是限制,类型存储装置216将被描述为将类型作为XML文件存储在类型存储装置中。当然这仅是通过示例的方式。可以利用其他格式。
在该示例中,用于每种类型的元数据212和代码214被序列化成一个XML文件。也就是说,代码片段(即非结构化字符串)和元数据(即,结构化的性质和值集合)散布在XML文件中。因此,元数据和代码XML文件包括序列化元素结构,每个元素结构都有自己的类型。
开发环境220包括类型访问部件222,类型访问部件222将类型存储在类型存储装置216中,并且从类型存储装置216访问所存储的类型。在一个示例中,类型访问部件222被配置为当类型被存储到类型存储装置216中时将类型序列化到它们的存储(例如,XML文件)表示,并且当它们从类型存储装置216取回用于在开发环境220内的开发时,将存储表示反序列化成它们的物理的、源代码表示。源代码表示可以包括面向对象编程环境中的对象。在开发环境220中可以使用任何合适的编程语言。
为了定制基系统202,开发人员218要求根据组织需要和组织面临的专用要求,类型中的一些或全部需要被定制到不同程度,以在市场中区分它们。
为了促进基系统202的定制,开发人员218使用开发环境220的定制工具224以进行对基系统202的定制。在图2所示的示例中,开发环境220说明性地对应于在其中客户108对基系统114进行定制的环境。然而,应当注意,开发环境220可以是在其中开发通道100(图1所示)中的任何开发人员或任何其他通道中的任何其他开发人员对基系统进行定制的环境。
作为示例,IDE(或其他开发环境)可以包括源代码编辑器、一个或多个构建自动化工具和调试器。一些IDE说明性地包括编译器、解释器、或者编译器和解释器两者。它们可以包括版本控制系统和各种工具以简化图形用户界面的构建。它们还可以包括与面向对象软件开发一起使用的类浏览器、对象浏览器和类层次图。因此,开发人员可以使用IDE来生成代码和元数据,连同对代码和元数据的定制,其可被用于开发在给定组织中使用的系统。
开发人员218可以通过分离的开发人员设备(例如个人计算机、平板计算机、另一移动设备等)或者直接与开发环境220进行交互。开发人员218还可以通过网络(例如,远程地)与开发环境220交互。仅为了示例,在图1中,开发人员218被示出为直接与开发环境220(例如,本地)交互。
在一个示例中,开发环境220包括处理器和/或服务器226、显示系统223(其自身包括用户界面部件225和一个或多个传感器227,并且其也可以包括其他项目229)、差异生成系统236、升级系统242、可视化系统246、定制分析器和冲突检测系统248、以及冲突解决系统250。开发环境220也可以包括其他项目259。
图2示出了各种不同的框。应当注意,框可以被合并,使得每个框执行更多的功能,或者它们可以被划分,使得功能被进一步分布。还应当注意,类型存储装置216在一个示例中可以包括各种不同类型的数据存储装置中的任何一种。此外,数据存储装置中的数据也可以存储在多个附加数据存储装置中。此外,数据存储装置可以本地于访问它们的环境、代理、模块和/或部件,或者它们与其可以是远程的,并且可由这些环境、代理、模块和/或部件访问。同样,一些可以是本地的,而另一些则是远程的。
用户界面部件225生成具有用户输入机制232的用户界面显示230,用于由开发人员218进行交互。开发人员218与用户输入机制218交互以便控制和操纵开发环境220。在一个示例中,开发人员218可以这样做以实现定制工具224或开发环境220的任何其他部件。
传感器227被配置为检测对显示系统223的输入。在一个示例中,系统236、242、246、248和250中的一个或多个还包括被配置为检测对那些系统的输入的传感器。
在一个示例中,处理器和/或服务器226包括具有相关联的存储器和定时电路(未示出)的计算机处理器。计算机处理器是环境220的功能部分,并且由环境220中的其他系统、部件和项目激活并促进环境220中的其他系统、部件和项目的功能。在一个示例中,系统236、242、246、248和250中的一个或多个也可以包括处理器。
用户输入机制232例如通过生成用于感测与环境220的用户交互的用户界面显示230来感测物理活动。用户界面显示可以包括以多种不同方式感测用户输入的用户输入机制,诸如点击设备(例如,计算机鼠标或轨迹球)、键盘(虚拟或硬件)和/或小型键盘。在用于显示用户界面显示的显示设备是触摸感应显示器的情况下,可以提供作为触摸手势的输入。类似地,用户输入也可以说明性地由语音输入或其它自然用户界面输入机构提供。
在一个示例中,开发环境220包括用于在开发环境220内定义和执行各种方法和过程的方法引擎233。方法引擎233促进使用代码生成的自动的框架以驱动生成表示对基系统的改变的德尔塔,存储德尔塔,并将德尔塔应用于基系统的实现以构建定制系统。
如图2所图示的,定制工具224包括类型定制部件234,类型定制部件234使得开发人员218能够定制基系统202的模型210中的类型。为了本讨论的目的,定制将被用于意味着对元数据212或代码214或基系统114的功能的附加的改变,以及非附加的改变。
一种类型的定制包括向给定的元素类型添加元数据或代码。在一个示例中,表单类型的对象可以通过在表单上添加诸如新字段的新属性或者添加用于对表单上输入的数据执行计算或经由表单中的呈现元素来显示数据的新方法而被定制。在另一个示例中,雇员类型的对象可以通过添加“雇用日期”属性或添加用于确定雇员的工资的增加的新方法而被定制。在另一示例中,可以通过向客户添加指示所需服务水平(例如,金客户/银客户/铜客户等)的新字段来定制客户类型的对象。
另一类型的定制包括删除或改变给定元素类型的属性。在一个示例中,表单类型的对象可以通过改变字段的宽度而被定制。在另一个示例中,客户类型的对象可以通过改变属性值(例如,将代表客户的客户ID字段从10改变为15,将标签“客户”改变为“客户端”等)而被定制。例如,为了考虑在其中部署系统的地理位置,客户对象中的客户地址可以被定制为具有更详细的信息。
另一类型的定制包括改变给定元素类型的元数据元素的层次布置。为了说明,在一个特定示例中,表单元素类型的对象包括父节点下的子节点的控件(例如,重置按钮)。父节点包括标记为“通用”的标签。开发人员218可能期望移动在标记为“详细信息”的不同标签下控件。为了实现这一点,开发人员218将与该控件相对应的子节点移动或重定父级到与“详细信息”标签相对应的不同父节点。
当然,这些只是如何对元数据或代码进行定制的示例,也可以进行各种其他定制。
当开发人员218通过定制基系统202内的类型来开发定制的系统204时,定制被存储为表示定制系统204和基系统202之间的类型差异的德尔塔。在一个示例中,差异生成系统236针对由开发人员218定制的每种类型,计算定制系统204中的定制类型与基系统202中的类型的基本形式之间的德尔塔或差异。
在一个实施例中,差异生成系统236使用对象模型来捕获给定类型的实例可以如何改变(诸如在基系统202的版本或不同的定制层之间)。在一个示例中,该对象模型是从元模型中被推导的,该元模型定义了开发环境220内的类型系统框架,其指定在模型210中的各个类型的结构。元模型允许给定对象被在任何时间被检查以确定对对象已经进行了什么定制。在一个示例中,该元模型可以使用域特定语言建模系统235来获得。
一旦定制类型的德尔塔由差异生成系统236计算,则其然后由类型访问部件222序列到XML文件(或其他格式)中。XML文件中的每个元素表示对基系统202中基类型的特定改变。在一个示例中,类型访问部件222使用元模型将德尔塔序列化到XML文件。元模型定义了XML文件的模式。XML文件被存储在类型德尔塔存储装置238中。以这种方式,德尔塔由单独存储的XML文件表示,该XML文件从与针对基系统202的基类型存储的对应的XML文件分离。虽然德尔塔文件是与基系统202的XML文件分离的,其可以被存储在相同的物理数据存储装置(即类型存储装置216)中。在另一示例中,德尔塔文件可以远离基系统202而被存储。
基系统202中的给定类型可以具有多个不同的定制层。例如,多个实体可以各自提供对类型的不同的定制。该类型的多层定制可以应用于元数据或代码的相同部分或元数据的不同部分。关于图1所示的开发通道100,基系统114可以由ISV 104定制,然后由VAR 106和/或客户108进一步定制。因此,类型可以在类型德尔塔存储装置238中具有多个德尔塔文件。每个德尔塔文件包含一层定制。
在特定的示例中,针对雇员表单类型,ISV 104定制对象以包括附加的字段。该定制由存储在类型存储装置216中的第一德尔塔文件来表示。然后,客户108定制雇员表单类型以修改字段的标签。该定制由存储在类型存储装置216中的第二德尔塔文件表示。第一德尔塔文件和第二德尔塔文件两者分别被存储在类型德尔塔存储装置238中。类型存储装置216存储将第一和第二德尔塔文件两者与它们应用的对应雇员表单类型相关联或相映射的信息,以及定义在其中德尔塔被写入的订单的信息。该信息允许以正确的顺序将德尔塔应用于基系统202中的基雇员类型。
通过说明而非限制的方式,存储与底层基XML文件分离的给定类型的德尔塔文件允许类型的对应定制可以容易地与基系统以及类型的定制的其他层隔离。这可以促进德尔塔的版本化以及定制与基系统的物理分离(例如,发布来自第三方提供商(诸如市场)定制)。例如,ISV 104可以定制类型并提供对应的XML文件,用于例如从其自己的网站下载。此外,开发人员可能期望在专有信息的一部分被提供给另一方之前从定制系统204中移除专有信息的一部分。为此,开发人员移除对应的XML文件,而无需通过环境220的定制工具224来进一步定制系统。
为了构建定制的系统204,类型访问部件222从类型存储装置216访问类型及其对应的德尔塔,类型及其对应的德尔塔在一个示例中作为XML文件存储。类型访问部件222将基XML文件和德尔塔XML文件反序列化为对应的对象表示。然后,对于具有至少一个德尔塔的每种类型,系统236的差异/组合引擎240被用于将该类型的基对象和德尔塔对象放在一起以构建对应的定制类型。差异/组合引擎240理解基对象和德尔塔对象的结构以促进它们的组合。
在所有定制类型被构建之后,定制系统204可以在开发环境中被进一步开发,或者被传递到运行时环境206(或其他端点)以用于消耗。其他端点的示例包括但不限于:升级系统242,其促进升级底层基系统202;和生命周期管理系统244,一旦其被部署则其促进管理定制系统204。在一个示例中,运行时环境或其他端点不知道德尔塔。端点简单地消耗定制系统204内的应用类型。
图3-1是用于生成定制系统的方法260的一个示例的流程图。为了说明而不是限制,方法260将在开发人员218使用开发环境220开发定制系统204的上下文中而被描述。
在步骤262处,检测到定制的基系统202的开发人员输入。例如,开发人员218可以通过用户界面显示230访问定制工具224,以选择用于定制的基系统202。在步骤264处,类型访问部件222从类型存储装置216访问基系统202。例如,这可以包括反序列化基系统202中建模的各种类型的XML文件。图3-2图示了从类型存储装置216取回的基类型(在本示例中的表)的XML文件表示261的一个示例。
在步骤266处,DSL建模显示可以利用用户输入机制而被显示,以在步骤268处接收执行DSL建模的用户输入。下面进一步详细描述执行DSL建模的示例。
在步骤270处,类型定制显示利用用户输入机制而被显示。例如,定制工具224可以被提供给开发人员218以定制在基系统202中建模的类型。在步骤272处,对一个或多个建模的类型执行定制的用户输入被检测。例如,如上所述,定制可以包括向给定元素类型添加元数据或代码,删除或改变给定元素类型的属性,或者改变给定元素类型的元数据元素的分层布置。再次参考图3-2,一个示例改变(即,将“原始的值”改变为“改变的值”)在附图标记263处被表示。当然这些仅是示例。
在步骤274,开发环境220将定制标识为与基系统202的德尔塔或差异。在一个示例中,差异生成系统236用于标识来自开发人员定制的德尔塔。
图4图示了可以在步骤274使用的差异生成系统236的差异/组合引擎(DCE)240的一个示例。DCE 240被配置为计算和构造在原始的对象和由在步骤272处检测的用户输入定制的定制对象之间的德尔塔。DCE 240包括差异表示部件280,差异表示部件280包括用于提取差异以计算德尔塔并将差异应用于基系统以构建定制系统204的机构。
差异表示部件280使用差异计算引擎282。在一个示例中,差异计算引擎282使用从元模型推断的对象模型来计算容纳层次中的差异。差异计算引擎282将被定制的类型拆解成更基本或原始的部件。作为示例,原始的部件包括构成基类型的组成部分(例如,字符串、整数、枚举值)。对类型的每个改变都可以从对类型的原始的部件的改变的基本集合中导出。
原始的差异计算部件284标识个体原始的部件并独立地检查每个部件以确定其是否已被改变、添加、删除或以其他方式定制。在一个示例中,原始的差异计算部件284将定制的类型与基系统202中的基类型进行比较,以标识差异。
再次参考方法260,在步骤276,表示定制类型和基类型之间的差异的德尔塔被生成为分离文件,该分离文件与基系统关联或以其他方式相关联。在一个示例中,可以通过DSL建模系统235定义的元模型定义用于在类型存储装置216中存储基系统类型的模式格式,并且从基系统类型推断德尔塔类型。以这种方式,提供了用于定义XML文件格式的框架。
在步骤278,分离的德尔塔文件被保存在与基系统202分离的类型存储装置216中。关于图3-2的示例,德尔塔文件265被生成。
图5是用于使用所存储的德尔塔来构建定制的系统的方法300的一个示例的流程图。例如,可以在运行时执行方法300以将类型德尔塔存储装置238中的类型德尔塔应用于基系统202以构建在运行时环境206内运行的定制系统204。在另一示例中,可以执行方法300以在测试环境中或者当定制系统204在开发环境220内由开发人员218进一步定制时测试定制系统204。为了说明而不是限制,方法300将在开发环境220的上下文中描述。
在步骤302,检测输入以生成具有应用的德尔塔的类型。如上所述,这可以包括定制系统204要在运行时环境206内运行的指示。在步骤304,从基系统202取回类型。在一个示例中,这包括类型访问部件222将来自基系统202的类型的XML文件表示序列化为开发环境220内的它们的物理表示。
在步骤306,开发环境220取回对应于在步骤304取回的类型的所有德尔塔。如上所述,可以存在对类型的定制的多个不同层。例如,在步骤306取回的德尔塔可以包括ISV德尔塔308(例如,表示由图1中的ISV 104所进行的定制),VAR德尔塔310(例如,表示由图1中的VAR 106所进行的定制)和客户德尔塔312(例如,表示由图1中客户108所进行的定制)。
在步骤314,基系统类型被分解为其原始的部件。例如,DCE 240接收和拆解基系统类型。DCE 240的差异应用引擎286(图4所示)在步骤316将德尔塔应用于原始的部件。在一个示例中,这包括差异应用引擎286在步骤318将德尔塔分解成其原始的部件,然后合并基系统的原始的值和德尔塔。
在一个示例中,原始的差异应用部件288(图4所示)在原始的部件级别在基类型中的正确位置处应用德尔塔。例如但不限于,在一个示例中,原始的部件包括作为该类型内的属性的字符串。德尔塔可以为此字符串指定新的或定制的值。原始的差异应用部件288将新值应用于基类型内的该原始的部件。
在一个示例中,在存在应用于给定类型的多个德尔塔的情况下,方法300在步骤320处标识用于应用德尔塔的顺序。在一个示例中,德尔塔的顺序可以从它们对应的XML表示来确定,该XML表示根据指示对应的定制何时被作出。
在步骤322,开发环境220的定制分析器和冲突检测系统248标识并解决由于向基系统类型应用德尔塔而在给定类型中产生的冲突。
在步骤324,开发环境220重新组合具有应用的德尔塔的类型,并在步骤326输出类型,例如用于诸如运行时环境206的终点处的消耗。
开发环境220提供了一种可以以高效、灵活且需要较少开发人员时间的方式在整个系统中针对所有类型整体地应用定制的框架。相反,在其他类型的系统中,开发人员必须手动地手工编码基系统中的许多不同类型给定定制。开发环境220使用代码生成来以改进定制架构的方式来驱动框架实现。
再次参考图2,可视化系统246被配置为对开发人员218生成可视化以促进开发过程。除了其他方面,可视化可以标识对各种元素进行的定制以及由于冲突的定制而产生的冲突。
例如,ISV和VAR可以以两种不同的方式各自定制类型。ISV可以将基类型的标签定制为一个值,并且VAR可以将相同的标签定制为不同的值。定制分析器和冲突检测系统248被配置为分析对基系统202进行的定制并且检测定制之间的冲突。这些冲突可以使用冲突解决系统250解决,在一个示例中,该解决系统250包括:被配置为自动解决一些冲突(例如,使用冲突解决规则)的自动解决部件252,以及被配置为针对开发人员218显现冲突的冲突显现部件254。冲突解决在下面进一步详细讨论。
图6图示了可视化系统246的一个示例。在所图示的示例中,可视化系统246包括显示系统控制器330,其被配置为控制显示系统223以使用用户界面部件225来生成用户界面显示332。在一个示例中,用户界面显示332在基系统202的定制期间被呈现给开发人员218。例如,在方法260中可以在步骤270显示用户界面显示332。
如图6所示,当定制已被应用在定制的较低层上时,一个示例用户界面显示332包括示出了定制的集成的可视化(或视图)334。换句话说,集成视图334向开发人员218示出了包括基对象和定制对象的整个系统。通过集成视图334,开发人员218可以可视化定制元素以及未定制元素中的全部。此外,集成视图334还可以可视化哪些元素具有冲突以及哪些元素没有冲突。
图7-1中示出了集成视图334的一个示例。集成视图334说明性地是具有父节点和子节点的分层树结构。每个子节点依赖于对应的父节点,并被示出为相对于对应的父节点向右缩进。
图7-1提供用户界面336的屏幕截图,其显示正在被定制的类型的指示以及针对该类型的元素340的列表。用户界面336包括针对开发人员218的可视提示以理解什么元素已被定制的。在所图示的示例中,已经被定制元素例如通过加粗定制元素(由附图标记342表示)可视地与未被定制元素相区分。定制可以包括由开发人员218在当前定制的层中所做的改变,以及在定制的较低层(例如由ISV 104和/或VAR 106进行的先前的定制)中所做的改变。此外,可以指示各种不同类型的定制中的任何一种。一些包括但不限于属性改变、新元素的添加、元素的重定父级、以及元素顺序的改变。此外,还可以利用用户界面336提供代码和/或元数据编辑器(图7-1中未示出)。这可以使得开发人员218能够进行进一步的定制并解决定制中的冲突。在另一示例中,用户界面336可以包括对象的预览窗口343。例如,在类型338是表单的情况下,预览窗口343可以显示表单的预览。
再次参见图6,可视化系统246包括过滤部件344,过滤部件344基于从开发人员218例如在图7-1所示的搜索框346中接收的过滤输入对视图进行过滤。过滤输入可以包括用于搜索元素的关键字。过滤输入也可以被用于从集成视图334切换到非集成视图348,以仅查看已被定制元素或仅查看具有冲突的元素。这将在下面进一步详细讨论。可视化系统246也可以包括其他项345。
图7-2图示了集成视图334的另一示例。图7-2提供了指示已被定制元素以及具有冲突的元素的用户界面350的屏幕截图。如用户界面350所示,已经被定制元素被提供有可视指示符351-1(在本示例中为“[c]”),并且具有冲突的元素被提供有可视指示符351-2(在本示例中为“[!]”)。使用这些可视指示符,开发人员218可以容易地看到哪些元素在定制的较低级别已经被定制了和/或具有从定制产生的冲突。
图8图示了用于对开发人员可视化定制和冲突的方法360的一个示例。为了说明而不是限制,将在开发环境220的可视化系统246的上下文中描述方法360。
在步骤362,通过将存储装置238中的类型德尔塔应用于基系统202来构造定制系统204。在步骤364,集成视图334被生成以对开发人员218可视化定制系统。集成视图334可视地指示框366处的定制和368处的冲突。
在一个示例中,图8-1、8-2和8-3图示了以已经不同方式被定制元素。图8-1图示了属性改变定制。具体地,元素373的一个或多个属性已经被改变为新的值。元素373通过加粗元素的名称来被可视化。此外,改变属性可以被显示在弹出窗口375中,例如当用户将光标悬停在元素373上和/或选择元素373时。窗口375可视化改变的性质。
图8-2图示了新元素377被添加的定制。该定制可以通过加粗元素377和/或使用可视指示符379(在本示例中为“+”号)而被可视化。可视指示符379的使用可视地区分开图8-2中的新元素定制与图8-1中的属改变定制。
图8-3图示了重定父级的元素定制,其中元素381已被移动到新的父元素。该定制可以通过加粗元素381和/或提供可视指示符383(本示例中的箭头)来指示,该可视指示符383指示定制是元素的重定父级。以这种方式,指示符383可视地区分图8-3中的类型定制与图8-1和8-2中的定制。
在图6所示的示例中,为了在步骤368处标识和可视化各种类型的定制和冲突,可视化系统246包括属性改变可视化系统352、层级改变可视化系统354和代码改变可视化系统356。属性改变可视化系统352包括可视化属性定制的属性定制可视化部件353以及可视化属性定制冲突的属性定制冲突可视化部件385。层次改变可视化系统354包括可视化层次定制的层次定制可视化部件355以及被配置为可视化层次定制冲突的层次定制冲突可视化部件387。代码改变可视化系统356包括可视化代码定制的代码定制可视化部件357和被配置为可视化代码定制冲突的代码定制冲突可视化部件389。系统352、354和356中的每一个也可以包括其他部件358。
再次参考图8,在一个示例中,开发人员218可以通过集成视图在系统上进一步开发。在步骤369,检测开发输入以定制在集成视图中显示的元素。例如,开发人员218从集成视图中选择给定的模型元素来定制或扩展,并且然后提供开发输入以定制或扩展与所选择的模型元素相关联的元数据和/或代码。
在一个示例中,能够由开发人员218进行的定制基于定制层而被限制或限定。如上所述,在示例步骤362中,为开发人员218构建定制系统以在当前定制层上查看和开发系统,具有示出了在定制的较低层处进行的改变(例如,在较低定制层处添加的或改变的元素)的视图。在步骤369,开发人员218的开发被限制,以便不允许开发人员218删除或重命名在较低定制层处添加的元素。这当然仅是一个示例。
在其中代码编辑器被呈献给开发人员218以编辑代码的步骤369的一个示例中,开发人员218提供输入以改变代码编辑器内的方法的顺序。尽管代码编辑器中方法的顺序可能不会影响运行时环境,但其可以在开发人员218如何组织和可视化其代码方面发挥重要作用。因此,在一个示例中,开发环境220存储用于向开发人员218随后呈现的重新排序的方法。例如,德尔塔可以被生成并且被存储以反映新的方法顺序。
在框370处,从开发人员接收过滤输入以将集成视图334过滤为期望的非集成视图348。示例包括定制过滤输入(诸如“[c]”),以在框372处仅查看定制,或冲突过滤输入(诸如“[!]”)用于在框374处仅查看冲突。在步骤376处显示经过滤的非集成视图348。
在过滤视图以示出定制的情况下,可视化系统246采用属性定制可视化部件353、层级定制可视化部件355和代码定制可视化部件357。在过滤视图以示出冲突的情况下,可视化系统246采用属性定制冲突可视化部件385、层级定制冲突可视化部件387和代码定制冲突可视化部件389。
在步骤378,用户输入被接收以从对象移除定制。例如,通过在步骤364处显示的集成视图或在步骤376处显示的过滤的视图,开发人员218可以右键单击或以其他方式选择定制元素中的一个,然后指示应当移除定制(例如,选择删除定制菜单项)。
在步骤380,接收用户输入以解决冲突。例如,通过在步骤364处显示和集成视图或在步骤376处显示的过滤的视图,开发人员218可以右键单击或以其他方式选择定制元素中的一个。然后,在步骤382处,向用户显示冲突解决窗口。在步骤384处,检测到冲突解决输入,并且基于输入来解决定制冲突。
在图8-4中图示了冲突解决窗口400的一个示例。如图8-4所图示的,冲突解决窗口400显示具有针对所选择的元素(即,在本示例中的元素“姓氏”)的冲突的属性的列表402,以及针对列表402中的属性的冲突值的列表404、406、408和410。例如,针于列表402中的每个冲突属性,窗口400针对属性在列表410中显示“当前值”连同导致冲突的一个或多个其他值。作为示例,这些其他值包括:由开发人员218分配给属性的列表404中的值(即,“您的值”,其可以与当前值相同或不同)、来自基系统202的列表408中的“原始值”、以及来自定制的另一层的列表406中的值(即“它们的值”)。例如,当开发人员218是客户108的一部分的情况下,列表406中的“它们的值”可以是由图1所示的ISV 104或VAR 106进行的定制。
冲突解决窗口400还包括多个用户输入机制,其允许开发人员218选择针对列表402中的每个属性他们期望的值,以解决冲突。在图8-4的示例中,列表404、406、408、410中的每个值具有对应的选项按钮401、403、405、407(或其他用户输入机制),其允许用户选择列表402中属性的值。此外,在一个示例中,为开发人员218提供用户输入机制409、411、413、415的集合以选择对应列表406、410、408、404中的所有值。一旦冲突已经被解决,集成视图中的冲突图标被移除,因为不再存在针对该元素的冲突。
再次参考图8,在另一示例中,步骤382用于解决由部件387可视化的层次改变冲突。为了说明,图8-5示出了可视化其中节点422不具有父节点的层次定制冲突的用户界面420。作为示例,这可能由于对基系统的更新而发生,该更新移除先前具有一个或多个从属子节点的特定节点。在一个示例中,未设置父节点的节点422是不可编辑的,直到它们被适当地重定父级到有效父节点。图8-6图示了用户界面420,其中节点422已被重定父级到适当的父节点(例如由开发人员218拖动用户界面420内的节点422)。这从层次冲突列表中移除节点422。目前,节点422是可从用户界面420编辑的。
在由部件389可视化的代码定制冲突的上下文中,步骤382在冲突解决窗口中显示冲突的代码。代码的每个部分被提供有允许开发人员218选择代码的部分以解决冲突的控件。这可以以类似于图8-4所示的冲突解决窗口400的方式来完成。
可视化系统246提供集成的可视和设计经验,用于建模定制连同多个可视提示以区分实际的定制。开发人员可以容易地在提供定制系统的视图的不同用户界面(诸如集成视图和非集成视图)之间切换。这增强了用户体验并提供了更高效的开发环境。
再次参考图2,在一个实施例中,生命周期管理系统244可由开发环境220访问,并且包括可由开发人员218用于标识、跟踪和解决在项目的各种生命周期期间出现的问题的服务。例如,生命周期管理系统244允许开发人员218跟踪在基系统202的定制期间出现的问题。生命周期管理系统的服务允许用户标识组织的需求和提供有系统的功能,并生成或识别需要对系统进行的以满足部署系统的客户的需求的功能或定制。
这些服务可以包括例如允许生命周期管理系统244标识定义所部署系统的环境的特定环境信息的诊断服务。例如,生命周期管理系统244可以从报告和管理系统258接收关于运行时环境206的信息。
生命周期管理系统244提供用于报告、项目管理(例如收集估计)、升级成本和冲突解决、以及生成考虑依赖关系的时间线的集成工具。这些集成工具可帮助开发人员了解正在进行的变换,并且计划并执行其余的升级任务。此外,这对开发人员的部分提供了可预见的体验。
例如,生命周期管理系统244包括开发人员218在执行项目中的各种任务时使用的工具。例如,生命周期管理系统244可以使开发人员218行走通过与定制系统204的开发相关的特定任务集合的工作分解结构。
在一个示例中,生命周期管理系统244包括促进对系统的升级的升级服务256。在一个示例中,升级服务256可以提供与升级基系统202相关的基于云的度量。例如,开发人员218可以将其元数据和代码上传到生命周期管理系统244,生命周期管理系统244分析代码中的元数据并提供与是否升级系统以及期望花费多长时间有关的各种度量。此外,生命周期管理系统244可以提供使开发人员218行走通过升级过程的一系列用户界面显示。生命周期管理系统244标识需要哪些升级任务的资源。生命周期管理系统的使用改善用户体验,减少升级过程的处理时间和带宽。
作为示例,图9-1、9-2和9-3图示了在解决迁移过程期间由生命周期管理系统244提供的示例用户界面。一个示例是当前基系统202的更新。针对在当前基系统上执行的升级,分析接口430被显示。例如,开发人员218将当前系统上传到生命周期管理系统244,生命周期管理系统244分析系统以标识在更新过程期间需要完成的各种任务。这可以以可查看的记录或文件432的形式提供。
图9-2中所图示的用户界面434根据由在升级过程中涉及的开发人员或其他人员所需的手动工作提供的升级的报告摘要。例如,报告摘要根据基系统202内的、具有各种任务将花费多长时间的对应时间估计的不同模型210而被分解。图9-3提供了分解特定步骤和任务并在更细粒度的等级上提供工作分解结构的用户界面436。
图10示出了用于升级基系统的方法500的一个示例。为了说明而不是限制,方法500将在图2中所示的架构200的上下文中描述。
在步骤502,该方法以基系统202的当前、定制版本开始。例如,基系统202被存储在类型存储216中,连同定义对基系统的定制的类型德尔塔被存储在存储238中。
在步骤504中,指示基系统要被升级的维护输入检测到。例如,维护输入可以包括来自启动升级过程的开发人员218的输入。在另一示例中,维护输入可以从诸如生命周期管理系统244的另一系统接收。
为了本讨论的目的,在其上针对定制系统204已经定义了定制(称为“版本A”)的基系统202将被称为“版本A”。基系统将被升级到新版本(即“版本B”),开发人员218期望定制被携带到升级的版本上以形成升级的系统的定制版本(称为“版本B”)。
在步骤506,取回当前版本A'。在步骤508。该方法自动检测到版本A'被定制。例如,差异生成系统236将应用定义开发环境220内的类型系统框架的元模型来检查在当前版本的对象以确定对对象已经进行了哪些定制。
在步骤510,当前版本的德尔塔(称为“德尔塔1”)被找到或以其他方式被访问。例如,德尔塔可以从类型存储装置216取回,或者可以由差异生成系统236计算。
在步骤512,基系统升级的德尔塔(称为“德尔塔2”)被找到或以其他方式被访问。例如,生命周期管理系统244可以提供版本A和版本B之间的差异的指示。在另一个示例中,生命周期管理系统244可以将整个升级的基系统(版本B)提供给开发环境220,开发环境220使用差异生成系统236来计算版本A和版本B之间的德尔塔2。
在步骤514,该方法将德尔塔1(从版本A到版本A'的改变)和德尔塔2(版本A和版本B之间的差异)组合。
在步骤516,该方法比较德尔塔1和德尔塔2,并在步骤518标识任何冲突。在步骤518,该方法例如使用定制分析器和冲突检测系统248来确定德尔塔1和德尔塔2之间的任何冲突。
在步骤520,该方法自动地对其中没有冲突的系统进行改变。在一个示例中,这可以包括进行需要适应版本A和版本B之间的改变的转换,该改变包括但不限于改变应用编程接口的名称和调用约定,通过标准模式应用定制的重构,并基于定制导出新类型。
在步骤522,方法500针对不需要用户输入的冲突执行自动冲突解决。例如,利用冲突解决系统250的自动解决部件252来应用冲突解决规则524。例如,步骤522可以使用包括用于冲突解决的算法的冲突解决规则524。冲突解决规则的一个示例包括对底层的系统API的改变。冲突解决规则找到对API的旧引用,并将其替换为新引用。在冲突解决规则的另一个示例中,对版本A的定制将文本添加到用户界面,但在版本B中,某些UI概念不再应用。在此示例中,冲突解决规则可以解决之前的UI定制,并重新组合到版本B中的新UI定义中。
在步骤526,在步骤522处未解决的冲突显现以供用户解决。例如,可以使用冲突解决系统250的冲突显现部件254来使冲突显现。步骤526提供允许用户解决冲突的任何合适的用户界面。在一个示例中,提供了类似于图8-4的用户界面。在任何情况下,冲突解决输入在步骤528被检测到,并且在步骤530处被用于解决冲突。
在步骤532,针对新的、定制版本B'计算德尔塔(即,德尔塔3)。在一个示例中,这由差异生成系统236执行。在步骤534处,所计算的德尔塔3被保存到类型存储装置216。
在所图示的方法500的示例中,步骤中的许多(如果不是全部)由开发环境220执行。在另一示例中,步骤中的部分或全部可以由基于云的生命周期管理系统(即,系统244)来执行。例如,生命周期管理系统244可以在步骤510处和512处找到德尔塔,在步骤514处和516处组合和比较德尔塔,并且在518处和522处标识和解决冲突。当然,这是方法500如何可以在架构200中实现的一个示例。
图11A是更详细的DSL建模系统235的一个示例的更详细的框图。图11B更详细地图示了可以由开发环境220使用的DSL建模的类型,图11C图示了运行时环境206和可以形成类型存储装置216的一部分的或者可以是分离的应用类型存储装置550中的应用类型的一个示例。图11D更详细地示出了DSL建模系统235的操作的一个示例。现在将相互结合来描述图11A-11D。
在图11A所示的示例中,DSL建模系统235说明性地包括应用类型建模部件552、差异生成类型建模部件554、开发工具类型建模部件556(其本身可以包括行为创作类型建模器558和属性创作类型建模器560)、交叉引用生成类型建模部件562、应用验证类型建模部件564、搜索类型建模部件566、其他生产率类型建模部件568,并且其可以包括其他项570。DSL建模系统235说明性地允许开发人员218使用域特定语言(DSL)来描述概念(类型)及其彼此之间的关系。其提供了用于生成一套全面的类型的框架,该类型自身为开发工具、应用、应用的工具以及集成到这些工具中的其他开发人员生产率工具提供框架。
一般来说,DSL以正式的方式描述概念(或抽象)以及它们之间的关系。关系可以用诸如继承、关联和组合的面向对象的设计概念来描述。基系统202可以具有用于开发应用的许多概念,诸如类概念(可以包含X++或其他代码)、表概念(即具有代码的可保持的值的集合)、表单概念(在用户界面中显现用户的信息)、查询概念等。基系统202中的这些概念(诸如客户表、订单处理类、销售订单表单等)的实例可以被称为元数据,并且这些可以用作包括基系统202或定制系统204的最终应用的构建框。DSL建模系统235被说明性地用于描述这些概念本身,诸如什么构成表、什么组成类等。这些描述是关于元数据或元元数据的数据。DSL建模系统235可以用于正式地描述这些概念的标记,并且使用代码生成技术来生成形成用于构建应用的基础的特定类型的几个相关集合。一些生成的类型的集合可以包括表示可序列化元数据的类型,诸如表、类、表单等。这些类型的实例由应用开发人员设计。例如,应用开发人员可以根据部署应用的组织的要求来设计客户表应当是什么样子以及销售订单形式应当是什么样的。应用运行时,在运行应用时创建、管理和保持这些类型(例如客户表类型、销售订单类型等)的特定实例,并为这些实例提供框架和环境以彼此交互。这些交互是什么组成包括定制系统204的应用。所生成的类型集合还可以包括用于支持创建上述可序列化类型的能力的类型。这些类型被设计时间开发人员工具(如开发环境220中的那些设计时开发人员工具)所消耗。它们为开发人员218提供了设计上述可序列化类型的能力。
所生成的类型的又一集合包括用于生成和导航元数据实例之间的引用(例如客户表和销售订单表单之间的引用等)的类型的集合。这些引用是交叉引用,并且用作开发人员218的生产率工具。
在操作中,DSL建模系统235首先检测指示用户期望接入DSL建模系统235的用户输入。这由图11D中的框572指示。
DSL建模系统235中的各种部件然后显示DSL建模用户输入机制,DSL建模用户输入机制可以被致动以生成各种DSL型模型。显示这些用户输入机制由框574指示。
DSL建模系统235的对应部件然后检测用户输入机制的致动以便生成DSL型模型。这由框576指示。例如,应用类型建模部件552说明性地生成可以被致动以生成DSL建模的应用类型578(图11B所示)的用户界面显示。差异生成类型建模部件554说明性地生成可以被致动以生成差异生成类型580的用户输入机制。开发工具类型建模部件556说明性地显示具有可以被致动以产生开发工具类型582的用户输入机制的用户界面显示。行为创作类型建模器558说明性地生成允许开发人员218生成行为创作类型584的用户界面显示。类似地,属性创作类型建模器560示意性地允许开发人员生成属性创作类型586。其他开发工具类型588也可以被创作。
交叉引用生成类型建模部件562说明性地生成具有可以被致动以生成交叉引用生成类型590的用户输入机制的用户界面显示。应用验证类型建模部件564生成具有以被致动以生成应用验证类型592的用户输入机制的用户界面显示。搜索类型建模部件566生成具有可以被致动以生成搜索类型594的用户输入机制的用户界面显示,并且其他生产率类型建模部件568可以生成具有可以被致动以生成其他生产率类型596的用户输入机制的成用户界面显示。类型存储装置595中的DSL建模的类型597也可以包括其他项598。因此可以看出,各种DSL建模的类型597可以在开发环境220内被访问。它们可以被用于实际生成应用类型578,以及用于开发环境220中部署的应用开发框架和工具的不同类型的托管(host)。它们可以被用于生成用于在各种应用类型578或其他DSL建模的类型之间生成交叉引用的类型。它们可以被用于生成差异类型580,差异类型580用于生成各种应用类型578之间的差异。它们还可以用于生成不同的应用验证类型592、各种开发工具类型582、和能够在开发环境220中使用的其他生产率类型596的托管。
当用户输入被接收到以在类型存储装置595中生成各种类型时,DSL建模系统235中的对应部件生成DSL类型模型。这由图11D中的框600指示。然后,它将DSL类型模型保存到类型存储装置595,其中它们可以由开发环境220来使用。这由框602指示。在一个示例中,它们被存储为XML文件。这由框604指示。它们当然也可以以其他方式存储,如框606所指示的。
图11C示出了图2所示的架构的部分的框图,其中更详细地示出了运行时环境206和应用类型存储装置550。在图11C中可以看出,运行时环境206说明性地包括运行时引擎608、用户界面部件610、处理器或服务器612,并且其可以包括其他项614。环境206说明性地生成具有用户输入机制618、用于与终端用户208交互的用户界面显示616。终端用户208说明性地与用户输入机制618交互以便控制和操纵在运行时环境206中运行的各种应用或定制的系统204。
运行时引擎608说明性地访问存储在应用类型存储装置550中的各种应用类型578,以便运行包括定制的系统204的应用。图11C示出了应用类型578可以包括多种不同的类型。它们可以包括实体620、进程622、安全角色624、工作流程626、表628、类630、表单632或各种各样的其他应用类型634。应用类型存储装置550也可以存储其他记录或其他信息636。
因此,运行时引擎608示意性地访问类型578以执行进程622或工作流程626、参考安全角色624、类630、表单632等。它还可以对实体620或各种其他记录进行操作。
图12A-12C示出了可以由DSL建模系统235在生成DSL建模的类型时生成的示例用户界面显示的集合。例如,图12A示出了用户界面显示,用户界面显示包括可以被致动以便生成DSL建模的表单类型的用户可致动输入机构。可以看出,表单具有表单设计,表单设计有表单控件集合。各种控件可以具有方法等。通过致动图12A中的显示元件,开发人员可以说明性地修改表单的DSL定义。
图12B示出了在右侧显示类和关系以及在左侧显示特定类(交互类)的属性的集合的用户界面显示。此外,开发人员可以与显示元素进行交互,以生成或修改DSL建模的类型。
图12C更详细地示出了编辑DSL模型的一个示例。在图12C中可以看出,用户已经选择了“定制特性”属性。如果用户致动该显示元件(例如通过右键n次点击它或以其他方式),则这使得DSL建模系统235显示允许用户编辑该特性的弹出菜单。通过选择弹出显示中的各种字段,用户可以修改或以其他方式改变DSL模型。
在一个示例中,当DSL模型由DSL建模系统235的各种部件生成时,它们被存储为XML文档。图12D-1至图12D-5(统称为图12D)示出了两个不同的XML文档。第一个是针对各种类型的DSL模型的XML文档。然后,其示出了DSL扩展的集合的示例XML文档。当然,图12D所示的两个DSL文档仅为了举例而示出。
因此可以看出,本说明书提供了显著的技术优点。作为说明,在一些类型的系统中,开发人员通常必须在基系统内的许多不同类型上手动地手工编码给定的定制。相反,在一个示例中,本框架可以以高效、灵活、并且需要较少的开发人员时间并提高开发人员效率的方式,全面地在整个系统中针对所有类型应用定制。目前的开发环境使用代码生成来以改进定制系统本身的方式来驱动框架实现。
在一个示例中,框架使用德尔塔来存储不同层次的定制,并以在其中运行时环境不需要知道德尔塔的方式来构造定制系统。该框架能够以正确的顺序来应用定制德尔塔,并分离地存储德尔塔,使得例如在组织期望从定制系统中删除专有信息的情况下,它们可以容易地从系统中被移除。这可以减少存储和实现定制系统所需的存储开销。
此外,本说明书提供了使用元模型的模型框架,该元模型允许在任何时间检查给定对象以确定已经对对象做了什么定制。这在升级情况下是有利的,例如,在其中组织期望将定制设置迁移到新的系统版本。模型框架检查定制的系统以标识然后被应用于新系统版本的定制。这减少了需要开发升级系统的开发时间,并可以降低开发错误的可能性。
此外,本说明书提供了可以向开发人员生成可视化以促进开发过程的可视化框架。此外,可视化可以标识对各种元素进行的定制以及由于冲突定制而产生的冲突。例如,集成视图通过允许开发人员更好地理解在各种定制层上已经定制了哪些元素、这些元素已经如何被定制、以及这些定制产生了什么冲突,从而改善了开发人员的体验。这提供了用于建模定制连同用于区分实际的定制的多个可视提示的集成的可视和设计体验。开发人员可以容易地在提供定制系统的不同视图的不同的用户界面(例如集成可视化和非集成或过滤的可视化)之间切换。此外,开发人员可以容易地处理和解决定制冲突。这可以增强用户体验,并提供更高效、更不容易出错的开发环境。
此外,本说明书提供了DSL建模系统,其有利地允许开发人员使用域特定语言来描述概念(或类型)和关系。其允许开发人员具有用于生成一整套类型的框架,该类型它们自身为开发工具、应用、应用的工具、和集成到这些工具中的其他开发人员生产率工具提供框架。通过使用DSL建模的类型,类型自身可以通过修改对应的模型可以容易地被修改。这种模式驱动的方案大大提高了开发环境的效率。在现有系统中,这种信息通常被硬编码到计算内核中,因此为了改变类型的结构或定义,需要大量的手动、耗时和易错的活动。通过在DSL模型中建模该信息,开发人员只需要修改模型,则改变一直通过系统被传播到运行时环境。
目前的讨论提到了处理器和服务器。在一个实施例中,处理器和服务器包括没有单独地示出的具有相关联的存储器和定时电路的计算机处理器。它们是它们所属于的并由其激活的系统或设备的功能部分,并且促进由这些系统中的其他部件或项目的功能。
此外,已经讨论了许多用户界面显示。它们可以采用各种不同的形式,并且可以具有在其上布置的各种不同的用户可致动的输入机构。例如,用户可致动输入机构可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。它们也可以以各种不同的方式被致动。例如,它们可以使用点击设备(诸如轨迹球或鼠标)来被致动。它们可以使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来被致动。它们也可以使用虚拟键盘或其他虚拟致动器来被致动。此外,在在其上它们被显示的屏幕是触摸感应屏幕的情况下,它们可以使用触摸手势来被致动。此外,在显示它们的设备具有语音识别部件的情况下,它们可以使用语音命令来被致动。
多个数据存储装置也已经被讨论。将注意,它们可以各自分成多个数据存储装置。所有这些可以本地于访问它们的系统,所有这些可以是远程的,或者一些可以是本地的,而另一些则是远程的。所有这些配置都在本文中被想到。
此外,附图示出了具有归因于每个框的功能的多个框。将注意,可以使用较少的框,因此功能由更少的部件执行。此外,可以使用更多的框,其中功能被分布在多个部件之间。
图13是图2所示的架构200的框图,除了其元件被布置在云计算架构800中。云计算提供不需要终端用户知道传递服务的系统的物理位置或配置的计算、软件、数据访问、和存储服务。在各种实施例中,云计算使用适当的协议在诸如因特网的广域网上传递服务。例如,云计算提供商通过广域网传递应用,并且它们可以通过web浏览器或任何其他计算部件进行访问。架构200的软件或部件以及对应的数据可以存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被整合,或者它们也可以是分散的。云计算基础设施可以通过共享数据中心传递服务,即使它们表现为针对用户的单个访问点。因此,本文描述的部件和功能可以使用云计算架构从远程位置处的服务提供商提供。备选地,它们可以从常规服务器被提供,或者可以直接地被安装在客户端设备上,或以其他方式。
该描述旨在包括公共云计算和私有云计算。云计算(公共和私有两者)提供了实质上无缝的资源池,以及管理和配置底层硬件基础设施的减少的需求。
公共云由供应商管理,并且通常支持使用相同基础设施的多个顾客。此外,与私有云相反,公共云可以从管理硬件释放终端用户。私有云可以由组织本身管理,并且基础设施通常不与其他组织共享。组织仍然在某种程度上维护硬件,诸如安装和维修等。
在图13所示的示例中,一些项类似于图2所示的项,并且它们被类似地编号。图13具体示出了运行时环境206、开发环境220、类型存储装置216、和生命周期管理系统244可以位于云802(其可以是公共的、私有的或其中部分是公共的而另一些是私有的)中。因此,用户112和开发人员218分别使用用户设备804和开发人员设备806通过云802来访问这些系统。用户设备804将用户界面808呈现给用户208,并且开发人员设备806将用户界面810呈现给开发人员218。
图13还描绘了云架构的另一示例。图13示出了也可以想到的是,架构200的一些元件可以被布置在云802中,而另一些不被布置在云802中。作为示例,类型存储装置216可以被布置在云802外部,并且通过云802进行访问。在另一示例中,生命周期管理系统244也可以在云802之外,并且通过云802进行访问。在另一示例中,运行时环境206和/或开发环境220也可以在云802之外,并且通过云802访问。无论它们位于何处,它们可以由设备804和806通过网络(广域网或局域网)直接访问,它们可以通过服务在远程站点被托管,或者它们可以通过云作为服务提供或由驻留在云中的连接服务访问。所有这些架构在本文被想到。
还将注意,架构200或其一部分可以被布置在各种各样的不同设备上。这些设备中的一些设备包括服务器、台式计算机、膝上型计算机、平板计算机、或其他移动设备,诸如掌上计算机、手机、智能电话、多媒体播放器、个人数字助理等。
图14是可以用作用户或客户端的手持设备16的手持或移动计算设备的一个说明性实施例的简化框图,在其中可以部署本系统(或其部分)。图15-16是手持设备或移动设备的示例。
图14提供可以与架构200交互的客户端设备16的部件的一般框图。在一个示例中,客户端设备16可以运行运行时环境206或开发环境220或两者的部件。在设备16中,提供通信链路13,其允许手持设备与其他计算设备进行通信,并且在一些实施例下提供用于例如通过扫描来自动地接收信息的信道。通信链路13的示例包括红外端口、串行/USB端口、诸如以太网端口的有线网络端口、以及允许通过包括以下各项的一个或多个通信协议进行通信的无线网络端口:作为用于向网络提供蜂窝接入的无线服务的通用分组无线业务(GPRS)、LTE、HSPA、HSPA+和其他3G和4G无线电协议、1Xrtt和短消息服务;以及提到到网络的本地无线连接的Wi-Fi协议和蓝牙协议。
在其他示例下,应用或系统在被连接到SD卡接口15的可移除安全数字(SD)卡上被接收。SD卡接口15和通信链路13与处理器17(其也可以体现图2的处理器226)沿着还被连接到存储器21和输入/输出(I/O)部件23以及时钟25和位置系统27的总线19进行通信。
在一个实施例中,I/O部件23被提供以促进输入和输出操作。设备16的各种实施例的I/O部件23可以包括诸如按钮、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、接近传感器、麦克风、倾斜传感器和重力开关的输入部件,以及诸如显示设备、扬声器和打印机端口的输出部件。其他I/O部件23也可以被使用。
时钟25说明性地包括输出时间和日期的实时时钟部件。也可以说明性地为处理器17提供定时功能。
位置系统27说明性地包括输出设备16的当前地理位置的部件。其可以包括例如全球定位系统(GPS)接收机、LORAN系统、航位推算系统、蜂窝三角测量系统、或其他定位系统。其还可以包括例如生成期望地图、导航路线和其他地理功能的地图软件或导航软件。
存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存储装置37、通信驱动器39以及通信配置设置41。存储器21可以包括所有类型的有形易失性和非易失性计算机可读存储器设备。其还可以包括计算机存储介质(如下所述)。存储器21存储计算机可读指令,该计算机可读指令当由处理器17执行时使得处理器根据指令执行计算机实现的步骤或功能。类似地,设备16可以具有可以运行各种应用的客户端系统24。处理器17也可以由其他部件激活以促进它们的功能。
网络设置31的示例包括诸如代理信息、因特网连接信息和映射的内容。应用配置设置35包括使应用适合于特定企业或用户的设置。通信配置设置41提供用于与其他计算机通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和密码的项。
应用33可以是先前已经存储在设备16上的应用或在使用期间安装的应用,尽管这些应用可以是操作系统29的一部分,也可以被托管在设备16外部。
图15示出了其中设备16是平板计算机820的一个实施例。在图15中,具有用户界面显示屏幕822的计算机820被示出。屏幕822可以是触摸屏(因此来自用户手指的触摸手势可以用于与应用交互)或者从笔或触控笔接收输入的笔使能的界面。其也可以使用屏幕上的虚拟键盘。当然,其也可以通过诸如无线链路或USB端口的合适的附接机构被附接到键盘或其他用户输入设备。计算机820也可以说明性地接收语音输入。
设备16的附加示例还可以被使用。设备16可以是特征电话、智能电话或移动电话。电话可以包括用于拨打电话号码的按键的集合、能够显示包括应用图像、图标、网页、照片和视频的图像的显示器、以及用于选择显示器上示出的项目的控件按钮。该电话包括用于接收诸如通用分组无线业务(GPRS)和1Xrtt以及短消息业务(SMS)信号的蜂窝电话信号的天线。在一些示例中,手机还包括接受SD卡的安全数字(SD)卡插槽。
移动设备也可以是个人数字助理或多媒体播放器或平板计算设备等(以下称为PDA)。PDA可以包括当触控笔位于屏幕上方时,感应触控笔(或诸如用户的手指的其他指点器)的位置的感应屏幕。这允许用户选择、突出显示、和移动屏幕上的项以及绘图和书写。PDA还可以包括多个用户输入键或按钮,其允许用户滚动通过显示在显示器上的菜单选项或其他显示选项,并且允许用户改变应用或选择用户输入功能,而不需要接触显示器。PDA可以包括允许与其他计算机的无线通信的内部天线和红外发射器/接收器、以及允许与其他计算设备的硬件连接的连接端口。这样的硬件连接通常通过支架进行,该支架通过串行端口或USB端口连接到另一台计算机。因此,这些连接是非网络连接。
图16示出了电话可以是智能电话840。智能电话840具有显示图标或展开图的触摸感应显示器842或其他用户输入机制844。机制844可以由用户使用来运行应用、进行呼叫、执行数据传输操作等。通常,智能电话840建立在移动操作系统上,并且提供比功能手机更高级的计算能力和连接性。
注意,其他形式的设备16是可能的。
图17是可以部署架构200或其部分(例如)的计算环境的一个实施例。参考图17,用于实现一些实施例的示例性系统包括以计算机910形式的通用计算设备。计算机910的部件可以包括但不限于处理单元920(其可以包括上述处理器中的任意一个)、系统存储器930和将包括系统存储器的各种系统部件耦合到处理单元920的系统总线921。系统总线921可以是包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的本地总线的几种类型的总线结构中的任一种。作为示例而非限制,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、和外围部件互连(PCI)总线(也被称为夹层总线)。关于图2描述的存储器和程序可以部署在图17的对应部分中。
计算机910通常包括各种计算机可读介质。计算机可读介质可以是可由计算机910访问的任何可用介质,并且包括易失性介质和非易失性介质、可移除和不可移除介质两者。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质与调制的数据信号或载波不同,也不包括调制的数据信号或载波。其包括硬件存储介质,该硬件存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质两者。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或可用于存储期望的信息并且可由计算机910访问的任何其他介质。通信介质通常在传输机构中体现计算机可读指令、数据结构、程序模块、或其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指具有以这种方式设置或改变的其特征中的一个或多个以将信息编码到信号中的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质以及诸如声学、RF、红外的无线介质和其它无线介质。上述任一项的组合也应包括在计算机可读介质的范围内。
系统存储器930包括以诸如只读存储器(ROM)931和随机存取存储器(RAM)932的易失性和/或非易失性存储器的形式的计算机存储介质。基本输入/输出系统933(BIOS)通常存储在ROM 931中,其包含帮助在计算机910内的元件之间传送信息(诸如在启动期间)的基本例程。RAM 932通常包含可以通过处理单元920立即访问的和/或当前正在由处理单元920操作的数据和/或程序模块。作为示例而非限制,图17图示了操作系统934、应用程序935、其他程序模块936、和程序数据937。
计算机910还可以包括其他可移除/不可移除的易失性/非易失性计算机存储介质。仅作为示例,图17示出了:从不可移除、非易失性磁性介质读取或向不可移除、非易失性磁性介质写入的硬盘驱动器941;以及从诸如CD ROM或其他光学介质的可移除、非易失性光盘956读取或向诸如CD ROM或其他光学介质的可移除、非易失性光盘956写入的光盘驱动器955。可以在说明性操作环境中使用的其他可移除/不可移除的、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器941通常通过诸如接口940的不可移除存储器接口连接到系统总线921,并且光盘驱动器955通常通过诸如接口950的可移除存储器接口连接到系统总线921。
备选地或另外地,本文描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如但不限于,可以使用的说明性类型的硬件逻辑部件包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等
上面讨论并在图17中图示的驱动器及其相关联的计算机存储介质,为计算机910提供计算机可读指令、数据结构、程序模块和其他数据的存储。在图17中,例如,硬盘驱动器941被图示存储操作系统944、应用945、其他程序模块946和程序数据947。注意,这些部件可以与操作系统934、应用程序935、其他程序模块936和程序数据937相同或不同。操作系统944、应用程序945、其他程序模块946和程序数据947在这里给出不同的数字,以说明至少它们是不同的副本。
用户可以通过诸如键盘962、麦克风963和诸如鼠标、轨迹球或触摸板的指点设备961的输入设备来将命令和信息输入到计算机910中。其他输入设备(未示出)可以包括操纵杆、游戏垫、卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线的用户输入接口960连接到处理单元920,但是可以通过其他接口和总线结构连接,诸如并行端口、游戏端口或通用串行总线(USB)。可视化显示器991或其他类型的显示设备经由诸如视频接口990的接口也被连接到系统总线921。除了监视器之外,计算机还可以包括可以通过输出外围接口995连接的其他外围输出设备,诸如扬声器997和打印机996。
计算机910在联网环境中使用与诸如远程计算机980的一个或多个远程计算机的逻辑连接来操作。远程计算机980可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且通常包括上面相对于计算机910描述的元件中的一些或全部。图17中描绘的逻辑连接包括局域网(LAN)971和广域网(WAN)973,但也可能包括其他网络。这样的联网环境在办公室、企业范围的计算机网络、内联网和互联网中是常见的。
当在LAN联网环境中使用时,计算机910通过网络接口或适配器970连接到LAN971。当在WAN联网环境中使用时,计算机910通常包括用于通过诸如互联网的WAN 973建立通信的调制解调器972或的其他部件。可以是内部或外部的调制解调器972可以经由用户输入接口960或其他适当的机构连接到系统总线921。在联网环境中,相对于计算机910描绘的程序模块或其部分可以被存储在远程存储器存储设备中。作为示例而非限制,图17图示了驻留在远程计算机980上的远程应用985。应当理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
还应当注意,本文描述的不同实施例可以以不同的方式组合。也就是说,一个或多个实施例的部分可以与一个或多个其他实施例的部分组合。所有这一切在本文中被想到。
示例1是一种开发系统包括:定制部件,被配置为检测用户开发输入以开发计算系统的元素,该元素包括在所述计算系统中建模的类型;系统显示,被配置为生成用户界面显示;以及可视化系统,被配置为标识定制元素的集合、非定制元素的集合、以及针对所述定制元素中的每一个定制元素的定制类型。所述可视化系统包括:显示系统控制器,被配置为控制所述显示系统以生成集成视图用户界面显示,集成视图用户界面显示可视地区分定制元素的集合与非定制元素的集合,并且指示定制元素的定制类型。
示例2是任意一个或全部先前示例中的开发系统,其中所述定制元素集合包括在多个定制层上被定制的模型元素,并且集成视图用户界面显示基于对第一模型元素和所述第二模型元素中的每一个所进行的定制的类型,来可视地区分第一模型元素与第二模型元素。
示例3是任意一个或全部先前示例中的开发系统,其中用户开发输入进一步开发第一模型元素,并且定制部件被配置为基于一个定制层来限制第一模型元素的所述开发,所述第一模型元素在所述定制层处被添加。
示例4是任意一个或全部先前示例中的开发系统,其中定制移除用户输入关于第一模型元素、通过集成视图用户界面显示而被检测,并且所述定制部件响应于定制移除用户输入,而从第一个模型元素移除一个或多个定制。
示例5是任意一个或全部先前示例中的开发系统,其中定制元素的集合包括元数据元素,并且集成视图包括针对以下各项的不同可视标记:具有在定制层中的一个定制层中被定制的属性的元数据元素;在定制层中的一个定制层中被添加的元数据元素;以及在定制层中的一个定制层中已经被重定父级的元数据元素。
示例6是任意一个或全部先前示例中的开发系统,其中所述定制元素集合包括代码元素,并且集成视图包括用于以下中的每一项的不同可视标记:具有在定制层中的一个定制层中被添加的方法的代码元素;以及具有在所述定制层中的一个定制层中被定制的方法的代码元素。
示例7是任意一个或全部先前示例中的开发系统,其中用户开发输入通过集成视图而被接收。
示例8是任意一个或全部先前示例中的开发系统,其中用户开发输入改变代码编辑器中针对给定元素的方法顺序,并且定制部件被配置为存储经改变的方法顺序用于所述代码编辑器中的后续呈现。
示例9是任意一个或全部先前示例中的开发系统,其中可视化系统被配置为检测视图改变用户输入,并且响应于视图改变用户输入,从集成视图用户界面显示切换到非集成视图用户界面显示。
示例10是任意一个或全部先前示例中的开发系统,其中所述用户开发输入通过非集成视图用户界面显示而被接收。
示例11是任意一个或全部先前示例中的开发系统,其中所述视图改变用户输入定义过滤器准则,并且还包括:过滤部件,被配置为基于过滤器准则过滤元素,以用于在所述非集成视图用户界面中显示。
示例12是任意一个或全部先前示例中的开发系统,其中所述非集成视图用户界面显示对定制元素的集合进行显示,而不显示非定制元素中的一个或多个非定制元素。
示例13是任意一个或全部先前示例中的开发系统,其中非集成视图用户界面显示仅显示具有定制冲突的定制元素。
示例14是任意一个或全部先前示例中的开发系统,并且还包括:冲突检测系统,被配置为检测定制元素中的、一个具有定制冲突的给定的定制元素,其中集成视图用户界面显示可视地指示定制冲突;以及冲突解决系统,被配置为基于检测到的冲突解决用户输入来解决定制冲突。
示例15是一种开发系统,包括:定制部件,被配置为检测用户开发输入以开发计算系统的元素;显示系统;定制冲突检测系统,被配置为标识具有多个不同定制层的给定定制元素,以及检测定制层之间的定制冲突;以及可视化系统,具有显示系统控制器,显示系统控制器被配置为控制显示系统,以生成对给定的定制元素和检测到的定制冲突进行可视地表示的用户界面显示。
示例16是任意一个或全部先前示例中的开发系统,其中显示系统控制器被配置为控制显示系统以生成表示在不同定制层中的每一个处对第一定制元素的定制的定制冲突可视化用户界面显示。
示例17是任意一个或全部先前示例中的开发系统,并且还包括:冲突解决系统,被配置为基于检测到的冲突解决用户输入来解决定制冲突。
示例18是一种计算机实现方法,包括:标识计算系统的基元素的集合和已从计算系统的基元素被定制的定制元素的集合;生成具有用户输入机制的集成视图用户界面显示,集成视图用户界面显示对定制元素和非定制的基本元素的表示进行显示;检测与定义过滤准则的所述用户输入机制的用户交互;以及基于所述过滤准则,生成经过滤的视图用户界面显示,所述经过滤的视图用户界面显示对所述定制元素的表示进行显示。
示例19是任意一个或全部先前示例中的计算机实现方法,其中生成经过滤的视图用户界面显示包括:通过过滤非定制的基元素中的一个或更多个,从集成视图用户界面显示切换到经过滤的视图用户界面显示。
示例20是任意一个或全部先前示例中的计算机实现方法,其中生成经过滤的视图用户界面显示包括仅显示已经被定制元素或仅显示具有定制冲突的元素中的至少一个。
虽然主题已经以特定于结构特征和/或方法动作的语言进行描述,但是应当理解,所附权利要求中限定的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开为实施权利要求的示例形式,并且其他等同特征和动作旨在在权利要求的范围内。
Claims (16)
1.一种计算机实现的方法,包括:
标识计算系统的非定制元素的集合;
标识所述计算系统的定制元素的集合,所述定制元素已经从所述计算系统的基础元素被定制;
标识所述定制元素的集合中的每一个定制元素的定制类型,所述定制类型指示已经被应用于所述定制元素的定制的类型;
生成包括过滤器准则用户输入机制的集成视图用户界面显示的表示,其中所述集成视图用户界面显示可视地将所述定制元素的集合与所述非定制的元素的集合相区分,并且所述集成视图用户界面显示包括对应于所述定制元素的集合的可视指示符的集合,所述可视指示符的集合中的每一个可视指示符与所述定制元素中的定制元素可视地相关联,并且可视地标识相关联的所述定制元素的所述定制类型;
其中所述定制元素的集合包括元数据元素,并且所述用户界面显示的所述集成视图包括以下项中的至少一项的可视标记:
具有在定制层中被定制的属性的元数据元素;
在所述定制层中被添加的元数据元素;以及
在所述定制层中已经被重定父级的元数据元素;
接收所述过滤器准则用户输入机制的用户致动的指示;
基于所述过滤器准则用户输入机制的用户致动的所述指示,标识基于以下项的至少一项的过滤准则:
被应用于所述定制元素的集合的所述定制;
在被应用于所述定制元素的集合的所述定制之间的冲突;
基于所述过滤准则,标识过滤的元素的集合;以及
生成包括所述过滤的元素的集合的表示的过滤的视图用户界面显示的表示。
2.根据权利要求1所述的计算机实现的方法,其中生成所述过滤的视图用户界面显示包括通过过滤所述非定制元素中的一个或多个非定制元素从所述集成视图用户界面显示切换到所述过滤的视图用户界面显示。
3.根据权利要求1所述的计算机实现的方法,其中生成所述过滤的视图用户界面显示包括:
仅显示已经被定制的元素;或者
仅显示具有定制冲突的元素。
4.一种电子开发系统,包括:
处理器,以及
存储器,存储由所述处理器可执行的指令,其中所述指令配置所述电子开发系统提供:
定制部件,被配置为;
接收用户输入的指示;以及
基于所述用户输入的所述指示,定制计算系统;以及
可视化部件,被配置为:
标识所述计算系统的定制元素的集合;
标识所述计算系统的非定制元素的集合;
标识所述定制元素的集合中的每一个定制元素的定制类型,所述定制类型指示已经被应用于所述定制元素的定制的类型;以及
生成集成视图用户界面显示的表示,所述集成视图用户界面显示可视地将所述定制元素的集合与所述非定制元素的集合相区分,其中所述集成视图用户界面显示包括对应于所述定制元素的集合的可视指示符的集合,所述可视指示符的集合中的每一个可视指示符与所述定制元素中的定制元素可视地相关联,并且可视地标识相关联的所述定制元素的所述定制类型;以及
其中所述定制元素的集合包括元数据元素,并且所述可视指示符包括以下项中的至少一项的可视标记:
具有在定制层中被定制的属性的元数据元素;
在所述定制层中被添加的元数据元素;以及
在所述定制层中已经被重定父级的元数据元素。
5.根据权利要求4所述的电子开发系统,其中每个定制元素根据所述定制类型从所述计算系统中的基础元素被定制。
6.根据权利要求4所述的电子开发系统,其中所述定制元素的集合包括在多个不同定制层上被定制的模型元素,所述模型元素包括具有第一定制类型的第一模型元素和具有第二定制类型的第二模型元素,所述第二定制类型不同于所述第一定制类型,并且其中与所述第一模型元素和所述第二模型元素相关联的所述可视指示符可视地指示所述第一模型元素与所述第二模型元素具有不同定制类型。
7.权利要求6所述的电子开发系统,其中所述定制部件被配置为基于所述定制层的确定来限制一特定模型元素的所述开发,所述特定模型元素在所述定制层处被添加。
8.根据权利要求4所述的电子开发系统,其中所述集成视图用户界面显示包括与所述定制元素的特定定制元素相关联的定制移除用户输入机制,并且其中所述定制部件被配置为:
接收所述定制移除用户输入机制的用户致动的指示;以及
基于所述定制移除用户输入机制的用户致动的所述指示,从所特定定制元素移除定制。
9.根据权利要求4所述的电子开发系统,其中所述定制元素的集合包括代码元素,并且所述集成视图用户界面显示包括针对以下每一项的不同可视标记:
具有在所述定制层中的一个定制层中被添加的方法的代码元素;以及
具有在所述定制层中的一个定层中被定制的方法的代码元素。
10.根据权利要求4所述的电子开发系统,其中所述集成视图用户界面显示包括开发用户输入机制,并且所述用户输入的所述指示包括所述开发用户输入机制的用户致动的指示。
11.根据权利要求10所述的电子开发系统,其中所述定制部件被配置为:
基于所述开发用户输入机制的用户致动的所述指示,改变代码编辑器中针对所述定制元素的一特定定制元素的方法顺序;
存储经改变的所述方法顺序的指示;
接收用于访问所述特定定制元素的用户请求的指示;以及
基于所述用户请求的所述指示,访问经存储的所述指示并且生成用户界面显示的表示,所述用户界面显示在所述代码编辑器中用经改变的所述方法顺序来呈现所述定制元素。
12.根据权利要求4所述的电子开发系统,其中所述可视化部件被配置为接收视图改变用户输入的指示,并且基于所述视图改变用户输入的所述指示,从所述集成视图用户界面显示切换到非集成视图用户界面显示。
13.根据权利要求12所述的电子开发系统,其中所述可视化部件被配置为:
基于所述视图改变用户输入的所述指示,定义过滤器准则,并且其中所述指令配置所述电子开发系统以提供:
过滤部件,被配置为基于所述过滤器准则来过滤所述定制元素的集合和所述非定制元素的集合以用于在所述非集成视图用户界面显示中进行显示。
14.根据权利要求13所述的电子开发系统,其中所述非集成视图用户界面显示对所述定制元素的集合进行显示,而不显示所述非定制元素的集合中的一个或多个非定制元素。
15.根据权利要求14所述的电子开发系统,其中所述非集成视图用户界面显示仅对具有定制冲突的定制元素进行显示。
16.根据权利要求4所述的电子开发系统,并且还包括:
冲突检测系统,被配置为检测所述定制元素中的、一个具有定制冲突的给定定制元素,其中所述集成视图用户界面显示可视地指示所述定制冲突;以及
冲突解决系统,基于检测到的冲突解决用户输入来解决所述定制冲突。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562133875P | 2015-03-16 | 2015-03-16 | |
US62/133,875 | 2015-03-16 | ||
US14/753,241 US9772822B2 (en) | 2015-03-16 | 2015-06-29 | Visualization framework for customizable types in a development environment |
US14/753,241 | 2015-06-29 | ||
PCT/US2016/022400 WO2016149230A1 (en) | 2015-03-16 | 2016-03-15 | Visualization framework for customizable types in a development environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107430515A CN107430515A (zh) | 2017-12-01 |
CN107430515B true CN107430515B (zh) | 2020-12-11 |
Family
ID=55750439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680016231.9A Expired - Fee Related CN107430515B (zh) | 2015-03-16 | 2016-03-15 | 开发环境中的可定制类型的可视化框架 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9772822B2 (zh) |
CN (1) | CN107430515B (zh) |
WO (1) | WO2016149230A1 (zh) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9851953B2 (en) * | 2015-06-29 | 2017-12-26 | Oracle International Corporation | Cloud based editor for generation of interpreted artifacts for mobile runtime |
US11102313B2 (en) | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US9959100B2 (en) | 2015-08-12 | 2018-05-01 | Oracle International Corporation | Efficient storage and transfer of iOS binary files |
US10013668B2 (en) | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US10338934B1 (en) * | 2016-03-28 | 2019-07-02 | VCE IP Holding Company LLC | Inter-object validation system and method using chained specialized configuration applications |
US10581820B2 (en) | 2016-05-11 | 2020-03-03 | Oracle International Corporation | Key generation and rollover |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10454940B2 (en) | 2016-05-11 | 2019-10-22 | Oracle International Corporation | Identity cloud service authorization model |
US10425386B2 (en) | 2016-05-11 | 2019-09-24 | Oracle International Corporation | Policy enforcement point for a multi-tenant identity and data security management cloud service |
US10341410B2 (en) | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US10735394B2 (en) | 2016-08-05 | 2020-08-04 | Oracle International Corporation | Caching framework for a multi-tenant identity and data security management cloud service |
US10255061B2 (en) | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US10585682B2 (en) | 2016-08-05 | 2020-03-10 | Oracle International Corporation | Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery for a multi-tenant identity and data security management cloud service |
US10530578B2 (en) | 2016-08-05 | 2020-01-07 | Oracle International Corporation | Key store service |
US10263947B2 (en) | 2016-08-05 | 2019-04-16 | Oracle International Corporation | LDAP to SCIM proxy service |
US10505941B2 (en) | 2016-08-05 | 2019-12-10 | Oracle International Corporation | Virtual directory system for LDAP to SCIM proxy service |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
CN109565511B (zh) | 2016-09-16 | 2021-06-29 | 甲骨文国际公司 | 用于多租户身份和数据安全管理云服务的租户和服务管理 |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
CN106843844B (zh) * | 2016-12-26 | 2020-06-12 | 南威软件股份有限公司 | 一种自定义视图的展示装置 |
US9842139B1 (en) | 2016-12-28 | 2017-12-12 | Accenture Global Solutions Limited | Metadata-driven program code generation for clinical data analysis |
US10261836B2 (en) | 2017-03-21 | 2019-04-16 | Oracle International Corporation | Dynamic dispatching of workloads spanning heterogeneous services |
US10454915B2 (en) | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
CN107181801B (zh) * | 2017-05-22 | 2020-08-04 | 深圳市连用科技有限公司 | 一种电子附件存储方法及终端 |
US10782963B2 (en) * | 2017-09-11 | 2020-09-22 | Siemens Industry Software GmbH | Introducing artifact information system and method |
US10348858B2 (en) | 2017-09-15 | 2019-07-09 | Oracle International Corporation | Dynamic message queues for a microservice based cloud service |
US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
US11271969B2 (en) | 2017-09-28 | 2022-03-08 | Oracle International Corporation | Rest-based declarative policy management |
US10834137B2 (en) | 2017-09-28 | 2020-11-10 | Oracle International Corporation | Rest-based declarative policy management |
US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
US10931656B2 (en) | 2018-03-27 | 2021-02-23 | Oracle International Corporation | Cross-region trust for a multi-tenant identity cloud service |
US10798165B2 (en) | 2018-04-02 | 2020-10-06 | Oracle International Corporation | Tenant data comparison for a multi-tenant identity cloud service |
US11165634B2 (en) | 2018-04-02 | 2021-11-02 | Oracle International Corporation | Data replication conflict detection and resolution for a multi-tenant identity cloud service |
US11258775B2 (en) | 2018-04-04 | 2022-02-22 | Oracle International Corporation | Local write for a multi-tenant identity cloud service |
US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
US10764273B2 (en) | 2018-06-28 | 2020-09-01 | Oracle International Corporation | Session synchronization across multiple devices in an identity cloud service |
US11693835B2 (en) | 2018-10-17 | 2023-07-04 | Oracle International Corporation | Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service |
US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
CN109445793A (zh) * | 2018-11-07 | 2019-03-08 | 上海携程商务有限公司 | 制作网页模板的方法及系统 |
US11651357B2 (en) | 2019-02-01 | 2023-05-16 | Oracle International Corporation | Multifactor authentication without a user footprint |
US11061929B2 (en) | 2019-02-08 | 2021-07-13 | Oracle International Corporation | Replication of resource type and schema metadata for a multi-tenant identity cloud service |
US11321343B2 (en) | 2019-02-19 | 2022-05-03 | Oracle International Corporation | Tenant replication bootstrap for a multi-tenant identity cloud service |
US11669321B2 (en) | 2019-02-20 | 2023-06-06 | Oracle International Corporation | Automated database upgrade for a multi-tenant identity cloud service |
US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
CN110263060B (zh) * | 2019-06-06 | 2021-04-23 | 零搜科技(深圳)有限公司 | 一种erp电子附件管理方法及计算机设备 |
US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
US11023674B2 (en) * | 2019-10-23 | 2021-06-01 | Sap Se | Generation and application of object notation deltas |
US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
US11625900B2 (en) | 2020-01-31 | 2023-04-11 | Unity Technologies Sf | Broker for instancing |
CN112433723B (zh) * | 2020-11-05 | 2024-05-31 | 深圳市明源云科技有限公司 | 个性化列表开发方法及装置 |
US20220286915A1 (en) | 2021-03-05 | 2022-09-08 | Vmware, Inc. | Distributed ric |
CN114637499B (zh) * | 2022-03-31 | 2022-11-29 | 阿里巴巴(中国)有限公司 | 可视化组件处理方法、装置、设备及介质 |
US20240205697A1 (en) * | 2022-12-19 | 2024-06-20 | VMware LLC | Differential management for updated configurations in a ran system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636146A (zh) * | 2015-03-05 | 2015-05-20 | 北京掌中经纬技术有限公司 | 一种可视化在线定制方法及系统 |
Family Cites Families (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675752A (en) * | 1994-09-15 | 1997-10-07 | Sony Corporation | Interactive applications generator for an interactive presentation environment |
US5652884A (en) | 1994-11-14 | 1997-07-29 | Object Technology Licensing Corp. | Method and apparatus for dynamic update of an existing object in an object editor |
US6389591B1 (en) * | 1998-09-03 | 2002-05-14 | Microsoft Corporation | Method and apparatus for determining preferred controls for an upgradable operating system |
AU2035600A (en) | 1998-11-30 | 2000-06-19 | Siebel Systems, Inc. | Development tool, method, and system for client server appications |
US6601234B1 (en) | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
US6763516B2 (en) * | 2000-01-31 | 2004-07-13 | Fujitsu Limited | Convention checking apparatus, convention checking system, convention checking method, and storage medium on which is recorded a convention checking program |
GB0011426D0 (en) | 2000-05-11 | 2000-06-28 | Charteris Limited | A method for transforming documents written in different XML-based languages |
US7089256B2 (en) | 2000-07-11 | 2006-08-08 | Knowledge Dynamics, Inc. | Universal data editor |
US7904358B2 (en) * | 2001-02-28 | 2011-03-08 | Goldman Sachs & Co. | Computerized interface for monitoring financial information and executing financial transactions |
US20090254801A1 (en) | 2001-05-14 | 2009-10-08 | The Mathworks, Inc. | Model navigation |
US7076762B2 (en) | 2002-03-22 | 2006-07-11 | Sun Microsystems, Inc. | Design and redesign of enterprise applications |
US7386835B1 (en) * | 2002-03-22 | 2008-06-10 | Emc Corporation | Technique for graphical user interface modification |
US7941542B2 (en) | 2002-09-06 | 2011-05-10 | Oracle International Corporation | Methods and apparatus for maintaining application execution over an intermittent network connection |
US20040177339A1 (en) * | 2003-03-07 | 2004-09-09 | Microsoft Corporation | Customization of fields in objects in a computing environment |
US7577934B2 (en) | 2003-03-12 | 2009-08-18 | Microsoft Corporation | Framework for modeling and providing runtime behavior for business software applications |
US7080089B2 (en) | 2003-03-12 | 2006-07-18 | Microsoft Corporation | Customization of process logic in a software system |
US20050102612A1 (en) | 2003-11-06 | 2005-05-12 | International Business Machines Corporation | Web-enabled XML editor |
US7313756B2 (en) | 2003-12-15 | 2007-12-25 | Microsoft Corporation | Schema editor extensions |
US20050235258A1 (en) * | 2004-04-20 | 2005-10-20 | International Business Machines Corporation | Method, plug-in and program product for customizing java bean properties |
US7451432B2 (en) | 2004-10-01 | 2008-11-11 | Microsoft Corporation | Transformation of componentized and extensible workflow to a declarative format |
US20060130047A1 (en) * | 2004-11-30 | 2006-06-15 | Microsoft Corporation | System and apparatus for software versioning |
US8392873B2 (en) | 2005-01-26 | 2013-03-05 | Tti Inventions C Llc | Methods and apparatus for implementing model-based software solution development and integrated change management |
US20060241961A1 (en) | 2005-04-22 | 2006-10-26 | Igor Tsyganskiy | Methods of optimizing legacy application layer control structure using refactoring |
US7895572B2 (en) | 2005-08-15 | 2011-02-22 | Sap Aktiengesellschaft | Systems and methods for enterprise software management |
US7515972B2 (en) | 2005-10-28 | 2009-04-07 | Honeywell International Inc. | System and method for dynamically creating and editing function block types in a process control environment |
US8156469B2 (en) | 2005-12-29 | 2012-04-10 | Sap Ag | Single composition of pattern modules |
US8181150B2 (en) | 2006-05-12 | 2012-05-15 | The Mathworks, Inc. | System and method for synchronized workflow management |
US8762936B2 (en) | 2006-06-09 | 2014-06-24 | Microsoft Corporation | Dynamic design-time extensions support in an integrated development environment |
US7945596B2 (en) | 2006-06-20 | 2011-05-17 | Microsoft Corproation | Programming model for customized data objects |
CN100587666C (zh) * | 2006-08-15 | 2010-02-03 | 国际商业机器公司 | 模型变换中分析和呈现冲突以及自动协调模型变换的方法和系统 |
US8132147B2 (en) | 2007-05-29 | 2012-03-06 | Sap Ag | Semantic interpretation of software models for generating user interfaces |
US20090064090A1 (en) | 2007-09-05 | 2009-03-05 | Microsoft Corporation | Merged view of application customizations |
CN101359290A (zh) * | 2008-09-11 | 2009-02-04 | 中兴通讯股份有限公司 | 一种基于元数据的定制业务单据的方法及装置 |
US8255875B2 (en) | 2008-09-30 | 2012-08-28 | Rockwell Automation Technologies, Inc. | Application builder for industrial automation |
US8341593B2 (en) | 2008-10-23 | 2012-12-25 | Sap Ag | Integrated development framework for composite applications |
CN101770359A (zh) * | 2008-12-30 | 2010-07-07 | 华为技术有限公司 | 界面生成和获取数据进行存储的方法、装置和系统 |
US20100287525A1 (en) * | 2009-05-07 | 2010-11-11 | Microsoft Corporation | Extension through visual reflection |
US8271885B2 (en) * | 2009-06-12 | 2012-09-18 | International Business Machines Corporation | User interface customization using evaluation data |
US8352913B2 (en) * | 2009-08-07 | 2013-01-08 | Adobe Systems Incorporated | Generating and resolving component names in an integrated development environment |
US8572566B2 (en) | 2010-05-11 | 2013-10-29 | Smartshift Gmbh | Systems and methods for analyzing changes in application code from a previous instance of the application code |
US8776016B2 (en) | 2009-10-29 | 2014-07-08 | Red Hat, Inc. | Integration of structured profiling data with source data in the eclipse development environment |
US8856737B2 (en) * | 2009-11-18 | 2014-10-07 | Oracle International Corporation | Techniques for displaying customizations for composite applications |
US9852384B2 (en) | 2010-02-23 | 2017-12-26 | Microsoft Technology Licensing, Llc | Web-based visual representation of a structured data solution |
US20120159429A1 (en) * | 2010-12-15 | 2012-06-21 | Microsoft Corporation | Metadata based eventing |
US20140007045A1 (en) * | 2011-08-01 | 2014-01-02 | Adobe Systems Incorporated | Systems and methods for enabling customization of visual elements based on a specified class |
CN103777936B (zh) * | 2012-10-25 | 2017-10-31 | 金蝶软件(中国)有限公司 | Erp表单的可变用户级视图的实现方法及装置 |
CN103853543B (zh) * | 2012-12-07 | 2017-08-08 | 北京云天时空科技有限公司 | 一种应用于企业信息系统开发过程中快速构建表单的方法 |
US9696974B2 (en) * | 2013-03-13 | 2017-07-04 | Microsoft Technology Licensing, Llc. | Graph-based model for type systems |
US9158503B2 (en) | 2013-10-08 | 2015-10-13 | King Fahd University Of Petroleum And Minerals | UML model integration and refactoring method |
US9280319B2 (en) * | 2013-10-18 | 2016-03-08 | Microsoft Technology Licensing, Llc | Integrated visualization for modeled customizations |
US10331716B2 (en) * | 2013-12-17 | 2019-06-25 | International Business Machines Corporation | Data spreading on charts |
US9575639B2 (en) * | 2014-02-27 | 2017-02-21 | Ab Initio Technology Llc | Compound controls |
KR101628314B1 (ko) | 2014-04-16 | 2016-06-08 | 주식회사 제이티엘소프트 | 애플리케이션의 구조와 메소드 호출 시퀀스를 시각적으로 표현하는 비주얼 스프링 개발 환경 시스템 |
-
2015
- 2015-06-29 US US14/753,241 patent/US9772822B2/en active Active
-
2016
- 2016-03-15 WO PCT/US2016/022400 patent/WO2016149230A1/en active Application Filing
- 2016-03-15 CN CN201680016231.9A patent/CN107430515B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636146A (zh) * | 2015-03-05 | 2015-05-20 | 北京掌中经纬技术有限公司 | 一种可视化在线定制方法及系统 |
Non-Patent Citations (1)
Title |
---|
A Layered Architecture for Uniform Version Management;Bernhard Westfechtel et al;《IEEE TRANSACTIONS ON SOFTWARE ENGINEERING》;20011231;第27卷(第12期);第1111-1133页 * |
Also Published As
Publication number | Publication date |
---|---|
US9772822B2 (en) | 2017-09-26 |
US20160274867A1 (en) | 2016-09-22 |
CN107430515A (zh) | 2017-12-01 |
WO2016149230A1 (en) | 2016-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107430515B (zh) | 开发环境中的可定制类型的可视化框架 | |
US10379847B2 (en) | Representation of customizable types in a development environment | |
US10078501B2 (en) | Domain specific language modeling framework in a development environment | |
CN107408049B (zh) | 计算系统和计算机实现的方法 | |
US10642604B2 (en) | Workflow generation and editing | |
US9342220B2 (en) | Process modeling and interface | |
US9830142B2 (en) | Automatic installation of selected updates in multiple environments | |
US9626176B2 (en) | Update installer with technical impact analysis | |
US9665359B2 (en) | Automatically resolving conflicts after installation of selected updates in a computer system | |
US9280319B2 (en) | Integrated visualization for modeled customizations | |
US9690689B2 (en) | Test case generation in a development environment | |
US20160274885A1 (en) | Controlling deployment of an industry-specific solution package | |
EP2909764B1 (en) | Portal for submitting business metadata for services | |
US20160274906A1 (en) | Generating a deployable industry-specific solution package | |
US20160275064A1 (en) | Setup data extraction for deploying a solution package | |
US20150113499A1 (en) | Runtime support for modeled customizations | |
US20150113498A1 (en) | Modeling customizations to a computer system without modifying base elements | |
US20160364909A1 (en) | Architecture impact analysis | |
US10032203B2 (en) | Dynamic property surfacing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20201211 |
|
CF01 | Termination of patent right due to non-payment of annual fee |