CN101494657B - 自动排程控制的方法与*** - Google Patents
自动排程控制的方法与*** Download PDFInfo
- Publication number
- CN101494657B CN101494657B CN2008100038200A CN200810003820A CN101494657B CN 101494657 B CN101494657 B CN 101494657B CN 2008100038200 A CN2008100038200 A CN 2008100038200A CN 200810003820 A CN200810003820 A CN 200810003820A CN 101494657 B CN101494657 B CN 101494657B
- Authority
- CN
- China
- Prior art keywords
- scheduling
- services package
- carry out
- property regulation
- services
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种自动排程控制的方法。当执行完一预约排程程序后,一电子装置的一开放式服务网关协议框架执行一自动排程控制操作,其根据检测目前是否有一排程需执行。若一有排程需执行,则判断该排程是否为一更新操作。若该排程非为一更新操作,则执行对应该排程的一服务包的一起始或停止操作。若该排程非为一更新操作,则在一设定时间点令该电子装置联机到一远程数据库,以检测是否有对应该排程的该服务包的一新的工具性质规定文件。若有一新的工具性质规定文件,则自该远程数据库取得该新的工具性质规定文件,并且根据该新的工具性质规定文件更新该服务包。
Description
技术领域
本发明涉及一种开放式服务网关协议(Open Services GatewayInitiative,以下简称为OSGi)的应用平台,且特别涉及一种OSGi的预约排程控制的方法与***。
背景技术
OSGi是用于定义一个开放性的平台,使远程软件服务供货商所提供的应用程序及加值服务,能视使用者需求,通过网际网络动态地下载至用户的家用网关器上,且能够自动安装执行。在此开放性的结构下,不同厂商所开发出来的服务软件、设备就能彼此沟通或搭配使用。
OSGi结构主要由三种元件所组成,包括框架(以下简称为Framework)、服务包(以下简称为Bundle)和服务(以下简称为Service)。Framework结构在Java虚拟机器(Java Virtual Machine(VM))上,Bundle则是执行于Framework上的应用程序,而Service是Bundle所提供或所需的接口服务。从远程下载的Bundle会在OSGi Framework上自动安装、执行,并跟OSGi平台注册Bundle所提供分享或所需要的Service。
OSGi Framework为一整合性的信息服务平台,主要的功能是提供Bundle的执行环境与动态地调整Bundle挂载的生命周期(Bundle Life Cycle)。OSGi Framework也提供管理机制让执行其上的Bundles可以提供或使用所需Service。Bundle之间可通过Service的分享,以节省程序的开发时间或增加程序的功能。
图1是显示Bundle的生命周期的示意图。
OSGi Framework管理的Bundle的生命周期可分为六个状态,包括己安装(INSTALLED)、等待启动(RESOLVED)、启动(STARTING)、执行(ACTIVE)、停止(STOPPING)以及取消安装(UNINSTALLED)。当Bundle被停止时,Framework会将Bundle所注册的Service动态移除,而在同一时间内,也会通知有使用该Service的其它Bundle,让其它的Bundle得知该事件。
Bundle是由OSGi Framework负责启动与执行。就实作的角度而言,Bundle是一个Java Archive(JAR)文件案,该JAR文件包含Java类别(Class)、启动类别(Activator Class)、清单文件(Manifest Header)和一些资源文件(如HTML网页或JPG图文件)。清单文件主要描述Bundle所附加的信息,并订定一些规则,包括汇入封装(Import-Package)、汇出封装(Export-Package)、服务包启动器(Bundle-Activator)、汇入服务(Import-Service)、汇出服务(Export-Service)...等等。
此外,Bundle可将其所要提供的功能以Service的方式来表示。Service是一个定义清楚的接口服务,其它需要此功能的Bundle可通过此接口来存取。当Bundle提供Service时,Framework会保留了一个相对应的服务参照(Service Reference),需要此Service的Bundle可通过Framework所提供的查询机制(基于轻量型目录存取通信协议(Lightweight DirectoryAccess Protocol,简称为LDAP)的语法),请求并取得所要的Service。在Framework里,一个有效的应用是由一系列的Service相辅相成所互相搭配而成。
在现有的OSGi结构中,对一个Service(或Bundle)的生命周期的控制,必需由使用者实时执行操控。虽然OSGi也提供了另一个起始级别服务(Start_level Service),让Framework在启动时对特定的Bundle执行初始化的启动,但此机制也仅仅只是为了避免Bundle在启动时,若需要其它的Bundle所提供的Service,但提供Service的Bundle并未被启动而产生错误时,所对Bundles执行启动顺序的设定(如图2所示)。换句话说,使用者必需通过OSGi Framework立即对Bundles执行起始、停止或更新的操作。Framework无法自动的执行起始(start)、停止(stop)或更新(update)的动作,其仅能通过起始级别服务(Start_level Service)控制当Framework启动时所有Bundle的启动顺序。
OSGi Framework具有一个启动级别服务(Activate_level Service),而每个Bundle亦具有一个属于自己的起始级别服务(Start_level Service)。当Framework被启动时,起始级别服务会从启动级别(Activate_level)=0开始,比对每个Bundle的起始级别(Start_level),检查Bundle的起始级别是否等于目前的启动级别值。若是,则启动起始级别等于目前启动级别值的Bundle。当所有Bundle的起始级别都比对完成后,将启动级别值加1,再比对每个Bundle的起始级别。起始级别服务会重复上述比对操作,一直到启动级别值等于Framework的启动级别值。
当Framework被关闭时,起始级别服亦会执行同样的操作以停止Bundle,但此时比对的启动级别启始值是从Framework的启动级别开始,以逐步递减的方式去执行。
然而,起始级别服务仅能对Bundle执行初始化启动或停止顺序的安排,而无法在特定的时间点对Bundle执行启动或停止的操作。起始级别服务无法对Bundle执行更新的操作。此外,使用者若想在某特定时间点对Bundles执行启动、停止或更新的操作,就必须在计算机上执行实时操作,而无法由Framework自动执行。举例来说,若使用者出门在外,却想起必需将视讯摄影机(Web Camera)启动以执行居家安全的监控,则必须利用计算机连上网络,然后连接到OSGi Framework,才能将视讯摄影机的服务启动,相当的不方便。
因此,本发明提供了一种预约排程的方法与***。
发明内容
基于上述目的,本发明实施例揭露了一种自动排程控制的方法,其适用于一设计有一开放式服务网关协议框架的一电子装置。当执行完一预约排程程序后,该开放式服务网关协议框架即执行一自动排程控制操作,其根据检测目前是否有一排程需执行。若有一排程需执行,则该开放式服务网关协议框架判断该排程是否为一更新操作。若该排程非为一更新操作,则该开放式服务网关协议框架执行对应该排程的一服务包的一起始或停止操作。若该排程非为一更新操作,则该开放式服务网关协议框架在一设定时间点令该电子装置联机到一远程数据库,以检测是否有对应该排程的该服务包的一新的工具性质规定文件。若有一新的工具性质规定文件,则该开放式服务网关协议框架自该远程数据库取得该新的工具性质规定文件,并且根据该新的工具性质规定文件更新该服务包。
本发明实施例更揭露了一种自动排程控制的***,包括一远程数据库、一电子装置与一使用者。
该电子装置还包括一排程服务模块、一开放式服务网关协议框架与一服务包。该使用者以有线或无线的方式连接到该电子装置,利用该排程服务模块对该电子装置执行一预约排程程序。当完成该预约排程程序后,该开放式服务网关协议框架执行一自动排程控制操作,其根据检测目前是否有一排程需执行,若有排程需执行,则判断该排程是否为一更新操作,若该排程非为一更新操作,则执行对应该排程的一服务包的一起始或停止操作,若该排程为一更新操作,则在一设定时间点令该电子装置联机到该远程数据库,以检测是否有对应该排程的该服务包的一新的工具性质规定文件,若有一新的工具性质规定文件,则自该远程数据库取得该新的工具性质规定文件,并且根据该新的工具性质规定文件更新该服务包。
附图说明
图1示出了Bundle的生命周期的示意图。
图2示出了启动Bundle的步骤流程图。
图3示出了本发明实施例的预约排程的方法步骤流程图。
图4示出了本发明实施例的自动排程控制的方法步骤流程图。
图5示出了本发明实施例的自动排程控制的***结构示意图。
附图符号说明
510~使用者
520~电子装置
530~服务供货商
521~排程服务模块
522~开放式服务网关协议框架
523~服务包。
具体实施方式
为了让本发明的目的、特征、及优点能更明显易懂,下文特举较佳实施例,并配合附图3至附图5,做详细的说明。本发明说明书提供不同的实施例来说明本发明不同实施方式的技术特征。其中,实施例中的各元件的配置是为说明之用,并非用以限制本发明。且实施例中图式标号的部分重复,是为了简化说明,并非意指不同实施例之间的关联性。
本发明实施例揭露了一种OSGi的预约排程的方法与***。
本发明实施例的预约排程方法建构一新的排程服务(ScheduleService),以提供使用者执行Bundle的生命周期的排程控制以及Framework的自动更新的机制。
该排程服务提供使用者对每个Bundle执行启动、停止或更新的排程,在Framework为开启的状况下,让Bundle在某特定的时间点自动执行启动、停止或更新操作,以提供使用者更多的弹性操作。该排程服务也提供Framework可自动检查Bundle是否有更新版本,且当检测到有更新版本时,即使使用者没有预先排程,也能自动执行更新的动作。
图3示出了本发明实施例的预约排程的方法步骤流程图。
首先,执行预约排程服务(步骤S31),然后选择欲执行的操作(步骤S32)。若要新增排程,则先选择欲新增排程的Bundle(步骤S331),然后设定该Bundle欲启动的时间(步骤S332)。若要编辑排程,则先取得欲编辑的Bundle的排程设定(步骤S341),然后修改该Bundle的排程设定(步骤S342)。当执行完新增或编辑操作后,判断是否要继续预约排程(步骤S35)。若要继续预约排程,则回到步骤S31,否则执行设定好的排程并等待执行排程的时间(步骤S36)。若要移除排程,则要先取得欲编辑的Bundle的排程设定(步骤S371),并且判断是否要移除该排程设定(步骤S372)。若是,则移除该排程设定(步骤S373),然后回到步骤S31。
图4示出了本发明实施例的自动排程控制的方法步骤流程图。
本发明实施例的自动排程控制的方法适用于一设计有OSGi Framework的电子装置。当完成预约排程后,该电子装置的该OSGi Framework即开始执行自动排程控制操作(步骤S41),其根据排程时间检测目前是否有排程需执行(步骤S42)。若有排程需执行,则判断该排程为何种类型的操作,即启动、停止或更新(步骤S43)。若为启动操作,则在一设定时间点启动对应该排程的Bundle(步骤S44)。若为停止操作,则在一设定时间点停止对应该排程的Bundle(步骤S45)。若为更新操作,则该OSGi Framework在一设定时间点令该电子装置联机到一服务供货商(例如,远程数据库)(步骤S46),以检测是否有对应该排程的Bundle的新的工具性质规定文件(Manifest)(步骤S47)。若有新的工具性质规定文件,则该OSGi Framework自该服务供货商取得该新的工具性质规定文件(步骤S48),并且更新该Bundle(步骤S49)。
在Framework自动更新方面,每个Bundle有自已的工具性质规定文件,根据某一Bundle的工具性质规定文件的存储位置,取得该Bundle目前的安装位置,再去读取该存储位置中的该Bundle的最新工具性质规定文件,与安装在OSGi Framework上的该Bundle的最新工具性质规定文件执行比对。若位于该存储位置的工具性质规定文件较新,则Framework利用该存储位置的工具性质规定文件对该Bundle执行更新操作。该比对的动作可由使用者自行订定比对时间点,或使用一默认值。
在自动排程控制方面,使用者执行Bundle的时间排程及选定某一时间点要执行的操作。当排程的时间到了,Framework就自动去执行使用者在该时间点所选定的操作。
图5示出了本发明实施例的自动排程控制的***结构示意图。
本发明实施例的自动排程控制的***包括一使用者510、一电子装置520与一服务供货商(例如,远程数据库)530。电子装置520又包括一排程服务模块521、一OSGi Framework 522与一Bundle 523。使用者510以有线或无线的方式连接到电子装置520,利用排程服务模块521对电子装置520执行一预约排程服务,即对Bundle 523执行新增排程、编辑排程与移除排程等操作。当完成预约排程后,
电子装置520的OSGi Framework 522即开始执行自动排程控制操作,其检测Bundle 523目前是否有排程需执行。若有排程需执行,则判断该排程为何种类型的操作,即启动、停止或更新操作。若为启动操作,则在一设定时间点启动Bundle 523。若为停止操作,则在一设定时间点停止Bundle 523。若为更新操作,则OSGi Framework 522在一设定时间点联机到服务供货商530,以检测是否有对应Bundle 523的新的工具性质规定文件。若有新的工具性质规定文件,则OSGi Framework 522自服务供货商530取得该新的工具性质规定文件,并且更新Bundle 523。
本发明实施例的自动排程控制的方法与***让使用者无需在计算机旁边执行立即操作,也能让Framework自动对Bundle执行启动、停止或更新等操作。Framework能够自动的检测Bundle是否需要更新,而更进一步的对Bundle执行自动更新的动作,无需使用者介入操作。此外,排程服务能解决起始级别服务无法对Bundle执行更新操作的问题。
本发明更提供一种记录媒体(例如光盘片、磁盘片与抽取式硬盘等等),其是记录一计算机可读取的权限签核程序,以便执行上述的自动排程控制的方法。在此,存储在记录媒体上的权限签核程序,基本上是由多个程序代码片段所组成的(例如建立组织图程序代码片段、签核表单程序代码片段、设定程序代码片段、以及部署程序代码片段),并且这些程序代码片段的功能是对应到上述方法的步骤与上述***的功能方块图。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视本发明的申请专利范围所界定者为准。
Claims (14)
1.一种自动排程控制的方法,其适用于一设计有一开放式服务网关协议框架的一电子装置,包括下列步骤:
当执行完一预约排程程序后,该开放式服务网关协议框架即执行一该自动排程控制操作,其检测目前是否有一该排程需执行;
若有该排程需执行,则该开放式服务网关协议框架判断该排程是否为一更新操作;
若该排程非为一该更新操作,则该开放式服务网关协议框架执行对应该排程的一服务包的一起始或停止操作;
若该排程为一该更新操作,则该开放式服务网关协议框架在一设定时间点令该电子装置联机到一远程数据库,以检测是否有对应该排程的该服务包的一新的工具性质规定文件;以及
若有一该新的工具性质规定文件,则该开放式服务网关协议框架自该远程数据库取得该新的工具性质规定文件,并且根据该新的工具性质规定文件更新该服务包。
2.如权利要求1所述的自动排程控制的方法,其中,该更新操作还包括下列步骤:
根据该服务包的该工具性质规定文件的一存储位置取得该服务包的一目前安装位置;
读取该存储位置的该服务包的一最新工具性质规定文件;
将该存储位置的该最新工具性质规定文件与安装在该开放式服务网关协议框架的该服务包的一该最新工具性质规定文件相互比对;
若该存储位置的该工具性质规定文件较新,则该开放式服务网关协议框架利用该存储位置中的该工具性质规定文件对该服务包执行更新。
3.如权利要求1所述的自动排程控制的方法,其中,执行对应该排程的该服务包的该起始操作是在一设定时间点启动对应该排程的该服务包。
4.如权利要求1所述的自动排程控制的方法,其中,执行对应该排程的该服务包的该停止操作是在一设定时间点停止对应该排程的该服务包。
5.如权利要求1所述的自动排程控制的方法,其中,该预约排程程序还包括下列步骤:
选择一欲执行的操作;
若要执行一新增排程操作,则先选择欲新增的一服务包,并且设定该服务包欲启动的时间;
当执行完该新增排程操作后,判断是否要继续执行该预约排程程序;以及
若不要继续执行该预约排程程序,则等待执行该新增排程。
6.如权利要求5所述的自动排程控制的方法,其中,该预约排程程序还包括下列步骤:
若要执行一编辑排程操作,则先取得欲编辑的一服务包的排程设定,然后修改该服务包的排程设定;
当执行完该编辑操作后,判断是否要继续执行该预约排程程序;以及
若不要继续执行该预约排程程序,则等待执行该编辑好的排程。
7.如权利要求6所述的自动排程控制的方法,其中,该预约排程程序还包括下列步骤:
若要执行一移除排程操作,则先取得欲移除的一服务包的排程设定,并且判断是否要移除该排程设定;以及
若要移除该排程设定,则将该服务包的该排程设定移除。
8.一种自动排程控制的***,包括:
一电子装置,其包括一排程服务模块、一开放式服务网关协议框架与一服务包;
一使用者端,其该使用者端以有线或无线的方式连接到该电子装置,利用该排程服务模块对该电子装置连接到一远程数据库端执行一预约排程;
其中,当完成该预约排程程序后,该开放式服务网关协议框架执行一该自动排程控制操作,其检测目前是否有一该预约排程需执行,若有该预约排程需执行,则判断该预约排程是否为一更新操作,若该预约排程非为一该更新操作,则执行对应该预约排程的一服务包的一起始或停止操作,若该预约排程为一该更新操作,则在一设定时间点令该电子装置联机,以检测是否有对应该排程的该服务包的一该新的工具性质规定文件,若有一该新的工具性质规定文件,则自该远程数据库取得该新的工具性质规定文件,并且根据该新的工具性质规定文件更新该服务包。
9.如权利要求8所述的自动排程控制的***,其中,该开放式服务网关协议框架根据该服务包的该工具性质规定文件的一存储位置取得该服务包的一目前安装位置,读取该存储位置的该服务包的一最新工具性质规定文件,将该存储位置的该最新工具性质规定文件与安装在该开放式服务网关协议框架的该服务包的一该最新工具性质规定文件相互比对,若该存储位置的该工具性质规定文件较新,则利用该存储位置中的该工具性质规定文件对该服务包执行更新。
10.如权利要求9所述的自动排程控制的***,其中,执行对应该排程的该服务包的该起始操作是在一设定时间点启动对应该排程的该服务包。
11.如权利要求9所述的自动排程控制的***,其中,执行对应该排程的该服务包的该停止操作是在一设定时间点停止对应该排程的该服务包。
12.如权利要求9所述的自动排程控制的***,其中,该排程服务模块选择一欲执行的操作,若要执行一新增排程操作,则先选择欲该新增排程的一服务包,并且设定该服务包欲启动的时间,当执行完该新增操作后,判断是否要继续执行该预约排程程序,若不要继续执行该预约排程程序,则等待执行该新增的排程。
13.如权利要求12所述的自动排程控制的***,其中,若要执行一编辑排程操作,则该排程服务模块先取得欲编辑的一服务包的排程设定,然后修改该服务包的排程设定,当执行完该编辑操作后,判断是否要继续执行该预约排程程序,若不要继续执行该预约排程程序,则等待执行该编辑好的排程。
14.如权利要求13所述的自动排程控制的***,其中,若要执行一移除排程操作,该排程服务模块先取得欲移除的一服务包的排程设定,并且判断是否要移除该排程设定,若要移除该排程设定,则将该服务包的该排程设定移除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100038200A CN101494657B (zh) | 2008-01-24 | 2008-01-24 | 自动排程控制的方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100038200A CN101494657B (zh) | 2008-01-24 | 2008-01-24 | 自动排程控制的方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101494657A CN101494657A (zh) | 2009-07-29 |
CN101494657B true CN101494657B (zh) | 2012-05-23 |
Family
ID=40925057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100038200A Expired - Fee Related CN101494657B (zh) | 2008-01-24 | 2008-01-24 | 自动排程控制的方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101494657B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984567B (zh) * | 2014-04-22 | 2017-12-26 | 世纪禾光科技发展(北京)有限公司 | 开放平台模块化的方法和装置 |
CN105631309B (zh) * | 2015-12-29 | 2019-04-09 | 深圳市科漫达智能管理科技有限公司 | 一种事件验权方法和验权*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1421779A (zh) * | 2001-11-30 | 2003-06-04 | 英业达股份有限公司 | 数据传输排程***及其方法 |
CN1855057A (zh) * | 2005-04-25 | 2006-11-01 | 诺基亚公司 | 在OSGi服务平台上提供包捆组终止的***和方法 |
-
2008
- 2008-01-24 CN CN2008100038200A patent/CN101494657B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1421779A (zh) * | 2001-11-30 | 2003-06-04 | 英业达股份有限公司 | 数据传输排程***及其方法 |
CN1855057A (zh) * | 2005-04-25 | 2006-11-01 | 诺基亚公司 | 在OSGi服务平台上提供包捆组终止的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101494657A (zh) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104317610B (zh) | 一种hadoop平台自动安装部署的方法及装置 | |
US8549514B2 (en) | Distributing customized software products | |
US9811368B2 (en) | Model-based virtual system provisioning | |
JP5055410B2 (ja) | 装置管理システム及びそのシステムにおける装置管理命令スケジューリング方法 | |
US6292941B1 (en) | Operating system installation | |
CN104335170A (zh) | 云应用部署 | |
US20050091348A1 (en) | Software distribution application supporting operating system installations | |
US20080134164A1 (en) | System and Method For Automatically Upgrading Functionalities in a Distributed Network | |
JP4684118B2 (ja) | プログラム動作状態制御方法およびプログラム動作状態制御システム | |
Heo et al. | IoT-MAP: IoT mashup application platform for the flexible IoT ecosystem | |
US20070282801A1 (en) | Dynamically creating and executing an application lifecycle management operation | |
CN1936840A (zh) | 一种不依赖操作***更新软件数据的计算机***及方法 | |
US7761395B2 (en) | System and method for scalable processing of collected knowledge by creating knowledge generation nodes | |
CN100583038C (zh) | 用于启动与电子设备的接口的方法、***和装置 | |
JP2011516987A (ja) | モバイル・デバイス・ソフトウェアの管理方法及び装置 | |
CN101494657B (zh) | 自动排程控制的方法与*** | |
CN102768628A (zh) | 一种预安装第三方应用的方法及装置 | |
CN101887375B (zh) | 一种人机命令***的实现方法及其*** | |
GB2454583A (en) | Remote management of mobile devices | |
EP2107460A1 (en) | Method for improving native library and native application compatibily | |
Lalanda et al. | A domain-configurable development environment for service-oriented applications | |
JP6705979B2 (ja) | 機器設定装置、機器設定方法、及びプログラム | |
JP5550731B2 (ja) | ネットワーク事業者と開発者とを仲介する装置 | |
JP6681516B2 (ja) | Id空間変換システム及びその方法 | |
CN1469619A (zh) | 一种智能网业务管理接入点自动升级的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20170124 |