給初學者之四 java企業級應用之軟體篇

2021-06-08 05:51:47 字數 2976 閱讀 7711

嗯,說過了硬體就該是軟體了

這篇是這個系列的重中之重

首先我們來說說什麼是軟體,統一一下概念

所謂軟體通俗地說就是一套電腦程式

實現了某些功能的電腦程式

在很早很早以前,一台計算機的軟體是不分層次結構的

一台計算機只有乙個系統,這個系統既是作業系統又是應用軟體,與硬體緊密繫結

後來經過許多年的發展發展發展

人們把一些與硬體緊密相連的又經常用到必不可少的功能做到一套程式中去

這一套程式就被人們稱做作業系統

另外一些可有可無的,不同工作適應不同環境的功能封裝到另外一套程式中去

而這一系列程式被人們稱作應用軟體

如下圖:

-------------------------------------------

|應用軟體:falshgat/ie/realplayer/winamp..|

-------------------------------------------

|作業系統:unix/windows/linux/solaris... |

-------------------------------------------

前一篇我們知道,硬體分為伺服器工作站與pc

其實無論哪種硬體的軟體,都有作業系統與應用軟體

ok,那下面我們來談應用軟體

在現在企業級應用中,我們的應用軟體一般分為三層

三層分別是表示層,業務邏輯層,資料持久層

------------------------------

|表示層|業務邏輯層|資料持久層|

------------------------------

我們來說說三層中的代表軟體

表示層

這一層一般在客戶端pc機上,最常見的是ie瀏覽器,這就是表示層的軟體

表示層是直接與使用者互動的軟體

業務邏輯層

這一層一般在伺服器端,顧名思義,所有業務邏輯處理都在這一層完成

這一層也是三層中的重點,我們要說的大部分內容都是關於這一層的,這個等會再說

這一層就叫做中間層

資料持久層

這一層典型的就是資料庫,一般也在伺服器端

但該伺服器一般與裝業務邏輯層軟體的伺服器分開

當然你也可以用io輸入輸出流往硬碟上寫東西

但沒人會建議你這麼做,因為這樣做你的資料缺乏管理,不管怎樣

這一層要做的就是儲存資料,業務邏輯層軟體一般不負責保留資料

或者說業務邏輯層只負責暫時儲存資料,一關機,業務邏輯層資料全部over了

那麼資料的持久化(也就是儲存資料)就必須要在這一層完成

下面放著這些概念不談,我們來說說將來的趨勢

趨勢一:

瘦客戶端,很早很早以前,當時c/s模式也就是client/server

客戶端軟體大行其道的年代,乙個pc使用者,是採用乙個傻終端連線到伺服器上

然後進行相應的操作,最典型的就是我們上bbs經常用的c-term

這就是那個時代的產物,同樣還有我國現行的機票定座用的e-term

後來呢,瀏覽器變得非常流行,人們發現,瀏覽器也能傳遞一些資料

雖然這些資料並不像那些終端那樣準確,但應付大多數日常需求足夠了

於是人們就提出乙個瘦客戶端概念,也就是說,將來表示層所有的其他軟體疾揮?

我們唯一需要的就是乙個網頁瀏覽器,然後通過瀏覽器輸入ip位址連線到伺服器

然後進行相關的操作,由於網頁瀏覽器一般每個作業系統都有自帶乙個

這樣做就達到了給我們客戶端**的目的(不需要安裝額外軟體)

這樣模式被稱作b/s模式,也就是browser/server模式

但需要指出的是,雖然瘦客戶端是趨勢,但並不代表胖客戶端沒有市場

尤其是一些複雜的業務操作,還是瀏覽器這種簡單軟體無法勝任的

趨勢二:

傻資料庫,ok,首先,我承認,這個名詞是我發明的,但我實在無法找到乙個更好的表達

什麼是傻資料庫,如果誰對資料庫有所了解的話,就知道,以前的資料庫

有自己的一套管理體系,甚至有自己的客戶端,比如oracle,mysql,sqlserver都有

在某個管理工具上寫什麼sql語句查詢資料庫是我們以前常做的事

那麼將來我們提倡的是:將所有的業務邏輯封裝到業務邏輯層去

管理的事情由軟體來做,由業務邏輯層的軟體來做

所謂傻資料庫就是說,將來的資料庫什麼事都不用做

只用把資料給我儲存好就行了,那些複雜的業務邏輯什麼外來鍵什麼關聯

都沒資料庫什麼事了,都交給業務邏輯層軟體來做

這樣做的好處就是:我們就不需要這些該死難懂又複雜的資料庫系列管理工具了

而且這些工具每個資料庫都有自己的工具,完全不一樣,亂七八糟,沒有人喜歡面對他們

除了資料庫維護人員,也就是dba,我們是軟體工程師,維護的事讓他們去做

而且嚴禁資料庫維護人員改動資料庫的資料,他們只做備份,必要時候恢復一下就是了

了解了這兩個趨勢之後,是不是有種砍頭去尾保中間的感覺?

沒錯,未來的趨勢就是中介軟體時代,中介軟體工程師將是未來計算機應用的主流

那再次統一一下概念,什麼是中介軟體?

記得我上學的時候,看ibm的教材,看了半天中介軟體定義,就看懂記住一句話

中介軟體是做別人不願意去做的事情,現在想想,狗屁定義,呵呵

什麼是中介軟體,中介軟體是業務邏輯層的應用軟體

是處理業務資料與客戶端之間業務邏輯的一種應用軟體

一種提供網路服務的伺服器端應用軟體

舉個非常簡單的例子,網上銀行,某個人想用ie進入工行的賬戶,然後轉帳

在這個例子中,客戶端表示層顯然是ie,資料持久層顯然是銀行的核心資料庫

那麼中介軟體是什麼?中介軟體就是提供這種服務的系統

這三層的劃分如下

------------------------------

|表示層 | 業務邏輯層 | 資料持久層 |

------------------------------

| ie | 網上銀行 | 資料庫 |

------------------------------

ASP與資料庫應用(給初學者)

一般來說,乙個真正的 完整的站點是離不開資料庫的,因為實際應用中,需要儲存的資料很多,而且這些資料之間往往還有關聯,利用資料庫來管理這些資料,可以很方便的查詢和更新。資料庫有很多種,如 fox 資料庫 dbf access 資料庫 mdb informix oracle 和 sql server 等...

給wince驅動 應用初學者推薦的書籍

應用方向?c c 本人不做應用只知道用這兩個語言用到,不敢推薦 也來補充一下。programming microsoft windows ce.net 第三版英文原著 驅動方向 arm體系結構與程式設計 有點亂,感覺不怎麼樣,e文好的強烈推薦arm architecture reference ma...

使用EF構建企業級應用 四

本系列目錄 使用ef構建企業級應用 一 主要講資料庫訪問基類irepository及repository 的實現 使用ef構建企業級應用 二 主要講動態排序擴充套件的實現 使用ef構建企業級應用 三 主要講靈活的構建查詢條件表示式expression 使用ef構建企業級應用 四 主要講下在mvc環境...