API应用

2024-05-07

API应用(精选十篇)

API应用 篇1

关键词:进程,状态,管理,线程,模块,类,权限

进程是操作系统中最基本、重要的概念。多道程序在执行时, 需要共享系统资源, 从而导致各程序在执行过程中出现相互制约的关系, 程序的执行表现出间断性的特征。这些特征都是在程序的执行过程中发生的, 是动态的过程, 而传统的程序本身是一组指令的集合, 是一个静态的概念, 无法描述程序在内存中的执行情况, 既无法从程序的字面上看出它何时执行, 何时停顿, 也无法看出它与其他执行程序的关系, 因此, 程序这个静态概念已不能如实反映程序并发执行过程的特征。为了深刻描述程序动态执行过程的性质, 人们引入“进程 (Process) ”概念。

进程的概念是上个世纪六十年代初首先由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的。在Windows 3.x操作系统下, 进程是最小运行单位。而在Windows 95/NT及其以后版本的Windows操作系统下, 进程又被细化为线程, 也就是一个进程下有多个能独立运行的更小的单位。每个进程还可以启动几个线程, 线程是最小单位, 比如每下载一个文件可以单独开一个线程。

1 进程及其相关概念

进程是操作系统进行资源分配和独立运行的基本单元 (单位) 。进程是操作系统结构的基础;是一个正在执行的程序;是计算机中正在运行的程序实例;是可以分配给处理器并由处理器执行的一个实体;是由单一顺序的执行显示, 一个当前状态和一组相关的系统资源所描述的活动单元。

在谈到进程时, 还要涉及到线程的概念。线程是可执行代码的可分派单元。这个名称来源于“执行的线索”的概念。在基于线程的多任务的环境中, 所有进程有至少一个线程, 但是它们可以具有多个任务。这意味着单个程序可以并发执行两个或者多个任务。进程是指在系统中正在运行的一个应用程序;线程则是系统分配处理器时间资源的基本单元, 或者说进程之内独立执行的一个单元。对于操作系统而言, 其调度单元是线程。一个进程至少包括一个线程, 通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程, 就是所谓基于多线程的多任务。

进程是由进程控制块、程序段、数据段3部分组成。一个进程可以包含若干线程, 线程可以帮助应用程序同时做几件事, 比如:一个线程向磁盘写入文件, 另一个则接收用户的按键操作并及时做出反应, 互相不干扰, 在程序被运行后, 系统首先要做的就是为该程序进程建立一个默认线程, 进程然后程序可以根据需要自行添加或删除相关的线程。是可并发执行的程序。在一个数据集合上的运行过程, 是系统进行资源分配和调度的一个独立单位, 也是称活动、路径或任务, 它有两方面性质:活动性、并发性。

进程与线程的区别, 进程是执行程序的实例。例如, 当运行记事本程序 (Nodepad.exe) 时, 就创建了一个用来容纳组成Notepad.exe的代码及其所需调用动态链接库的进程。每个进程均运行在其专用且受保护的地址空间内。因此, 如果同时运行记事本的两个拷贝, 该程序正在使用的数据在各自实例中是彼此独立的。在记事本的一个拷贝中将无法看到该程序的第二个实例打开的数据。实际上线程运行而进程不运行。两个进程彼此获得专用数据或内存的唯一途径只有通过一种协作策略协议来共享内存块。但是对于线程由于Windows的多任务特性使得它们之间不但独立运行, 而且彼此共享虚拟空间, 也就是共用变量, 线程能够同时操作一片内存。

简而言之, 线程就是把一个进程分为很多片, 每一片都可以是一个独立的流程。这已经明显不同于多进程了, 进程是一个拷贝的流程, 而线程只是把一条河流截成很多条小溪。它没有拷贝这些额外的开销, 但是仅仅是现存的一条河流, 就被多线程技术几乎无开销地转成很多条小流程。进程开销大, 线程开销较小, 这就是最基本的区别。

2 进程的状态

进程可以划分为3种基本状态, 即运行、阻塞和就绪, 并随一定条件而相互转化:就绪—运行, 运行—阻塞, 阻塞—就绪。

(1) 执行状态:CPU正在执行, 即进程正在占用CPU。

(2) 就绪状态:进程已经具备的执行一切条件, 正在等待分配CPU的处理时间片。

(3) 停止状态:进程不能使用CPU。

正常来说进程有这3种状态, 但是在特殊情况下, 例如:子进程与父进程之间的调度或网络因素等原因, 会多出一种状态, 这就是“僵尸进程 (Zombie) ”, 僵尸进程将会导致系统资源的浪费。僵尸进程是非常特殊的一种, 它已经放弃了几乎所有内存空间, 没有任何可执行代码, 也不能被调度, 仅仅在进程列表中保留一个位置, 记载该进程的退出状态等信息供其他进程收集, 除此之外, 僵尸进程不再占有任何内存空间。通常情况下, 如果子进程的状态为“僵尸”时, 父进程就不会自动结束, 从而其占用的系统资源就不会自动释放, 这样就降低了操作系统的性能。

3 进程与程序

进程是程序在计算机上的一次执行活动。每运行一个程序, 就启动了一个进程。显然, 程序是静态的, 进程是动态的。对应用程序来说, 进程就像一个大容器, 在应用程序被运行后, 就相当于将应用程序装进容器里了, 可以往容器里加其他东西, 例如:应用程序在运行时所需的变量数据、需要引用的.DLL文件等, 当应用程序被运行两次时, 容器里的东西并不会被倒掉, 系统会找一个新的进程容器来容纳它。

进程为应用程序的运行实例, 是应用程序的一次动态执行。它是操作系统当前运行的执行程序。在系统当前运行的执行程序里包括:系统管理计算机个体和完成各种操作所必需的程序;用户开启、执行的额外程序, 当然也包括用户不知道而自动运行的非法程序, 它们就有可能是病毒程序。

危害较大的可执行病毒同样以“进程”形式出现在系统内部, 但是一些病毒可能并不被进程列表显示, 例如:“宏病毒”, 所以及时查看并准确杀掉非法进程对于手工杀毒有起着关键性的作用。

4 进程管理

进程是由它们所运行的可执行程序实例来识别的, 在“Windows任务管理器”的“进程”选项卡中, 第一列“映象名称”列出的是可执行程序文件名称。但这里并没有进程名称列, 因为进程并不拥有独立于其所归属实例的映射名称。编程中是通过它们的“进程ID”来标识的, 因为每个进程都拥有其独一无二的标识编码。各个“进程ID”由Windows操作系统自动生成, 并可以循环使用。因此, “进程ID”将不会越编越大, 它们能够得到循环利用。例如:如果运行3个记事本拷贝, 将会看到3个称为Notepad.exe的进程, 它们就是通过“进程ID”来彼此区别的。

