CN101604234B - 存储装置的数据同步系统及其方法 - Google Patents

存储装置的数据同步系统及其方法 Download PDF

Info

Publication number
CN101604234B
CN101604234B CN2008101101822A CN200810110182A CN101604234B CN 101604234 B CN101604234 B CN 101604234B CN 2008101101822 A CN2008101101822 A CN 2008101101822A CN 200810110182 A CN200810110182 A CN 200810110182A CN 101604234 B CN101604234 B CN 101604234B
Authority
CN
China
Prior art keywords
data
memory storage
synchronous system
synchronization
identification code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101101822A
Other languages
English (en)
Other versions
CN101604234A (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.)
Fucheng International Machinery Co.,Ltd.
Jiangxi union Speed Technology Co.,Ltd.
Zhang Kaijun
Original Assignee
Inventec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CN2008101101822A priority Critical patent/CN101604234B/zh
Publication of CN101604234A publication Critical patent/CN101604234A/zh
Application granted granted Critical
Publication of CN101604234B publication Critical patent/CN101604234B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储装置的数据同步系统及其方法,用来解决存储装置之间数据同步操作不便的问题,通过对程序执行状态的监测,触发数据同步处理进行数据传输,达到提升存储装置间的数据同步效率的技术功效。

Description

存储装置的数据同步系统及其方法
技术领域
本发明涉及一种数据同步系统及其方法,尤其涉及一种可通过对程序执行状态的监测来进行存储装置间数据同步的系统及其方法。
背景技术
近年来,随着半导体技术与消费性电子产品的蓬勃发展,存储装置不论是在体积、容量、价格或功能上,均已被大众广为接受,特别是即插即用(Plug and Play,PnP)的存储装置,如USB随身盘,更是应用范围极广的消费性电子产品之一。
然而,随着存储装置的应用越来越普及,人们对于存储装置的功能要求也越来越高,特别在数据同步的能力上。传统的存储装置之间无法直接进行方便的数据同步以共享二者之间的数据,只能是将一存储装置先连接到计算机上,将其上的数据先同步到该计算机上后,再通过该计算机连接另一存储装置来进行数据同步。由于无法直接便利的进行存储装置之间的数据同步,从而会为存储装置之间数据同步的操作带来诸多不便。
为此,有厂商提出搭配安装在计算机可执行平台的数据同步程序,使用者可通过该数据同步程序与连接到计算机可执行平台上的存储装置进行数据同步处理。然而,采用这种方式进行数据同步处理,不但需要在计算机可执行平台上安装该数据同步程序,而且跨平台的支持性更是一个大问题。因此,通过在计算机可执行平台上安装数据同步程序来进行数据同步处理,同样无法解决存储装置之间数据同步操作不便的问题。
发明内容
本发明要解决的技术问题是提供一种存储装置的数据同步系统及其方法,以解决长期以来一直存在的存储装置之间数据同步操作不便的问题
为解决上述问题,本发明提供了一种存储装置的数据同步系统,数据同步系统分别安装于第一存储装置及第二存储装置,其中第一存储装置连接于执行于计算机可执行平台并已执行数据同步系统,当该第二存储装置连接至该计算机可执行平台并执行数据同步系统时,此数据同步系统包含:监测模块、撷取模块、查询模块及数据同步模块。其中,监测模块用于根据至少一监测条件来监测计算机可执行平台上第一存储装置的数据同步系统的执行状态;撷取模块用于当判断第一存储装置的数据同步系统已执行时,确认所述执行状态为重复执行,此时根据判断条件撷取第一存储装置所使用的连接端口及其连接状态以记录在连接参数中;查询模块用于根据所述连接参数查询第一存储装置的数据配置;数据同步模块用于根据所述数据配置及同步处理条件,透过所述连接参数所记录的连接端口使第二存储装置与第一存储装置进行数据同步传输。
至于本发明提供的存储装置的数据同步方法,数据同步方法分别应用于第一存储装置及第二存储装置,其中第一存储装置连接于计算机可执行平台并已执行数据同步方法,当第二存储装置连接至计算机可执行平台并执行数据同步方法时,其步骤包括:根据至少一监测条件来监测计算机可执行平台上第一存储装置的数据同步方法的执行状态;当判断第一存储装置的数据同步方法已执行时,确认所述执行状态为重复执行,此时根据判断条件撷取第一存储装置所使用的连接端口及其连接状态以记录在连接参数中;根据所述连接参数查询第一存储装置的数据配置;及根据所述数据配置及同步处理条件,透过所述连接参数所记录的连接端口使第二存储装置与第一存储装置进行数据同步传输。
本发明所揭露之系统与方法如上,与先前技术之间的差异在于本发明通过对程序执行状态的监测,来触发数据同步处理进行数据传输。
采用本发明可以达到提升存储装置间数据同步效率的技术功效。
附图说明
图1为本发明实施例中存储装置数据同步系统的结构图;
图2为本发明实施例中存储装置数据同步方法的流程图;
图3至图5为本发明应用实例中进行数据同步操作的示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
在说明本发明所提供的存储装置的数据同步系统及其方法之前,先对本发明的背景进行说明。本发明提供了一种存储装置的数据同步机制,通过计算机可执行平台来执行。然而,应用本发明提供的存储装置并不需将程序安装在计算机可执行平台上即可自动运行(如U3平台技术,具备自动运行以及携带软件程序、密码、个人环境与数据等特性)。在运行过程中,可以通过运行在计算机可执行平台上的程序的执行状态来判断是否进行数据同步处理。需要说明的是,将程序从存储装置上加载到计算机可执行平台并自动运行的技术为现有技术,故在本发明中将不再作赘述。
对本发明中自定义的名词解释如下:本发明中所提到的监测条件为程序名称及程序识别码(Process ID,PID),以此作为依据来判断程序是否为重复运行。计算机可执行平台在运行一程序时,会记录下此程序的程序名称并为其分配一组唯一的程序识别码,即使是相同的程序在重复运行时,程序识别码也不相同。也就是说,计算机可执行平台会为相同程序分配不同的程序识别码以区别重复运行的程序。而要想知道计算机可执行平台分配的程序识别码,可通过该计算机可执行平台的操作系统的内核函数(Kernel API)得知(如find_task_by_pid)。当监测到计算机可执行平台中具有相同程序名称的程序的程序识别码不同时,代表同一程序运行了一次以上(例如,具有相同程序名称的程序有三个,但是这三个程序的程序识别码不同,则代表该相同的程序重复运行了三次)。因此,可以利用程序名称及程序识别码来判断该程序重复运行的情况;执行状态是指程序的运行情况,包括:运行(如具有本发明所述程序的程序名称及相应的程序识别码)、重复运行(如具有多个本发明所述程序的程序名称,且程序识别码均不相同)及未运行(如无本发明所述程序的程序名称)等状态,这些状态可依据上述监测条件来进行判断;判断条件可为装置识别码,该装置识别码是存储装置(如USB随身盘)在出厂前,所烧录的一组独一无二的识别码,包含厂商识别码(Vendor ID)及产品识别码(Product ID),主要是用来对存储装置进行识别(如当判断条件为装置识别码时,根据厂商识别码及产品识别码来判断存储装置是否支持同步处理);连接端口则为具备即插即用功能的数据传输端口,如:通用串行总线(Universal Serial Bus,USB)接口;连接参数中记录的是同样连接于计算机可执行平台上的另一存储装置所使用的连接端口及连接状态;而数据配置为存储装置的数据存放位置(如自建词库档案的存放数据夹),该数据配置可通过查询的方式获得。
此外,同步处理条件则用来设定数据同步处理的方式(如从存储装置复制数据到另一存储装置,以完成数据同步处理),此同步处理条件可为预设的条件,也可通过使用者的操作来进行设定,该同步处理条件的详细设定方式将在下面作详细说明。
接下来对本发明存储装置的数据同步系统及其方法作进一步的说明。如图1所示,存储装置的数据同步系统中包括:监测模块101、撷取模块102、查询模块103及数据同步模块104。其中,监测模块101用于根据监测条件来监测程序的执行状态,所述监测条件及执行状态已在前面进行了说明,在此不再赘述。
撷取模块102,用于当程序的执行状态为重复执行时,根据判断条件(如装置识别码)来撷取并在连接参数中记录连接端口(如连接接口的代码)及其连接状态(如连接状态为“连接”或“拔除”)。所述连接端口为具备即插即用功能的数据传输端口;而装置识别码则如上所述,是一组用于识别存储装置的识别码,因其中包含存储装置的厂商识别码及产品识别码,故可用来作为判断各存储装置间是否可进行数据同步处理的依据(如研发时即设计为同厂商或同一系列的存储装置彼此支持数据同步处理),并将可进行数据同步处理的存储装置的连接端口及其状态记录在连接参数中。
查询模块103用于根据连接参数查询相应的存储装置的数据配置,所述数据配置为存储装置中的数据存放位置(如自建词库档案的存放数据夹),其数据配置可通过查询的方式(如查询档案配置表或索引文件)取得。
数据同步模块104用于根据数据配置及同步处理条件(如预设的同步处理方式或是使用者所自行设定的数据同步方式),与连接参数中所记录的各连接端口(如支持同步处理的存储装置所使用的连接端口)进行数据传输。
除此之外,本发明所提供的存储装置的数据同步系统还包含数据同步窗口,其用于为使用者提供进行数据同步的操作以及设定同步处理条件的界面。而通过该数据同步窗口设定同步处理条件的详细设定方式,将在下述应用实例中进行详细说明。
如图2所示,存储装置的数据同步方法包含下列步骤:
步骤201:根据监测条件来监测程序的执行状态;
步骤202:当执行状态为重复运行时,根据判断条件撷取连接端口及其连接状态,并将该连接接口和其状态记录在连接参数中;
步骤203:根据连接参数查询相应的存储装置的数据配置;及
步骤204:根据数据配置及同步处理条件,与连接参数中所记录的各连接端口进行数据传输。
其中,该方法还包含通过数据同步窗口来进行数据同步的操作以及设定同步处理条件的步骤。
以下将配合图3至图5以应用实例的方式对本发明进行进一步地说明。存储装置与计算机可执行平台(如个人计算机)连接时,计算机可执行平台自动运行存储在存储装置中且应用本发明的程序(如翻译程序),由于自动运行的部分为现有技术,故在此不多作赘述。此时,监测模块101将根据监测条件(如程序名称及程序识别码)来监测执行状态(如通过计算机可执行平台上的操作系统的核心函数如:find_task_by_name及find_task_by_pid来监测程序名称及程序识别码,并在监测到具有相同程序名称的程序的程序识别码不同时,判断该程序的执行状态为“重复运行”)。
接着,撷取模块102在执行状态为重复运行时,根据判断条件(如装置识别码)撷取并在连接参数中记录连接端口(如连接端口的代码)及其连接状态(如“连接”或“拔除”)。举例来说,当存储装置插入到计算机可执行平台的连接端口(如连接端口的代码为“port1”)时,监测模块101会监测在该计算机可执行平台上,是否有程序名称相同且程序识别码不同的程序在运行。当发现执行状态为重复运行时,表示已有另一存储装置已连接并运行在该计算机可执行平台上。因此,存储装置会根据装置识别码来撷取其它连接端口(即另一存储装置所使用的连接端口,如:连接端口的代码为“port2”)及其连接状态并保存在连接参数中(如记录连接端口的代码为“port2”,且连接状态为“连接”)。而当监测模块101监测到的执行状态不是“重复执行”时则不予撷取及记录。
如上所述,存储装置会根据装置识别码来撷取其它连接端口的连接状态,其撷取过程可为先将该存储装置的装置识别码(即第一装置识别码)与另一存储装置的装置识别码(即第二装置识别码)进行对比,而对比方式则可根据第一装置识别码及第二装置识别码中的厂商识别码或产品识别码或其组合,用来判断另一存储装置是否支持数据同步处理。当具备对比符合的装置识别码时,代表此计算机可执行平台同时连接有相同厂商、甚至是相同型号的存储装置,可以用来进行数据同步处理,则将该存储装置的连接端口和连接状态存储在连接参数中。
接着,查询模块103根据连接参数查询相应的存储装置的数据配置(如查询连接端口代码为“port2”的存储装置的数据配置),查询方式可通过查询档案配置表(File Allocation Table,FAT)来实现。接下来,数据同步模块104根据前述所产生的数据配置及预设的同步处理条件(如预设为无条件接收其它存储装置所传送的同步数据),与连接参数中所记录的连接端口(例如:所记录的连接端口代码为“port2”)进行数据传送。另外,还可提供一如图3所示的数据同步窗口300以供使用者自行设定同步处理条件。
综上所述,当数据同步窗口300产生时,使用者可通过同步类型选择组件301来选择需同步的数据类型(如自建词库),并且可通过第一同步数据选择区块302得知存储装置中关于所选择的数据类型(如自建词库)的数据文件,如自建词库一、自建词库二及自建词库三。另外,使用者也可从第二同步数据选择区块303得知另一存储装置中关于所选择数据类型(如自建词库)的数据文件,如:自建词库一、自建词库二等。使用者从第一同步数据选择区块302及第二同步数据选择区块303中选择所要进行同步的数据文件。
如图4所示,当使用者通过第一同步数据选择区块302选择要进行同步的数据文件(如自建词库三)后,将会在图4所示的第一同步数据选择区块302中产生一个选取标记(如勾选区块的状态为“已勾选”)。接下来,使用者通过点选第一同步确定组件304来根据第一同步数据选择区块302的选择产生同步处理条件,并与连接参数所记录的连接端口(如连接端口的代码为“port2”)进行数据传输。最后,当数据传输完毕后即如图5所示,将进行同步的数据文件(如自建词库三)显示在第二同步数据选择区块303中。至此,完成存储装置间(即存储装置与另一存储装置)的数据同步处理。
另外,也可通过第二同步确定组件305来进行与上述说明反向的操作,其反向的同步处理方式便不再多作赘述。而当使用者不想进行数据同步时,则可通过取消组件306来关闭数据同步窗口300。特别要说明的是,上述数据同步窗口300所包含的组件并不以此为限。
综上所述,可知本发明与现有技术之间的差异在于通过监测程序的执行状态来触发数据同步处理以进行数据传输,利用此技术手段可以在存储装置之间便利地进行数据同步,解决了现有技术中存在的问题,达到了提升存储装置间的数据同步效率的技术效果。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (16)

