当前位置:首页 » 网页前端 » web应用程序后期怎么处理
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web应用程序后期怎么处理

发布时间: 2022-10-18 04:55:13

❶ 如何规划跟设计web应用程序,其开发周期有那几个阶段

下面用我开发的一个办公系统来说明一下如何规划跟设计WEB应用系统,及其开发几个阶段。

第一步:需求分析

我召集他们所有业务相关部门开了几次会议,将各部门的功能需求进行了整理和统一,写成的功能需求说明书,文中详细列出了软件要解决的实际问题及要达到的目标。他们要求软件要能解决他们的实际问题,带来真正的价值。比如直接给他们带来更多订单,帮助他们寻找客户并留住,同时在经营中节省人力成本及防止不必要的浪费,最终实现公司利润的增长。我认为,如果一个软件不能带来实质性的经济价值,仅仅只是用来装点公司门面,提高一点工作效率,那还不如不要。这也是他们为什么看不上有些成品软件,而要选择定制开发的原因。每个公司情况均不一样,成品软件商往往无法知道每个客户的痛处,所以做出来的产品无法真正适合客户。只有自己针对性的开发,才能真正解决问题。客户才知道他们公司最需要什么,他们的客户应如何获得和留住,业务流程应如何设计等等。有针对性开发一些实用功能,才是最适合的软件。

通过这个项目,我认识到编写软件需求说明书的过程非常重要,这决定了以后的开发过程是不是会走弯路,是否因为开发了不必要的功能浪费时间和金钱,是不是存在程序功能模块上的冲突。我在需求说明编写上花了较大精力,有种磨刀不误砍柴工的感觉。最后在所有人员一致通过这个需求说明书后才决定走下一步。

第二步:开发方案书

开发方案书是将功能需求说明书转化为可开发的具体行动方案,我根据开发平台的开发规则进行编写的,将软件需求说明书中的功能模块进行组合优化,分析出各个模块的数据结构及数据关系、运算逻辑,理清各模块之间的业务流程,最后根据各业务部门人员的实际情况规划各模块的界面样式。

我的开发方案书也写得很详细,不过相比功能需求说明书,感觉容易些,毕竟大方向已有了。开发方案书中我将数据结构中的表及字段全部规划好,并命名好,包括其数据类型、长度等,做成表格,并将各字段数据来源及编辑方式等均做好说明。前面忘记说明了,我虽然对编程不懂,但由于以前有过管理软件操作方面经验,对数据库还是有一定了解的,但也只是懂一些皮毛,不过用天纵快速开发平台开发,这点数据库方面的知识够用了,以后使用过程中如果需要更复杂的一些sql语句再网上搜索一下吧。

开发方案书对后期的系统开发非常重要,下面的开发过程其实就是将开发方案书的内容在快速开发平台进行配置的过程。

第三步:开发及测试

有开发方案书,接下来的开发就非常容易了,其实就是将开发方案书的内容配置到开发平台上的过程,这就是我前面说的为什么找这样一个开发平台开发这个系统的原因。

用配置型开发平台开发软件相当简单快速,一般的模块三步就可以搞定了,第一步设置模块信息,第二步设置表单属性,第三步设置表中每个字段。也许我这样说你还是不太相信,那好吧。上图!

天纵快速开发平台分开发后台和应用前台。顾名思义,开发后台是供开发者使用的,应用前台是开发好的系统进行使用的地方。好了,进入开发后台吧,如下图:

通过这三步的配置,一个功能模块基本完成了。是不是非常简单快速!整体开发过程是不是全部是通过配置来完成的。当然上面提到的是一些最基本的配置,对于复杂功能要求的模块,可能还要进行更详细的配置。

配置型开发平台由于省去代码编写,开发速度大大提高,由于界面是由开发平台中间件根据配置的业务参数自动生成,不用每个界面均去编写一套代码,因此出错率大大降低,软件的性能和稳定性自然也就有了保障。

第四步:编写操作手册

系统开发好后,有一个收尾工作是不能省的,那就是编写操作手册。好在我平时没事就喜欢写点博客,对写作没有畏惧心。操作手册是供使用者学习和操作时用的,在操作手册中我将系统操作过程及其注意事项详细列出,事后我才知道,操作手册也是这个系统正式能使用起来的重要因素之一,因为我写的操作手册有声有色,条理清晰,操作这个系统的同事很快就能理解并上手了。

