CN102045294B - 数据传输方法及系统 - Google Patents

数据传输方法及系统 Download PDF

Info

Publication number
CN102045294B
CN102045294B CN200910205454.1A CN200910205454A CN102045294B CN 102045294 B CN102045294 B CN 102045294B CN 200910205454 A CN200910205454 A CN 200910205454A CN 102045294 B CN102045294 B CN 102045294B
Authority
CN
China
Prior art keywords
data
user
file
line
server end
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
CN200910205454.1A
Other languages
English (en)
Other versions
CN102045294A (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.)
Acer Inc
Original Assignee
Acer Inc
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 Acer Inc filed Critical Acer Inc
Priority to CN200910205454.1A priority Critical patent/CN102045294B/zh
Publication of CN102045294A publication Critical patent/CN102045294A/zh
Application granted granted Critical
Publication of CN102045294B publication Critical patent/CN102045294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种数据传输方法及系统,用于用户端与服务器端之间的数据传输服务,其中通过所述数据传输服务所要传输的数据包括多个文件目录以及文件。此方法先分析数据传输服务所要传输的数据的文件目录阶层,接着计算这些文件目录中具有至少一个文件的多个第一层目录的总数,以作为数据传输服务的一个最佳用户连线数目N,其中N为大于1的正整数。然后再动态产生N个用户帐号,并以N个不同的认证信息动态建立用户端与服务器端之间的N个用户连线,而能够通过此等N个用户连线进行用户端与服务器端之间的数据传输。

Description

数据传输方法及系统
技术领域
本发明是有关于一种数据传输方法,且特别是有关于一种建立最佳数目的用户连线以进行数据传输的方法及系统。
背景技术
随着通讯技术的蓬勃发展,网路的相关应用也推陈出新。文件共享即是在网路上传输数据的一种应用,其由服务器端在网路上主动地共享本身的文件数据,而提供多个用户端连线以传输数据。一般的文件共享使用点对点(Point-to-Point,P2P)的传输模式,文件本身存放在服务器端的电脑上,而由用户端使用复制(Copy)与自动复制(Robocopy)做为文件传输的基本方式。
上述的文件传输方式只能允许用户端建立单一的用户连线(Usersession),并通过此用户连线循序传输所需数据中的多个文件。然而,采用此种方式虽然可以将网路频宽(bandwidth)平均分配给每一个用户使用,但每一个用户连线只能占用有限的频宽。在有多余的频宽可供运用时,却也没有办法再将此频宽分配给既有的用户连线使用,使得用户端与服务器端之间的文件共享无法超越网路传输的物理极限。结果就是,每当用户端需要使用网路传输包含多个文件的数据或是需要传输文件容量较大的数据时,其所需的传输时间就会随着文件数量及容量的多少而线性增加。
发明内容
本发明提供一种数据传输方法,通过分析数据中的文件目录阶层决定最佳用户连线数目,据以建立多个用户连线以进行数据传输。
本发明提出一种数据传输方法,用于用户端与服务器端之间的数据传输服务,其中通过所述数据传输服务所要传输的数据包括多个文件目录以及文件。此方法先分析数据传输服务所要传输的数据的文件目录阶层,接着计算这些文件目录中具有至少一个文件的多个第一层目录的总数,以作为数据传输服务的一个最佳用户连线(User session)数目N,其中N为大于1的正整数。然后再动态产生N个用户帐号(user account),并以N个不同的认证(credentials)信息动态建立用户端与服务器端之间的N个用户连线,而能够通过此N个用户连线进行用户端与服务器端之间的数据传输。
在本发明一实施例中,上述动态建立用户端与服务器端之间的N个用户连线的步骤还包括先以第一用户帐号及第一认证信息建立用户端与服务器端之间的一个用户连线,然后再以管理者(supervisor)权限,动态产生(N-1)个用户帐号,并使得此(N-1)个用户帐号各自以不同的认证信息建立(N-1)个用户连线。
在本发明一实施例中,上述动态建立用户端与服务器端之间的N个用户连线的步骤还包括由每一个用户自用户端向服务器端发送一则连线消息,而由服务器端根据此连线消息而回传一则回应消息。其中,所述连线消息包含用户帐号、认证信息以及待传送数据的信息,而所述待传送数据的信息则包括文件目录阶层及文件名称。
在本发明一实施例中,上述数据传输服务为文件共享(file share)的数据传输服务。
本发明另提出一种数据传输系统,其用以通过文件共享的数据传输服务而将传输数据传送至服务器端,此传输数据包括多个文件目录以及文件。此系统包括分析模块、计算模块及连线通道建立模块。其中,分析模块用以分析传输数据的文件目录阶层、文件总数及每一个文件的大小,以获得分析数据。计算模块则可根据分析数据决定传送传输数据的一个最佳连线数目N。连线通道建立模块用以动态产生N个用户帐号,并以N个不同的认证信息动态建立所述数据传输系统与服务器端之间的N个连线,以通过此N个连线传输数据至服务器端。
在本发明一实施例中,上述连线通道建立模块更包括帐号建立模块,其以管理者权限,动态产生N个用户帐号,并使此N个用户帐号各自以不同的认证信息建立N个用户连线。
在本发明一实施例中,上述连线通道建立模块包括发送模块,其使每一个用户向服务器端发送一则连线消息,而由服务器端根据此连线消息而回传一则回应消息。其中,所述连线消息包含用户帐号、认证信息以及待传送数据的信息,而所述待传送数据的信息则包括文件目录阶层及文件名称。
在本发明一实施例中,上述计算模块根据多个文件目录中具有至少一个文件的多个第一层目录的总数决定传送传输数据的最佳连线数目N。
在本发明一实施例中,上述计算模块根据多个文件中具有某一特定文件容量的文件总数决定传送传输数据的最佳连线数目N。
在本发明一实施例中,上述文件共享的数据传输服务通过传输控制协议(Transmission Control Protocol,TCP)及用户数据消息协议(UserDatagram Protocol,UDP)其中之一提供数据传输服务。
本发明另提出一种数据传输方法,用于用户端与服务器端之间数据传输服务。此方法包括先分析服务所要传输的数据的目录阶层与文件总数,并根据此目录阶层与文件总数决定服务所要传输的数据的一个最佳用户连线数目N,其中N为大于1的正整数,最后则动态产生N个用户,并以N个不同的认证建立用户端与服务器端之间的N个用户连线,以通过此等N个用户连线进行用户端与服务器端之间的数据传输。
基于上述,本发明数据传输方法分析所要传输的数据的文件目录阶层,找出其中具有至少一个文件的第一层目录,并计算此第一层目录的数目以作为传输此数据的最佳用户连线数目。而实际在进行数据传输时,则依据此最佳用户连线数目建立多个用户连线以传输文件,可实现多个文件的平行传输。
为让本发明上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
附图说明
图1是本发明一实施例数据传输系统的方块图;
图2是本发明一实施例数据传输方法的流程图;
图3是本发明一实施例文件目录结构的示意图;
图4是本发明一实施例数据传输方法的流程图;
图5是本发明一实施例数据传输方法的流程图。
主要元件符号说明
100-数据传输系统;    110-分析模块;
120-计算模块;        130-连线通道建立模块;
132-帐号建立模块;    134-发送模块;
300-文件目录结构;
S210~S230-本发明一实施例数据传输方法的各步骤;
S410~S430-本发明一实施例数据传输方法的各步骤;
S510~S530-本发明一实施例数据传输方法的各步骤。
具体实施方式
本发明在有多个文件需要经由网路传输时,通过分析所要传输数据中的文件目录阶层,以找出传输此数据的最佳用户连线数目,并动态产生对应该数目的用户连线以传输文件。据此,本发明能够有效地运用网路的所有频宽以进行数据传输,使得数据的传输时间可以随着用户连线数目的增加而线性减少。
图1是本发明一实施例数据传输系统的方块图。请参照图1,本实施例数据传输系统100包括分析模块110、计算模块120及连线通道建立模块130,而连线通道建立模块130中则包括帐号建立模块132及发送模块134。数据传输系统100通过文件共享(file share)的数据传输服务将传输数据传送至服务器端,此传输数据中包括多个文件目录以及文件。其中,上述文件共享的数据传输服务例如是通过传输控制协议(TransmissionControl Protocol,TCP)或是用户数据报协议(User Datagram Protocol,UDP)来提供,而不限定其范围。
图2是本发明一实施例数据传输方法的流程图。请同时参照图1及图2,本实施例数据传输方法适用于图1数据传输系统100,而用以在用户端与服务器端之间提供数据传输服务,其详细步骤如下:
首先,由分析模块110分析用户端所欲传输数据中的文件目录阶层,以获得分析数据(步骤S210)。其中,分析模块110例如会分析每一个文件目录阶层中的文件目录与文件的总数,以获得此传输数据的文件目录结构的相关数据,而用以作为后续决定连线机制的参考。
接着,由计算模块120根据上述分析模块110分析传输数据所得的分析数据,决定传送此传输数据的最佳连线(session)数目N,其中N为大于1的正整数。详细地说,计算模块120会在所需传输数据的所有文件目录中找寻具有至少一个文件的第一层目录,并计算此类第一层目录的总数,以作为传送此传输数据的最佳连线数目N(步骤S220)。
上述所谓的第一层目录是指在传输数据的文件目录结构中,由上而下的各个文件目录阶层中第一次出现有文件的文件目录。简而言之,此第一层目录之前的文件目录下都没有包含文件,直到此第一层目录下才开始有出现文件。
举例来说,图3是本发明一实施例文件目录结构的示意图。请参照图3,本实施例文件目录结构300包括多个文件目录阶层,每一个文件目录阶层中都可以包含一或多个文件目录或文件。而本实施例所述具有至少一个文件的第一层目录指的就是在此文件目录下开始有包含文件,而不单只有包含文件目录。例如,文件目录A下包含文件目录B及文件目录C,并未包含文件,因此不会被归类为第一层目录;文件目录C下包含文件G及文件目录H,由于文件G是第一次出现在文件目录下,因此文件目录C可归类为第一层目录;文件目录H下包含有文件I及文件J,但其前一阶层的文件目录C本身已归类为第一层目录,因此文件目录H只能归类为第二层目录。
值得注意的是,上述以第一层目录总数来决定最佳连线数目的原因在于传输数据可能包括多个文件目录阶层,而每一个文件目录阶层中又可能包括多个文件目录及文件。若要实现文件平行传输的最佳化,就必须在传输数据中找出可以在同一时间传输但不会彼此重复的文件目录或文件,如此才能够在不重复传输且不浪费网路频宽的情况下,建立适当数目的用户连线以实现最大的数据传输量。上述定义的第一层目录就符合此最大不重复的原则,而此第一层目录的总数就是本实施例中的最佳连线数目。
在决定最佳连线数目N之后,接着则由连线通道建立模块130动态产生N个用户帐号(user account),并以N个不同的认证(credentials)信息动态建立数据传输系统100与服务器端之间的N个连线,以通过此等N个连线传输数据至服务器端(步骤S230)。其中,欲传输数据的用户会向服务器端发送连线消息。相对地,服务器端在接收到连线消息之后,也会回传回应消息以建立用户连线。
详细地说,在计算模块120决定最佳连线数目N之后,连线通道建立模块130中的帐号建立模块132将会以管理者权限,动态产生N个用户帐号,并通过发送模块134向服务器端发送连线消息,使得此N个用户帐号各自以不同的认证信息向服务器端要求建立N个用户连线。其中,发送模块134所发送的连线消息中即包括用户的用户帐号、认证信息以及待传送数据的信息,而此待传送数据的信息中则包括所欲传输数据的文件目录阶层及文件名称等信息。
此外,在一实施例中,连线通道建立模块130例如是先以既有的一组用户帐号及认证信息登入服务器端,以在数据传输系统100与服务器端之间建立一个用户连线。而在登入之后,再以管理者的权限,动态产生(N-1)个用户帐号,并使此(N-1)个用户帐号各自以不同的认证信息来与服务器端建立(N-1)个用户连线。
值得一提的是,除了上述以文件目录中具有至少一个文件的第一层目录的总数来决定最佳连线数目的方式之外,在另一实施例中,本发明也可以根据文件目录中具有一特定文件容量之文件的总数来决定最佳连线数目,以作为后续建立用户连线的依据,以下则再举一实施例详细说明。
图4是本发明一实施例数据传输方法的流程图。请同时参照图1及图4,本实施例数据传输方法适用于图1数据传输系统100,用以在用户端与服务器端之间提供数据传输服务,其详细步骤如下:
首先,由分析模块110分析用户端所欲传输数据中的文件目录阶层,以获得分析数据(步骤S410)。其中,分析模块110会分析每一个文件目录阶层中各个文件的大小,而获得此传输数据的文件目录结构的相关数据,据以作为后续决定连线策略的参考。
接着,由计算模块120根据上述分析模块110分析所得的分析数据,搜寻传输数据的多个文件中具有一特定文件容量的文件总数,而决定传送此传输数据的一个最佳连线数目N(步骤S420),其中N为大于1的正整数。
值得注意的是,上述以特定文件容量的文件总数来决定最佳连线数目的原因在于传输数据中可能包括许多大容量文件,而这些大容量文件在整体传输数据的过程中势必会占据较大的比重。据此,本发明先把这些大容量文件从传输数据中挑选出来,并分别建立对应的用户连线以进行平行传输,因而可避免这些大容量文件被分配到同一个用户连线中传输而造成传输塞车的情形。
在决定最佳连线数目N之后,接着则由连线通道建立模块130动态产生N个用户帐号,并以N个不同的认证信息动态建立数据传输系统100与服务器端之间的N个连线,以通过此N个连线传输数据至服务器端(步骤S430)。其中,欲传输数据的用户会向服务器端发送连线消息。相对地,服务器端在接收到连线消息之后,即会回传回应消息以建立用户连线。
值得一提的是,在一实施例中,数据传输系统100也可以综合考量数据传输服务所要传输的数据的目录阶层与文件总数,以决定该服务所要传输的数据的最佳用户连线数目。例如,当目录阶层过多或小文件数过多时,采用以目录总数为传输基础;当目录阶层较少或大文件较多时,则采用以文件总数为传输基础,以达到最佳的用户连线数目。以下则再举一实施例详细说明。
图5是本发明一实施例数据传输方法的流程图。请同时参照图1及图5,本实施例数据传输方法适用于图1数据传输系统100,用以在用户端与服务器端之间提供数据传输服务,其详细步骤如下:
首先,由分析模块110分析数据传输服务所要传输的数据的目录阶层与文件总数,以获得分析数据(步骤S510)。其中,分析模块110会分析每一个文件目录阶层中的文件目录与文件的总数以及各个文件的大小,而获得此传输数据之文件目录结构的相关数据,据以作为后续决定连线策略的参考。
接着,由计算模块120根据上述分析数据中目录阶层与文件总数,以决定该服务所要传输的数据之最佳用户连线数目N(步骤S520),其中N为大于1的正整数。其中,计算模块120可根据数据传输量最大化或是最有效利用网路频宽的传输策略,选择使用传输数据的多个文件目录总数,抑或选择特定文件容量的文件总数,来作为最佳用户连线数目N。
最后,则由连线通道建立模块130动态产生N个用户,并以N个不同的认证建立用户端与服务器端之间的N个用户连线,以通过此N个用户连线进行用户端与服务器端之间的数据传输(步骤S530)。
综上所述,本发明数据传输方法及系统通过分析传输数据中的文件目录阶层、文件总数,以及每一个文件的大小,从而决定传送此传输数据的最佳连线数目。因此,在实际传输数据时能够建立最佳连线数目的用户连线以进行数据的平行传输,进而实现文件平行传输的最佳化。本发明的设计可以破除传统单一机器或单一用户只能建立单一用户连线传输数据的方式,使得数据的传输不再受到物理极限的限制。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (15)

