软件开发体系结构

软件开发体系结构

随着网络技术的不断发展,单机的软件程序已难以满足网络计算的需要。为此,各种各样的网络程序开发体系结构应运而生。其中,运用最多的网络应用程序开发体系结构可以分为两种,一种是基于浏览器/服务器的B/S结构,另一种是基于客户端/服务器的CS结构。下面进行详细介绍。

1、C/S体系结构介绍

C/S是Client/Server的缩写,即客户端/服务器结构。在这种结构中,服务器通常采用高性能的PC机或工作站,并采用大型数据库系统(如 Oracle 或 SQL Server),客户端则需要安装专用的客户端软件,如图1.1所示。这种结构可以充分利用两端硬件环境的优势,将任务合理地分配到客户端和服务器,从
而降低了系统的通信开销。在2000年以前,C/S结构占据网络程序开发领域的主流。

2、B/S体系介绍

B/S 是Brower/Server 的缩写, 即浏览器/服务器结构。在这种结构中, 客户端不需要开发任何用户界面, 而是通过Web 浏览器(如lE 和Firefox 等)向Web 服务器发送请求,由Web服务器进行处理,并将处理结果逐级传回客户端,如图1.2所示。这种结构利用不断成熟和普及的浏览器技术来实现原来需要复杂专用软件才能实现的强大功能,从而节约了开发成本,是一种全新的软件体系结构。B/S 体系结构已经成为当今应用软件的首选体系结构。

3、两种体系结构的比较

C/S 结构和B/S 结构是当今世界网络程序开发体系结构的两大主流。 目前, 这两种结构都有自己的市场份额和客户群。但是,这两利体系结构又各有各的优点和缺点

1、开发和维护成本方面

C/S 结构的开发和维护成本都比B/S高。采用C/S结构时,对于不同客户端要开发不同的程序,而且软件的安装、调试和升级均需要在所有的客户机上进行。 例如, 如果一个企业共有10个客户站点使用一套C/S结构的软件, 则这 10 个客户站点都需要安装客户端程序。当这套软件进行了哪怕很微小的改动后, 系统维护员都必须将客户端原有的软件卸载,再安装新的版本并进行配置, 最可怕的是客户端的维护工作必须不折不扣地进行 10 次。若某个客户端忘记进行这样的更新,则该客户端将会因软件版本不一致而无法工作。 而 B/S 结构的软件, 则不必在客户端进行安装及维护。 如果将前面企业 C/S结构的软件换成 B/S 结构, 则在软件升级后, 系统维护员只需要将服务器的软件升级到最新版本, 对 千其他客户端, 只要重新登录系统, 即可使用最新版本的软件。

2、客户端负载

C/S 结构的客户端不仅负责与用户的交互,收集用户信息,而且还需要完成通过网络向服务器请求 对数据库、电子表格或文档等信息的处理工作。 由此可见, 应用程序的功能越复杂,客户端程序也就越庞大,这也给软件的维护工作带来了很大的困难。而B/S结构的客户端把事务处理逻辑部分交给了服务器, 由服务器进行处理,客户端只需要进行显示,这样将使应用程序服务器的运行数据负荷较重,一旦发生服务器”崩溃”等问题,后果将不堪设想。 因此, 许多单位都备有数据库存储服务器, 以防万一。

3、安全性

C/S构适用于专人使用的系统,可以通过严格的管理派发软件,达到保证系统安全的目的,这样的软件相对来说安全性比较高。而对于B/S结构的软件, 由千使用的人数较多且不固定,相对来说安全性就会低些。
由此可见,B/S相对千C/S来说具有更多的优势,现今大量的应用程序开始应用 B/S 结构,许多软件公司也争相开发 B/S 版的软件,也就是 Web 应用程序。随着 Internet 的发展,基于 HTTP 协议和 HTML标准的 Web 应用呈几何数盘级的增长, 而这些Web应用正是由各种Web技术所开发的。

web应用程序工作原理

Web应用程序大体上可以分为两种,即静态网站和动态网站。早期的Web应用主要是静态页面的浏览,即静态网站。这些网站使用HTML语言来编写,放在Web服务器上,用户使用浏览器通过HITP
协议请求服务器上的Web页面,服务器上的Web服务器将接收到的用户请求处理后,再发送给客户端浏览器,显示给用户。整个过程如图13所示
随着网络的发展,很多线下业务开始向网上发展,基于Internet的Web应用也变得越来越复杂用户所访问的资源已不再是只局限于服务器上保存的静态网页,更多的内容需要根据用户的请求动态生成页面信息,即动态网站。这些网站通常使用HTML语言和动态脚本语言(如JSP、ASP或是PHP等)编写,并将编写后的程序部署到web服务器上,由web服务器对动态脚本代码进行处理,并转化为浏览器可以解析的HTML代码,返回给客户端浏览器,显示给用户。整个过程如图1.4所示