进程可以分为系统进程和用户进程。系统进程是用于完成操作系统的各种功能的进程, 它们就是处于运行状态下的操作系统本身, 最基本的系统进程, 也就是说, 这些进程是系统运行的基本条件, 有了这些进程, 系统就能正常运行。在“Windows任务管理器”的“进程”选项卡中, 第二列“用户名”列出的是“SYSTEM”。用户进程就是所有由用户开启、执行的额外程序的进程。在“Windows任务管理器”的“进程”选项卡中, 第二列“用户名”列出的是“LOCAL SERVICE”、“NETWORK SERVICE”、“Administrator”以及其他用户名称等等。

5 进程管理类的设计与实现

在Windows操作系统中如何管理进程, 识别隐藏进程, 甄别病毒的进程并及时中断它们, 对于系统的安全、平稳地运行具有重要意义。在这里设计一个管理进程的实用类, 该类没有使用传统的方法 (例如:Process32First、Process32Next函数等等) 来列举系统中的进程, 而是使用循环来穷举系统中的进程 (系统中的“进程ID”一般不会超过五位数) , 重点就是在这里:因为无论是隐藏的进程, 还是一般的进程, 只要Open Process函数的第三个参数是一个系统当前真实存在的“进程ID”, 那么Open Process函数就有返回值。

本例为了增强代码的可复用性和可维护性, 将所有对进程的管理和维护功能集成封装到一个通用管理类中。采用简单的办法使用Visual Basic 2008专门提供的预定义Windows API声明, 引用所需要的API函数, 在类模块中定义Get Processes类, 用于实现下述管理功能:

(1) 枚举各类进程, 包括一般进程、隐藏进程和僵尸进程。

(2) 枚举进程引用的所有模块 (比如:.exe和.dll等等) 。

(3) 中断进程等等。

5.1 公共类模块处理

定义一个进程管理类, 增加类模块Get Processes.vb, 源程序如下:

5.2 显示进程信息的表单

下面设计一个“进程管理器”, 用以说明上述进程管理类的使用方法。首先在Form1上添加一个Label控件name为Label1, 一个Text Box控件name为Text1, 一个List View控件name为List View1, 一个Context Menu Strip控件name为Context Menu Strip1, 一个Image List控件name为Image List1, 一个Tool Tip控件name为Tool Tip1, 两个Command Button控件name为Command1、Command2, 如图1所示。

增加模块代码, 源程序如下:

5.3 显示模块信息的表单

下面设计一个被调用的显示进程所引用的.exe、.DLL文件等模块信息的表单, 同样用以说明上述进程管理类的使用方法。首先在Form1上添加一个Label控件name为Label1, 一个Text Box控件name为Text1, 一个List View控件name为List View1, 一个Image List控件name为Image List1, 一个Tool Tip控件name为Tool Tip1, 两个Command Button控件name为Command1、Command2, 如图2所示。

增加模块代码, 源程序如下:

API复审总结讲话 篇2

在公司领导、各部门的精心安排及全体员工共同努力下公司顺利通过了本次API复审,在此我对公司领导及各部门对本次复审给予的大力支持表示感谢!对全体员工的辛勤努力表示感谢!同时也对审核老师吴老师几天来对我们的帮助表示感谢!

在五天的审查中,外审专家按照API标准对公司各部门进行了认真、细致、严格的审查,通过审核进一步验证了公司质量管理体系的适宜性、充分性和有效性,同时外审专家也指出了公司质量管理体系中存在的许多问题,为我们持续改进公司质量管理体系指明了方向。

各单位要通过本次复审,认真总结经验,把外审中发现的问题和质量管理体系运行中存在的问题进一步进行梳理,使我们今后的工作更科学、更合理、更具有可操作性。在复审中不可能全部发现我们存在的问题,我们自己清楚自身存在的问题,但也不排除有的单位领导还不清楚,要通过多种多样的形式和方法,使我们单位的管理水平和先进单位缩小差距。

这次API复审我们有很多经验值得去总结和借鉴,API复审工作是一项很严肃、很专业的工作,也是一次检验我们质量管理体系是否有效运行的最好方法。

API应用 篇3

关键词:学位论文 Open API開发 应用

中图分类号: G306 文献标识码: A 文章编号: 1003-6938(2013)04-0069-05

目前,国内大学图书馆学位论文数据库建设都已初具规模,以华东师范大学图书馆(以下简称:华东师大馆)学位论文数据库为例,目前已经收录了所在院校恢复高考以来的全部博硕士学位论文。其明显的持续性特点,已经成为大学图书馆特色资源的重要组成部分。然而,目前国内大学图书馆的学位论文数据库仅仅作为学术资源提供本校读者检索和全文下载服务,其主要原因在于学位论文管理系统平台服务模式简单、系统封闭且只注重检索功能所致。探索学位论文拓展服务的新途径,对推进图书馆利用学术资源开展深层次服务、提升大学学术资源全方位服务能力,使其在服务社会、支持教学科研过程以及促进产学研合作中发挥积极作用,具有非常重要的现实意义。

针对当前大学图书馆特色资源服务模式简单、系统封闭、单一学术型功能等特点,华东师大馆以学位论文数据库为例,在探索其深层次拓展服务模式方面做了一些尝试。通过开发基于数据库平台的元数据Open API,实现了学位论文的拓展应用。并结合当前较为主流的通用门户网站开发环境,开发了标准的应用端Open API调用程序框架,为学位论文元数据嵌入社会网络环境及用户门户网站的数据融合提供参考和借鉴方法。

1 学位论文元数据Open API开发应用需求分析

1.1 国内外应用现状

当前,国内的学位论文主要由数据库商、国家法定学位论文收藏机构、公益性学位论文共建单位以及各高等学校和科研院所等提供相对集中的检索和分级分布联合保障相结合的信息共享服务。但在利用学位论文元数据拓展其服务范围、开展增值服务等方面还有进一步拓展的空间。华东师大馆在学位论文数据库回溯建库工作中,对如何利用学位论文元数据开展深层服务进行了有针对性的国内外应用调研。美国普渡(Purdue)大学在开展学位论文为社会服务方面,推出了一个Web服务[1],其涵盖全州所有大学研究者目录以及一个可以在搜索结果页面显示每一位研究者指导的学位论文信息,为研究者和商业人士提供了一个获取学者以及其指导学位论文元数据的检索平台,在推进研究成果商业化方面进行了有益的尝试。平台后端的元数据信息,即通过全州各大学学位论文数据库系统元数据Open API自动获取,这种数据获取方式较好地解决了自动获取多来源异构或同构数据以及数据同步更新一致性问题。在国内,中国科学院国家科学图书馆建立了基于馆藏特色资源元数据Open API的集成服务支撑平台[2-3],用以支持面向用户环境的嵌入式服务。上述国内外利用学术资源开展的拓展服务为探索学位论文元数据Open API开发与应用提供了可借鉴的实例。

1.2 需求分析