1.一种存储装置的数据同步系统,该数据同步系统分别安装于第一存储装置及一第二存储装置,其中该第一存储装置连接于一计算机可执行平台并已执行该数据同步系统,当该第二存储装置连接至该计算机可执行平台并执行该数据同步系统时,该数据同步系统包含:
一监测模块,用于根据至少一监测条件来监测该计算机可执行平台上该第一存储装置的数据同步系统的执行状态;
一撷取模块,用于当判断该第一存储装置的数据同步系统已执行时,确认所述执行状态为重复执行,此时根据判断条件撷取该第一存储装置所使用的连接端口及其连接状态以记录在连接参数中;
一查询模块,用于根据所述连接参数查询该第一存储装置的数据配置;及
一数据同步模块,用于根据所述数据配置及同步处理条件,透过该连接参数所记录的连接端口使该第二存储装置与该第一存储装置进行数据同步传输。
2.如权利要求1所述的数据同步系统,其特征在于,
所述监测条件为程序名称及程序识别码。
3.如权利要求1所述的数据同步系统,其特征在于,
所述执行状态还包含执行及未执行。
4.如权利要求1所述的数据同步系统,其特征在于,
所述判断条件为一装置识别码。
5.如权利要求1所述的数据同步系统,其特征在于,
所述连接端口为具备即插即用功能的数据传输端口。
6.如权利要求4所述的数据同步系统,其特征在于,
所述装置识别码包含所述存储装置的厂商识别码及产品识别码。
7.如权利要求1所述的数据同步系统,其特征在于,
所述数据配置为所述存储装置的数据存放位置。
8.如权利要求1所述的数据同步系统,其特征在于,
所述系统中还包含一数据同步窗口,其用于进行数据同步的操作以及设定所述同步处理条件。
9.一种存储装置的数据同步方法,该数据同步方法分别应用于一第一存储装置及一第二存储装置,其中该第一存储装置连接于一计算机可执行平台并已执行该数据同步方法,当该第二存储装置连接至该计算机可执行平台并执行该数据同步方法时,该数据同步方法包括以下步骤:
根据至少一监测条件来监测该计算机可执行平台上该第一存储装置的数据同步方法的执行状态;
当判断该第一存储装置的数据同步方法已执行时,确认所述执行状态为重复执行,此时根据判断条件撷取该第一存储装置所使用的连接端口及其连接状态以记录在连接参数中;
根据所述连接参数查询该第一存储装置的数据配置;及
根据所述数据配置及同步处理条件,透过该连接参数所记录的连接端口使该第二存储装置与该第一存储装置进行数据同步传输。
10.如权利要求9所述的数据同步方法,其特征在于,
所述监测条件为程序名称及程序识别码。
11.如权利要求9所述的数据同步方法,其特征在于,
所述执行状态还包含执行及未执行的状态。
12.如权利要求9所述的数据同步方法,其特征在于,
所述判断条件为一装置识别码。
13.如权利要求9所述的数据同步方法,其特征在于,
所述连接端口为具备即插即用功能的数据传输端口。
14.如权利要求12所述的数据同步方法,其特征在于,
所述装置识别码包含所述存储装置的厂商识别码及产品识别码。
15.如权利要求9所述的数据同步方法,其特征在于,
所述数据配置为所述存储装置的数据存放位置。
16.如权利要求9所述的数据同步方法,其特征在于,
上述方法中还包含一利用一数据同步窗口来进行数据同步的操作以及设定该同步处理条件的步骤。
CN2008101101822A 2008-06-13 2008-06-13 存储装置的数据同步系统及其方法 Expired - Fee Related CN101604234B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101101822A CN101604234B (zh) 2008-06-13 2008-06-13 存储装置的数据同步系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101101822A CN101604234B (zh) 2008-06-13 2008-06-13 存储装置的数据同步系统及其方法

