由於公司領導要求寫一篇文章發表到公司內部報刊,加之近期準備考個證,要筆試**,多年沒有用筆寫字了,藉此機會練練手。部落格長期沒變化了,於是一併發到隨筆中充數,哈哈!
建庫專案有感
摘要:本文以我參與的多個建庫專案為例項,**了我對建庫專案的理解、建庫系統開發過程中涉及的關鍵技術,以及專案實施的過程,最後總結專案過程中遇到的問題。我以專案負責人及主要開發人員的身份參與了這些專案,專案開展過程中,借鑑了公司多年在建庫領域的豐富經驗,主要在地圖展現、入庫機制等方面有所改進,藉此機會與大家共同**。
正文:一、建庫專案理解
我們公司最早開展建庫專案,多年來經過大批優秀軟體工程師的不懈努力,積累了豐富的經驗和成果。建庫系統最通常指的是對基礎地形資料的建庫,除此之外,還包括對控規、規劃成果,甚至地下管線的初始建庫。是各種基礎資料的整理統一入庫應用的過程。
我們常說資料是gis的核心,可見資料的重要性。而建庫系統就正是採集製作、集中入庫、統一管理、資料共享服務的這樣乙個載體。在資料的採集製作過程中,系統需要提供嚴格遵循資料標準的資料輔助成圖及資料監理軟體,來保證原始資料的質量;在集中入庫過程中,我們要對多源異構gis資料提供高效無損轉換功能,並與資料更新機制、歷史資料版本機制協調運作,完成各類資料的更新入庫;統一管理是對各類資料的使用及加工,通常提供常用gis功能、專題查詢統計、空間分析,歷史資料維護使用等功能;資料共享服務包括地圖轉換輸出,及逐漸形成的乙個資料服務共享平台,為第三方或其他系統提供gis基礎資料支援服務。
二、關鍵技術
建庫系統由於開展較早,屬於基礎建設級別資訊化產物,大部分的需求、技術較成熟穩定,然而建庫系統又是與外業測量,資料生產加工,與gis資料結合最緊密的資料處理管理系統。隨著it及gis技術的不斷發展,我們在系統設計,功能實現上從未停止過完善與創新。
建庫系統首先要解決的就是要靈活應對各種地方特色的資料標準、生產流程差異性。通過產品化的思路,最大限度的提高系統的靈活性、可擴充套件性,有效應對使用者特色需求。
其次就是要解決多源異構gis資料的無損可逆轉換問題。無損是建庫系統追求的終極目標之一,但是我們應該把它理解成誤差最小。絕對的無損是不實際的,因為我們使用的最基本的度量資料是有限精度的,我們應該通過技術的改進減少誤差,盡量避免外業測量後資料的生產、加工、管理過程產生不可接受的誤差,如:我們可以減少資料轉換的中間環節,減少使用容易帶來誤差的資料格式等。shape file格式是我們常用的gis資料格式,但它在描述定義弧段、圓等實體時力不從心,只能通過一些小段線的微積分模擬的方式實現,在資料轉換過程中我們可以選用支援實體型別更完整的geodatabase格式。資料轉換過程中還要注意對資料精度的保證,盡量控制在千分之一以內。
接下來要談到的是歷史資料版本機制。該機制應該是建庫系統乃至所有需要維護歷史資料的資訊系統最重要部分,它往往會影響到整個系統框架的搭建,與編輯機制、入庫出庫、應用功能等緊密聯絡。我個人總結了三種實現方式,分別是完全編碼實現、完全arcgis方式實現、混合方式實現。以前的建庫系統屬於第一種,採取對每個實體打上時間戳的方式,涉及到幾乎所有系統的功能都與該版本機制耦合,額外的增加了編輯功能的複雜度,帶來系統穩定性的降低;第二種方式中,arcgis平台給我們提供了編輯事務版本和歷史檔案資料版本。我們可以採用編輯事務版本來實現編輯功能,有點眾多,可以有效解決多人併發編輯衝突,自動實現逐步撤銷、恢復,對長編輯事務的支援等。對歷史資料的管理,採用arcgis提供的歷史檔案資料版本機制,其實現原理與我們自己維護實體時間戳方式類似,但遠不如我們自己維護來的靈活實用,歷史檔案版本機制在實際專案應用中不是很實用,不能很好的滿足建庫系統中使用者對歷史資料版本管理應用的需求。第三種方式力求綜合前兩種方式的優點,避免它們的缺點。多採用編輯事務型版本機制來實現要素級編輯,開發人員可以專注於編輯功能本身,歷史資料版本機制則採用要素級維護時間戳的方式實現。這第三種方式是最複雜、實際操作起來實現的組合最多的。我們在實際專案中也在不斷探索更優秀的方式,如按照專案需求要素級編輯要不要產生歷史資料版本的不同,可以採用絕多數功能使用ae開放的功能模組,特殊功能單獨開發,由於ae開放的功能暫時無法追加對編輯要素時間戳的維護,所以這種方式必然無法產生要素級編輯歷史版本。對於一定需要記錄要素級編輯過程中產生的歷史版本的需求,我們可以在場事務編輯機制的前提下,編寫帶時間戳的編輯功能。資料批量更新產生的歷史資料採用維護時間戳的靈活應用方式實現,對時間戳的按工程、子工程分組管理,可以改善版本管理的使用者體驗。由於使用者對系統效能的更高要求,考慮將現勢資料庫與歷史資料庫相分離的機制,從物理儲存上減輕伺服器負擔,改善系統整體效能。更多的細節還需要我們到現實的專案開發實施中去實踐、探索、發現。
三、專案實施
建庫系統的實施也是有獨特之處的,由於包含有資料生產、加工、初始建庫的過程,與其他資料應用型系統有很大不同。我們需要計畫安排相當長一段時間用於資料生產加工,在此過程中我們一般需要開發相應的資料輔助生產、資料監理等工具來保證原始資料的質量,可能還需要負責資料監理相關的工作,在常州武進建庫專案中我們正是充當了建庫方與監理方的角色,如果建庫系統要朝著基礎資料生產加工、入庫出庫、管理應用的全流程系統方向發展,輔助成圖軟體和資料監理軟體是不可或缺的。
初始建庫過程往往需要相當長的一段時間,為了提高效率,我們可以把它與後期資料更新維護功能分開,只需要提供資料的轉換入庫及接邊功能。建庫系統是乙個使用集中、管理集中的系統,需要對甲方系統管理員進行認真仔細的維護培訓,使用者手冊要編寫詳盡規範,培訓好乙個甲方系統管理員,可以很大程度的減少我們後期專案的維護服務成本。
四、總結
系統的穩定性在建庫系統中體現得尤為突出,頻繁的大資料量、複雜資料結構的匯入匯出對系統及平台穩定性是乙個考驗,一般的有效方法可以及時公升級資料庫管理系統到推薦版本,及時更新arcgis平台補丁等。
目前,建庫系統朝著高擴充套件性、產品化方向及資料共享服務平台方向發展。資料標準是建庫系統的靈魂,它的擴充套件維護機制是產品化首要解決的問題,基礎資料共享服務介面及運營模式是資料共享服務平台發展的首要問題。
學習Mysql有感 建表(1)
建表就是乙個宣告列的過程,所以想要建好表,首先要掌握列型別1.整型 可能有些同學對位元組和位概念不是很懂,咋們就拿tinyint舉個栗子 tinyint 1位元組,8位 那麼它的儲存的有符號位範圍就是 128 127,無符號範圍就是0 255 那麼這些值是咋來的呢?這裡8位就對應二進位制的8位 00...
專案失敗有感
今天是2012年3月21號,自己在intel的實習專案沒有及時的做出來,在最後關頭發現個bug。今天不能夠再演示了。這兩周因為急著要把東西做出來,所以一直都很忙,很忙的過程中自己的除錯技術在不斷的調 的過程中成長了,可是其中犯了很多做專案學習的大忌。蘿莉囉唆的記錄一下,望以後能夠糾正 1 先說men...
MS SQL Server 建庫建表
create database test use test 建立使用者型別表 create table usertype id int not null identity 1,1 primary key,typename varchar 200 default null typedescriptio...