随着越来越多学术资源/内容的出现,基于学术资源支持教学科研的属性,图书馆一直以来都在致力于基于学术资源元数据进行分类整合和发现工具的研究,以提高在浩瀚的学术资源中为读者快速提供所需资源的能力,而学术资源元数据的其它属性往往被忽略。以学位论文为例,它作为大学的特有学术资源,除了拥有支持学术研究之外,因其特有的原创、研究生培养以及与教学关系紧密等属性,在社会服务、教学水平评估以及辅助决策支持等方面可以发挥其独特的作用。

在开发学位论文元数据Open API的应用调研过程中,重点调研了与学位论文有关的研究生院、学校信息化办公室、有硕博士授权的部分院系以及相关管理部门。主要的需求表现在以下几方面:

(1)研究生院的需求。在为社会考生提供招生信息方面,研究生院的老师们在多年的招生实践中体会到,社会考生在报考研究生时,首选各大学研究生院门户网站作为信息源,考生希望从中获得大学招生人数和招生专业信息的同时,更希望找到符合自己研究兴趣的指导教师详细信息,每年的招生季都会有很多类似的咨询。因此,研究生院希望通过将学位论文元数据嵌入到招生信息的相关查询中,社会考生可以在查询博硕士招生信息的同时,获得教师历年培养研究生学位论文信息。

(2)信息化办公室的需求。华东师范大学门户网站由学校信息化办公室负责建设。大学门户网站及院系所门户网站作为宣传大学教学科研成果的社会网络窗口,一般都设有类似“教师名录”或“教师简介”等栏目,栏目主要用于展示教师的教学、科研以及社会兼职等个人信息,通常这些信息需要教师个人维护。往往由于各种原因,类似栏目的动态信息更新不及时,甚至空白,没有起到栏目设计之初的作用。因此,信息化办公室及院系的老师都希望动态将教师指导研究生的学位论文信息嵌入到“教师名录”或“教师简介”页面中涉及教学成果信息栏目。

(3)学校职能部门的需求。职能部门的需求表现在利用学位论文元数据信息辅助教学水平评估及反映学科发展变化方面。希望利用学位论文特有的原创、研究生培养以及与教学关系紧密等属性,为学科发展、评估教师教学能力和学位论文质量等方面提供科学的统计数据。

1.3 技术思路

Web Service、SOA等技术架构为解决异构环境中的数据传递、应用互操作提供了充分的支持。针对学位论文数据库系统本身的特点,采用WCF平台进行面向应用的Open API的开发,提供学位论文信息服务Web Service,让不同系统的第三方应用根据需要调用学位论文元数据Open API,实现同构或异构平台之间的数据共享和互操作。同时采用轻量级的Web Widget技术,将小巧的客户端学位论文信息服务调用代码嵌入到用户浏览的网页中,实现学位论文信息的直接推送。通过面向服务端与面向客户端这两种互补的技术方式,来满足学位论文信息服务多样化的需求。

利用Open API拓展学位论文的服务范围和应用领域,其核心技术之一是数据通过网络进行传输。因此,提高数据在传输和应用过程的安全、稳定性非常重要。同时,Open API的应用推广有其特殊性,它与一般的Web应用不同。因此,在学术资源Open API开发过程中,還需要关注以下问题:

(1)明确应用基础上的针对性开发原则。Open API与Web服务不同,它本身并不能实现任何一个完整的服务,需要Open API提供者和应用平台两方面协作完成。因此,有明确的需求是快速实现Open API应用的必要前提。

(2)遵从调用方式简单的开发原则。Open API开发的最终目的是为应用服务,要完成一个Open API的应用部署,应用平台需要辅之以必要的编码才能实现Open API的嵌入。因此,Open API的调用方式方便与否决定应用部署的成败。

(3)注重数据传输过程的安全控制原则。与互联网资源Open API不同,学术资源Open API是针对学术资源而开发的,其后台数据的安全性要求较高。因此,防止非法应用恶意调用的控制机制是保证数据源安全的重要环节。WCF安全控制框架下的X509证书以及在系统部署中兼顾防火墙和入侵防御系统等技术在Open API开发和调用过程中非常重要。

2 技术实现

在基于上述学位论文元数据Open API开发应用的需求分析基础上,在程序开发过程中采用通用框架,以屏蔽学位论文数据库与应用端平台的异构性、开发语言的多样性等问题。同时,最大化降低所开发Open API的调用复杂度,以利于Open API的推广使用。基于这样的开发理念,开发了两种不同方式的API——Web Service API和Widget API,并提供相应API调用说明和调用应用案例。应用端可根据调用说明,套用案例快速实现学位论文Open API的调用,达到应用的快速推广。

2.1 Web Service API开发

Web Service、WCF平台等技术为解决异构环境中的应用相互操作提供了充分的支持。Web Service技术实现了不同的系统之间用“软件-软件对话”的方式相互调用,软件应用之间可以基于Web无缝集成。WCF作为基于面向服务体系结构标准的分布式应用程序开发模型,具有很好的互操作、安全可信赖性以及通用性,并可以以一系列协议的定义、实现、发布为流程和框架,通过服务实现与服务内容的分离,轻松为学位论文数据库构建松耦合的分布式Web Service API。针对学位论文数据库系统平台特点,在.NET环境下,以WCF为技术支撑,采用WSDL描述语言及SOAP协议,以面向服务的方式来创建学位论文Web Service API:

(1)以将为应用端开放的服务为依据进行服务协定定义,如以“专业代码”为参数,返回元数据集:

DataSet GetDataByMajor(string majorCode);

(2)实现服务协定

public DataSet GetDataByMajor(string majorCode)