我得出的经验是:操作手册越早编写越好,最好是在开发的同时就进行编写,开发过程中一些重点内容要立即记录下来,提醒以后的使用者,时间一长了,就算是开发者本人也可能都忘记了,最后导致使用者走弯路。

第五步:上线试运行

折腾了半个多月,一个共有50多个模块的内部管理系统基本算是大功告成了,请客户的几个部门领导一起演示操作走了一遍,大家十分满意,总算没辜负老他们板的期望。他们老板一高兴,批准买一台服务器专门运行这个系统。我花了一天时间,部署到服务器上,开始上线试运行。

第六步:正式运行

经过了半个月的试运行,调整了其中出现一些小问题,就开始召集所有部门相关人员进行几天的操作培训,开始正式在公司内全面运行。

❷ 软件开发流程有哪些、软件后期维护怎么做

你可以先去【绘学霸】网站找“影视后期技术”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=311&zdhhr-11y04r-2073684129955709388

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/yingshi?type=4&zdhhr-11y04r-2073684129955709388

在“影视后期技术”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

❸ 什么是web应用程序

Web程序是什么意思?

Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户可以很容易访问应用程序。用户只需要有浏览器即可,不需要再按照其他软件。

Web应用程序开发,是目前软件开发领域的三大方向之一。

❹ Python web服务器怎么处理请求

web服务器处理连接请求的四种架构方式:

1、单线程web服务器

此种架构方式中,web服务器一次处理一个请求,结束后读取并处理下一个请求。在某请求处理过程中,其它所有的请求将被忽略,因此,在并发请求较多的场景中将会出现严重的必能问题。

相关推荐:《Python教程》

2、多进程/多线程web服务器

此种架构方式中,web服务器生成多个进程或线程并行处理多个用户请求,进程或线程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程或线程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程或线程将会消耗大量的系统资源。

3、I/O多路复用web服务器

为了能够支持更多的并发用户请求,越来越多的web服务器正在采用多种复用的架构——同步监控所有的连接请求的活动状态,当一个连接的状态发生改变时(如数据准备完毕或发生某错误),将为其执行一系列特定操作;在操作完成后,此连接将重新变回暂时的稳定态并返回至打开的连接列表中,直到下一次的状态改变。由于其多路复用的特性,进程或线程不会被空闲的连接所占用,因而可以提供高效的工作模式。

4、多路复用多线程web服务器

将多进程和多路复用的功能结合起来形成的web服务器架构,其避免了让一个进程服务于过多的用户请求,并能充分利用多CPU主机所提供的计算能力。 web服务器自身并不处理任何动态内容,它是如何响应客户端的动态内容请求呢? 通过某种协议调用额外的其它进程来运行这个动态页面,并将结果取回来以后返回给WEB服务器,进而响应客户端。

❺ webserver

web应用服务器是互联网时代最为重要之一的底层支持。它处理相应的应用访问请求,并为前端提供相应的展示数据。
不同的web应用服务器实现性能不同,大型网站服务器可以每秒处理几万到几十万的应用请求,中小型网站服务器可能会因为每秒几千次请求停机。
从架构的角度上而言,web-server的升级是一个迭代的过程,只有现在的应用服务器无法满足网站的访问量,才会在此之上进行优化。对于一名好的架构师而言,落地和防灾、可扩展是优先需要考虑的相关事宜。

首先要说的是软件开发是一个确定性的事件, 有章可循,有理可溯 ,任何现象都是可以被解释的,这是入门级程序员和高级程序员的区别之处。
我们以这种思路自顶向下去分析解决问题。

以主流的JavaEE为例,传统的应用开发两个较为核心的工作内容是:

这可能会涉及持续化集成、自动化测试、测试驱动开发概念。

在这之后,可能还会存在的工作是:

在这个过程中,可能会涉及封装、基类、工具类、反射、泛型的概念。

从上面可以看出,软件开发是一件团队合作的事情。应该由 不同的人员去从事不同的事情 。传统项目的分工基本如下(基于个人主观猜测):

目前比较主流的web应用框架是以spring-boot为主的微服务框架。对于上面说的三个事情而言,重要的是 把其中任何一件事情当作一个工程去做,赋予一个合适的时间周期。 这部分内容在预研过程中非常关键,前期未考虑到的因素后期再修改代价可能为 指数级

以spring-boot为主,结合mysql搭建web应用服务器的例子github上有很多,在这里不再赘述。

