关于软件架构、软件架构师、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.
- 关于软件架构、软件架构师、J2EE架构、.NET架构、SOA架构
- 软件架构之J2EE架构
- SOA? 下一代软件架构 ?
- 下一代软件架构-SOA
- 下一代软件架构--SOA
- SOA软件架构
- 下一代软件架构--SOA
- 下一代软件架构--SOA
- 下一代软件架构--SOA
- SOA软件系统架构:
- 下一代软件架构--SOA
- 下一代软件架构--SOA
- SOA软件架构
- SOA&RESTful软件架构
- 软件架构与架构师
- 软件架构与架构师
- 软件架构与架构师
- 下一代软件架构—SOA
- [转]C语言宏定义技巧(常用宏定义)
- 中国债券市场发展大事记
- Expert C Programming读书笔记IV
- EditPlus的Win32语法文件
- JSP的九个隐含对象
- 关于软件架构、软件架构师、J2EE架构、.NET架构、SOA架构
- [转]C宏中"#"和"##"的用法
- BCB实现文件上传下载(转)
- 旅行商问题的n种解法
- ruby中的gc
- SOA架构概述
- SOA协同软件 轻松应对信息化新挑战
- SOA架构的其它问题
- 数据结构总结