A項目:
某公司DMS數據采集系統:
主要總結經驗有三:
一.數據文件解碼與編碼,用socket.流的傳送文件到服務器(設計為單例的),并用了定時器.(Timer.schedule).后來改為:插件Quartz+Spring來實現.具體實現還可以用過慮器等
二,由于數據不多,并且大多用于以上項目的報表與帳單輸出,oracle中用pl/Sql做了相關的存儲過程,用于輸出顯示.在此不做說明;
三.客戶端可能有多個(大并發),所以服務端在指派任務時我用延遲的線程池+雙緩沖隊列.(項目經理說這個隊列以后都會用得很少.)
通過讀取UNIX系統日志文件,獲取其中用戶的登錄記錄加以處理統計,最終生成多干對登錄登出記錄上傳至服務器,等待分析。
讀取的日志文件為:wtmpx
其為一個純2進制文件。
通過我們的程序最終應將此文件轉化為一個記錄了每個用戶的一組登錄登出數據的文本文件
實現過程:
wtmpx此文件中記錄了若干條用戶的操作數據,登錄和登出分別都記錄在該文件中。此文件會根據用戶的操作而不斷增長的。unix會將每次用戶的操作寫入該日志文件。
1:
從日志文件中讀取10條2進制數據。并存入一個臨時文件中。
臨時文件名:temp.log
那么我們就需要將當前讀取10條數據后,游標的位置記錄起來,以便我們下次再讀取日志文件時直到從哪里開始。
記錄游標位置的文件:
last-position.txt
第二步:
從臨時文件temp.log中將每一條2進制的數據轉換為我們可以理解的字符串信息,并存入一個解析后的日志文件中log.txt
對于unix的日志文件中的一條數據中有若干信息,但我們不需要將所有信息全部解析出來。這里我們只采集我們需要的部分信息,其中包括:
第三步:
將log.txt中的數據匹配成對,將匹配上的數據保存在logrec.txt文件中,等待被發送至服務器。
將沒有被匹配成對的數據存入login.txt文件中,等待下次匹配
B項目: NETCTOSS某公司計費支撐系統-網絡版:
--用于維護UNIX服務器賬號、資費標準, 以及查詢用戶消費情況的在線系統。
--系統分為如下模塊:資費管理、賬務賬號、 業務賬號、角色管理、管理員管理、賬單 管理、報表等。
--我們開發其中的資費、賬務賬號、業務賬號、 角色、管理員(這兩個數據表也用到很多的關系表中間表,自認為比較麻煩)。
主要總結經驗如下::
一:查詢.
帶條件、分頁、關聯:為了客戶的良好體驗,一般都是真分頁,不做假分頁,當然前期做案例演示還是用假分頁好.主要是Sql(本項目用的是Spring+Hibernate,以后都寫為Hql)的判斷與拼寫,這個在多個模塊中都用到.我想這個得成一個模板才好(當然前臺也是),其中對參數的分配比較麻煩,不過和后面的角色與管理員分配相比就差了些.
二.權限與角色模塊管理
. --用途是能夠滿足一個軟件的多元化,滿足不同的人的使用需求,就是要給不同的人分不同的模塊。現在讓我說也很難說得清,但心里對如何操作卻是明白
為什么說不好說呢,因為BS架構考慮到下拉框的傳輸,struts中的不同tags不同,寫完完全不同,從xml中讀出權限后處理為一個list,再通過中間表來找到相關的角色
這時就是不簡單的修改,而是一個修改動作包含了:查詢,刪除,再增加的操作(見下面) www.yztrans.com
--角色復選框的值,是查詢出的所有的角色,不是模塊。
--新增時分3步驟(參考角色新增)
a、新增管理員數據
b、從新增數據中得到管理員ID
c、根據管理員ID,以及頁面傳遞過來的一組角色ID,
新增管理員和角色中間表數據。
----權限表:用XXX.xml替代,做為一個數據源,不管是oracle,mysql等,還是一個文本,都要做到方便的讀寫,這個讀xml文件其實不難,但是應用廣,我在做的微信公眾平臺
后才發現.所有傳輸數據都是寫為xml格式,(當然一些接口還是用json來傳遞參數). www.qcwyo68.com 托福答案