关于软件架构、软件架构师、J2EE架构、.NET架构、SOA架构

来源:互联网 发布:软件系统报价单模板 编辑:程序博客网 时间:2024/05/17 23:48

软件架构

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。

软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。

-------------------------------------------------------------------------------------------------------------------------------------
软件架构师

软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。


软件架构师的职责是把需求转换为软件世界的模型。4+1视图中以use case作为核心,其中功能性需求以及部分非功能性需求会被软件架构师通过分析和设计,映射为各种软件设计模型。从OOA/OOD角度说,use case 在这个过程中是要转换为各种UML,其中类图,序列图,状态图是最常用到的。这个转换过程是需要智慧的,use case是目的,各种OO的原则是指导,设计模式是经验,灵活运用是能力。里面蕴涵了设计的美感,我觉得这个过程是衡量一个软件架构师的最重要的指标。

当然这个过程是迭代和反馈的,我觉得概要设计和详细设计只是思考同一个问题的粒度不同而已。

另外就是我们要熟悉语言,详细设计是要转换为代码的,而且跟语言是有关系的。语言比如java/c++等,详细设计的模型是有很多不同的。就需要软件架构师有过这个过程,并且是非常良好的映射。

除了语言就是要熟悉某个技术领域,比如J2EE/DOTnet.从J2ee来说,可能需要了解比如jsp/servlet/ejb/jndi/jta/jdbc等。还需要了解各种web framework,o/rmapping,ioc/aop容器等等。还有的就是一些技术组件和业务组件,不如workflow,rules engine等等。另外比如各种database.熟悉这些东西的目的,是把这些软件和组件合理并且有机的组织起来成为一个开发的架构。这个过程是需要创造力和想象力的。可能很多人认为这个地方正是软件架构师体现能力的地方。 
-------------------------------------------------------------------------------------------------------------------------------------------
J2EE架构

j2EE架构有别于C/S架构,是三层架构,即显示层,业务层,数据层.
典型实现技术有: jsp+servlet+javabean jsp+struts+javabean jsp+struts+spring+hibernate等等.
-------------------------------------------------------------------------------------------------------------------------------------------
.NET三层架构

所谓三层体系结构,是在客户端与数据库之间加入了一个"中间层",也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
-------------------------------------------------------------------------------------------------------------------------------------------
传统的Client/Server架构

在过去应用系统开发过程中,CLIENT/SERVER体系结构得到了广泛的应用 。其特点是,应用程序逻辑通常分布在客户和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端。但CLIENT/SERVER结构存在着很多体系结构上的问题,比如:当客户端数目激增时,服务器端的性能会因为负载过重而大大衰减;一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便;大量的数据传输增加了网络的负载等等。
-------------------------------------------------------------------------------------------------------------------------------------------
SOA(Service Oriented Architecture,以服务为导向的架构)

SOA 是一种设计模式用来设计软件系统,这些软件系统可以提供服务(services)向客户端程序或者其他的服务程序,提供手段是通过发布的界面. 书上原话是: a way of designing a software system to provide services to either end-user applications or other services through published and discoverable interfaces.

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 首付交了贷款办不下来怎么办 付首付后贷款没有批下来怎么办 交了首付贷款没有办下来怎么办 买房交了首付贷款没批下来怎么办 交完首付办不下来贷款怎么办 房子交了首付贷款办不下来怎么办 浦发银行办理房贷流水不够怎么办 房贷审批过程中突然换工作怎么办 建行快贷结清后无额度怎么办 建设银行快贷逾期2个月怎么办 全职速卖通一个月没订单要怎么办 买家点的好评写的差评怎么办 手机流量把话费扣没了怎么办 街电忘记还怎么办3天了 街电1个星期没还怎么办 苹果手机设置密码忘记问题了怎么办 买房付了首付后无法办按揭怎么办 苹果x导入通讯录不显示名字怎么办 苹果切换了id通讯录没有了怎么办 换了id通讯录记录没有了怎么办 4s升级系统通讯录没了怎么办 手机接听声音小怎么办但插耳机正常 苹果6p手机听筒声音小怎么办 苹果6s接电话对方声音小怎么办 iphone死机了怎么办关机也关不了 苹果7p卡死sos了怎么办 苹果x死机且屏幕失灵怎怎么办 幸果手机开机数字便按不动了怎么办 苹果6s黑屏但没关机怎么办 苹果6p突然黑屏怎么办单冷接电话 华硕86u的5g掉线找不到怎么办 信而富额度被清0怎么办 贷款回访电话回答错两个问题怎么办 天天中彩票获取期号失败怎么办 借贷宝电话打到家里了怎么办 私人借款付了利息不下款怎么办 别人借钱不还打电话不接怎么办 有信电话给别人打电话不接怎么办 别人欠我材料钱不接电话怎么办 别人欠我两千块钱不接电话怎么办 欠下很多钱没法面对父母怎么办