Publications (2)

Publication Number Publication Date
CN101604234A CN101604234A (zh) 2009-12-16
CN101604234B true CN101604234B (zh) 2011-06-01

Family

ID=41469977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101101822A Expired - Fee Related CN101604234B (zh) 2008-06-13 2008-06-13 存储装置的数据同步系统及其方法

Country Status (1)

Country Link
CN (1) CN101604234B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1632777A (zh) * 2003-12-24 2005-06-29 联想(北京)有限公司 一种实现随身电脑与计算机间交换数据的方法
CN1639677A (zh) * 2002-03-06 2005-07-13 弗里科姆技术公司 用于外部数据存储单元的监视和数据交换方法
CN1682215A (zh) * 2002-07-19 2005-10-12 阿克萨尔托股份有限公司 数据库同步
CN1713115A (zh) * 2004-06-15 2005-12-28 英业达股份有限公司 数据存取系统及其方法
WO2007024380A2 (en) * 2005-08-24 2007-03-01 Microsoft Corporation Security in peer to peer synchronization applications
CN1937504A (zh) * 2005-09-23 2007-03-28 英业达股份有限公司 同步系统以及方法
CN101196839A (zh) * 2006-12-06 2008-06-11 英业达股份有限公司 双快闪只读存储器的数据修复与同步方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1639677A (zh) * 2002-03-06 2005-07-13 弗里科姆技术公司 用于外部数据存储单元的监视和数据交换方法
CN1682215A (zh) * 2002-07-19 2005-10-12 阿克萨尔托股份有限公司 数据库同步
CN1632777A (zh) * 2003-12-24 2005-06-29 联想(北京)有限公司 一种实现随身电脑与计算机间交换数据的方法
CN1713115A (zh) * 2004-06-15 2005-12-28 英业达股份有限公司 数据存取系统及其方法
WO2007024380A2 (en) * 2005-08-24 2007-03-01 Microsoft Corporation Security in peer to peer synchronization applications
CN1937504A (zh) * 2005-09-23 2007-03-28 英业达股份有限公司 同步系统以及方法
CN101196839A (zh) * 2006-12-06 2008-06-11 英业达股份有限公司 双快闪只读存储器的数据修复与同步方法