{…// 详细实现,将结果保存在数组中返回}

(3)搭建宿主,发布服务

公开WCF服务,以IIS+.NET Frameword 4.0环境为例,以IIS作为宿主承载服务。

WCF的学位论文 Web Service API的通信机制是基于SOAP的Web服务,因此所开发的API可以与运行在不同环境中的应用进行通信。开发的Web Service API将学位论文获取服务封装成一个URL后发布,用所开发的Web Service取代用户对学位论文数据库的直接读取服务。应用端从服务器端获取数据时处于一个相对透明的状态,只需要根据API调用说明文档了解API对外提供的函数及参数说明,在其Web服务中引用所发布的URL后,系统会生成访问数据库的类和对象,并将其实例化,即可像使用本地的函数一样来实现调用Web Services API提供的数据资源,无需关心数据库系统内部结构,从而实现异构平台之间的数据传递和互操作 (见图1) 。

由于学位论文的特殊性,在接口开发时需要考虑推送数据的安全性,以确保所开发的Web Service API被授权的第三方调用。在安全控制机制上,采用X509证书机制,经过X509证书加密后的输入及获取到的输出内容,均为被加密的密文,即使是在公网中,也无法看到明文,确保了数据的传输安全;应用端和服务器端证书对匹配,又确保了接口的调用安全。

2.2 Widget API开发

借鉴Web Widget的开发模式,通过开发学位论文Widget API,将学位论文平台和第三方应用平台通过所开发的API联系起来,打破了网站间的屏蔽,使网站不再只是通过超链接的简单连接,便可以实现在第三方网站中混搭学位论文信息。在软件部署上兼顾Web应用防火墙和入侵防御系统等方式来增强数据的安全控制,确保数据传输的可靠性、安全性。学位论文Widget API主要分服务端、视图层、应用端三个框架。其中,服务端基于ASP.NET实现从学位论文数据库中获取信息;视图层定义学位论文展示形式,即相应的.js和.css文件;应用端传递相关参数并发起学位论文Widget API的调用命令。采用jQuery开发技术,将应用端的用户查询内容以Get的方法发送到学位论文数据库服务器端,学位论文数据库服务器以JSON格式返回查询结果到应用端,应用端通过嵌入视图层的相关代码,实现返回的学位论文信息在本地网页中的重现和融合(见图2)。

应用端调用Widget API时,只需要在其门户网站相应检索位置嵌入一段JavaScript脚本语言代码,并参考API调用文档中提供的查询参数说明,便可以实现从服务层获取数据并按照视图层预先设计好的结构在本地网站展示,完成调用此类型的Open API功能。

//通过jQuery技术将应用端查询返回到服务器端,调用服务器端Widget.aps程序查询相关学位论文信息,Widget.aps会将查询结果以数组返回。

$.getJSON("http://IP地址/Widget.asp?callback=?&type="+type+ " &keyword="+keyword+"&page="+page,function(data){disp(page, data);});}

