開着跑車換輪胎,這樣的情形您能想象嗎?html
最近,一段拍攝於沙特阿拉伯的視頻就記錄了這樣的超牛特技。地址給你們分享一下:http://www.douban.com/group/topic/52087839。從短片中能夠看到,這輛汽車在沙漠中前進,一名男性就站在車門外,在幾個大轉彎以後,汽車成功地側翻了約45度,僅靠2個輪子貼在地上行駛着。畫面顯示五個戴着頭巾的男子探身從一輛正在行駛的銀色跑車裏爬出來,司機像F1賽車手那樣讓車子側立起來,僅靠車身一側的兩個車輪行駛,他們則很麻利地更換了懸空的另外一側兩個車輪。五名男子接下來的表現讓人大跌眼鏡——完成換輪胎特技表演後,他們並不急於回到車內,而是一臉興奮的擊掌和揮手慶祝,過路司機目瞪口呆地看完表演後紛紛加速超了過去。java
據瞭解,這種汽車絕技表演在阿拉伯十分流行,運用兩輪貼地面行駛的超高難度技巧,考驗着駕駛者與乘客間的絕佳默契。在Java框架使用中,你能體驗這種默契感嗎?程序員
帶着思考,咱們天然要聯想到Java應用中比較常見的熱部署。熱部署是在不重啓Java虛擬機的前提下,能自動偵測到class文件的變化,更新運行時class 的行爲。Java類是經過Java虛擬機加載的,某個類的class文件在被classloader加載後,會生成對應的Class對象,以後就能夠建立該類的實例。大多數基於Java的應用服務器,包括EJB服務器和Servlet容器,都支持熱部署。類裝入器不能從新裝入一個已經裝入的類,但只要使用一個新的類裝入器實例,就能夠將類再次裝入一個正在運行的應用程序。瀏覽器
Tiny框架就是這樣一部超牛的賽車,它支持在不中止應用的狀況下,增長或刪除業務單元。安全
Tiny構建者認爲,一個完整的框架可能須要有許許多多個部分組成,可是對於實際應用的用戶來講,它可能只須要其中的一部分功能。構架必定要有這種能力,能夠由使用者進行點菜式,使用,避免只要用一點點功能,就要引入許許多多的內容。 TinyVFS把對各類各樣的的文件系統的訪問封裝成統一的應用程序接口,這大大的簡化了應用程序自己代碼的複雜度。經過業務單元管理器,能夠在不中止其它業務單元的狀況下,增長新的業務單元,或把已經安裝的業務單元中止或下卸載。這裏所謂的業務單元,就是用來實現某種業務功能的完整集合,它包含了相關的Java Class文件、配置文件、媒體文件、界面展示文件(甚至支持把Jsp文件也放在Jar包中)等。利用業務單元,程序員能夠進行軟件開發、測試、發佈,大大方便了業務的設計與發佈。並且,業務單元之間也能夠有依賴關係,若是某業務單元依賴的業務單元不存在或被中止時,則此業務單元也會被中止。 開着車換輪胎,使用Tiny來應用,這種靈活性還體如今多個地方。服務器
(1)Tiny流程的執行位置十分靈活,能夠從流程的任意節點開始執行,流程可重入的特性能夠實現頁面流、工做流等功能。網絡
(2)Tiny模板引擎是一個基於Java技術構建的模板引擎,它具備體量小、性能高和擴展易的特色。適合於全部經過文本模板生成文本類型內容的場景,如:XML、源文件、HTML等等,能夠說,它的出現就是爲了替換Velocity模板引擎而來,所以在指令集上在儘可能與Velocity接近的同時,又擴展了一些Velocity不能很好解決問題的指令與功能,在表達多方面則儘可能與java保持一致,因此很是的易學易用。架構
(3)無論對象是不是在Spring等容器中託管,均可以使用緩衝邏輯,實現了緩衝邏輯無容器要求。框架
在UI引擎的組件包中,每一個UI組件都是一個Jar工程,使得UI組件的集成由框架自動進行,而沒必要程序員進行干預。UI組件自發現功能,避免了大量配置工做。性能
(4)支持BigPipe模式。利用Web服務器和瀏覽器之間的並行執行能力,BigPipe首先把網頁分解成多個可調用的Pagelet。多個Pagelet並行的在服務器端生成、網絡傳輸、瀏覽器展示,從而大大提高展示效率與效果。 (5)在穩定性方面,Tiny框架是立足於在須要穩定、安全要求很是高的應用環境中使用的,所以其穩定性就是框架構建者首要思考目標,核心部分只使用通過充驗證及普遍應用的第三方包。
總之,在這種靈活性基礎上,Tiny正在造成一個成熟的開源生態圈,包含了Tiny框架、Tiny開源組件、Tiny商業組件、Tiny技術支持、Tiny諮詢、Tiny培訓等,具備較強市場競爭力和可持續發展的體系,展示了一種新的軟件產業發展模式。