CN107408042A - 用于移动应用的高效和直观的数据绑定 - Google Patents
用于移动应用的高效和直观的数据绑定 Download PDFInfo
- Publication number
- CN107408042A CN107408042A CN201580049259.8A CN201580049259A CN107408042A CN 107408042 A CN107408042 A CN 107408042A CN 201580049259 A CN201580049259 A CN 201580049259A CN 107408042 A CN107408042 A CN 107408042A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- service
- application
- 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.)
- Granted
Links
Classifications
-
- 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/34—Graphical or visual programming
-
- 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
- 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/04845—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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- 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/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- 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/0486—Drag-and-drop
-
- 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/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
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)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了用于允许最终用户通过可视启示直观地将功能组件数据绑定到后端服务的系统和方法。每个UI组件能够通告UI的哪些部分可以独立地数据绑定到来自后端服务的数据的各个性质。当用户希望数据绑定UI组件时,能够被数据绑定的UI的部分现在变换,以示出描述那个特定部分的功能的相关文本。能够向用户呈现包括用户能够绑定的所有可能的数据片段的数据绑定接口,以及映射到可视预览中的插槽的可视插槽。为了数据绑定组件,用户能够从可用列表中拖放特定的数据片段,并将其放入他们想要应用那个数据的插槽中。
Description
版权
本专利文档的公开内容的一部分包含受版权保护的素材。版权所有者不反对任何人对专利文档或专利公开内容的传真再现,就像其在专利和商标局的专利文件或记录中所出现的,但是除此之外保留任何所有(版权或集成电路布图设计)权利。
对相关申请的交叉引用
本申请要求于2014年9月26日提交且标题为“EFFICIENT AND INTUITIVEDATABINDING FOR MOBILE APPLICATIONS”的美国临时专利申请No.62/055,988以及于2015年9月25日提交且标题为“EFFICIENT AND INTUITIVE DATABINDING FOR MOBILEAPPLICATIONS”美国专利申请No.14/865,542的优先权和权益,这些申请的全部公开内容(包括任何附录)通过引用被结合于此,用于所有目的。
技术领域
本实施例一般而言针对应用开发系统,并且具体而言针对为移动应用提供高效且直观的数据绑定的移动应用开发系统。
背景技术
应用是指软件程序,其在执行时执行具体的期望任务。一般而言,如相关领域中众所周知的,若干应用在包含操作系统、虚拟机(例如,支持JavaTM编程语言)、设备驱动器等当中一个或多个的运行时环境中执行。
开发人员可以使用应用开发框架(ADF)(其本身是应用)来实现/开发期望的应用。ADF提供可以直接/间接地在应用的开发中使用的预定义代码/数据模块的集合。ADF还可以提供诸如IDE(集成开发环境)、代码生成器、调试器等的工具,其便于开发人员以更快/更简单的方式编码/实现应用的期望逻辑。
因此,ADF可以通过提供可重用的组件和集成开发环境来简化应用的开发,应用开发者可以通过例如选择组件执行期望的任务和定义所选组件的外观、行为和交互来使用该开发环境定义用户界面和应用逻辑。一些ADF基于模型-视图-控制器设计模式,该模式推动松耦合以及更容易的应用开发和维护。Oracle应用开发框架是利用这种设计模式的ADF的一个示例。
比以往任何时候,无处不在的移动服务和无线连接都更多地驱动客户/消费者需要针对各种个人和商业需求的移动设备应用。为了满足并超越这种需求,对于简化和加速由非开发人员进行的移动应用开发的移动应用开发平台/框架的需求不断增长。同时,对于允许复杂的应用特征能够容易地结合到移动应用中并且确保业务安全标准不受损害存在需求。
相应地,所期望的是解决与用于移动应用的数据绑定相关的问题,其中的一些可以在本文中讨论。此外,所期望的是减少与用于移动应用相关的缺点,其中一些可以在本文中讨论。
发明内容
本公开内容的以下部分至少为了提供对主题的基本理解的目的而呈现在本公开内容中找到的一个或多个创新、实施例和/或示例的简化概要。本发明内容不试图提供任何特定实施例或示例的详尽概述。此外,本发明内容不意在识别实施例或示例的关键/决定性要素或描绘本公开内容的主题的范围。相应地,本发明内容的一个目的可以是以简化的形式呈现在本公开内容中找到的一些创新、实施例和/或示例,作为稍后呈现的更详细描述的序言。
提供了用于允许最终用户通过可视启示(affordance)直观地将功能组件数据绑定到后端服务的系统和方法。每个UI组件可以通告UI的哪些部分可以被独立地数据绑定到来自后端服务的数据的各个性质。当用户希望数据绑定UI组件时,可以被数据绑定的UI的部分现在变换成示出描述那个特定部分的功能的相关文本。可以向用户呈现包括用户可以绑定的所有可能数据片段的数据绑定接口以及映射到可视预览中的插槽(slot)的可视插槽。为了数据绑定组件,用户可以从可用列表中拖放特定数据片段并将其放入他们想要应用那个数据的插槽中。
除了上述部分之外,通过参考本公开内容的其余部分、任何附图以及权利要求,还应当实现对本公开内容的主题的本质和等同物(以及所提供的任何固有的或明确的优点和改进)的进一步理解。
附图说明
为了合理地描述和示出在本公开内容中找到的那些创新、实施例和/或示例,可以参考一个或多个附图。用来描述一个或多个附图的附加细节或示例不应当被认为是对本公开内容中呈现的任何要求保护的发明、任何当前描述的实施例和/或示例或者当前理解的任何创新的最佳模式的范围的限制。
图1是根据本发明实施例的、用于开发使用移动云服务的应用的系统的框图。
图2是根据本发明一些实施例的、便于移动计算设备和企业计算机系统之间的通信的计算环境的框图。
图3示出了根据本发明实施例的移动应用程序主界面(spring board)。
图3A和3B示出了根据本发明实施例的移动应用用户界面。
图4是根据本发明实施例的移动应用框架运行时体系架构的框图。
图5是根据本发明实施例的、用于在移动云基础设施中开发移动应用的系统的框图。
图6是根据本发明实施例的、用于构建移动应用的系统中的网络组件的框图。
图7是根据本发明实施例的移动安全套件组件的框图。
图8是在一个实施例中可以包括在应用开发框架中的移动应用开发门户的图示,其中应用开发框架用于创建使用图1的系统环境的云基础设施系统的移动云服务的应用。
图9是根据本发明实施例的、用于移动应用开发的方法的流程图。
图10、11、12、13、14A和14B是在一个实施例中可以由移动应用开发门户的应用定义向导呈现的一个或多个用户界面的图示。
图15A和15B示出了在一个实施例中向开发人员提供定义新移动应用的第一屏幕的屏幕类型集合的用户界面。
图16A和16B示出了在一个实施例中向开发人员提供特定于先前选择的屏幕类型的用户界面元素集合的用户界面。
图17A和17B示出了在一个实施例中向开发人员提供特定于先前选择的屏幕类型的设计集合的用户界面。
图18示出了在一个实施例中向开发人员提供用于最终确定新应用的细节的一个或多个选项的用户界面。
图19是在一个实施例中提供可用组件的目录的用户界面的图示。
图20是在一个实施例中其中开发人员可以利用一个或多个手势向屏幕添加组件的用户界面的图示。
图21是在一个实施例中在开发人员已经向屏幕添加地图组件之后的用户界面的图示。
图22是在一个实施例中提供服务的目录的用户界面的图示。
图23是在一个实施例中开发人员可以基于所选的业务对象添加创建(addcreate)UI模块的用户界面的图示。
图24是在一个实施例中在开发人员添加UI模块之后的用户界面的图示。
图25是根据本发明实施例的、用于数据绑定移动应用的用户界面的方法的流程图。
图26是在一个实施例中在执行数据绑定之后的用户界面的图示。
图27是在一个实施例中用于配置移动应用以供部署的用户界面的图示。
图28是在一个实施例中在移动应用可用于部署之后的用户界面的图示。
图29是在一个实施例中在移动应用可用于部署之后的用户界面的图示。
图30是在一个实施例中在移动应用可用于部署之后的用户界面的图示。
图31绘出了用于实现实施例之一的分布式系统的简化图。
图32示出了其中可以实现本发明的各种实施例的示例性计算机系统。
具体实施方式
在下面的描述中,为了解释的目的,阐述了具体的细节,以便提供对本发明的实施例的透彻理解。但显而易见的是,实施例可以在没有这些特定细节的情况下实践。例如,电路、系统、网络、过程和其它组件可以被示为框图形式的组件,以便不以不必要的细节模糊实施例。在其它情况下,众所周知的电路、过程、算法、结构和技术可以在没有不必要的细节的情况下示出,以避免模糊实施例。附图和描述不意在是限制性的。相反,示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的使能性(enabling)描述。应当理解,在不背离如所附权利要求中阐述的本发明的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
而且,应当指出,各个实施例可被描述为被绘制为流程图、流图、数据流图、结构图或框图的过程。虽然流程图可以将操作描述为顺序过程,但是许多操作可以并行或并发执行。此外,操作的次序可以被重新布置。当其操作完成时,过程终止,但是可以具有不包括在图中的附加步骤。过程可以对应于方法、函数、过程、子例程,子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
术语“机器可读介质”或“计算机可读介质”包括,但不限于,便携式或非便携式存储设备、光存储设备、无线信道,以及能够存储、包含或携带(一条或多条)指令和/或数据的各种其它介质。代码段或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类或者指令的任意组合、数据结构或程序语句。代码段可被耦合到另一代码段或者通过传递和/或接收信息、数据、自变量、参数或存储器内容耦合到硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段,包括存储器共享、消息传递、令牌传递、网络传输等,被传递、转发或发送。
另外,实施例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实现。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段可被存储在机器可读介质或计算机可读介质中。一个或多个处理器可以执行必要的任务。
在一些图中绘出的系统可以以各种配置提供。在一些实施例中,系统可被配置为分布式系统,其中该系统的一个或多个组件跨云计算机系统中的一个或多个网络分布。在进一步的实施例中,系统可以被配置为单个系统,其中系统的一个或多个组件被结合到单个结构或包中。
介绍
应用是指软件程序,其在执行时执行具体的期望任务。一般而言,在包含一个或多个操作系统(“OS”)、虚拟机(例如,支持JavaTM编程语言)、设备驱动器等的运行时环境中执行若干应用。开发人员常常使用应用开发框架(“ADF”)(其本身是应用)来实现/开发期望的应用。ADF提供了可以直接/间接用于开发应用的预定义的代码/数据模块集合。ADF还可以提供诸如集成开发环境(“IDE”)、代码生成器、调试器等工具。一般而言,ADF通过提供可由应用开发人员用来定义用户界面(“UI”)和应用逻辑的可重用的组件来简化应用开发,例如,通过选择组件执行期望的任务和定义所选组件的外观、行为和交互。一些ADF,诸如来自Oracle公司的“Oracle ADF”,是基于模型-视图-控制器(“MVC”)设计模式,该模式推动松散耦合以及更容易的应用开发和维护。
一般而言,许多公司已经表示需要允许他们的雇员使用来自办公场所之外位置的移动设备访问安全企业应用,使得在外的(on-the-go)雇员可以访问存储在企业计算机系统上的信息。利用这种能力,销售人员可以在路上工作、服务技术人员可以在客户现场查找零件、雇员可以在家工作,等等。一些公司还想要允许最终客户访问位于企业计算机系统中的数据。这种访问可以通过改善客户体验和降低成本来使公司有别于竞争者。例如,通过实现这种访问,商店可以允许客户在任何方便的时候远程搜索商店库存的商品和购物,由此改善客户体验并降低对销售人员、操作员和其他工作人员的需求。
不同的企业应用供应商传统上通过提供与公司拥有的安全移动设备或定制的移动应用相结合的专门门户来满足这种需要。但是,随着当前各种可用个人移动设备的爆炸式增长,这些传统的解决方案迅速变得过时,因为供应商根本跟不上所有变得可用的最新操作系统和硬件。
另外,依赖于应用的类型和/或应用所使用的数据的类型,应用可能需要与不同的企业计算机系统连接并同步。这些企业计算机系统可以由不同的后端计算机系统支持,后端计算机系统也可以基于应用类型和数据类型而变化。但是,不同的后端企业系统可以使用不同的通信协议和机制来向设备传送数据,由此使运行各种应用的移动计算设备遇到与支持企业计算机系统的不同后端计算机系统进行通信的挑战。
还有,安全性可能变成允许访问企业的内部计算机系统的关注点。移动计算设备和企业计算机系统之间支持的通信协议的差异可能进一步使对移动计算设备和企业计算机系统之间的通信的安全访问管理复杂化。例如,可以实现不同的机制,以确保应用的认证来访问具有专有安全协议的特定企业计算机系统。一些已知的系统已经尝试通过将现成的消费者移动设备与公司的后端企业系统连接来解决这个问题。这些设备可以被配置有通过专用于与企业后端计算机系统通信的专用门户连接到企业网络的应用或OS。但是,移动设备的制造商、应用开发人员和企业可以受益于用于开发应用和将移动设备连接到企业后端计算机系统的更灵活和健壮的技术。
与已知系统相比,本发明的实施例提供了基于声明性浏览器的客户端应用开发工具,用于在“云”服务中快速业务用户友好的移动应用组合。在一个实施例中,云服务是来自Oracle公司的“移动云服务”(“MCS”)。实施例允许利用将云服务用于后端服务的预定义模板来构建移动应用,使得可以在应用开发期间向开发人员呈现服务定义,以允许UI设计和后端服务之间的快速连接。
MCS
在使用MCS的实施例中,MCS促进移动计算设备和企业计算机系统之间经由云计算机系统的通信。MCS在移动设备和公司的企业网络之间使用基于第三方云的接口。基于云的接口集中了用于各种企业计算机系统的安全适配器,并将不同的协议翻译为标准化的表示状态传输(“REST”)体系架构。公司可以使用本发明的实施例来利用MCS上可用的工具创建他们自己的定制移动应用,并且这种应用可以以本机形式被下载到移动用户设备上。一旦安装了应用,应用就可以访问MCS的基于云的接口,以通过由MCS提供的安全适配器到达各种企业计算机系统。
对于使用MCS的实施例中的应用开发,MCS依据移动后端即服务(“MBaaS”,也称为“BaaS”)模型提供后端服务。MBaaS允许Web和移动应用开发人员将其应用链接到后端云储存器和由后端应用暴露的API,同时还提供用户管理、推送通知、与社交联网服务的集成等。通过使用依据MBaaS模型在MCS中提供的后端服务,实施例提供了被配置用于由不熟悉编码的非技术用户进行移动应用开发的声明性的基于Web的UI。
在一个实施例中,当用户开始开发新应用时,向导被启动,并且用户被要求给出新应用的名称和描述。然后,通过从可以为应用的第一页预先制作(pre-seed)UI的预定义模板集合(例如,选项卡、底部选项卡、分页等)中进行选择来要求用户设计第一页。然后,通过在模板中指定细节来完成UI,同时预览被自动更新,以显示改变。在完成UI设计时,用户可以使用调色板来浏览通过MCS对移动应用可用的可用服务和数据源的目录(例如,服务目录)。对于被添加到UI的目录的每个项目,向用户呈现属性列表,并且,利用一个或多个手势(例如,拖放等),用户可以将属性绑定到UI元素。用户可以重复特征定义和数据绑定的过程,以创建移动应用。其它UI组件(诸如地图、图形等)也可以添加到UI。当应用准备好进行测试时,用户可以发布应用,使得创建对应的二进制文件(构建用于iOS、Android或任何其它移动设备OS的本机可执行文件),并且随后生成快速响应(“QR”)码并提供给用户。如果用户通过移动设备扫描QR码,则应用在空中(over the air)安装到移动设备上。
实施例在ADF中使用预先构建的组件。这些组件提供数据交互、数据可视化和封装的浏览器侧操作,并且简化丰富客户端应用开发。ADF还可以实现诸如Apache Cordova插件的插件,以访问诸如相机、全球定位系统(“GPS”)、联系人等设备特征。
在一个实施例中,当ADF接收到构建用于移动设备的应用的请求时,它确定已利用工具包预编译的一个或多个已开发的应用的部分,并修改与那些现有应用关联的声明性信息。然后这个实施例通过打包表示用于期望的操作系统(“OS”,诸如iOS、Android等)的所请求应用的二进制产品来基于修改的声明性信息和现有应用的一个或多个二进制产品来构建所请求的应用。然后,ADF编译所请求的应用,以生成一个或多个二进制产品和定义文件集合。在最终用户开发中,产品是由最终用户创建的应用或复杂数据对象,而不需要知道编程语言。
移动安全
一些实施例使用由移动安全套件提供的安全服务,该移动安全套件诸如来自Oracle公司的“Oracle移动安全套件”(“OMSS”)。OMSS是移动设备和移动应用安全解决方案,其提供以雇员为中心的综合企业移动管理(“EMM”)解决方案和以消费者为中心的移动和社交服务。EMM通过无缝地绑定到现有用户身份并充分利用用于移动接入的企业后端身份管理基础设施的高级功能来提供移动设备管理(“MDM”)、移动应用管理(“MAM”)、移动内容管理(“MCM”)和移动身份策略。遵守公司需求的安全策略可以被定义为实施完整的设备锁定(通常用于公司拥有的设备)和/或将个人应用与安全的“容器化”公司应用和数据分离(用于自带设备(“BYOD”)的情形)。移动和社交服务提供软件开发工具包(“SDK”),从而允许公司开发人员确保用于iOS和Android设备的定制企业应用、弥补(bridge)移动设备、社交网络和企业后端身份管理基础设施之间的差距(gap)。
为了应用和内容安全性,OMSS将安全容器输送到移动设备,以分离、保护和擦除公司应用和数据。移动设备和企业内联网资源之间的所有通信通过经认证的传输层安全(“TLS”)/安全套接字层(“SSL”)隧道(“AppTunnel”),该传输层安全/安全套接字层隧道仅由移动设备的通过审查的(或“容器化的”)应用使用。AppTunnel终止于位于公司非保密区(“DMZ”)的移动安全访问服务器。这个服务器提供对移动设备的安全内联网访问并且仅从安全容器终止AppTunnel,由此减少流氓应用的风险和对设备级VPN的需要。
充分利用ADF提供的内容,实施例提供了基于浏览器的应用开发,其不需要编码并且容易映射到业务服务。实施例还允许在线(例如,当应用被开发时)预览应用,以及从浏览器编辑、测试和发布应用。相应地,实施例被配置为供商业用户(例如,非技术用户)使用,而不是被配置为由专业开发人员使用的IDE(诸如来自Oracle公司的“Jdeveloper”)。
服务目录
为了支持使用MCS的本发明的实施例,MCS提供对API目录的访问,该API目录诸如来自Oracle公司的“Oracle API目录”(“OAC”)。OAC提供对组织中的可用API的可见性,使得那些API可以被重用于应用开发。OAC包括用于API资产的简单元模型、利用API填充OAC的自动化,以及让用户搜索用于API的OAC并且理解API的细节以评估它们在其应用中的适合性的能力。OAC包括在OAC中创建API资产的采集器(harvester)。在一些实施例中,在项目构建时执行采集。采集器回顾部署的服务并创建表示在项目中发现的服务的API资产,诸如面向服务的体系架构(“SOA”)服务和服务总线代理、基于Web服务描述语言(“WSDL”)的Web服务,以及基于Web应用描述语言(“WADL”)的REST服务。创建的资产在OAC中收集。
在采集器创建API资产之后,负责人(curator)利用简单的编辑器编辑API资产,以提供附加的元数据,从而促进API的发现和理解。负责人可以改变OAC中API资产的名称、添加描述、标记关键字或添加文档引用。这种元数据简化了由用户对每个API资产的发现和理解。在编辑API元数据后,负责人通过使API对OAC中的用户可见来发布API。已发布的资产在OAC控制台中并经由Oracle JDeveloper Oracle企业储存库插件可用。用户可以搜索OAC,以发现API并审查由负责人提供的元数据,以了解有关API的更多信息。
向每个OAC用户指派角色,该角色确定哪些OAC特征和内容对每个用户可用。OAC中有预定义的角色,包括开发人员、负责人和管理员。具有开发人员角色的用户具有在已发布的API中搜索OAC、检查API元数据以更好地了解API、声明对API的兴趣以及提交对API的评分和审查的能力。除了开发人员角色可用的能力外,具有负责人角色的用户还可以运行采集器在OAC中创建新的API资产、编辑API以更新其元数据,并发布它们。除了负责人和开发人员可用的能力外,具有管理员角色的用户还可以访问OAC中的管理页面,以通过编辑系统设置、创建新用户、创建新部门、管理会话以及利用导入/导出工具来管理OAC的基础设施。管理员还可以配置OAC中包括的安全特征。
在一些实施例中,可以将应用开发并部署到移动设备,作为本机应用或被托管应用。对于本机应用部署,在设备上安装完整的应用。对于被托管应用开发,用户需要从“应用商店”下载托管应用,其中这种托管应用“托管”将作为“特征”被安装到托管应用上的被托管应用。这个实施例可以允许从服务器更新正在运行的托管应用,使得可以将声明性元数据发送到设备并且覆盖在现有应用之上,以更新应用来针对这种新的元数据运行。
图1是用于通过利用预定义模板来开发应用的系统环境100的框图,该预定义模板允许使用MCS 122作为后端服务。在应用开发期间可以向用户呈现服务定义,从而允许UI设计和后端服务之间的快速连接。
在所示实施例中,系统环境100包括向一个或多个客户端计算设备104、106和108提供云服务的云基础设施系统102。客户端计算设备104、106和108可以由用户用来与云基础设施系统102交互。客户端计算设备104、106和108可以被配置为操作客户端应用,诸如Web浏览器、专有客户端应用(例如,Oracle Forms)或某种其它应用,该客户端应用可以由客户端计算设备的用户用来与云基础设施系统102交互,以使用由云基础设施系统102提供的服务。
云基础设施系统102可以具有除所绘出的那些之外的其它组件。另外,图1中所示的实施例仅仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统102可以具有比图1中所示更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。
客户端计算设备104、106和108可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(“PDA”))或可穿戴设备(例如,Google头戴式显示器),该便携式手持设备或可穿戴设备运行软件并且启用互联网、电子邮件、短消息服务(“SMS”)、或其它通信协议,该软件诸如Microsoft Windows和/或各种移动OS(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)。客户端计算设备104、106和108可以是通用个人计算机,例如包括运行MicrosoftApple和/或Linux OS的各种版本的个人计算机和/或膝上型计算机。客户端计算设备104、106和108可以是运行任何各种商业可用的或类UNIX操作系统(包括但不限于各种GNU/Linux OS,诸如例如Google Chrome OS)的工作站计算机。可替代地或附加地,客户端计算设备104、106和108可以是能够经(一个或多个)网络110进行通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的微软Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性系统环境100被示出为具有三个客户端计算设备,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与云基础设施系统102交互。
(一个或多个)网络110可以促进客户端104、106和108与云基础设施系统102之间的通信和数据交换。(一个或多个)网络110可以是本领域技术人员熟悉的任何类型的网络,其可以利用各种商业可用的协议(包括但不限于传输控制协议/互联网协议(“TCP/IP”)、系统网络体系架构(“SNA”)、互联网分组交换(“IPX”)、AppleTalk等)中的任一种支持数据通信。仅仅作为示例,(一个或多个)网络110可以是局域网(“LAN”),诸如基于以太网、令牌环等的LAN。(一个或多个)网络110可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网络(“VPN”)、内联网、外联网、公共交换电话网络(“PSTN”)、红外网络、无线网络(例如,依据电气和电子协会(“IEEE”)802.11协议套件、和/或任何其它无线协议中的任何协议操作的网络);和/或这些和/或其它网络的任何组合。
云基础设施系统102可以包括一个或多个计算机和/或服务器。这些计算机系统或服务器可以由以下组成:一个或多个通用计算机、专用服务器计算机(例如,包括个人计算机(“PC”)服务器、服务器、中档服务器、大型机计算机、机架安装服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合。在各种实施例中,与云基础设施系统102关联的一个或多个计算机系统或服务器可以适于运行在前述公开内容中描述的一个或多个服务或软件应用。例如,与云基础设施系统102关联的一个或多个计算机系统或服务器可以对应于用于执行根据本公开内容的实施例执行本文所述的处理的服务器。
与云基础设施系统102关联的一个或多个计算机系统或服务器可以运行包括上面讨论的任何一个OS的OS,以及任何商业可用的服务器OS。与云基础设施系统102关联的一个或多个计算机系统或服务器还可以运行各种附加的服务器应用和/或中间层应用中的任何一种,包括超文本传输协议(“HTTP”)服务器、文件传输协议(“FTP”)服务器、公共网关接口(“CGI”)服务器、服务器、数据库服务器等。
在某些实施例中,由云基础设施系统102提供的服务可以包括按需对云基础设施系统102的用户可用的服务的主机,该可用的服务诸如在线数据存储和备份解决方案、基于web的电子邮件服务、被托管的办公室套件和文档协作服务、数据库处理、被管理的技术支持服务等。由云基础设施系统102提供的服务可以动态扩展,以满足其用户的需要。由云基础设施系统102提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统不同于客户自己的内部部署(on-premise)服务器和系统。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。
在一些示例中,由云基础设施102实例化的服务实例可以包括对储存器、被托管的数据库、被托管的Web服务器、软件应用或由云供应商向用户提供的其它服务或者如本领域中另外已知服务的受保护的计算机网络访问。例如,由云基础设施102实例化的服务实例可以包括通过互联网对云上的远程储存器进行密码保护的访问。作为另一个示例,由云基础设施102实例化的服务实例可以包括基于Web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网开发人员私人使用。作为另一个示例,由云基础设施102实例化的服务实例可以包括对在云供应商的Web站点上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统102可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式输送给客户的应用、中间件、开发服务和数据库服务供应的套件。如在云基础设施服务102中体现的这种云基础设施系统的示例是来自Oracle公司的“Oracle公共云”。
云基础设施系统102可以经由不同的部署模型提供云服务。例如,可以依据公共云模型提供服务,在公共云模型中云基础设施系统102由销售云服务的组织拥有(例如,由Oracle公司拥有),并且服务对一般公众或不同行业的企业可用。作为另一个示例,可以依据私有云模型提供服务,在私有云模型中云基础设施系统102仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。云服务还可以依据社区云模型被提供,在社区云模型中云基础设施系统102和由云基础设施系统102提供的服务由相关社区中的若干组织共享。云服务还可以依据混合云模型提供,该混合云模型是两个或更多个不同模型的组合。
在一些实施例中,由云基础设施系统102提供的服务可以包括在软件即服务(“SaaS”)类别、平台即服务(“PaaS”)类别、基础设施即服务(“IaaS”)类别、MBaaS类别或其它服务(包括混合服务)类别下提供的一个或多个服务。在一些实施例中,由云基础设施系统102提供的服务可以包括但不限于应用服务、平台服务、基础设施服务、后端服务等。在一些示例中,应用服务可以由云基础设施系统102经由SaaS平台被提供。SaaS平台可以被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和递送按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买的单独许可证和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施系统102经由PaaS平台提供。PaaS平台可以被配置为提供属于PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础设施系统102提供的PaaS服务,而无需客户购买单独的许可证和支持。平台服务的示例包括但不限于来自Oracle公司的“Oracle Java云服务”(“JCS”)、来自Oracle公司的“Oracle数据库云服务”(“DBCS”)等。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统102支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施系统102提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,其使得组织能够汇集数据库资源并且以数据库云的形式向客户提供数据库即服务。中间件云服务可以为客户提供开发和部署各种业务应用的平台,并且Java云服务可以为客户提供在云基础设施系统中部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统102中的IaaS平台提供。基础设施服务促进底层计算资源(诸如储存器、网络和其它基础计算资源)的管理和控制,用于让客户利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施系统102可以在云基础设施系统中提供云服务(例如,SaaS、PaaS、IaaS和MBaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统102接收的客户订阅等的能力。在各种实施例中,云基础设施系统102可以适于自动供应、管理和跟踪客户对由云基础设施系统102提供的服务的订阅。客户经由订阅订单可以订购由云基础设施系统102提供的一个或多个服务。然后云基础设施系统102执行处理,以提供客户的订阅订单中的服务。
在一个实施例中,云管理功能可以由诸如订单管理和监视模块114的一个或多个模块提供。这些模块可以包括一个或多个计算机和/或服务器,或可以利用一个或多个计算机和/或服务器提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
在示例操作中,利用客户端计算设备104、106或108的客户可以通过请求由云基础设施系统102提供的一个或多个服务来与云基础设施系统102交互。客户可以利用各种手段向云基础设施系统102发出服务请求134。服务请求134可以包括对由云基础设施系统102提供的一个或多个服务的订阅下订单、访问由云基础设施系统102提供的一个或多个服务等。在某些实施例中,客户可以访问云UI 132、134、138并且经由这些UI下订阅订单。由云基础设施系统102响应于客户下订单而接收的订单信息可以包括识别客户和客户打算订阅的、由云基础设施系统102提供的一个或多个服务的信息。在客户下订单之后,经由云UI 132、134和/或138接收订单信息。
在这个示例中,订单管理和监视模块112将从客户接收的信息发送到订单数据库,以存储客户下的订单。订单数据库可以是由云基础设施系统102操作并且与其它系统元件结合起来操作的若干数据库中的一个。订单管理和监视模块112可以将包括存储在订单数据库中的订单信息的全部或部分的信息转发到订单管理模块。在一些情况下,订单管理模块可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,并且在通过验证后,预订(booking)订单。
在某些实施例中,云基础设施系统100可以包括身份管理模块114。身份管理模块114可以被配置为提供身份服务,诸如云基础设施系统102中的访问管理和授权服务。在一些实施例中,身份管理模块114可以控制关于希望利用由云基础设施系统102提供的服务的客户的信息。这种信息可以包括认证这些客户的身份的信息和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块114还可以包括关于每个客户的描述性信息以及关于如何和由谁来访问和修改描述性信息的管理。
在某些实施例中,云基础设施系统102还可以包括用于提供资源的基础设施资源116,该资源用于向云基础设施系统102的客户提供各种服务。在一个实施例中,基础设施资源116可以包括预先集成和优化的硬件的组合以执行由PaaS平台和SaaS平台提供的服务,该硬件诸如服务器、储存器和网络资源。
在一些实施例中,云基础设施系统102中的资源可以由多个用户共享并且根据需求动态地重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统102可以使在第一时区中的第一组用户能够利用云基础设施系统的资源指定的小时数,并且然后使相同资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统102的不同组件或模块以及由云基础设施系统102提供的服务共享的多个内部共享服务118。这些内部共享服务118可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在各种实施例中,外部共享服务120可以包括向(一个或多个)企业计算机系统126提供访问、数据变换、自动化等的一个或多个组件。对(一个或多个)企业计算机系统126的访问可以由云基础设施系统102的不同组件或模块以及由云基础设施系统102提供的服务共享。在一些实施例中,对(一个或多个)企业计算机系统126的访问可以由云基础设施系统102提供的、受限于一个或多个订户的服务实例共享。
在进一步的实施例中,外部共享服务120可以包括由云基础设施系统102的不同组件或模块以及由云基础设施系统102提供的服务共享的外部应用程序编程接口(“API”)服务128。API服务128可以包括但不限于由其它第三方服务或实体提供的API。
各种不同的移动云服务可以由云基础设施系统102中的MCS 122提供。根据本发明的一些实施例,MCS 122促进移动计算设备和企业计算机系统(例如,企业计算机系统124和126)之间的通信。MCS 122可以包括用来存储企业数据和认证信息的一个或多个存储器存储设备(“本地储存器”)。企业数据可以从企业计算机系统126或从客户端计算设备104、106或108接收,或者可以包括由云基础设施系统102转换的企业数据,或其组合。认证信息可以从身份管理系统116接收和/或由云基础设施系统102生成。在一些实施例中,认证信息可以包括指示用户相对于针对服务的请求的安全认证的信息。
诸如企业计算机系统126的企业计算机系统可以在与云基础设施系统102不同的地理位置(例如,远程地理位置)处物理地位于云基础设施系统102的防火墙之外。在一些实施例中,企业计算机系统126可以包括一个或多个不同的计算机或服务器。在一些实施例中,企业计算机系统126可以是单个计算机系统的一部分。
在某些实施例中,企业计算机系统126可以利用一个或多个不同的协议与云基础设施系统102通信。每个企业计算机系统126可以利用不同的通信协议与云基础设施系统102通信。企业计算机系统126可以支持相同或不同的安全协议。在一些实施例中,MCS 122可以包括代理系统,以处理与企业计算机系统126的通信。
协议可以包括通信协议,诸如SPeeDY(“SPDY”)。协议可以包括诸如基于HTTP的协议的应用协议。在一些实施例中,企业计算机系统126可以利用诸如REST或简单对象访问协议(“SOAP”)的通信协议与云基础设施系统102通信。例如,REST协议可以支持包括统一资源标识符(“URI”)或统一资源定位符(“URL”)的格式。为了利用REST协议的通信而格式化的企业数据可以容易地转换成诸如JavaScript对象标注(“JSON”)、逗号分隔值(“CSV”)和真正简单聚合(really simple syndication,“RSS”)的数据格式。企业计算机系统126和云基础设施系统102可以利用诸如远程过程调用(“RPC”)(例如,扩展标记语言(“XML”)RPC)的其它协议来通信。
在一些实施例中,MCS 122可以包括被配置为支持与由云基础设施服务102提供的一个或多个服务的通信的适配器接口,其中一些服务可以支持用于通信的不同协议或技术。在一些实施例中,MCS 122可以包括被配置为支持与企业计算机系统126的通信的适配器接口,其中一些企业计算机系统可以支持用于通信的不同协议或技术。MCS 122可以包括一个或多个适配器,每个适配器可以被配置为根据通信协议、企业计算机系统的类型、应用的类型、服务的类型或其组合进行通信。适配器支持的通信协议可以特定于服务或一个或多个企业计算机系统126。
在某些实施例中,客户端计算设备104、106和108可以各自实现这样的应用:该应用可以提供特定UI来与MCS 122通信。特定UI可以被配置为利用特定通信协议进行通信。在一些实施例中,特定UI可以包括可被调用以便与MCS 122通信的可调用接口、函数、例程、方法和/或操作。特定UI可以为了与云基础设施服务102提供的服务通信或与企业计算机系统126通信和/或请求服务而接受企业数据,作为输入参数。在一些实施例中,通过MCS 122的通信可以被转换,用于利用定制的通信协议进行通信。在一些实施例中,特定UI可以对应于应用中的定制客户端。
MCS 122可以包括一个或多个可调用接口,例如API。与MCS 122关联的可调用接口可以使得移动计算设备上的应用能够向MCS 122传送请求。与MCS 122关联的可调用接口可以支持公共或标准接口,这使得请求可以包括要根据标准化协议、体系架构风格和/或格式(例如,REST协议)从应用接收的参数。与MCS 122关联的可调用接口可以由计算设备104、106或108中的任何一个的用户来配置。与MCS 122关联的可调用接口可以根据通信协议接收对服务的请求。设备应用开发人员可以连接到MCS 122,以用于其定制应用。在一些实施例中,与MCS 122关联的可调用接口可以由开发应用的同一个人配置,使得该人可以实现定制应用,以与MCS 122通信。
与MCS 122关联的可调用接口还可以使企业计算机系统126能够根据标准化的协议或格式与MCS 122通信。与应用开发人员类似,管理企业计算机系统的人可以实现被配置为经由一个或多个可调用接口与MCS 122通信的代码(例如,代理系统)。与MCS 122关联的可调用接口可以基于计算设备的类型、企业计算机系统的类型、应用、代理系统、服务、协议或其它标准来被实现。在一些实施例中,与MCS 122关联的可调用接口可以支持对服务的请求,该服务包括认证、压缩、加密、使用游标的分页、基于客户端的节流(throttling)、不可否认性、记录和度量收集。在一些实施例中,与MCS 122关联的可调用接口可以被实现用于定制的业务相关服务,诸如认证、策略实施、响应的高速缓存、对MCS 122的调用的节流,在异步和同步模式之间的翻译、对底层服务的调用的记录或其组合。在一些实施例中,与MCS122关联的可调用接口可以使用户能够加载用于由云基础设施系统102实现的定制代码。定制代码可以实现用于云基础设施系统102的与MCS 122关联的一个或多个可调用接口,这可以使用户能够访问定制服务或其它企业计算机系统。
与MCS 122关联的协议翻译器可以处理消息,以确定用于消息的通信协议和/或将消息转换为用于目的地的通信协议。与MCS 122关联的协议翻译器可以转换从客户端计算设备104、106或108接收的请求。该请求可以从客户端计算设备104、106或108支持的通信协议的格式转换为由云基础设施服务102提供的服务或企业计算机系统126支持的通信协议的格式。与MCS 122关联的协议翻译器可以转换从由云基础设施服务102提供的服务或从企业计算机系统126接收的响应。响应可以从由云基础设施服务102提供的服务或企业计算机系统126支持的通信协议的格式转换成由客户端计算设备104、106或108支持的通信协议的格式。
与MCS 122关联的安全服务可以管理从客户端计算设备104、106或108中任一个接收的请求的安全认证。与MCS 122关联的安全服务可以保护客户过程和企业数据的完整性。为了防止系统或数据被破坏,当从客户端计算设备104、106或108接收到请求时,可以发生安全认证。安全认证可以在分派请求以供云基础设施系统102处理之前执行。为用户确定的安全认证可以使得与移动计算设备关联的用户能够具有经由MCS 122请求服务的授权。安全认证可以减少用户对经由MCS 122请求的不同请求和/或服务进行认证的工作。与MCS122关联的安全服务可以被实现一个或多个功能块或模块,该一个或多个功能块或模块被配置为执行对请求的安全性进行认证的各种操作。
与MCS 122关联的认证服务可以管理从客户端计算设备104、106或108接收的请求的安全认证。与MCS 122关联的认证服务可以确定与向MCS 122发送请求的计算设备关联的用户的安全认证。安全认证可以基于时间段来确定,该时间段可以绑定到应用的操作(例如,启动应用)、请求、计算设备、企业计算机系统、与请求相关的其它标准或其组合。安全认证可以针对以下任何一个进行验证和准许,诸如个人请求、一个或多个企业计算机系统、特定服务、服务类型、用户、计算设备、用于确定安全认证的其它标准或其组合。在一些实施例中,云基础设施系统102可以存储从企业计算机系统或支持企业计算机系统的认证系统接收的用户的认证信息。云基础设施系统102可以通过执行查找功能以确定与请求关联的用户的身份是否具有做出这种请求的授权来确定认证。所存储的认证信息可以包括用户可以被授权访问的、诸如请求的类型、功能、企业计算机系统、企业数据等信息。在一些实施例中,基础设施系统102可以发起与发出请求的计算设备的通信,以确定认证。
在一些实施例中,安全认证可以基于与请求服务的用户关联的角色来确定。角色可以与请求访问MCS 122的用户关联。在一些实施例中,用户可以作为MCS 122的订户或租户来请求服务,该订户或租户可以被准许访问由MCS 122提供的资源和/或服务。认证可以对应于用户对MCS 122的订阅,使得用户可以被授权作为订户经由MCS 122请求服务。在一些实施例中,订阅可以限于由MCS 122提供的特定资源集合。安全认证可以基于MCS 122的用户可访问的资源和/或服务。在一些实施例中,可以在所谓“运行时环境”的执行期间为请求供应模板。运行时环境可以与为请求、用户或设备分配的资源关联。
在一些实施例中,与MCS 122关联的认证服务可以请求身份管理系统确定对于用户的安全认证。身份管理系统可以由云基础设施系统102(例如,作为身份管理114)或由云基础设施系统102外部的另一计算机系统实现。身份管理116可以基于用户的角色或者对访问MCS 122的订阅来确定用户的安全认证。可以关于企业计算机系统、企业计算机系统提供的服务、企业计算机系统的功能或特征、用于控制对企业计算机系统的访问的其它标准或其组合向角色或订阅指派特权和/或权利。
ADF
可以在云基础设施系统102中提供各种不同的ADF 124。ADF 124提供基础设施代码,以实现基于敏捷的SOA的应用。ADF 124还通过一个或多个开发工具(例如,“OracleJDeveloper 11g”开发工具)提供开发的可视和声明性方法。由ADF 124提供的一个或多个框架可以实现MVC设计模式。这种框架提供集成的解决方案,其覆盖MVC体系架构的所有层,具有对诸如对象/关系映射、数据持久性、可重用控制器层、丰富的Web UI框架、数据到UI的绑定、安全性和定制的方面的解决方案。除了核心的基于Web的MVC方法之外,这种框架还与Oracle SOA和WebCenter Portal框架集成,从而简化了完整复合应用的创建。
在某些实施例中,ADF 124使得容易开发敏捷应用,该敏捷应用通过将服务接口耦合到由云基础设施系统102提供的内置业务服务来将数据作为服务暴露。业务服务实现细节的这种分离在ADF 124中经由元数据执行。这种元数据驱动的体系架构的使用使应用开发人员能够专注于业务逻辑和用户体验,而不是服务被如何访问的细节。在某些实施例中,ADF 124在模型层中的元数据中存储服务的实现细节。这使开发人员能够在不修改UI的情况下交换服务,从而使应用非常敏捷。此外,创建UI的开发人员不需要操心业务服务访问细节。相反,开发人员可以专注于开发应用接口和交互逻辑。创建用户体验可以像将期望的业务服务拖放到可视页面设计器上并指示应当由哪种类型的组件表示那个数据一样简单。
在各种实施例中,开发人员与ADF 124交互,以创建形成企业应用的模块。企业应用可以在云基础设施系统102的上下文中执行。在各种实施例中,开发人员与ADF 124交互,以创建形成移动应用的模块。移动应用可以在云基础设施系统102的上下文中执行。下面描述的本发明的特征可以利用编程语言和应用开发框架的任何期望的组合实现,通过阅读本文提供的公开内容,这对于相关领域的技术人员将是显而易见的。
在一个示例中,由ADF 124提供的一个或多个框架可以体现为Oracle ADF。相应地,ADF 124中的框架可以基于MVC设计模式。MVC应用被分为:1)处理与数据源的交互并运行业务逻辑的模型层,2)处理应用UI的视图层,以及3)管理应用流并充当模型和视图层之间的接口的控制器。将应用分为这三个层简化了组件跨应用的维护和重用。每个层与其它层的独立性导致松散耦合的SOA。
在各种实施例中,ADF 124提供允许开发人员创建多层形式的应用的工具和资源,每层包含根据预定义的规范实现期望逻辑的代码模块/文件。因此,在一个实施例中,ADF124使应用能够被开发为四层:包含提供应用的UI的代码模块/文件的视图层,包含控制应用的流的代码模块的控制器层,包含为底层数据提供抽象层的数据/代码模块的模型层,以及包含提供对来自各种源的数据的访问并处理业务逻辑的代码模块的业务服务层。
在某些实施例中,ADF 124让开发人员选择当实现每一层时他们喜欢使用的技术。企业JavaBean(“EJB”)、Web服务、JavaBeans、JPA/EclipseLink/TopLink对象以及许多其它都可以被用作ADF 124的业务服务。视图层可以包括利用Java Server Faces(“JSF”)、桌面交换(swing)应用和Microsoft Office前端实现的基于Web的界面,以及用于移动设备的界面。
在一方面,视图层表示正在被开发的应用的UI。视图层可以包括桌面、移动和基于浏览器的视图,其中每个视图提供UI的全部或一部分,并且以对应于视图类型的各种方式可访问。例如,网页可以由应用响应于接收到包含对应URL的客户端请求而被发送。然后,网页可以由与发出请求的客户端系统关联的显示单元(未示出)上的浏览器显示,由此使发出请求的客户端系统的用户能够与企业应用交互。ADF 124支持对业务服务的多通道访问,从而允许业务服务的重用和从Web客户端、基于客户端-服务器交换桌面的应用、MicrosoftExcel电子表格、诸如智能电话的移动设备等进行访问。
可以利用超文本标记语言(“HTML”)、Java服务器页面(“JSP”)和JSF中的一个或多个来实现形成视图层(诸如网页)的代码文件/模块。可替代地,UI可以利用诸如Swing和/或XML的Java组件来实现。如进一步指出的,UI可以充分利用用户的体验和对桌面应用(诸如Microsoft的Word和Excel)的熟悉度。
如上面所指出的,在每一层中提供相关的用户开发的代码/数据模块。但是,每一层通常包含由ADF 124提供的其它预定义的代码/数据模块。一些预定义的模块可以在开发期间使用,例如,作为用于开发网页的模板,用于在所开发的代码中包括期望的功能等。其它预定义模块(诸如URL重写模块)可以与开发的应用一起部署,并且可以在企业应用执行期间向用户提供附加的功能(将所请求的URL映射到内部名称)。
控制器层包含控制应用的流的代码模块/文件。每个控制器对象包含根据在视图层中呈现信息的期望方式实现的软件指令和/或数据。期望的方式可以包括当用户点击/选择另一个网页中的链接时要显示的特定网页、当执行期间发生错误时要显示的页面、指示要存储/检索的特定数据等。
在一方面,控制器层管理应用流并处理用户输入。例如,当在页面上点击搜索按钮时,控制器确定要执行的操作(进行搜索)和导航到的位置(结果页面)。在JDeveloper中对于基于Web的应用有两个控制器选项:标准JSF控制器或扩展JSF控制器功能的ADF控制器。无论使用哪种控制器,应用流通常都是通过在图表上布置页面和导航规则来设计的。应用的流可以被分解为更小的、可重用的任务流;包括非可视组件,诸如流中的方法调用和决策点;并创建在单个包含页面的区域内运行的“页面片段”流。
形成控制器层的代码模块/文件常常被实现为接收客户端请求并将期望的网页作为对应的响应发送的Java小服务程序(servlet)。控制器对象也可以被实现为例如ApacheJakarta Struts控制器,或根据JSF标准实现。
模型层包含将各种业务服务连接到在其它层中使用该业务服务的对象的数据/代码模块,诸如连接到上面讨论的控制器对象或直接连接到桌面应用。模型层的每个抽象数据对象提供可以被用来访问在底层业务服务层中执行的任何类型的业务服务的对应接口。数据对象可以从客户端抽象服务的业务服务实现细节和/或向视图组件暴露数据控制方法/属性,从而提供视图层和数据层的分离。
在一方面,模型层由利用元数据文件来定义接口的两个组件——数据控件和数据绑定组成。数据控件从客户端抽象业务服务实现细节。数据绑定向UI组件暴露数据控件方法和属性,从而提供视图和模型的干净分离。由于模型层的元数据体系架构,当将任何类型的业务服务层实现绑定到视图层和控制器层时,开发人员获得相同的开发体验。
在某些实施例中,ADF 124强调贯穿整个开发过程使用声明性编程范例,以允许用户专注于应用创建的逻辑,而不必涉及实现细节。在高级别,用于融合Web应用的开发过程通常涉及创建应用工作空间。利用向导,由开发人员选择的技术所需的库和配置被自动添加,并将应用结构化为具有包和目录的项目。
通过对数据库对象进行建模,可以创建任何数据库的在线数据库或离线副本、编辑定义,以及更新架构(schema)。然后可以利用统一建模语言(“UML”)建模器为应用创建用例。还可以设计应用控制和导航。图形绘制器可以被用来可视地确定应用控制和导航的流。然后,可以自动创建描述流的底层XML文件。资源库可以被用来允许开发人员通过简单地将它们拖放到应用中来查看和使用导入的库。从数据库表,可以利用向导或对话框创建实体对象。从那些实体对象,创建视图对象以供应用中的页面使用。可以实现验证规则和其它类型的业务逻辑。
在这个示例中,业务服务层管理与数据持久化层的交互。它提供诸如数据持久性、对象/关系映射、事务管理和业务逻辑执行等服务。业务服务层可以以以下任何选项实现:作为简单的Java类、EJB、Web服务、JPA对象和Oracle ADF业务组件。此外,数据可以直接从文件(XML或CSV)以及REST中获得并使用。因此,每个业务服务管理与对应的数据持久化层的交互,并且还提供诸如对象/关系映射、事务管理、业务逻辑执行等服务。业务服务层可以利用简单的Java类、企业Java Beans、Web服务等当中的一个或多个来实现。
业务组件表示使用例如来自Oracle公司的“Oracle ADF业务组件”实现的业务服务,以提供与数据库、Web服务、遗留系统、应用服务器等的交互。在一个实施例中,业务服务层的业务组件包含应用模块、视图/查询对象和实体对象的混合,该应用模块、视图/查询对象和实体对象合作以提供业务服务实现。应用模块可以是UI客户端为了与应用/事务数据一起工作而与其通信的事务组件/代码模块。应用模块可以提供可更新的数据模型以及与用户事务相关的过程/函数(通常被称为服务方法)。
实体对象可以表示数据库表中的对应行并且简化对存储在对应行中的数据的操纵(更新、删除等)。实体对象常常封装用于对应行的业务逻辑,以确保始终实施期望的业务规则。实体对象还可以与其它实体对象关联,以反映存储在底层数据库中的行之间存在的关系。
图2示出了根据本发明的一些实施例、用于促进移动计算设备和企业计算机系统之间的通信的计算环境200的框图。为了说明的目的,本文提供了各种例子来描述用于使移动计算设备(例如,计算设备202)与一个或多个企业计算机系统通信的技术,该一个或多个企业计算机系统诸如云企业计算机系统240(例如,“serviceprovider.com”)和内部部署企业计算机系统250。这种通信可以是交换或传送企业数据、请求由企业计算机系统提供的服务、传送消息,或其组合。
消息可以包括服务调用消息、结果消息、请求消息、在内部传送的其它消息、在计算设备和企业计算机系统之间传送的其它消息,或其组合。消息可以包括消息类型(例如,来自一组共享类型常量的类型值)、相关性id(例如,用来将这个消息与一个或多个其它消息相关的id)、支持基于优先级的消息队列的优先级信息、超时、支持消息数据隔离的灵敏度指示、消息源(例如,发送者的统一资源标识符)、消息目的地(例如,唯一地识别目的地的统一资源标识符)、请求上下文(例如,来自分派器的请求信息),和/或消息有效载荷,该有效载荷可以依赖于正在被发送的消息的类型而具有不同的属性,
该消息的类型诸如参数数据和结果数据。
如本文所述的企业数据可以包括从企业计算机系统接收的数据、发送到企业计算机系统的数据、由企业计算机系统处理的数据,或其组合。企业数据可以是能够与用于消费者应用和/或服务的数据区分的。在一些实施例中,例如,企业数据可以基于企业数据的应用或使用而改变,而用于消费者应用的数据(例如,消费者数据)可以在使用中保持静态。在某些实施例中,企业数据可以包括指示用于存储、使用和/或管理企业数据的标准的规则,或者与该规则相关联。例如,企业数据可以与指示用于存储、使用和/或管理企业数据的一个或多个策略的策略信息关联。在某些实施例中,策略信息可以包括在企业数据中。在某些实施例中,企业数据可以包括由在企业计算机系统中执行的应用或服务处理、存储、使用或传送的数据。例如,企业数据可以包括诸如来自企业应用的“JavaScript对象标注”(“JSON”)格式化数据的业务数据(例如,业务对象)、结构化数据(例如,键值对)、非结构化数据(例如,由应用处理或使用的内部数据、JSON格式的数据、社交帖子、会话流、活动馈送等)、二进制大对象(“BLOB”)、文档、系统文件夹(例如,沙箱环境中应用相关的文件夹)、使用REST技术的数据(在本文被称为“REST性的数据”)(例如,通过REST端点使其可用的同步数据)、系统数据、配置数据、同步数据,或其组合。在一些实施例中,企业数据可以包括REST格式化的企业数据。REST格式化的企业数据可以包括REST性的数据。REST格式化的企业数据可以包括根据由企业计算机系统实现的REST技术格式化的数据。配置或同步数据可以包括用于企业数据的同步的数据,诸如版本、历史、集成数据等。企业数据中的文档可以包括XML文件、可视资产、配置文件、媒体资产等。BLOB可以包括被存储为数据库管理系统中的单个实体的二进制数据的集合,诸如图像、多媒体对象或可执行代码、或者本领域中其它已知的。
企业计算机系统可以包括被配置为为实体或企业操作的各种计算系统。例如,企业计算机系统可以包括一个或多个计算机系统,诸如企业服务器计算机(例如,后端服务器计算机),以处理对服务的请求。企业计算机系统可以包括可以利用企业数据处理和/或操作的应用和/或服务。例如,企业计算机系统250可以提供用于管理或运营企业的一个或多个服务和/或应用。服务可以包括,但不限于,客户关系管理(“”CRM”)、人力资本管理(“HCM”)、人力资源(“HR”)管理、供应链管理、企业通信、电子邮件通信、业务服务、其它企业管理服务或应用或其组合。企业计算机系统250可以包括专用于提供一个或多个服务的一个或多个计算机系统。在一些实施例中,提供服务的每个不同计算机系统可以位于企业内部,或者可以远离企业定位。在一些实施例中,支持不同服务的多个不同计算机系统可以位于单个地理位置,诸如企业内部。在图2所示的例子中,内部部署的企业计算机系统250可以包括HR系统254和CRM系统256,这两者可以位于企业内部。在一些实施例中,企业计算机系统250可以包括或实现代理系统,以促进或处理云计算机系统210和一个或多个企业系统254、256之间的通信。诸如云企业计算机系统240和内部部署的企业计算机系统250的企业计算机系统在下面进一步详细描述。
计算机环境200可以包括被实现为作为安全的居间计算环境操作的MCS 212,该MCS 212促进计算设备202和一个或多个企业计算机系统之间的通信,因为计算设备202可能没有被配置为与这些企业计算机系统通信。例如,一些企业计算机系统可以由遗留或后端计算机系统支持。这种系统可被配置为利用不同的通信和/或安全协议来操作。由这种企业计算机系统支持的协议可以与由移动计算设备支持的那些不同。MCS 212可以支持利用不同类型的移动计算设备通信。照此,MCS 212可以实现促进企业计算机系统和移动计算设备之间的通信的技术,以便使它们能够彼此通信,而不考虑它们在通信上的不兼容,诸如格式或通信协议之间的差异。例如,MCS 212可以翻译移动计算设备和企业计算机系统之间的通信协议。
云计算机系统210可以支持MCS 212。云计算机系统210可以利用硬件、软件、固件或其组合来实现。例如,云计算机系统210可以包括一个或多个计算设备,诸如服务器计算机。云计算机系统210可以包括一个或多个存储器存储设备和一个或多个处理器。存储器存储设备可以让(一个或多个)处理器访问并且可以包括存储在其上的指令,指令当被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作。在一些实施例中,存储器存储设备可以作为本地储存器(例如,高速缓存)操作。云计算机系统210可以包括不同种类的操作系统。存储器存储设备可以让(一个或多个)处理器访问并且可以包括存储在其上的指令,当指令被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作、方法或过程。存储器存储可以作为本地储存器操作。本地储存器可以利用任何类型的持久性存储设备来实现,诸如存储器存储设备或其它计算机可读存储介质。在一些实施例中,本地储存器可以包括或实现一个或多个数据库(例如,文档数据库、关系数据库,或其它类型的数据库)、一个或多个文件存储、一个或多个文件系统或其组合。本地储存器可以存储企业数据。
在某些实施例中,云计算机系统110可以包括一个或多个数据存储,诸如元数据储存库224、诊断存储226和分析存储228。数据存储224、226、228可以由云计算机系统210中的任何组件访问。
元数据储存库224可以存储与MCS 212关联的所有元数据。这个信息可以由运行时数据和设计时数据二者组成,运行时数据和设计时数据中的每一个具有其自己关于可用性和性能的需求。MCS 212的租户或订户可以有任意数量的应用。每个应用可以进行版本控制并且可以具有关联的零个或多个版本化的资源API和那些资源API接触的零个或多个版本化的服务实现。这些实体是运行时用以将虚拟请求(mAPI)映射到具体服务实现(服务)的东西。当移动开发人员设计和构建其应用时,这种映射为移动开发人员提供了不必知道实际的实现服务的舒适性。并且不需要移动开发人员关于每个服务错误修复重新发布新的应用。元数据储存库224可以存储可以由计算设备(例如,计算设备202)调用的一个或多个可调用接口。可调用接口可以由应用的用户(例如,开发人员)定制,以促进与MCS 212的通信。元数据储存库224可以存储对应于可调用接口的一种或多种配置的元数据。元数据储存库224可以被配置为存储用于实现可调用接口的元数据。可调用接口可以被实现为在用于通信的一种格式、协议或体系架构风格与用于通信的另一种格式、协议或体系架构风格之间进行翻译。元数据储存库224可以是能够由通过认证的用户经由外部网络进行修改的。
诊断存储226可以存储关于在MCS 212中发生的处理的诊断信息。诊断存储226可以存储经由MCS 212传送的消息和日志信息。分析存储228可以存储在处理期间在系统中捕获的日志记录和分析数据。
代表MCS 212,云计算机系统210可以利用其计算资源来启用定制代码216(例如,操作、应用、方法、函数、例程等)的执行。计算资源可以关于与MCS 212的订户或租户关联的特定用户被分配以供使用。资源可以关于用户、设备、应用或与订户相关的其它标准来分配。依赖于移动计算设备寻求与企业计算机系统通信的需求,MCS 212可以被缩小或放大。MCS 212可以被配置为使得它是有弹性的,以处理高于移动计算设备和企业计算机系统之间正常流量的浪涌和临时时段。在一些实施例中,MCS 212可以包括支持可扩展性的元件,使得组件可以被添加或代替,以满足通信中的需求。
计算设备202可以与MCS 212通信(例如,发送请求消息),以请求由企业计算机系统提供的服务。计算设备202(例如,移动计算设备)可以利用硬件、固件、软件或其组合来实现。计算设备202可以经由MCS 212与企业计算机系统240、250通信。计算设备202可以包括或可以实现为端点设备、PDA、平板计算机、膝上型计算机、移动计算设备、台式计算机、可穿戴计算机、寻呼机等。计算设备202可以包括一个或多个存储器存储设备和一个或多个处理器。计算设备202可以包括不同种类的操作系统。存储器存储设备可以是(一个或多个)处理器可访问的并且可以包括存储在其上的指令,该指令当由(一个或多个)处理器执行时,使得(一个或多个)处理器实现本文公开的一个或多个操作、方法或过程。存储器储存器可以作为本地储存器操作。本地储存器可以利用任何类型的持久性存储设备实现,诸如存储器存储设备或其它计算机可读存储介质。在一些实施例中,本地储存器可以包括或实现一个或多个数据库(例如,文档数据库、关系数据库或其它类型的数据库)、一个或多个文件存储、一个或多个文件系统或其组合。本地储存器可以存储企业数据。
在各种实施例中,计算设备202可以被配置为执行和操作一个或多个应用,诸如web浏览器、客户端应用、专有客户端应用等。应用可以包括被配置为用于由企业计算机系统提供的企业数据和/或服务的特定应用。客户端应用可以经由一个或多个网络被访问或操作。应用可以包括用于操作应用的图形UI(“GUI”)。
计算设备202可以利用无线通信经由一个或多个通信网络与MCS 212进行通信。通信网络的例子可以包括移动网络、无线网络、蜂窝网络、LAN、广域网(“WAN”)、其它无线通信网络或其组合。在某些实施例中,计算设备202可以利用定制通信协议(例如,定制协议)建立与MCS 212的通信连接214。连接214可以通过云计算机系统210与MCS 212建立。定制协议可以是基于HTTP的协议。通过利用定制通信协议,计算设备202可以在任何计算设备平台上操作,以便与云计算机系统210进行通信。
计算设备202可以通过例如API的一个或多个可调用接口与云计算机系统210进行通信。可调用接口可以在计算设备202上实现。可调用接口可以为定制应用实现,以使这些应用能够与MCS 212通信。在一些实施例中,可调用接口可以为MCS 212开发。可调用接口可以使应用能够与MCS 212进行通信,而不必适应协议(例如,通信或开发协议)和/或体系架构风格或格式的差异。
MCS 212可以由一个或多个防火墙204、230保护,以便提供安全的环境来处理请求和执行定制代码216。计算设备202和MCS 212之间的通信可以由外部通信防火墙204分离。防火墙204可以与云计算机系统210连接,以促进对MCS 212的安全访问。防火墙204可以允许云计算机系统210和计算设备(例如,计算设备202)之间消息的传送。这种消息(例如,HTTP消息或REST消息)可以符合可由可调用接口支持的通信协议(例如,HTTP或REST)。在另一个示例中,云计算机系统210和计算设备202之间的消息可以符合诸如SPDY之类的通信协议。MCS 212可以管理防火墙230,以保护云计算机系统210和企业计算机系统240、250之间的通信。防火墙230可以允许云计算机系统210和计算设备(例如,计算设备202)之间消息的传送。这种消息(例如,SPDY消息、HTTP消息或REST消息)可以符合通信协议(例如,SPDY、HTTP或REST)。计算设备202和企业计算机系统240、250之间的通信可以经由MCS 212是双向的。
因为与计算设备202和企业计算机系统240、250的通信可能经由不安全的公共网络进行,所以防火墙204、230为来往于MCS 212的通信提供附加的保护层。防火墙204、230可以使MCS 212能够区分其内部网络与连接计算设备202和企业计算机系统240、250的外部网络。在一些实施例中,防火墙204、230虽然被示为两个不同的防火墙,但是可以被实现为封装MCS 212的单个防火墙。
云计算机系统210还可以通过与企业计算机系统的通信作为居间计算环境操作,其中一些可以具有不同的通信协议。这种通信协议可以是定制的或特定于与云计算机系统210通信的应用或服务。另外,云计算机系统210可以与企业计算机系统通信,以便根据企业计算机系统支持的格式提供企业服务和/或交换企业数据。云计算机系统110可以维护企业数据的本地储存器(例如,本地高速缓存)并且可以使用本地储存器来管理移动计算设备和企业计算机系统240、250之间企业数据的同步。
计算设备202可以与MCS 212进行通信(例如,发送请求消息),以请求由企业计算机系统提供的服务。通过防火墙204接收的请求可以首先被安全服务232处理。安全服务232可以管理用于与请求关联的用户的安全认证。因此,云计算机系统可以提供包括提供本文所述的安全机制的技术优点,该安全机制可以保护客户通信和企业数据的完整性。云计算机系统的技术优点可以包括防止或减少受损的通信和/或数据被损害,认证可以在一开始进行,从而将访问限制到仅具有所需凭证的那些人。云计算机系统的技术优点可以包括服务和服务调用流,该服务调用流被结构化为使得当请求到达时,它们只能访问它们被授权的服务。通过解耦授权与系统处理的其余部分,另一个技术优点可以包括授权“可以由谁来完成什么”的任务被委派给专用安全性子系统(例如,身份管理系统),该专用安全子系统可以被扩展成支持特定公司客户所需的任何附加定制安全措施。在一些实施例中,安全认证可以为请求、会话、用户、设备、与用户相关的其它标准或其组合确定。安全认证可以为接收到的每个请求执行。在一些实施例中,安全服务232可以基于请求的先前验证来确定认证。安全认证可以为用户或设备确定,使得对不同企业计算机系统240、250的请求可以基于安全性的单次验证来认证。
本发明的进一步的技术优点可以包括云计算机系统使计算设备能够与各种企业计算机系统通信,该各种企业计算机系统中的一些可以不同地实现。例如,计算设备202、云计算机系统210和企业计算机系统250可以位于彼此物理分离的不同地理位置。因此,计算设备202可以与企业计算机系统250通信,而不管其位置。技术优点可以包括云计算机系统使计算设备能够向可以支持一个或多个不同的安全协议的企业计算机系统传送服务请求。在一些情况下,企业计算机系统可以由不容易适应不同安全协议的后端系统支持。在一些情况下,可能期望应用的开发人员能够实现应用,以能够在不知道这种安全协议的情况下请求服务。同样期望企业计算机系统的用户(例如,管理员或架构师)能够接收请求,而无需适应不同类型的应用、安全协议和标准。技术优点可以使得能够通过实现如本文所述的云计算机系统来满足这种期望,云计算机系统可以处理安全认证,使得请求可以满足正被请求的不同企业计算机系统的安全措施。
在一些实施例中,安全服务232可以确定用于所请求的企业计算机系统的安全协议,并且相应地根据这种安全协议生成安全令牌。安全令牌可以与请求一起被传递到企业计算机系统,以使得该企业计算机系统能够基于生成的安全令牌来验证认证。企业计算机系统可以支持不同的安全协议。安全协议可以是通过其确定安全性的标准。可以基于由安全服务232生成的安全令牌来验证安全性。安全服务232可以确定用于为请求识别的企业计算机系统的安全协议。在一些实施例中,企业计算机系统250可以具有代理系统252,该代理系统252可以根据由MCS 212支持的定制或特定安全协议来被配置或实现。照此,MCS 212可以根据这种定制的安全协议生成安全令牌。
云计算机系统210可以包括、实现一个或多个负载平衡器系统206、208和/或与一个或多个负载平衡器系统206、208通信。在确定安全认证时,云计算机系统210可以请求负载平衡器系统206、208中的任何一个检查它接收到的请求并检测请求针对的是哪个服务。MCS 212可被配置为具有负载平衡器系统206、208并利用开始运转的资源被更新,以便当请求到达时,负载平衡器系统206、208可以跨不同的资源平衡所请求的负载。
云计算机系统210可以包括分派器218,其可以处理请求并将它们分派到适当的服务。请求可以在分派时被路由到适当的服务。在一些实施例中,服务本身可以在MCS 212中或在企业计算机系统中将一个内部请求路由到另一个内部服务。在一些实施例中,分派器218可以解析请求,以便基于在请求的URI和/或URL识别出的目的地的位置(例如,地址)确定其目的地。分派器218可以解析请求及其报头,以提取以下信息中的一个或多个:租户标识符、服务标识符、应用名称、应用版本、请求资源、操作和参数等。分派器218可以使用解析出的信息来执行元数据储存库224中的查找。分派器218可以检索对应的应用元数据。分派器218可以基于所请求的资源和元数据中的映射确定目标服务。虽然最初是非常基本的映射,但是元数据可以被增强,以提供更复杂的、基于规则的分派。分派器218可以执行任何特定于分派器的记录、度量收集等。然后,分派器218可以根据应用元数据执行初始授权。分派器218可以格式化传入请求和任何其它必要的信息并把该消息放在路由总线220上,用于进一步处理。分派器218可以将请求放在队列上并且等待对应的响应。分派器218可以处理从路由总线220接收到的响应并将响应返回到计算设备202。
除了处理对外部请求的分派,分派器218还可以在分派内部请求时起作用。这种内部请求可以以复合服务或对服务的定制代码调用的形式进入。在这两种情况下,主叫方都可以使用如在应用中定义的逻辑服务名称。分派器218可以使用当前执行上下文来确定该应用并使用那个逻辑名来确定要调用的适当服务。
云计算机系统210可以包括路由总线220,以管理消息到向路由总线220注册的目的地的递送。路由总线220可以操作为用于管理云服务212中的通信的中央系统。通过路由总线220传送的数据可以被处理,以捕获并存储该数据。路由总线220可以提供框架,使得附加的集中式服务(附加的授权、调试等)可以容易地根据需要被插入。由路由总线220捕获的数据可被存储在诊断存储226和/或分析存储228中。
路由总线220可以将消息路由到一个或多个目的地。在一些实施例中,消息可以包括执行定制代码216的请求。在这种实施例中,路由总线220可以请求234调用定制代码216。在一些实施例中,路由总线220可以将请求传递到由请求中的信息识别出的目的地企业计算机系统。路由总线220可以请求236适配器接口222执行翻译,如果需要,则将请求传递到企业计算机系统,例如企业计算机系统240或企业计算机系统250。
在某些实施例中,云计算机系统210可以包括或实现适配器接口222,以便将消息翻译或转换成由接收企业计算机系统支持的协议。适配器接口222可以与每个企业计算机系统240、250建立分开的通信连接。云计算机系统210可被配置为经由一个或多个网络(未示出)与企业计算机系统240、250进行通信。通信网络的例子可以包括互联网、移动网络、公共网络、无线网络、蜂窝网络、LAN、WAN、其它通信网络或其组合。在某些实施例中,通信连接可以是利用高速通信干线促进实现的高速通信连接。与企业计算机系统240、250的通信可以穿过防火墙,这确保与外部网络的通信是安全的,以防止经由这种通信对云服务212的未授权访问。
在一些实施例中,云计算机系统210可以促进向计算设备202的用户的通知。云计算机系统210可以包括支持与用户的有状态交互的警报管理服务,例如基于用户偏好通过一个或多个通道输送警报、等待响应并基于响应采取行动。对在一个通道上发送的警报的响应可以通过另一个通道接收,服务需要能够处理该响应。平台可以具有用于流行交互模式的内置状态模型,并且利用新的状态模型可扩展。一些警报通道可以包括已知的通信资源,单向或者双向。示例包括SMS、推送通知,以及Google云消息传送
在一些实施例中,云计算机系统210可以使计算设备能够访问和/或请求一个或多个服务,诸如对象存储服务、数据库服务、访问web服务、社交服务、资源服务或其组合。
云计算机系统210可以提供可以为BLOB提供存储设施的对象存储服务。存储的基本单元可以是文本,具有读和写操作。还可以提供用于JSON对象的基本查询设施。
云计算机系统210可以提供数据库服务,以允许到被托管的数据库的连接,用于执行查询或写入。所需的参数化可能需要用于数据库的完整连接串、SQL串或者存储的要执行的过程、任何参数和可能的凭证。必要的信息可以在运行时提供或者在应用元数据中被预先配置。
云计算机系统210可以提供对web服务(诸如SOAP web服务)的访问。云计算机系统210可以提供对REST服务(诸如到任意REST资源的连接)的访问。
云计算机系统210可以提供对社交服务的访问,该社交服务可以提供与诸如等许多流行的社交网站的基本整合。这些服务可以允许利用来自那些站点的用户凭证的第三方认证以及对那些站点的服务的访问。例子包括发送推文或更新你的状态。
云计算机系统210可以提供公共云服务,以便使用户能够简化和优化通信。例如,服务开发人员可以使用MCS 212的通用Web服务来与利用云计算机系统210的云服务来托管的资源对话。
云计算机系统(诸如本文所述的云计算机系统)可以使移动计算设备能够与企业计算机系统通信,而不管计算资源的差异。云计算机系统可以配备有更多的资源和到企业计算机系统的更快更可靠的连接,以频繁地进行通信来接收企业数据。云计算机系统可以管理和协调来自企业计算机系统对服务的请求。通过将请求翻译成由消息的接收者支持的协议,云计算机系统减少开发人员配置应用以与不同类型的后端计算机系统通信的负担。企业能够维护其后端系统,而不必适应为移动设备支持的通信协议的进步或改变。不同的企业计算机系统可以基于所处理的请求和所提供的服务的类型来支持不同的安全协议。通过以集中的方式管理用于访问不同企业计算机系统的安全认证,企业计算机系统不需要适应安全协议中的差异。通过认证云计算机系统的用户,处理请求可以变得更高效,因为可以不在每种情况下都执行认证。
在一些实施例中,应用可以在移动应用框架(“MAF”)下部署,其中MAF提供内置的安全性来控制对应用的访问并确保敏感数据的加密,诸如来自Oracle公司的Oracle MAF。MAF是使用HTML5和级联样式表(“CSS”)(以在Web视图中渲染UI)、Java(用于应用业务逻辑)和Apache Cordova(以访问诸如GPS活动和电子邮件的设备特征)的混合移动体系架构。因为MAF使用这些跨平台技术,所以可以为Android和iOS设备都构建相同的应用,而无需使用任何特定于平台的工具。在将应用部署到设备之后,该应用表现得像用诸如Objective C或Android SDK的特定于平台的工具创建的应用。另外,MAF允许为智能电话或为平板电脑构建相同的应用,由此允许在相同应用中重用业务逻辑并且面向各种类型的设备、屏幕尺寸和能力。
图3示出了示例移动应用主界面300,其包括被称为“WorkBetter”的MAF应用,该应用被部署为“重”应用(例如,以与从应用商店获得的正常iPhone应用相同的方式位于移动设备中的移动应用)。MAF应用可以包括作为应用特征添加的一个或多个嵌入式应用。这种添加的应用特征被表示为主应用的主界面或导航栏内的图标。应用特征本质上是这种移动应用的构建块。集成到MAF应用中的每个应用特征执行一组特定任务。应用特征可以分组在一起,以补充彼此的功能。例如,提供客户联系人的应用特征可以与用于产品库存的应用特征配对。因为每个应用特征有自己的类加载器和Web视图,所以应用特征是彼此独立的,因此单个MAF应用可以由若干不同开发团队创建的应用特征组装。应用特征也可以在其它MAF应用中重用。MAF应用本身可以被重用作另一个应用的基础,从而允许独立的软件供应商(“ISV”)创建可以由特定客户配置的应用。
除了在设备上本地运行的混合移动应用之外,依赖于移动应用的要求和可用资源,应用特征可以被实现为以下移动应用类型中任一种:
·在服务器上托管的移动Web应用。对于这些应用,虽然代码可以在平台之间移植,但是对设备特征和本地储存器的访问可以是受限的,因为这些应用由设备的浏览器管理。
·以Xcode创作或者通过Android SDK创作并且因此就服务于这两个平台而言受到限制的本机应用。代码的重用同样受到限制。
为了应用中特征级别的精炼的安全性,MAF支持认证和访问控制,其中开发人员可以指定适当的登录服务器,例如利用基本认证运行“Oracle身份管理”和/或“OracleWebLogic”的服务器、支持OAuth协议的服务器等。在运行时,向用户呈现登录屏幕,并且可访问适当的令牌,以用于进一步的Web服务调用。利用MAF,开发人员可以构建满足具有不同特权(例如,基于用户角色或特权显示/隐藏组件)的用户的需求的单个UI。
MAF实施利用SSL/TLS(HTTP安全(“HTTPS”))的通信加密、在加密的密钥存储中保持凭证以在支持离线认证时用于验证的设备上加密、和通过利用SQLite加密扩展的SQLite数据库加密。加密用于利用MAF构建的应用的SQLite数据库可以在开发应用时经由配置选项执行。在一些实施例中,MAF支持应用的离线和在线操作模式,使得自包含应用可以在连接和断开模式下在移动设备上运行。对于数据访问/存储,这种应用可以充分利用本地加密的SQLite数据库。应用可以被构建为使得对数据的初始访问通过Web服务从远程服务器执行,然后将该数据存储在本地SQLite数据库中供离线访问。当连接再次可用时,数据可以被复制并同步到服务器。MAF还支持用户认证凭证的本地存储,以启用对安全应用的离线认证/授权。
图3A和3B示出了根据本发明实施例的HR移动应用UI 302。UI 302可以在打开主界面(诸如图3的移动应用主界面300)上的图标时提供。在图3A中,UI 302包括关于雇员的各种HR相关信息,诸如图片、头衔、联系信息、社交联网信息、绩效/评级信息、补偿信息、管理者、技能、位置等。图3B指示UI 302中的信息可从中获得的各种源,诸如位于本地或云中的服务。例如,基本雇员信息可以从诸如PeopleSoft系统、应用和产品(“SAP”)等的内部部署的核心HR服务获得,而位置信息从诸如Google的地图服务获得。类似地,绩效信息可以从诸如TALEO的人才管理云服务获得,并且社交联网信息(例如,Twitter、Facebook、LinkedIn等)可以从web获得。在一个实施例中,来自这些各种源的信息在被发送到移动设备上的应用之前通过MCS被引导。
图4是包括部署到设备的“瘦”本机容器的示例MAF运行时体系架构400的框图。运行时体系架构400表示将表示从模型层和控制器逻辑分离的MVC开发方法。瘦本机容器通过与本地SQLite数据库、Cordova API和服务器端资源进行交互来允许MAF应用充当不同平台(例如,iOS、Android等)上的本机应用。它还启用推送通知。
设备本机容器包括使用移动设备的web引擎来显示和处理基于web的内容的Web视图。在MAF应用中,Web视图通过将应用标记渲染为HTML 5来提供UI。UI可以通过实现以下任何内容类型为移动应用特征创建:MAF应用移动XML(“AMX”)视图、控制器、服务器HTML或本地HTML。从各种内容类型实现的应用特征可以在相同的移动应用内共存,并且还可以彼此交互。
其内容被实现为MAF AMX视图的应用驻留在设备上,并且提供最可信的设备本机的用户体验,类似于以特定于设备平台的语言创作的应用。MAF提供了一组代码编辑器,使用户能够从根据移动设备的形状因素定制的组件声明性地创建UI。这些组件可以被用来创建页面布局(例如,列表视图)以及输入组件(例如,输入字段)。当用户开发MAF AMX视图时,用户可以利用数据控件。这些组件使用户能够声明性地创建数据绑定的UI组件并访问Web服务和移动设备的服务(例如,相机、GPS或电子邮件)。在运行时,Web视图中的JavaScript引擎将MAF AMX视图定义渲染为HTML5和JavaScript。
对于其内容被实现为控制器的应用,控制器控制移动应用中的页面之间的流。控制器使用户能够将应用的流分为更小的可重用任务流并且包括非可视组件,诸如方法调用和决策点。
对于其内容被实现为服务器HTML的应用,UI是从可以在应用特征的Web视图中打开的服务器生成的网页输送的。在MAF的上下文中,这种内容类型被称为远程URL。用于这些基于浏览器的应用的资源不驻留在设备上。相反,UI、页面流逻辑和业务逻辑从远程服务器输送。当这些远程托管的Web应用之一被允许在Web视图中打开时,它可以使用CordovaJavaScript API访问任何指定的设备本机特征或服务,诸如相机或GPS能力。当利用远程URL内容实现应用时,用户可以利用已经针对移动使用优化的现有的基于浏览器的应用,或者使用已经专门针对特定类型的移动设备编写的应用。对于可在台式机或平板电脑上的浏览器中运行的应用,用户可以利用通过基于丰富客户端的组件创建的应用实现远程URL内容,这些创建的应用诸如由来自Oracle公司的“Oracle ADF Faces”提供的应用。对于专门针对移动电话的应用,远程URL内容可以从利用MAF创建的网页输送。利用MAF创作的应用不仅可以在各种智能手机上渲染,而且它们可以通过利用Apache Trinidad JSF组件和动态选择的样式表构造的UI逐渐地降级到功能手机上可用的减少的能力。因为内容是远程提供的,所以只有服务器连接保持活动状态,应用才可用。
对于其内容被实现为本地HTML的应用,HTML页面作为MAF应用的一部分在设备上运行。本地HTML文件可以通过Cordova和JavaScript API访问设备本地特征服务。
设备本机容器还包括Apache Cordova。Apache Cordova JavaScript API将设备的本机特征和服务集成到移动应用中。虽然用户可以从Java代码(或者在将MAF移动应用实现为本地HTML时利用JavaScript)以编程方式访问这些API,但是用户可以在创建MAF AMX页面时声明性地添加设备集成,因为MAF将这些API打包为数据控件。
设备本机容器还包括Java虚拟机(“JVM”)。Java为MAF应用提供Java运行时环境。这种JVM在设备本机代码中实现,并作为本机应用二进制文件的一部分嵌入(或编译)到MAF应用的每个实例中。JVM基于JavaME连接设备配置(Connected Device Configuration,“CDC”)规范。在运行时体系架构400中,JVM包括业务逻辑、模型和JDBC。Java启用MAF应用中的业务逻辑。受管理的Beans(Managed Beans,“MBeans”)是可以被创建以扩展MAF的能力的Java类,扩展MAF的能力诸如提供用于处理从服务器返回的数据的附加业务逻辑。MBeans由嵌入式Java支持执行,并符合JavaME CDC规范。模型包括将业务逻辑组件与UI连接的绑定层。此外,绑定层提供执行逻辑来调用基于SOAP的Web服务。JDBC是API,它使模型层能够通过创建、读取、更新和删除(“CRUD”)操作来访问加密的SQLite数据库中的数据。
设备本机容器还包括应用配置,其指的是允许应用配置被下载和刷新的服务,诸如用于web服务或远程URL连接的URL端点。应用配置服务从基于WebDav的服务器侧服务下载配置信息。
设备本机容器还包括凭证管理、单点登录(“SSO”)和访问控制。MAF通过“Oracle访问管理移动和社交”(Oracle Access Management Mobile and Social,“OAMMS”)IDM SDK处理用户认证和凭证管理。MAF应用执行离线认证,这意味着当用户在连接时登录到应用时,MAF在设备上本地维护用户名和密码,从而,即使与认证服务器的连接变得不可用,也仍然允许继续访问应用。MAF加密本地存储的用户信息以及存储在本地SQLite数据库中的数据。在对照登录服务器进行认证之后,用户可以访问由那个连接保护的所有应用特征。MAF还通过应用用户角色和特权来限制对应用特征(或应用特征的特定功能)的访问来支持访问控制的概念。对于远程服务的Web内容,MAF使用白名单来确保只有预期的URI可以在应用特征的Web视图中打开(并访问设备特征)。
设备本机容器还包括使MAF应用能够从iOS或Android通知服务器接收事件的推送处理器(handler)。Java层处理通知处理(notification processing)。
在运行时体系架构400中,与本机容器交互的资源包括加密的SQLite数据库和设备服务。嵌入式SQLite数据库保护本地存储的数据并且由模型层利用JDBC调用。MAF应用生成这个轻量级的跨平台关系数据库。因为这个数据库是加密的,所以,如果设备丢失或被盗,则它会保护数据。只有输入正确的用户名和密码的用户才能访问本地数据库中的数据。设备服务是设备本机的服务和功能,并通过Cordova API集成到应用特征中。
在运行时体系架构400中,设备本机容器启用对服务器侧资源的访问,诸如配置服务器、服务器生成的HTML、Apple推送通知服务(“APN”)、Google云消息传送(“GCM”)和SOAPWeb服务。配置服务器是基于WebDav的服务器,其托管由应用配置服务使用的配置文件。配置服务器作为参考实现被输送。在J2EE服务器上托管的任何常见的WebDav服务都可以用于此目的。服务器生成的HTML包括在远程服务器上托管的、用于基于浏览器的应用特征的Web内容。APN和GCM推送服务是向MAF应用发送通知事件的通知提供者。SOAP Web服务是远程托管的基于SOAP的Web服务。这些服务通过Java层被访问。MAF AMX中创建的应用特征通过数据控件访问基于SOAP的数据服务。
图5是根据本发明实施例的、用于在移动云基础设施中开发移动应用的系统500的框图。在系统500中,用户可以使用用户设备528经由基于web的工具在云基础设施506中开发和构建应用。在一个实施例中,应用可以在空中被下载在移动设备526上,从而消除对应用商店的需要。本机应用与在MCS 502中创建的后端504对话。在一个实施例中,图4的MAF运行时体系架构400可以被用来向移动设备526输送应用。在一个实施例中,应用的声明性语法在空中被部署在移动设备526上,并且声明性语法由图4的MAF运行时体系架构400在移动设备526上被解释。
云基础设施506包括MCS 502,MCS 502提供可以通过其执行应用开发的管理UI516。MCS 502还包括生产环境512和测试环境514,其中可以分别开发和测试移动应用。这些环境通过经由连接器与对应的后端504对话来提供生产/测试功能。首先在测试环境514中开发应用。一旦发布,应用就移动到生产环境512。
在一个实施例中,通过利用用户设备528通过安全层524与MCS管理UI 516(也称为门户)进行通信来开发移动应用。MCS管理UI 516包括应用开发服务器518,其可以经由MCS管理UI 516被对接。在MCS管理UI 516中开发的应用可以通过与生产环境512和/或测试环境514通信而在用户设备528的浏览器上或在移动设备526上运行。在一个实施例中,当应用被部署在移动设备526上,移动设备526与测试环境514通信。但是,如果应用在移动设备526上被更新,则这种更新通过MCS管理UI 516执行。
在系统500中开发的应用可以被构建为轻应用或重应用。重应用是完整的应用,诸如从应用商店下载的应用。轻应用是作为添加的特征部署到已经部署的完整应用(即,托管应用)(诸如Oracle应用)的应用。托管应用充当保持轻应用的容器。重应用和轻应用二者都可以通过安全容器进一步容器化,如本文参考图7所描述的。
图6是根据本发明实施例的、用于构建移动应用的系统600中的网络组件的框图。在系统600中,用户与MCS网站交互,以发起构建请求。移动设备与MCS门户VM通信,以执行本机应用的空中安装。这一般而言是两部分过程,包括下载描述应用以及下载.ipa文件的位置的plist文件,以及下载.ipa文件。
公开OHS/Webgate是面向公众的Oracle HTTP服务器(“OHS”),其将流量指向防火墙后面的MCS门户VM。它还负责验证用户并连同用户凭据一起传递到MCS门户VM。公共OHS终止SSL连接,并且端口443被用于https。
MCS门户VM是标准的WebLogic服务器(“WLS”)应用,其数据由架构即服务支持,并且其对应的应用开发客户端在Jet框架之上被编写。这是单个租户并且安全性经由OWSM提供。MCS门户VM在信任区内运行WLS。它处理用户的请求,并具有经由BIG-IP设备到架构服务和构建服务器场的连接。它使用开放端口80(或等同物)用于到/来自公共OHS和到BIG-IP设备以及来自服务器场中的各个服务器的http通信。
架构服务存储用于租户的应用数据、企业签名证书和供应简档。它只与MCS门户VM交互。
诸如BIG-IP路由的负载平衡器将任务放到服务器场中的服务器(最初以轮转方式)。它使用开放端口80(或等同物)并提供冗余。它连接到MCS门户VM/从MCS门户VM连接,并将请求转发到服务器场中的服务器。
服务器场包括处理构建作业的多个(例如,20个)服务器。它连接到用于存储应用二进制文件(例如,5TB)的文件管理器。经由在服务器上本地运行的本地Tomcat实例,连接被处理。构建工具和过程由本机OSX调用处理。
构建应用
在一个实施例中,一旦用户创建了应用并希望产生本机二进制文件,用户就在UI上发起构建POST请求(例如,在https://mcs-tenant-a.cloud.oracle.com/max/build)。有效载荷包括用于应用的应用ID。公开OHS/Webgate接收请求并终止SSL、对照OAM对用户进行验证和授权(假设用户已登录)、将用户身份放在http头中,并将其通过防火墙转发到MCS门户VM的WLS服务器(例如,在http://mcs-tenant-a.internal/max/build运行)。
MCS门户VM接收请求并授予用户针对所请求的应用的特权,并向租户架构即服务查询应用数据、租户企业证书、加密的证书密码和租户供应简档。一旦架构服务返回所请求的项目,MCS门户VM就(经由架构服务)在BuildJobs表中创建新条目,以记录该尝试,并捕获这个新记录的主键。MCS门户VM还针对构建场的BIG-IP设备创建新的POST请求(例如,在http://max-mini-farm.internal/build/initiate),从而将三个参数传递到正文中,以及回调URL(它编码BuildJob记录的主键)以完成作业。示例有效负载是:
applicationData:(app data)
signingCertificate:(cert)*
signingPassword:(password)*
provisioningProfile:(profile)
callbackUrl:http://mcs-tenant-a.internal:3000/maxbuild/complete?jobId=(BuildJobId)**
用户为这个实施例专门创建证书和密码(即,不与其它服务共享)。端口3000不可公开访问。
BIG-IP维护服务器场中的健康服务器的列表。这是经由每几分钟执行一次完好性(sanity)检查的健康检查来进行的。它从健康池中选择服务器(例如,当作业具有相等复杂性时经由轮转),并将作业请求路由到那个服务器(例如,http://mac-mini1.internal/build/initiate)。
在一个实施例中,服务器场中的服务器包括服务器上运行的Tomcat。它接收请求并开始外部过程。这在异步servlet上运行,以阻止I/O阻塞请求线程池。
当过程完成时,Tomcat创建对请求有效载荷中的回调URL的POST请求。用于这个新请求的有效载荷包括:
result:(如果成功则是success,等等)
binaryKey:(jobId)
MCS门户VM接收请求并且,如果事件成功,则用来自有效载荷的binaryKey更新给定的BuildJobs记录的行。它还通知客户端作业已完成(例如,在11g上经由轮询、利用计划的12c的推送或异步小服务程序),以及产生具有编码的链接(例如,https://mcs-tenant-a.cloud.oracle.com/max/native-application/(binaryKey))的QR码。
安装应用
在一个实施例中,一旦用户在移动设备上扫描QR码,就发起空中安装。扫描QR码会打开编码的URL(例如,https://mcs-tenant-a.cloud.oracle.com/max/native-application/(binaryKey))。公共OHS/Webgate接收请求并终止SSL。它对照OAM认证和授权用户(假设用户已登录)、将用户身份放在http头中,并将其通过防火墙转发到MCS门户VM的WLS服务器(例如,在http://mcs-tenant-a.internal/max/build运行)。
MCS门户VM接收请求并授予用户针对所请求的应用的特权。它确定发出请求的设备的用户代理、识别平台(例如,iOS)并转发到对应的URL(例如,https://mcs-tenant-a.cloud.oracle.com/max/native-application/plist/(binaryKey))。它还引导到公共OHS,公共OHS进而转发到MCS门户VM,以重新授权(如在本文所述的构建请求期间所执行的)。MCS门户VM接收请求并生成plist文件(例如,iOS plist文件),该文件包括用于对应平台(例如,iPhone)的应用信息以及到二进制文件的链接(例如,https://mcs-tenant-a.cloud.oracle.com/max/native-
application/ios/(binaryKey))。
然后,设备提示用户他们是否想要安装应用。假设是,则设备遵照二进制链接。它还引导到公共OHS,公共OHS进而转发到MCS门户VM,以重新授权(如在本文所述的构建请求期间所执行的)。MCS门户VM接收请求并生成对构建服务器场的新请求(例如,经由http://max-mini-farm.internal/download/ios/(binaryKey))。BIG-IP从健康池中选择服务器场中的服务器(例如,经由轮转),并将作业请求路由到那个服务器(例如,http://mac-mini1.internal/download/ios/(binaryKey))。那个服务器上的应用服务器(例如,Tomcat)接收请求、检查内容是否存在,并且从网络流传输二进制文件(例如,Filer:/filer_mnt/generated_binaries/(binaryKey)/result.ipa)。BIG-IP将流传输的响应返回到MCS门户VM,后者接收响应并将其复制到其请求的到设备的输出流中。最后,设备接收二进制文件并执行安装。
图7是在使用由诸如OMSS的移动安全套件700提供的安全服务的实施例中移动安全套件组件的框图。OMSS组件分布在公司DMZ和企业内部网(或公司网络)上,并且安全容器(诸如来自Oracle公司的“Oracle移动安全容器”)安装在移动设备上。安全容器被配置为保持“容器化”应用,例如,已经安全地链接到它们的特定容器的应用。安全容器包括安全浏览器、文件管理器、文档编辑器和可选的安全移动邮件管理器。安全移动邮件管理器包括经由“Microsoft Exchange ActiveSync”(“EAS”)协议与公司邮件服务器同步的个人信息管理(“PIM”)应用,诸如邮件客户端、日历、联系人、任务和笔记。许多应用(诸如“Oracle商业智能”(“BI”)、“Oracle Fusion Tap”、“Oracle社交网络”、“Oracle企业管理器云控制”、“Oracle WebCenter Spaces”等以及广泛的第三方企业应用)可以利用安全容器进行容器化。在移动设备上容器化应用中的所有静态数据都被加密。加密的数据储存器包括数据库、文件存储、高速缓存和用户偏好。在一个实施例中,通过AppTunnel运送的数据用联邦信息处理标准(“FIPS”)批准的算法利用TLS/SSL加密。
当Web浏览器或其它客户端程序向安全访问服务器(诸如来自Oracle公司的“Oracle移动安全访问服务器”(“MSAS”))发出未经认证的请求时,安全访问服务器将通过重定向到适当的安全容器进行响应。安全容器使用密钥层次结构来保护数据。所有密钥都是根据从未存储的用户凭证得到的。密钥层次结构涉及多个密钥,以支持数据的不同敏感性。例如,唯一的密钥用于用户的认证证书,该认证证书被允许在非常短的时间段内开放。不同的密钥用于浏览器高速缓存,该浏览器高速缓存必须对整个会话保持解密。主安全容器分发并管理用户安全企业工作空间中的完整应用集合的密钥。
与当前的移动虚拟专用网(“VPN”)解决方案相比,安全容器具有三个显著的好处:设备信任相对于网关、安全容器密码相对于设备密码,以及安全容器AppTunnel相对于设备级VPN。OMSS将网络的Kerberos认证信任直接扩展到用户的设备,而不是停在位于DMZ中的网关服务器。OMSS比实现由VPN提供商提供的“受限委托”显著更高效和安全。受限委托解决方案不仅不太安全,而且设置和维护也更麻烦。
另外,当处理消费者设备和BYOD程序时,可用性和安全性之间的权衡被放大。公司IT需要强大的密码来保护BYOD设备上的企业数据。相反,用户想要简单的密码,或者最好完全没有设备密码,因此他们可以轻松地访问社交网络和其它消费者应用。要求设备密码对用户来说是令人沮丧的,因为他们经常将设备用于不需要企业认证的非企业用途。实施例在处理BYOD程序时通过仅需要密码访问公司应用来提供安全性和可用性之间的必要平衡。
还有,设备级VPN在用户的设备和企业的网络之间提供可信的、安全的隧道。但是,设备级VPN解决方案更适合企业拥有的安全的端点设备,诸如笔记本电脑,而不适合消费者移动设备。一旦移动设备VPN隧道对网络开放,设备上的任何应用就都可以访问这个安全隧道。这是一个巨大的安全漏洞和危险通路。但是,利用实施例,从移动设备到企业内联网的连接仅存在于安全容器和企业服务器之间。
为了高可用性和可扩展性,MSAS通常部署在公司DMZ中,并且多个服务器实例可以部署在负载均衡器之后。MSAS在服务器和容器化应用之间提供隧道化连接。MSAS代理(broker)认证(强认证充分利用到“Oracle访问管理器”(“OAM”)的HTTPS连接或者到Kerberos域控制器的Kerberos连接),授权、审核和启用用于其目的地(公司内联网中的资源)的SSO和对其目的地的代理请求。MSAS充当由安全容器和容器化应用发起的隧道化连接的终止端点。
来自Oracle公司的“Oracle API网关”(“OAG”)和来自Oracle公司的“Oracle Web服务管理器”(“OWSM”)向组织的REST API基础设施添加安全性、威胁保护和节流策略。SSO通过OAuth、OAM令牌、Kerberos和NT LAN管理器(“NTLM”)来被支持。SAML通过与SAML身份提供者(诸如Oracle、CA或Ping身份)的OAM或Kerberos集成来支持。MSAS与OAM平台集成,并支持向由OAM、OAG和OWSM保护的后端资源检索用于SSO的OAM和OAuth令牌。MSAS还通过向受PIN保护的Microsoft活动目录执行PKI认证来支持“虚拟智能卡”认证。数字证书在安全容器应用内部被供应并且只在PIN验证成功后才能访问。MSAS与OAM的集成允许实现上下文感知、基于风险的逐步认证。
OWSM是SOA套件的组件并且解决基于web服务的SOA安全和管理。SOA基础设施的目的是允许消费者调用提供者暴露的服务。OWSM为这种服务基础设施的策略管理和安全性提供解决方案。它通过由Oracle公司的“Oracle企业管理器”提供的集中式管理界面提供对策略的可见性和控制。OWSM允许公司(1)集中定义和存储应用于构成SOA基础设施的多个Web服务的声明性策略,(2)通过可配置的代理本地实施安全和管理策略,以及(3)监视诸如失败的认证或授权的运行时安全事件。通过允许实时地实施策略改变而无需中断正在运行的业务过程来响应安全威胁和安全漏洞,它还提供业务敏捷性。
“Oracle移动安全管理器”(“MSM”)是在Oracle Linux或Rad Hat企业Linux上运行的“WebLogic”管理的服务器。MSM与LDAP服务器集成,以供应用户、分配和管理用于移动设备管理和用于访问安全容器的策略、管理应用目录、控制远程锁定或擦除设备以及安全工作空间应用(擦除容器将除去用于工作空间应用的所有数据和配置),并且为安全容器设置访问控制策略。通过将策略模板与用户和用户组关联,策略被指派给用户。可用的策略控制包括设备限制、认证(认证频率、失败尝试阈值、用于PKI的PIN强度);目录(应用、URL、文件共享);容器/应用(受损平台、位置服务、离线状态、不活动持续时间、数据泄漏预防(“DLP”));时间访问(如果在时间窗口之外,则锁定);地理访问(如果在地理围栏(例如,城市、州、国家)之外,则锁定);设备(特定于白名单的设备型号、指定最低OS级别);浏览器(禁用地址栏、禁用下载);文件浏览器(允许/禁止、禁用下载、指定文件服务器URL);PIM(邮件服务器URL);供应(邀请模板、PKI详细信息)。如果用户在多个组中并且具有多个策略,则遵循特定的规则解析策略组合。
MSM维护EMM策略,然后EMM策略被关联到目录中的一个或多个用户组。MSM不执行任何用户或组管理,而是从目录存储直接充分利用这些身份和组(无同步)。MSM经HTTPS使用APNS和CGN,以向设备发送通知。MSM还将WebDAV前端暴露于内部启用CIFS/SMB的文件系统或“Microsoft共享点服务器”,并使得能够从客户端浏览内联网文件共享。
随着越来越多的组织在社交网络上进行呈现,IT部门需要对社交身份的支持,社交身份依赖于比企业身份更轻的安全标准,但是更好地适于社交网络的要求。例如,一些网站可能需要用户提供从Facebook或Google获得的访问令牌,以便对他们的服务进行认证。OAMMS包括与现有后端身份管理基础设施对接的服务器。服务器充当被支持的移动客户端应用和后端身份服务之间的中介。这将客户端应用与后端基础设施分离,使得后端基础设施可以被修改,而无需更新移动客户端程序。OAMMS包括以下功能:
·委托的授权充分利用OAuth标准
·移动服务将基于浏览器(HTML5)和本机的移动应用连接到企业身份管理基础设施,通常是“Oracle访问管理平台”。
·互联网身份服务提供允许OAMMS在与流行的、基于云的身份认证和授权服务(诸如Google、Yahoo、Facebook、Twitter或LinkedIn)交互时被用作依赖方的功能。通过部署OAMMS,向用户提供多个登录选项,而无需为每个身份提供者单独实现访问功能。用户简档服务为LDAPCRUD操作、用户自助服务功能(诸如自注册、简档维护、密码管理和帐户删除)提供REST接口(客户使用相同的REST接口为应用构建图形UI)。用户简档服务也作为OAuth资源可用。
·访问管理集成服务,用于通过由代理SDK提供的运行时REST接口来充分利用Oracle访问管理。
用于移动应用的数据绑定
图8是一个实施例中移动应用开发门户800的图示,移动应用开发门户800可以包括在应用开发框架124中,用于创建使用图1的系统环境100的云基础设施系统102的移动云服务122的应用。图8仅仅是说明移动应用开发门户800的实施例或实现,并且不应当限制如权利要求中阐述的任何发明的范围。本领域普通技术人员可以通过本公开内容和本文呈现的教导认识到图中所示的那些实施例或实现的其它变化、修改和/或替代。
在这个示例中,移动应用开发门户800包括允许开发人员通过能够访问移动云服务122的底层组件的应用开发框架124来创建移动应用的硬件和/或软件元件。移动后端服务模块810向开发人员提供一个或多个工具、用户界面、向导等,以设计、测试、实现、部署和管理任何数量或类型的后端服务。后端服务的一些示例包括推送通知服务、存储服务、用户管理服务等。开发人员可以指定移动应用如何访问或利用这些后端服务。一旦创建了后端服务,后端服务就可以在应用创建期间被自动呈现给开发人员,使得开发人员能够从一组预定的后端服务中进行选择,以便在移动应用中包括或使用。
应用程序接口模块820向开发人员提供一个或多个工具、用户界面、向导等,以设计、测试、实现、部署和管理跨移动后端服务使用的应用程序接口(API)。开发人员可以创建一个或多个软件中介,其使得移动应用有可能与利用移动后端服务模块810部署的后端服务交互。在一个示例中,开发人员可以创建表示状态传输(REST)的实现,该表示状态传输暴露后端服务的特定功能,同时保护其余部分。在另一个示例中,开发人员可以创建根据预定标准(诸如用户身份、移动设备类型、数据类型等)暴露后端服务的功能的API。一旦创建了API,就可以在应用创建期间将API自动呈现给开发人员,从而允许开发人员从一组预定的API中进行选择,以便在移动应用中包括或使用。
连接器模块830向开发人员提供一个或多个工具、用户界面、向导等,以设计、测试、实现、部署和管理与其它数据库、应用、基于云的应用和服务或外部API的连接。开发人员可以创建一个或多个连接,使得移动应用能够与其它类型的服务、外部应用或数据库、第三方API等交互。开发人员可以指定连接器利用各种技术(诸如REST或简单对象访问协议(SOAP))访问这些服务。一旦创建了连接器,就可以在应用创建期间将连接器自动呈现给开发人员,从而允许开发人员从一组预定连接器中进行选择,以便在移动应用中包括或使用。
存储模块840向开发人员提供一个或多个工具、用户界面、向导等,以设计、测试、实现、部署和管理跨移动后端服务使用的储存器。开发人员可以创建一个或多个存储集合,使得移动应用有可能利用移动后端服务检索和存储数据。用户管理模块850向开发人员提供一个或多个工具、用户界面、向导等,以管理对移动后端服务的用户访问。开发人员可以创建一个或多个用户集合、用户角色、用户组等,使得移动应用有可能遵守对于移动后端服务的用户访问限制。
应用组合器模块860向开发人员提供一个或多个工具、用户界面、向导等,以设计、测试、实现、部署和管理移动应用。可以为各种目标平台和设备创建移动应用,该目标平台诸如iOS、Android、Blackberry等。在各种实施例中,应用组合器模块860提供用于构建企业移动应用的基于云的快速应用开发环境。应用组合器模块860可以将移动应用打包和部署为本机应用。应用组合器模块860可以体现为在由加利福尼亚州Redwood Shores的Oracle提供的Oracle公共云上托管的多租户应用开发环境。因此,应用组合器模块860可以在基于云的服务中提供完整的应用生命周期管理。
在某些实施例中,应用组合器模块860提供可应用于各种用户角色的特征。例如,业务分析人员可以是具有关于目标后端系统(如客户关系管理(CRM)、人力资本管理(HCM)等)的良好功能知识的用户。业务分析人员可以通过他们对业务对象关系的理解以及他们对通用编程概念的熟悉而利用应用组合器模块860来快速开发移动应用。这种类型的用户通常对利用诸如CRM应用组合器、WebCenter布局组合器、SOA业务过程组合器、SFDC应用配置工具等工具来感到舒服,从而使开发人员能够利用应用组合器模块860高效地创建新的移动应用。
在另一个示例中,应用开发人员可以是对利用如JDeveloper的IDE来编写代码感到舒服的用户,并且使用如ADF、OAFwk、Spring、J2EE等应用开发框架来扩展和定制企业应用。这种类型的用户可以应用这些原理来利用应用组合器模块860高效地创建新的移动应用。在又一个示例中,应用管理员可以是负责应用和应用开发环境的配置、部署、供应、修补和一般维护的用户。这种类型的用户可以再次应用这些原理来利用应用组合器模块860高效地创建新的移动应用。
在某些实施例中,图1的云基础设施服务102的客户利用应用组合器模块860构建具有作为后端的内部部署电子商务套件(EBS)服务的定制移动应用。业务分析人员可以使用MCS 122在EBS后端暴露移动友好的REST API。然后,业务分析人员可以利用移动应用开发门户800的组件来构建移动应用。
在一些实施例中,合作伙伴可以构建对CRM产品的扩展并且寻求创建具有作为后端的扩展和CRM服务的定制移动应用。应用开发人员可以在JCS中利用定制对象扩展CRM,并使用MCS 122来为CRM和定制对象显示移动友好的API混搭。然后,业务分析人员可以利用移动应用开发门户800的组件来构建移动应用,以结合混搭MCS API。
在进一步的实施例中,SIEBEL客户可以利用用于SIEBEL后端的MCS API包装器和与LinkedIn集成来构建定制移动应用。应用开发人员可以在JDev中构建ADF移动LinkedIn特征,并利用移动应用开发门户800的组件部署这些特征。然后,业务分析人员可以利用移动应用开发门户800的组件构建移动应用,具有用于SIEBEL的MCS API和链接特征。
在某些实施例中,提供了用于利用预定义模板构建移动应用的系统和方法。预定义的模板允许使用MCS 122作为后端服务。可以在应用开发期间向开发人员呈现服务定义,从而允许UI设计和后端服务之间的快速连接。
图9是根据本发明实施例的、用于移动应用开发的方法的流程图。在一个实施例中,图9的流程图的功能由存储在存储器或其它计算机可读或有形介质中并由处理器执行的软件实现。在其它实施例中,功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等)或者硬件和软件的任何组合执行。
在910,生成应用定义向导。如本文所使用的应用定义向导表示在移动应用的定义过程期间指导用户的一个或多个UI的集合,该移动应用利用一个或多个预定义的云可访问的服务。应用定义向导可以实现各自与应用定义过程的一部分关联的一个或多个工作流。在一个实施例中,应用定义向导可以提示或以其它方式引导用户指定应用默认值,诸如应用标识符前缀、默认图标、启动屏幕、默认应用/特征模板、设置企业供应简档/密钥库等。
在某些实施例中,应用定义向导可以提示或以其它方式引导用户指定应用名称、形状因子(诸如电话或平板设备)、导航类型(例如,空意味着单个特征或UI、作为主界面、导航栏(“NavBar”)、主界面/Nav组合等)以及任何应用偏好。
在920,接收应用定义。如本文所讨论的,应用定义可以包括为了创建至少最低功能的移动应用所需的任何信息。在930,基于应用定义,生成移动应用。在一个实施例中,移动应用在目标设备的模拟器中表示,并且可以包括在被解释时充当经编译的移动应用的一组定义。
在940,生成特征选择向导。如本文所使用的特征选择向导表示在移动应用的开发过程期间指导用户的一个或多个UI的集合,该移动应用利用一个或多个预定义的云可访问的服务。特征选择向导可以实现各自与应用开发过程的一部分关联的一个或多个工作流。在一个实施例中,特征选择向导可以提示或以其它方式引导用户指定可以与移动应用一起使用的特征、UI模块、业务对象等。
在某些实施例中,特征选择向导可以提示或以其它方式引导用户指定移动应用的第一屏幕的组件。组件可以从组件目录中选择。
在某些实施例中,特征选择向导可以提示或以其它方式引导用户指定移动应用的其它屏幕的组件。这些其它屏幕可以形成一个或多个UI模块的部分。在某些实施例中,特征选择向导可以提示或以其它方式引导用户指定移动应用的一个或多个UI模块。UI模块表示可以关于移动应用被执行的处理器、任务或流程。UI模块可以从提供UI元素和页面流的内聚集合的UI模块目录或模板集合中选择。UI模块的一些示例是批准工作流、工作者任务、数据输入任务、报告构建器等。模板提供UI元素集合的预设布置/绑定,使得用户仅需要配置那些UI元素并绑定模板,而不必布置和绑定单独的UI元素。在一个实施例中,用户可以将他们自己的模板贡献给另一个用户可用的模板集合。用户可以配置或以其它方式指定表示UI模块的一系列页面。对于每个页面,用户可以像以前一样被呈现布局模板集合。每个布局模板可能有若干方面,诸如选择辅助模板。
在一些实施例中,特征选择向导可以提示或以其它方式引导用户指定移动应用的附加特征,诸如先前定义的业务对象。用户可以指定后端服务、API或连接器的什么资源要被每个组件、屏幕、UI模块等的UI元素使用或以其它方式与之关联。
在950,接收特征定义,并且在960生成数据绑定向导。本文使用的数据绑定向导表示在移动应用的数据绑定过程期间指导用户的一个或多个UI或现有UI的UI元素的集合,该移动应用利用一个或多个预定义的云可访问的服务。数据绑定向导可以实现一个或多个工作流,每个工作流与应用开发过程的一部分关联。在一个实施例中,数据绑定向导可以提示或以其它方式引导用户指定特征、屏幕、UI模块等如何被绑定到可以与移动应用一起使用的业务对象、服务、API等。在某些实施例中,数据绑定向导可以提示或以其它方式引导用户指定移动应用的业务对象。可以从移动应用可用的服务、API等的目录或集合中选择业务对象。
在970,接收数据绑定定义。在各种实施例中,步骤940-870可以串行或并行执行。可以在移动应用的单个元素或一组元素上执行940-870中的单独步骤。如图所示,用户可以重复特征定义和数据绑定的过程,以创建移动应用。在各种实施例中,可以向开发人员呈现模板集合。模板包括粘性用户界面组件的集合。开发人员可以将数据绑定到模板,然后映射如何利用模板呈现数据,而不是要求开发人员将数据绑定到每个单独的用户界面元素。
在980,部署移动应用。用户可以利用部署在目标设备上的测试应用或作为部署在目标设备上的本机应用来测试应用。
图10-13是可以由应用定义向导呈现的一个或多个用户界面的图示。在图10中,用户界面1000包括用户界面元素1010,其中开发人员为新移动应用指定名称。用户界面元素1020与发起新移动应用的创建的功能关联。图11和图12示出了向开发人员提供工作空间的用户界面1100和1200,其中工作空间可以包括到由开发人员先前创建的应用的链接以及用于创建新应用的一个或多个选项或用户界面元素。图13示出了用户界面1300,其可以向开发人员提供视频教程或其它帮助信息,以使开发人员从创建新应用程序开始。
图14A和14B示出了向开发人员提供定义新移动应用的属性1410的集合的用户界面1400。如图14A中所示,属性1410包括应用名称、描述、目标设备类型(例如,电话、平板电脑等)、图标。可以呈现和收集其它属性,以形成应用定义。图14B示出了在一个实施例中为属性1410指定的值的集合。
在某些实施例中,应用定义向导可以提示或以其它方式引导开发人员指定用于移动应用的第一屏幕的类型。在一方面,可以向开发人员呈现屏幕类型的集合,诸如简单屏幕、带顶部选项卡的屏幕、带底部选项卡的屏幕、带分页的屏幕等。图15A和15B示出了向开发人员提供定义新移动应用的第一屏幕的屏幕类型1510的集合的用户界面1500。图15A示出了作为简单屏幕类型的第一屏幕的默认选择。图15B示出开发人员已经选择了带顶部选项卡的屏幕。
在某些实施例中,应用定义向导可以提示或以其它方式引导开发人员指定移动应用的第一屏幕的细节。在一方面,可以向开发人员呈现特定于先前选择的屏幕类型的用户界面元素的集合。图16A和16B示出了向开发人员提供特定于先前选择的屏幕类型的用户界面元素1610的集合的用户界面1600。图16A示出了,基于带顶部选项卡的屏幕的选择,向开发人员呈现用户界面元素1610,以定义屏幕的标题和任何选项卡的名称或标签。图16B示出开发人员已经用期望的信息填充了用户界面元素1610。
在某些实施例中,应用定义向导可以提示或以其它方式引导开发人员指定移动应用的第一屏幕的设计。在一方面,可以向开发人员呈现特定于先前选择的屏幕类型的屏幕设计的集合。设计的一些示例可以包括不具有屏幕项目的空白设计、其中屏幕项目根据预定义的列表布局布置的基于列表的设计、其中项目根据预定义的图库布局布置的基于图库的设计、其中屏幕项目被布置在预定义的地图上的基于地图的设计等。图17A和17B示出了向开发人员提供特定于先前选择的屏幕类型的设计1710的集合的用户界面1700。图17A将顶部选项卡第一屏幕的默认设计示出为不具有附加元素的默认设计(例如,稍后由开发人员填充的空白画布)。图17B示出开发人员已经选择了基于列表的设计。
在某些实施例中,应用定义向导可以提示或以其它方式引导开发人员最终确定新应用的细节。图18示出了向开发人员提供用于最终确定新应用的细节的一个或多个选项的用户界面1800。在某些实施例中,可以向开发人员呈现在开发人员的设备上安装测试应用的QR码。这个测试应用与新创建的应用不同,但可以利用应用信息进行更新,以便在开发人员的设备上测试应用。
图19是在一个实施例中提供可用组件的目录的用户界面1900的图示。在一个实施例中,开发人员可以利用一个或多个手势向屏幕添加组件。例如,开发人员可以利用拖放手势添加来自目录的组件。图20是在一个实施例中的用户界面2000的图示,其中开发人员可以利用一个或多个手势将组件添加到屏幕。图21是在一个实施例中在开发人员已经将地图组件添加到屏幕之后的用户界面2100的图示。在这个示例中,可以打开引导定制器2110,其允许开发人员配置所添加的组件。
图22是在一个实施例中提供服务的目录的用户界面2200的图示。图23是在一个实施例中的用户界面2200的图示,其中开发人员可以基于所选择的业务对象添加创建UI模块。例如,开发人员可以添加Workers Service业务对象并创建Worker UI模块。图24是在一个实施例中开发人员已经添加UI模块之后的用户界面2200的图示。如上面所讨论的,开发人员可以为UI模块的页面的一个或多个屏幕指定模板。每个模板可以驱动所选业务对象的哪些属性可用于绑定到用户界面的元素。在这个示例中,可以打开允许开发人员选择模板的引导定制器2410。
图25是根据本发明实施例的、用于对移动应用的用户界面进行数据绑定的方法2500的流程图。在一个实施例中,图25的流程图的功能由存储在存储器或其它计算机可读或有形介质中并由处理器执行的软件实现。在其它实施例中,功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等)或硬件和软件的任何组合来执行。
在步骤2510中,接收将数据源绑定到移动应用的用户界面的第一手势。第一手势可以是用户界面事件,诸如滑动、点击等。如上面所指示的,可以从服务目录中选择数据源。在各种实施例中,移动应用可以具有其数据被绑定到后端服务(通常经HTTP并由后端/中间件服务器服务)的UI组件的屏幕。为了构建这些应用,用户需要将这些单独的组件绑定到那个数据的特定部分。
在各种实施例中,应用程序组合器模块860提供基于web的移动应用开发工具,其中每个UI组件通告UI的哪些部分可以独立地数据绑定到来自后端服务的数据的各个属性。
在一个实施例中,渲染如在设备上运行的移动应用的高保真UI预览。如果在这个预览中的组件先前已绑定,则预览将包含真实数据或者模拟数据并且看起来就好像在设备上运行。
当用户希望数据绑定UI组件时,进入特定的数据绑定模式。当这种情况发生时,移动应用的UI预览从高保真预览切换到其数据绑定模式。UI的可以被数据绑定的部分现在变换为示出描述那个特定部分的功能的相关文本。例如,假设UI组件将示出用户图片。这个UI具有用户的照片以及照片下方用户的名字。当用户未对此UI组件进行数据绑定时,应用的预览将示出代表性(模拟)或者真实照片以及其下方的模拟或真实名字。
当用户希望数据绑定这个UI简档组件时,用户激活数据绑定模式并且预览改变,以示出图片所在的空插槽(其现在将包含文本“用户简档照片”)和名字所在的空插槽(其现在将包含文本“名字”)。然后向用户呈现数据绑定接口。这包括用户可以绑定的所有可能的数据片段(例如,Facebook馈送可以包括所有用户的简档信息,包括他们的图片)以及映射到手机的可视预览中的插槽(在上述情况下为“用户简档照片”和“名字”)的可视插槽(其与手机预览分开)。
为了数据绑定这个组件,用户需要从可用列表中拖放特定数据片段,然后将其放入他们想要应用数据的插槽中。在上面的例子中,用户看到“名字”可用作数据片段。用户可以将其拖动到“名字”插槽,以将那个插槽绑定到其用户的名字。
当用户悬停在(他们将数据拖动到其上的)这些插槽时,电话的UI预览的被突出显示的对应部分通知用户这个插槽影响UI中什么地方(它们还具有预览中的文本,以帮助他们)。当用户完成数据绑定时,电话UI预览回到其高保真模式,其中现在向用户示出模拟或真实数据。因此,在数据绑定之外的任何时候,用户将看到该应用就像将在目标设备上出现的那样。
在步骤2520中,数据点的集合在数据源可用。在步骤2530中,基于用户界面提供的信息确定用户界面的数据可绑定区域的集合。例如,当进入数据绑定模式时,可以通过插槽向用户呈现,以帮助他们。以前的方法将向用户呈现向导或通用形式来数据绑定组件。这不仅不提供任何可视预览,而且它需要用户知道那个组件如何工作以及如何技术绑定到数据的复杂细节。
在步骤2540中,接收将在数据源可用的数据点链接到用户界面的数据可绑定区域的第二手势。相应地,在某些实施例中,每个UI组件将呈现可以找到的插槽的标准列表。当用户向这些插槽添加数据时,UI组件负责确定那个数据的意图和语义,并适当地配置自身以绑定到那些数据。
这种方法使得为移动设备数据绑定组件相当容易。它不需要用户具有关于UI组件如何在技术上绑定的密切相关的知识,也不需要检查或理解底层代码。这使得目标可以是技术较少的用户,但仍然允许他们以简化的方式绑定非常复杂的UI。在各种实施例中,每个UI组件工具提供以下内容。组件中的数据可绑定区域的列表。用于可以响应数据的这些区域中每一个的程序API(因为它们可能不同)。能够为这些数据绑定区域中的每个配置可视预览。
在步骤2550中,利用对在数据源可用的数据点的引用来修改数据可绑定区域的预定表达。在一个实施例中,每个UI模板开始于将UI组件绑定到某个预设的“开始”数据或模拟数据的某种表达语言。当用户数据绑定UI组件时,公共接口将向用户示出各种数据绑定插槽,以及告诉UI组件配置自身,用于数据绑定预览(它可以通过将表达语言指向从模拟数据改变到对应于插槽的文本来做到这一点)。
当用户将数据拖动到每个插槽时,通知UI组件并且必须突出显示UI组件的结构的与那个特定插槽相关的部分。当数据被丢弃时,UI组件被给予关于那个数据的上下文的信息(它来自什么API、它的什么性质、它在结果集中的位置,以及它是什么类型的数据)。UI组件然后负责以编程方式配置自身,以响应那个特定数据。
当用户退出数据绑定模式时,UI组件现在负责从其绑定的服务中获取模拟或真实数据,以产生高保真预览。
图26是在一个实施例中在执行数据绑定之后的用户界面2600的图示。相应地,可以向开发人员呈现所选择的业务对象的属性的列表并且利用一个或多个手势,将属性绑定到用户界面元素。
结论
图27是在一个实施例中用于配置移动应用以供部署的用户界面2700的图示。在这个示例中,开发人员可以选择移动应用可以部署到的一个或多个移动操作系统。图28是在一个实施例中在移动应用可用于部署之后的用户界面2700的图示。在这个示例中,部署对话框2810提供部署选项的集合。在各种实施例中,部署选项的选择使得生成QR码,从而允许目标设备接收该QR码并以其本机格式安装移动应用。
图29是在一个实施例中在移动应用可用于部署之后的用户界面2900的图示。在这个示例中,对话框2910包括被生成以触发在各种设备上以其本机格式安装移动应用的QR码。图30是在一个实施例中描绘在开发人员工作空间中新部署的移动应用的用户界面3000的图示。在这个示例中,对话框3010允许开发人员执行关于应用项目的一个或多个动作。
图31绘出了用于实现其中一种实施例的分布式系统3100的简化图。在所示出的实施例中,分布式系统3100包括一个或多个客户端计算设备3102、3104、3106和3108,这些客户端计算设备被配置为经一个或多个网络3110执行并操作诸如web浏览器、专属客户端(例如,Oracle Forms)等的客户端应用。服务器3112可以经由网络3110与远程客户端计算设备3102、3104、3106和3108通信耦合。
在各种实施例中,服务器3112可以适于运行由系统的一个或多个组件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的或云服务依据软件即服务(SaaS)模型或平台即服务(PaaS)模型向客户计算设备3102、3104、3106和/或3108的用户提供。操作客户端计算设备3102、3104、3106和/或3108的用户又可以利用一个或多个客户端应用与服务器3112交互,以利用由这些组件提供的服务。
在图31中所绘出的配置中,系统3100的软件组件3118、3120和3122被示为在服务器3112上实现。在其它实施例中,系统600的一个或多个组件和/或由这些组件提供的服务也可以由一个或多个客户端计算设备3102、3104、3106和/或3108实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当认识到的是,各种不同的系统配置是可能的,这些配置可以与分布式系统3100不同。因此,该图中所示的实施例是用于实现实施例系统的分布式系统的一个例子并且不是要限制。
客户端计算设备3102、3104、3106和/或3108可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows的软件,和/或诸如iOS、Windows Phone、Android,BlackBerry 29、Palm OS等各种移动操作系统,并且启用互联网、电子邮件、短消息服务(SMS)、或其它的通信协议。客户端计算设备3102、3104、3106和/或3108可以是通用个人计算机,作为例子,包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备3102、3104、3106和/或3108可以是运行任何各种市售或类UNIX操作系统的工作站计算机,这些操作系统包括但不限于各种GNU/Linux操作系统,诸如像Google Chrome OS,。作为替代,或附加地,客户端计算设备3102、3104、3106和3108可以是任何其它电子设备,诸如能够经(一个或多个)网络3110通信的瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性分布式系统3100被示为具有四个客户端计算设备,但任何数量的客户端计算设备可以被支持。其它设备,诸如具有传感器的设备等,可以与服务器3112交互。
分布式系统3100中的(一个或多个)网络3110可以是本领域技术人员熟悉的、可以利用各种市售协议当中任意一种支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系架构)、IPX(互联网数据包交换)、AppleTalk等。仅仅作为例子,(一个或多个)网络3110可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络3110可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电气和电子学研究所(IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器3112可以由一个或多个通用计算机、专用服务器计算机(作为例子,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群,
或者任何其它适当的布置和/或组合组成。在各种实施例中,服务器3112可以适于运行在前面公开内容中所描述的一个或多个服务或软件应用。例如,服务器3112可以对应于用于执行上面根据本公开内容的实施例描述的处理的服务器。
服务器3112可以运行包括上面讨论的操作系统当中任意一种在内的操作系统,以及任何市售的服务器操作系统。服务器3112还可以运行各种附加的服务器应用和/或中间层应用当中任意一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等等可商购的那些。
在一些实现中,服务器3112可以包括一个或多个应用,以分析和整合从客户端计算设备3102、3104、3106和3108的用户接收的数据馈送和/或事件更新。作为例子,数据馈送和/或事件更新可以包括,但不限于,馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器3112还可以包括一个或多个应用,以经由客户端计算设备3102、3104、3106和3108的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统3100还可以包括一个或多个数据库3114和3116。数据库3114和3116可以驻留在各个位置。作为例子,数据库3114和3116中的一个或多个可以驻留在服务器3112本地的非临时性存储介质上(和/或驻留在服务器3112中)。作为替代,数据库3114和3116可以远离服务器3112,并且经基于网络的或专用的连接与服务器3112通信。在一组实施例中,数据库3114和3116可以驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,用于执行服务器3112所具有的功能的任何必要的文件都可以适当地本地存储在服务器3112上和/或远程存储。在一组实施例中,数据库3114和3116可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图32示出了其中可以实现本发明的各种实施例的示例性计算机系统3200。系统3200可以被用来实现上述任何计算机系统。如图32中所示,计算机系统3200包括总线子系统3202和经由总线子系统3202与多个外围子系统通信的处理单元总线3204。这些外围子系统可以包括处理加速单元3206、I/O子系统3208、存储子系统3218和通信子系统3224。存储子系统3218包括有形计算机可读存储介质3222和系统存储器3210。
总线子系统3202提供了用于让计算机系统3200的各种组件和子系统按意图彼此通信的机制。虽然总线子系统3202被示意性地示为单条总线,但是总线子系统的备选实施例可以利用多条总线。总线子系统3202可以是若干种类型的总线结构中的任何一种,这些总线结构包括存储器总线或存储器控制器、外围总线、以及利用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元3204控制计算机系统3200的操作。一个或多个处理器可以被包括在处理单元3204中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元3204可以被实现为一个或多个独立的处理单元3232和/或3234,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元804也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元3204可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器3204中和/或存储子系统3218中。通过适当的编程,(一个或多个)处理器3204可以提供上述各种功能。计算机系统3200可以附加地包括处理加速单元3206,其可以包括数字信号处理器(DSP)、专用处理器等。
I/O子系统3208可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键板、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如Microsoft运动传感器,其使得用户能够通过利用手势和语音命令的自然用户接口控制诸如的Microsoft 360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备
用户接口输入设备也可以包括,但不限于,三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统3200向用户或其它计算机输出信息的所有可能类型的设备和机构。例如,用户接口输出设备可以包括,但不限于,可视地传达文字、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备以及调制解调器。
计算机系统3200可以包括包含软件元素、被示为当前位于系统存储器3210中的存储子系统3218。系统存储器3210可以存储可加载并且可在处理单元3204上执行的程序指令,以及在这些程序执行期间所产生的数据。
依赖于计算机系统3200的配置和类型,系统存储器3210可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元3204立即访问和/或目前正被处理单元3204操作和执行的数据和/或程序模块。在一些实现中,系统存储器3210可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如在启动期间,包含有助于在计算机系统3200的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为例子,但不是限制,系统存储器3210也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序3212、程序数据3214以及操作系统3216。作为例子,操作系统3216可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google操作系统等)和/或诸如iOS、Phone、OS、29OS和OS操作系统的移动操作系统。
存储子系统3218也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统3218中。这些软件模块或指令可以被处理单元3204执行。存储子系统3218也可以提供用于存储根据本发明被使用的数据的储存库。
存储子系统3200也可以包括可被进一步连接到计算机可读存储介质3222的计算机可读存储介质读取器3220。与系统存储器3210一起并且可选地与其相结合,计算机可读存储介质3222可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移动存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质3222也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备或者其它有形的计算机可读介质。这也可以包括诸如数据信号、数据传输的非有形的计算机可读介质,或者可以被用来发送期望信息并且可以被计算系统3200访问的任何其它介质。
作为例子,计算机可读存储介质3222可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘读取或写到其的光盘驱动器,该光盘诸如CD ROM、DVD和盘或其它光学介质。计算机可读存储介质3222可以包括,但不限于,驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质3222也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD、磁阻RAM(MRAM)SSD以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD)。盘驱动器及其关联的计算机可读介质可以为计算机系统3200提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统3224提供到其它计算机系统和网络的接口。通信子系统3224用作用于从其它系统接收数据和从计算机系统3200向其它系统发送数据的接口。例如,通信子系统3224可以使计算机系统3200能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统3224可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,利用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.11系列标准、或其它移动通信技术或其任意组合)、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或者替代,通信子系统3224可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统3224也可以代表可以使用计算机系统3200的一个或多个用户接收结构化和/或非结构化数据馈送3226、事件流3228、事件更新3230等形式的输入通信。
作为例子,通信子系统3224可被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送3226,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统3224也可被配置为接收连续数据流形式的数据,这可以包括实时事件的事件流3228和/或事件更新3230,它们本质上可以是连续的或无界的没有明确终止。产生连续数据的应用的例子可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统3224也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送3226、事件流3228、事件更新3230等,这一个或多个数据库可以与耦合到计算机系统3200的一个或多个流式数据源计算机通信。
计算机系统3200可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统3200的描述仅仅要作为具体的例子。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括小程序)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
在前述的说明书中,本发明的各方面参照其具体实施例进行了描述,但本领域技术人员将认识到,本发明不限于此。上述发明的各个特征和方面可以被单独或联合使用。另外,在不背离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。
其教导可以在本公开内容中呈现的一个或多个发明中任何一个的各种实施例可以以软件、固件、硬件或其组合中的逻辑的形式实现。逻辑可以存储在机器可访问存储器、机器可读物品、有形计算机可读介质、计算机可读存储介质或其它计算机/机器可读介质中或上,作为适于指导逻辑机器的中央处理单元(CPU或处理器)执行可在本公开内呈现的发明的各种实施例中公开的步骤集合的指令集合。逻辑可以构成软件程序或计算机程序产品的一部分,因为代码模块在被执行时变得与计算机系统或信息处理设备的处理器一起操作,以执行本公开内容中呈现的发明的各种实施例中的方法或过程。基于本公开内容和本文提供的教导,本领域普通技术人员将认识到用于在软件、固件、硬件或其组合中实现呈现的一个或多个发明的各种实施例的所公开的任何操作或功能的其它方式、变型、修改、替代和/或方法。
其教导可以在本公开内容中呈现的那些发明中任何一个的所公开的示例、实现和各种实施例仅仅是说明性的,以便以合理的清晰度向本领域技术人员传达本公开内容的教导。由于这些实现和实施例可以参考示例性说明或具体附图来描述,因此对于所描述的方法和/或具体结构的各种修改或调整可以对本领域技术人员变得显而易见。依赖于本公开内容和本文中找到的这些教导并且所述教导已通过其使本领域进步的所有此类修改、调整或变化都将被认为在其教导可以在本公开内容中呈现的一个或多个发明的范围内。由此,本描述和附图不应当在限制的意义上考虑,因为应当理解,在公开内容中呈现的发明决不限于具体示出的那些实施例。
相应地,以上描述和任何附图、说明和图示意在是说明性的而不是限制性的。因此,本公开内容中呈现的任何发明的范围不应当简单地参考以上描述和图中所示的那些实施例来确定,而是应当参考所附权利要求及其全部范围或等同物来确定。
Claims (24)
1.一种方法,包括:
在计算机处,接收由应用开发框架的用户做出的将数据源绑定到利用所述应用开发框架开发的移动应用的用户界面的第一手势;
由所述计算机确定在所述数据源处可用的数据点的集合;
由所述计算机基于由所述用户界面提供的信息来确定所述用户界面的数据可绑定区域的集合;
在所述计算机处,接收由所述应用开发框架的用户做出的将所述数据源处可用的数据点链接到所述用户界面的数据可绑定区域的第二手势;及
由所述计算机利用对在所述数据源处可用的数据点的引用修改所述数据可绑定区域的预定表达。
2.如权利要求1所述的方法,其中在所述计算机处接收由所述应用开发框架的所述用户做出的所述第一手势包括接收指示所述用户将所述数据源的可视表示从服务的目录拖动到用户界面的可视表示的信息。
3.如权利要求1或2所述的方法,其中由所述计算机确定在所述数据源处可用的所述数据点的集合包括访问REST或SOAP定义。
4.如权利要求1或2所述的方法,其中由所述计算机确定在所述数据源处可用的所述数据点的集合包括从回顾所部署的服务并创建API资产的采集器接收信息,该API资产表示在一个或多个基于云的项目中发现的服务。
5.如权利要求1至4中任一项所述的方法,其中由所述计算机基于由所述用户界面提供的所述信息来确定所述用户界面的所述数据可绑定区域的集合包括:
识别与所述用户界面关联的模板;及
基于所述模板来确定对应于所述数据可绑定区域的集合的用户界面元素的集合。
6.如权利要求1至5中任一项所述的方法,其中在所述计算机处接收由所述应用开发框架的所述用户做出的所述第二手势包括接收指示所述用户将在所述数据源处可用的所述数据点的可视表示从在所述数据源处可用的所述数据点的集合的可视表示拖动到所述数据可绑定区域的可视表示的信息。
7.如权利要求1至6中任一项所述的方法,其中由所述计算机利用对所述数据源处可用的数据点的引用来修改所述数据可绑定区域的预定表达包括更新对在预览所述用户界面时使用的第一数据的引用,而不利用对所述数据源处可用的数据点的引用进行数据绑定。
8.如权利要求1至7中任一项所述的方法,还包括:
由所述计算机确定从所述数据源请求数据所需的参数的集合;
由所述计算机基于由所述用户界面提供的信息确定参数源的集合;及
在所述计算机处接收由所述应用开发框架的用户做出的将参数链接到参数源的第三手势。
9.一种存储计算机程序产品的非临时性计算机可读介质,所述计算机程序产品在由计算机的处理器执行时使所述处理器:
接收由应用开发框架的用户做出的将数据源绑定到利用所述应用开发框架开发的移动应用的用户界面的第一手势;
确定在所述数据源处可用的数据点的集合;
基于由所述用户界面提供的信息来确定所述用户界面的数据可绑定区域的集合;
接收由所述应用开发框架的用户做出的将所述数据源处可用的数据点链接到所述用户界面的数据可绑定区域的第二手势;及
利用对在所述数据源处可用的数据点的引用修改所述数据可绑定区域的预定表达。
10.如权利要求9所述的非临时性计算机可读介质,其中,为了接收由所述应用开发框架的所述用户做出的所述第一手势,所述计算机程序产品使所述处理器接收指示所述用户将所述数据源的可视表示从服务的目录拖动到用户界面的可视表示的信息。
11.如权利要求9或10所述的非临时性计算机可读介质,其中,为了确定在所述数据源处可用的数据点的集合,所述计算机程序产品使所述处理器访问REST或SOAP定义。
12.如权利要求9至11中任一项所述的非临时性计算机可读介质,其中,为了确定在所述数据源处可用的数据点的集合,所述计算机程序产品使所述处理器从回顾所部署的服务并创建API资产的采集器接收信息,所述API资产表示在一个或多个基于云的项目中发现的服务。
13.如权利要求9至12中任一项所述的非临时性计算机可读介质,其中,为了基于由所述用户界面提供的所述信息来确定所述用户界面的所述数据可绑定区域的集合,所述计算机程序产品使所述处理器:
识别与所述用户界面关联的模板;及
基于所述模板来确定对应于所述数据可绑定区域的集合的用户界面元素的集合。
14.如权利要求9至13中任一项所述的非临时性计算机可读介质,其中,为了接收由所述应用开发框架的所述用户做出的所述第二手势,所述计算机程序产品使所述处理器接收指示所述用户将在所述数据源处可用的所述数据点的可视表示从在所述数据源处可用的所述数据点的集合的可视表示拖动到所述数据可绑定区域的可视表示的信息。
15.如权利要求9至14中任一项所述的非临时性计算机可读介质,其中,为了利用对所述数据源处可用的数据点的引用来修改所述数据可绑定区域的预定表达,所述计算机程序产品使所述处理器更新对在预览所述用户界面时使用的第一数据的引用,而不利用对所述数据源处可用的数据点的引用进行数据绑定。
16.如权利要求9至15中任一项所述的非临时性计算机可读介质,其中所述计算机程序产品还使所述处理器:
确定从所述数据源请求数据所需的参数的集合;
基于由所述用户界面提供的信息确定参数源的集合;及
接收由所述应用开发框架的用户做出的将参数链接到参数源的第三手势。
17.一种系统,包括:
硬件处理器;及
存储器,所述存储器存储指令集,所述指令集在由所述处理器执行时使所述处理器:
接收由应用开发框架的用户做出的将数据源绑定到利用所述应用开发框架开发的移动应用的用户界面的第一手势;
确定在所述数据源处可用的数据点的集合;
基于由所述用户界面提供的信息来确定所述用户界面的数据可绑定区域的集合;
接收由所述应用开发框架的用户做出的将所述数据源处可用的数据点链接到所述用户界面的数据可绑定区域的第二手势;及
利用对在所述数据源处可用的数据点的引用修改所述数据可绑定区域的预定表达。
18.如权利要求17所述的系统,其中,为了接收由所述应用开发框架的所述用户做出的所述第一手势,使所述处理器接收指示所述用户将所述数据源的可视表示从服务的目录拖动到用户界面的可视表示的信息。
19.如权利要求17或18所述的系统,其中,为了确定在所述数据源处可用的数据点的集合,使所述处理器访问REST或SOAP定义。
20.如权利要求17至19中任一项所述的系统,其中,为了确定在所述数据源处可用的数据点的集合,使所述处理器从回顾所部署的服务并创建API资产的采集器接收信息,所述API资产表示在一个或多个基于云的项目中发现的服务。
21.如权利要求17至20中任一项所述的系统,其中,为了基于由所述用户界面提供的所述信息来确定所述用户界面的所述数据可绑定区域的集合,还使所述处理器:
识别与所述用户界面关联的模板;及
基于所述模板来确定对应于所述数据可绑定区域的集合的用户界面元素的集合。
22.如权利要求17至21中任一项所述的系统,其中,为了接收由所述应用开发框架的所述用户做出的所述第二手势,使所述处理器接收指示所述用户将在所述数据源处可用的所述数据点的可视表示从在所述数据源处可用的所述数据点的集合的可视表示拖动到所述数据可绑定区域的可视表示的信息。
23.如权利要求17至22中任一项所述的系统,其中,为了利用对所述数据源处可用的数据点的引用来修改所述数据可绑定区域的预定表达,使得所述处理器更新对在预览所述用户界面时使用的第一数据的引用,而不利用对所述数据源处可用的数据点的引用进行数据绑定。
24.如权利要求17至23中任一项所述的系统,其中还使所述处理器:
确定从所述数据源请求数据所需的参数的集合;
基于由所述用户界面提供的信息确定参数源的集合;及
接收由所述应用开发框架的用户做出的将参数链接到参数源的第三手势。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462055988P | 2014-09-26 | 2014-09-26 | |
US62/055,988 | 2014-09-26 | ||
US14/865,842 US10073679B2 (en) | 2014-09-26 | 2015-09-25 | Efficient and intuitive databinding for mobile applications |
US14/865,842 | 2015-09-25 | ||
PCT/US2015/052637 WO2016049626A1 (en) | 2014-09-26 | 2015-09-28 | Efficient and intuitive databinding for mobile applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107408042A true CN107408042A (zh) | 2017-11-28 |
CN107408042B CN107408042B (zh) | 2021-09-28 |
Family
ID=55584453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580049259.8A Active CN107408042B (zh) | 2014-09-26 | 2015-09-28 | 用于移动应用的高效和直观的数据绑定 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10073679B2 (zh) |
EP (1) | EP3198416B1 (zh) |
JP (1) | JP6661620B2 (zh) |
CN (1) | CN107408042B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896230A (zh) * | 2017-12-26 | 2018-04-10 | 车智互联(北京)科技有限公司 | 一种支持高并发命令执行通道的系统 |
US10073679B2 (en) | 2014-09-26 | 2018-09-11 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
CN108762905A (zh) * | 2018-05-24 | 2018-11-06 | 苏州乐麟无线信息科技有限公司 | 一种多任务事件的处理方法和装置 |
CN110020367A (zh) * | 2017-12-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
CN111597484A (zh) * | 2020-07-22 | 2020-08-28 | 成都新希望金融信息有限公司 | 一种ui动态生成方法 |
CN111819535A (zh) * | 2017-12-28 | 2020-10-23 | 阿韦瓦软件有限责任公司 | 异步c#-js数据绑定桥 |
CN112817977A (zh) * | 2021-01-28 | 2021-05-18 | 山东浪潮通软信息科技有限公司 | 一种移动端展示和管理SaaS应用的方法 |
CN113312656A (zh) * | 2021-07-29 | 2021-08-27 | 阿里云计算有限公司 | 数据轮转方法、装置、设备及系统 |
CN113608895A (zh) * | 2021-08-06 | 2021-11-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种web后端数据的接入方法及系统 |
CN116382835A (zh) * | 2023-06-06 | 2023-07-04 | 天津市天河计算机技术有限公司 | 基于集群的应用可视化方法、系统、设备和介质 |
CN117435661A (zh) * | 2023-12-21 | 2024-01-23 | 深圳竹云科技股份有限公司 | 数据库连接配置方法、装置、计算机设备和存储介质 |
Families Citing this family (109)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9753700B2 (en) | 2013-05-29 | 2017-09-05 | Sap Se | Application building blocks for on demand and on premise usage |
US9826045B2 (en) | 2014-09-26 | 2017-11-21 | Oracle International Corporation | Efficient means to test server generated applications on mobile device |
US10290133B2 (en) | 2014-09-26 | 2019-05-14 | Oracle International Corporation | High fidelity interactive screenshots for mobile applications |
US9851968B2 (en) * | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
US9858174B2 (en) * | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
US10025758B2 (en) * | 2015-04-27 | 2018-07-17 | Microsoft Technology Licensing, Llc | Support for non-native file types in web application environment |
US10459600B2 (en) * | 2015-06-24 | 2019-10-29 | Microsoft Technology Licensing, Llc | Conversion of platform-independent accessibility logic into platform-specific accessibility functionality |
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 |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10013668B2 (en) | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US9898261B1 (en) * | 2015-09-30 | 2018-02-20 | Open Text Corporation | Method and system for configuring processes of software applications using activity fragments |
US10073583B2 (en) * | 2015-10-08 | 2018-09-11 | Adobe Systems Incorporated | Inter-context coordination to facilitate synchronized presentation of image content |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US20170177706A1 (en) * | 2015-12-16 | 2017-06-22 | Quixey, Inc. | Category-Based Search System and Method for Providing Application Related Search Results |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
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 |
US10878079B2 (en) | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10341410B2 (en) | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US10581820B2 (en) | 2016-05-11 | 2020-03-03 | Oracle International Corporation | Key generation and rollover |
US10454940B2 (en) | 2016-05-11 | 2019-10-22 | Oracle International Corporation | Identity cloud service authorization model |
US11314546B2 (en) * | 2016-11-18 | 2022-04-26 | Data Accelerator Ltd | Method and system for executing a containerized stateful application on a stateless computing platform using machine learning |
US9959099B2 (en) * | 2016-07-25 | 2018-05-01 | Sap Se | Framework for on demand functionality |
US10721237B2 (en) | 2016-08-05 | 2020-07-21 | Oracle International Corporation | Hierarchical processing for a virtual directory system for LDAP to SCIM proxy 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 |
US10516672B2 (en) | 2016-08-05 | 2019-12-24 | Oracle International Corporation | Service discovery 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 |
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 |
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 |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity 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 |
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 |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
US10567364B2 (en) | 2016-09-16 | 2020-02-18 | Oracle International Corporation | Preserving LDAP hierarchy in a SCIM directory using special marker groups |
US10341354B2 (en) | 2016-09-16 | 2019-07-02 | Oracle International Corporation | Distributed high availability agent architecture |
US10791087B2 (en) | 2016-09-16 | 2020-09-29 | Oracle International Corporation | SCIM to LDAP mapping using subtype attributes |
US10445395B2 (en) | 2016-09-16 | 2019-10-15 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
WO2018053258A1 (en) | 2016-09-16 | 2018-03-22 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
CN106502730B (zh) * | 2016-10-10 | 2020-01-14 | Oppo广东移动通信有限公司 | 一种多开应用的关联管理方法、装置及终端 |
US10341420B1 (en) * | 2016-10-14 | 2019-07-02 | Amazon Technologies, Inc. | Approaches for preparing and delivering bulk data to clients |
CN106648796A (zh) * | 2016-12-29 | 2017-05-10 | 宇龙计算机通信科技(深圳)有限公司 | 一种应用处理方法及装置 |
US10545811B2 (en) * | 2017-01-11 | 2020-01-28 | International Business Machines Corporation | Automatic root cause analysis for web applications |
US10915303B2 (en) * | 2017-01-26 | 2021-02-09 | Sap Se | Run time integrated development and modification system |
CN107678778B (zh) * | 2017-03-14 | 2019-12-13 | 平安科技(深圳)有限公司 | 基于Hybrid的兼容方法、适配件、运行装置及系统 |
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 |
US20200272292A1 (en) * | 2017-09-13 | 2020-08-27 | Schlumberger Technology Corporation | Workflow driven workspace using exploration and/or production data in the cloud |
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 |
WO2019068033A1 (en) * | 2017-09-30 | 2019-04-04 | Oracle International Corporation | OPERATION OF MICROSERVICE CONTAINERS TO PROVIDE TENANT INSULATION IN A MULTI-TENANT API BRIDGE |
US10607021B2 (en) | 2018-01-26 | 2020-03-31 | Bank Of America Corporation | Monitoring usage of an application to identify characteristics and trigger security control |
US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
JP6954191B2 (ja) * | 2018-03-12 | 2021-10-27 | オムロン株式会社 | 制御システム、開発支援装置、および開発支援プログラム |
US10931656B2 (en) | 2018-03-27 | 2021-02-23 | Oracle International Corporation | Cross-region trust 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 |
US10798165B2 (en) | 2018-04-02 | 2020-10-06 | Oracle International Corporation | Tenant data comparison 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 |
CN109144508A (zh) * | 2018-07-23 | 2019-01-04 | 北京科东电力控制系统有限责任公司 | 生成、定制告警画面的方法及装置 |
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 |
US11741196B2 (en) | 2018-11-15 | 2023-08-29 | The Research Foundation For The State University Of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
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 |
US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
US11250202B2 (en) * | 2019-03-19 | 2022-02-15 | Servicenow, Inc. | System and method for large volume data streaming as a service |
US11586750B2 (en) * | 2019-03-21 | 2023-02-21 | Blackberry Limited | Managing access to protected data file content |
US11625162B2 (en) | 2019-03-27 | 2023-04-11 | Schlumberger Technology Corporation | Geologic formation operations framework |
EP3742381A1 (en) * | 2019-05-22 | 2020-11-25 | Dr.Ing. h.c. F. Porsche Aktiengesellschaft | System for providing a travel experience to a car owner |
CN110286896B (zh) * | 2019-06-28 | 2023-03-31 | 百度在线网络技术(北京)有限公司 | 可视化编辑方法、装置、设备及存储介质 |
CN110308902B (zh) * | 2019-06-28 | 2023-10-03 | 百度在线网络技术(北京)有限公司 | 文件生成方法、装置、设备和存储介质 |
US11635990B2 (en) | 2019-07-01 | 2023-04-25 | Nutanix, Inc. | Scalable centralized manager including examples of data pipeline deployment to an edge system |
US11501881B2 (en) | 2019-07-03 | 2022-11-15 | Nutanix, Inc. | Apparatus and method for deploying a mobile device as a data source in an IoT system |
CN110377283B (zh) * | 2019-07-08 | 2022-10-11 | 北京亚鸿世纪科技发展有限公司 | Web前后端分离开发时前端有效数据的实现及同步方法 |
US11206249B2 (en) | 2019-07-26 | 2021-12-21 | International Business Machines Corporation | Enterprise workspaces |
US11228575B2 (en) | 2019-07-26 | 2022-01-18 | International Business Machines Corporation | Enterprise workspaces |
US10904355B1 (en) | 2019-07-26 | 2021-01-26 | International Business Machines Corporation | Enterprise workspaces |
JP7233342B2 (ja) * | 2019-08-08 | 2023-03-06 | 株式会社日立製作所 | サービス連携支援システムおよびその方法 |
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 |
US11611548B2 (en) | 2019-11-22 | 2023-03-21 | Oracle International Corporation | Bulk multifactor authentication enrollment |
US11290464B2 (en) * | 2019-12-18 | 2022-03-29 | Voya Services Company | Systems and methods for adaptive step-up authentication |
CN111813403A (zh) * | 2020-07-09 | 2020-10-23 | 北京亚鸿世纪科技发展有限公司 | 大屏数据可视化开发中拖拽组件数据管理的方法和装置 |
US10963272B1 (en) | 2020-07-09 | 2021-03-30 | Coupang Corp. | Systems and methods for deploying low-application-impact user interfaces |
US11522869B2 (en) * | 2020-08-19 | 2022-12-06 | Lenovo (Singapore) Pte. Ltd. | User approval of application communication based on location or domain name for device |
US11726764B2 (en) | 2020-11-11 | 2023-08-15 | Nutanix, Inc. | Upgrade systems for service domains |
US11665221B2 (en) | 2020-11-13 | 2023-05-30 | Nutanix, Inc. | Common services model for multi-cloud platform |
US11652828B1 (en) | 2021-01-11 | 2023-05-16 | Wells Fargo Bank, N.A. | Systems and methods for automated anomalous behavior detection and risk-scoring individuals |
US11113077B1 (en) | 2021-01-20 | 2021-09-07 | Sergio Pérez Cortés | Non-Invasively integrated main information system modernization toolbox |
CN112764732B (zh) * | 2021-01-25 | 2024-03-08 | 百果园技术(新加坡)有限公司 | 一种应用于加载目标资源的代码生成方法及装置 |
US11797638B2 (en) | 2021-02-24 | 2023-10-24 | Salesforce.Com, Inc. | Aggregate component for parallel browser-initiated actions |
US11736585B2 (en) | 2021-02-26 | 2023-08-22 | Nutanix, Inc. | Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications |
US20220283791A1 (en) * | 2021-03-08 | 2022-09-08 | Charles Amashta | Systems and Methods For Cascading Style Sheets in Native Mobile Applications |
US11321422B1 (en) * | 2021-03-09 | 2022-05-03 | Salesforce.Com, Inc. | User-configurable aggregate web components |
US11868711B2 (en) | 2021-08-16 | 2024-01-09 | Google Llc | Creating dynamic data-bound container hosted views and editable forms |
US20230084581A1 (en) * | 2021-09-16 | 2023-03-16 | Voyetra Turtle Beach Inc. | Video game controller with a graphical user interface |
US12003512B2 (en) * | 2021-10-21 | 2024-06-04 | Cisco Technology, Inc. | Limiting discovery of a protected resource in a zero trust access model |
US20230409992A1 (en) * | 2022-06-15 | 2023-12-21 | Sap Se | User interface and implementation for application service custom logic |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172261A1 (en) * | 2004-01-30 | 2005-08-04 | Yuknewicz Paul J. | Architecture for creating a user interface using a data schema |
CN101276277A (zh) * | 2007-03-29 | 2008-10-01 | 日立软件工程株式会社 | 源代码生成设备 |
US7757207B2 (en) * | 2004-08-20 | 2010-07-13 | Microsoft Corporation | Form skin and design time WYSIWYG for .net compact framework |
CN102063306A (zh) * | 2011-01-06 | 2011-05-18 | 夏春秋 | 一种通过电子表单进行应用开发的技术实现方法 |
CN102124445A (zh) * | 2008-07-28 | 2011-07-13 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和系统 |
WO2014088853A1 (en) * | 2012-12-03 | 2014-06-12 | Monotype Imaging Inc. | Network based font management for imaging devices |
US20140173454A1 (en) * | 2012-12-18 | 2014-06-19 | Logic Studio, S.A. | Method and system for designing, deploying and executing transactional multi-platform mobile applications |
WO2014126853A1 (en) * | 2013-02-12 | 2014-08-21 | Ab Initio Technology Llc | Building applications for configuring processes |
Family Cites Families (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5550971A (en) * | 1993-06-30 | 1996-08-27 | U S West Technologies, Inc. | Method and system for generating a user interface adaptable to various database management systems |
US6097382A (en) * | 1998-05-12 | 2000-08-01 | Silverstream Software, Inc. | Method and apparatus for building an application interface |
US7116310B1 (en) * | 1999-04-06 | 2006-10-03 | Microsoft Corporation | Application programming interface that maps input device controls to software actions |
US6631497B1 (en) * | 1999-07-19 | 2003-10-07 | International Business Machines Corporation | Binding data from data source to cells in a spreadsheet |
US8032634B1 (en) | 1999-08-23 | 2011-10-04 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on resource requirements |
US7111307B1 (en) | 1999-11-23 | 2006-09-19 | Microsoft Corporation | Method and system for monitoring and verifying software drivers using system resources including memory allocation and access |
US6631519B1 (en) * | 2000-03-30 | 2003-10-07 | Microsoft Corporation | Automated schema and interface generation |
US7203678B1 (en) * | 2001-03-27 | 2007-04-10 | Bea Systems, Inc. | Reconfigurable query generation system for web browsers |
US7062502B1 (en) * | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US20040111424A1 (en) | 2002-08-21 | 2004-06-10 | Roman Kendyl A. | Data-driven web application generator and server |
US7412658B2 (en) * | 2002-11-14 | 2008-08-12 | Sap Ag | Modeling system for graphic user interface |
US7337434B2 (en) | 2003-04-29 | 2008-02-26 | Sony Ericsson Mobile Communications Ab | Off-device class/resource loading methods, systems and computer program products for debugging a Java application in a Java micro device |
US20040250257A1 (en) | 2003-06-04 | 2004-12-09 | Oleg Koutyrine | System and method for generator state object validation |
US7577938B2 (en) * | 2004-02-20 | 2009-08-18 | Microsoft Corporation | Data association |
US20050188350A1 (en) * | 2004-02-20 | 2005-08-25 | Microsoft Corporation | Data binding |
WO2005093607A1 (en) * | 2004-02-27 | 2005-10-06 | Ebay Inc. | Method and system to monitor a diverse heterogeneous application environment |
US7650594B2 (en) | 2004-05-27 | 2010-01-19 | National Instruments Corporation | Graphical program analyzer with framework for adding user-defined tests |
US7523129B1 (en) * | 2004-09-15 | 2009-04-21 | Microsoft Corporation | Data-binding enhancements |
US7926027B2 (en) * | 2004-10-19 | 2011-04-12 | Microsoft Corporation | Binding to business objects and web services |
US7464297B2 (en) | 2005-06-23 | 2008-12-09 | Microsoft Corporation | System and method for testing software using data-driven test variations |
US7849447B1 (en) | 2005-11-21 | 2010-12-07 | Verizon Laboratories Inc. | Application testing and evaluation |
US7735068B2 (en) * | 2005-12-01 | 2010-06-08 | Infosys Technologies Ltd. | Automated relationship traceability between software design artifacts |
US7707553B2 (en) | 2005-12-08 | 2010-04-27 | International Business Machines Corporation | Computer method and system for automatically creating tests for checking software |
US7730427B2 (en) * | 2005-12-29 | 2010-06-01 | Sap Ag | Desktop management scheme |
US8578282B2 (en) * | 2006-03-15 | 2013-11-05 | Navisense | Visual toolkit for a virtual user interface |
US7577909B2 (en) * | 2006-05-16 | 2009-08-18 | Microsoft Corporation | Flexible management user interface from management models |
US20080253544A1 (en) * | 2007-04-12 | 2008-10-16 | Microsoft Corporation | Automatically aggregated probabilistic personal contacts |
US8739131B2 (en) | 2007-05-04 | 2014-05-27 | International Business Machines Corporation | Completing functional testing |
US8037135B2 (en) | 2007-06-29 | 2011-10-11 | Microsoft Corporation | Automatic distributed downloading |
US20090037452A1 (en) | 2007-07-31 | 2009-02-05 | Ahmad Baitalmal | System and Method for Synchronizing Applications |
US8589866B2 (en) * | 2007-08-29 | 2013-11-19 | Ricoh Company, Ltd. | Automatically generating capability-based computer peripheral device drivers |
US8132113B2 (en) | 2007-09-14 | 2012-03-06 | Oracle America, Inc. | REST application exploration |
US20090320004A1 (en) * | 2007-11-02 | 2009-12-24 | Kirk Fertitta | Test Instrument Graphical User Interface |
US8676723B2 (en) | 2008-03-04 | 2014-03-18 | Codese Co., Ltd. | Automated test system based on three-dimensional application software framework and a method thereof |
WO2009148481A1 (en) | 2008-06-06 | 2009-12-10 | Sapient Corporation | Systems and methods for visual test authoring and automation |
US8452567B1 (en) | 2008-06-06 | 2013-05-28 | Keithley Instruments, Inc. | Test recipe distribution method and system |
US8166387B2 (en) * | 2008-06-20 | 2012-04-24 | Microsoft Corporation | DataGrid user interface control with row details |
US8769553B2 (en) | 2008-07-18 | 2014-07-01 | Sybase, Inc. | Deploy anywhere framework for heterogeneous mobile application development |
US8473854B2 (en) | 2008-08-19 | 2013-06-25 | Rockwell Automation Technologies, Inc. | Visualization profiles and templates for auto-configuration of industrial automation systems |
US8959000B2 (en) | 2008-09-16 | 2015-02-17 | Verizon Patent And Licensing Inc. | Integrated testing systems and methods |
US20100281475A1 (en) | 2009-05-04 | 2010-11-04 | Mobile On Services, Inc. | System and method for mobile smartphone application development and delivery |
US8788946B2 (en) | 2009-11-03 | 2014-07-22 | Oracle International Corporation | Application agnostic UI integration framework for web based applications |
EP2524304A1 (en) | 2010-01-13 | 2012-11-21 | Tata Consultancy Services Ltd. | A computationally efficient system for developing configurable, extensible business application product lines using model-driven techniques |
US8631390B2 (en) | 2010-04-02 | 2014-01-14 | Apple Inc. | Archiving a build product |
US9448790B2 (en) | 2010-04-26 | 2016-09-20 | Pivotal Software, Inc. | Rapid updating of cloud applications |
US20110302516A1 (en) | 2010-06-02 | 2011-12-08 | Oracle International Corporation | Mobile design patterns |
CA2743949A1 (en) | 2010-06-22 | 2011-12-22 | Iwatchlife | System and method of local resource delivery |
US9047414B1 (en) | 2011-03-15 | 2015-06-02 | Symantec Corporation | Method and apparatus for generating automated test case scripts from natural language test cases |
US9170917B2 (en) * | 2011-04-01 | 2015-10-27 | Paypal, Inc. | Flow tracing though diverse logical and physical application and infrastructure layers/dependencies |
US20120317172A1 (en) | 2011-06-13 | 2012-12-13 | International Business Machines Corporation | Mobile web app infrastructure |
US20120323553A1 (en) | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Mobile Emulator Integration |
TWI476586B (zh) | 2011-07-13 | 2015-03-11 | Inst Information Industry | 以雲端技術為基礎之測試系統、方法以及其電腦可讀取記錄媒體 |
US8745641B1 (en) | 2011-07-14 | 2014-06-03 | Google Inc. | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface |
US9105046B1 (en) | 2011-08-05 | 2015-08-11 | Google Inc. | Constraining ad service based on app content |
JP5357340B1 (ja) | 2011-11-04 | 2013-12-04 | 株式会社メディアシーク | アプリケーションソフトウェアを生成するシステム |
WO2013109860A1 (en) | 2012-01-18 | 2013-07-25 | Smart Online, Inc. | Software builder |
US20140053126A1 (en) | 2012-02-13 | 2014-02-20 | Mark A. Watson | Integrated mobile application development platform |
US20130254262A1 (en) | 2012-03-26 | 2013-09-26 | Quickmobile Inc. | System and method for a user to dynamically update a mobile application from a generic or first application within a class of applications to create a specific or second application with said class of applications |
EP2704037A3 (en) * | 2012-08-31 | 2014-07-09 | Sitecore A/S | A method for generating or updating an interactive webpage |
WO2014062804A1 (en) | 2012-10-16 | 2014-04-24 | Citrix Systems, Inc. | Application wrapping for application management framework |
US9047404B1 (en) | 2013-03-13 | 2015-06-02 | Amazon Technologies, Inc. | Bridge to connect an extended development capability device to a target device |
US20140282285A1 (en) * | 2013-03-14 | 2014-09-18 | Cellco Partnership D/B/A Verizon Wireless | Modifying a user interface setting based on a vision ability of a user |
US9158534B2 (en) | 2013-03-15 | 2015-10-13 | Wolters Kluwer United States Inc. | Smart endpoint architecture |
US10607299B2 (en) * | 2013-03-15 | 2020-03-31 | Tomorrowish Llc | Displaying social media content |
US20140282398A1 (en) | 2013-03-15 | 2014-09-18 | Wolters Kluwer U.S. Corporation | Platform for developing and distributing mobile applications |
US9161156B2 (en) | 2013-07-31 | 2015-10-13 | Sap Se | Tiles in a mobile application framework |
US20150089403A1 (en) * | 2013-09-20 | 2015-03-26 | Jin You ZHU | Dynamic generation of user interface |
US9223684B2 (en) | 2013-09-25 | 2015-12-29 | Microsoft Technology Licensing, Llc | Online application testing across browser environments |
US9251261B2 (en) * | 2013-09-30 | 2016-02-02 | Symantec Corporation | Method and system for metadata driven testing of malware signatures |
US10104082B2 (en) | 2013-11-06 | 2018-10-16 | William P. Jones | Aggregated information access and control using a personal unifying taxonomy |
US9152812B2 (en) | 2013-12-03 | 2015-10-06 | Paypal, Inc. | Sensitive data protection during user interface automation testing systems and methods |
JP6364496B2 (ja) | 2014-02-07 | 2018-07-25 | オラクル・インターナショナル・コーポレイション | モバイルクラウドサービスアーキテクチャ |
GB2523134A (en) * | 2014-02-13 | 2015-08-19 | Spatineo Oy | Service level monitoring for geospatial web services |
US10924554B2 (en) | 2014-05-05 | 2021-02-16 | Citrix Systems, Inc. | Application customization |
US10909552B2 (en) | 2014-08-15 | 2021-02-02 | International Business Machines Corporation | Mobile application analytics framework |
US9514031B2 (en) | 2014-09-22 | 2016-12-06 | International Business Machines Corporation | Auto-deployment and testing of system application test cases in remote server environments |
US11036933B2 (en) * | 2014-09-25 | 2021-06-15 | Oracle International Corporation | User interface component autowiring |
WO2016049626A1 (en) | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
US10073679B2 (en) | 2014-09-26 | 2018-09-11 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
US9851968B2 (en) | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
US10290133B2 (en) | 2014-09-26 | 2019-05-14 | Oracle International Corporation | High fidelity interactive screenshots for mobile applications |
US9826045B2 (en) | 2014-09-26 | 2017-11-21 | Oracle International Corporation | Efficient means to test server generated applications on mobile device |
US9858174B2 (en) | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
US9886244B2 (en) | 2014-10-01 | 2018-02-06 | Oracle International Corporation | Rich tooling for rest application development |
US9760343B2 (en) | 2014-11-28 | 2017-09-12 | Sap Se | Application builder based on metadata |
US10198348B2 (en) | 2015-08-13 | 2019-02-05 | Spirent Communications, Inc. | Method to configure monitoring thresholds using output of load or resource loadings |
US9851953B2 (en) | 2015-06-29 | 2017-12-26 | Oracle International Corporation | Cloud based editor for generation of interpreted artifacts for mobile runtime |
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 |
US10277582B2 (en) | 2015-08-27 | 2019-04-30 | Microsoft Technology Licensing, Llc | Application service architecture |
TWI624783B (zh) | 2015-09-17 | 2018-05-21 | 長茂科技股份有限公司 | 整合動態連結功能函式的行動裝置應用程式之建置系統及方法 |
-
2015
- 2015-09-25 US US14/865,842 patent/US10073679B2/en active Active
- 2015-09-28 CN CN201580049259.8A patent/CN107408042B/zh active Active
- 2015-09-28 JP JP2017516340A patent/JP6661620B2/ja active Active
- 2015-09-28 EP EP15782130.7A patent/EP3198416B1/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172261A1 (en) * | 2004-01-30 | 2005-08-04 | Yuknewicz Paul J. | Architecture for creating a user interface using a data schema |
US7757207B2 (en) * | 2004-08-20 | 2010-07-13 | Microsoft Corporation | Form skin and design time WYSIWYG for .net compact framework |
CN101276277A (zh) * | 2007-03-29 | 2008-10-01 | 日立软件工程株式会社 | 源代码生成设备 |
CN102124445A (zh) * | 2008-07-28 | 2011-07-13 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和系统 |
CN102063306A (zh) * | 2011-01-06 | 2011-05-18 | 夏春秋 | 一种通过电子表单进行应用开发的技术实现方法 |
WO2014088853A1 (en) * | 2012-12-03 | 2014-06-12 | Monotype Imaging Inc. | Network based font management for imaging devices |
US20140173454A1 (en) * | 2012-12-18 | 2014-06-19 | Logic Studio, S.A. | Method and system for designing, deploying and executing transactional multi-platform mobile applications |
WO2014126853A1 (en) * | 2013-02-12 | 2014-08-21 | Ab Initio Technology Llc | Building applications for configuring processes |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10073679B2 (en) | 2014-09-26 | 2018-09-11 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
CN110020367B (zh) * | 2017-12-15 | 2022-07-12 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
CN110020367A (zh) * | 2017-12-15 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种页面渲染方法及装置 |
CN107896230B (zh) * | 2017-12-26 | 2020-04-10 | 车智互联(北京)科技有限公司 | 一种支持高并发命令执行通道的系统 |
CN107896230A (zh) * | 2017-12-26 | 2018-04-10 | 车智互联(北京)科技有限公司 | 一种支持高并发命令执行通道的系统 |
CN111819535A (zh) * | 2017-12-28 | 2020-10-23 | 阿韦瓦软件有限责任公司 | 异步c#-js数据绑定桥 |
CN108762905A (zh) * | 2018-05-24 | 2018-11-06 | 苏州乐麟无线信息科技有限公司 | 一种多任务事件的处理方法和装置 |
CN108762905B (zh) * | 2018-05-24 | 2020-12-11 | 苏州乐麟无线信息科技有限公司 | 一种多任务事件的处理方法和装置 |
CN111597484A (zh) * | 2020-07-22 | 2020-08-28 | 成都新希望金融信息有限公司 | 一种ui动态生成方法 |
CN112817977A (zh) * | 2021-01-28 | 2021-05-18 | 山东浪潮通软信息科技有限公司 | 一种移动端展示和管理SaaS应用的方法 |
CN113312656A (zh) * | 2021-07-29 | 2021-08-27 | 阿里云计算有限公司 | 数据轮转方法、装置、设备及系统 |
CN113608895A (zh) * | 2021-08-06 | 2021-11-05 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种web后端数据的接入方法及系统 |
CN113608895B (zh) * | 2021-08-06 | 2024-04-09 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种web后端数据的接入方法及系统 |
CN116382835A (zh) * | 2023-06-06 | 2023-07-04 | 天津市天河计算机技术有限公司 | 基于集群的应用可视化方法、系统、设备和介质 |
CN116382835B (zh) * | 2023-06-06 | 2023-08-01 | 天津市天河计算机技术有限公司 | 基于集群的应用可视化方法、系统、设备和介质 |
CN117435661A (zh) * | 2023-12-21 | 2024-01-23 | 深圳竹云科技股份有限公司 | 数据库连接配置方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3198416A1 (en) | 2017-08-02 |
EP3198416B1 (en) | 2022-04-20 |
JP2017533503A (ja) | 2017-11-09 |
US10073679B2 (en) | 2018-09-11 |
US20160092176A1 (en) | 2016-03-31 |
CN107408042B (zh) | 2021-09-28 |
JP6661620B2 (ja) | 2020-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107408042A (zh) | 用于移动应用的高效和直观的数据绑定 | |
US11127178B2 (en) | High fidelity interactive screenshots for mobile applications | |
US10841385B2 (en) | Efficient means to test server generated applications on mobile device | |
US10193877B2 (en) | On-premises agent for mobile cloud service | |
US9851968B2 (en) | High performant iOS template based application build system | |
US9858174B2 (en) | Updatable native mobile application for testing new features | |
CN107924411B (zh) | 一种事务系统中ui状态的恢复的方法和系统 | |
US10193953B2 (en) | Self describing configuration | |
JP6412943B2 (ja) | クラウドサービスカスタム実行環境 | |
US10496837B2 (en) | Support sharing the same table for protected and non-protected data columns | |
WO2016049626A1 (en) | Efficient and intuitive databinding for mobile applications | |
JP6775013B2 (ja) | データテーブルを共有するためのサポートを有する構成の自己記述 | |
US20170116343A1 (en) | Federated search | |
US20170116436A1 (en) | Automatic operation detection on protected field | |
JP7165715B2 (ja) | 統合検索のためのサポートを伴う保護されたフィールド上の自動動作検出 | |
CN109074265A (zh) | 移动云服务的预先形成的指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |