专利申请典型案例-说明书

合集下载

中药改剂型专利典型案例

中药改剂型专利典型案例

中药改剂型专利典型案例一、案例概述本案例涉及一种中药改剂型的专利申请,主要针对传统中药制剂进行剂型改进,以提高其疗效和方便性。

该专利申请涉及一种新型中药颗粒剂及其制备方法。

二、权利要求权利要求1:一种中药颗粒剂,其特征在于,由中药材粉末和辅料制成,形状为颗粒状,可直接口服或冲泡服用。

权利要求2:根据权利要求1所述的中药颗粒剂,其特征在于,所述中药材粉末包括黄连、黄芩、黄柏、栀子、金银花、连翘、生地黄、赤芍、牡丹皮等。

权利要求3:根据权利要求1或2所述的中药颗粒剂,其特征在于,所述辅料为淀粉或葡萄糖。

权利要求4:制备权利要求1-3中任一项所述的中药颗粒剂的方法,包括以下步骤:将中药材粉末和辅料混合,用水提取药材中的有效成分,经干燥制粒而成。

三、说明书说明书详细描述了本专利申请的发明内容、技术方案、实施方式、优点及应用范围等。

具体而言,说明书描述了中药颗粒剂的制备方法、配方比例、工艺流程等关键技术信息。

此外,说明书还对比了传统中药制剂与本专利申请所述新型中药颗粒剂在疗效、方便性等方面的优势。

四、附图附图展示了本专利申请所述新型中药颗粒剂的制备流程示意图,有助于理解本专利申请的技术方案。

五、专利保护范围本专利申请的保护范围包括上述权利要求所述的新型中药颗粒剂及其制备方法。

具体保护范围以权利要求书所界定的内容为准。

六、无效宣告请求无效宣告请求是对本专利申请的一种质疑方式,若认为本专利申请存在不符合专利法规定的情形,可提出无效宣告请求。

在本案例中,无效宣告请求主要针对本专利申请的创造性、实用性等方面进行评估。

七、创造性判定创造性判定是判断本专利申请是否具有创造性的过程。

在本案例中,创造性判定主要基于本专利申请的技术方案与现有技术的对比分析,判断本专利申请是否具有突出的实质性特点和显著的进步。

八、实用性评估实用性评估是判断本专利申请是否具有实用性的过程。

在本案例中,实用性评估主要基于本专利申请的技术方案是否能够实现工业化生产、是否具有实际应用价值等方面进行评估。

专利申请的成功与失败案例分析

专利申请的成功与失败案例分析

专利申请的成功与失败案例分析近年来,随着科技的迅猛发展,专利申请成为了企业保护知识产权的重要手段。

然而,专利申请并非一帆风顺,成功与失败之间常常只有一线之差。

本文将通过分析几个典型的案例,探讨专利申请的成功与失败的原因,以期给予读者一些启示。

案例一:成功的专利申请某公司研发了一种全新的无线充电技术,并决定申请专利以保护其创新成果。

在申请过程中,该公司注意到了以下几个关键因素,从而成功地获得了专利权。

首先,该公司在申请专利前进行了充分的市场调研和技术分析。

他们发现,目前市场上的无线充电技术存在诸多问题,如充电效率低、充电距离短等。

基于这些问题,该公司进行了大量的研发工作,成功地解决了这些难题,并在申请专利时充分展示了其技术的创新性和实用性。

其次,该公司在申请专利时选择了合适的申请范围。

他们意识到,过于宽泛的专利范围容易被驳回,而过于狭窄的专利范围则容易被绕过。

因此,他们在申请时精确地定义了其技术的边界,既保证了专利的有效性,又避免了被绕过的风险。

最后,该公司在申请专利时充分展示了其技术的商业价值和市场前景。

他们通过市场调研和技术分析,证明了其技术在无线充电领域的广阔应用前景,并提供了可行的商业化方案。

这些有力的证据使得专利局对其专利申请更加看好,最终成功地获得了专利权。

案例二:失败的专利申请某个创业者发明了一种新型的智能家居设备,并希望通过申请专利来保护其创新成果。

然而,在申请过程中,他犯下了一些常见的错误,导致专利申请最终失败。

首先,他没有进行充分的专利搜索。

他认为自己的创新是独一无二的,没有查阅过相关的专利文献。

然而,事实上,类似的技术可能已经存在于其他专利中。

由于没有充分了解现有技术,他的专利申请最终被驳回。

其次,他在申请专利时没有充分展示其技术的创新性和实用性。

他只是简单地描述了自己的发明,没有提供实验数据或者其他有力的证据来证明其技术的独特性和优势。

这导致专利局对其专利申请的评估不足,最终被驳回。

北京知识产权法院专利授权确权十大典型案例

北京知识产权法院专利授权确权十大典型案例

北京知识产权法院专利授权确权十大典型案例文章属性•【公布机关】北京知识产权法院,北京知识产权法院,北京知识产权法院•【公布日期】2023.05.30•【分类】其他正文北京知识产权法院专利授权确权十大典型案例案例一:泰拉科斯萨伯补充实验数据案案号:(2018)京73行初2626号典型意义:医药领域技术方案的技术效果往往无法直观确认,需要依赖实验数据进行验证,故补交实验数据一直是此类案件审理过程中一个备受关注的问题。

关于如何确定可以接受的补充实验数据范围,本案判决认为,补交的实验数据是否可以被采信,或者说判断说明书文字记载的技术效果是否仅为断言,取决于该技术效果是否属于申请人在诉争发明“申请日”之前的技术贡献,以及公众在获知诉争发明之时是否可以确认该效果。

本案最终接受了专利权人补充的实验数据,对充分保护原研药企的合法权益、充分激发医药行业的创新热情具有指引意义。

案例二:全国首例GUI外观设计权无效案案号:(2017)京73行初9397号典型意义:图形用户界面(GUI)是指采用图形方式显示的计算机操作环境的用户接口,用户可以借助GUI实现与计算机软件的信息交互和操作控制。

在底层技术已较为成熟的情况下,如何改进用户交互方式,提升用户操作体验,已然成为新的创新增长点。

本案为全国首例在GUI外观设计中适用《专利法》第二十三条第二款这一实体条款进行判决的案件,具有开创性。

判决对现有外观设计确权规则在GUI 这一新型外观设计保护对象上的具体适用进行了积极探索,为今后法院审理类似案件提供了参照标准。

案例三:孟山都生物序列专利驳回复审案一审案号:(2017)京73行初2601号二审案号:(2020)最高法知行终172号典型意义:生物技术是近年来发展最为迅猛的高新技术之一。

对于生物技术企业而言,新的基因或蛋白质序列是其核心产品,生物序列类专利的支持性更是业界广为关注的问题。

涉案专利权利要求1同时涉及“同源性限定”和“序列组成部分+功能”的限定方式。

全国发明专利撰写典型案例

全国发明专利撰写典型案例

全国发明专利撰写典型案例近年来,中国在知识产权保护和发明创造方面取得了长足的进步。

全国发明专利的撰写是保护和推动创新发展的重要手段之一。

本文将以一则典型案例为例,详细描述全国发明专利的撰写过程和要求。

案例背景:某公司为了提高产品生产效率和降低能耗,开发了一种新型的自动化生产设备。

该设备采用了先进的传感技术和智能控制系统,能够自动识别产品的尺寸和形状,并进行相应的加工和组装。

该设备的研发和创新点主要集中在以下几个方面:1. 传感技术的应用,通过传感器实时获取产品的尺寸和形状信息;2. 智能控制系统的设计,能够根据产品的尺寸和形状进行自动化的加工和组装操作;3. 能耗的优化,通过精细的控制和优化算法,降低设备的能耗和排放。

撰写过程:全国发明专利的撰写是一个严谨和复杂的过程,需要综合运用技术、法律和语言等多个方面的知识。

以下是对该典型案例进行全国发明专利撰写的步骤和要求:1. 技术说明:首先,需要对该自动化生产设备的技术方案进行详细的说明。

包括设备的结构、工作原理、技术特点等。

同时,要对该设备的创新点进行强调和解释,说明与现有技术的差异和优势。

2. 创新点阐述:针对该设备的三个创新点,分别进行详细的阐述。

对于传感技术的应用,要具体说明使用了哪些传感器,如何实现实时获取产品尺寸和形状信息,并如何利用这些信息进行后续的加工和组装操作。

对于智能控制系统的设计,要具体说明采用了哪些算法和方法,如何根据产品的尺寸和形状进行自动化的操作,并实现了怎样的功能和效果。

对于能耗的优化,要具体说明采用了哪些控制和优化算法,如何实现了能耗的降低和排放的减少。

3. 附图和说明:对于发明专利的申请,附图和说明是非常重要的组成部分。

附图要清晰地展示设备的结构和工作原理,说明要对附图进行详细的解释和标注。

此外,还需要对附图和说明进行适当的补充,以便更好地理解和理解该设备的创新之处。

4. 背景技术和现有技术的引用:在发明专利申请中,需要对背景技术和现有技术进行引用。

全国发明专利撰写典型案例

全国发明专利撰写典型案例

全国发明专利撰写典型案例一、背景介绍发明专利是指新的技术解决方案、新的产品或者新的应用方案,同时具备实用性和创造性,并可以被公开的专利权利要求。

随着科技的发展和创新能力的提升,中国的发明专利数量逐渐增加,对于撰写一份成功的发明专利申请来说,案例的学习和研究至关重要。

下面将介绍几份典型的全国发明专利撰写案例,以供大家参考。

二、典型案例一:智能家居控制系统该发明涉及智能家居领域,提供一种智能家居控制系统,包括手机APP、智能家居网关、传感器、执行终端等组成。

在实用性方面,该系统具有远程控制家电、监控环境、智能化调控等功能,具有明显的经济效益。

在创造性方面,该系统通过智能算法实现个性化场景控制,提高了用户的体验,具有一定的技术创新性。

撰写人员在申请发明专利时,充分挖掘系统的技术亮点,结合具体实施细节,使得专利权利要求更具优势。

三、典型案例二:新型医用敷料该发明涉及医疗卫生领域,提出了一种新型医用敷料,其材料结构设计独特,具有较好的透气性、吸水性和杀菌性能,适用于各种伤口和疮疡敷料。

该敷料在实用性方面解决了传统敷料透气性和吸水性差、易引发感染等问题,具有显著的临床应用价值。

在创造性方面,该敷料的吸水结构和杀菌技术为同行业创新,撰写人员在专利申请中重点阐述其技术方案和医疗效果,得到了专家的高度评价。

四、典型案例三:新型环保材料该发明涉及环保材料领域,提出了一种新型环保材料及其制备方法,该材料使用天然植物纤维和特定树脂结合制备,具有耐磨、耐酸碱、可降解等特性,适用于包装、家具、建筑材料等领域。

在实用性方面,该环保材料的制备方法简便、成本低廉、产品具有良好的力学性能,具有广阔的市场应用前景。

在创造性方面,该环保材料的原料选择和制备工艺具有创新性,促进了环保材料领域的技术进步。

在专利申请过程中,撰写人员需重点突出其绿色环保和可降解的特性,以及具体应用领域的优势。

五、总结与展望以上三个典型案例展示了全国发明专利撰写的一些典型情形,通过深入理解创新成果的实际应用和技术特点,结合专利法律法规的要求,撰写人员能够撰写出具有较强竞争力的发明专利申请。

22年全国典型发明专利撰写案例

22年全国典型发明专利撰写案例

22年全国典型发明专利撰写案例一、背景介绍20年以来,我国在知识产权保护和创新能力提升方面取得了显著成就。

发明专利是知识产权的重要组成部分,对于促进科技创新、推动经济发展具有重要作用。

本文选取22年全国典型发明专利撰写案例进行介绍,以期为广大发明人提供经验借鉴,提升发明专利申请质量和审查效率。

二、案例一:一种面向智能手机的智能手环1. 技术方案:该专利主要涉及一种面向智能手机的智能手环,包括手环主体、手环带抠、屏幕和主控芯片。

手环主体采用环形设计,便于佩戴,手环带抠采用可调节式设计,适应不同手腕尺寸。

屏幕显示效果清晰,操作简便。

主控芯片实现与智能手机的蓝牙连接,实现信息推送、运动监测等功能。

2. 技术特点:该发明专利解决了传统手环使用不便、功能单一的问题,具有佩戴舒适、多功能、智能化等特点。

3. 申请要点:在撰写专利申请时,需突出手环的创新性和实用性,充分陈述技术方案和技术特点,确保专利申请的完整性和清晰度。

三、案例二:一种无人机植保系统1. 技术方案:该专利涉及一种无人机植保系统,包括无人机、喷洒装置、传感器和控制装置。

无人机采用多旋翼结构,飞行稳定;喷洒装置可实现精准喷洒,减少农药浪费;传感器实时监测植物生长情况,控制装置实现智能控制。

2. 技术特点:该发明专利结合无人机和植保技术,实现了农业生产的智能化和高效化,具有环保、节约成本等特点。

3. 申请要点:在专利申请中,需突出系统的整体性和创新性,充分阐述各个组成部分的作用和相互关系,同时强调技术特点和应用前景。

四、案例三:一种新型智能家居控制系统1. 技术方案:该专利涉及一种新型智能家居控制系统,包括主控制器、传感器、执行器和手机APP。

主控制器连接各个家居设备,实现统一控制;传感器实时监测环境信息,执行器实现远程控制;手机APP实现远程操控和智能化管理。

2. 技术特点:该发明专利将传统家居设备进行智能化改造,实现了家居环境的智能监测和远程控制,具有便捷、高效的特点。

2023年全国典型发明专利撰写案例

2023年全国典型发明专利撰写案例

2023年全国典型发明专利撰写案例一、概述在知识经济时代,发明专利是企业和个人创新发展的重要保护工具。

2019年以来,我国不断优化知识产权保护体系,加大对发明创造的保护力度,促进了科技创新与产业发展的融合。

撰写一份高质量的发明专利成为了科技工作者不可缺少的技能之一。

2023年全国典型发明专利撰写案例统计显示,在过去一年中,我国涌现出一大批具有代表性的发明专利案例,这些案例涵盖了多个领域,包括电子、通信、生物医药、机械制造等。

以下将详细介绍其中的一些典型案例。

二、案例一:某公司A新型通信设备的发明专利1. 背景介绍:某公司A是一家知名的通信设备制造商,拥有强大的研发团队和先进的生产技术。

为了满足市场对高性能通信设备的需求,该公司研发了一种新型的通信设备。

2. 创新亮点:该发明专利的创新亮点主要体现在其采用了一种全新的信号处理技术,能够有效提高通信设备的传输速率和稳定性,具有较高的实用价值和广阔的市场应用前景。

3. 技术实施方案:专利文件详细描述了该通信设备的技术实施方案,包括硬件结构、软件编程、信号处理算法等方面的技术细节,为后续生产与使用提供了清晰的指导。

4. 经济效益:该发明专利的商业价值较高,一旦投入生产,预计将带来可观的经济效益,对公司的技术实力和市场竞争力将产生积极影响。

三、案例二:某院校B药物研发领域的发明专利1. 背景介绍:某院校B拥有一支优秀的药物研发团队,一直致力于新药的研究与开发。

近年来,该院校成功研发出一种新型抗癌药物,申请了相应的发明专利。

2. 创新亮点:该发明专利的创新亮点在于其针对某种特定癌症的治疗方法,通过一种新的化合物及其合成方法,能够有效抑制癌细胞的生长,具有较高的临床应用前景。

3. 医药效果:专利文件详细描述了该药物的结构、合成方法、药理作用等方面的内容,经过实验验证,该药物在动物实验阶段已显示出良好的抗癌效果,为今后的临床试验和生产应用提供了有力支持。

4. 社会意义:该发明专利的获得不仅有助于该院校在药物研发领域的声誉提升,同时也为抗癌药物的研究与应用做出了重要贡献,对推动药物治疗技术的进步具有重要意义。

专利代理典型案例

专利代理典型案例

专利代理典型案例
以下是几个典型的专利代理案例:
1. 新药专利申请案例:
一家制药公司发现了一种新的药物化合物,该化合物具有很高的疗效。

他们决定申请专利来保护这个发现。

他们聘请专利代理人,提供了该化合物的详细描述、制备方法、疗效数据等,以及其他必要的文件。

专利代理人根据这些信息撰写了专利申请文件,并提交给了专利局。

经过一段时间的审查后,他们获得了一项专利,保护了他们的发现。

2. 技术转让专利案例:
一家公司开发了一种新的技术,但他们并没有能力或资源来利用这项技术。

他们决定将这项技术转让给其他公司,并希望通过申请专利来增加技术的价值。

他们聘请专利代理人撰写了专利申请文件,并在寻找潜在买家时将专利申请文件与技术进行推广。

最终,他们找到了一家感兴趣的公司,并与其签订了技术转让协议,将专利和相关的技术成功转让。

3. 专利诉讼案例:
一家公司发现另一家公司正在侵犯他们的专利。

他们聘请专利代理人调查这种侵权行为,并提供了必要的证据和文件。

专利代理人代表他们提起了专利诉讼,并在法庭上辩护以证明该专利的有效性和对方的侵权行为。

经过一段时间的辩论和调查,法庭最终判决对方公司违反了他们的专利,并命令对方停止侵权行为,并支付经济赔偿。

这些案例只是代表了专利代理典型案例的一小部分,实际上还有很多不同领域和情况下的专利代理案例。

每个案例都有其独特的挑战和解决方法,需要专利代理人有丰富的知识和经验来应对。

专利申请撰写典型案例

专利申请撰写典型案例

专利申请撰写典型案例一、“会发光的鞋带”案例。

1. 故事背景。

有个爱酷的年轻人,叫小明。

他特别喜欢晚上出去夜跑,但是又担心路上车看不到他,觉得要是自己的鞋带能发光就好了,这样又酷又安全。

于是他就开始捣鼓,经过一番努力,真的做出了会发光的鞋带。

这时候他就想申请个专利,把这个超酷的发明保护起来。

2. 撰写过程。

确定发明名称就叫“一种具有发光功能的鞋带”。

这个名称简单直接,让人一眼就知道这鞋带是干啥的。

然后写技术领域,就写“本发明涉及一种鞋带,尤其涉及一种具有发光功能的鞋带,属于鞋类配件技术领域”。

这就像给这个发明找个大家庭,让审查员知道它在整个技术世界里的位置。

接着是背景技术。

小明就写“目前,传统的鞋带功能单一,仅用于系紧鞋子。

在夜间或者光线较暗的环境下,穿着带有传统鞋带的鞋子出行存在安全隐患,例如行人难以被车辆及时发现等问题。

”这就把为什么要发明这个发光鞋带的原因说清楚了。

再来说发明内容。

这可是重头戏。

小明先写这个发光鞋带的结构,“本发明的发光鞋带包括鞋带本体,鞋带本体上设置有发光单元,发光单元包括微型电池、发光二极管和控制开关,微型电池与发光二极管和控制开关电连接。

”这就像在描述一个小机器人的身体构造一样。

然后他还写了这个鞋带的工作原理,“当使用者按下控制开关时,微型电池为发光二极管供电,发光二极管发光,从而使鞋带具有发光功能。

”关于附图说明,小明画了一张简单的鞋带图,把发光单元在鞋带上的位置标记出来,在撰写的时候就写“如图1所示,为本发明发光鞋带的结构示意图,其中1为鞋带本体,2为发光单元,21为微型电池,22为发光二极管,23为控制开关。

”这样审查员看着文字就能对照着图看明白。

最后是具体实施方式。

小明详细地写了怎么制作这个发光鞋带,“选取合适长度和材质的鞋带作为鞋带本体1。

然后,将微型电池21、发光二极管22和控制开关23按照电路连接关系连接好,并固定在鞋带本体1上,例如可以采用小型的塑料夹子将其固定在鞋带的合适位置。

发明专利法律案例(3篇)

发明专利法律案例(3篇)

第1篇一、案情简介原告:A照明科技有限公司被告:B照明产品有限公司案由:发明专利侵权纠纷原告A照明科技有限公司(以下简称“A公司”)于2010年研发出一种新型节能照明装置,并于同年12月向国家知识产权局申请发明专利,专利号为ZL201010XXX。

2013年,该专利获得授权。

A公司生产的该新型节能照明装置在市场上获得了良好的口碑,销售额逐年攀升。

2016年,A公司发现被告B照明产品有限公司(以下简称“B公司”)生产的照明产品与其专利产品存在高度相似之处,且B公司并未获得相应的专利许可。

A公司认为B公司的行为侵犯了其专利权,遂向法院提起诉讼,请求法院判令B公司停止侵权行为,并赔偿经济损失。

二、争议焦点1. B公司的照明产品是否构成对A公司专利权的侵犯?2. 如果构成侵权,A公司应获得多少赔偿?三、法院审理法院经审理认为:1. 关于侵权判断,根据《中华人民共和国专利法》及其实施细则的相关规定,专利侵权行为是指未经专利权人许可,实施其专利的行为。

本案中,B公司的照明产品与A公司的专利产品在技术特征上存在高度相似之处,足以使相关公众混淆,构成对A公司专利权的侵犯。

2. 关于赔偿数额,根据《中华人民共和国专利法》及其实施细则的相关规定,侵权赔偿数额应当根据专利权的类型、侵权行为的性质、侵权人的过错程度、侵权人的获利情况、专利权人的损失等因素综合确定。

本案中,A公司提供了充分的证据证明其专利产品的销售额、市场份额等,以及B公司侵权行为的严重程度。

综合考虑,法院判决B公司赔偿A公司经济损失人民币50万元。

四、判决结果法院判决B公司立即停止生产、销售侵犯A公司专利权的照明产品,并赔偿A公司经济损失人民币50万元。

B公司不服一审判决,提起上诉。

二审法院经审理认为,一审判决认定事实清楚,适用法律正确,遂驳回B公司的上诉,维持原判。

五、案例评析本案是一起典型的发明专利侵权纠纷案例,具有以下特点:1. 专利侵权判断标准明确。

发明专利法律案例分析(3篇)

发明专利法律案例分析(3篇)

第1篇一、案例背景随着我国城市化进程的加快和环保意识的提升,垃圾分类成为了一项重要的环保措施。

然而,传统的垃圾分类方式效率低下,准确率不高,难以满足日益增长的环保需求。

为了解决这一问题,某科技公司研发了一款名为“智能垃圾分类机器人”的产品,并申请了发明专利。

然而,在申请过程中,该公司的专利申请遭到了质疑,引发了法律纠纷。

本文将以此案例为切入点,分析发明专利法律相关问题。

二、案例基本情况1. 发明名称:智能垃圾分类机器人2. 发明内容:该机器人采用视觉识别技术,能够自动识别垃圾种类,并通过机械臂将垃圾分拣到对应的垃圾桶中。

3. 专利申请:某科技公司于2020年3月向国家知识产权局提交了发明专利申请,申请号为CNXXXXXXX。

4. 质疑与纠纷:在专利审查过程中,某环保科技公司认为该专利申请与其公司研发的垃圾分类设备类似,存在侵权嫌疑。

于是,该公司向国家知识产权局提出了异议,并要求撤销该专利申请。

三、案例分析1. 发明专利的构成要件发明专利的构成要件包括新颖性、创造性和实用性。

在本案中,智能垃圾分类机器人具备以下特点:(1)新颖性:该机器人采用视觉识别技术和机械臂分拣垃圾,与传统垃圾分类方式相比具有显著区别,符合新颖性要求。

(2)创造性:该机器人的设计思路独特,解决了传统垃圾分类效率低下、准确率不高的问题,具有一定的创造性。

(3)实用性:该机器人能够在实际应用中提高垃圾分类效率,降低人力成本,具有较高的实用性。

2. 专利侵权判断标准在判断专利侵权时,主要考虑以下因素:(1)相同或等同的技术方案:被控侵权产品是否与专利权利要求的技术方案相同或等同。

(2)相同或相近的技术领域:被控侵权产品是否属于专利技术方案所属的技术领域。

(3)相同或相近的技术效果:被控侵权产品是否达到与专利技术方案相同或相近的技术效果。

在本案中,环保科技公司认为其产品与智能垃圾分类机器人类似,存在侵权嫌疑。

然而,通过对比分析,可以发现:(1)技术方案不同:环保科技公司的产品主要依靠人工分拣,而智能垃圾分类机器人采用视觉识别和机械臂分拣,技术方案存在显著差异。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于共享内存池的通用数据存储方法技术领域本发明涉及计算机内存管理和数据通信领域,具体涉及一种基于共享内存池的通用数据存储方法。

背景技术随着科技日新月异地进步和计算机技术的发展,信息化已经融入到现代社会的方方面面,从科研到工业,从金融到日常生活都与计算机密切相关。

伴随着网络带宽的增加和智能设备的普及,计算机应用场景日趋丰富,实时交互业务逐渐增多,各种业务对服务器端的可靠性和处理速度提出了越来越高的要求。

无论是单机应用还是集群部署,服务器端如何保证高可用,低延迟得到了开发者的广泛关注。

因此,优化服务端软件性能,充分挖掘硬件潜能始终是后台开发者要面对的一个重要问题。

在服务端程序中,数据存储和检索是计算机应用的重要方面,也是性能优化的一个关键点。

系统默认的申请释放内存方式,应对最普遍最复杂的内存使用场景。

每次显示调用malloc/free对应着若干底层系统调用(参考:吴捷,陶志荣,一种自适应变长块内存池SVBSMP,计算机应用,2008,第28卷)。

每次内存请求通常隐含着互斥区保护,空闲链表查找,内存块匹配,空闲区分割或邻近空闲区合并,链表更新等一系列复杂的算法和操作。

因此,频繁地在堆上分配和释放内存会导致性能损失,并且会使系统中出现大量的内存碎片,降低内存的利用率(参考:冯宏华,徐莹,程远,汪磊等,C++应用程序性能优化,北京:电子工业出版社,2010)。

对于特定的应用,程序根据自身特点构建内存池是解决系统频繁分配释放内存的最直接方案。

应用程序先申请一块较大内存,然后由程序控制在此内存池空间中申请释放内存,这可以避免默认方法产生的一些额外操作,从而得到更高的时间效率和空间效率。

经典内存池mempool把内存区分成大小相同的小块(unit),将空闲块形成单链表,每次申请时从空闲链取下结点,释放时挂回到空闲链上,若当前内存区(block)空间不足,再申请新内存区(block)加入链表。

这种方式可以获得极高的时间效率,其内存分配过程多数情况下复杂度为O(1),开销最多时是在开辟新内存区(block)时初始化和加入原有block链的过程。

此种方法比较适合小的空间请求。

现在有数量庞大web服务器运行着源自Apache的APR_pool内存管理方法。

APR_pool按对象的不同生命周期划分多级内存池,支持变长内存块索引。

这种内存管理以业务处理的层次性为设计基础,不同层次的池具有不同生命周期。

对于单个对象不需要考虑申请和释放成对,通过销毁池来销毁一批对象,释放的开销相对较低,但释放后的空间直接归还到系统而不能回归到池里,因此这种结构的内管理也存一些弊端且结构复杂。

还有一些内存管理思路,如自适应变长块内存池SVBSMP(参考:吴捷,陶志荣,一种自适应变长块内存池SVBSMP,计算机应用,2008,第28卷)。

SVBSMP按内存单元递增速率不同管理了两个链表,分别管理0-512B和512B-16KB两种规则变化的内存块,针对每次请求,从目标链中找到符合要求的块返回给用户。

空闲链不足时,继续申请新内存加入管理。

当用户单次申请的空间大于512B时,分配和释放工作直接交给系统处理,回收空间也不纳入SVBSMP内存管理。

这种方式比较适合请求的数据块空间变化较大,大小不同的空间请求接近均匀分布的情况。

在应对大量尺寸集中的空间申请时碎片线性增加,内存利用率下降。

在进程间通讯技术方面,类Unix系统为数据共享和同步提供了多种方式:有父子进程间的管道(pipe)、有改进的半双工有名管道(named pipe)、有通知式的信号、有链式队列、有socket套接字和共享内存等。

它们各有特点,但综合起来,管道、信号和socket套接字方式存在或容量小或效率低或易阻塞的问题。

相比之下,共享内存方式通过将一块内存区域映射到进程虚拟地址空间中,使相关进程在用户态即可完成数据共享,因而成为效率最高并且支持大容量数据共享的进程间通讯方式。

发明内容针对堆内存池在多进程环境下数据共享乏力,传统内存池对存储的数据缺少顺序维护,可变内存池易产生外部碎片的情况。

本发明设计了一种基于共享内存池的通用数据存储方法。

本发明的技术方案为:一种基于共享内存池的通用数据存储方法,其步骤包括:1)为目标应用申请一块共享内存,根据该目标应用要存储内容类别的不同将该共享内存分为m个内存块;其中,每一个内存块的头部存储该内存块的管理者结构,内存块剩余空间分为n个内存单元,在每一内存块中构建一个共享内存池;2)在每一内存块里构建两个双向循环链表,即空闲链表和繁忙链表;其中空闲链表用于维护内存块的空闲内存单元,繁忙链表用于维护内存块的繁忙内存单元;初始化时所有内存单元属于空闲链表,繁忙链表为空,管理者结构的空闲链表索引iFree 指向当前内存块的空闲链表头节点,繁忙链表索引iBusy指向繁忙链表头节点索引;3)当该目标应用每次存储数据时,调用一次存储接口;在存储接口内根据待存储数据大小从该共享内存中进行若干次内存单元申请直至本次数据存储完成,并将本次申请到的内存单元形成单链表,将本次申请到的第一个内存单元作为首节点加入繁忙链表,后续申请到的内存单元作为子节点,挂在首节点后形成单链表,将单链表中的节点通过子索引串联起来。

进一步的,所述管理者结构记录当前内存块内存单元总数totalNum、空闲单元数freeNum、繁忙单元数busyNum、空闲链表头索引iFree、繁忙链表头索引iBusy和内存块编号信息;每一所述内存单元中具有一内存单元结构,用于记录内存单元在当前内存块中的索引值index、内存单元的前驱节点索引pre、内存单元的后继节点索引next、存储数据的key值、key值长度、数据内容、数据内容长度、写入时间、子节点个数subCnt、节点子索引subIndex以及子节点后继索引值subNextIndex;节点子索引subIndex是指节点在单链表中的索引。

进一步的,步骤3)中,每次存储数据时,先根据待存储数据大小和内存单元数据区大小计算此次存储所需内存单元数,如果所需内存单元数超过空闲单元数,则此次申请失败;若申请的内存单元数小于或等于空闲单元数,则根据内存单元的需求数量循环申请空闲单元,每次申请时直接取管理者结构空闲链表头索引iFree指向的节点,如果是存储接口第一次申请空闲单元,则将取到的节点插入到繁忙链表头索引iBusy指向的节点之前作为新的头节点;通过双向循环链表增删操作,使加入新单元的繁忙链表和摘掉iFree节点的空闲链表重新形成双向循环链表;如果存储接口不是第一次申请空闲单元,则把申请到的内存单元依次挂到单链表首节点后面;每次申请空闲单元后修改管理者结构的空闲单元数freeNum减一,繁忙单元数busyNum数量加一;然后向申请到的内存单元写入数据key值和key长度,向数据区写入数据片段,如果当前所申请的内存单元是此次申请所需的最后一个内存单元,则数据长度为剩余的数据长度,否则数据长度为内存单元数据区长度。

进一步的,存储数据时更新对应内存单元的内存单元结构的子节点个数subCnt和子节点索引subIndex,同时将内存单元的索引值记录到数组中作为前一个申请到的内存单元的subNextIndex值,直到申请完本次存储全部所需内存单元,最后申请到的内存单元的subNextIndex值为-1。

进一步的,将内存块的编号作为该内存块对应的内存池编号,各内存池共用信号量编号semid,将内存池编号作为对应内存池的信号量数组索引sem_num值。

进一步的,当进行检索数据时,根据输入的内存块编号、key值和查找顺序搜索繁忙链表,匹配到存储数据的首节点后,依靠该首节点中记录的后继节点信息找到下一个数据片段的存储位置,再把不同片段连接起来返回。

进一步的,通过一删除接口释放存内存单元,其方法为:首先定位待释放内存单元对应的目标节点,然后找到要删除数据的首节点,然后逐个删除由该首节点引导到的单链表节点;如果当前到删除的是首节点,则将该首节点从繁忙链表中取出插入到空闲链表头索引iFree后,如果当前删除的是非首节点,则将删除的节点从单链表中取出插入到空闲链表头索引iFree后,如果空闲链表头索引iFree为空,则将当前删除的节点作为新的空闲链表头索引iFree 节点;当删除的目标节点是繁忙链表头索引iBusy时,删除该目标节点后,新的繁忙链表头索引iBusy指向该目标节点的后继节点索引next。

进一步的,通过一修改接口修改内存单元中的数据,其方法为:首先定位到待修改数据所在的目标内存单元,该目标内存单元中记录着原数据占用的总内存单元数;根据新数据和节点数据区大小计算新数据所需内存单元个数,如果原数据已占用的内存单元数等于新数据所需内存单元数,则直接遍历该目标内存单元所对应目标节点引导的单链表,重写数据区;如果已占用的内存单元数大于新数据所需内存单元数,则把新数据用到的内存单元数据区重写,修改子节点个数subCnt和节点子索引subIndex,再将剩余的内存单元从繁忙链中删除;如果新数据占用的内存单元数大于原数据已占用内存单元数,则遍历该目标内存单元所对应目标节点引导的单链表i,重写数据区,当到达该单链表i的链尾时申请新内存单元直到新数据存储完成。

进一步的,为该目标应用申请所述共享内存的方法为:通过系统调用函数shmget将一段物理内存映射到该目标应用的地址空间中。

本发明运用共享内存(System V标准)和信号量原理,以双向循环链表组和单链表相结合的方式作为数据结构,实现了可以有序存储和检索的共享内存池,再以共享内存池为基础,封装一套增删改查方法,使用户可以以key-value方式对任何类型数据进行读写操作。

本系统以API形式对外提供存储和检索方法,具体包括下面步骤:1.内存划分。

初始化时通过系统调用函数shmget为目标应用申请一块足够大的共享内存(shmget系统函数会把一段物理内存映射到目标应用地址空间中;Int shmget(key_t key, size_t size, int shmflg); 不同进程调用shmget时传入相同的key值,即可在各自进程空间访问到同一块内存)。

根据应用要存储内容类别的不同把这块大的共享内存分为m个内存块(memory block)。

每一个内存块的头部取固定大小存储管理者(node manager)结构,再将当前内存块剩余空间划分为等大小的n个内存单元(memory unit),在每一内存块中构建一个共享内存池。

管理者结构记录当前内存块内存单元总数totalNum、空闲单元数freeNum,繁忙单元数busyNum,空闲链表头索引iFree,繁忙链表头索引iBusy、内存块编号等信息,如图1所示。

相关文档
最新文档