1.一种数据传输方法,用于一用户端与一服务器端之间的一数据传输服务,其中通过所述数据传输服务所要传输的数据包括多个文件目录以及文件,该方法包括:
分析该数据传输服务所要传输的数据的文件目录阶层;
计算该些文件目录中具有至少一文件的多个第一层目录的总数,以作为该数据传输服务的一最佳用户连线数目N,其中所述第一层目录是在所要传输的数据的一文件目录结构中,由上而下的各所述文件目录阶层中第一次出现有所述文件的文件目录;以及,
动态产生N个用户帐号,并以N个不同的认证信息动态建立该用户端与该服务器端之间的N个用户连线,以通过该N个用户连线进行该用户端与该服务器端之间的数据传输。
2.根据权利要求1所述的数据传输方法,其中动态建立该用户端与该服务器端之间的N个用户连线包括:
以一第一用户帐号及一第一认证信息建立该用户端与该服务器端之间的一个用户连线;以及,
以管理者的权限,动态产生N-1个用户帐号,并使该N-1个用户帐号各自以不同的认证信息建立该N-1个用户连线。
3.根据权利要求1所述的数据传输方法,其中动态建立该用户端与该服务器端之间的N个用户连线包括:
每一用户自用户端向服务器端发送一连线消息;以及,
该服务器端根据该连线消息而回传一回应消息。
4.根据权利要求3所述的数据传输方法,其中该连线消息包含用户帐号、认证信息以及待传送数据的信息。
5.根据权利要求4所述的数据传输方法,其中待传送数据的信息包括文件目录阶层及文件名称。
6.根据权利要求1所述的数据传输方法,其中该数据传输服务为一文件共享的数据传输服务。
7.一种数据传输系统,用以通过一文件共享的数据传输服务而将一传输数据传送至一服务器端,该传输数据包括多个文件目录以及文件,该系统包括:
一分析模块,用以分析该传输数据的文件目录阶层、文件总数及每一文件大小,以获得一分析数据;
一计算模块,其根据该分析数据决定传送该传输数据的一最佳连线数目N;以及,
一连线通道建立模块,其动态产生N个用户帐号,并以N个不同的认证信息动态建立该数据传输系统与该服务器端之间的N个用户连线,以通过该N个用户连线传输数据至该服务器端。
8.根据权利要求7所述的数据传输系统,其中该连线通道建立模块包括:
一帐号建立模块,其以管理者的权限,动态产生N个用户帐号,并使该N个用户帐号各自以不同的认证信息建立该N个用户连线。
9.根据权利要求7所述的数据传输系统,其中该连线通道建立模块还包括:
一发送模块,其使每一用户向服务器端发送一连线消息;以及,
该服务器端根据该连线消息而回传一回应消息。
10.根据权利要求9所述的数据传输系统,其中该连线消息包含用户帐号、认证信息以及待传送数据的信息。
11.根据权利要求10所述的数据传输系统,其中待传送数据的信息包括文件目录阶层及文件名称。
12.根据权利要求7所述的数据传输系统,其中该计算模块根据多个文件目录中具有至少一文件的多个第一层目录的总数决定传送该传输数据的该最佳连线数目N,其中所述第一层目录是在所要传输的数据的一文件目录结构中,由上而下的各所述文件目录阶层中第一次出现有所述文件的文件目录。
13.根据权利要求7所述的数据传输系统,其中该计算模块根据多个文件中具有一特定文件容量的文件总数决定传送该传输数据的该最佳连线数目N。
14.根据权利要求7所述的数据传输系统,其中该文件共享的数据传输服务通过一传输控制协议及一用户数据报协议其中之一提供数据传输服务。
15.一种数据传输方法,用于一用户端与一服务器端之间一数据传输服务,该方法包括:
分析该数据传输服务所要传输的数据的目录阶层与文件总数;
根据该目录阶层与该文件总数决定该服务所要传输的数据的一最佳用户连线数目N,其中N为大于1的正整数;以及,
动态产生N个用户,并以N个不同的认证建立该用户端与该服务器端之间的N个用户连线,以通过N个用户连线进行该用户端与该服务器端之间的数据传输。
CN200910205454.1A 2009-10-23 2009-10-23 数据传输方法及系统 Active CN102045294B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910205454.1A CN102045294B (zh) 2009-10-23 2009-10-23 数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910205454.1A CN102045294B (zh) 2009-10-23 2009-10-23 数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN102045294A CN102045294A (zh) 2011-05-04
CN102045294B true CN102045294B (zh) 2014-02-26

