应用服务器

浅谈基础平台

跟風遠走 提交于 2020-11-22 04:42:25
一、 什么是基础平台 基础平台对应于业务应用,主要处理技术问题,是为业务应用提供技术支撑以及技术方案的模块或者组件。其目的是使得应用组件可只关注于业务逻辑,而不考虑或者少考虑技术问题。 基础平台通常包括如下:基础功能,开发类库,开发模式以及开发部署工具。 二、 为何要基础平台 应用系统的设计可以说是将一个业务语言翻译成程序语言的过程,这个过程同时处理两个内容:业务和技术。 1. 学习业务,编写的代码符合用例的流程; 2. 学习技术,编写的代码符合技术平台的规范和要求。 这里不同底层技术的难易度不同,导致学习成本、开发成本和应用成本也不同。同时对于一个有较长生命周期的软件项目或者产品,其依赖的底层技术的升级也会带来相应的维护成不 面对特定领域的软件项目或者产品,其所依赖的底层技术的广度和深度相对稳定,基础平台可以填平或者减少技术层面的鸿沟。 那么,我们就面临另一个问题,即:业界已经存在大量优秀的开源框架,我们为何要基础平台。 首先,大量优秀开源框架可以帮助我们,但是: 1. 优秀的开源框架通常偏向通用性,而面向特定领域的相关特性和功能还不支持;即便有面向特定领域的,其支持的特性还存在一定差异性;同时其未必支持相应的基础设施。 因此需要进行二次开发,以完善所需的基础设施; 2. 优秀的开源框架在通用性支持广泛,提供多种选择,同时还有一定学习成本;而面向特定领域,需要的模式相对固定。

webqq更新——采用反向AJAX实现在线人员上下线模拟

偶尔善良 提交于 2019-12-05 19:21:04
原文: http://www.abigdreamer.com/mywork/webqq-update-online-reverse-ajax-implementation-off-the-assembly-line-simulation.html 本blog已转移到 造梦师 http://www.abigdreamer.com ,欢迎大家常去我的blog看看! 说明:本次更新只是模拟了一下人员的上下线,并没有采用真是的数据(我一台电脑开那么多浏览器测试的话有点受不了,谁叫电脑烂呢,呵呵) 。另外需要注意的就是,需要用这个新的dwr.jar覆盖掉原来的那个dwr.jar,要不会出问题的! 有朋友问我怎样用反向AJAX来实现在线人员列表的更新,提到DWR允许javascript访问服务器端的Java方法,这使得AJAX使用起来会比较容易,而在DWR2.0里面添加了一个非常强大的功能——反向AJAX,也就是说,服务器端的Java方法可以取得浏览器端的Web上下文,并可以调用javascript的方法,将服务器端的数据异步地传输给浏览器。本文将通过一个demo展示这种特性。这个demo实现了类似股票交易系统中实时更新数据的功能,事实上是通过发布-订阅模式去实现的。也就是说,客户端订阅一个主题,服务器端通过一个线程向订阅这个主题的浏览器定时、异步地发送数据,从而实现了这种实时更新的功能。

Servlet Specification V2.4——SRV.1 Overview

一个人想着一个人 提交于 2019-12-05 02:43:27
SRV.1 Overview SRV.1.1 What is a Servlet? 基于Java技术,由容器管理,可以生成动态内容的web组件。 和其他基于Java技术的组件一样,servlet是跨平台的。并且它还运行于可以支持Java技术的web服务器 container,我们有时候称为servlet引擎,是支持servlet的web server。 servlet通过container实现的request/response模型与web client进行交互。 SRV.1.2 What is s Servlet Container? Servlet container是web server/application server的一部分, 这种server通过发送request/response,解码基于MIME的request,并且格式化基于MIME的response来提供网络服务。 一个servlet container必须构建在宿主web服务器之内,或者作为一个附加组件被安装到web服务器上,通过其服务器的原生扩展API。Servlet container也可以或者有能力被被构建在支持web的应用程序服务器上。 所有的servlet container必须支持HTTP作为request和reponse的协议,但附加的基于request/response的协议

(五)用JAVA编写MP3解码器——解析文件信息

断了今生、忘了曾经 提交于 2019-12-02 20:28:36
前文提到解析MP3标签,程序源码中也已经出现了调用解析MP3标签、打印MP3文件信息的功能,这儿先说说MP3文件信息的解析。 解析MP3的文件信息对MP3解码器来说只是一个附加功能,如果不加入这部分源码,同时删除掉前文源码中的相关调用,不影响解码播放。如果你想编写“迷你”型的MP3解码器,可以忽略这些附加的功能。 MP3的标签信息位于文件开始处或结尾处,用于表达MP3文件的相关信息,常见的有ID3、APE等。 ID3 V1 位于文件最后的128字节,如果读取的是网络文件而服务器又不支持随机读取的话,意味着不对对其解析这部分信息。这128字节共表示7个信息: [0..2] 3 bytes: ID3 v1标识 -- 'TAG' [3..32] 30 bytes: 标题 [33..62] 30 bytes: 艺术家 [63..92] 30 bytes: 专辑名 [93..96] 4 bytes: 发行年份 [97..126] 30 bytes: v1.0 -- 注释/附加/备注信息 v1.1 -- 前29 bytes注释/附加/备注信息,最后1 byte音轨信息 [127] 1 byte : 流派 从“标题”开始,每部分内容之间用'\0'(字符串结束标志)或'\20'(空格)隔开。 ID3 V2 表示的信息更丰富,结构更复杂,位于文件开始处或位于APE标签之后。ID3

Servlet Specification V2.4——SRV.3 Servlet Context

坚强是说给别人听的谎言 提交于 2019-12-01 07:44:11
SRV.3 Servlet Context SRV.3.1 Introduction to the ServletContext Interface ServletContext接口定义了一个web应用程序的servlet视图,这些servlet就运行在此web应用程序中。Container的提供者负责提供container中ServletContext接口的实现。使用ServletContext对象,servlet可以记录时间,取得资源的引用URL,设置并存储context中其它servlet也可以可访问的attribute(set and store attributes that other servlets in the context can access)。 ServletContext被root于web server中一个已知的路径。例如:一个servlet context可以被配置在http://www.google.com/catalog。作为context path,以request路径/catalog开始的所有请求,都会发送至与此ServletContext相关联的web application。 SRV.3.2 Scope of a ServletContext Interface 每个发布到container中的web