comdin 发表于 2006-9-9 12:54:37

BREW究竟是什么-BREW本质之我见[转]

为什么要写这篇文章:

  接触BREW已经4个多月了,虽然时间不是很长,但是对brew还是有一定的了解,也有一些我自己的见解。我是一个不喜欢单单为了做好工作而只去学习对工作有用的东西,我喜欢刨根问底,喜欢知道一样东西究竟是什么。现在不管是作brew develop的,还是brew oem的,其实存在一个问题,就是不是真正理解brew究竟是个什么东西,当然这并不直接影响他们的工作。但是,我个人认为,如果连brew究竟是什么都不知道,而去porting一些接口,用一些接口,是显得很“空虚”,你不能乐在其中。曾经网上看到好多关于误解brew的一些帖子,现在我觉得有必要写一篇阐述brew究竟是什么的文章。当然,我的见解也不是权威,也可能会错。只是将我理解中的brew呈现给大家,如果对你有帮助,我会很开心。如果有错误,请指正,或者相互探讨。

高通对brew的定义:

  有很多文档中都有对brew的定义,我也不想去查证哪一篇文档上有最权威的关于高通对brew的定义。我只是就我看过的一些高通的文档,总结归纳出高通对brew的定义。简单而言,高通对brew的定义就是:brew是一种无线移动网络中的端到端的解决方案。

BREW-4字母之我见:
  如上所说,brew是一种解决方案,那brew4个字母究竟是什么意思那。按照我的理解,B是针对j2me的虚拟机(解释)而言,说明brew的目标文件是二进制代码,不是中间解释程序。R说明brew是动态加载机制,只有当需要运行的时候,代码才加载运行。E代表BREW不仅仅是一些接口API,BREW有自身的内核,有自身的执行环境(AEE环境)。W代表BREW是专门针对无线移动的解决方案。
BREW与操作系统:
  经常看到有人拿BREW和操作系统相比较,最多的莫过于和Symbian作比较。“你觉得BREW和Symbian哪个好?”“我觉得BREW没有Symbian好”等等,诸如此类。其实,这两者根本没有可比性。BREW不是操作系统。本质上来说,BREW仅仅是运行于操作系统上的某个task中的一个软件而已。BREW位于操作系统之上,BREW在手机上的实现需要操作系统服务的支持。从理论上来说,BREW可以在任何操作系统上被支持起来。所以,不能将BREW和操作系统作比较,不具可比性。就好比你拿windows和vc作比较,那是很可笑的。
BREW和编程语言:
  另外经常看到有人拿BREW和java语言来作比较。这两者也根本不具有可比性。java是一种编程语言,编程语言用来编出软件。而BREW,你可以把它看作是软件,至于是什么编出来的,你无需考虑。 这样的比较,就好比拿bt软件和python语言(bt软件的开发语言)作比较,也是很可笑的。另外补充一点,虽然BREW环境的实现是用C语言,但是BREW应用的开发。“理论”上来说应该可以任何语言,目前主要是c,c++。其实,如果拿BREW和J2me作比较,那才具有可比性。详细见下面一节。
BREW是中间件:
  更多的人是拿BREW和j2me来作比较,因为他们分别是现在联通和移动所倡导支持的。为什么具有可比性那。因为就我理解,他们都是中间件技术。brew是中间件!
  中间件位于操作系统(以及native软件)与上层应用之间。通过它,可以使得应用的开发变得可扩展,灵活和“标准”。
  首先,我们看看没有中间件出现时的手机开发模式。
  此时,整个手机的开发都是oem厂商完成的。他们在手机的操作系统上编写一个个的task代码,编写一个个特定功能的底层api函数和服务(我们称之为native),然后再利用这些native的代码编写一些手机应用,比如电话簿,短信等等。此时,任何第三方都将无法进入这个行业,因为他们需要了解这个手机的系统,以及这些native的api,才能开发上层应用。但是,通常这些都是保密的。所以,那个时候,几乎没有develop的存在,只有oem。
  而中间件技术出现后,整个手机开发模式被改变了,我们以brew为例。
  我们把上面所讲的开发模式称之为纯native开发模式。而一旦handset被porting brew之后,那么在native之上就多了一个中间层,即中间件。中间件(brew)定义了一套标准的接口(环境),这套标准的接口(环境)是面向上层的,面向develop的。而这套接口(或者环境)的实现则是调用了native(以及操作系统)的服务,我们称之为porting。这样,中间件屏蔽了底层的差异性和具体实现,对上提供标准的接口。从而催生了手机develop这个行业的出现。因为,他们无需考虑具体手机,只需要利用中间件提供的标准接口(环境)来开发可移植的应用。这种可移植性的本质是因为,对于develop所呈现的“共性”是通过oem的“个性”来呈现的,并且通过中间件这样一种模式,屏蔽了这种共性和个性之间的联系。使得使用和实现分离。达到了可移植性!
  说到中间件技术,其实现在最多提到的就是j2me,brew,mhp。j2me是通过jvm在不同平台上的porting来提供通用的java接口。mhp是机顶盒上现在用的很多的中间件标准,具体的我就不是很清楚。另外,brew和j2me还是有区别的,因为j2me仅仅是一个瘦client型的中间件技术,不涉及端到端的整套方案。而brew不仅仅指handset上的中间件(brew)同时还包括ads(服务器端),所以brew不仅仅是中间件,完整的说,就是高通的定义,是一种端到端的解决方案。
