喜馬拉雅

企業管理軟體開發平台

Himalaya可譯為喜馬拉雅,是一款企業管理軟體開發平台。

設計理念


從系統的構想階段開始,Himalaya平台就確定了開放、實用、動態靈活、方便開發等基本理念,並確定了系統的設計要求:
基於網際網路的企業應用。在可靠的安全機制下,提供基於Internet的應用系統訪問、操作,保證業務的連續性和系統的可用性。
提供開放的構架,充分保證其擴展性。遵循J2EE、XML、WebService標準,提供可伸縮的體系架構,可以根據需要不斷擴展應用系統的容量和性能,支持各種主流技術平台,能夠與遺留系統和第三方系統有機集成。
以業務邏輯為驅動,提供綜合性的開發平台。採用模型驅動的,能夠通用於各類信息管理軟體,提供針對企業Web服務的一個可伸縮、適應性強的綜合性平台。它為開發人員的協作開發提供了公共的開發環境,不但可以確保互操作性,而且實現技術的重用,最大限度地降低了成本和風險。
提供面向服務的架構和工具,提升開發效率。提供了面向服務的架構和可視化集成開發工具,可以快速定義出業務邏輯和數據模型及呈現,讓應用系統開發集中精力關注各種業務目標,無須關心底層的基礎結構。
深度靈活、滿足動態需求。能根據業務發展速度隨需應變,滿足單據、邏輯、流程、查詢、報表的動態變更,可以輕鬆地將企業資源集成到各種應用和業務流程。保障業務流程的優化,和業務的快速發展。
豐富靈活的客戶端。可以按照實際的業務需要部署BS或者CS模式的客戶端,即可以實現功能強大、操作便捷,也能夠做到部署靈活、維護簡單,以真正做到適合用戶需求,提升用戶體驗。

技術特點