从客户端传递到服务器,响应时间由以下三个部分组成:

当出现应用响应时间过高这个问题时,对于相关人员,首先需要做的是:

对上面三个部分进行测试,分析它们分别所消耗的时间,然后再对此进行优化。 做到有的放矢,不要四处放枪

当我们开发完应用程序之后,该如何进行应用的部署呢?怎样的部署才能够保证服务器的处理时间较短?
下面我们讨论单个tomcatweb应用服务器和多个tomcatweb应用服务器。

通过spring boot 创建web应用有两种方式:war包与jar包。在本文中以war包为例。

servlet解析web请求过程:

tomcat作为servlet容器的一种,管理着部署的多个web应用。tomcat运行架构图如下:

从上图中可以看出:

所以由于每个web应用只创建了一个servlet实例,所以需要线程安全问题。(即servlet中包含静态变量和成员变量的时候会出现线程安全的问题。应该使用局部变量。)

tomcat 并发模型

从单个tomcat运行web应用中可以看出:

java web通过封装servlet屏蔽了服务细节,使web开发人员专注与业务逻辑的实现。这是j2ee能在web开发中有一定地位的原因。
然而,由于servlet的创建和tomcat 多线程的并发处理全部交由tomcat来做,在这一个层次程序员无法做太多的事情,只能对tomcat和jvm进行调优。
万幸的是cpu不是系统性能的瓶颈。但是目前有很多的游戏已经使用goroutine来实现了。因为golang的协程可以开上万个,非常适合多线程的处理。

在一些大型网站中,对这部分性能调优的解决方案有:

第二种方案就引入了多tomcat web应用服务器。它的思路是:

在云计算尚未出现时,负载均衡及容器的维护往往由内部的技术部自行实现,在云计算时代,由于K8S和Docker的出现,使这类问题解决更为容易。
K8S的弹性伸缩,把容器进行拷贝复制,并自动负责负载均衡,可以大大简化其流程。

ps:在K8S上运行的多个tomcat容器是相同的拷贝。

淘宝的例子

从传统的意义上讲,系统的性能瓶颈并不存在于cpu的计算能力,而在于I/O。
所以大型网站架构上通常在思考如何降低I/O的时间。

最常用的降低I/O时间是使用reddis和memcached做缓存,关于这块前辈的经验摘引如下:

安全内容博大精深,关于安全方面相关的一些基本的认知链接如下:

web application security

另外,如果对于java 而言,可以使用一个apache的安全框架
shiro

此外还有一些诸如分布式文件存储、加快服务器脚本运算速度、页面组件分离等都是提高服务器响应的方法。

在web开发中,cookie和seesion经常用到。接下来进行简单的说明。cookie和session主要是用来保存数据及状态。

cookie 和session 的区别:

建议:

cookie和session可以解决跨页面传递数据的问题。
前端跨页面传递数据是一个比较繁琐的问题,依赖于浏览器的架构和实现。cookie和session是一种通用的解决方案。

❻ 什么是web应用系统

Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件。一个Web应用程序是由完成特定任务的各种Web组件(web components)构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。所有这些组件相互协调为用户提供一组完整的服务。


(6)web应用程序后期怎么处理扩展阅读:

应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,也就是说这类程序一般独立运行。而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助IE等浏览器来运行。WEB应用程序一般是B/S模式。Web应用程序首先是“应用程序”,和用标准的程序语言,如C、C++等编写出来的程序没有什么本质上的不同。然而Web应用程序又有自己独特的地方,就是它是基于Web的,而不是采用传统方法运行的。换句话说,它是典型的浏览器/服务器架构的产物。

❼ web后期都有什么学习内容

1、HTML的学习
超文本标记语言(HyperTextMark-up Language简称HTML)是一个网页的骨架,无论是静态网页还是动态网页,最终返回到浏览器端的都是HTML代码,浏览器将HTML代码解释渲染后呈现给用户。因此,我们必须掌握HTML的基本结构和常用标记及属性。
2、CSS的学习
CSS是英文Cascading Style Sheets的缩写,叫做层叠样式表,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言其样式是可以复用的,这样就极大地提高了我们开发的速度,降低了维护的成本。同时CSS中的盒子模型、相对布局、绝对布局等能够实现对网页中各对象的位置排版进行像素级的精确控制。

