使用政府开放数据和低代码方案构建应用
譯者注:低代碼(Low Code)開(kāi)發(fā)指無(wú)需編碼或很少編碼就可以快速生成應(yīng)用,通常是通過(guò)GUI和配置開(kāi)發(fā)應(yīng)用
\\\本文要點(diǎn)
\\- 市政府每天生成并發(fā)布大量的數(shù)據(jù)和信息。對(duì)公眾開(kāi)放這些數(shù)據(jù)集,會(huì)使政府機(jī)構(gòu)更為透明和負(fù)責(zé)。對(duì)于紐約市而言,開(kāi)放數(shù)據(jù)本身就是法律規(guī)定的。\\t
- SODA(Socrata Open Data API)是最廣為使用的政府開(kāi)放數(shù)據(jù)解決方案。其中,數(shù)據(jù)以REST風(fēng)格的API形式呈現(xiàn)。\\t
- 基于云的低代碼開(kāi)發(fā)平臺(tái)為外部REST API提供了一種簡(jiǎn)單的、聲明式的訪問(wèn)方式,支持前所未有范圍的用戶去使用可用的信息,無(wú)需用戶嫻熟掌握開(kāi)發(fā)技術(shù)。\\t
- 本文最后,演示了如何使用Oracle Application Express(APEX),一種基于云計(jì)算的低代碼開(kāi)發(fā)工具,構(gòu)建一個(gè)提供紐約市311服務(wù)請(qǐng)求公開(kāi)數(shù)據(jù)報(bào)告和圖表的應(yīng)用。\
市政府每天生成并發(fā)布大量的數(shù)據(jù)和信息。對(duì)公眾開(kāi)放這些數(shù)據(jù)集,會(huì)使政府機(jī)構(gòu)更為透明,讓政府對(duì)公民更為負(fù)責(zé)。政府通過(guò)鼓勵(lì)對(duì)數(shù)據(jù)集的使用和免費(fèi)分發(fā),邀請(qǐng)公民更加積極地參與公共機(jī)構(gòu)事務(wù),推動(dòng)創(chuàng)建以公民為中心的創(chuàng)新服務(wù)和解決方案。
\\對(duì)紐約市而言,開(kāi)放數(shù)據(jù)本身就是法律規(guī)定的。2012年頒布的《開(kāi)放數(shù)據(jù)法》中規(guī)定,所有的公開(kāi)數(shù)據(jù)應(yīng)在2018年底之前在單一門戶網(wǎng)站上提供。目前,紐約市已在opendata.cityofnewyork.us上提供了數(shù)百個(gè)數(shù)據(jù)集。網(wǎng)站支持公民按機(jī)構(gòu)或類別查找數(shù)據(jù)集,并通過(guò)所提供的實(shí)用程序搜索和過(guò)濾數(shù)據(jù)。全美國(guó)已有數(shù)百個(gè)城市類似地提供了數(shù)據(jù)集,通常遵循相同的發(fā)布標(biāo)準(zhǔn)。
\\這些數(shù)據(jù)集的真正價(jià)值在于,它們是以基于標(biāo)準(zhǔn)REST API方式提供的,支持使用第三方工具和框架的開(kāi)發(fā)人員利用這些豐富的信息,構(gòu)建新的創(chuàng)新應(yīng)用和解決方案。基于低代碼(Low Code)和云的開(kāi)發(fā)平臺(tái),提供了一種對(duì)外部REST API的簡(jiǎn)單的、聲明式的訪問(wèn)方式,這使得前所未有地廣泛規(guī)模的受眾可以利用更多的可用信息,盡管這些用戶可能并非非常精通具體的開(kāi)發(fā)技術(shù)。
\\本文給出了對(duì)政府開(kāi)放數(shù)據(jù)(Municipal Open Data)、REST API和Socrata Open Data API等概念的一個(gè)高層概覽。其中,Socrata Open Data API正被紐約及其它許多城市所使用。通過(guò)本文,讀者將學(xué)會(huì)如何使用基本的過(guò)濾器、SoQL查詢和SoQL函數(shù),查看和分析可用的數(shù)據(jù)。本文還會(huì)介紹各種用于查看并理解所提供API的工具。在具備了上述知識(shí)之后,讀者將學(xué)會(huì)如何在一些廣為使用的數(shù)據(jù)集(例如,311服務(wù)電話,紐約市招聘信息)上構(gòu)建應(yīng)用。
\\政府開(kāi)放數(shù)據(jù)
\\自本世紀(jì)初以來(lái),開(kāi)放政府?dāng)?shù)據(jù)的想法發(fā)展勢(shì)頭強(qiáng)勁。互聯(lián)網(wǎng)通常被看成是現(xiàn)代世界的一個(gè)公共空間,政府可從中更好地了解公民及他們的需求,讓公民充分地參與到政府事務(wù)中。因此,向公眾開(kāi)放政府?dāng)?shù)據(jù),有利于開(kāi)展民間討論、改善公共福利,并可更有效地利用公共資源。
\\開(kāi)放政府(Open Government)公約于2007年在加利福尼亞州的Sebastopol提出。公約中給出了開(kāi)放政府?dāng)?shù)據(jù)(Open Government Data)的八項(xiàng)原則:
\\- 完整性:排除具有隱私和安全上限制的數(shù)據(jù),所有公眾數(shù)據(jù)都應(yīng)提供。\\t
- 原始性:數(shù)據(jù)應(yīng)按原樣提供,具有最高級(jí)別的粒度,不得做匯總或修改。\\t
- 時(shí)效性:數(shù)據(jù)應(yīng)盡可能第一時(shí)間提供,并有必要保留數(shù)據(jù)的價(jià)值。\\t
- 可訪問(wèn)性:數(shù)據(jù)應(yīng)該提供給最廣泛的用戶和目的。\\t
- 機(jī)器可處理:數(shù)據(jù)的結(jié)構(gòu)應(yīng)該支持機(jī)器自動(dòng)處理。\\t
- 非歧視性:數(shù)據(jù)應(yīng)該可以提供給任何人,訪問(wèn)不應(yīng)該要求注冊(cè)。\\t
- 非專有:數(shù)據(jù)應(yīng)以開(kāi)放格式提供,不得存在擁有專有控制權(quán)的實(shí)體。\\t
- 免許可:數(shù)據(jù)不應(yīng)受任何版權(quán)、專利商標(biāo)或商業(yè)秘密法規(guī)管制。\
作為提高市政府的可訪問(wèn)性,透明度和問(wèn)責(zé)制的舉措的一部分,紐約市將各該市各機(jī)構(gòu)和組織生成的所有公共數(shù)據(jù)通過(guò)opendata.cityofnewyork.us提供給公眾使用。該網(wǎng)站是一個(gè)政府生成的機(jī)器可讀數(shù)據(jù)集的存儲(chǔ)庫(kù),向公眾提供了開(kāi)放數(shù)據(jù)目錄。
\\通過(guò)研究分析或創(chuàng)建應(yīng)用,任何人都可以使用這些數(shù)據(jù)集,參與并改進(jìn)政府事務(wù),從而更好地了解市政府機(jī)構(gòu)是如何提供的服務(wù)、如何改善公民的生活,以及政府為公民提供服務(wù)的方式。
\\
圖1:紐約市開(kāi)放數(shù)據(jù)的主頁(yè)
Socrata Open Data API(SODA)
\\REST(表現(xiàn)層狀態(tài)轉(zhuǎn)換,Representational State Transfer)是一種分布式超媒體系統(tǒng)的架構(gòu)風(fēng)格,是由Roy Fielding在他的博士論文中定義并給出的。REST風(fēng)格描述了系統(tǒng)間如何使用HTTP獲取數(shù)據(jù)并生成XML、JSON等格式的數(shù)據(jù)。大多數(shù)開(kāi)放數(shù)據(jù)API都基于REST,其中包括Socrata Open Data API(SODA)。
\\Socrata是一家為公共部門組織提供服務(wù)的軟件公司,它為政府工作人員和公眾發(fā)現(xiàn)、使用并操作已有的政府?dāng)?shù)據(jù)提供幫助。Socrata的解決方案支持將公共部門機(jī)構(gòu)主業(yè)務(wù)系統(tǒng)的數(shù)據(jù)流自動(dòng)化為可公開(kāi)訪問(wèn)的服務(wù)。Socrata Open Data API(SODA)是一種最廣為采用的政府開(kāi)放數(shù)據(jù)解決方案。Socrata已為世界各地的政府、非營(yíng)利組織和非政府組織提供了數(shù)百種不同的數(shù)據(jù)目錄。當(dāng)前,許多美國(guó)城市和一些組織都具有開(kāi)放數(shù)據(jù)門戶。其中,開(kāi)放數(shù)據(jù)網(wǎng)絡(luò)(Open Data Network)https://www.opendatanetwork.com提供了一個(gè)開(kāi)放數(shù)據(jù)集的全局目錄。它支持使用Global Catalog API以編程方式集成并查詢其它的系統(tǒng)。
\\為了與開(kāi)放數(shù)據(jù)資源進(jìn)行交互并與其它系統(tǒng)集成,我們需要一個(gè)“端點(diǎn)”。SODA API的“端點(diǎn)”就是唯一表示對(duì)象或?qū)ο蠹系腢RL。每個(gè)Socrata數(shù)據(jù)集,以及每個(gè)單獨(dú)的數(shù)據(jù)記錄,都有其自己的端點(diǎn)。
\\下面鏈接所給出的例子,就是紐約市311服務(wù)請(qǐng)求的端點(diǎn):
\\https://data.cityofnewyork.us/resource/fhrw-4uyv.json
\\在此例中,所有資源的訪問(wèn)都基于一個(gè)通用的基礎(chǔ)路徑“/resource/”,此后是數(shù)據(jù)集標(biāo)識(shí)符。每個(gè)數(shù)據(jù)集都對(duì)應(yīng)一個(gè)唯一的標(biāo)識(shí)符。它由八位的數(shù)字字母組成,被短橫線分為兩個(gè)四字符短語(yǔ)。該URL可以使用Web瀏覽器打開(kāi),也可以使用其它一系列工具訪問(wèn),例如Paw、Postman等REST Client瀏覽器插件。
\\端點(diǎn)URL后可以添加一些基本的過(guò)濾器和SoQL參數(shù),實(shí)現(xiàn)對(duì)特定數(shù)據(jù)集的請(qǐng)求,或是實(shí)現(xiàn)對(duì)結(jié)果的查詢和操作。
\\SODA API是自描述性的,即數(shù)據(jù)集本身的模式和內(nèi)容決定了數(shù)據(jù)集的查詢方式。數(shù)據(jù)中的任何字段都可以作為過(guò)濾器,只需將其作為GET參數(shù)附加到API端點(diǎn)即可。例如,要對(duì)上述例子做過(guò)濾,使得其中僅包括布魯克林的311服務(wù)請(qǐng)求,我們可以添加“borough”作為參數(shù),然后給出自治市鎮(zhèn)名稱:
\\https://data.cityofnewyork.us/resource/fhrw-4uyv.json?borough=BROOKLYN
\\SoQL(Socrata查詢語(yǔ)言,Socrata Query Language)是一種類似于SQL的簡(jiǎn)單查詢語(yǔ)言,設(shè)計(jì)用于簡(jiǎn)化對(duì)Web上數(shù)據(jù)的操作。與標(biāo)準(zhǔn)SQL基本一樣,開(kāi)發(fā)人員可以選擇(SELECT)特定的列、使用WHERE語(yǔ)句過(guò)濾查詢結(jié)果、對(duì)結(jié)果做排序(ORDER)和分組(GROUP),并應(yīng)用一些聚合函數(shù)。
\\鑒于當(dāng)前不少數(shù)據(jù)集的規(guī)模非常大,從數(shù)百萬(wàn)行到數(shù)十萬(wàn)行不等,因此在將數(shù)據(jù)下載到客戶端應(yīng)用前對(duì)數(shù)據(jù)做匯總是至關(guān)重要的。僅加載所需的數(shù)據(jù)和聚合,而不是下載完整的數(shù)據(jù)集,這將提高查詢性能。并且在很多情況下,這種做法將使客戶端應(yīng)用真正可運(yùn)行。因?yàn)樵谠S多情況下,完全下載所有的數(shù)據(jù)實(shí)際上是不可行的。
\\下表匯總列出了各項(xiàng)可用的URL參數(shù),以及它們的功能。
\\| $select | 類似于SQL中的SELECT,指定需返回的一組列。 | 所有列 | SELECT |
| $where | 類似于SQL中的WHERE,指定過(guò)濾返回的列。 | 不定義過(guò)濾器 | WHERE |
| $order | 類似于SQL中的ORDER BY,指定要排序的列。 | 不指定排序 | ORDER BY |
| $group | 類似于SQL中的GROUP BY,指定分組結(jié)果的列。 | 不指定分組 | GROUP BY |
| $having | 對(duì)聚合結(jié)果行進(jìn)行過(guò)濾。 | 不指定過(guò)濾 | HAVING |
| $limit | 指定最大返回結(jié)果數(shù)。 | 1000 | LIMIT |
| $offset | 用于分頁(yè),指定從偏移量處開(kāi)始顯示結(jié)果。 | 0 | OFFSET |
| $q | 對(duì)設(shè)定值做全文檢索。 | 不檢索 | N/A |
| $query | 將整個(gè)SoQL查詢字符串作為一個(gè)參數(shù)。 | N/A | N/A |
針對(duì)上面給出的311數(shù)據(jù)的例子,我們對(duì)數(shù)據(jù)做進(jìn)一步的過(guò)濾和聚合,下面的URL,選定只顯示Brookly區(qū)域投訴的類型和數(shù)量,并按降序排列。
\\https://data.cityofnewyork.us/resource/fhrw-4uyv.json?$select=complaint_type,%20count(complaint_type)\u0026amp;$group=complaint_type\u0026amp;$order=count(complaint_type)%20desc\u0026amp;borough=BROOKLYN
\\低代碼應(yīng)用開(kāi)發(fā)
\\通過(guò)紐約市的開(kāi)放數(shù)據(jù)門戶網(wǎng)站,以及其它一些采用Socrata Open Data解決方案的開(kāi)放數(shù)據(jù)門戶網(wǎng)站,市民可以輕松地訪問(wèn)大量的公共數(shù)據(jù)集。使用數(shù)據(jù)集所提供的工具,無(wú)疑是一種查找信息和開(kāi)展研究的好方法。此外,通過(guò)基于瀏覽器的查看器,市民可以搜索、過(guò)濾、可視化并導(dǎo)出任何可用的數(shù)據(jù)。除了借助于基本的查詢接口之外,許多數(shù)據(jù)集還具有很大的潛力,可作為構(gòu)建新型創(chuàng)新解決方案的基礎(chǔ)。如果開(kāi)發(fā)人員想要將這些數(shù)據(jù)集集成到自己的應(yīng)用中,可以使用Socrata Open Data API(SODA)。SODA適用于絕大多數(shù)的數(shù)據(jù)集,它通過(guò)HTTP以JSON和CSV格式提供數(shù)據(jù)。
\\所有的SODA API都提供了大量的文檔。其中包括一些代碼示例,演示了如何使用部分最廣為使用的編程語(yǔ)言來(lái)操作數(shù)據(jù)。這樣,對(duì)于具有所需編程技能的人,可以開(kāi)放地使用數(shù)據(jù)。為了擴(kuò)大這些API的潛在目標(biāo)受眾,而非僅局限于專業(yè)開(kāi)發(fā)人員,“低代碼”開(kāi)發(fā)工具扮演著越來(lái)越重要的角色。低代碼開(kāi)發(fā)允許開(kāi)發(fā)人員只需插入相應(yīng)的SODA URL,然后使用聲明式向?qū)?#xff0c;就可以構(gòu)建一些使用數(shù)據(jù)的強(qiáng)大組件,例如報(bào)告、圖表、日歷等。實(shí)現(xiàn)所有這些功能,人們只需要寫很少的代碼,或者根本不需要寫代碼。
\\低代碼應(yīng)用開(kāi)發(fā)的主要目的在于提高生產(chǎn)率,即使用較少的工作實(shí)現(xiàn)更多的功能、更高的一致性和更高的保真度。低代碼開(kāi)發(fā)框架利用了功能強(qiáng)大的組件實(shí)現(xiàn)報(bào)告功能、數(shù)據(jù)的可視化和表單控件。這使得應(yīng)用開(kāi)發(fā)人員可以專注于解決業(yè)務(wù)問(wèn)題,并給出解決方案,從而在一些普遍和重復(fù)性的低層代碼上花費(fèi)更少的時(shí)間和精力。
\\低代碼工具可顯著地提高應(yīng)用的開(kāi)發(fā)生產(chǎn)力和可維護(hù)性。普通公民就可以成為開(kāi)發(fā)人員,自動(dòng)執(zhí)行業(yè)務(wù)流程,并實(shí)現(xiàn)某一點(diǎn)上的解決方案。此外,低代碼工具對(duì)專業(yè)開(kāi)發(fā)人員也同樣具有吸引力,它們可以顯著地降低應(yīng)用開(kāi)發(fā)和維護(hù)的時(shí)間和復(fù)雜性。正確使用低代碼工具,可最廣泛地為使用聲明性編程的用例提供卓越的生產(chǎn)力。
\\使用低代碼解決方案構(gòu)建基于政府開(kāi)放數(shù)據(jù)的應(yīng)用
\\為展示這一解決方案的實(shí)現(xiàn),下面我們將使用上面介紹的紐約市311服務(wù)電話數(shù)據(jù),其調(diào)用接口位于:
\\https://data.cityofnewyork.us/resource/fhrw-4uyv.json
\\我們將使用Oracle Application Express(APEX)低代碼開(kāi)發(fā)套件,構(gòu)建基于此數(shù)據(jù)集的報(bào)告和圖表應(yīng)用,效果如圖2所示。Oracle Application Express支持開(kāi)發(fā)人員創(chuàng)建以數(shù)據(jù)庫(kù)為中心的Web應(yīng)用,并具有可靠、可擴(kuò)展和安全等特性。開(kāi)發(fā)人員不需要過(guò)多的編程經(jīng)驗(yàn),只需使用Web瀏覽器,就可以為臺(tái)式機(jī)和移動(dòng)設(shè)備構(gòu)建和部署基于Web的專業(yè)應(yīng)用。
\\
圖2 一個(gè)APEX圖表,其中顯示了紐約市311服務(wù)請(qǐng)求的情況
在開(kāi)始使用低代碼解決方案構(gòu)建應(yīng)用時(shí),開(kāi)發(fā)人員必須啟動(dòng)一個(gè)本地APEX實(shí)例,或是登陸基于云的APREX服務(wù)。使用基于云服務(wù)的優(yōu)點(diǎn)是服務(wù)總是在線的,即應(yīng)用一旦完成開(kāi)發(fā),就會(huì)即刻提供給開(kāi)發(fā)人員所指定的用戶。
\\一旦APEX服務(wù)可用,這時(shí)就需要開(kāi)發(fā)人員創(chuàng)建一個(gè)APEX工作區(qū),然后使用聲明式的“Create Application Wizard”開(kāi)始構(gòu)建應(yīng)用。就本例而言,僅用一個(gè)空白頁(yè)面構(gòu)建應(yīng)用就可以了。在創(chuàng)建應(yīng)用之后,開(kāi)發(fā)人員需要在“Shared Components”中使用“Web Source”組件,創(chuàng)建對(duì)REST API的引用。創(chuàng)建新的Web源時(shí),必須要指定API的URL端點(diǎn)、Web源名稱、Web源類型及HTTP方法等信息。SODA API支持通過(guò)HTTP和HTTPS訪問(wèn)。
\\下一步,APEX會(huì)將端點(diǎn)URL拆分為特定于服務(wù)器的和特定于服務(wù)的兩個(gè)部分。APEX將使用特定于服務(wù)器的URL部分創(chuàng)建一個(gè)新的遠(yuǎn)程服務(wù)器(Remote Server)對(duì)象。所生成的實(shí)體用于對(duì)指向同一服務(wù)器的REST端點(diǎn)進(jìn)行分組。使用這樣的REST服務(wù)集合,一旦服務(wù)器發(fā)生更改,開(kāi)發(fā)人員僅需調(diào)整遠(yuǎn)程服務(wù)器對(duì)象。
\\然后,開(kāi)發(fā)人員將會(huì)得到提示,需要輸入驗(yàn)證信息。雖然SODA API不需要進(jìn)行認(rèn)證,但開(kāi)發(fā)人員可以使用高級(jí)屬性添加應(yīng)用令牌。此外,開(kāi)發(fā)人員還可以使用可選的模塊參數(shù),定義SODA過(guò)濾器和SoQL查詢。要實(shí)現(xiàn)在URL中包含參數(shù),應(yīng)該指定參數(shù)類型為“Query String”。參數(shù)可以是靜態(tài)的,也可以是動(dòng)態(tài)的。動(dòng)態(tài)參數(shù)支持在運(yùn)行時(shí)根據(jù)用戶的操作進(jìn)行動(dòng)態(tài)調(diào)整。
\\創(chuàng)建Web源的最后一步是“Discovery”。該步驟向API端點(diǎn)實(shí)際發(fā)出HTTP請(qǐng)求,并以JSON格式返回結(jié)果。APEX對(duì)JSON結(jié)構(gòu)進(jìn)行分析,并創(chuàng)建一個(gè)數(shù)據(jù)概要文件,其中包含了所有可用的列,以及所發(fā)現(xiàn)的數(shù)據(jù)類型。此后,Web源與數(shù)據(jù)配置文件將被APEX中的聲明性組件創(chuàng)建向?qū)褂?#xff0c;與APEX通常使用數(shù)據(jù)庫(kù)數(shù)據(jù)字典來(lái)讀取本地表上的表和列信息一樣。
\\在創(chuàng)建Web源之后,許多APEX標(biāo)準(zhǔn)組件,例如交互式報(bào)告、經(jīng)典報(bào)告、圖表和日歷等,就可以直接連接到REST API。如果要使用網(wǎng)絡(luò)資源,開(kāi)發(fā)人員只需簡(jiǎn)單地瀏覽相應(yīng)的創(chuàng)建頁(yè)面向?qū)?#xff0c;然后選擇“Web Source”作為數(shù)據(jù)源。一旦選定了組件,開(kāi)發(fā)人員就可以選擇要添加到報(bào)告中的列,或者對(duì)于圖表或日歷頁(yè)面而言,選擇將哪些列作為顯示列和值列。
\\圖3顯示了使用紐約市311服務(wù)調(diào)用API所創(chuàng)建的應(yīng)用。在本例子中,我們使用了一個(gè)APEX交互網(wǎng)格,其中選擇了數(shù)據(jù)集中最相關(guān)的列,并顯示在報(bào)告中。例子中還使用內(nèi)置的“Chart”功能添加了一個(gè)Oracle JET圖表,顯示了撥打311電話最多的區(qū)域。
\\
圖3 紐約市311服務(wù)電話情況
結(jié)束語(yǔ)
\\開(kāi)放數(shù)據(jù)為市政府、地方、州和聯(lián)邦政府機(jī)構(gòu)提供了與選民接觸的大量機(jī)會(huì),使政府更加透明和負(fù)責(zé)。Open Data API不僅支持公眾在所提供的開(kāi)放數(shù)據(jù)門戶網(wǎng)站上查找信息,而且可以作為構(gòu)建新型創(chuàng)新服務(wù)的一個(gè)基礎(chǔ)。低代碼開(kāi)發(fā)平臺(tái)支持通過(guò)簡(jiǎn)單地指定API端點(diǎn)就著手構(gòu)建應(yīng)用。對(duì)于使開(kāi)放數(shù)據(jù)API更易于為更廣泛的開(kāi)發(fā)人員訪問(wèn),低代碼開(kāi)發(fā)平臺(tái)發(fā)揮了重要的作用。開(kāi)發(fā)人員可以使用簡(jiǎn)單的聲明式向?qū)?#xff0c;構(gòu)建自己的解決方案,并添加其它一些數(shù)據(jù)集和服務(wù)。當(dāng)前,云服務(wù)提供商使得開(kāi)發(fā)人員可以輕松地使用公共REST API構(gòu)建應(yīng)用。因?yàn)槠渲兴械某R?jiàn)任務(wù),包括提供服務(wù)器、授權(quán)并配置軟件和網(wǎng)絡(luò)等,通常都可由服務(wù)提供商負(fù)責(zé)。
\\關(guān)于作者
\\\Marc Sewtz 供職于Oracle數(shù)據(jù)庫(kù)工具組,任Oracle Application Express軟件開(kāi)發(fā)經(jīng)理。Marc具有14年的行業(yè)經(jīng)驗(yàn),涉及咨詢、銷售和開(kāi)發(fā)方面的職位。Marc于1998年加入Oracle,自2001年起,他一直致力于Oracle Application Express。他最初擔(dān)任顧問(wèn),使用Oracle Application Express作為開(kāi)發(fā)框架, 編寫Oracle電子商務(wù)套件的擴(kuò)展模塊。后來(lái),他在Oracle Application Express開(kāi)發(fā)組中擔(dān)任軟件架構(gòu)師和開(kāi)發(fā)經(jīng)理。在此職位上,Marc管理著一個(gè)分布于全球的開(kāi)發(fā)人員和產(chǎn)品經(jīng)理團(tuán)隊(duì),負(fù)責(zé)并為大量的產(chǎn)品功能做出了貢獻(xiàn),其中包括報(bào)表引擎、表格形式、PDF打印和BI Publisher集成、向?qū)Ъ坝脩艚缑?#xff0c;還包括構(gòu)件等。
\\查看英文原文: Building Apps Leveraging Municipal Open Data and Low Code Solutions?
\ 與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的使用政府开放数据和低代码方案构建应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中国房地产官媒爆乐视投资国贸地产,布局A
- 下一篇: Active Record 数据验证