Family

ID=43911083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910205454.1A Active CN102045294B (zh) 2009-10-23 2009-10-23 数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN102045294B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811132A (zh) * 2011-06-01 2012-12-05 宏碁股份有限公司 会议资料播放及共享方法与简报装置
CN103873543A (zh) * 2012-12-12 2014-06-18 华硕电脑股份有限公司 一种数据传输系统以及其传输方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
CN100593928C (zh) * 2006-09-30 2010-03-10 中国科学院计算技术研究所 一种基于数据特征的流媒体内容下载方法
CN101389092B (zh) * 2007-09-12 2011-09-21 中兴通讯股份有限公司 一种双模双待手机使用双线程下载的方法

Also Published As

Publication number Publication date
CN102045294A (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
US10681127B2 (en) File upload method and system
EP1931108B1 (en) Method and system for peer-to-peer content dissemination
CN101237429B (zh) 基于内容分发网络的流媒体直播系统、方法及装置
KR101490122B1 (ko) 콘텐츠 데이터 패키지 분배 방법 및 컴퓨터 프로그램
CN107241374B (zh) 负载平衡系统、负载平衡装置及拓朴管理方法
US20090172157A1 (en) Method and Device for Content Transmission on P2P Network
EP2044525B1 (en) Multi-party cooperative peer-to-peer video streaming
CN110430274A (zh) 一种基于云存储的文件下载方法及系统
WO2010127618A1 (zh) 一种实现流媒体内容服务的系统和方法
CN101938508A (zh) 对等网络流媒体直播系统中延时减小的方法和系统
CN101355591A (zh) 一种p2p网络及其调度方法
CN101039309A (zh) 链路共享服务装置以及通信方法
CN104010228A (zh) 一种用于基于级的自动调整的对等媒体流的装置和方法
CN101039250A (zh) 一种图片共享系统和方法
CN101645924B (zh) 一种对等网络p2p系统中的合作节点选择方法
CN102045294B (zh) 数据传输方法及系统
Oechsner et al. Pushing the performance of biased neighbor selection through biased unchoking
CN109348486A (zh) 一种异构无线网络资源分配方法
Wang et al. Peer-assisted social media streaming with social reciprocity
Deltouzos et al. Liquidstream II—Scalable P2P overlay optimization with adaptive minimal server assistance for stable and efficient video on demand
Yin et al. Analysis of admission control in P2P-based media delivery network based on POMDP
CN101662494A (zh) 一种实现内容提供的方法、系统和装置
CN101800751B (zh) 分布式实时数据编码传输方法
CN102098339A (zh) 一种音频文件传输方法及其系统
Zhang et al. Topology-aware peer-to-peer on-demand streaming

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