3、JavaScript的学习
JavaScript是一种在客户端广泛使用的脚步语言,在JavaScript当中为我们提供了一些内置函数、对象和DOM操作,借助这些内容我们可以来实现一些客户端的特效、验证、交互等,使我们的页面看起来不那么呆板,屌丝瞬间逆袭高富帅!有木有?

4、jQuery的学习
jQuery是一个免费、开源的轻量级的JavaScript库,并且兼容各种浏览器(jQuery2.0及后续版本放弃了对IE6/7/8浏览器的支持),同时现在有很多基于jQuery的插件可供选择,这样在我们实现一些丰富的动态效果时更方便快捷,大大节省了我们开发的时间,提高了开发速度,这也充分体现了其write less,do more的核心宗旨。

❽ web应用程序的特点,应用,开发环境,运行模式

1 引言

散进散出货物或者称为大宗入出库货物的管理是综合仓库管理的主要内容??1??2??。目前,随着信息技术和网络技术的发展,“信息高速公路”建设已在全球拉开序幕,传统的ClientServer??简称CS??网络应用系统模式在开放性与信息的发布、交流等方面存在很大的局限性,严重影响到仓储管理适应全球性的全方位信息化进程的步伐,CS网络模式已经不适宜用来构建高性能的仓储管理网。Browser/Server ??简称B/S?? 网络结构模式作为传统CS模式的扩展,为仓储管理的建设提供了崭新的技术手段,开辟了网络建设的新途径。本文为克服传统的ClientServer的局限性,提出了基于B/S模式和C/S模式结合策略的仓储管理信息系统的总体结构和实现方法。

2 总体设计

在市场经济改革的大潮中,仓储行业为谋求发展,大量的是外协代管物资的保管。仓库服务的对象是货主,因此整个仓储管理信息系统的出发点应以货主为中心。货主的管理就成为系统设计的关键技巧。在总体设计上考虑到业务的复杂性及繁重的客户端计算,为提高管理效率,加强仓储管理系统与外部信息交互,系统设计采用 C/S+B/S结构,其结构如图1所示。

3 B/S网络模式的结构、工作原理和特点

B/S网络结构模式是基于Intranet的需求而出现并发展的。Intranet是应用TCPIP协议建立的企事业单位内部专用网络,它采用诸如 TCPIP、HTTP、SMTP和HTML等Internet技术和标准,能为企事业单位内部交换信息提供服务。同时,它具有连接Internet的功能和防止外界入侵的安全措施。另一方面,由于数据库具有强大的数据存储和管理能力,并且能够动态地进行数据输入和输出,如果把数据库应用于Intranet 上,不仅可以实现大量信息的网上发布,而且能够为广大用户提供动态的信息查询和数据处理服务,进而加强企事业单位内部部门之间、上级部门与下级部门之间、企事业单位员工之间、企事业单位与客户之间以及企事业单位与企事业单位之间的信息交流,降低企事业单位的日常工作成本,提高企事业单位的经济效益。

3.1 BS模式的模型结构

BS模式,即浏览器/服务器模式,是一种从传统的二层CS模式发展起来的新的网络结构模式,其本质是三层结构CS模式。

3.2 BS模式的工作原理

在B/S模式中,客户端运行浏览器软件。浏览器以超文本形式向Web服务器提出访问数据库的要求,Web服务器接受客户端请求后,将这个请求转化为SQL 语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行数据处理,然后将处理后的结果返回给Web服务器,Web服务器再一次将得到的所有结果进行转化,变成HTML文档形式,转发给客户端浏览器以友好的Web页面形式显示出来。

3.3 BS模式的特点

BS模式管理信息系统基本上克服了CS 模式管理信息系统的不足,其主要表现在:

3.3.1系统开发、维护和升级的经济性

对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,BS模式所具有的框架结构可以大大节省这些费用,同时,BS模式对前台客户机的要求并不高,可以避免盲目进行硬件升级造成的巨大浪费。

3.3.2 BS模式提供了一致的用户界面

BS模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。

3.3.3 BS模式具有很强的开放性

在BS模式下,外部的用户亦可通过通用的浏览器进行访问。

3.3.4 B/S模式的结构易于扩展

由于Web的平台无关性,BS模式结构可以任意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。

3.3.5 BS模式具有更强的信息系统集成性

在BS模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。

3.3.6 BS模式提供灵活的信息交流和信息发布服务
BS模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。

4 CS网络模式的结构、工作原理和特点

