本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang。转载或引用请注明原文之出处,谢谢!

.NET企业级应用架构设计系列之开场白

.NET企业级应用架构设计系列之技术选型

这里要说到的是关于三层架构中的应用服务器。对于电子商务网站来说,成熟的架构基本上都是采用分层式的。分层的结构一方面适合人脑的思维方式,另一方面在解决扩展性方面非常有效。目前市面上的各大解决方案提供商在电子商务和一般WEB应用领域都有相应的分层解决方案,软件架构设计在这一方面几乎不存在多少争议。

出于对可扩展性以及可维护性的考虑,对业务逻辑的解耦得到的便是应用服务器。这样的情况在软件系统中非常常见,在任何情况下都能通过额外一层间接来获得灵活性,但可能会引入潜在的性能问题。在Windows Server 2008问世之前的.NET平台没有应用服务器的专门产品,架设应用服务器可以有多种可选的方案。常用的.NET应用服务器方案有:
A) 使用IIS驻留ASP.NET Web Service
B) 使用.NET Remoting提供远程对象
C) 使用Enterprise Services (COM+)提供跨进程对象调用

这三种方式中,采用TCP/Binary通道的.NET Remoting是三个方案中性能最好的,而采用ASP.NET Web Service则能提供更多的跨平台特性。在性能对比上,ASP.NET Web Service大约是TCP/Binary .NET Remoting的60%左右(和传递的数据有关),这中间的差异来自于网络传输上,ASP.NET Web Service会花费较多时间在大对象的数据串行化(Serialization)上。二进制格式的Remoting实现也提供了对象级(包括单件——singleton特性)的支持,在性能要求占主导地位的方案中较多采用。

面对这个情况,最好的解决方法是在实现的时候提供一个更加灵活的架构来随时调整策略而让调整的代价保持在最小。也就是说,把系统的核心逻辑实现为一个对象群,然后通过facet方式以最小的努力适配到不同的调用接口上。当然,最初是以SOA的方式发布WEB服务给客户端调用,以尽量实现可移植的环境。如果发现这种模式成为了系统中的性能瓶颈,则改为TCP/Binary .NET Remoting的方式发布对象

总的来说,应用服务器的架构是一个演化模型,可以随着需求和实际负载的变化实行平滑过渡。当应用服务器的横向扩展也无法应付更大的负载的时候,实际的性能瓶颈已经转移到了系统的其它地方,比如磁盘访问或接入带宽等。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2233063

.NET企业级应用架构设计系列之应用服务器相关推荐

  1. .NET企业级应用架构设计系列

    一..NET企业级应用架构设计系列之技术选型 这里说的技术选型实际上是指技术方向的选择,或者叫平台方案的选择,也或者叫技术路线等,总之是大方向的把握.假定项目背景是要做一个中型WEB系统,公司组建新的 ...

  2. Java企业级应用架构设计中的分布式结构

    Java企业级应用架构设计中的分布式结构 2010-12-24 13:54:12|  分类:默认分类 |  标签:|字号大中小 订阅 Java企业级应用架构设计是每个Java开发者不必学的知识,本文将 ...

  3. 大型网站架构设计系列总结

    大型网站架构设计系列-我的总结如下: 1. 数据结构和产品架构设计,这是基础! 2. 角色分开,各司其职(web服务器,缓存服务器,负载平衡,数据库等) 3. HTML静态化(用缓存服务器也可) 4. ...

  4. 企业管理系统前后端分离架构设计 系列一 权限模型篇

    ACL(Access Control List)(访问控制列表) DAC(Discretionary Access Control)(自主访问控制) MAC(Mandatory Access Cont ...

  5. 企业级小架构设计部署实现-docker变种(一)负载均衡网站

    企业级小架构设计部署实现 企业级小架构设计部署实现-docker变种(一)负载均衡网站 企业级小架构设计部署实现-docker变种(二)日志系统 Elastic 企业级小架构设计部署实现-二- Ans ...

  6. 《Microsoft.NET企业级应用架构设计(第2版)》——第2章 为成功而设计 2.1“大泥球”...

    本节书摘来自异步社区<Microsoft.NET企业级应用架构设计(第2版)>一书中的第2章,第2.1节,作者: [意]Dino Esposito(埃斯波西托) , Andrea Salt ...

  7. .NET企业级应用架构设计(2nd).pdf

    .NET企业级应用架构设计(2nd).pdf 链接:https://pan.baidu.com/s/1_3gJTSRovcALU0nNAn3qNw 密码:vx5i

  8. 企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨...

    何谓大规模并发,不同层面有不同的理解 企业应用(Intranet):千级强并发,万级弱并发(在线用户),十万级用户 大型企业ERP.供应链,大型企业HR.办公OA 互联网应用(Internet):百万 ...

  9. 中台之上(十一):企业级业务架构设计的“五难”

    我们简单回顾一下,以业务架构的发展过程和对业务模型基本介绍作为开始,结合笔者的工作经验和自身一些不成熟的理解,在业务架构设计方面陆续讲到了企业战略解读.企业组织结构的影响.如何划分业务领域和流程.与流 ...

最新文章

  1. Zookeeper--Zookeeper是什么
  2. 前端技巧|Chrome上4款超级实用的插件!
  3. gitee传入公钥以后每次push依然需要输入密码
  4. sql基础教程亚马逊_针对Amazon,Apple,Google的常见SQL面试问题
  5. 备案域名绑定服务器后 提示需要备案_关于天行数据ICP备案信息变更的重要通知...
  6. python主函数入口_python类 + mian()函数
  7. 桥牌笔记:让敌方的Q、J、10、X只拿一墩的打法
  8. 解决maven打包打不进lib下的第三方jar包问题
  9. 研究理解lanproxy实现内网穿透
  10. CSS3特效----制作3D旋转导航
  11. 【T+】取消记账提示入库失败,请至少选择两个字
  12. java判断用户是PC端访问还是手机端访问
  13. 什么是DOM0,DOM2,DOM3?
  14. “Unexpected end of JSON input while parsing near···”错误解决方案
  15. spack Bootstrapping Mirrors
  16. 免费赠书 | 推荐 3 本 Python 新书
  17. c++链表获取长度,链表翻转,查找链表倒数第K个节点以及中间点
  18. qt做标定软件_有什么很好的软件是用 Qt 编写的?
  19. 【Unity人物动画】SALSA With RandomEyes (语音生成嘴型/人物说话) 使用
  20. 视频安防“上帝视角“的畅想

热门文章

  1. 你应该关注web标准的真正原因
  2. 动态的管理ASP.NET DataGrid数据列
  3. matlab 画 矩阵点,在MATLAB中绘制矩阵中点之间的线
  4. php禁止代理ip访问_php禁止某ip或ip地址段访问的方法
  5. 布隆过滤器 redis_使用基于 Redis 的 Java 布隆过滤器
  6. linux网卡设置adsl上网,Linux下设置ADSL自动拨号上网
  7. android 自定义音乐圆形进度条,Android自定义View实现音频播放圆形进度条
  8. fabric 启动peer_编写 Fabric 链码的一般准则
  9. 搭建服务器环境 安装jdk、mysql、Tomcat 以及配置https 记录
  10. 运行时异常 检查时异常