ERP技術全接觸:數據庫、編程和前端技術
譯文【51CTO.com快譯】ERP(企業資源規劃)能夠將組織內部各項任務統一地整合到一套系統之中。跟據Statista(譯者注:是全球領先的綜合數據資料庫)的報告顯示,全球有超過94%的公司認為ERP技術的采用改進了他們的數據安全中心。
信息技術在ERP中的作用是巨大的。我們在此先給出ERP的技術清單,之后我們將基于該列表展開全面的討論。
數據庫
- PostgreSQL
- MSSQL
- ORACLE SQL
編程技術
- .NET和ASP.NET
- Java
- Ruby
- Python
- PHP
前端技術
- JavaScript
- AngualJS
- React
- Vue.JS
ERP系統的簡單結構
在開始討論ERP各項技術之前,我們首先需要了解一下ERP系統的典型結構。在現實生活中,一般企業的資源規劃方案(resource planning solutions)包括:多個相互連接的應用程序、數據庫、模塊、和API等。而任何一種應用程序,都可以被視為由數據庫、后端服務器、和前端(或稱為用戶界面)所組成:
- 數據庫 – 各種與資產相關的數據(如,倉庫里各種產品的數量)被存儲于此。
- 后端 - 根據用戶的需求,在系統中執行各種操作的“引擎”。例如,向數據庫發出請求,以羅列出特定倉庫內的產品和商品,然后將其呈現給用戶。
- 前端 - 是用戶用來與后端通信的圖形界面,它能產生請求,并顯示所接收到的信息。
這是從軟件架構的角度,對ERP組件的概括性解釋。在本文中,我們將使用上述分類作為ERP系統技術的構建標準,以討論它們作為一整套商業智能軟件,在企業中所起到的作用和展現的價值。
ERP的類型
1.C/S型與桌面型ERP
C/S(客戶端/服務器)型ERP技術工作在一些hub主機上,它既能連接本地,又可以連接到云服務器上。此類ERP技術將數據庫托管在某一中央位置,并且將其報告服務通過用戶的接口分發到所有其他的位置上。C/S型ERP技術能夠幫助企業對各種資源進行實時監控和管理。
而桌面型ERP,則是將其前端和后端作為應用程序運行在用戶的主機上。它的數據是通過企業內網(如,本地服務器)的數據庫、或企業外網(如Azure之類的云端數據庫)共享的。可見,桌面型ERP方便了身處各地的團隊成員,能夠實現快速的協作和便利的訪問。
2.云端型/基于Web型ERP
云端型/基于Web型ERP的數據庫與后端都運行在云端,通常情況下,可以是一款SaaS產品。由于其界面是通過Web瀏覽器呈現的,因此用戶能夠在任何設備上通過Web瀏覽器訪問到。
您可以輕松地通過各種應用,訪問到托管服務器上的磁盤存儲空間、內存和CPU等資源。就基于Web的ERP技術而言,由于其前期成本較低,企業能夠保持在較長的一段時間內不需要額外軟/硬件安裝,因此,用戶能夠立竿見影地從基于云端的ERP技術上獲利。
3.混合型ERP
混合型ERP是結合了基于Web和基于桌面端的ERP方案。因此,它既可以作為桌面應用程序被啟動,也可以通過瀏覽器被訪問到。由于它們擁有統一的共享數據庫,因此用戶無論是通過瀏覽器,還是桌面應用,都能訪問到相同的數據。另外,其相應的后端有運行在服務器上的Web應用和用戶主機上的桌面應用兩種。而個人用戶不論是通過瀏覽器、還是使用桌面應用程序向數據庫發出請求,這兩種后端模式都能夠以相同的方式向云端數據庫轉發請求。
在實際應用中,企業更趨向于使用混合型ERP,而非單純的云端型/基于Web型ERP,來實現快速實施、縮短維護周期和獨立于任何服務商。當然,混合型ERP的缺點在于:它的安裝一般是構建在對于最新技術架構進行了一定投入的基礎上。因此,它沒有基于云端型的ERP那么成熟,且無法進行全面的測試。
購置或托管硬件基礎設施
眾所周知,一個功能強大且穩定的基礎設施,對于企業系統的健康性和持久性是至關重要的。我們在謹慎地甄選ERP技術的同時,也要考慮到硬件基礎設施對于系統整體性能的影響。
如今,云計算已經能夠讓各個企業和它們的員工,隨時隨地通過互聯網登錄自己的系統中。對于那些不愿單純依靠云端服務的公司而言,他們可以采用混合的方式,即:在企業內部保留部分ERP功能的基礎上,將其他操作服務放置到托管主機里。
下面我們將和您一起討論內部服務器和云端服務器各自的優、缺點:
內部服務器
優點
- 它能夠讓您完全掌控自己的備份。
- 由于存儲在內部,第三方實體原則上無法訪問到貴司的關鍵數據。
- 就算失去了外網連接,您仍可保證自己運營能夠持續下去。
- 就成本效益而言,它是中、小型企業可以接受的方案。
缺點
- 其基礎設施和硬件都會牽扯到巨額的安裝成本。
- 您需要配備有高手在內的專業IT團隊。同時,它會占用您辦公室(或稱服務器機房)的一部分空間。
- 由于處于企業內部,它更容易發現任何的數據丟失。
- 在災難事故發生時,您可能無法保證恢復時間(RTO)。
云端服務器
優點
- 對于那些有著大量存儲空間需求的小公司來說,更具吸引力。
- 您可以隨時按需擴充現有的解決方案。例如,您可以隨時購買更多的存儲空間。
- 云端服務器能夠為您提供更好的安全性。
- 您可以通過一鍵點擊,來實現數據備份。您甚至可以輕松地通過智能手機、平板電腦、或一體機來完成。
- 您能夠以更短的時間間隔(如,每15分鐘)備份自己的數據。因此,針對一些特殊的緊急情況,它能夠實現最小化的數據丟失率(RPO)。
缺點
- 一旦數據產生丟失,其恢復成本可能會超過數據本身的價值。
- 由于可能涉及到高昂的成本、和有限的可用存儲空間等因素,用戶對其數據的恢復能力可能會受到一定的限度。
- 為了避免數據丟失,而對大量的數據采用全量恢復時,您需要付出一定的時間和昂貴的成本。
- 重度依賴于互聯網。一旦訪問方、或被訪問方失去了網絡連接,用戶則會在一段時間內無法訪問到自己的數據。
ERP技術
1.數據庫系統和數據庫管理系統(DBMS)
在各類開發人員的心中,一般都有一張根據自己的經驗所總結出的,能夠較好地支持ERP技術的數據庫列表。而DBMS則能夠根據用戶的查詢請求,在其對應的數據庫上檢索數據。下面我們來看看不同的數據庫及其管理系統。
PostgreSQL
PostgreSQL是一款功能強大的數據庫。憑借著它所提供的server management studio和 server profiler等工具,您能夠得心應手地開展各種數據排障工作。可以說,它是目前最先進的開源式數據庫技術之一。因此,如果您的開發團隊已經決定為ERP項目選擇開源技術,那么PostgreSQL就是最好的選擇。
在開源屬性的背后,它擁有廣泛的知識共享機制和龐大的生態支持社區,因此它在使用中很容易與其他系統相集成。此外,PostgreSQL包含了多樣性的索引技術、具有全文檢索的能力、以及彈性的搜索功能,這些對于ERP系統的用戶來說都是非常必要的。
MSSQL
微軟的SQL(即MSSQL)是當前普遍流行的ERP數據庫之一(請詳見https://www.microsoft.com/en-us/sql-server/sql-server-2017)。它的主要功能包括:根據應用程序的請求,存儲并檢索數據。MSSQL可以幫助您優化服務器的性能,進而確保系統的可用性和可恢復性。簡易的安裝、增強的性能、以及更好的安全特性都使之成為了開發者的心儀之選。
Oracle SQL
Oracle SQL(請詳見https://www.oracle.com/database/technologies/appdev/sql.html)的主要目標是:能夠以敏捷的速度按需提生成、保存、和獲取數據。作為一種新穎且復雜的ERP技術,這種關系型數據庫提高了系統的整體生產效率。該SQL具有一定的自治和自愈能力,因此更適合于數據庫系統的排障。
如今,無論是用到了關系型數據服務的云端,還是非關系數據庫服務都有用到Oracle SQL。另外,Oracle SQL能夠通過自動化備份,消除了各項手動任務,從而使用戶也能輕松地訪問到各類數據。
2.后端編程技術
能夠提供ERP技術的后端編程語言真是不勝枚舉。下面我們僅列出最為常用的五種。最終如何進行選擇,還是取決于您系統的長期目標。
.NET
.NET(請詳見https://www.microsoft.com/net)和ASP.NET(請詳見https://www.asp.net/)是開發者公認的ERP熱門編程語言。這些框架能夠為用戶帶來更少的代碼、和增強的代碼質量,進而縮短了開發周期、并降低了重用的額外成本。
.NET允許用戶通過網絡與合作伙伴輕松地實現應用整合,其中包括:價值鏈管理、產品應用、記賬管理和服務應用等方面。由于使用了標準的互聯網協議來進行通信,因此.NET基本上適用于各大主流的Web服務。另外,它提供了一整套豐富的Web與桌面開發工具,如WPF(Windows Presentation Foundation)和WinForms,它們能夠在較短的時間內創建各種精良的應用接口。
Java
與.NET類似,Java(請詳見https://www.oracle.com/java/)可以被同時運用在桌面型和Web型的ERP系統中。不過,相應的桌面版前端應用需要被構建在SWING之上。而對于Web型ERP而言,由于它們可連接到相同的Java后端,因此各種Web開發框架,為不同的瀏覽器和平臺提供了一致性的用戶體驗。
此外,對于那些同時需要具有云端和桌面計算能力的系統而言,Java是一種最佳的選擇。一旦您在自己的ERP中使用了Java,您就可以將此類代碼復用到其他任何業務之中。Java代碼不但容易被編寫,而且具有出色的網絡支持能力。
另外,Java的優點還包括:具有良好的移動與桌面端UI、能恰當地確保數據的安全性、以及用戶可以從任何非信任的網站處下載各種資源,而不會造成數據的損壞。可見,Java的各種靈活性奠定了其高效、實用、動態和獨立的語言架構。
Ruby
Ruby(請詳見https://www.ruby-lang.org/en/)入選我們的ERP技術清單的原因有二:首先,由于其具備自托管(self-hosting)的功能,因此具有模塊和類的擴展能力。其次,它的數據庫運行迅速,非常適合于CRM(客戶關系管理)等各種應用。如果您準備搭建一個基于Web而非桌面版本的ERP,并配有移動應用的話,Ruby就很適合于后端的實現。當然,由于Ruby的程序員比較難以尋覓(在就業市場上比較珍稀),而且只能靠社區提供支持,因此Ruby的代碼維護稍顯困難。
Python
其實在多數情況下,我們都希望ERP不論是在主體架構上、還是其核心腳本上,都能夠通過開放的技術、和簡單的語言來實現。以目標為導向的Python(請詳見https://www.python.org/)不但易讀,而且易用,因此程序員們很容易去實現它。Python能夠提供復雜的數據、允許定期check-in和自動垃圾收集器。可見,它能夠被用來在大規模的應用中創建字節碼、并在ERP模型中采用高度抽象。
PHP
單從ERP的技術角度而言,PHP(請詳見http://php.net/)與上述各種語言略有不同。如今,許多企業的應用仍是由PHP所編寫,同時它也還是內容管理系統(content management systems)最常用的語言之一。雖然PHP可謂是第一項服務器端技術,但由于它在后期缺乏改進,因此PHP的普及程度不及.NET,Java和Ruby。我們并不建議任何新的、和一些特殊的ERP系統采用PHP技術。
3. ERP前端技術
近年來,隨著大量的ERP前端技術的涌現,各種精良的、且具備快速響應能力的接口也層出不窮。它們主要集中在桌面版本和基于Web版本這兩個領域。當然,它們也是各有利弊,我們下面來具體討論一下。
JavaScript
我們之所以首先提到JavaScript(請詳見https://www.javascript.com/),是因為它與HTML5、以及CSS共同構建了現代Web應用程序、和單頁面應用的三大支柱。
在大多數情況下,如果您要構建一個基于云的ERP系統,以供員工通過Web瀏覽器或移動應用使用的話,JavaScript會是您的理想選擇。如果您想讓訪問更為便利,則可以在服務器端采用Node.js技術(請詳見https://nodejs.org/en/)。它可以通過在用戶的瀏覽器之外運行JavaScript代碼,從而將繁重負載轉移到云端完成。
AngularJS
如果您有Java和C#之類的后端,需要響應那些工作在不同設備上、和不同瀏覽器的Web應用時,AngularJS(請詳見https://angularjs.org/)框架就很適合您。它能夠幫助程序員們加速開發進程。當查詢請求被發過來后,那些被預定義的數據信息能夠輕松地被檢索到。另外,用戶還能夠根據自己的需求,通過各種動態應用程序來獲取他們所需的信息。
React
React(請詳見https://reactjs.org/)提供了豐富的功能,很適合于那些以結果為導向的企業用來進行ERP的開發。一旦您使用它開發了網站代碼,那么您也可以將其輕松地運用到某個移動應用之中,從而減少了開發所涉及到的總體成本。
Vue.JS
這種漸進式的框架被企業廣泛地用來開發用戶界面。您可以用它來創建桌面版本的ERP,和各種功能強大的單頁面應用。而對于那些現有的項目而言,您同樣可以輕松地添加相應的Vue.JS(請詳見https://vuejs.org/)代碼。同時,它在代碼上的靈活性,也廣受各類開發人員的歡迎。
結論
數據庫、開發語言、和框架的多樣性使得ERP技術更具靈活性。當然,為了保證應用的流暢運行和各個節點之間的順暢連接,我們需要事先選擇好適當的開發工具。
在一些特殊情況下,我們必須在應用程序開發的準備階段,事先明確各種具體需求,例如:將使用到的平臺、用戶的數量、數據庫的類型、系統的可擴展性、和安全性等方面。只有通過全方位的調查研究和深思熟慮,我們才能保證企業ERP項目的成功實施。
原文標題:List of ERP Technologies: What is Right for Your Project? ,作者:Victor Osetskyi
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】