CS模式是一种两层结构的系统:第一层是在客户机系统上结合了表示与业务逻辑;第二层是通过网络结合了数据库服务器。CS模式主要由客户应用程序、服务器管理程序和中间件三个部分组成。首先,交互性强是CS固有的一个优点。在CS中,客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。其次,CS模式提供了更安全的存取模式。由于CS配备的是点对点的结构模式,采用适用于局域网、安全性可以得到可靠的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCPIP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。由于CS在逻辑结构上比BS少一层,对于相同的任务,CS完成的速度总比BS快,使得C/S更利于处理大量数据。由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。同时由于开发是针对性的,因此,操作界面漂亮,形式多样,可以充分满足客户自身的个性化要求。但缺少通用性,业务的变更,需要重新设计和开发,增加了维护和管理的难度,进一步的业务拓展困难较多。不过此部分内容对于管理制度成熟的仓库企业而言,其困难度并不大。

5 基于BS模式和CS模式结合策略

如上所述,BS在MIS中的一个重要用途即是WEB??而目前企业WEB的基本工作模式就是:

①WEB Browser根据用户操作对WEB Server提出访问请求。

②Server将请求分析处理,通过CGI访问DBMS以进行数据的查询统计或事务的提交。

③CGI根据DBMS返回的结果生成HTML文书经过Server向客户的Browser返回结果。

④Browser将HTML结果显示给用户。

上述流程,工作量主要在WEB Server部分,而对该部分的处理目前也有几种方法,有用CGI访问DBMS??也有依靠Web Server自身具有数据库处理能力,也有混合访问DBMS,但总的来说,对Web Server端的应用开发能满足我们的要求。

在各个子系统??3??应用上,我们仍然使用ClientServer方式,在典型的CS数据库应用中,数据的储存管理功能,是由服务器程序独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号不准重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)这背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序可以变的非常“瘦小”,麻烦的事情,都交给了服务器和网络。在CS体系下,数据库真正变成了公共、专业化的仓库,受到独立的专门管理。无论你用小型XBASE类数据库,或大型的Oracle 、Sybase类数据库,在客户端你仍然要装实用程序用于数据服务器的信息联系,而同样对于大多数管理类用户??则可安装浏览器??编制一定的CGI程序??甚至利用新出现的JDBC或ASP技术??实现与后台数据库的连接。

为此,我们在仓储管理信息系统中的货主物资入出库管理采用CS模式,而在货主库存物资动态信息管理采用BS模式。具体的功能模块和数据库结构参见文献??3??。

6 结束语

对于企业的BS应用,从当前的技术水平看,特别适用于系统同用户交互量不大的应用,对于需要大量频繁、高速交互的应用系统,采用这种模式并不一定是最好的选择。采用Intranet应用模式并不一定要全部取代传统的ClientServer结构,从某种意义特别是从近期的发展看,二者应用界限并不清晰,而且往往是互相补充、相辅相成的。事实上,企业MIS采用BS模式并不是要求把应用都转到WEB Server上来,而是要根据情况来选择。那么,在应用中新的BS模式就需要能同传统的CS模式结合起来。
企业在选择MIS系统平台模式时,要考虑到BS模式的先进性,也要考虑到CS模式的成熟性,还可以根据企业自身的业务特点,采取CS与BS交叉并用的体系结构。Intranet系统的出现,其技术日益走向成熟,无疑是企业MIS建设的首选模式。但目前情况下,完全抛弃CS技术及其系统结构模式也是不实际的。一方面,原来的系统能满足使用要求的应保留使用;另一方面,CS技术能解决许多目前Intranet系统还不易解决的问题。此外,Intranet系统的优越性表现在对信息的发布、数据的收集、数据共享方面。事实上,只有将主要以数据库为处理对象的统计、分析、控制作为主体的业务处理技术(CS技术)与采用WEB技术的信息查询、发布系统的有机结合,才是仓储管理企业网络化的最佳解决方案。

❾ web应用程序的工作特点是什么

1应用范围广
2后期维护成本低.(因为你不用更新客户端)

这两个最重要.
安全性不是他的特点.

❿ Web应用技巧(一)如何调用WebService

