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