打开主菜单

求真百科

框架

来自 图虫网 的图片

框架 是一个框子--指其约束性,也是一个架子--指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

基本信息

中文名称 框架[1]

拼音 kuàng jià

释义 联结而成的结构

注音 ㄎㄨㄤˋ ㄐㄧㄚˋ

英译 Framework

应用领域 软件、机械结构等

释义

1、释义:(1)建筑工程中,由梁、柱等联结而成的结构;(2)比喻事物的组织、结构。

2、土木工程中,由梁、柱等构件刚性连结而成的结构体系。

土木工程

(框,读kuàng,不读kuāng。)

由梁和柱组成的能承受垂直和水平荷载的结构,梁和柱是刚性连结的。主要要用于工业与民用建筑物的承重骨架,桥梁构架或工程构筑物。

一般指建筑工程中,由梁或尾架和柱联结而成的结构。由于我国古代家具自宋以后曾吸收古代大木构制的作法,故传统家具采用框档、立柱结构形式的即称框架,并将此类结构形式的家具称之谓"框架式家具"。

工工艺流程

(1)基础工程

测量放线→土方开挖→钎探、验槽→静压桩→砼垫层→承台、基础钢筋、模板、砼→墙、柱钢筋→水电预留、预埋→墙柱模板→墙柱砼→拆模养护→梁板模板→梁板钢筋→水电预留、预埋→梁板砼→养护→外墙防水→防水保护层→基础土方回填。

(2)主体工程

测量放线→墙柱钢筋→水电预留、预埋→墙柱模板→墙柱砼→拆模养护→梁板模板→梁板钢筋→水电预留、预埋→梁板砼→养护

(3)装饰装修工程

测量放线→二次结构砌筑、隔墙安装→屋面防水→立门窗框→内墙抹灰→楼地面→墙面踢脚→设备安装→门窗扇安装→吊顶→精装修→油漆、涂料。

软件工程

什么是框架

框架( Framework )是构成一类特定软件可复用设计的一组相互协作的类。框架规定了你的应用的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。框架预定义了这些设计参数,以便于应用设计者或实现者能集中精力于应用本身的特定细节

为什么要用框架

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事务处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

软件为什么要分层? 为了实现"高内聚、低耦合"。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦。

框架和设计模式

框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

框架开发

框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大的应用系统往往可能由多层互相协作的框架组成。

由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。

框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。

框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。

主要特点

领域内的软件结构一致性好; 建立更加开放的系统;

重用代码大大增加,软件生产效率和质量也得到了提高;

软件设计人员要专注于对领域的了解,使需求分析更充分;

存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;

允许采用快速原型技术;

有利于在一个项目内多人协同工作;

大力度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。

解决问题

框架要解决的最重要的一个问题是技术整合的问题,在J2EE的框架中,有着各种各样的技术,不同的软件企业需要从J2EE中选择不同的技术,这就使得软件企业最终的应用依赖于这些技术,技术自身的复杂性和技术的风险性将会直接对应用造成冲击。而应用是软件企业的核心,是竞争力的关键所在,因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。 要理解这一点,我们来举一些例子:

一个做视频流应用的软件企业,他为电广行业提供整体的解决方案。他的优势在于将各种各样的视频硬件、服务器、和管理结合起来,因此他扮演的是一个集成商的角色。因此他的核心价值在于使用软件技术将不同的硬件整合起来,并在硬件的整合层面上提供一个统一的管理平台。所以他的精力应该放在解决两个问题:

如何找到一种方法,将不同的硬件整合起来,注意,这里的整合并不是技术整合,而是一种思路上的整合。首先要考虑的绝对不是要使用什么技术,而是这些硬件需要提供哪些服务,需要以什么样的方式进行管理。因此,这时候做的事情实际上是对领域进行建模。例如,我们定义任何一种硬件都需要提供两种能力,一种是统一的管理接口,用于对所有硬件统一管理;另一种是服务接口,系统平台可以查询硬件所能够提供的服务,并调用这些服务。所以,设计的规范将会针对两种能力进行。

另一个问题是如何描述这个管理系统的规范。你需要描述各种管理活动,以及管理中所涉及的不同实体。因为管理系统是针对硬件的管理,所以它是构架在硬件整合平台之上的。

在完成业务层面的设计之后,我们再来看看具体的技术实现。光有规范和设计是不够的,我们还需要选择一个优秀的技术。由于是对不同硬件的整合,我们想到采用Java提供的JMX技术。JMX技术适合用来进行系统整合,它定义了一个通用的规范,并给出了远程管理端口的一些默认实现。JMX已经经过了实践的检验,不少的应用服务器都采用了以JMX为基础的结构,例如有名的JBoss。JMX已经是一个很好的开始了,但是我们还需要在JMX的基础上再做一些工作。