disp(page, data){…//对获取到的学位论文信息进行重组及重现};

视图层的数据重现方式可以是应用端自主开发,华东师大馆为了学位论文API的应用推广,还为应用端提供了视图层的数据重现方式参考案例,应用端可以直接将相关代码嵌入到自己网站中,若应用端需要特定的展示方式,则需要应用端做简单的本地化修改便可以使用。

3 华东师范大学图书馆的实践

3.1 研究生院门户网站应用

在华东师范大学研究生院的研究生门户网站,将学位论文元数据嵌入到博硕士招生信息查询栏目,社会考生可以通过 “专业名称”等途径查询历年研究生学位论文元数据(以“专业名称”为“逻辑学”的查询结果见图3)。

长期以来,学位论文只是作为学术资源提供本校读者的检索和下载服务,其学术资源以外的属性没有得到充分发挥。通过学位论文元数据Open API嵌入研究生院门户网站的应用,社会考生可以通过多途径了解学校研究生培养方向以及教师指导学位论文的数量、选题、研究方向、摘要等信息,对社会考生报考学校和选择符合自己研究兴趣的指导教师提供参考。同时发挥了学位论文作为学术资源的社会服务功能,使学术资源在社会层面得到共享。这一应用得到了研究生院的充分肯定,每年有专项经费作为应用的支持。

3.2 学校门户网站应用

学位论文元数据Open API在学校教师主页的嵌入式应用,拓展了学位论文数据库服务范围,实现教师指导学位论文信息的动态发布。以软件学院某教师为例,其个人简介界面嵌入“指导学位论文信息”链接,点击即可获取其历年指导研究生学位论文信息(见图4)。

这一实践较好地实现了利用第三方平台——学校门户网站展示本校教师教学学术成果,实现学位论文元数据的针对性开放。并通过多途径、多渠道扩大教师学术影响力和社会知名度,同时,院系门户网站可以通过教师工号及姓名调用学校“教师名录”栏目信息,在院系门户网站展示本院系教师指导学位论文的相关信息,从学科或专业角度展示学校教学研究成果,增强行业竞争力。这一应用对扩大教师学术影响力、促进教学研究成果转化生产力以及产学研结合起到积极的促进作用。

3.3 学校职能部门应用

(1)通过Open API获取各学科或子学科的批量数据,加之年限分面限制,从历年学位论文数量变化角度反映各学科领域研究趋势。通过结合Google图形接口,从Open API返回查询结果的XML格式数据直接提交到Google API,即可产生图形化分析结果。反映了“电子科学与技术”和“数学”专业学位论文数量的变化关系图(见图5)。

(2)通过Open API获取各院系的批量数据,辅以学院、专业以及年代参数限制获取相关学位论文元数据,并通过中国优秀硕士学位论文全文数据库(CMFD),运用屏幕抓取技术,可以直接获取学位论文被引数据,从中产生学位论文被引分析报告。通过教师指导学位论文被引数量这一侧面,为学校从学位论文被引角度评价教师指导学位论文质量提供了准确的参考数据(以教育科学学院2010年毕业生高被引学位论文为例的被引分析见表1。其中,学生、教师名字以编码表示;统计时间:2013-4-29)。

(3)通过Open API获取学位论文元数据,结合指导教师和学生的关联关系,从教师出发,可以得到学生以及学生的学生等关联关系,形成上有教师下有学生,学生下面还有学生的学者关系网,从中可以分析从一个教师出发所形成的教学科研人员关系网(见图6)。

学位论文作为学校教学科研成果的重要内容之一,从某一方面可以反映学校的教学科研水平。根据职能部门的需求,通过学位论文元数据Open API获取特定需求数据,为学校职能部门提供第一手教师以及研究生的人员管理和统计分析数据,充分发挥了学位论文在支持管理决策方面的积极作用,应用得到了学校人事处、师资办、学科办以及研究生院的充分肯定。

4 结语

学位论文是我国拥有自主知识产权的重要信息资源和知识宝藏。其有效的开发和合理利用,不仅是大学和科研机构高层次人才培养的需要,還关系到学位论文原创性成果的社会化利用和论文创新成果的转移,是知识经济时代国家创新发展的需要[4-5]。华东师大馆在利用学位论文元数据Open API开展拓展服务方面做了一些有益的尝试和探索,希望借鉴国内外成熟的混搭应用实例,把具有稳定、合法、可靠的学位论文数据库作为数据源,在原有学位论文仅仅作为学术资源提供检索服务基础上,推进学位论文深层次服务的开展,以改变学位论文数据库仅仅作为学术资源的单一属性。充分挖掘学术资源的多重属性,有效提高了学术资源的服务能力。

学位论文Open API的开发与应用不仅为大学图书馆探索利用学术资源开展深层次服务提供了参考模式。同时,图书馆作为数据库建设方,随着应用的不断拓展,带来更多校内外用户的持续关注,也促进了学位论文数据库的不断优化,提高了数据库的完整性和数据的准确性。

参考文献:

[1]Nicole C.Engard. Librayr Mashups:Exploring New Ways to Deliver Library Data[M].Information Today,Inc.,2009:285-287.

[2]李峰等.跨界数据融汇模型研究[J].现代图书情报技术,2010,(11):24-28.

[3]李春旺.图书馆集成融汇服务研究[J].现代图书情报技术,2009,(12):1-6.

[4]贺德方等.中国学位论文收集与服务系统的构建[J].情报学报,2009,(8):634-640.

[5]赵杨等.国内外学位论文共享服务发展趋势与对策分析[J].情报资料工作2008,(4):68-72.

API应用 篇4

本文利用腾讯地图的Java Script API对Joomla的插件进行二次开发, 以江西安福中学网站为例, 实现了在Joomla内容管理系统中嵌入腾讯地图, 并为日后在Joomla开发的系统中嵌入本地化地图或本地特色化服务提供了参考。Joomla是一个国内外知名、并且获得过十多次奖项的开源内容管理系统[1], 国内外对它的功能扩展也有近9000个, 至今已推出到了3.4版本, 在稳定性和安全性方便也有了很大的提升。Joomla采用的是目前流行的B/S架构, 系统核心采用PHP+MyS QL的方式[2]。

市面上推出免费地图服务的主要有谷歌地图、百度地图、高德地图、搜狗地图、腾讯地图等。由于谷歌服务未进入中国, 导致谷歌地图在国内的使用体验较差, 并且未在国内提供相应的街景服务。高德地图和搜狗地图在国内有较好的使用体验, 但在一些中小城市未提供卫星地图和街景服务。腾讯地图作为国内较大的互联网公司, 对本地化以及一些中小型城市的支持较好, 并且提供了相应的街景和卫星服务。腾讯地图提供了开放式的API, 支持多种接入方式, 如web端的Java Script、手机APP端的Android SDK、静态图API等[3]。由于Joomla是B/S架构[2], 本文采用腾讯地图的JavaScript API接入Joomla。

1 技术路线

Joomla提供了优秀的可扩展性, 其扩展性包括模块扩展、插件扩展、模版扩展和语言扩展[4]。模版的可扩展有利于网站的建设, 目前全球开发者已经开发出数万个模版。模块具有简洁、轻量的扩展特性。插件可扩展系统内核事件和用户自定义事件的响应[5]。本文利用插件扩展来实现对用户查询地图的响应, 实现了在系统自定义HTML中引用标签即能调用腾讯地图, 标签中添加坐标数据即能在地图上定位相应的地址。

Joomla的插件服从Observer模式。利用继承自基类JObserver的类JPlugin提供的方法, 可将用户自定义插件注册为核心事件或用户自定义事件的响应程序。当事件被触发时, 继承自基类JObservable的类JEvent Dispatcher将调用注册到当前事件的所有插件[6]。

2 地图显示设计

(1) 地图类型。腾讯地图提供了多种类型的地图, 如卫星、地形、街景等。基于江西安福中学网站主要以浏览为主的主要特性, 本文采用普通街道地图和卫星地图。

(2) 地图控件。腾讯地图主要控件有地图类型控件、比例尺控件、缩放控件等。本文采取多种控件以方便网友更好的了解江西安福中学的地理位置及学校周围的情况。

3 关键技术

开发Joomla插件需要创建XML文件和PHP文件[7]。插件的详细信息和参数都存放在XML文件中。XML文件也是在系统中插件的标记。本文的XML文件对腾讯地图插件进行了简单的描述, 并在XML中告知了该插件PHP文件的文件名, XML文件中部分代码如下:

PHP文件定义的该插件的功能实现方法, 是插件的核心。其中部分代码如下:

其中腾讯地图API写在script标签内, 通过语句获取自定义HTML页面中所填写的经纬度和地图类型等数据。自定义HTML如下:

其中, spmap为地图的标签;lat和lng为经纬度;zoom为初始化地图缩放级别;maptype为地图类型。

其结果如图一和图二所示。图一为初始化时maptype所设置的地图类型, 图二为通过地图控件所选定的地图类型, 在浏览过程中可任意切换。

4 结束语

本文通过研究Joomla插件特性, 结合腾讯地图API, 开发出在Joomla系统中运行腾讯地图插件。在网站建设中实现了通过标签调用插件, 实现了网页中嵌入腾讯地图。本文为Joomla系统中集成第三方地图提供了技术依据。

参考文献

[1]于秀金, 张皓斐.基于Joomla!系统开发网站的设计与实现[J].电脑开发与应用, 2010, 23 (11) :50-52, 55.

[2]李效伟, 李志慧, 王赛, 等.基于Joomla的精品课程网站建设[J].微型机与应用, 2016, 35 (05) :91-93.

[3]http://lbs.qq.com.2016-04-20.

[4]陈玉.Joomla系统中模块运行原理研究[J].软件工程师, 2014, (12) :28-29.

[5]崔海龙, 季萌, 汤鹏杰, 等.基于Joomla!的井冈山虚拟旅游管理平台设计[J].井冈山大学学报 (自然科学版) , 2015, 36 (01) :14-19.

[6]刘贵欣, 李心宇, 王欣然.基于Joomla的信息系统设计与实现[J].信息系统工程, 2015, (07) :131, 133.

淘宝客API申请图文教程 篇5

不知道如何申请淘宝开发平台的App Key?下面由淘客家园http://king114.com 职业淘客团队为您做详细图文讲解!申请其实比较简单,不过为了新手能够容易理解,和遇到常见问题能够很容易的解决,所以这里我就做了的详细说明,让大家一看就明白

先简明说一下什么是淘宝开发平台TOP API的概念!

Top Api 是由淘宝开发平台所推出的一个应用,一般专业淘宝客都有申请,通过Api接口可直接调取淘宝网数据库中的千万计数据,当然,我们是淘宝客,淘客程序只调用了有佣金的商品数据!

App Key 简单的说是Api接口的钥匙,通过这个钥匙才能打开Api的大门,从而获取到我们要推广的产品数据。

App Secret 是和 App Key 配套使用的。大概可以简单理解为是App Key的加密验证。申请过程中主要的状态有三种: 沙箱环境开发:这里主要是给开发人员使用的环境,直接忽略可以获取商品 小二审核中:这个是指淘宝管理人员正在审核你的网站内容可以获取商品 注意:App Key是配合淘宝网ID使用的,也就是说,你用哪个淘宝网ID申请的开发者 淘客家园用户后台管理系统中心-修改我的资料-就正确填写那个淘宝账号ID和对应的阿里妈妈PID!否则无法获取商品数据!基本条件:

1:淘客站点!没有站点的立即免费申请http://king114.com/Register.asp 4:淘客站点LOGO尽量不要使用“淘宝”,“淘宝网”字样!LOGO自己设计或者网上下载一个都可以。大小80X80像素,50K 步骤简要: 1:登陆 2:创建新应用 3:提交审核 4:审核成功上线运行

下面详细图文讲一下申请流程以及申请过程中需要注意的地方!

申请App key前,请先实名淘宝网请成为开发者创建应用。

或者登陆淘宝网后在浏览器输入http://my.open.taobao.com/

ID,然后访问 http://my.open.taobao.com/ 申

步骤一:使用淘宝大账号登陆,并申请成为开发者!

然后在应用管理里 直接创建新应用!

1、填写应用名称,如果提示有了就换一个

2、选择淘宝客网站

3、选择我同意(其他不要选择)

如下图

步骤三:设置图片和你的淘宝客网址

设置好后选择类目:淘宝客网站

这时候可以申请上线

也可以进入正式测试环境

如下图:

步骤四:App Key和App Secret已经发到你的邮箱,如果是国外邮箱收取不到,请到垃圾箱或者换个邮箱试试!

记住你的App Key

下面的App Secret 直接点击查看即可 登陆淘客家园,在管理中心修改我的资料里,填写这2个参数

提交保存资料后

开始您千万计商品的推广吧!等待审核中

审核过程也可以调用数据,一般1-5天左右通过,淘宝开发平台会给您发电子邮件,恭喜你

申请通过!如果您是淘客家园VIP会员,系统还开通了API自动更新你网站首页的功能,几千万的商品关键词在你网站随机显示,并连接到对应的API系统的产品排行榜,海量商品直接推广。

感谢你使用淘客家园专业的淘宝客推广系统 官方地址http://king114.com/

现在注册就拥有强大的淘宝客独立网站系统 如http://vip.king114.com/ 支持独立域名绑定

淘宝客高级教练群:【114134057】

官方客服QQ:【185075523】

API应用 篇6

提供广告API吸引大客户

Twitter在向大广告客户献殷勤,很快将允许大广告客户以自动方式直接在其服务上发布大量广告。

Twitter将于今年第四季度提供广告API服务,帮助广告客户和企业发布大量的广告。在开始阶段,这项服务仅面向少数的几个合作伙伴,以测试其效果。

大型在线营销代理公司大多使用谷歌、facebook这类热门网站发布大量广告。通过向这类大型公司敞开大门,广告API服务对于Twitter尚未成熟的广告业务是一个飞跃性的进步,将有助于提升Twitter 的广告业务。

专业人士称,“这将加大广告商参与到该平台的机会,目前广告商要在Twitter上发布广告,需要和销售人员取得联系。” 他希望继续保持匿名,因为新服务的详细资料是保密的。

此举也将可能给Twitter带来消费反弹的风险。牙齿美白、减肥产品等这种极端无聊的广告轰炸式的投放,容易造成用户流失。目前,Twitter对广告已经采取循序渐进的方法,以防止用户反感。

Twitter从成立到现在,已经经历了五年的风雨。Twitter正在积极采取措施增加营收。Twitter估值在迅速上涨,外界对Twitter像LinkedIn和Groupon那样上市的预期越来越大。

目前Twitter有超过2亿的用户,但在广告方面落后于Facebook,预计Facebook今年的广告收入将达40亿美元。《纽约时报》报道称,Twitter正计划以80亿美元的估值募资4亿美元。因此,Twitter急需寻找创收的方法。

Twitter的广告新举措目前还有很多细节未确定。消息人士表示,最初,Twitter的广告API将允许广告客户以自动方式发布两种格式的广告,即Promoted Tweets(微博推广)和Promoted Account(用户推广)。

Promoted Tweets允许广告客户在用户发布的140字以内的Twitter消息中插入广告,Promoted Account则允许广告客户向Twitter用户推介自己的帐户。

Twitter是最受欢迎的互联网社交网站公司之一,它拥有超过200多万的注册用户。目前,它在广告投放力度上,仍然落后于Facebook那些规模更大的竞争对手。Facebook预计今年将产生4亿美元的广告收入。

广告界的新生儿

Twitter从2010年4月才开始提供广告服务,目前拥有大约600家广告商。据eMarketer预测,2011年Twitter的广告收入将达到1.5亿美元。

Twitter发言人马特•格拉夫斯(Matt Graves)在一封电子邮件中表示,“我们总是在考虑帮助广告客户提高广告投资回报的方法。”格拉夫斯没有就Twitter的广告API发表评论。

Twitter即将推出的广告API还可以用来开发自主广告服务。Twitter称计划于今年年底引入此服务。

Facebook和谷歌网站提供广告自助服务功能,方便小企业购买广告。广告客户只需在线填写表格就可以设置广告参数,例如在广告中显示的文字、愿意支付的价格。

Groupon、Zynga这类严重依赖网络市场的公司,他们经常需要大宗地进行广告购买。一些代表多个广告主的广告机构,他们也经常运作大型的网络广告,可能涉及成千上万个不同的广告。所以,对于这类需要大量购买广告的大广告客户来说,这类系统是不适合的。

API标准化的技术装置,使得不同的软件程序间的交流和互动成为了一种可能。提供API接口将有助于吸引大的广告营销机构,这些广告机构通常需要大量发布广告,而方式就是通过开发特定工具,直接和网站广告API相连。目前,已经有许多广告公司采用了专门的工具,可以直接连接到Facebook和谷歌广告的API。

API应用 篇7

油田用户对网络性能和带宽的要求越来越高, 大量应用数据在网络中传输, 网络流量成为影响网络性能因素中最重要的因素之一。作为网络管理人员, 有责任及时对网络设备、应用系统进行监控维护, 根据网络运行的实时状况, 及时调整网络运行参数, 发现网络运行隐患, 并迅速查找出错原因, 排除网络故障, 保证网络安全、平稳运行。通过多年积累和研究, 选用业界久负盛名的基于PHP, My SQL, SNMP及RRDTool开发的网络流量监测图形分析工具Cacti作为开发核心, 来实现对服务器和网络的监控。

二、技术方案

2.1实现目标。管理界面采用B/S结构;采用非代理式监测, 无需在被监控对象上安装任何代理软件, 对原有系统不产生任何影响;将监控设备进行分组树型管理;用户权限灵活设置, 方便各级管理人员。开放式API, 能进行功能扩展、二次开发。

2.2研究内容。

1) 网络系统性能监测。进行网络性能分析, 实现网络运行质量的量化管理;进行网络性能数据的汇总和管理, 合理配置网络资源, 提高资源利用率。

