CN107153572B - 一种应用程序实现方法及装置 - Google Patents

一种应用程序实现方法及装置 Download PDF

Info

Publication number
CN107153572B
CN107153572B CN201710244401.5A CN201710244401A CN107153572B CN 107153572 B CN107153572 B CN 107153572B CN 201710244401 A CN201710244401 A CN 201710244401A CN 107153572 B CN107153572 B CN 107153572B
Authority
CN
China
Prior art keywords
service process
process script
client
service
running
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.)
Active
Application number
CN201710244401.5A
Other languages
English (en)
Other versions
CN107153572A (zh
Inventor
武红华
刘诗聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201710244401.5A priority Critical patent/CN107153572B/zh
Publication of CN107153572A publication Critical patent/CN107153572A/zh
Application granted granted Critical
Publication of CN107153572B publication Critical patent/CN107153572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及应用开发技术领域,公开了一种应用程序实现方法及装置。其包括:服务端接收并存储服务过程脚本;服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于业务逻辑中的运行位置标识,服务端与客户端配合运行服务过程脚本;当服务端运行服务过程脚本时,若检测到运行位置标识,则暂停运行服务过程脚本,并获取服务过程脚本所生成的上下文信息,并同步至客户端,客户端根据同步的上下文信息以及运行位置标识继续运行服务过程脚本;当服务端检测到来自客户端同步的上下文信息以及运行位置标识时,继续运行服务过程脚本。本实施方式使得应用程序开发的劳动强度大大降低,同时还有利于提高应用程序开发质量。

Description

一种应用程序实现方法及装置
技术领域
本发明涉及应用开发技术领域,特别涉及一种应用程序实现方法及装置。
背景技术
移动互联网与移动支付等基础架构在国内的大范围普及使得很多基于互联网的服务业应用变得可能。目前在应用程序开发中,React是一个较为热门的应用程序框架(框架用于定义一套解决问题的流程,并提供解决问题的过程中需要应用到的相关组件、增加相关组件的方法的程序套件)。React也被定义成一个“用来构建UI(即User Interface(用户界面)的简称)的JavaScript库”,React可以较为容易地生成各种程序员所需要的控件(控件例如是指显示在用户界面上的“按钮”,“文本框”,“地图上选择地点”,“相册选择”等的显示元素),并能够做到快捷地事件绑定等操作。其中,开发者只需要关心数据整体的变化,即两次数据变化之间的UI如何变化(如需要增加一行文字、增加一个按钮等),剩下的工作可以完全交给React框架去做,而不需要开发者关心具体该如何对UI进行操作。因此,使用React能够明显降低逻辑复杂性,从而使得应用开发难度降低、并且产生Bug的机会也会更少。
微信UI开发框架是一套基于微信客户端的用户界面框架。其中,微信UI开发框架使微信公共号可以直接调用微信原生的接口,具备部分原生应用的能力,并且微信UI也使得微信公众号可以具有风格一致的用户体验。
本发明的发明人在实现本发明的过程中发现:React的不足在于:其是一个通用的主要针对UI设计的应用程序框架,而其后端框架仍然只有最基础的读写数据功能,并不具备逻辑处理功能,而且,在当前软件工程理论水平之下只能做到为开发者提供细粒度的控件,如最基础的“按钮”、“标签”等。而对于UI界面设计,开发者更需要的是粗颗粒度的控件,如“支付组件”,“聊天页面”,“录音界面”等,同时还需要更便捷地写出数据处理逻辑,数据处理逻辑包括数据验证、一连串的用户交互行为而不仅仅是简单的读写数据库。因此React虽然有效地降低了开发通用互联网App(Application的简称,应用)的人工和耗时,但对于快速开发互联网应用而言仍然存在巨大的提升空间。而微信UI(即WeUI)仍然只是一个前端UI框架,虽然其提供了比React更为粗颗粒且更为实用的UI控件,但是同样,微信UI也没有提供互联网App(例如服务业App)所需要的后端服务器支持。因此WeUI只能部分降低服务业App开发者的劳动强度。因此目前开发者即便使用现有的最新款的开发工具,开发一个具有完整功能的互联网服务业应用仍然需要耗费大量人力与时间来编写相当多本来可以重复利用的组件(如聊天工具、下单工具、支付组件等),并需要编写一组后端服务器处理程序以及设置数据库和复杂的数据验证、状态存储程序等,因此需要承担由于编码复杂度高而带来的程序健壮性低下的风险。因此,现有应用程序开发人员所面临的控件拼接繁琐(由于开发工具仅提供了细颗粒度的空间)以及代码逻辑设计难度大(即开发人员需要考虑API的调用等技术层面的问题)等的问题严重阻碍了应用程序开发效率以及质量,所以如何更快速更稳健地开发服务业应用对于相关中小创业企业和个人是至关重要的。
发明内容
本发明实施方式的目的在于提供一种应用程序实现方法及装置,使得开发人员无需考虑后端服务器中的库文件调用这样的技术层面的问题,从而可以降低开发难度,有利于提高开发效率。
为解决上述技术问题,本发明的实施方式提供了一种应用程序实现方法,应用于服务端,包括:接收并存储服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;将所述服务过程脚本发送至与所述服务端配合的客户端,供所述客户端存储并运行所述服务过程脚本;与所述客户端配合运行所述服务过程脚本;其中,当所述服务端运行所述服务过程脚本时,若检测到所述运行位置标识,则暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息,将获取的所述上下文信息同步至所述客户端,供所述客户端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;当检测到来自所述客户端同步的上下文信息以及运行位置标识时,根据所述客户端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
本发明的实施方式还提供了一种应用程序实现方法,应用于客户端,接收并存储来自服务端的服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;与所述服务端配合运行所述服务过程脚本;其中,当所述客户端运行所述服务过程脚本时,若检测到所述运行位置标识,则暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息,将获取的所述上下文信息同步至所述服务端,供所述服务端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;当检测到来自所述服务端同步的上下文信息以及运行位置标识时,根据所述服务端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
本发明的实施方式还提供了一种应用程序实现装置,应用于服务端,包括:第一接收模块,用于接收并存储服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;第一发送模块,用于将所述服务过程脚本发送至与所述服务端配合的客户端,供所述客户端存储并运行所述服务过程脚本;第一控制模块,用于控制服务端与所述客户端配合运行所述服务过程脚本;所述第一控制模块包括:第一检测子模块,用于在所述服务端运行所述服务过程脚本时,检测所述运行位置标识;第一获取子模块,用于在第一检测子模块检测到所述运行位置标识时,暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息;第一同步子模块,用于将获取的所述上下文信息同步至所述客户端,供所述客户端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;第二检测子模块,用于检测来自所述客户端同步的上下文信息以及运行位置标识,第一恢复子模块,用于根据所述客户端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
本发明的实施方式还提供了一种应用程序实现装置,应用于客户端,包括:第二接收模块,用于接收并存储来自服务端的服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;第二控制模块,用于控制所述客户端与所述服务端配合运行所述服务过程脚本;所述第二控制模块包括:第三检测子模块,用于在所述客户端运行所述服务过程脚本时,检测所述运行位置标识;第二获取子模块,用于在检测到所述运行位置标识时,暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息;第二同步子模块,用于将获取的所述上下文信息同步至所述服务端,供所述服务端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;第四检测子模块,用于检测来自所述服务端同步的上下文信息以及运行位置标识;第二恢复子模块,用于根据所述服务端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
本发明实施方式相对于现有技术而言,开发者可以将应用程序的服务过程写为一个文件,即服务过程脚本,并且在服务过程脚本中设置运行位置标识,通过该运行位置标识指示服务过程脚本中的业务逻辑的当前位置处之后业务逻辑的运行位置,即运行于服务端或者客户端,而当服务过程脚本运行完成时,应用程序的各项功能即可得以实现。由于在服务过程脚本运行过程中,当检测到运行位置标识时,当前运行服务过程脚本的一端,可以获取其所产生的上下文信息,并将上下文信息同步至服务过程脚本运行的对应端,从而使得对应端可以继续运行服务过程脚本,这样,在服务过程脚本运行的过程中,其既可以运行于服务端,也可以运行于客户端,且通过同步保证服务端和客户端的信息共享,从而保证服务过程脚本协调有序运行。因此,本发明实施方式无需开发者自行设计后端服务器的库文件的调用逻辑(例如考虑API的调用顺序等的技术层面的问题),从而降低了应用程序开发难度,进而有利于提高开发效率。
另外,所述获取所述服务过程脚本所生成的上下文信息,具体包括:对所述应用程序进行初始化;其中所述初始化用于分配缓存,所述缓存用于存储所述服务过程脚本的运行数据;在所述服务过程脚本运行时,将所述服务过程脚本的运行数据存储在所述缓存中;当检测到所述运行位置标识时,读取所述缓存中的运行数据,并将读取的所述运行数据作为上下文信息。通过初始化缓存保存上下文信息,在需要同步至对应端时,可以快速获取上下文信息,保证同步效率。
另外,所述将获取的所述上下文信息同步至所述客户端,具体包括:通过预设接口将所述上下文信息同步至所述客户端。另外,所述应用程序实现方法还包括:预设应用程序模板,所述应用程序模板包括预定义的内容元素以及应用程序框架;接收内容元素配置文件,并根据预定义的内容元素以及所述内容元素配置文件生成所述应用程序的内容元素;所述与所述客户端配合运行所述服务过程脚本,具体包括:根据所述应用程序框架设置所述服务过程脚本的运行环境、生成服务过程脚本的用户页面以及服务过程脚本需要的组件;基于所述运行环境、用户页面以及组件运行所述服务过程脚本。通过预设应用程序模板,并根据预设的应用程序模板设置应用程序服务过程脚本的运行环境、生成服务过程脚本的用户页面以及服务过程脚本需要的组件等,可以大量减少开发者重复开发的工作量。
另外,所述内容元素包括以下之一或其任意组合:商品详情、订单详情,支付信息。
另外,所述获取所述服务过程脚本所生成的上下文信息,具体包括:对所述应用程序进行初始化;其中所述初始化用于分配缓存,所述缓存用于存储所述服务过程脚本的运行数据;在所述服务过程脚本运行时,将所述服务过程脚本的运行数据存储在所述缓存中;当检测到所述运行位置标识时,读取所述缓存中的运行数据,并将读取的所述运行数据作为上下文信息。
另外,所述将所述服务过程脚本的运行数据存储在所述缓存中,具体包括:显示表单;其中所述表单包括内容元素以及与所述内容元素对应的内容元素入口;若检测到所述内容元素入口被触发,则显示对应的内容元素修改界面,并接收内容元素修改信息,且将接收到的内容元素修改信息存储入所述缓存。
附图说明
图1是根据本发明第一实施方式应用程序实现方法的流程图;
图2是根据本发明第二实施方式应用程序实现方法的流程图;
图3是根据本发明第三实施方式应用程序实现方法的流程图;
图4是根据本发明第四实施方式应用程序实现装置的结构示意图;
图5是根据本发明第五实施方式应用程序实现装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
现有开发人员在使用面向开发互联网应用程序等的开发工具开发应用程序时,需要手动编写服务端和客户端的交互接口以及手动定义例如订单或者商品等的状态转移模式等,即开发人员需要考虑通过API(Application Program Interface的简称,应用程序接口)获取服务端数据库中的数据,然而,由于不同数据具有不同的权限(如一些数据,用户A能访问,用户B不能访问)等上下文信息限制,因此,在开发新的APP时就需要重复编写API。同时,为了调用API,开发者还需要在客户端页面中设置很多“点击事件”,“回调”等技术细节,这些对于不同的API均需重新编写,因此,编写一个新的APP存在大量重复劳动,且这样的技术细节存在一定的逻辑难度。针对上述需要重复编写API等的技术细节的问题,本发明通过将应用程序的业务逻辑写成一个文件(即服务过程脚本),并通过引入同步机制,使得服务过程脚本可以跨服务端和客户端协调有序运行,从而实现完整的应用程序业务逻辑,进而实现应用程序的各项功能。
本发明的第一实施方式涉及一种应用程序实现方法,应用于服务端,具体流程如图1所示,包括步骤101至步骤103。
步骤101:接收并存储服务过程脚本,其中,服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于业务逻辑中的运行位置标识。其中,运行位置标识用于指示业务逻辑运行于客户端或者服务端。
其中,业务逻辑可以是描述应用程序服务过程的代码。这里,应用程序服务过程可以是指任何基于互联网的应用程序的服务过程(也可称为服务流程)。举例而言,打车软件的服务流程例如是:呼叫快车、派车、开始服务、结束服务、完成支付等的过程。开发人员在编写服务过程脚本时,无需考虑技术层面如何获取服务端的数据,即无需通过API或者其他可以实现的方式自行编写获取服务端的数据的逻辑,仅需根据服务流程编写出业务逻辑并且在业务逻辑中设置运行位置标识即可。一般而言,业务逻辑的代码逐行顺序运行,但是本实施方式的服务过程脚本既需要在服务端运行,也需要在客户端运行,所以运行位置标识即用于指示该运行位置标识处之后的业务逻辑的运行位置(即在服务端或者客户端)。例如,开发人员在编写打车软件的服务过程脚本时,可以人为设定呼叫快车运行于客户端,派车运行于服务端等。
步骤102:将服务过程脚本发送至与服务端配合的客户端,供客户端存储并运行服务过程脚本。
其中,用户在使用基于本实施方式所实现的应用程序APP时,可以通过客户端从服务端下载该APP,其中,下载的APP中包含有服务过程脚本。
步骤103:与客户端配合运行服务过程脚本。
其中步骤103具体包括子步骤1031至子步骤1032。
子步骤1031:当服务端运行服务过程脚本时,若检测到运行位置标识,则暂停运行服务过程脚本,并获取服务过程脚本所生成的上下文信息,将获取的上下文信息同步至客户端,供客户端根据同步的上下文信息以及运行位置标识继续运行服务过程脚本。
子步骤1032:当检测到来自客户端同步的上下文信息以及运行位置标识时,根据客户端同步的上下文信息以及运行位置标识继续运行服务过程脚本。
其中子步骤1031和子步骤1032之间没有前后顺序限制。在实际应用中,服务过程脚本既可以在客户端开始运行,也可以在服务端开始运行。当检测到服务过程脚本被触发时,则开始运行服务过程脚本,当检测到服务过程脚本运行结束时,则相应地实现了应用程序的服务流程,同时可相应地实现应用程序的各项功能。其中,服务过程脚本例如可以被某种事件触发,这些事件例如是检测到应用程序图标被触摸、应用程序的控件被触发等。本实施方式对于服务过程脚本被触发的方式不做限制。
由于服务过程脚本是一个文件,且需要跨服务端和客户端运行,所以分别在子步骤1031和子步骤1032中说明了服务端运行服务过程脚本的两种情况:其一,即服务过程脚本当前在服务端运行且需要将服务过程脚本切换至客户端运行时,需要将服务端上生成的上下文信息同步至客户端,其二,即服务过程脚本当前在客户端运行且需要将服务过程脚本切换至服务端运行时,需要将客户端上生成的上下文信息同步至服务端。其中,上下文信息包括运行位置标识,以便客户端或者服务端根据运行位置标识继续运行服务过程脚本。
其中,获取服务过程脚本所生成的上下文信息具体包括:对应用程序进行初始化,其中该初始化用于分配缓存,缓存用于存储服务过程脚本的运行数据。在服务过程脚本运行时,将服务过程脚本的运行数据存储在缓存中。当检测到所运行位置标识时,读取缓存中的运行数据,并将读取的运行数据作为上下文信息。
换句话说,本实施方式当服务过程脚本运行于服务端时,服务过程脚本运行时所生成的上下文信息均可以在初始化的缓存中得到,而不需要保存在库文件中,进而不需要开发人员编写API去调用相关的库文件以获取应用程序运行产生的相关数据和信息。
本实施方式中,当服务过程脚本运行于客户端时,服务端暂停运行服务过程脚本。本实施方式可以通过预设接口将上下文信息同步至客户端,其中,预设接口可以是指通过超文本传输协议实现上下文信息的同步。
本发明实施方式相对于现有技术而言,开发者可以将服务过程写为一个文件,即服务过程脚本,并且在服务过程脚本中设置运行位置标识,通过运行位置标识控制服务过程脚本跨服务端和客户端运行。同时,通过将服务端和客户端上生成的上下文信息同步至另一端,为服务过程脚本跨服务端和客户端的连续运行提供了数据支撑,保证了服务过程脚本的正常运行。因此,本实施方式避免了开发者自行编写后端服务器的访问逻辑,降低了应用程序开发的难度,从而有利于提高开发效率以及应用程序质量。
本发明的第二实施方式涉及一种应用程序实现方法。第二实施方式在第一实施方式的基础上做出改进,主要改进之处在于:在第二实施方式中,通过预设的应用程序模板以及预定义的内容元素避免了开发人员人工拼接细颗粒度控件以及重复开发应用程序框架等的繁琐工作,进一步提高开发效率。
如图2所示,本实施方式的应用程序实现方法包括步骤201至步骤205。
步骤201:预设应用程序模板,应用程序模板包括预定义的内容元素以及应用程序框架。
其中,内容元素为用于记录应用程序的数据以及状态的操作对象。在一些例子中,应用程序内容元素可以包括以下之一或其任意组合:商品详情、订单详情,支付信息。本实施方式对于内容元素不做具体限制。在一个例子中,应用程序内容元素还可以为应用程序基础页面以及组件等的级别的应用程序组成部分,如“支付组件”,“聊天页面”,“录音界面”,“通知组件”等。
步骤202:接收内容元素配置文件,并根据预定义的内容元素以及内容元素配置文件生成应用程序的内容元素。
其中,内容元素配置文件用于确定应用程序使用的内容元素。在实际应用中,可以通过插件扩充用户额外需要的内容元素种类。
步骤203:接收并存储服务过程脚本,其中,服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于业务逻辑中的运行位置标识。其中,运行位置标识用于指示业务逻辑运行于客户端或者服务端。
其中,本实施方式对于步骤202和步骤203的先后顺序不作限制。
步骤204:将服务过程脚本发送至与服务端配合的客户端,供客户端存储并运行服务过程脚本。
步骤205:与客户端配合运行服务过程脚本。
步骤205具体包括子步骤2051至子步骤2052:
子步骤2051:根据应用程序框架设置服务过程脚本的运行环境、生成服务过程脚本的用户页面以及服务过程脚本需要的组件。其中,用户页面可以是各种交互页面。
子步骤2052:基于运行环境、用户页面以及组件运行服务过程脚本。
子步骤2053:当服务端运行服务过程脚本时,若检测到运行位置标识,则暂停运行服务过程脚本并获取服务过程脚本所生成的上下文信息,将获取的上下文信息同步至客户端,供客户端根据同步的上下文信息以及运行位置标识继续运行服务过程脚本。
子步骤2054:当检测到来自客户端同步的上下文信息以及运行位置标识时,根据客户端同步的上下文信息以及运行位置标识继续运行服务过程脚本。
子步骤2051和子步骤2052通过预设的应用程序模板生成应用程序的运行环境、基础页面以及一些组件,从而可以避免开发人员进行重复开发。
本实施方式中,获取服务过程脚本所生成的上下文信息具体包括:对应用程序进行初始化,其中该初始化用于分配缓存,缓存用于存储服务过程脚本的运行数据;在所服务过程脚本运行时,将服务过程脚本的运行数据存储在缓存中;当检测到所运行位置标识时,读取缓存中的运行数据,并将读取的运行数据作为上下文信息。其中,在当服务端中运行有多个基于本实施方式实现的应用程序时,需要针对不同的应用程序分别进行初始化,从而可以将各个应用程序隔离开,避免不同的应用程序之间互相干扰。其中,每个应用程序可以有若干个服务过程脚本和若干内容元素,但除非开发者在定义内容元素或服务过程脚本时明确声明,否则不同的应用程序之间不能相互触发服务过程脚本、访问计算结果或者访问内容元素。这样,这些应用程序都可以运行在同一个客户端或服务端上。换句话说,不同的应用程序的服务过程脚本运行环境(客户端或服务端)都是分别初始化的,确保计算结果、内容元素等不会共享。需要共享的计算结果需要提前指定,则运行环境会设置访问接口。若触发、访问、修改其他应用程序的服务过程脚本、内容元素,服务过程运行环境检查该应用程序的相关服务过程脚本或内容元素是否有访问接口,如果有则可以继续。
本实施方式通过提供预设的应用程序模板以及预定义内容元素,为开发者提供了可以重复使用的应用程序框架、基础页面以及组件等,因此,开发人员(用户)在开发应用程序时,仅需编写简单的内容元素配置脚本和少量的业务逻辑代码即可制出完整的应用程序。因此,本实施方式不仅可显著提高应用程序开发效率、降低应用程序开发难度,而且还有利于提高应用程序开发质量。
本发明第三实施方式涉及一种应用程序实现方法,应用于客户端,如图3所示,本实施方式的应用程序实现方法包括步骤301至步骤302。
步骤301:接收并存储来自服务端的服务过程脚本。
步骤302:与服务端配合运行服务过程脚本。
其中,步骤302具体包括子步骤3021和子步骤3022。
子步骤3021:当客户端运行服务过程脚本时,若检测到运行位置标识,则暂停运行服务过程脚本,并获取服务过程脚本所生成的上下文信息,将获取的上下文信息同步至服务端,供服务端根据同步的上下文信息以及运行位置标识继续运行服务过程脚本。而服务端在接收到客户端同步的上下文信息以及运行位置标识时,将从接收到的运行位置标识处恢复服务过程脚本的运行,由于服务端同时还接收了客户端同步的上下文信息,所以为服务过程脚本切换运行位置提供了保证。
子步骤3022:当检测到来自服务端同步的上下文信息以及运行位置标识时,根据服务端同步的上下文信息以及运行位置标识继续运行服务过程脚本。
子步骤3021中获取服务过程脚本所生成的上下文信息的方式例如为:对应用程序进行初始化,该初始化用于分配缓存,缓存用于存储服务过程脚本的运行数据。在服务过程脚本运行时,将服务过程脚本的运行数据存储在缓存中。当检测到运行位置标识时,读取缓存中的运行数据,并将读取的运行数据作为上下文信息。
子步骤3021中将服务过程脚本的运行数据存储在缓存中,具体可以包括:显示表单,其中该表单包括内容元素以及与内容元素对应的内容元素入口。若检测到内容元素入口被触发,则显示对应的内容元素修改界面,并接收内容元素修改信息,且将接收到的内容元素修改信息存储入缓存。其中,内容元素既可以使用服务端预定义的内容元素,也可以由开发者自行开发,通过插件添加到应用程序中。
本实施方式相对于现有技术而言,客户端能够与服务端相互配合,同步服务过程脚本的运行数据,使得服务过程脚本可以跨服务端和客户端协调有序运行,从而保证了应用程序各项功能的实现。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第四实施方式涉及一种应用程序实现装置,应用于服务端,如图4所示,该应用程序实现装置包括:
第一接收模块40,用于接收并存储服务过程脚本。其中,服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识。其中,运行位置标识用于指示所述业务逻辑运行于客户端或者服务端。
第一发送模块41,用于将服务过程脚本发送至与服务端配合的客户端,供客户端存储并运行所述服务过程脚本。
第一控制模块42,用于控制服务端与客户端配合运行服务过程脚本。
其中,第一控制模块42包括:
第一检测子模块420,用于在服务端运行所述服务过程脚本时,检测运行位置标识。
第一获取子模块421,用于在第一检测子模块420检测到运行位置标识时,暂停运行服务过程脚本,并获取服务过程脚本所生成的上下文信息。
第一同步子模块422,用于将获取的上下文信息同步至客户端,供客户端根据同步的上下文信息以及运行位置标识继续运行服务过程脚本。
第二检测子模块423,用于检测来自客户端同步的上下文信息以及运行位置标识。其中,第二检测子模块423可以在未开始运行或者暂停服务过程脚本运行时检测来自客户端同步的上下文信息以及运行位置标识。
第一恢复子模块424,用于根据客户端同步的上下文信息以及运行位置标识继续运行服务过程脚本。
本发明实施方式相对于现有技术而言,开发者可以将服务过程写为一个文件,即服务过程脚本,并且在服务过程脚本中设置运行位置标识,通过运行位置标识控制服务过程脚本跨服务端和客户端运行。同时,通过将服务端和客户端上生成的上下文信息同步至另一端,为服务过程脚本跨服务端和客户端的连续运行提供了数据支撑,保证了服务过程脚本的正常运行。因此,本实施方式避免了开发者自行编写后端服务器的访问逻辑,降低了应用程序开发的难度,从而有利于提高开发效率以及应用程序质量。
不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第五实施方式涉及一种应用程序实现装置,应用于客户端,如图5所示,该应用程序实现装置包括:
第二接收模块50,用于接收并存储来自服务端的服务过程脚本。其中,服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于业务逻辑中的运行位置标识。其中,运行位置标识用于指示业务逻辑运行于客户端或者服务端。
第二控制模块51,用于控制客户端与服务端配合运行服务过程脚本。
第二控制模块51包括:
第三检测子模块510,用于在客户端运行服务过程脚本时,检测运行位置标识。
第二获取子模块511,用于在检测到运行位置标识时,暂停运行服务过程脚本,并获取服务过程脚本所生成的上下文信息。
第二同步子模块512,用于将获取的上下文信息同步至服务端,供服务端根据同步的上下文信息以及运行位置标识继续运行服务过程脚本。
第四检测子模块513,用于检测来自服务端同步的上下文信息以及运行位置标识。其中,第四检测子模块513可以在未开始运行或者暂停服务过程脚本运行时检测来自服务端同步的上下文信息以及运行位置标识。
第二恢复子模块514,用于根据服务端同步的上下文信息以及运行位置标识继续运行服务过程脚本。
本实施方式相对于现有技术而言,客户端能够与服务端相互配合,同步服务过程脚本的运行数据,使得服务过程脚本可以跨服务端和客户端协调有序运行,从而保证了应用程序各项功能的实现。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (10)

1.一种应用程序实现方法,应用于服务端,其特征在于,包括:
接收并存储服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;
将所述服务过程脚本发送至与所述服务端配合的客户端,供所述客户端存储并运行所述服务过程脚本;
与所述客户端配合运行所述服务过程脚本;
其中,当所述服务端运行所述服务过程脚本时,若检测到所述运行位置标识,则暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息,将获取的所述上下文信息同步至所述客户端,供所述客户端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;
当检测到来自所述客户端同步的上下文信息以及运行位置标识时,根据所述客户端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
2.根据权利要求1所述的应用程序实现方法,其特征在于,
所述获取所述服务过程脚本所生成的上下文信息,具体包括:
对所述应用程序进行初始化;其中所述初始化用于分配缓存,所述缓存用于存储所述服务过程脚本的运行数据;
在所述服务过程脚本运行时,将所述服务过程脚本的运行数据存储在所述缓存中;
当检测到所述运行位置标识时,读取所述缓存中的运行数据,并将读取的所述运行数据作为上下文信息。
3.根据权利要求1所述的应用程序实现方法,其特征在于,
所述将获取的所述上下文信息同步至所述客户端,具体包括:
通过预设接口将所述上下文信息同步至所述客户端。
4.根据权利要求1所述的应用程序实现方法,其特征在于,所述应用程序实现方法还包括:
预设应用程序模板,所述应用程序模板包括预定义的内容元素以及应用程序框架;
接收内容元素配置文件,并根据预定义的内容元素以及所述内容元素配置文件生成所述应用程序的内容元素;
所述与所述客户端配合运行所述服务过程脚本,具体包括:
根据所述应用程序框架设置所述服务过程脚本的运行环境、生成服务过程脚本的用户页面以及服务过程脚本需要的组件;
基于所述运行环境、用户页面以及组件运行所述服务过程脚本。
5.根据权利要求4所述的应用程序实现方法,其特征在于,
所述内容元素包括以下之一或其任意组合:商品详情、订单详情,支付信息。
6.一种应用程序实现方法,应用于客户端,其特征在于,包括:
接收并存储来自服务端的服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;
与所述服务端配合运行所述服务过程脚本;
其中,当所述客户端运行所述服务过程脚本时,若检测到所述运行位置标识,则暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息,将获取的所述上下文信息同步至所述服务端,供所述服务端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;
当检测到来自所述服务端同步的上下文信息以及运行位置标识时,根据所述服务端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
7.根据权利要求6所述的应用程序实现方法,其特征在于,
所述获取所述服务过程脚本所生成的上下文信息,具体包括:
对所述应用程序进行初始化;其中所述初始化用于分配缓存,所述缓存用于存储所述服务过程脚本的运行数据;
在所述服务过程脚本运行时,将所述服务过程脚本的运行数据存储在所述缓存中;
当检测到所述运行位置标识时,读取所述缓存中的运行数据,并将读取的所述运行数据作为上下文信息。
8.根据权利要求7所述的应用程序实现方法,其特征在于,
所述将所述服务过程脚本的运行数据存储在所述缓存中,具体包括:
显示表单;其中所述表单包括内容元素以及与所述内容元素对应的内容元素入口;
若检测到所述内容元素入口被触发,则显示对应的内容元素修改界面,并接收内容元素修改信息,且将接收到的内容元素修改信息存储入所述缓存。
9.一种应用程序实现装置,应用于服务端,其特征在于,包括:
第一接收模块,用于接收并存储服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;
第一发送模块,用于将所述服务过程脚本发送至与所述服务端配合的客户端,供所述客户端存储并运行所述服务过程脚本;
第一控制模块,用于控制服务端与所述客户端配合运行所述服务过程脚本;
所述第一控制模块包括:
第一检测子模块,用于在所述服务端运行所述服务过程脚本时,检测所述运行位置标识;
第一获取子模块,用于在第一检测子模块检测到所述运行位置标识时,暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息;
第一同步子模块,用于将获取的所述上下文信息同步至所述客户端,供所述客户端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;
第二检测子模块,用于检测来自所述客户端同步的上下文信息以及运行位置标识,
第一恢复子模块,用于根据所述客户端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
10.一种应用程序实现装置,应用于客户端,其特征在于,包括:
第二接收模块,用于接收并存储来自服务端的服务过程脚本;其中,所述服务过程脚本包括:跨服务端和客户端运行的应用程序的业务逻辑以及设置于所述业务逻辑中的运行位置标识,其中,所述运行位置标识用于指示所述业务逻辑运行于客户端或者服务端;
第二控制模块,用于控制所述客户端与所述服务端配合运行所述服务过程脚本;
所述第二控制模块包括:
第三检测子模块,用于在所述客户端运行所述服务过程脚本时,检测所述运行位置标识;
第二获取子模块,用于在检测到所述运行位置标识时,暂停运行所述服务过程脚本,并获取所述服务过程脚本所生成的上下文信息;
第二同步子模块,用于将获取的所述上下文信息同步至所述服务端,供所述服务端根据同步的上下文信息以及所述运行位置标识继续运行所述服务过程脚本;
第四检测子模块,用于检测来自所述服务端同步的上下文信息以及运行位置标识;
第二恢复子模块,用于根据所述服务端同步的上下文信息以及运行位置标识继续运行所述服务过程脚本。
CN201710244401.5A 2017-04-14 2017-04-14 一种应用程序实现方法及装置 Active CN107153572B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710244401.5A CN107153572B (zh) 2017-04-14 2017-04-14 一种应用程序实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710244401.5A CN107153572B (zh) 2017-04-14 2017-04-14 一种应用程序实现方法及装置

Publications (2)

Publication Number Publication Date
CN107153572A CN107153572A (zh) 2017-09-12
CN107153572B true CN107153572B (zh) 2020-08-07

Family

ID=59793460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710244401.5A Active CN107153572B (zh) 2017-04-14 2017-04-14 一种应用程序实现方法及装置

Country Status (1)

Country Link
CN (1) CN107153572B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957756A (zh) * 2010-09-29 2011-01-26 南京魔盒信息科技有限公司 一种智能移动终端程序快速生成***及方法
CN102098211A (zh) * 2009-12-11 2011-06-15 华为技术有限公司 客户端和服务器动态协助的业务聚合方法、服务器和客户端
CN105204917A (zh) * 2015-11-05 2015-12-30 北京奇虎科技有限公司 在应用程序启动时加载配置文件的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10101983B2 (en) * 2014-11-07 2018-10-16 Open Text Sa Ulc Client application with embedded server

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102098211A (zh) * 2009-12-11 2011-06-15 华为技术有限公司 客户端和服务器动态协助的业务聚合方法、服务器和客户端
CN101957756A (zh) * 2010-09-29 2011-01-26 南京魔盒信息科技有限公司 一种智能移动终端程序快速生成***及方法
CN105204917A (zh) * 2015-11-05 2015-12-30 北京奇虎科技有限公司 在应用程序启动时加载配置文件的方法及装置

Also Published As

Publication number Publication date
CN107153572A (zh) 2017-09-12

Similar Documents

Publication Publication Date Title
US10831567B2 (en) Application processing method and apparatus
US10785175B2 (en) Polling extension application for interacting with a messaging application
WO2018228211A1 (zh) 应用转换方法、装置及设备
CN109074278B (zh) 验证移动应用中的有状态动态链接
US9058193B2 (en) Methods and systems for providing compatibility of applications with multiple versions of an operating system
US20170289338A1 (en) Enabling stateful dynamic links in mobile applications
TWI604375B (zh) 螢幕分享方法以及使用該方法的裝置
US20130036196A1 (en) Method and system for publishing template-based content
CN112947969B (zh) 一种页面离屏渲染方法、装置、设备和可读介质
US20180196584A1 (en) Execution of multiple applications on a device
CN114816401B (zh) 界面元素的定位方法、电子设备及存储介质
US8769498B2 (en) Warning of register and storage area assignment errors
CN111324398A (zh) 最近内容的处理方法、装置、终端及存储介质
CN107153572B (zh) 一种应用程序实现方法及装置
CN115080113A (zh) 项目代码检测方法和装置、可读存储介质、电子设备
US9477448B2 (en) Screen-oriented computing program refactoring
CN110096325B (zh) 社交动态信息展示方法、计算机设备及存储介质
CN113268221A (zh) 文件匹配方法、装置、存储介质及计算机设备
US8775936B2 (en) Displaying dynamic and shareable help data for images a distance from a pointed-to location
CN105183491A (zh) 跨平台的桌面gis***及其启动方法
CN111026463A (zh) 一种页面加载方法、装置、设备和存储介质
CN111931465A (zh) 基于用户操作自动生成用户手册的方法及***
CN110891120B (zh) 界面内容展示方法、装置及存储介质
CN113296802B (zh) 虚拟机热升级方法、主机设备及存储介质
WO2023245369A1 (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