相关概念

1. 白盒与黑盒框架

框架可分为白盒(White-Box)与黑盒(Black-Box)两种框架。

基于继承的框架被称为白盒框架。所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。但解决这种局限性的方法可以是只继承抽象父类,因为抽象类基本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。

基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,继承只是一个静态编译时的概念。

在理想情况下,任何所需的功能都可通过组装已有的构件得到,事实上可获得的构件远远不能满足需求,有时通过继承获得新的构件比利用已有构件组装新构件更容易,因此白盒和黑盒将同时应用于系统的开发中。不过白盒框架趋向于向黑盒框架发展,黑盒框架也是系统开发希望达到的理想目标。

2. 热点、食谱以及好莱坞原则

成功的框架开发需要确定领域专用的热点 (Hot spot)。应用开发者在框架的基础上进行开发,只须扩展框架的某些部分,热点就是在应用领域的一种扩展槽,开发者根据自己的需要填充这些扩展槽。热点使框架具有灵活性,如在具体的实现中,扩展槽可以被看成是一些抽象类,开发者通过重写抽象方法获得具体实现。

食谱 (Cookbook)就是描述如何使用框架方法的文档。在食谱中包含了许多烹饪方法,这些烹饪方法相当于一些具体的操作步骤,描述了为解决某一专门问题如何使用框架的详细方法。框架的内部设计和实现细节通常不出现在食谱中。

框架的一个重要特征就是用户定义的方法经常被框架自身调用,而不是从用户的应用代码中调用。这种机制常称为"好莱坞原则"(Hollywood Principle)或"别调用我们,我们会调用您"。

JAVA框架

WAF:全称:WEB APPLICATION FRAMEWORK主要应用方面:EJB层,(WEB层也有,但是比较弱)。主要应用技术:EJB等出处:java.sun. com/blueprints/code/index.html">http://java.sun. com/blueprints/code/index.html简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea\\weblogic700\\samples\\server\\src\\petstore。这是学习了解J2EE的首选框架。免费。

Struts:主要应用方面:WEB层。主要应用技术:JSP,TagLib,JavaBean,XML等出处,这是APACHE的开源项目,应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。免费。

简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:JSP(TagLib)-->ActionForm-->Action --> Event-->EJBAction-->EJB -->DAO-->Database JSP(TagLib) (forward) <--Action <--EventResponse<--

Turbine:主要应用方面:WEB层。主要应用技术:servlet等出处,这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。免费。

COCOON:主要应用方面:WEB层。主要应用技术:XML,XSP,servlet等出处:http://cocoon.apache. org/2.0/简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。免费。

ECHO:主要应用方面:WEB层。主要应用技术:servlet等出处:http://www.nextapp. com/products/echo/简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。免费。

JATO:全称:SUN ONE Application Framework主要应用方面:WEB层。主要应用技术:JSP,TagLib,JavaBean等出处,简述:这是SUN推出的一个商业性框架,一看名字就知道是结合SUN ONE的平台推出的。我下载了JATO2.0看了一下,感觉有些简单,使用了JSP+TagLib+JavaBean。如他的DOC所说JATO是适合用在小的WEB应用里。免费。

TCF:全称:Thin-Client Framework主要应用方面:JAVA GUI。主要应用技术:JAVA application等出处,简述:这是IBM出的一个框架。基于MVC模式,基于JAVA Application。推荐一篇介绍文章:java/j-tcf1/index.shtml">http://www-900.ibm. com/developerWorks/cn/java/j-tcf1/index.shtml收费:每个企业对象license:2000美元。

应用框架

随着管理信息应用范围的拓展,交易类应用为管理对象的电子信息获取提供了丰富的手段,这些信息的存储、加工、增值、展现等处理事务,均属于管理决策类应用系统的范畴。传统的信息系统通常将这些事务,与交易类应用合并在一个应用系统中实现,随着一个组织中应用系统不断地涌现,关联数据的组织和共享、历史数据的积累和重用、全面数据的挖掘和增值等需求,促生了基于数据仓库技术的,面向整个组织,独立性的管理决策类应用环境的实现。这类应用有一个最大的特点,就是用户需求是持续发展和不断完善的,特别是应用的初期,用户甚至提不出充分和全面的需求。同时,这类应用又存在非常强的应用共性。为此,可以通过一组与业务无关的,产品化的技术支撑环境,去实现对海量数据获取和储存的支持能力;去实现描述加工规则发展和完善的能力;去实现提供数据组织访问和管理的能力;去实现反映结果信息简洁和人性化的能力,这便是"管理决策框架"的意义。该框架由以下部分构成:

业务架构

所有的应用系统只有在覆盖了相应的业务以后,才具有应用的实际意义。与业务无关的管理决策框架在没有加载业务以前,只能称之为框架,加载业务以后则成为了针对特定业务的管理决策系统了。所谓业务架构一方面是为用户加载和组织业务提供的一个手段和环境(开始也为用户加载了一些通用的业务如查询、报表等);另一方面也是在实际应用时的业务门户。类似于智能终端的桌面,用户拿到手的时候桌面是空的,只是有一些通用业务,如时钟、画图、记事簿等,随着应用的发展,每个人的桌面会呈现出各不相同的个性化业务。管理决策框架中向用户提供了业务操作和管理的操作2类业务,其中业务操作是面向大众用户的,涉及业务管理活动的流程、查询、分析、决策等日常作业,这些操作绝大多数都需要用户后续自行加载;管理操作是面向小众用户的,涉及对业务管理活动的流程定义、数据组织、分析规则、决策算法、展现效果等定义和描述操作,并对它们进行加载和维护的作业。与传统的应用系统不同的是,这些作业的形成不是由程序员编码实现的,而是用户骨干或者第三方团队(小众用户),利用管理决策框架提供的管理操作(由应用架构的相关产品提供)加载实现的。加载的结果通常以"方案"的形式打包,每个"方案"对应一个管理活动的过程、规则、算法、结果展现等等。训练成熟的方案经过该架构的解析和执行,面向用户提供直观高效的,可持续发展的,智能化的最佳用户体验。该架构涉及的技术包括:统一门户、统一权限、工作流、商务智能(BI)等等。

应用架构

该架构主要是面向业务架构提供软件功能的支持,既提供运行时的业务功能支持,又提供加载时的管理功能支持。与传统的应用架构的最大不同在于,该架构能为整个组织实现业务需求的变化和满足覆盖地域的不同,提供可持续发展的支撑能力和具有更长的生命周期。同时,也是确保业务无关性,实现管理决策类应用产品化的关键。为此,组成该架构的一系列产品,均以人机交互的模式,将管理决策业务需要实现的数据源获取、数据口径描述、数据的组织、加工规则、管理过程、结果展现等进行定义、描述和发布管理;其所涉及的每个定义和描述的结果,均分为2个部分,一是以代码段或脚本形式保存的,可以由业务架构解析并执行的部分,称为"方案元";二是对相应的方案元按照标准的元模型,以人工语境描述的数据集合,称为"元数据"。方案元也作为元数据的一部分一并打包,并加以保存和管理,每项业务所涉及方案元的集合称为"方案",每个"方案"经过测试和训练,面向特定的用户发布。这个过程称为"主动式元数据管理"。应用架构发布的结果就是业务架构面向大众用户提供的"业务功能";使用应用架构所提供产品进行业务实现(加载)的过程,就是小众用户在业务架构中使用"管理功能"的过程。该架构涉及的技术包括:元数据标准、元数据管理、方案的形成和管理、知识的形成和管理等等。

数据架构

它面向全局提供统一的数据综合利用及管理环境。与传统的数据架构不同,该架构提出了对"数据空间"进行"数据管理"的概念。"数据空间"是整个组织所有管理对象所涉及的数据全集,以及它们所有的数据属性。传统的数据架构关注的重点,局限在所有管理对象涉及的实体数据(内容),而"数据空间"关注和管理的对象,还要扩展到:一是以人工语境对"内容"进行解释性描述的元数据(变化);二是记录"内容"和"变化"的归档数据(历史);三是反映管理决策框架运行环境的日志数据(状态)等。这里记录内容、变化、历史、状态的数据集合,称之为"数据全集";"变化"与传统的只供机器识别的技术元数据(传统数据属性),一并称之为新的"数据属性"。"数据管理"指的是要对进入管理决策框架的数据源进行完整性、原始性、不可抵赖性的实现管理;要对基础数据口径和后续加工规则、算法等进行标准化、规范化、可追溯的描述管理;要对数据空间涉及的所有数据,进行合理组织、物理分区、数据结构的定义,实现全面科学、统分结合、访问高效的控制管理;要对内容、变化、历史、状态等涉及的所有数据增值过程,进行全面质量管理和全过程的生命周期管理。该架构涉及的技术包括:非结构化数据处理、档案管理、"大数据"技术、数据仓库(特别是DW2.0)涉及的相关技术等等。

技术架构