BREW是设计模式:

  我对设计模式仅仅是初学而已,所以这里仅仅是我的见解而已。我认为,BREW是一种特殊的,可扩展的Facade设计模式。Facade模式的意图是简化现有系统的使用方法,重新定制一种新的接口(或者方式),并呈现给client,使得client更容易的使用现有的系统。在没有brew出现之前,client(上层应用)使用系统(调用系统服务,达到特定功能)的方式是native的方式(直接调用操作系统或者native的api),这种使用系统的方式非常复杂,而且通常对第三者不可用。通过brew,我在native基础上重新定制了一个新的接口(平台,环境,或者方式),并将它呈现给client(上层应用)。这样,client通过这个新的接口(平台,环境,或者方式)同样实现了某种功能,但是却更加的方便。
  为什么又说是可扩展的Facade设计模式那。因为通常Facade模式中所说的定制的新接口所提供的服务往往是原有系统所能提供服务的子集。BREW也如此,只能通过所有的Interface向client提供服务,当然不能包括整个handset理论上所能提供的所有服务。但是,我们知道BREW本身是可伸缩的,比如可以由oem扩展接口,或者oem裁减掉一些接口,或者随着brew版本的更新也会扩展一些接口。这样,对client所提供的服务也就具有伸缩性,所以我称之具有可扩展性。
  另外说是特殊的Facade模式,是因为Facade模式没有强迫所定制的新的接口需要是“标准”的接口。但是BREW对外提供的确是标准的接口。它使得cilent(应用)具有了可移植性,所以我称之为特殊。

结束:
  在这么多大虾的面前,对BREW妄加评论,无他,仅仅分享我的见解而已,如果对你有帮助,则有感一丝欣慰。如果有什么错误之处,还请指教。也请大家,相互交流。



http://www.cnjm.net/tech/article848.html

qchgo 发表于 2006-9-9 13:29:35

我第一?哇哈哈哈

qchgo 发表于 2006-9-9 13:30:14

这也太多了,烦躁

beyondpara 发表于 2006-9-9 13:36:39

学习,有很多软件术语

jtw302 发表于 2006-9-9 13:41:39

有意义啊.

fufu 发表于 2006-9-9 13:57:05

不知道这个有什么意义发这

comdin 发表于 2006-9-9 14:17:25

是的..没什么意义..好玩..

vekin 发表于 2006-9-9 14:44:15

高人。。。

Teenching 发表于 2006-9-9 15:27:54

原来是这样....以前还以为是跟j2me差不多的呢..

comdin 发表于 2006-9-9 16:44:15

原帖由 Teenching 于 2006-9-9 03:27 PM 发表
原来是这样....以前还以为是跟j2me差不多的呢..
两者有联系!.....

花匠鱼 发表于 2006-9-10 11:37:40

我已经跟你解释过了你还是没明白阿,笨

brew就是四个字母的组合,b-r-e-w,懂了么?

碎心的呜呜狼 发表于 2006-9-10 15:44:59

brew 这个我bf之前 他之前就是做brew开放的 一种累死j2me的编程语言,二进制语法跟c类似,很适合版权管理,cdma手机支持,高通垄断的^_^

comdin 发表于 2006-9-10 15:57:17

汗,,累死.........

newalan 发表于 2006-9-10 16:15:38

不错,学了一些东西。

rabbitear 发表于 2006-9-10 16:50:21

这么专业/////

fufu 发表于 2006-9-10 17:01:19

回复 #15 rabbitear 的帖子

有很专业吗?

gyfhome 发表于 2006-12-17 18:24:40

中国联通cdma神奇宝典平台............brew最大的优点就是...brew软件只能通过中国联通神奇宝典平台下载不可以拷贝..复制....brew程序只能运行在用于下载brew程序的那个手机号码上,说明点就是你如果换手机号后原来下载的程序就不能运行了......可以说是基本上不可以复制.........但是中国联通brew有重大的漏洞,,,,可以通过免流量费下载软件,上brew可以免流量费.而且早期的brew手机可以通过某些操作延长软件的使用时间..............

gydream 发表于 2006-12-18 00:55:27

明白的差不多了

ailiagt 发表于 2009-8-11 16:18:05

学习了,谢谢!

ado 发表于 2011-5-10 17:49:22

顶楼主
页: [1] 2
查看完整版本: BREW究竟是什么-BREW本质之我见[转]