2) 关键业务流程监测。针对油田各种信息系统提供的服务, 实现关键业务的监测和管理, 保障业务的可用性、高效性和畅通性。通过对业务系统的监测, 实现玉门油田各项信息业务质量的分析和保障, 改善网络服务质量, 提高竞争能力。

2.3实现步骤。1) 通过接入控制器内置SNMP代理来实现对服务器、网络设备进行管理。2) 利用MTRG绘图软件, 实时绘制电信、联通和各汇接交换机上联端口流量, 每五分钟采样一次, 将流量负载以包含PNG图

◆王虎智袁庆懿李巧玲

形格式的HTML文档方式显示给用户, 以非常直观地形式显示流量负载。3) 利用SNMP和MIB技术, 对网络核心、汇接和接入设备运行参数进行远程取样, 采用图形显示方式, 实现设备运行状态的监控。

2.4实施效果。通过项目的研究和实施, 油田网络监测系统完成和实现如下功能:1) 以Web形式, 用友好图形界面呈现各类数据。登录界面用于控制分级用户权限。2) 实现油田信息网电信、联通互联网出口流量的自动监控 (五分钟采样一次) , 为网络管理人员提供优化设备运行参数和带宽扩容的依据, 保证油田信息网快速运行。3) 实现油田信息网网络核心和汇接交换机性能的自动巡视, 为网络管理人员提供维护依据, 及时处理网络运行隐患, 保证网络运行平稳。4) 实现油田财务、门户等各专业应用服务器CPU、MEM和C盘空闲空间的自动监控, 为系统管理人员提供维护依据, 及时处理系统运行隐患, 保证系统运行平稳。5) 实现负载流量自动变化的网络拓扑图, 根据实际物理连接和各设备布局展现油田网络拓扑结构。6) 实现用主机列表、图形方式显示主机状态和可用性监控。7) 实现图形数结构, 按5分钟、一小时、一天、一月、一年等间隔, 直观排列和显示被监控对象cpu、mem等状态信息。