说明

初学者经常会错误地认为带有动画效果的网页就是动态网页,其实不然。动态网页是指具有交互性、内容可以自动更新的网页,并且内容会根据访问的时间和访问者而改变。这里所说的交互性,是指网页可以根据用户的要求动态地改变或响应

由此可见,静态网站类似于十几年前研制的手机,这种手机只能使用出厂时设置的功能和铃声,用户自己并不能对其铃声进行添加和删除等;而动态网站则类似于现在研制的手机,用户在使用这些于机时,不再是只能使用机器中默认的铃声,而是可以根据自己的喜好任意设置

3、javaweb学习流程

零基础如果学习Java,你可以看看这套学习路线:

  • 第一:先学习Java的核心库(JavaSE)JavaSE的内容包括:环境搭建、基础语法、面向对象、数组、集合、常用类、IO流、反射机制、网络编程………
  • 第二:MySQL数据库搞定一门数据库相关的课程,例如:MySQL、Oracle,搞定一个就可以了,目前互联网公司,例如:京东、阿里等,他们都在使用MySQL,所以建议大家学习MySQL数据库,小巧轻盈,免费,由于互联网公司的项目访问量比较大,所以一般会搭建数据库的集群,可以一个数据库不够,所以需要搭建数据库集群,为了应付高并发。(搭建的比较多的时候,免费就很重要了。)
  • 第三:WEB前端 以后从事Java开发,从事JavaEE开发,主要开发的系统结构是B/S结构的,B指的是Browser,S指的是Server。要开发这种系统,B端要会,S端也要精通。WEB前端的学习就是学习B端技术。包括:HTML 、CSS、JavaScript(JS)、jQuery框架(底层对JS进行了封装)…
  • 第四:WEB后端(JavaWEB) WEB后端其实可以是很多种不同的编程语言,例如:PHP、C、C++、Java,他们都可以进行WEB后端的开发,我们既然选择了比较火爆的Java,那么我们学习的后端一定是基于Java语言实现的,包括:Servlet、Filter、Jsp、EL、JSTL、MVC架构模式、数据库连接池(阿里巴巴的Druid连接池)、代理模式(动态代理)。另外后端学习了之后,还要学习一个异步编程技术AJAX。(完成网页的局部刷新,AJAX其实不属于后端,是前端浏览器上的程序。)学习到这里为止,表示Java基本/基础的技术已经学完了。但是这些最基层的技术在实际的开发中不会使用的,一般为了开发效率,都会使用大量的提前封装好的框架。
  • 第五:最好能够停留下来,做一个项目。 这个项目最好能将之前所学全部串起来。(对以前的知识点进行巩固。) 这个项目最好是基于:Servlet + Jsp+AJAX+jQuery+MySQL…. 在这个项目的开发过程中:大家一定要记住,目前比较好的项目自动构建工具:Maven是一定要精通的。还有一个就是团队协作开发:Git/SVN是一定要会用的。(目前使用Git比较多一些。)
  • 第六:学习高级框架 Spring、SpringMVC、MyBatis(持久层框架,这个框架互联网公司使用比较多,因为互联网项目需要进行SQL优化,MyBatis的SQL优化很方便,所以大部分都是使用MyBatis) Struts2(很少使用了,使用这个的肯定是很老的项目)、Hibernate(传统企业,还有政府等可能会使用Hibernate。) SpringBoot(新项目大部分使用的都是boot了。所以在项目中遇到还在使用SSM的一般都是遗留项目。) 当你走到这里之后,基本上你可以出山了。(去找工作,8K的薪资应该问题不大,但前提是你学的好。学习的深度够了,广度够了。)
  • 第七:最好能有一个大型项目是使用框架来完成的。 SpringBoot做一个项目。 Spring SpringMVC MyBatis做一个项目。 这个项目最好是找几个人搭伙做一下。体验一下团队协作。(尤其是使用一些协作的工具。怎么沟通,怎么写日报,怎么开会,怎么使用Git,等等….)
  • 第八:如果你的薪资想达到15K的话,你可能需要还要学习一些分布式相关的一些技术。 能够应付高并发的一些技术,例如:分布式框架Dubbo、SpringCloud、MQ、Nginx、Redis……你可以根据这套学习路线进行学习。
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值