平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术
介紹
由于世界仍在Java的掌控之中,因此我們經(jīng)常定義所謂的基于組件的平臺 。 我在2000年的OpenUSS(開放大學支持系統(tǒng))方面擁有這一經(jīng)驗。 當時我有一個想法,就是開發(fā)一個可以使用組件體系結構和J2EE技術??( OpenUSS Component Architecture )進行擴展的平臺。 一段時間后,我們看到了門戶和Portlet技術的誕生。 每個人都試圖構建可輕松安裝在基于Java的門戶服務器中的portlet。 您還記得所有這些門戶網(wǎng)站,例如Apache Jetspeed,Liferay,JBoss Portal,IBM Webshepe Portal等嗎?
門戶網(wǎng)站浪潮過后,出現(xiàn)了OpenSocial小工具 ,該工具不僅為Java指定,而且通常可用于不同的技術實現(xiàn)。 它使用完全獨立于Java的HTML , JavaScript和REST 。 Apache Shindig是OpenSocial小工具容器的開源實現(xiàn)。 OpenSocial小工具還是iGoogle,Orkut,MySpace,XING和StudiVZ的主要技術。 使用OpenSocial,您可以通過兩種不同的方式集成Web應用程序 。
今天,您仍然擁有諸如Portal,Portlet和OpenSocial小工具之類的技術,但是它們不再具有吸引力。 iGoogle已死, 沒人愿意在新的Web應用程序中使用門戶和Portlet技術 。 如今,所有重要的Web應用程序都不再使用這些門戶,Portlet和小工具。 這些技術的增長肯定會降為零 。
平臺
如今, 平臺通常由兩個元素組成:
- 適用于網(wǎng)絡瀏覽器的Web App :今天,它仍然是使用最多的應用程序。 筆記本電腦,臺式機,平板電腦和智能手機用戶使用此類應用程序。
- 本機應用程序的平板電腦,智能手機和穿戴式:只有在少數(shù)情況下,你仍然需要臺式機應用程序和筆記本電腦作為web應用是用于該用途的情況一天比一天好。 當今,針對智能手機,平板電腦和可穿戴設備的最具針對性的平臺是Android和iOS 。
讓我們詳細看一下這兩個元素。
網(wǎng)絡應用
如上所述,我們不再需要那些門戶,Portlet和小工具。 我們是否還在尋找基于組件的平臺? 我們是否仍然需要遵循以下要求,而這些要求通常是通過使用門戶網(wǎng)站,Portlet和小工具來解決的 ?
- 匯總內容和應用
- 跨應用程序集成
- 提供統(tǒng)一的用戶界面
- 支持統(tǒng)一的Web應用程序開發(fā)平臺
- 個性化內容和服務
- 部署用于發(fā)布動態(tài)頁面的框架
答案是肯定的,但主要重點轉移到了不同??領域 。 Web應用程序開發(fā)的新趨勢是所謂的漸進式Web應用程序 (PWA)。 今天更重要的是專注于用戶體驗而不是Web應用程序本身 。 以下是漸進式Web應用程序的定義 (摘自Google Developers Code Lab):
- 漸進式–適用于每個用戶,無論瀏覽器選擇如何。
- 響應式–適合任何外形:臺式機,手機和平板電腦。
- 獨立的連接性–增強了服務人員的能力,可以離線或在低質量的網(wǎng)絡上工作。
- 類似于本機應用程序–通過應用程序風格的交互和導航,用戶感覺就像一個應用程序。
- 新鮮-由于服務人員的更新過程,始終保持最新狀態(tài)。
- 安全-通過HTTPS提供服務,以防止監(jiān)聽并確保內容未被篡改。
- 可發(fā)現(xiàn)–由于W3C清單和服務工作者的注冊范圍,可以將其識別為“應用程序”,從而使搜索引擎可以找到它。
- 可重新參與–通過推送通知等功能使重新參與變得容易。
- 可安裝–允許用戶在主屏幕上“保留”他們認為最有用的應用,而無需麻煩應用商店。
- 可鏈接–通過URL輕松共享,不需要復雜的安裝。
因此,主要重點從 :
- 門戶網(wǎng)站,它被定義portlet和小工具 ,使企業(yè)的壽命(交付的門戶網(wǎng)站,門戶,小工具)和開發(fā)人員 (其中寫門戶網(wǎng)站,門戶,小工具), 更易于
- 漸進式Web應用程序 ,使用戶感到高興。
這并不意味著使用漸進式Web應用程序我們就無法交付上述要求。 讓我們詳細了解所有需求點。
?
(1)匯總內容和應用程序,并跨應用程序進行集成
使用漸進式Web應用程序,情況看起來會有所不同。 您將不會使用Portlet進行這樣的集成。 相反,它將是使用相同工具欄的許多Web應用程序的集成,并且每個Web應用程序都像一個獨立的應用程序一樣工作。 這是一個比較。
門戶和Portlet集成:帶有門戶和Portlet的netvibes
在Portal和Portlet集成中,每個Portlet可以作為單獨的Web應用程序最大化。
與Google Web Apps進行漸進式Web Apps集成:Google+,收件箱,搜索等。
在Google關閉之前,我是iGoogle(來自Google的OpenSocial Gadgets解決方案)的愉快用戶。 一開始我以為我需要像netvibes一樣尋找替代品。 最后,我一點都不會錯過。 如果我需要獲取信息,則最需要全屏模式的信息 。 因此,最后,我總是需要一個整體的Web應用程序, 而不僅是一個小Portlet 。在漸進式Web Apps集成中,每個圖標都定義了一個Web應用程序,它將作為獨立的Web應用程序單獨打開,以遵循Native的規(guī)則。 類似于應用程序 。
(2)提供統(tǒng)一的用戶界面
兩種類型都可以支持統(tǒng)一的用戶界面。 漸進式Web應用程序使用常見的UI模型,例如Google Material Design或Bootstrap 。 Portal,Portlet和小工具大多具有使用Portal Container中的外觀的機制。
(3)支持統(tǒng)一的Web應用開發(fā)平臺
這是漸進式Web應用發(fā)揮作用的地方。 只要該Web應用程序使用HTML , JavaScript,CSS和REST ,就可以在不同的技術堆棧(如Java,PHP,JavaScript等)中實現(xiàn)。 由于在這樣的漸進式Web應用程序中沒有任何“門戶容器”,因此您可以垂直使用所選的技術堆棧 。 而門戶和Portlet部署是基于門戶容器的 。 因此,如果將Tomcat用作容器,則必須將Portlet部署在該容器中。 當然,您可以撥打遠程服務電話,但這不是標準情況。
(4)個性化內容和服務
這是Portlet展示其強大特性的地方。 您可以根據(jù)需要關閉和打開portlet。 如果您在上方看到Google工具欄,則還可以個性化內容。 因此,在這種情況下,漸進式Web應用程序可以通過其Web應用程序的個性化設計執(zhí)行相同的操作。
?
(5)部署發(fā)布動態(tài)頁面的框架
這也可能與這兩種類型和趨勢去微服務 。
總之,您仍然可以使用Progressive Web Apps滿足上述要求。 此外,您可以使用標準Web組件構建基于組件的Web應用程序。 可以在此處看到漸進式Web應用程序的一些實際使用案例:
- Flipkart:Flipkart上的漸進式Web應用程序
- 柏林航空:柏林航空的漸進式Web應用程序
本機應用
如果沒有照顧最常用的客戶端(手機和平板電腦)的平臺策略,那就是失敗。 以下是當今客戶端設備及其操作系統(tǒng)的類型:
- 裝有Windows,Linux和MacOS的臺式機和筆記本電腦 :在大多數(shù)情況下,您只需要帶有Web應用程序的Web瀏覽器(Firefox,Internet Explorer,Edge,Chrome和Safari)。 無需為每個操作系統(tǒng)構建本機應用程序,只需使用Progressive Web Apps 。 以下是一些事實:
- Google停止了Picasa客戶端應用的開發(fā),并使用Google相冊將所有內容移至網(wǎng)絡 。
- 裝有Android和iOS的平板電腦 :目前,您需要為Android和iOS構建本機應用程序。 但是在許多情況下,帶有漸進式Web應用程序的Web應用程序可能是解決方案,因為Web應用程序可以執(zhí)行與本機應用程序幾乎相同的功能,尤其是隨著HTML5的到來。
- 具有Android和iOS的手機 :如目前在平板電腦區(qū)域中一樣,您需要為Android和iOS構建本機應用程序。 由于屏幕大小,我們可能需要開發(fā)本機應用程序。 但是,漸進式Web應用每天都在做得更好(請參見下面的圖片以及Flipkart和Air Berlin的兩個示例)。
- 配備Android Wear,Android Auto,Android TV,watchOS,Apple CarPlay和tvOS的可穿戴設備, 小工具, 汽車和 電視 :這是您必須編寫本機應用程序的區(qū)域,因為較小的設備將無法運行網(wǎng)絡瀏覽器。
具有材質設計的漸進式Web應用程序
Java實現(xiàn)技術
為不同的目標系統(tǒng)開發(fā)應用程序非常昂貴。 漸進式Web應用程序的想法很棒,因為它使您無需為每個操作系統(tǒng)編寫本機應用程序。 但是仍然在某些情況下(至少在當前情況下),我們需要構建本機應用程序。 為此目的并節(jié)省資源,有所謂的混合應用程序開發(fā) 。 有很多帶有HTML用戶界面的混合應用程序框架 。
這種技術的問題在于HTML UI并不是真正的原生。 因此,存在第二種類型的混合應用程序 ,即具有本機UI的混合應用程序框架 。 在這種情況下,您仍將在每個操作系統(tǒng)中使用本機UI,并使用例如相同的編程語言來覆蓋其余內容。 由于Java仍然是排名第一的編程語言 ,因此明智的做法是將平臺策略基于Java。
比較漸進式Web應用程序–具有HTML UI的混合應用程序–具有本機UI的混合應用程序
下圖顯示了運行時漸進式Web應用程序 , 具有HTML UI的混合應用程序和本機UI之間的比較。
Java為我們提供什么樣的工具和產(chǎn)品來實現(xiàn)上述技術?
(1)基礎
- 用于微服務架構的 Spring Boot和Spring Cloud 。 這些開源產(chǎn)品確實很成熟,可以立即投入生產(chǎn)且易于使用。
(2)基于漸進式Web應用程序的Web應用程序
- 對于這種類型的Web應用程序,Java領域沒有很多替代品。 像JSF或Grails這樣的框架并不是真正能夠實現(xiàn)此功能的,因為您需要必須在瀏覽器端運行JavaScript。 使用純Java而不是通過AngularJS之類的框架在JavaScript中增加復雜性可能會更好。 為此,您可以選擇以下產(chǎn)品:
- GWT –這仍然是從Java到JavaScript的最佳開源轉譯器。
- GWT是該類別中最成熟的產(chǎn)品 ,而Google在許多 產(chǎn)品中都使用GWT 。 GWT可以與以下UI框架集成:
- 引導程序( GWTBootstrap3 ),
- 這里有一系列最佳實踐,它們是如何使用GWT來實現(xiàn)Progressive Web Apps的 。因此,您可以立即使用GWT用Java完全編寫Progressive Web Apps。
(3)具有HTML UI的本機應用程序
- 在Android和iOS的外觀上使用mGWT和mGWT PhoneGap :使用相同的Java,GWT和PhoneGap / Apache Cordova技術,您可以使用HTML UI編寫本機應用程序。 您可能應該使用Progressive Web Apps技術,而不是使用該技術,因為HTML UI看起來并不是本機的。 漸進式Web應用程序是相同的,您可以在Web和移動設備上編寫一次。
(4)具有本機UI的本機應用程序
- 在Android中,您可以僅使用Java來實現(xiàn)本機UI,不需要任何特殊的解決方法。
- 在iOS中,您需要使用Objective-C來實現(xiàn)本機UI。 使用諸如J2ObjC (Java到Objective-C的編譯器)之類的開源產(chǎn)品將極大地重用Java代碼。
- 像Google Inbox這樣的產(chǎn)品使用GWT和J2ObjC在同一時間跨操作系統(tǒng)(Web,Android和iOS)交付相同的功能。
平臺策略
那么,我們今天如何定義平臺策略? 以下是我的總結:
(1)基礎
- 如果您使用Java作為編程語言的Spring引導和Spring云為您的microService archtiecture實現(xiàn)。 但是最后,您可以使用不同的實現(xiàn)技術,例如Java,.NET和其他。 在下一點中使用這些標準很重要。
(2)服務器端和業(yè)務邏輯
- 使用RESTful和JSON進行mircoservices之間的通信。
- 在此平臺策略中,必須使用OpenId Connect和OAuth 2進行身份驗證和單點登錄,以便您能夠將所有微服務與所有不同的實現(xiàn)技術集成在一起。
(3)用戶界面
- Portal和Portlet已死 。 將漸進式Web應用程序用于任何可能的應用程序。 如果您需要集成許多Progressive Web Apps,則只需使用集成或工具欄,就像Google對其產(chǎn)品所做的操作一樣(請參見上面的Google+圖片)。
- 如果需要本機應用程序,請使用本機UI而不是HTML UI的混合應用程序框架來構建它們。
- 以下是一些開源產(chǎn)品 ,它們使您可以更輕松地在Java中使用Native UI構建Progressive Web Apps和Native App: GWT和J2ObjC 。 考慮使用它們可以提高生產(chǎn)率和上市時間。
當今的平臺策略不必將每個單獨的實現(xiàn)都基于相同的語言,即使您的團隊只強調相同的語言,而Java仍然是可用的頂級編程語言。 本文結尾的下一張圖片顯示了基于Java的技術平臺的最新實現(xiàn)技術。
基于Java的平臺實現(xiàn)技術
翻譯自: https://www.javacodegeeks.com/2016/09/platform-strategy-portlets-opensocial-gadgets-progressive-web-apps-state-art.html
總結
以上是生活随笔為你收集整理的平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux安装图形界面(linux 安装
- 下一篇: 防御DDOS服务器(送DDoS防御服务器