三、总结

API应用 篇8

实时数据采集系统中, 实时时钟扮演着重要的地位。但是, 实时时钟由于自身、环境等因素, 长时间走时会带来累积误差, 在无人值守的户外, 因为不能对其进行校准而经常带来设备故障。

GPS不仅可以提供地理信息应用于导航、防盗等, 还可提供精准的时间信息, 可应用于授时, 但是GPS可能会在信号不佳的情况下, 不能稳定提供时间信息, SD242API结合GPS精准授时和实时时钟提供稳定的时间这一特性, 通过引入GPS信息对实时时钟进行校准, 来提供精确的时间, 即使在没有GPS的情况, 也能提供稳定的时间。

以下通过具体介绍来了解SD2421在实时数据采集系统中的应用。

2 概述

SD2421API是一种具有内置GPS校时电路、晶振、IIC串行接口的高精度实时时钟芯片,

S D 2 4 2 1 A P I芯片在无G P S校时的情况下, 可保证时钟精度为±5ppm (在25±1℃下) , 即年误差小于2.5分钟;SD2421API芯片在有GPS校时的情况下, 可保证时钟精度为±50ms;且没有累计误差。

3 主要性能特点

●超高精度:G P S校时精度<50ms, 且没有累计误差。

●IIC接口通信方式加握手信号BUSY通信方式, 最高速度400KHz。

●年、月、日、星期、时、分、秒的BCD码输入、输出, 并可以通过独立的地址访问个时间寄存器。

●闰年自动调整功能 (从2000年~2099年) 。

●可选择12/24小时。

●可设定并自动重置的单路报警中断功能 (时间范围最长设至100年) , 年、月、日、星期、时、分、秒报警共有96种组合方式, 并有单事件报警和周期性报警两种中断输出模式。

●周期性频率中断输出:从32768Hz~1/16Hz……1秒共十五种方波脉冲。

●自动重置的8位倒计时定时器, 可选从4种时钟源 (4096HZ、64HZ、1HZ、1/60HZ) 。

●内置时钟精度数字调整功能, 可通过程序来调整走时的快慢。用户采用外置的温度传感器, 设定适应温度变化的调整值, 可实现在宽温范围内高精度的计时功能。

●43Bytes通用SRAM寄存器可用于存储用户的一般数据。

4 硬件设计

SD2421API模块内部集成了电源管理, 振荡电路, 充电电路, 实时时钟, GPS校时电路, 因此外围电路极为简单, 只需一个MCU和一根天线就可以实现相应功能。采用ATMEL公司的AT89S52单片机作为主控CPU, 负责对SD2421进行控制, SD2421API采用的是IIC通信, 和一条忙线BUSY、一条GPS启动线GPS_EN, 由于SDA、SCL模块内部已经上拉, 单片机可以直接与模块连接, 外接天线采用有源天线, 对于天线指标要求:

阻抗:50ohm

增益:20d B-28d B

驻波比:≤1.5

频率范围: (1575.42±1.023) MHz

电压:3V-5V

在PCB设计时, 应尽量缩短天线到模块输入脚的走线长度, 天线到模块的输入应采用50ohm阻抗的微带线。

应用电路如图1所示。

5 软件设计

对GPS时间进行校准都自动在模块内部完成, 因此用户软件相对简单, 在不启动校时时, 只需使用数据线SDA和时钟线SCL和BUSY线进行读写操作, 在每次对模块进行读写操作时, 需要对BUSY线进行判断;当BUSY=1为高即为闲时, 拉低BUSY置为忙, 可以对模块进行读写操作;当BUSY=0即为忙时, 等待BUSY=1。

当需要启动GPS进行时间校准时, 在GPS_EN产生一个低脉冲, 启动GPS, 在启动GPS前, 需先设置校时状态寄存器14H, 校时状态寄存器说明如表1所示。

6 14H寄存器说明

14H的低2位用来指示GPS校时的状态, 有3种状态:正在校时, 校时成功, 校时失败, 如表2所示。

TZ0-TZ3位:时区数据位, TZ_FLG, 东西时区标志位:TZ_FLG=0, 东时区;TZ_FLG=1, 西时区;如80H表示东八区, A8H表示西十区, 合法时区为东十二区-西十二区, 非法时区统一纠正为东八区, 必须在启动GPS校时前设置好此寄存器位。在启动之前先设置好校时时区, 如北京时间写入80H, 同时清零S1, S2, 方便在启动GPS校时后对模块校时状态进行查询, 当查询到14H寄存器的低2为为3H时, 则校时完成, 同时内部GPS校时功能关闭。

如图2为软件流程图。

校时完成之后, 时间误差<50ms。

7 结论

SD2421API在实时数据采集系统上面的应用, 解决了普通实时时钟走时带来的累计误差, 不仅如此, SD2421API可以应用在很多对时间要求高的场所如电力系统, 移动基站等。, 是一种实现高精度走时的低成本、稳定可靠的解决方案。

摘要:针对实时数据采集系统中使用普通的实时时钟会因自身、环境等因素长时间走时带来的累积误差而影响数据采集的实时性, 使用高精度GPS实时时钟SD2421API是一个成本、稳定可靠的解决方案, SD2421API模块内部集成了电源管理, 振荡电路, 充电电路, 实时时钟, GPS校时电路, 校时内部自动完成, 校时完成误差<50ms。

关键词:高精度,GPS校时,实时时钟

参考文献

[1]SD2421API.datasheet.

[2]何立民.单片机应用系统设计[M].北京:北京航空航天大学出版社

[3]Kaplan E D, (邱致和, 王万义, 译) .GPS原理与应用[M].北京:电子工业出版社

