- 浏览: 24824 次
最新评论
在现在的软件设计上,基本上采用的都是分布式系统,前端尤其突出,回忆一下,我们将CSS、JS独立到不同的CDN或独立静态池上,我 们将图片放到专属的图片服务器上,这都是分布式系统的体现。我们的交互界面,我们的后端程序乃至数据库都存储在各个不同的服务器上,最终,通过计算机网络 将它们连接起来。
因为采用了分布式系统,前端开发中也遇到了分布式系统本身的问题,比如说分布式系统节点的广泛带来了复杂的部署环境,比如分布系统组件的协同工作会因延迟、过载、甚至失效而带来的不稳定性。
以往,我们在前端开发过程中,为了避免这些分布式系统所带来的问题,采用了各种方法,比如下图中,某网站采用将js直接写入页面中的方式避免上述问题。(当然我也可以认为这段代码是开发人员偷懒直接复制进去的, XD)
view-source:http://news.sina.com.cn/c/2010-11-15/1 91121475156.shtml
让我们试想一下,某天下图中的接口地址变更,开发人员需要更新数万页面以保证页面工作正常,即便是拥有了各种分发机制,甚至使用重写或者301转向,也是一种维护成本高的工作方式。
为了解决分布式系统所带来的问题,各公司都引入了不同的解决方案,最典型的解决方案就是中间件 。
在国内的各大主流网站中,我们不难发现类似下面的代码,从而从不同的网络节点中获取到对应的组件
上述代码是一种直接写入N个SCRIPT标签的变体,他的本质是通过getFileVesion()获取参数数组中的路径,循环建立SCRIPT/LINK对象后再插入到页面中,我们称呼这种中间件为对象计算中间件 ,它给我们的开发过程带来很多便利,前端工程师采用面向对象的方式编写各种组件来降低整个开发流程的复杂度,并且可以灵活有效的进行分发以提供可重用 的功能。
虽然分布式对象计算中间件成熟稳定,但它也存在着一些不足,例如,当我某一个对象/组件依赖于其它对象/组件时,这两个对象需要明确对方已经载入, 因此开发人员需要设计代码来实现这种对象与对象,组件与组件之间的关联,开发人员需要判断这些组件是否已经loadReady,或者组件内部需要判断他需 要的对象是否已经加载。
与此同时,分布式计算中间件没有提供给我们一个标准化的方式去启用不同的组件,当我们需要停用旧的组件、增加新的组件时,修改原有组件就需要手动的 去维护要增加的内容。例如,上图中,当我需要增加一个获取cookie的方法时,也许我就要增加xxxx/js/getCookie.js,甚至,我还要 给他提供一个版本号来标识版本以及清除分布式系统的缓存。
那么为了解决计算中间件的上的缺陷,设计人员开发出一种称为组件中间件 的技术,组件中间件通过一个组件对象来实现不同组件的调用以及管理。
组件中间件中,组件是功能实现的实体,他提供了一套方法以及连接点,以便不同的组件之间互相协助。方法可以是require也可以是add,甚至是 when i needed … download,连接点就是需要载入组件的路径,在这种组件架构中,定义良好的关联关系存在于组件中间件与需要载入的对象中间,因为这种关系的存在,所 以,我们可以通过组件定义、构造、加载、剔除所需要的对象,而对象也可以被要求预载入,触发事件时载入 等等。
同时,组件中间件提供了对接入点的预定义,我们可以通过配置组件来达到加载不同服务节点,不同版本的对象。
虽然中间件拥有很多益处,但对于分布式系统而言,中间件也有不可靠的地方,当系统宕机时,当网络缓慢甚至断开时,中间件就无法保证所需要的对象被加载,因此在中间件的设计上也需要考虑各种可能出现的错误,并做好容错机制保证前端的页面的呈现。
发表评论
-
字符串处理
2012-07-06 09:51 618第一节、字符串查找 1.1题目描述: 给定一个字符 ... -
笔记-正则表达式的2种引擎
2012-07-06 09:44 697正则表达式的引擎分为2种,一种是DFA引擎,一种是NFA引 ... -
常用正则表达式手册
2012-07-06 09:36 599匹配中文字符的正则表达式: [u4e00-u9fa5] ... -
网页换皮肤
2012-07-06 09:29 520... -
后台向前台js传递参数
2012-07-05 20:44 723aspx页面代码 //图片预览效果 function S ... -
基于组件中间件的前端架构
2012-07-03 13:42 738在现在的软件设计上,基本上采用的都是分布式系统,前端尤其突 ... -
Flex做的颜色器
2012-07-02 10:10 461此效果用对象的toString()方法来格式化输出字符串类 ... -
flex LineChart 的demo
2012-07-02 10:10 515... -
flex图片截取保存本地
2012-07-02 10:10 593Alert{font-size:12px;} ... -
Flex中,跨List实现SHIFT多选的例子
2012-07-02 10:10 640最近工作中遇到的问题,客户要求做这么个东西。还是稍微 ... -
FLEX 条形图(柱状图)设置刻度为百分比
2012-07-01 09:29 1070作者原创,如需转载请注明出处:www.krzone.org ... -
谈谈我对未来的想法吧
2012-07-01 09:28 760来总行珠海研发中 ... -
JavaFX Script With Eclipse 入门
2012-07-01 09:28 514最近Java社区最火的就是JavaFX Script的发布 ... -
Linux网络入侵检测软件
2012-07-01 09:28 689本软件是本人的毕业设计"作品"。当年是 ... -
Spring 3.0 整合 iBatis 3 Beta10 配置
2012-07-01 09:28 576弄了好长时间了,上网找各种资料,文档,最后发现Spring ... -
Flex Javascript交互实现代码
2012-06-30 11:13 541Flex Javascript交互实现代码 2010年09月 ... -
我参与的《云计算》项目前台Flex架构
2012-06-30 11:13 509我参与的《云计算》项 ... -
Flex 组成、变量、函数、命名空间
2012-06-30 11:13 576Flex 组成、变量、函数、命名空间 2011年04月13日 ... -
[引用]Ant 在Flex中的应用
2012-06-30 11:13 568[引用]Ant 在Flex中的应用 2011年08月13日 ... -
oracle之物理数据库结构概述(数据文件、重做日志文件,控制文件等各种数据库文件)
2012-01-20 02:25 506oracle之物理数据库结构 ...
相关推荐
" "安全性要求 "基于JAAS架构,实现基于容器的安全策略,提供基于数" " "据库和LDAP认证的Login Module, 支持用户增加Login " " "Module,支持单点登录 " " "必须支持标准的安全协议SSL(Secure Socket " " "Layer...
基于Spring Cloud微服务化电商平台,每个模块单独封装,如有某个模块...核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、Mybatis、Druid等主要框架和中间件, 前端vue-shop采用Vue全家桶组件,欢迎Star。
核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、Mybatis、Druid等主要框架和中间件, 前端vue-shop采用Vue全家桶组件。 基于Spring Cloud微服务化电商平台,每个模块单独封装,如有某个模块不能满足...
Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权、认证后台...核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis等主要框架和中间件,前端采用vue-element-admin组件
该架构涵盖了前端、代理、API网关、业务服务、中间件、数据存储、持续集成和容器服务等关键组件,以提供完整的应用程序解决方案。 前端是用户与应用程序互动的接口,代理服务器则处理网络任务,API网关则管理和公开...
【毕业设计】基于微信小程序端的视频社交软件 + 后台管理系统 相关技术 前端: h5+css+javascript+jquery+bootstrap+themeleaf+ H plus 后端: springcloud+springboot+sping+springmvc+mybatis+mysql+redis+shiro ...
多维度掌握全栈架构设计、跨框架组件开发、容器化部署管理、缓存服务、性能优化等高薪技能,助力你实现从开发者到服务提供者的进阶!成为行业急需的高薪人才! 一、首先,我们先来认识Nextjs Nextjs是一个使用react...
我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery,以加快前端开发的速度,并提供丰富的UI组件和交互效果。 我们的项目源码还使用了一些其他的技术和工具,以提高系统的性能和可靠性。我们使用了缓存技术来...
项目的亮点:所有互联网常用的代表中间件均涉及使用,基本是一个完整的全栈项目,整个博客用的是微服务架构设计与分布式部署方式,整体代码均有注释,并且扩展方便,最终部署的方式需要采用Docker方式。 项目涉及到...
18.2 基于OpenResty的常用架构模式 363 18.2.1 负载均衡 363 18.2.2 单机闭环 364 18.2.3 分布式闭环 367 18.2.4 接入网关 368 18.2.5 核心接入Nginx功能 369 18.2.6 业务Nginx功能 369 18.2.7 Web应用 370 18.3 ...
所有互联网常用的代表中间件均涉及使用,基本是一个完整的全栈项目,整个博客用的是微服务架构设计与分布式部署方式,整体代码均有注释,并且扩展方便,最终部署的方式需要采用Docker方式。 项目涉及到的技术 前端...
前端: h5+css+javascript+jquery+bootstrap+themeleaf+ H plus 后端: springcloud+springboot+sping+springmvc+mybatis+mysql+redis+shiro 组件: bootsrap-table,webUploader,pagehelper+layer 项目部署: docker +...
本书适合初级、中级、高级前端开发工程师,以及对前端开发感兴趣的读者。 在阅读本书之前,读者应该初步掌握JavaScript、HTML、CSS的基础知识,初步掌握jQuery的使用,或者有其他语言基础。 如何阅读本书 本书共...
MySQL拥有庞大的开发者社区和丰富的第三方插件、库、中间件支持,提供了丰富的文档、教程、论坛以及专业服务,极大地简化了开发、运维和故障排查过程。 关键组件与日志 系统数据库 MySQL内部包含几个特殊的系统...
前端采用vue-element ui组件。 微服务开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构
后端使用的技术后端的主要架构是基于springboot.SpringCloudNettyNacosRedisRocketMQ项目模块说明tools 工具包压缩包项目,或者测试中需要用的到中间件包,直接用docker更方便。。cloudpush-api 公共组件部分jar公共...
spring cloud 是基于Spring Cloud的云分布式后台管理系统架构,核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 ...
我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery,以加快前端开发的速度,并提供丰富的UI组件和交互效果。 我们的项目源码还使用了一些其他的技术和工具,以提高系统的性能和可靠性。我们使用了缓存技术来...
我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery,以加快前端开发的速度,并提供丰富的UI组件和交互效果。 我们的项目源码还使用了一些其他的技术和工具,以提高系统的性能和可靠性。我们使用了缓存技术来...
我们还使用了一些流行的前端框架和库,如Bootstrap和jQuery,以加快前端开发的速度,并提供丰富的UI组件和交互效果。 我们的项目源码还使用了一些其他的技术和工具,以提高系统的性能和可靠性。我们使用了缓存技术来...