1. gzyueqian
      13352868059

      哪里的java培訓比較好?來粵嵌試聽一下java培訓課程就知道了

      更新時間: 2018-09-19 10:08:40來源: java培訓課程瀏覽量:4171

          給初學者之五:企業級應用之中間件
          前面一篇簡單介紹了一下應用軟件的分層,下面重點介紹一下中間件,也就是業務邏輯層的軟件結構 從本系列第二篇我們知道,java程序是跑在虛擬機之上的
          大致結構如下: 
          ------------ 
          | grogram  | 
          ------------ 
          |  虛擬機  | 
          ------------ 
          | 操作系統 | 
          ------------ 

          也就是說操作系統先運行一個java虛擬機,然后再在虛擬機之上運行java程序這樣做的好處前面也說過了,就是安全,一旦出現病毒或是其他什么東西掛掉的是虛擬機,操作系統并不會受多大影響 

      這時候有人可能會問,為什么非要虛擬機?把操作系統當成虛擬機為什么不行?
          可以,當然可以,但是這樣做某一個應用軟件的bug就可能造成整個操作系統的死亡
          比如說我們在某個服務器上安裝了一個收發電子郵件的軟件和java虛擬機,那么一旦黑客通過收發電子郵件的軟件入侵系統,那么操作系統就整個玩完
          那么如果黑客通過java程序進行攻擊的話,那么死的將會是虛擬機而不是操作系統,大不了虛擬機崩潰,而操作系統正常運行不受任何影響 
          舉個簡單例子,比如說常見的是將數據庫(DB)與中間件放在同一臺服務器上
          ------------------------ 
          |  program |           | 
          -----------|     DB    | 
          |  虛擬機  |           | 
          ------------------------ 
          |        操作系統      | 
          ------------------------ 

          那么此時如果沒有虛擬機,黑客病毒攻擊中間件系統,就有可能造成操作系統的死亡。那此時數據庫也有可能跟著一起玩完,那損失可就大咯!那如果此時有虛擬機,那么一旦被攻擊,死的是虛擬機,操作系統與數據庫不受任何影響
          嗯,回顧完虛擬機,再來介紹中間件 
          在很早很早以前,任何一家企業,想要搭建一個局域網系統,他需要請許多個工程師。比如說我們想搭建一個網上銀行,客戶端用瀏覽器,后臺數據庫比如說用oracle
          那么搭建這樣一個網上銀行,可能需要用到多少個工程師,我們來算一算
          首先,由于客戶端用的是瀏覽器,我們需要一些了解網絡通訊協議以及一些瀏覽器標準的網絡工程師
          其次,由于后臺數據庫用的是oracle,那我們還需要請oracle的工程師,因為數據庫這一層每個數據庫公司的接口什么都不一樣
          然后,我們還需要一些操作系統的工程師,因為我們的系統需要跟操作系統直接交互
          ,我們需要一些設計網上銀行系統及其相關業務的工程師太多了太多了,這樣一個中間件隊伍實在太龐大了,制作維護成本實在太高了
          不僅如此,這樣一個中間件就算做出來,他們所寫的代碼也只能滿足這一家公司使用
          其它公司統統不能再用,代碼重用率極低,近乎不可能重用。畢竟這個系統中改動任何一個部分都有可能涉及到整個系統的改動 
          那么如何降低成本? 
          我舉出了四組的工程師: 
          網絡工程師,數據庫工程師,操作系統工程師以及設計網上銀行系統的業務工程師。除了一組設計網上銀行的業務工程師之外,前面三組工程師是不是每一個項目都需要的?
          就算不是每一個項目都需要,至少也是絕大多數項目需要的吧? 哪個項目能夠脫離網絡,數據庫和操作系統?不可能,在這個時代已經很少很少了
          好,那既然每個項目都需要,我們是不是可以用一個產品來取代這三組的工程師呢?我們的業務工程師只需要遵循這個產品所提供的接口,進行相應的開發就行了,人們提出了一種叫做appserver也就是應用服務器的東西,應用服務器是干什么的?按官方的說法,應用服務器是包括有多個容器的軟件服務器
          那容器是什么?容器(Container)到底是個什么東西我想多數人還是不清楚
          在說這個之前,先介紹一下組件 
          什么是組件,組件是什么?組件其實就是一個應用程序塊,但是它們不是完整的應用程序,不能單獨運行 
          就有如一輛汽車,車門是一個組件,車燈也是一個組件但是光有車燈車門沒有用,它們不能跑上公路。在java中這些組件就叫做javabean,有點像微軟以前的com組件
          要特別說明的是,由于任何一個java文件編譯以后都是以類的形式存在,所以javabean肯定也是一個類,這是毫無疑問的
          好,那么容器里裝載的是什么呢?就是這些組件 
          而容器之外的程序需要和這些組件交互必須通過容器 
          舉個例子,IE發送了一個請求給容器,容器通過調用其中的一個組件進行相關處理之后,將結果反饋給IE,這種與客戶端軟件交互的組件就叫做servlet
          但是組件有很多種,那么如何區分這些組件呢? 
          有多種管理辦法,比如同是同樣是servlet,有些是通過jsp生成的。而有些是開發人員自己寫的,那么通過jsp生成的servlet集中放在一個地方
          而開發人員自己寫的則需要在xml里面配置一些基本的參數
          同時,不同組件有可能還需要繼承一些特定的父類或者接口,這也是容器管理的需要還有其他的一些組件,這里就不一一說明舉例了 
          那么容器有很多種,按照他們裝載的組件類型劃分。比如有裝ejb的ejb容器,有裝servlet與jsp還有靜態頁面的web容器等等
          //這種只含有web容器的應用服務器也被叫做web服務器,當表示層的應用軟件通過網絡向appserver發送一個請求的時候
          appserver自動找到相應容器中的組件,執行組件中的程序塊,把得到結果返還給客戶
          而我們要做的事就是寫組件也就是javabean,然后放到appserver里面去就可以了。至于怎樣與IE通訊,怎樣截獲網絡上的請求,怎樣控制對象的數量等等
          這些繁瑣而無味的工作我們都不管,都由appserver去做吧,把注意力集中在業務邏輯上
          appserver與其他相關軟件的關系如下圖: 
          ------------------------------------------------------- 
          |    表示層    |       業務邏輯層        |數據持久層 | 
          ------------------------------------------------------- 
          |              |    -----------------    |            | 
          |      IE      |    |   javabean    |    |            | 
          |              ->   -----------------    ->   DB      | 
          |    client   <-              appserver <-            | 
          |              |-------------------------|            | 
          |              |        虛擬機           |            |
          |--------------|-------------------------|------------| 
          |    Windows   |    Linux/Saloris        |LinuxSaloris| 
          |--------------|-------------------------|------------| 

          圖上可以看出:虛擬機負責處理中間件與操作系統之間的交互 
          appserver則負責組件的管理以及與其他兩層的業務交互 
          要說明的是上圖中還包含有應用程序客戶端容器(Application client container)管理應用程序客戶端組件的運行,應用程序客戶端和它的容器運行在客戶機
          這種情況比較復雜一般說的是兩個server之間的通訊,比如jsp/servlet容器在一個服務器上,而ejb容器在另外一個服務器上等等
          這是分布式操作系統大面積應用的基礎,這個以后再說 
          嗯,那么話題再回到中間件上去,什么是中間件? 
          appserver就是所謂的中間件,但是中間件不僅有appserver,還有其他的東西換句話說,appserver只是中間件的一種
          而關于中間件有諸多規范以及遵循這些規范的模型,的規范無非兩種,一個是j2ee還有一個是.net
          但是.net幾乎只有微軟在用,所以很多人把.net這個規范就當成是微軟的中間件產品也不為過,畢竟沒幾個公司喜歡跟著微軟屁股后面跑的

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日本精品中文字幕 | 日韩精品在线视频 | 亚洲国产大片一区官网 | 日本三级香港三级三级人!妇久 | 亚洲欧美高清在线精品二区 | 日本亚洲中文无线码在线 |