[4]沙占友, 王彦朋, 孟志永.单片机外围电路设计[M].北京:电子工业出版社

API应用 篇9

API Gateway(API GW/API网关),顾名思义,是出现在系统边界上的一个面向API的、串行集中式的强管控服务,这里的边界是企业IT系统的边界。在微服务概念的流行之前,API GW的实体就已经诞生了,这时的主要应用场景是Open API,也就是开放平台,面向的是企业外部合作伙伴,对于这个应用场景,相信接触的人会比较多。当在微服务概念流行起来之后,API网关似乎成了在上层应用层集成的标配组件。API GW的定位主要有五类:1.面向Web App。这类场景,在物理形态上类似前后端分离,此时的Web App已经不是全功能的Web App,而是根据场景定制、场景化的App。2.面向Mobile App。这类场景,移动App是后端Service的使用者,此时的API GW还需要承担一部分MDM(此处是指移动设备管理,不是主数据管理)的职能。3.面向Partner Open API。这类场景,主要为了满足业务形态对外开放,与企业外部合作伙伴建立生态圈,此时的API GW需要增加配额、流控、令牌等一系列安全管控功能。4.面向Partner External API。这类场景,业界提的比较少,很多时候系统的建设,都是为了满足企业自身业务的需要,实现对企业自有业务的映射。当互联网形态逐渐影响传统企业时,很多系统都会为了导入流量或者内容,依赖外部合作伙伴的能力,这些对于企业内部来说,都是一些外部能力。此时的API GW就需要在边界上,为企业内部Service统一调用外部的API做统一的认证、(多租户形式的)授权、以及访问控制。5.面向Io T Smart Device.这类场景,业界就提的更少了,此时的API GW所需要满足的,对于企业的系统来说终端设备很多情况下都不是直连网关,而是进过一个「客户侧」的集中网关在和企业的接入网关进行通信。

前三类或者前四类API GW。除了保证数据的交换之外,还需要实现对接入客户端的身份认证、防报文重放与防数据篡改、功能调用的业务鉴权、响应数据的脱敏、流量与并发控制,甚至基于API调用的计量或者计费。

Netflix的API GW,主要是指Zuul,Netflix用于自己的3大场景:Website Service、API Service、Streaming Service。Netflix在Zuul的实现上,主要特色是:Filter的PRE ROUT-ING POST ERROR(PRPE模型),以及采用Groovy脚本的Filter实现机制、采用Cassandra作为filter repository的机制。Filter以及Filter的PRPE模型,是典型的「前正后反模型」的实现,为集成的标准化做好了框架层面的铺垫。Netflix其实并没有对API GW进行深入的功能实现,整体上它只提供了一个技术框架、和一些标准的filter实例实现,相信了解过filter chain原理的分布式中间件工程师也能搭出这样的框架。很大原因是API GW所扮演的角色是一个业务平台,而非技术平台,将行业特征很强的业务部分开源,对于受众意义也不是特别大。另外,除了Netflix Zuul,在商业产品上还有apigee公司所提供的方案,在轻量级开源实现上还有基于Nginx的kong,kong其实提供了19个插件式的功能实现,涵盖的面主要在于安全、监控等领域,但缺少对报文转换的能力。

在API网关的设计上,包含三个要素:API网关本身以及API网关客户端,还有配套的自助服务平台。API GW所承担的一个重要角色就是报文转换,并且是跨语言、跨运行平台的报文转换。报文就是数据,在跨平台、跨语言的条件下,对于数据的描述———元数据———也就是类定义,对于API GW的系统性挑战是巨大的:传输时,报文内不能传输类定义,跨语言的类定义转换、生成与加载。API GW的落地技术基本贯通没有太大的难度,但形成最佳的实践,有一些外围的前置条件,比如:后端API粒度;能和原子业务能力找到映射最好;业务路由的实现和含报文转换的API不停机发布;尽可能的在报文头里面存放业务路由所需要的信息,避免对报文体进行解析。

API GW上线后,面临的很大问题都是后端服务如何自助发布到外部,同时不能重启网关服务,以保障业务的连续。在此过程中,如果涉及到报文格式的转换,那对API网关实现的技术要求比较高。如果让网关完成报文转换,(1)网关需要知道报文的具体格式,这部分要支持热更新。(2)需要客户端在报文内另外附加元数据,网关通过运行期加载元数据对报文进行解析在进行报文的转换,这种方案性能不会很好。(3)就是在运行期首次报文转换的时候,根据元数据生成报文转换代码并加载,这种方案对技术实现要求比较高,对网关外围平台支撑力度要求也不低。

很多人都会把安全问题简单的用加密算法来解决,这是一个严重的误区,很多时候都存在对秘钥进行系统性管理的短板。加密算法就好比家里的保险箱,而秘钥是保险箱的钥匙,而缺乏秘钥管理的安全方案,就好比把钥匙放在自家的客厅茶几上。更何况,安全方案里加解密也只是其中的一部分。

OMA:API标准化意义重大 篇10

业内人士认为, 如果没有标准化来支持大规模市场发展, 开发者就很难与大量服务供应商合作, 而客户和服务供应商在借助广阔的开发者社区时也会受到限制。对于目前API接口标准化进程以及难题, 近期本刊专访了国际规范制定组织开放移动联盟 (OMA) 的技术全会主席Musa Unmehopa。

OMA已定义API超40个

“现在市场上确实存在着很多API, 都是非标准的, 私有的。这样的话会带来一个问题, 开发者需要选择一条路线, 或者同时兼顾几条路线。”Musa表示, 运营商如果想成功的话, 需要非常丰富的应用。开发者如果想成功就必须能够覆盖尽可能多的用户, 因此统一API非常必要。

Musa表示, 作为国际规范制定组织, 目前OMA已经定义了40到50个API, 有多种语言和协议绑定, 在未来的6个月里, OMA会定义更多的API, 其中很重要的一部分就是关于互通性。

“利用开放移动联盟的API规范, 运营商可以把他们的特定资产开放给每一个移动应用开发者所需的通用功能——不管是信令协议、平台还是其他API。”Musa认为, OMA提出的标准API能够解决市场的分散, 或者被严重地分割, 同时帮助运营商缩短新应用和服务的上市时间, 简化现有应用和服务的大规模部署工作。所以OMA定义的API得到业界众多运营商、设备商以及应用开发者的响应。

不过, Musa也指出API标准化也面临一些困难, 即目前API接口过多、一些企业对自身安全和利益存在较多考虑。

中国企业力量渐显

就目前中国企业在OMA组织中的情况, Musa高兴地指出, OMA会员中有三分之一来自亚洲, 而中国的会员是亚洲中最多的。具体而言, 中国移动、中国电信以及中国联通都已经加入, 而包括华为、上海贝尔在内的多家设备商也早已加入并对联盟做出较多贡献。

上一篇:企业发展战略管理下一篇:工作曲线