JAVA网页编程之与林昊一同切磋OSGi仓酷云
轮性能微软曾做过一个例子,就是同一个项目用java和.net网页编程来作,结果开发周期,.net网页编程是java的一半,性能java是.net网页编程的十分之一,代码量java是.net网页编程的三倍。呵呵,这说明了什么,.net网页编程的全方位比java好。但是有的人说.net网页编程不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net网页编程很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net网页编程,只是推出了跨语言的.net网页编程,在往年5月份的网侠年夜会上,InfoQ中文站有幸与国际OSGi的前锋林昊(BlueDavy)在一同切磋了OSGi的相干话题,包含它的上风、庞大度和Java下的完成等等。在谈到接纳OSGi作为开放服务框架的基本架构能带来优点时,林昊是这么论述的:
信任SOA如今已是全部业界的核心话题了。由于如今良多人都入手下手用OSGi,大概说进修OSGi,大概良多人城市想,OSGi和SOA是否是有分离点?由于OSGi在R4今后,也就是说从他刊行的第四个版本的标准来看,OSGi在R4中引进了面向服务的组建模子,而这个能够说几近是全部SOA系统中,第一个明白提出的一个完成级的标准。可是因为OSGI是SingleVM的,也就是说他只是在单VM中的标准,如许的话大概跟SOA有些分歧,像SOA一般都是散布式范畴的,如许来看的话OSGi多是有点完善的。不外今朝OSGi也在这方面不休的做出勉力,包含在往年岁尾,OSGi将会推出RFC119,那这个标准的话,实在就是OSGi用于散布式范畴的标准。
我们比来从OSGi同盟懂得到的一些动静,OSGi和如今SCA的分离大概会变得加倍严密,信任在Java范畴标准中大概会将接纳OSGi列进标准。
来看OSGi对SOA系统的撑持的话,实在次要仍旧是他的面向服务的组件模子。在这方面呢,OSGi在面向服务组件模子中明白界说了服务究竟是个甚么工具。那这个的话,实在在SOA系统中之前大概没有告知你,你写一个服务,究竟应当是甚么样的。然后你的组件之间应当怎样来交互等等,这一系列在OSGi中都界说的十分分明,OSGi大概如今用于来做SOA的完成还不是很完全,究竟它短少散布式范畴里的一些标准,可是OSGi在全部服务模子上的头脑是值得我们参考的上面是访谈笔墨纪录,点击进进视频访谈
<br>明天在InfoQ中文站有幸在阿里巴巴举行的第二届中国收集工程师侠客行年夜会上请到OSGi演讲佳宾林昊,林昊你好,请向人人先容一下你本人好吗?
<br>人人好,我是林昊,网名BlueDavy。如今在淘宝事情。之前前后写了一些OSGi的中文宣扬质料,包含OSGi实战、OSGi进阶——这两篇OpenDoc,次要是分离我本人的履历来推行OSGi在中国的使用,我也许也懂得到,经由这两篇OpenDoc,中国也有一些公司入手下手思索接纳OSGi了,这是一件很好的事变。今朝,我们次要是在准备OSGi的中文官方站,这个是失掉了OSGi官方承认的,环球第六个国度级其余UserGroup性子的站点。今朝这个站我们还在举行当中,大概近期会周全对外发布,也许是这些。
<br>好。OSGI是一门存在了很长工夫的一门手艺。那末可是在最近几年来,在Java社区这里边,关于它的切磋、完成,然后和使用已愈来愈炽热了,特别在比来公布的SpringSourceApplicationServer里边更是以OSGI作为他的中心手艺。作为国际在OSGI方面的前驱者,你还能不克不及跟不熟习OSGI的这些读者先容一下OSGI究竟是甚么吗?是如许的,最近我们能够看到,几近一切如今的使用服务器都已传播鼓吹基于OSGi大概runonOSGI大概兼容OSGI,像Spring的话,之前也许花了一两年的工夫做SpringDM,但Spring之前一向都是基于他本人的IOC容器的,假如周全迁徙到SpringDM的话大概还必要一段工夫,但比来推出的SpringSourceApplicationPlatform是一个全新的工具,他基础上就已入手下手周全接纳SpringDM了,这个和之前的Spring的兼容体例是有点分歧的。OSGI复杂来说,就像OSGI官方站上的一句话来形貌话,OSGI是一个为Java供应的静态模块化的体系,这是一个他十分好的简称。
但是经由近两年的开展,OSGI已渐渐在改动他的推行体例了,也就是说从之前的forJava入手下手不年夜提这个词,入手下手提他是周全的、一致的两头件。接纳这个名词的话,实在能够看出OSGI的目标是想离开言语的限定,不然之前的话都是forJava,forJava。从OSGi今朝复杂的先容词中,我们能够看到OSGI最主要的就在两个方面,一个是静态化,一个是模块化。在Java系统中模块化一向以来都是对照弱的一点,而OSGI在这方面凸起的体现,让它吸引到了如今几近一切的至公司的存眷,在模块化,和静态化方面呢,OSGI都是从标准角度来做,已供应了撑持,在没有OSGi的情形下一般我们都是本人想林林总总的举措来完成,但究竟不是官方级的标准,如今OSGI的开展已影响到了全部业界,包含Sun,经由这么久的奋斗仍是入手下手渐渐承受了OSGI,这也是一个很分明的表现。
<br>那接纳OSGI作为开放服务框架的基本架构能带来哪些优点呢?信任SOA如今已是全部业界的核心话题了。由于如今良多人都入手下手用OSGI,大概说进修OSGI,大概良多人城市想,OSGI和SOA是否是有分离点?由于OSGI在R4今后,也就是说从他刊行的第四个版本的标准来看,OSGI在R4中引进了面向服务的组建模子,而这个能够说几近是全部SOA系统中,第一个明白提出的一个完成级的标准。可是因为OSGI是SingleVM的,也就是说他只是在单VM中的标准,如许的话大概跟SOA有些分歧,像SOA一般都是散布式范畴的,如许来看的话OSGi多是有点完善的。不外今朝OSGI也在这方面不休的做出勉力,包含在往年岁尾,OSGI将会推出RFC119,那这个标准的话,实在就是OSGI用于散布式范畴的标准。
我们比来从OSGI同盟懂得到的一些动静,OSGI和如今SCA的分离大概会变得加倍严密,信任在Java范畴标准中大概会将接纳OSGI列进标准。
来看OSGI对SOA系统的撑持的话,实在次要仍旧是他的面向服务的组件模子。在这方面呢,OSGI在面向服务组件模子中明白界说了服务究竟是个甚么工具。那这个的话,实在在SOA系统中之前大概没有告知你,你写一个服务,究竟应当是甚么样的。然后你的组件之间应当怎样来交互等等,这一系列在OSGI中都界说的十分分明,OSGI大概如今用于来做SOA的完成还不是很完全,究竟它短少散布式范畴里的一些标准,可是OSGI在全部服务模子上的头脑是值得我们参考的。
<br>ApacheTomcat开辟团队和JSR277的邮件组中都有人质疑过,OSGI是不是违反了KISS准绳,那末PeterKriens在博客中对这个概念也举行辩驳,叨教你对OSGI的分量级和它的庞大度持有甚么概念呢?这一点实际上是如许的,关于懂得OSGi标准的人而言,都能够看得出OSGI一向以来都是轻量级的,并且他也是对照复杂的,并非很庞大。由于这个从OSGI的劈头能够看得出。OSGI最早的时分是为SmartHome来供应服务的,也就是说他是为家居网关这一块来制订标准的。那在这一块的标准中,他是不成能做得很庞大的,以是OSGI他自己的标准在庞大度这方面应当不会是很年夜成绩的。但OSGIR4的完成EclipseEquinox,看起来是对照分量级的,假如我们往下这个包的话,也许会在几兆以上,绝对来说,这个看起来会让人以为OSGI的完成是对照庞大和对照分量级的。假如你再往看更伶俐的SpringDM,那就更年夜了。这些工具大概会让他人发生必定的错觉,这个成绩Peter在官方的BLOG上也已经提到的,他关于Spring今朝在OSGI下面的一些做法并非相称认同。他以为Spring今朝已把OSGI引进一个庞大化的线路,以是这一点Peter也是持否定的概念的,我们实在能够看得出,OSGI的完成像Felix的话,也许在100K摆布,从这个数目级我们能够看得出,他自己是个相称小的工具。
<br>你方才提到的Felix另有SpringDM,今朝除这些框架之外,在Java下边有哪些OSGI标准的这些完成呢?他们各自都有哪些特征?今朝如今Java中真正完成OSGI标准的应当是有三个,最着名确当然是EclipseEquinox,SpringDM的话,他应当是接纳Equinox来做扩大完成的,Felix基础上是本人完整从头完成的一套。实在另有一个大概不是很着名的,是Newton,可是Newton的话,是一个SCA的完成,以是我们大概不克不及完整以OSGI的标准的完成来评判它,不外他是基于OSGI来完成SCA的,以是要算的话他也能够算一个。在这三者傍边的话,Equinox名声对照年夜一点。Equinox究竟是OSGI第一个官方承认的完成,也是第一个经由过程了官方考证的完成,他的利用也已失掉了考证。由于Equinox究竟是Eclipse的中心,并且如今Equinox已提拔到了Eclipse的TopLevel的Project,而这一点能够看得出Eclipse实在对这个的器重已愈来愈高了,以后他大概也会更名成EclipseCoreRuntime,成为Eclipse的运转中心。
Equinox全体来说他的完成是对照完全的,并且他投进的力气也对照年夜,这基础上长短常值得等候的,能够一向跟从着他。Equinox在OSGI的开展上实际上是起到了很年夜的感化的,包含我们能够看到Equinox之前他起动了一个Serverside的沙箱,那这个的话,对OSGI的开展起到了很分明的推进感化,由于我们今朝能够看到如今最新的RFC应当是66,在66内里实在已入手下手提到吸收了如今Equinox在Serverside上的一些做法,我想关于懂得OSGI的同砚而言,应当晓得OSGI的HttpServices是只撑持servlet之前的老版本。新版本像2.3以上的servlet标准中的像filter,这些都是没法撑持的,在RFC66中则会入手下手慢慢撑持这些工具了,Equinox别的一个最年夜的奉献多是在扩大方面,由于他援用了Eclipse做的十分乐成的扩大点,扩大点如今几近已成了OSGI的非现实性的标准,也就是实在今朝OSGI一切的完成中城市供应,由于扩大点对模块的可扩大性方面供应了很年夜的匡助。之前的话,在OSGI官方标准中是没有这一点的。然后我们能够来看Felix,Felix的话,实在他是Apache前期入手下手做的,也就是说它比Equinox晚挺多的。Felix的话,我们能够看他基础上是一个十分轻量级的OSGI完成,今朝良多接纳OSGI的人都入手下手慢慢才用Felix,多是由于人人以为Equinox太分量级了。
Felix除轻量级之外,另有一个对照凸起的特征,是他把之前Peter一向想做得OBR这一块,就是OSGI的bundle堆栈这一块做得十分十分好了,而这一块关于OSGI实际上是十分主要的,Bundle堆栈这一块也许会在OSGI的R5列进标准,以是Felix在这一块的感化应当是很分明的,我信任OSGIR5的标准会参考他来做。然后Newton的话,Newton自己是基于OSGI完成的,它带来的最高文用大概是他让一切人承认了OSGI是可以使用于散布式服务范畴的,这关于OSGI进军散布式范畴是有必定的优点的,大概RFC119会在Newton的基本上做必定的参考来做标准了。
<br>关于今朝Java7中将撑持OSGI的动静有甚么意见?JSR277跟OSGI之间的争辩呢?我想OSGI和JSR277的争辩在全部OSGI业界相对是一场十分十分冗长的和平,几近懂得的人大概都晓得,JSR277很早就建立了。一向以来,实在最早的时分,277的标准组的成员是没有列进Peter的,而实在年夜部分人都晓得,Peter在模块化和静态化方面的履历几近在全球都是顶尖级的。之前Peter本人也请求过要到场JSR277,但被回绝了。在往年Javaone第二天的年夜会上Sun官方明白的公布了在Java7中将会撑持OSGI。这一点固然没有比他说接纳OSGI让人冲动,由于他究竟只是兼容罢了。可是从这一点能够看到,Sun已做了对照年夜的妥协了,由于之前实在他历来没有思索过,他必定是要本人完整做一套的,而我们从Sun在JavaOne上的第二天的一些报告中能够看出,Sun本人今朝也在十分夸大模块化这一方面的事情,包含他本人在JavaEE6和Java7上都是明白的说,最主要的一点的,就是说在他的标准中最必要器重的就是模块化的标准这一点,这也申明Sun对JSR277长短常十分器重的。不外也正由于他对这一块十分十分器重,以是大概很难回收一个已有的模块化的尺度,不然Sun大概在这一块会难以存身。不外我们能够看得出,在JavaOne公布了今后。Peter在本人的官方博客上泄漏了一个动静,JSR277Leader已约请Peter到场JSR277专家组,那这个的话,大概也证实了JSR277专家组是以为必要Peter如许的顶尖专家的,不外Peter本人仍旧在思索当中。由于Sun究竟已制定了一系列的工具,这也意味着他大概不会完整接纳OSGI,这个对Peter来讲多是有点疑问的。
<br>记得上一次在InfoQ中文站的笔墨访谈中,您说过事先OSGI使用最主要的成绩仍是落在怎样往构建模块化、静态化和可扩大的体系下面。那末最近几年来OSGI在这方面上获得了甚么停顿吗?实在OSGI他自己的标准水平上应当来说,他在模块化和静态化另有可扩大性方面都已有了必定的标准了。包含像模块化的话,是他一向以来的特征,然后静态化方面应当也是撑持的一向都对照好,只是在可扩大性方面的话,由于OSGI之前只是借助DS,就是它的R4中的DeclarativeServices来做这方面的撑持,那绝对来说比Equinox的扩大点的话,应当是有必定的弱势的。
不外今朝的话OSGI应当也会慢慢思索,就是说在他的R5中大概会思索Equinox扩大点怎样嵌出来,来提拔他在扩大性这一方面的撑持。固然OSGI从标准中撑持了这些(模块化、静态化和可扩大),包含框架的完成上也是能够撑持模块化这些特征的,可是我们最关头的仍旧仍是怎样往利用OSGI了。由于假如你利用OSGI的时分,不遵守他的这些准绳的话,实在最初计划出来的体系仍旧是你之前的非模块化,非静态化的体系。
<br>作为OSGI在国际中文社区里边的一个活泼份子,也算是一个领武士物了。那末你以为今朝国际社区这块在OSGI的近况是怎样子的,从此又是一个怎样开展偏向呢?之前呢,实在在国际的社区中应当是没有,就是没有OSGI的会合会商场合的,包含我们晓得大概在JavaEye下面会有OSGI的圈子,可是并非专栏性子的,大概说不是这类社区,极年夜的一个会合式的社区性子的。然后OSGI之前的社区更多是在Equinox下面,之前我们在Equinox的maillist下面大概会有一些会商。然后在中国方面的话,实在一向以来都没有做这方面的事情,不外OSGI中文官方站操持已好久了,可是由于要官方承认的话,必要跟官方做一些交互,另有一些协定方面的,由于要失掉他们的受权,这个商标必需是拿到同意才干利用的。以是我们跟官方谈判了一段工夫,比来应当也是在往年岁首的时分,才拿到了OSGI的受权。在拿到受权以后呢,我们如今已在入手下手建立我们的OSGI中文官方站了。在OSGI中文社区内里我们已做了必定的推行,就是已告知了人人这个站是怎样会见,然后人人能够怎样到场这里来为OSGi做奉献,就是说为全部OSGI的推行做奉献。由于实在在今朝,我们OSGI官方站也许的做法次要是翻译官方站的一些工具,包含官方站的一些旧事,如许人人能够懂得到全部OSGI业界的最新的开展意向。然后别的的话,我们会翻译一些OSGI官方上的一些佳构的BLOG。那这些BLOG实在会给人人有很高的引导意义。
别的一方面我们大概会增强包含OSGI中国方面本人的一些原创性子的文章。由于实在之前是很少有原创性子的一些文章的。那这些方面的话,大概在近两年应当会好一些。由于跟着OSGI在国际渐渐入手下手失掉使用,人人城市入手下手在这一块有必定的履历了。在有了履历以后,我们但愿有更多人能写出关于OSGI方面深切文章。这关于推行,包含你本人对OSGI的一些设法,我们也会把一些写得对照好的OSGI的原创文章翻译成英文,然后保举给OSGI官方同盟。如许的话,关于全部OSGI开展也会有必定的优点。
在中文官方站上,我们大概也会建立一个开源的社区,这内里大概会包含论坛等,别的一方面就是供应一些基于OSGI的开源项目,这些应当是会对推行OSGI起到必定的感化。团体简介
林昊,三年前打仗OSGi,目击了OSGi从最后的不敷受存眷到如今几近成了各年夜使用平台厂商的必选,同时也失掉了Sun的官方承认,而本人也跟着关于OSGi的使用履历的增加,编写了《OSGi实战》、《OSGi进阶》两篇Opendoc,这两篇是今朝OSGi范畴中唯一的中文文档材料,国际很多公司、IT从业人士由于这两篇文档进进了OSGi范畴,在客岁经由过程和OSGi官方同盟谈判后拿到了官方同盟的受权,创建了OSGi官方承认的环球第6个UserGroup
来自:http://www.infoq.com/cn/interviews/linhao-osgi
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架? 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 是一种语言,用以产生「小应用程序(Applet(s)) 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
页:
[1]