categories:
资料 author:
sch
来源:互联网
一、Axis2简介
1.1 介绍Axis2
Axis框架来自 Apache 开放源代码组织,它是基于JAVA语言的最新的 SOAP 规范(SOAP 1.2)和 SOAP withAttachments 规范(来自 Apache Group )的开放源代码实现。有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能,例如JBuilder以及著名的Eclipse J2EE插件Lomboz。AXIS的最新版本可以从 http://ws.apache.org/axis/index.html下载。
下载下来后直接解压即可用了。下图是AXIS核心引擎的体系结构图:
整个AXIS项目包括以下几个部分:
ü 消息流子系统
消息流子系统提供了灵活的消息传递框架,这个消息传递框架包括处理程序、链、序列化程序和反序列化程序。处理程序是一个处理请求、响应和故障流的对象。处理程序可被组合在一起成为链,而且可以使用一个灵活的部署描述符来配置这些处理程序的顺序。
ü 传输框架子系统
提供了一个传输框架,这个传输框架可以帮助您创建自己的可插式传输发送器和传输侦听器。
ü 数据编码子系统
AXIS完全按照 XML Schema 规范提供各种数据类型的自动序列化,并且提供功能扩展接口来使用您自己定制的序列化器和反序列化器。
ü 其他
AXIS完全支持 WSDL 以及日志记录、出错以及故障处理机制。它同时提供一些工具用来讲WSDL文档转换成客户端的调用框架以及根据类来产生WSDL定义文档。
AXIS目前版本支持的标准是:W3C SOAP1.1 和 … 阅读全文
categories:
资料 tags:
java author:
sch
来源:互联网
一、串行化的概念和目的
1.什么是串行化
对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复。我们把对象的 这种能记录自己的状态以便将来再生的能力。叫作对象的持续性(persistence)。对象通过写出描述自己状态的数值来记录自己 ,这个过程叫对象的串行化(Serialization) 。串行化的主要任务是写出对象实例变量的数值。如果交量是另一对象的引用,则引用的对象也要串行化。这个过程是递归的,串行化可能要涉及一个复杂树结构的 单行化,包括原有对象、对象的对象、对象的对象的对象等等。对象所有权的层次结构称为图表(graph)。
2.串行化的目的
Java对象的单行化的目标是为Java的运行环境提供一组特性,如下所示:
1) 尽量保持对象串行化的简单扼要 ,但要提供一种途径使其可根据开发者的要求进行扩展或定制。
2) 串行化机制应严格遵守Java的对象模型 。对象的串行化状态中应该存有所有的关于种类的安全特性的信息。
3) 对象的串行化机制应支持Java的对象持续性。
4) 对象的串行化机制应有足够的 可扩展能力以支持对象的远程方法调用(RMI)。
5) 对象串行化应允许对象定义自身 的格式即其自身的数据流表示形式,可外部化接口来完成这项功能。
二、串行化方法
从JDK1.1开始,Java语言提供了对象串行化机制 ,在java.io包中,接口Serialization用来作为实现对象串行化的工具 ,只有实现了Serialization的类的对象才可以被串行化。
Serializable接口中没有任何的方法。当一个类声明要实现Serializable接口时,只是表明该类参加串行化协议,而不需要实现任何特殊的方法。下面我们通过实例介绍如何对对象进行串行化。
1.定义一个可串行化对象
一个类,如果要使其对象可以被串行化,必须实现Serializable接口。我们定义一个类Student如下:
- import java.io.Serializable;
- public class Student implements
…
阅读全文
categories:
资料 tags:
haproxy author:
sch
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。
HAProxy 特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql 的均衡负载。。
如果说在功能上,能以proxy反向代理方式实现 WEB均衡负载,这样的产品有很多。包括 Nginx,ApacheProxy,lighttpd,Cheroke 等。
但要明确一点的,Haproxy 并不是 Http 服务器。以上提到所有带反向代理均衡负载的产品,都清一色是 WEB 服务器。简单说,就是他们能自个儿提供静态(html,jpg,gif..)或动态(php,cgi..)文件的传输以及处理。而Haproxy 仅仅,而且专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务。
但其配置简单,拥有非常不错的服务器健康检查功能还有专门的系统状态监控页面,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。自1.3版本开始还引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend。
另外, 版本1.3 是处于活跃开发阶段的版本, 它支持如下新特性:
l 内容交换 : 可以根据请求(request)的任何一部分 来选择一组服务器, 比如请求的 URI , Host头(header) , cookie , 以及其他任何东西. 当然,对那些静态分离的站点来说,对此特性还有更多的需求。… 阅读全文
categories:
资料 author:
sch
来源:互联网
1.PEM编码文件结构介绍
PEM全称是Privacy Enhanced Mail,该标准定义了加密一个准备要发送邮件的标准,主要用来将各种对象保存成PEM格式,并将PEM格式的各种对象读取到相应的结构中。它的基本流程是这样的:
1. 信息转换为ASCII码或其它编码方式;
2. 使用对称算法加密转换了的邮件信息;
3. 使用BASE64对加密后的邮件信息进行编码;
4. 使用一些头定义对信息进行封装,这些头信息格式如下(不一定都需要,可选的):
Proc-Type,4:ENCRYPTED
DEK-Info: cipher-name, ivec其中,第一个头信息标注了该文件是否进行了加密,该头信息可能的值包括ENCRYPTED(信息已经加密和签名)、MIC-ONLY(信息经过数字签名但没有加密)、MIC-CLEAR(信息经过数字签名但是没有加密、也没有进行编码,可使用非PEM格式阅读)以及CLEAR(信息没有签名和加密并且没有进行编码,该项好象是openssl自身的扩展,但是并没有真正实现);;第二个头信息标注了加密的算法以及使用的ivec参量,ivec其实在这儿提供的应该是一个随机产生的数据序列,与块加密算法中要使用到的初始化变量(IV)不一样。
5. 在这些信息的前面加上如下形式头标注信息:
—–BEGIN PRIVACY-ENHANCED MESSAGE—–
在这些信息的后面加上如下形式尾标注信息:
—–END PRIVACY-ENHANCED MESSAGE—–
上面是openssl的PEM文件的基本结构,需要注意的是,Openssl并没有实现PEM的全部标准,它只是对openssl中需要使用的一些选项做了实现,详细的PEM格式,请参考RFC1421-1424。
下面是一个PEM编码的经过加密的DSA私钥的例子:
—–BEGIN DSA PRIVATE KEY—–
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,F80EEEBEEA7386C4
GZ9zgFcHOlnhPoiSbVi/yXc9mGoj44A6IveD4UlpSEUt6Xbse3Fr0KHIUyQ3oGnSmClKoAp/eOTb5Frhto85SzdsxYtac+X1v5XwdzAMy2KowHVk1N8A5jmE2OlkNPNtof132MNlo2cyIRYaa35PPYBGNCmUm7YcYS8O90YtkrQZZTf4+2C4kllhMcdkQwkrFWSWC8YOQ7w0LHb4cX1FejHHom9Nd/0PN3vn3UyySvfOqoR7nbXkrpHXmPIr0hxXRcF0aXcV/CzZ1/nfXWQf4o3+oD0T22SDoVcZY60IzI0oIc3pNCbDV3uKNmgekrFdqOUJ+QW8oWp7oefRx62iBfIeC8DZunohMXaWAQCU0sLQOR4yEdeUCnzCSywe0bG1diD0KYaEe+Yub1BQH4aLsBgDjardgpJRTQLq0DUvw0/QGO1irKTJzegEDNVBKrVnV4AHOKT1CUKqvGNRP1UnccUDTF6miOAtaj/qpzra7sSk7dkGBvIEeFoAg84kfh9hhVvF1YyzC9bwZepruoqoUwke/WdNIR5ymOVZ/4Liw0JdIOcq+atbdRX08niqIRkfdsZrUj4leo3zdefYUQ7w4N2Ns37yDFq7
—–END DSA PRIVATE … 阅读全文
categories:
资料 author:
sch
来源:互联网
一、数据库基础
1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式
2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control)
数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等
数据操纵:Select ,insert,update,delete,
数据控制:grant,revoke
3. SQL常用命令:
CREATE TABLE Student(
ID NUMBER PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL);//建表
CREATE VIEW view_name AS
Select * FROM Table_name;//建视图
Create UNIQUE … 阅读全文
categories:
资料 tags:
redis author:
sch
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章:
1.Redis简介
Redis是 一个key-value存储系统。和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和 string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add /remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
2.Redis的性能
下面是官方的bench-mark数据:
- The test was done with 50 simultaneous clients performing 100000 requests.
- The value SET and GET is a 256 bytes string.
- The Linux box is running Linux 2.6, it’s Xeon
…
阅读全文
categories:
资料 tags:
java, 测试 author:
sch
来源:互联网
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
先 简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以 用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和public描述这个数据是公 有的一样。想具体了解可以看Core Java2。废话不多说了,直接进入正题。
我们先看一下在JUnit 3中我们是怎样写一个单元测试的。比如下面一个类:
public class AddOperation {
public int add(int x,int y){
return x+y;
}
}
我们要测试add这个方法,我们写单元测试得这么写:
import junit.framework.TestCase;
import static org.junit.Assert.*;
public class AddOperationTest extends TestCase{
public void setUp() throws Exception {
}… 阅读全文
categories:
资料 tags:
java author:
sch
来源:互联网
一、Weblogic的集群
还记得我们在第五天教程中讲到的关于Tomcat的集群吗?
![wps_clip_image-1387[3][1] wps_clip_image-1387[3][1]](http://www.iigrowing.cn/wp-content/uploads/weblogic_D068/wps_clip_image138731.jpg)
两个tomcat做node即tomcat1, tomcat2,使用Apache HttpServer做请求派发。
现在看看WebLogic的集群吧,其实也差不多。
![wps_clip_image-9844[3][1] wps_clip_image-9844[3][1]](http://www.iigrowing.cn/wp-content/uploads/weblogic_D068/wps_clip_image984431.jpg)
区别在于:
² Tomcat的集群的实现为两个物理上不同的tomcat,分别就是两个node,没有总控端,没有任何控制台可言(只有通过比较简陋的http://localhost:8080/manager/html,或者是http://localhost:9090/manager/html)来对每个tomcat节点进行监视(此处只有monitor没有control);
如果我们要布署我们的Web应用,需要分别手工往每个Tomcat的webapp目录里拷贝文件。
² Weblogic的集群必须设立一个总控端,可从上图中看出,然后这个总控端我们把它称为AdminServer,然后在其下可以挂weblogic的集群的node,这个node不是物理上不同的两个weblogic,而是不同的domain,我们假设domain1, domain2为两个weblogic的集群的节点。
如果我们要布署我们的Web应用,只需要在总控端布署一次,然后挂在这个总控端下的节点将会自动将我们的web应用发布到每一个节点。
因此,要实现weblogic的集群必须:
ü 安装Weblogic
ü 创建一个AdminServer的domain
ü 在AdminServer上建立集群总控端
ü 分别创建每一个要加入此集群总控端的node,也是一个个的domain
一、创建Weblogic集群前的规划
根据第一节中的内容,我们将我们用于实验的Weblogic规划成3个domain,每个domain都包含有下列的必不可少的属性:
ü AdminConsole(总控端)
l 逻辑名
l 物理名(domain的系统路径)
l 端口号
l 计器名(IP)
l 登录信息(username/password)
ü Cluster … 阅读全文
categories:
mysql资料 tags:
mysql author:
sch
来源:互联网
1. 简介
在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。
优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。
2. 数据库设计和查询优化
在MySQL Server性能调优中,首先要考虑的就是Database Schema设计,这一点是非常重要的。一个糟糕的Schema设计即使在性能调优的MySQL Server上运行,也会表现出很差的性能;和Schema相似,查询语句的设计也会影响MySQL的性能,应该避免写出低效的SQL查询。这一节将详细讨论这两方面的优化。
2.1 Schema Design
Schema的优化取决于将要运行什么样的query,不同的query会有不同的Schema优化方案。2.2节将介绍Query Design的优化。Schema设计同样受到预期数据集大小的影响。Schema设计时主要考虑:标准化,数据类型,索引。
2.1.1 标准化
标准化是在数据库中组织数据的过程。其中包括,根据设计规则创建表并在这些表间建立关系;通过取消冗余度与不一致相关性,该设计规则可以同时保护数据并提高数据的灵活性。通常数据库标准化是让数据库设计符合某一级别的范式,通常满足第三范式即可。也有第四范式(也称为 Boyce Codd范式,BCNF))与第五范式存在,但是在实际设计中很少考虑。忽视这些规则可能使得数据库的设计不太完美,但这不应影响功能。
标准化的特点:
1) 所有的“对象”都在它自己的table中,没有冗余。
2) 数据库通常由E-R图生成。
3) 简洁,更新属性通常只需要更新很少的记录。
4) Join操作比较耗时。
5) Select,sort优化措施比较少。
6) 适用于OLTP应用。
非标准化的特点:
1) 在一张表中存储很多数据,数据冗余。
2) 更新数据开销很大,更新一个属性可能会更新很多表,很多记录。
3) … 阅读全文
categories:
资料 author:
sch
来源:互联网现在介绍一种已经在IDE模式下Setup安装(或GHOST安装)XP SP3,再开启AHCI的方法。
一、前期准备
1、BIOS设置SATA为IDE模式
1-1.png
2、在IDE模式下安装XP SP3后,必须安装Intel芯片组驱动。
从IDE ATA/ATAPI控制器可以看到2个S ATA控制器,一个是2port Serial ATA,一个是4port Serial ATA,2 port的一般是SATA3.0的,4port的一般是SATA2.0的。
3、7系列芯片组的AHCI驱动,并拷贝到U盘。
1-3.PNG
附件: 7系列主板的AHCI驱动
intel7x_AHCI.rar (263.97 KB)
二、加载AHCI驱动
1、在“Intel 6 Series/C216 Chipset Family 4 port Serial ATA Storage Controller”右键,选定“更新驱动程序”。
注意,一定要在“4 port”右键,更新驱动程序。不要在“2 port”更新驱动
2、不连接Windows Update
2-2.PNG… 阅读全文