Also Published As

Publication number Publication date
CN101604234A (zh) 2009-12-16

Similar Documents

Publication Publication Date Title
CN100377084C (zh) 嵌入式操作系统多任务并行启动优化实现方法
JP2009043235A (ja) 外部アタッチメントデバイスをコンピューティングデバイスに接続するインタフェース
CN104980552B (zh) 实现Android移动终端自动化测试的方法及系统
CN103200199A (zh) 一种带外数据采集系统
CN101894028A (zh) Linux内核镜像数据支持多种CPU的实现方法及装置
CN104808953B (zh) 控制数据存储的方法、装置及移动终端
CN102681993A (zh) 一种文件同步方法、文件同步装置及第一电子设备
CN102231163A (zh) 将指定文件优先同步更新的系统及方法
CN103905445A (zh) 列表数据的显示方法及装置
CN103176808B (zh) 一体成型桌上型电脑的开机方法
CN101604234B (zh) 存储装置的数据同步系统及其方法
CN102521397B (zh) 一种数据传输方法
CN101867697A (zh) 一种利用网络实现即插即用的机顶盒系统及方法
CN106034139A (zh) 数据传输系统及方法
CN101894071A (zh) 一种机顶盒嵌入式浏览器集成测试方法及系统
CN103955379A (zh) 一种注册软件的方法和系统
CN101373464B (zh) 自动调用表格设置的方法、装置及系统
US20100049749A1 (en) System of synchronizing data between storage devices and method thereof
CN105930100A (zh) 一种优化usim卡文件读写速度及频率的实现方法
CN101859307B (zh) 键盘-屏幕-鼠标切换器、计算机系统与文件搜寻方法
CN102137299A (zh) 一种实现多媒体业务的方法及数字电视接收终端
CN102567263A (zh) 串行接口便携式装置用户数据自动同步和自动交换的装置和方法
CN103377005A (zh) 数据同步方法与装置
CN106657265A (zh) 一种服务框架系统
CN107896164B (zh) 一种gnss接收机批量配置方法

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
TR01 Transfer of patent right

Effective date of registration: 20170810

Address after: Room 8, building 805, sunshine times, Fenghuang Road, Fenghuang County, Shangrao, Jiangxi, Shangrao

Co-patentee after: Zhang Kaijun

Patentee after: Jiangxi union Speed Technology Co.,Ltd.

Address before: Qingnian Road Taiwan Wanhua District of Taipei city China No. 184 3 2 floor

Patentee before: Fucheng International Machinery Co.,Ltd.

Effective date of registration: 20170810

Address after: Qingnian Road Taiwan Wanhua District of Taipei city China No. 184 3 2 floor

Patentee after: Fucheng International Machinery Co.,Ltd.

Address before: Taipei City, Taiwan Chinese Shilin District Hougang Street No. 66

Patentee before: Yingda Co.,Ltd.

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

Granted publication date: 20110601

Termination date: 20180613

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