2019年3月26日 星期二

1Z0-900:JavaEE的逆襲 (下)

但是,在不同的時空背景下,架構又必須有所調整。過去硬體不是那麼發達的情境下,效能吃緊必須新增主機,因此有需要將商業邏輯(model)部署到不同的EJB伺服器上。但現今沒這種限制,很多VM幾乎是CPUMemory隨意加,作為一個Java程式設計師大概也沒有人想要在Controller呼叫Model時多了一些JNDI調用步驟,因此EJB的需求式微了!
為了推廣EJB的架構,Java EE的規格將EJB輕量化,稱為「EJB Lite」;並允許其嵌入Web伺服器中,就升級成為「Web Profile」的容器。使用Web容器時經常使用Tomcat,對比的概念,使用Web Profile的容器時,TomEE就是一個選項。
參考以下架構示意:


參考以下架構示意:
回到認證考試本身。這次我們拿到3本教材:
l  書籍1Developing Applications for the Java EE 7 Platform Ed 1
l  書籍2Java EE 7 Back-end Server Application Development Ed 2
l  書籍3Java EE 7 Front-end Web Application Development Ed 2
書籍3(Front-end)介紹Web Profile,加上書籍2(Back-end)就成為完整的Java EE Profile,或是完整的Java EE容器。書籍1則是兩者兼具,但內容簡單些。1Z0-900的考試內容,就是以書籍1為主,書籍23為輔。
至於Java EESpring的競爭會如何發展?其實Spring只是Java眾多Open Source社群的一個代表。就企業角度來看,Open Source常意味者不用錢,但必須自己有本事整合,有些時候處理JAR檔間的相依性或衝突不是件輕鬆的事,資訊安全的考量也是。Oracle本來就推企業級解決方案,定位和Microsoft是類似的;若在容器裡已經有完整的功能支援一般開發需求,甚至進行設定就可以不用開發,如JobsDataSources等,畢竟時間就是金錢,對企業而言未嘗不是可以接受的方案!
這次Oracle一刀砍掉5門認證,改推1門認證,展現逆襲的決心。1Z0-900肯定是比1Z0-899範圍更大,更難考;考試前要先通過OCPJP(1Z0-8041Z0-809)也已經不是輕鬆的事。整體而言看得出Oracle要提高證照擁有者素質的方向,以後大概不是背背考古題就能通過了!但這也是彰顯自己價值的好機會。考過Oracle OCP DBA的人就知道,Oracle 9i時要通過4門考試才能取得1DBA證照呢!
大家加油!我也是剛拿到原廠教材而已,說了這麼多自己都還沒去考不好意思。未來有實際的準備經驗再和各位分享!

2019年3月24日 星期日

1Z0-900:JavaEE的逆襲 (上)

 談到網站設計時,習慣上會使用MVC (model-view-controller)」的框架:
l   使用「model」處理需求的核心運算或是商業邏輯。model不認識HTTP的協定,也無需理會requestresponse相關物件。
l   使用「view」呈現model處理後的結果,以呼叫端可以辨識的格式回傳。若呼叫端是瀏覽器,就以HTML文件回傳。
l   使用「controller」來處理和程式運行環境(context)相關的部分。以web容器而言,就是處理和HTTP相關的請求(request)及回應(response)
因為model負責商業邏輯,通常會是效能最吃緊的地方的地方,因此Java EE除了Web容器外,允許model部署到獨立的EJB容器,成為分散式架構。但是在EJB 3大改版之前,其實程式碼不好寫,架構也笨重。
看準了這樣的機會,Spring使用了在EJB或企業板的Java規格裡看不到的「plain old Java objects (POJOs)」,提供了一個「輕量」級的解決方案,並標榜「簡化複雜Java程式開發(Spring simplifies Java development)」,因使開始吸引了眾多開發者的目光。
逐漸,EJBJavaEE也開始改革自己的架構,EJB 3.0開始推出了類似Spring使用的POJO原件,並加入了「Dependency Injection (DI)」和「Aspect-Oriented Programming (AOP)」,其實也都源自Spring的啟發。這大概就是SpringJava EE間的競合小故事。
回到Java的認證考試。原本Java EE的認證考試有5門,代表企業版的Java架構,分別是Web(1Z0-899)EJB(1Z0-895)JSF(1Z0-896)WebService(1Z0-897)JPA(1Z0-898);但在這次Oracle的大刀一揮下,全部在2019/03/31停考(https://javaxtalk.blogspot.com/2019/02/java.html)!取而代之的是「Java EE 7 Application Developer(1Z0-900)」,可以感受到這次Oracle推廣Java企業版的決心,或可稱為「Java EE的逆襲」吧。