OData一统江湖 加速催化Open Data应用
所谓开放数据,意谓可以广泛、便捷地被人与机器获取之公开数据,跨越技术、法律与使用的鸿沟,也是新经济增长的强劲动力,可望为在地的中小企业,带来创新性的生态系统。
具体来说,公部门基于运转或经营上之需要,势必持续产生大量数据。论及公开数据加值,便是开放这些「公部门信息」,在保障个资的前提下,提供目的外之加值运用。此一趋势除可望实现全民参与、透明化政府的效益外,亦将产生莫大商业价值。
根据欧盟官方组织(EUROPA)的调查报告指出,欧盟27国因公部门信息再利用,所产生之市场直接规模产值,再加上间接带动的经济利益,估计每年可高达1,400亿欧元之谱。正因如此,欧盟各国纷纷制定策略、设立基金会,支持公开数据加值的产业发展;而时至今日,无论美国、大陆、新加坡,甚至远在非洲的肯尼亚,积极响应开放数据的各国政府不计其数,足见已成为大势所趋。
早在2011年7月,肯尼亚政府即实施一项令世人惊叹的举措,正式启动该国的开放数据计划(Open Data Initiative),当时首波开放的数据,包括人口调查统计、国家/地方预算与支出、以及重大公共专案(含括公共卫生、贫穷、基础建设等范畴)的相关数据。
尽管在当时,美国的data.gov已成立逾两年,而英国的data.gov.uk也成立一年半,相形之下,肯尼亚的Open Data Initiative看来不足为奇;然而其开放数据,接连缔造很多个第一,首先是非洲大陆的头一遭,其次是「低所得国家群」的第一次,再者也是网络低度普及国家的第一次。不仅如此,当地公民团体也把握这个难得机会,鼓励在地与国际技术好手共襄盛举,善加利用这些首次曝光的宝贵公开数据,藉以分析肯尼亚国家发展现况,研究区域性落差问题,同时也为国际发展援助及本土公民运动,提供更丰富的背景分析。
大厂联手催生OData 成为OASIS业界标准
由此可见,开放数据趋势已是沛然成形。着眼于此,包括微软(Microsoft)、IBM与思爱普(SAP)等IT大厂,遂发起成立「开放数据协定」(Open Data Protocol;OData),在OData 4.0版本开始使用REST原则,旨在定义如何搭建RESTful API,以及如何访问这些API的规范,尔后成为OASIS委员会所采纳的工业开放标准;值得一提的是,OData个中拥有大量开源码项目,也支持跨平台、多语言。
OData支持数据模型的描述,以及依据数据模型的数据进行查询与更新功能,至于协定的规则,则来自于REST规范,且藉由既有的HTTP,外加标准的CRUD方式所组合而成。综观OData设计原则,大致依循几个关键概念,包括了倾向机器能够储存各种数据来源、服务能够支持拓展性的功能、以REST设计原则为导向、易于建构具兼容性的服务,以及保持简单。
换言之,OData仅定义抽象的数据模型与协定,使任何一种客户端,皆能够公开存取任何一种数据来源,而客户端系利用OData Client Library与OData Protocol的方式,透过OData的数据模型,来存取OData Service上的数据。
上列描述,正好点出几个OData的核心组件。首先是OData的数据模型,其采用Entity Data Model(EDM)描述数据,与微软的Entity Framework(EF)颇为近似;其次是OData Protocol,负责把将客户端需求传给OData Service,等到收到请求后,再经由OData Service回应予客户端,而它是一种交互式的RESTful,如同HTTP一般,可针对数据执行新增、读取、修改与删除(CRUD),而OData所定义的查询语言亦采纳这般模式,而且数据在OData Service回传客户端时,兼能支持XML或JSON格式。
第三项核心组件是OData Client Library,其能够很容易写入一个应用程序,以便于经由OData Protocol而存取数据,但值得一提的,尽管OData Client Library并无严格的规范与要求,惟大部分OData Clients为应用程序,必须事先提供OData传送方式的Library,以利于开发人员开发这些应用时,得以更简单的实现。
最后是OData Service,顾名思义是一种开放式的端点,旨在让用户端可以存取数据,Service实作OData Protocol与利用OData抽象的数据模型,至于数据来源类型,可能是相关的Tables或SharePoint Lists等,主要是转换为固定数据型式,再回传给客户端。
若简单将OData的应用领域,拆解为客户端、数据来源等两大部份,则其中数据来源区块,包含了Custom Applications、云端储存、内容管理软件,及Windows Azure Marketplace DataMarket等主要项目。
Custom Applications意指如同脸书、eBay或Netflix…等等常见的企业级应用程序,它们皆可透过OData来存取开放数据,而非采用自身专属的机制来存取;而为了更易于实现此目的,无论是Net Framework或Java Applications,都可以运用利用OData函式库作为数据来源。云端储存方面,则以微软的Windows Azures最为典型,直接就内建了OData数据表的存取协定,另一方面,OData也在SQL Azure中,支持存取关联式数据。内容管理软件部份,系指SharePoint、Webnodes支持内建的OData存取开放数据。此外以Windows Azure Marketplace DataMarket为基础的服务,用以查找、购买与存取商业数据,皆可经由OData的方式,让应用程序顺利存取这些数据集。
而在客户端区块,则包含了Web浏览器、移动作业平台、商业智能(BI)工具与Custom Applications的核心组件。其中各个常见的主流浏览器,都可对OData的数据来源进行存取;在移动平台部份,包括Android、iOS或Windows Phone,皆支持OData Client Library;BI工具部份,举凡Microsoft Excel所提供的数据分析工具PowerPivot,乃至于Tableau Desktop,都可支持OData;有关Custom Applications,目前包括NET Framework、Java、PHP甚或其他技术,全都支持OData程序。
采用支持OData的平台 助公部门加速处理开放数据
简言之,OData是开放数据交互的REST标准,其对于开放数据的意义与效益,主要展现于三个面向。第一是数据导入,对于公部门而言,仅需历经建立数据集、添加数据、配置数据等简单三步骤,便可完成数据导入程序,且兼能支持Word、Excel、CSV、JPG、HTML、URL…等等众多文件格式;其次是数据归纳、整理与检索,OData所定义的数据模型中,包括三个清晰可见的环节,一是数据集的分类查询,二是融合数据集、机构与群组的三重视角,三是全文与模糊查询机制,方便公部门妥善处理常用的数据与档案;第三是数据可视化,以地理位置相关的数据为例,当输入的数据含有地理信息(例如经纬度),支持OData的开放数据平台会自动生成地图应用,而平台也能支持基本的图表产生工具。
更重要的,支持OData的开放数据平台会识别结构化数据(Excel、CSV),并自动产生OData开放数据API,藉由这些OData API,使得该平台的数据,即可被各种跨平台应用所访问与使用。
以微软为例,便挟着长年拥抱开源、贡献开源的累积能量,辅以标榜灵活开放特质的Azure公有云,据此建立开放数据平台框架,以期帮助公部门建立开源、开放的Open Data处理机制。
综观上述平台的架构设计,主要是取材于Open Data的完整生命周期,故而内含数据导入、数据处理与储存、数据发布等主要机制。用户采用此平台的第一步,需要先针对政府公文、纸面数据、其他网站上的动静态数据或链结等所有原始数据予以分类,继而依据数据属性采取对应的适用方式,将这些数据汇入平台,然后进行附加数据描述与标签(以便于整理与检索)、指定数据授权模式、配置数据可见性、添加自定义属性等作业流程。
接着按适当方式完成数据储存,例如将地理空间信息存入空间数据库管理系统(GIS),将非结构化数据存入既有档案系统、或公有云Object Storage空间,并将结构化数据存入关联式数据库、或Azure SQL Database等云端数据库服务,但如果结构化数据量过大,可选择使用NoSQL等新兴储存技术。
最后执行数据可视化,待完成后即可面向数据用户,以Web UI、社群媒体、或OData/JSON API等途径进行发布。