開放架構,支持異構系統
遵循開放的協議和標準
基於J2EE的開放構架,並且遵循HTTP/SSL,WebService/SOAP,LDAP/ActiveDirectory,.Net,XML等開放協議和業界標準。選擇遵循這些公開的標準,不僅有利於平台的後繼發展,而且可以保證用戶在組建IT系統時的自主選擇權利,保護用戶以往的IT系統投資,減少了系統的總擁有成本,減少了企業中信息孤島現象。
支持異構環境
在平台上構建的應用系統可以做到不依賴任何特定操作系統、中間件、硬體。因此設計合理的基於技術平台的程序只需開發一次就可部署到各種環境,這在典型的異構公司計算環境中是十分關鍵的。平台遵循的J2EE標準也允許客戶訂購與J2EE兼容的第三方的現成的組件,把他們部署到異構環境中,節省了由自己制訂整個方案所需的費用。
跨平台多資料庫支持
喜馬拉雅[企業管理軟體開發平台]
喜馬拉雅[企業管理軟體開發平台]
採用純Java技術開發,可以在多種主流伺服器和操作系統平台上運行,如在主流Unix、Linux、Windows平台上運行。為用戶提供靈活多樣的解決方案,方便用戶對系統的擴展、升級、維護,同時也能充分保護用戶的投資。穩定可靠,性能可擴展
熱備和容錯性支持
平檯面向集中管理模式,需要支持幾十甚至幾百人的併發用戶訪問,因此必須具備高可靠性。由於單台伺服器面臨著單點故障的隱患,比如,網路故障,由於高峰期出現的宕機,掉電,操作系統故障等等,很難做到不間斷運行。通過在平台中加入伺服器集群技術,可以做到熱備功能,在某一台應用伺服器出現諸如網路或者操作系統故障時,其備份應用伺服器可以自動接管其工作,從而使得業務系統保證24*7的不間斷運行,實現高可靠的應用環境。
負載均衡和性能擴展
平台支持動態負載均衡,可以利用多個伺服器組成一個集群,通過配置,將所有的業務操作請求按比例動態分配到不同的伺服器,實現動態負載均衡。負載均衡可以優化伺服器資源的合理利用,提高系統的穩定性,避免突發的高峰值造成系統的癱瘓;同時,負載均衡技術也保證了系統的處理能力可以通過增加伺服器的方式實現線性增長,適應業務量的增長,從而保護客戶的IT投資。
基於Internet部署,支持多種客戶端
不同的業務系統對人機界面的要求各異,在實現用戶的需求方面,單純使用瀏覽器客戶端或者桌面客戶端很難完全滿足客戶的需求。因此,Himalaya平台提供了多種方式的客戶端組件,以支持不同的業務需求。
喜馬拉雅[企業管理軟體開發平台]
喜馬拉雅[企業管理軟體開發平台]
Himalaya平台的桌面客戶端基於RIA(RichInternetApplication)架構,具備自動安裝和升級功能,與瀏覽器一樣使用HTTP協議進行數據交互,因此與瀏覽器客戶端一樣,適合基於Internet的部署方式,具有統一維護、自動升級、零客戶端維護工作量等優勢,可以大大減輕系統維護工作量,保證客戶端程序的一致性。面向業務模型
企業信息化的過程之所以困難重重,就是因為在不同的業務模式下,存在各自千差萬別,隨機而動的業務規則。這些紛繁複雜的業務規則,表現在信息管理系統中,就是特定業務模型中的數據按照不同的規則輸入,轉換和輸出。
技術平台的核心思想就是將業務模型從運行系統中分離出來,作為系統運行的定義和規則而存在,在系統運行時,由平台依據這些定義和規則,實現具體的執行和技術支撐。
業務邏輯獨立於技術實現
在技術平台中,將業務邏輯從運行系統中分離出來,作為系統運行的規則存在,把具體運作交給平台實現,完全不必考慮實現技術。正是這個特性消除了複雜應用軟體系統一直存在的,業務人員與技術人員之間很難彌合的“鴻溝”。使得業務領域的專家能夠充分發揮自己所積累的豐富的行業經驗,利用業務模型構建工具,構建出專業化的行業應用。
便捷的建模工具
操作系統平台、軟體基礎架構平台等都是面向軟體開發人員,它使用起來技術門檻是比較高的。技術平台必須具有功能增強、流程重構的業務建模工具,而且這種業務建模工具是可以面向非技術人員(實施顧問或者業務人員)的。是不必技術背景,業務人員就能快速建立業務模型、流程更改重構的“傻瓜”工具。
使用平台提供的建模工具,在實現一個業務系統時,核心開發和配置工作包括:
定義數據模型
根據業務需求制定的數據模型,能夠在可視化環境中設計和調整,其具體的技術實現,包括和後台資料庫之間的結構映射、基本數據交互行為等,則由系統運行平台管理;
指定數據流轉的業務規則
以可視化的方式,通過托拽和連線的操作完成對業務邏輯的表達和更改,基本業務屬性的變化可以通過流程節點參數配置完成。
功能強大的業務引擎
用戶只需在可視化開發環境中定義好數據模型和處理流程,即可控制系統在實際運行時自動按照定義執行該流程。
通過對業務與底層操作、數據存儲的分離,使得應用層的業務配置具有強大的靈活性。減少了業務邏輯的管理和維護的代價,同時使用戶得以集中精力專註於應用邏輯,使得業務邏輯的積累和重用成為可能。

功能特性