从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。 对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。 不管你的Web service是用什么工具,什么语言写出来的,只要你用SOAP协议通过HTTP来调用它,总体结构都一致。通常,你用你自己喜欢的语言(如VB 6或者VB.NET)来构建你的Web service,然后用SOAP Toolkit或者.NET的内建支持来把它暴露给Web客户。于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,以调用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。对VB 6程序来说,Web service请求处理器是一个与SOAP Toolkit组件协同工作的ASP页面或ISAPI extension。而对VB.NET程序来说,Web service请求处理器则是一个.NET Framework自带的ISAPI extension。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。 2. 基本概念SOAPWeb service建好以后,其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的远程过程调用( RPC)方法来调用Web service。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。客户端和服务端之间的方法调用请求和结果返回值都放在这些消息里。 XML和XSD可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的。XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是 64位?这些细节对实现互操作性都是很重要的。W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合Web service标准,所有使用的数据类型都必须被转换为XSD类型。 WSDL(Web Services Description Language) 用于描述服务端所提供服务的XML格式。WSDL文件里,描述了服务端提供的服务,提供的调用方法,以及调用时所要遵循的格式,比如调用参数和返回值的格式等等。WSDL 很像COM编程里的IDL(Interface Description Language),是服务器与客户端之间的契约,双方必须按契约严格行事才能实现功能。 WSML(Web Services Meta Language) 用于描述WSDL里提供的方法与实现该方法的COM对象之间的映射关系。该文件是Microsoft的实现中特有的,不是SOAP标准的一部分。一般情况下,该文件只在服务端存在。 3.Webservice的技术特点 长项一: 跨防火墙的通信 如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。 举个例子,在应用程序里加入一个新页面,必须先建立好用户界面(Web页面),并在这个页面后面,包含相应商业逻辑的中间层组件,还要再建立至少一个ASP页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最后还要把“结果页”送回浏览器。要是客户端代码不再如此依赖于HTML表单,客户端的编程就简单多了。 如果中间层组件换成Web Service的话,就可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的那一步。要调用Web Service,可以直接使用Microsoft SOAP Toolkit或.NET这样的SOAP客户端,也可以使用自己开发的SOAP客户端,然后把它和应用程序连接起来。不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性。同时,应用程序也不再需要在每次调用中间层组件时,都跳转到相应的“结果页”。 从经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用Web Service这种结构,可以节省花在用户界面编程上20%的开发时间。另外,这样一个由Web Service组成的中间层,完全可以在应用程序集成或其它场合下重用。最后,通过Web Service把应用程序的逻辑和数据“暴露”出来,还可以让其它平台上的客户重用这些应用程序。 长项二: 应用程序集成 企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过Web Service,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。 例如,有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。这两个程序来自不同软件厂商。一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。通过在订单执行程序上面增加一层Web Service,订单执行程序可以把“Add Order”函数“暴露”出来。这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。 Web Service是B2B集成成功的关键。通过Web Service,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念, EDI(电子文档交换)早就是这样了。但是,Web Service的实现要比EDI简单得多,而且Web Service运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,Web Service并不像EDI那样,是文档交换或B2B集成的完整解决方案。Web Service只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。 长项四: 软件和数据重用 软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,另一种形式是二进制形式的组件重用。 当前,像表格控件或用户界面控件这样的可重用软件组件,在市场上都占有很大的份额。但这类软件的重用有一个很大的限制,就是重用仅限于代码,数据不能重用。原因在于,发布组件甚至源代码都比较容易,但要发布数据就没那么容易,除非是不会经常变化的静态数据。 Web Service在允许重用代码的同时,可以重用代码背后的数据。使用Web Service,再也不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的Web Service就可以了。举个例子,要在应用程序中确认用户输入的地址,只需把这个地址直接发送给相应的Web Service,这个Web Service 就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址是否在相应的邮政编码区域。Web Service 的提供商可以按时间或使用次数来对这项服务进行收费。这样的服务要通过组件重用来实现是不可能的,那样的话你必须下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的。 另一种软件重用的情况是,把好几个应用程序的功能集成起来。例如,要建立一个局域网上的门户站点应用,让用户既可以查询联邦快递包裹,查看股市行情,又可以管理自己的日程安排,还可以在线购买电影票。现在Web上有很多应用程序供应商,都在其应用中实现了这些功能。一旦他们把这些功能都通过Web Service “暴露”出来,就可以非常容易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。 将来,许多应用程序都会利用Web Service,把当前基于组件的应用程序结构扩展为组件/Web Service 的混合结构,可以在应用程序中使用第三方的Web Service 提供的功能,也可以把自己的应用程序功能通过Web Service 提供给别人。两种情况下,都可以重用代码和代码背后的数据。