部门最近的一个产品,想基于另一个平台开发。所以最近做了一下平台选型,顺便思考了点关于“平台”和“框架”的问题,在这里记录一下
一、“平台”与“规范”
一提平台,首先会想到JAVA EE平台,然后就会想到JAVA EE平台规范,“平台”和“规范”常常会混淆,所以先澄清一下这2个概念
“规范”大概是提出一种标准,与“规范”对应的概念是“实现”,也就是specification和implementation。一般规范都会对应多种实现,开发者如果遵循规范设计的接口进行开发,就可以避免与实现的耦合,就可以在多种实现中任意切换,不需要修改代码
比如大家都开发过web应用,如果只用到Servlet规范中的接口,那么应用就可以部署在任意Servlet实现的容器里,比如Tomcat、JBoss、WAS都没问题。但是一旦应用依赖了具体实现的接口或者类,那么就和容器绑定了,不能随便切换
所以“规范”和“平台”是完全不同的概念,没有太大的关系
二、“平台”与“框架”
下面说说我认为的“平台”和“框架”的区别
举一个例子,比如Struts2,一般认为是一个框架。框架的目的是为了解决一个特定领域的问题,提供了:
1、一系列API
2、一组编程的约束
大致上,框架是静态的,倾向于开发阶段的概念。在开发的时候,调用框架的API,遵循框架的设计约束,来实现一个功能
“平台”除了具备框架的这2点以外,我认为还有一层“动态”的含义,即在运行时也提供了某种“服务”
比如JAVA EE平台,不但提供了一大堆API,各种约束,也为应用程序提供了很多服务,比如JNDI、JMS等等,都是某种服务
所以我认为,平台具备以下特征:
1、提供一组API
2、引入编程约束
3、在运行时提供服务
三、实际中的例子
我以前做过一个“开发基础框架”,其实就是对常用的开源框架的整合和封装,然后形态上就是一个普通的WEB工程,可以发布为一个普通的.war包,部署到容器里
这个.war单独跑起来,只有一个UI的框架,没有实际的业务页面。但是后续的各种开发,基于这个框架,可以减少一定的代码量
但是这个不能算是一个平台,只是一个框架。如果加上一些用户权限管理、SSO、页面生成机制,我觉得就可以算是一个“开发平台”了
另外一个例子,BMC公司做的流程平台产品REMEDY,里面有很多组件服务,比如在Server端有它自己的DSL,另外有一个单独的组件,会读取DSL,动态生成WEB页面。基于REMEDY平台的产品开发,就是进行各种配置,在必要的时候做一点二次开发,我觉得这个就可以算是一个“平台产品”
四、总结
总的来说,我认为框架和平台可能没有非常明确的界线。在框架的基础上,增加运行时的某些服务,就算一个平台
目前的理解就这么多,以后想到再补充
分享到:
相关推荐
平台技术框架比较方案 框架的好坏对于平台的要求的描述
本标准规定了国家政务服务平台总体框架的相关技术要求, 并对其组成要素和关系从技术层面进行了总体描述。 本标准适用于全国一体化在线政务服务平台范围内的相关项目建设。
微信公众平台与以往的项目有所不同。其实现不再基于计算机底层实现。从应用层面讲,需要对业务的上层,即显示层和前端逻辑层、通信层,进行封装,下面才是真正的业务系统。从整体考虑,系统通过设计通用微信服务框架...
公安部云计算平台框架指南
车路协同服务平台框架
高通平台camera框架分析,详细的camera hal和驱动之间的关系。
跨平台的移动应用框架介绍和描述如何使用跨平台的移动技术
大连开发区物流信息平台结构框架图大连开发区物流信息平台结构框架图
C#和.NET 2.0实战:平台、语言与框架.rar C#和.NET 2.0实战:平台、语言与框架.rar
大数据平台技术框架选型分析,是硬件软件的选择,组件的选型
(完整版)不动产统一登记信息应用平台总体技术框架.pdf(完整版)不动产统一登记信息应用平台总体技术框架.pdf(完整版)不动产统一登记信息应用平台总体技术框架.pdf(完整版)不动产统一登记信息应用平台总体技术框架.pdf...
OGIS框架式开发平台是对GIS行业应用系统开发项目的深入研究与总结基础上,精心设计研发的供GIS公司进行二次开发的产品级平台组件.平台封装了GIS系统的通用功能,各功能独立、设计合理、使用方便, 开发人员不需编写过多...
介绍短信平台开发框架及技术。Vue 是一套用于构建用户界面的渐进式框架,它是以数据驱动和组件化的思想构建的。如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动...
基于Bootstrap的Java企业通用开发平台框架_maven_hibernate,基于Bootstrap的Java企业通用开发平台框架_maven_hibernate,基于Bootstrap的Java企业通用开发平台框架_maven_hibernate
农网一体化平台liferay框架 农网一体化平台liferay框架
基于访问层、应用层、支撑层架构的云平台。访问层包括PC端门户、移动端APP、...应用层实现业务中台、数据中台,整合第三方系统与外部接口扩展平台能力;支撑层实现流程、消息、报表、统一认证、统一接口等基础能力。
蔬菜精准管理与安全监控大数据平台总体框架设计.pdf
电子政务信息共享互联互通平台总体框架技术指南.pdf
C++设计模式--基于Qt4开源跨平台开发框架
该项目是一个基于SSM框架的本科毕业设计:家装家居订购平台系统 该项目是一个基于SSM框架的本科毕业设计:家装家居订购平台系统 该项目是一个基于SSM框架的本科毕业设计:家装家居订购平台系统 该项目是一个基于...