喜馬拉雅[企業管理軟體開發平台]
喜馬拉雅[企業管理軟體開發平台]
流程式控制制
在業務流轉的過程中,對數據的控制包括數據流向,狀態控制,觸發,時間控制,以及各種參與其中的影響事件等。針對控制的複雜性與易變性,技術平台提出了流程式控制制引擎的概念。通過對流程式控制制中的節點和路徑的定義,允許用戶創建和調整流程定義,指定流程中的事件處理,通過流程將整個業務處理過程聯繫起來。
複雜邏輯的支持
平台抽象出了控制事件的基本元素是在綜合考慮進各種現實模型的基礎上。開發系統時通過對基本元素的搭建,滿足各種業務需求。
在提供的基本定義上,用戶可以自由的搭建自己的控制事件。用戶可以實現:不同觸發轉向不同狀態,超時的判斷,控制邏輯的組合;以審批事件為例,可以定義多用戶的分級審批,定義許可權角色,對於審批的觸發者,可以進行各種定製。
對控制流程到達的每一狀態,可以進行描述,參數的傳遞,可以對每一次狀態的轉移設定條件控制。判斷條件可以是:表單數據的數量,監聽,等待指定系統事件的發生,等待超時等。
靈活的變更支持
企業信息化的過程之所以困難重重,就是因為各自千差萬別,隨機而動的業務規則。如果對事件的控制過程是採取系統定製的方法,面對業務變更及變更的潛在危機,將一籌莫展。
由於在平台中,對於控制是採取模型驅動,控制事件是根據業務需求自行構建的,當業務發生變更時,只需相應的調整控制邏輯。而且平台可視化的控制流程圖,基於現實模型的構建單元,使得控制邏輯變更非常的直觀與便捷。
流程式控制制引擎的控制方式,在面對變化時,有著其無可比擬的優勢,高效靈活的協助企業應對瞬息萬變的市場,以及杜絕一處變更帶來得與其他運行模塊的潛在衝突。
控制流程的管理和查詢
業務信息流中的各種控制事件,可以是整個業務系統的神經節點,也是各類不同信息系統的特色及工作重點所在。技術平台對“控制事件”的管理、查詢提供了的支持。可以獲得每個控制事件的狀態描述。
各控制事件在業務系統中,可能對應著各個業務事件,該描述為設計業務系統留下了很大的發揮空間,具體到信息系統中,可作為對業務事件的統一管理,調度等。
數據訪問層
喜馬拉雅[企業管理軟體開發平台]
喜馬拉雅[企業管理軟體開發平台]
為了有效使用業務建模中的數據模型定義,平台加入獨立的數據訪問層(DataAccessLayer),作為用戶的業務操作與底層資料庫的隔離層,完成數據源綁定、數據間關係維護、數據操作許可權判定等複雜的處理過程,也從系統基本上杜絕了數據的安全隱患。數據訪問層對外提供統一的介面,開發人員只需要根據數據模型定義,調用這些介面,即可實現業務系統中的數據維護功能。
數據操作的封裝
通過數據訪問層,具體業務系統實現人員可以直接處理數據模型,而不需要考慮資料庫及安全的底層操作,這降低了對業務系統開發人員的技術背景要求,也大大減輕了二次開發的工作強度,使業務系統的開發集中在業務邏輯的設計和實現。
支持多種多資料庫
通過數據訪問層,平台屏蔽了不同資料庫產品之間的差別,從而使業務系統不再依賴於特定的資料庫產品,同時也為方便用戶根據實際需要選擇合適的資料庫。
目前平台支持主流資料庫產品Oracle、SQLServer和DB2,並且可以拓展到任意支持JDBC的資料庫。
平台對多資料庫的支持,為用戶提供靈活多樣的解決方案,方便用戶對系統的擴展、升級、維護,同時也能充分保護用戶的投資。
技術平台對多資料庫的支持,不僅表現在可以選用不同的資料庫平台,它也提供了在不同資料庫間轉換的有力支持。平台在資料庫備份、恢復時提供數據篩選功能,即可以設定條件,對指定範圍數據相應操作。可以通過簡單的操作實現不同需求的數據導入、導出操作。
對數據遷移的封裝,使得最終用戶方在缺乏精通多資料庫人才時,也能夠完成資料庫平台的轉移工作。在產生信息系統拓展,或其他數據遷移需求時,無需從頭構建業務系統,更高效平穩的實現過渡。同時豐富了數據來源,當新建一套業務系統時,不必從頭構建,可以從原有系統中集成。
業務單據自動生成
依據數據模型,系統可以根據預定的規則,在業務流程的特定節點自動生成符合需求的表單,在業務過程中無需再進行底層的資料庫操作,支持了業務流程的自運作。
同時,系統對於業務表單提供了統一的管理機制,在系統運行時,也可以通過控制台進行察看,統一的維護。
數據維度
平台提出“數據維度”(Dimension)的概念,用以管理時間、地域、科目、組織等具有樹狀層次結構的數據屬性,為數據訪問控制、數據匯總以及多維分析提供更為靈活的支持:
可以對各層次以及同一層次的各個節點賦予不同許可權,很好地支持多粒度的數據訪問許可權控制;
可以從不同維度,或在一個維度的不同層次進行數據匯總、分析,實現全方位的數據分析。
以數據為中心的MVC架構
喜馬拉雅[企業管理軟體開發平台]
喜馬拉雅[企業管理軟體開發平台]
按照SOA的理念,為了合理劃分應用程序結構,明確各個組件的工作重點,並保證系統的運行效率,平台提出了以MVC架構為核心的程序交互和通信模式:針對某項具體業務功能,首先確定業務處理中涉及的數據,並建立數據模型(Model);
客戶端用戶界面(View)負責業務處理結果的顯示(即數據模型),以及響應用戶的業務處理命令,將用戶修改後的數據模型提交到伺服器進行業務處理;
基於數據模型,可以定義對應不同的業務處理命令的數據處理行為(Controller),數據處理行為運行在伺服器端,可以組合調用多個後台服務,最終完成業務邏輯,並依據運行結果更新數據模型,進而影響用戶界面,導致顯示內容的自動更新;
上述程序架構被稱為以數據為中心的MVC架構,通過這種方式進一步規範應用系統的開發過程,可以更好的確保開發效率和程序質量:
合理劃分系統邊界,簡化應用程序各個部分的開發,促進開發人員的分工合作,提高開發效率;
通過將伺服器端的一連串服務調用組合成為一次獨立的服務調用,避免了基於SOA的應用程序效率低下的缺點,同時也確保運行過程中的數據一致性;
客戶端的處理邏輯得到簡化,可以提高用戶界面開發速度,減輕界面測試的工作量;
具體業務邏輯被控制在伺服器端運行,可以進一步提高處理效率,保證業務系統的安全性。
RIA客戶端框架
RIA客戶端框架即Himalaya平台的桌面客戶端,是平台為了適應基於Internet部署的需求,同時又能為用戶的核心業務提供穩定、快速、高效的操作界面,而設計實現的Windows客戶端組件。
RIA客戶端融合了桌面程序和瀏覽器的優點,可以為操作人員提供更好的用戶體驗,其特點如下:
基於.NetFramework的桌面應用程序,可以運行在各個版本的Windows平台上,能夠很好地符合一般用戶的操作習慣;
使用WebService與伺服器端進行交互,因此對伺服器部署的要求與一般的Web程序完全一樣,方便系統的部署和實施;
具備自動安裝和升級功能,可以不需要用戶參與,在運行時自動完成功能更新,從而方便系統升級和版本管理,大大減輕系統維護的工作量;
支持客戶端本地緩存和數據壓縮機制,有效降低伺服器壓力,減少系統帶寬佔用,提高程序界面的響應速度;
可以使用更多的客戶端資源,快速響應用戶操作,並且可以完成一般使用瀏覽器時無法很好完成的任務,比如讀寫註冊表,離線操作,直接訪問外部設備等等。
報表和查詢
報表和查詢是業務系統不可或缺的組成部分,平台在報表和查詢的功能設計上,通過“查詢引擎”,“模板設計”,“多格式輸出”等子模塊,採用現有的成熟技術,實現了功能強大,易於擴展的報表和查詢功能,同時也提供方便易用的報表和查詢設計功能,方便用戶對業務系統報表和查詢的改進和調整。
功能全面
平台內置的查詢引擎可以簡化用戶獲取需要數據的過程:
圖形化的查詢設計界面,用戶可以使用設計工具建立,修改和查看數據的獲取過程;
在數據獲取過程中,使用了流程化數據處理的概念,通過分步處理,簡化查詢實現的複雜度;
可重用的數據處理節點組件,方便業務實現的標準化,確保業務知識的積累;
通過集成成熟的報表輸出引擎,平台在報表輸出上具有如下特點:
支持多層嵌套分組,嵌入圖形圖表,多欄報表,子報表,TOC(TableofContents)等多種樣式的報表,可以方便地實現多種典型報表:表格、卡片,主從、分組、圖表、套打、分欄;
支持自定義紙張,從而可以方便地實現單據套打等功能;
具有強大的分組和匯總功能,不僅可以實現複雜的多層嵌套分組報表,而且支持交叉報表;
強大的數據處理功能:可以定義不同類型的報表欄位,支持欄位的條件樣式,能夠自行定義公式,以及將公式的結果作為報表的輸出;
支持柱狀圖,折線圖,餅圖等各種典型統計圖表;
支持在運行時按照需要,將報表結果顯示為各種不同的格式。包括Excel,PDF,HTML等常用顯示格式;
便捷的設計過程
為方便業務系統在實施和運行中,用戶對報表和查詢的設計和調整的需求,平台為查詢和報表提供了方便易用的設計工具,包括:
基於流程圖的查詢設計工具,用戶通過選擇不同類型的查詢節點,組合得到查詢流程,通過簡單設置節點的熟悉,即可實現數據查詢的定義;這些已定義的查詢可以直接被用於界面顯示和報表;
平台提供所見即所得的報表設計工具,用戶可以在其中完成報表定義,調整,預覽直至發布的全部工作;
報表設計器提供了格式設置,自動表格對齊,智能位置調整等功能,方便用戶設計報表,通過報表設計器,用戶不僅可以設計一般格式的報表,還可以設計交叉報表,圖表,條形碼等特殊的報表內容;
高度靈活
為了解決業務系統對報表高度定製化的需求,在提供了上述功能的同時,平台同時也保留的報表和查詢的功能深化和擴展方面的餘地,業務系統可以通過腳本、公式等手段進一步豐富報表和查詢的功能,方便實現用戶的特殊需求。
用戶認證和系統安全
在Internet上,數據傳輸和處理過程中的安全問題主要集中在以下幾個方面:
用戶認證:如果確認數據傳輸的雙方的真實性;
數據安全:如何保證發送和接收的數據不被第三方竊聽和篡改
目前最通用的解決方法是使用電子簽名和數字證書機制,通過交易雙方的證書籤名,確認雙方的身份;同時基於數字證書,以SSL協議對數據進行加密傳輸,從而保證數據在傳輸過程中不能被竊聽和篡改。
通過對SSL和數字證書的支持等安全措施,平台可以解決業務處理過程中的安全問題:
首先平台支持以用戶名/密碼方式的用戶認證,並且支持多種方式的校驗機制,包括基於資料庫的用戶名/密碼匹配,集成WindowsActiveDirectory進行用戶驗證等;
在用戶名/密碼方式的用戶認證的基礎上,無論使用桌面客戶端還是瀏覽器,平台都支持客戶端數字證書,並且可以在伺服器上驗證登錄客戶端的證書信息,從而進一步保證用戶認證的準確性;
無論是否使用客戶端證書,平台均內建了對SSL協議的支持,因此,只需要通過配置使伺服器運行在HTTPS方式,即可通過SSL協議保證數據發送和接收過程的安全;
在使用桌面客戶端的情況下,平台還能夠方便地集成客戶端網卡地址綁定,USBKey等安全認證方案,進一步確保系統的安全。
完善的許可權管理
平台為應用系統提供了完善的許可權管理機制,在系統層面對訪問許可權提供了統一的管理和控制:
採用基於角色的許可權控制(RoleBasedAccessControl),可以方便地進行許可權發放和收回:
角色被賦予多個不同的許可權,用戶因為具有某個角色而獲得相應的許可權;
用戶可以同時具有多個角色,這種情況下,用戶許可權等於其所擁有的角色的許可權之和;
多個用戶可以匯總為一個組,從而可以作為一個獨立的單元擁有某些角色,這時,這個組中的所有用戶都會具有這些角色。
提供5個類別,多個層面的許可權控制:
菜單許可權:
對不同功能的菜單項操作許可權,不同許可權的用戶,如提供給系統管理員和普通操作員的菜單應該不同。
功能許可權:
對不同業務功能的許可權控制,與菜單許可權不同,功能許可權是在伺服器端控制的。
數據實體許可權(表單許可權):
定義不同用戶對數據模型中的字典,單據等數據實體的訪問許可權。
欄位許可權:
對數據實體中每個欄位的訪問許可權,是對上面數據實體許可權的深化。
數據記錄許可權:
對同一個數據實體,不同用戶可以訪問的數據記錄也需要通過許可權進行控制,平台通過引入“維度”的概念,實現了具有層次和繼承特點的數據記錄許可權控制。
多粒度覆蓋,支持靈活的配置
只需通過簡單的配置項,即可靈活的設置不同類別,不同粒度的訪問許可權。業務系統在實施和使用過程中,可以根據需要對業務功能和業務數據的各個方面的進行控制,並可以由系統管理員進行管理和調整。
多級別的數據許可權,滿足各類需求
對用戶數據許可權的配置從隔離程度上細化為可見性,可增改,可刪除等級別,充分考慮到了業務系統不同需求:
只要選擇不可見的許可權,就可以使該類數據對特定用戶群完全隔離;
在用戶可見的基礎上,其對數據的操作許可權也可以設定不同的級別;
完善的邏輯體系
平台針對許可權的管理分發,設定了基於“角色”、“用戶”、“組”的完善的邏輯體系。對許可權的分發按功能層次分配到各角色;當同一個登陸者身兼不同角色時,可以通過“用戶”這個概念,實現多角色的疊加;依據現實的組織系統構建的複雜用戶體系,可以通過多級的樹狀“組”條理清晰的表述、管理。
便捷的配置工具
無論是對許可權邏輯的設置,還是不同訪問的設定,都是非常直觀便捷的。藉助平台提供的用戶管理工具,可以非常方便的配置以上一整套的許可權管理。
可擴展性和可定製性
源於平台的設計理念,從最初的版本開始,平台就把對系統功能的可擴展性和可定製性的支持作為核心功能,目前,平台已經在多個層面,以多種方式實現了對可擴展性和可定製性的良好支持,可以適應在項目生命周期各個階段的動態業務需求。
開發階段
在產品和項目的開發階段,平台的服務對象是業務開發人員,在這個層面,平台主要通過集成在開發設計工具中的相關功能,方便開發人員對系統的擴展和定製:
通過數據模型設計,業務流程設計,以及可視化的界面設計等功能,方便業務開發人員實現業務需求,提高開發效率;
平台進一步提供了腳本,公式,以及擴展組件開發的支持,必要時,業務開發人員也可以選擇採用這些方式擴展平台現有的功能;
平台為複雜業務邏輯的測試提供了完善的單元測試框架,在測試數據準備、運行環境模擬、測試結果校驗等多個環節提供相應的支持,方便業務開發人員進行單元測試,保證軟體質量。
實施階段
平台也為系統實施人員準備了相應的配置工具,這些工具將進一步面向業務,屏蔽底層技術實現,以方便實施人員在項目過程中對系統的定製和調整:
提供面向業務的數據模型和用戶界面的修改調整功能,包括單據欄位的新增、隱藏等功能,以便業務人員按照需要調整應用程序的用戶界面;
提供用戶界面快速生成工具,方便系統實施人員快速生成運行界面,以適應實際項目的需要;
實施人員可以通過系統內置的公式,調整應用程序邏輯。
運行階段
在項目正式運行之後,平台主要是通過以下的兩種方式,來保證用戶可以實時對系統進行調整和擴展:
在平台中為應用系統保留了很多可配置項目,這些配置項目可以被IT管理員根據實際需要進行調整,以滿足業務系統發展和調整的需要;
平台提供的界面定義、流程定義、報表定義等功能可以嵌入到應用程序中,形成面向最終用戶的運行界面調整、流程調整、以及自定義報表等功能,供IT管理員和業務人員使用