该架构是构成信息系统物理环境的产品集合,包括服务器、操作系统、中间件、网络环境等基础技术环境。在进行配置管理时,管理决策框架除了要考虑灾备的异地支持环境,还要在物理上分为生产环境和训练环境。生产环境是训练环境的子集,其主要是将正式发布的"方案"经过加载、解析、执行,针对特定业务提供日常作业的支持服务,从而确保了生产环境的简化、高效、可靠、稳定;训练环境除了能模拟实际生产环境,还要提供业务(方案)加载、测试、训练、维护、发布等管理作业的支持服务,从而确保该框架对业务应用无关性、对业务需求的可持续发展、保证支持环境的长生命周期。该架构涉及的技术包括:虚拟技术、云计算、容灾管理、数据中心监控等等。

安全架构

在最大限度满足管理决策框架运行的基础上,构建网络、硬件和软件相结合的安全体系,通过监控管理手段来确保系统稳定,削弱高度信息化的应用系统受单点故障的影响程度,使系统能够将风险分散和具备一定的自救能力。要考虑一体化的,整体安全架构的设计要求;要符合信息安全标准(物理安全、运行安全、数据安全、内容安全等)规定而采取的技术和管理要求;要实现信息安全和数据质量管理的技术环境,能够提供安全策略的具体管理机制。信息安全不仅体现在物理环境的实现上,更要强调信息安全管理机制的建立和持续完善,并且管理机制要能够体现在物理环境上,要能够通过物理环境管理、记录、分析各类信息安全事件,避免其再次发生。

标准体系

作为与业务无关的应用软件产品,管理决策框架需要一系列标准,以规范整个框架对外部的衔接、规范框架内各架构间的衔接,以及每个架构内部的,对处理对象的获取、加工、处理等描述的规范等等。它们涉及到相互衔接、处理对象描述、加工规则描述等等方面的标准化,以及如何对它们进行描述的标准化(元数据标准,即元模型);涉及到包括组织、制定、维护、发布、遵循等内容的标准管理机制;特别是要有一个支撑标准管理机制的技术支持环境,这个环境不仅要提供对每个标准生命周期的管理,还要提供整个框架对标准遵循和使用的一致性和易用性保障和服务。

运维体系

管理决策框架的运维体系分为2类:一类是物理环境运维。即传统的数据中心环境和设备的运行保障和安全保障;另一类是应用环境运维。它包括涉及业务架构、应用架构、数据架构、标准体系的运维管理。通过这些运维管理活动,实现业务需求的有效支撑和可持续发展;实现管理功能(即整个框架本身)的可靠运行和可持续发展。为了这2类管理活动的有效进行,需要建立一套运维管理机制,包括运维组织、制度、职责等等;同样,也要有一个支撑运维管理活动的运维技术支持环境,它不仅要提供对运维管理活动的过程和监控提供服务,还要提供对运维事项的发起、发现、定位、预警、处置、恢复等手段提供功能性支持,并且能够通过对运维事件多角度信息的捕获、积累、分析、挖掘,实现智能化的运维辅助和事件预测。

网页设计

框架是网页中经常使用的页面设计方式,框架的作用就是把网页在一个浏览器窗口下分割成几个不同的区域,实现在一个浏览器窗口中显示多个HTML页面。使用框架可以非常方便的完成导航工作,让网站的结构更加清晰,而且各个框架之间决不存在干扰问题。利用框架最大的特点就是使网站的风格一致。通常把一个网站中页面相同的部分单独制作成一个页面,作为框架结构的一个子框架的内容给整个网站公用。

一个框架结构有两部分网页文件构成:

框架Frame:框架是浏览器窗口中的一个区域,它可以显示与浏览器窗口的其余部分中所显示内容无关的网页文件。

框架集Frameset:框架集也是一个网页文件,它将一个窗口通过行和列的方式分割成多个框架,框架的多少根据具体有多少网页来决定,每个框架中要显示的就是不同的网页文件。

所谓框架就是把网页分成几个框窗,同时取得多个 URL。<frameset>用来划分框窗,每一框窗有一个<frame>,<frame>必须在<frameset>范围中使用。如:

<frameset cols="50%,*">

<frame name="hello" src="1.html"> <frame name="hi" src="2.html">

</frameset>

此例中 <frameset> 把画面分成左右两相等部分,左面显示 1.html,右面显示 2.html

程序设计

程序设计中的框架包含DoitPHP(原Tommyframework)是一个基于BSD开源协议发布的轻量级PHP框架,还包含如thinkphp、codeigniter(简称CI)、yii framework、doophp、qeephp、等主流的程序设计框架,根据个人习惯和性能要求,其各也有不同的优缺点!

从软件设计角度,框架是一个可复用的软件架构解决方案,规定了应用的体系结构,阐明软件体系结构中各层次间及其层次内部各组件间的毅力关系,责任分配和控制流程,表现为一组接口,抽象类以及实例间协作的方法。

參考來源