发表于: 2018-01-27 22:59:17
2 530
今日完成
1.整理了任务8 的代码,提交了任务。
深度思考
1.什么是rmi?为什么要使用rmi框架?
Java RMI(Remote Method Invocation)--Java的远程方法调用是Java所特有的分布式计算技术,它允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法,从而使Java编程人员可以方便地在网络环境中作分布式计算。面向对象设计要求每个任务由最适合该任务的对象执行,RMI将这个概念更深入了一步,使任务可以在最适合该任务的机器上完成。 RMI定义了一组远程接口,可以用于生成远程对象。客户机可以象调用本地对象的方法一样用相同的语法调用远程对象。RMI API提供的类和方法可以处理所有访问远程方法的基础通信和参数引用要求的串行化。 使用RMI开发步骤: 1、定义一个远程接口(远程接口必须继承接口,每个方法必须抛出远程异常,方法参数和方法返回值都必须是可序列化的) 2、实现远程接口 3、定义使用远程对象的客户程序 4、产生远程访问对象的桩和框 5、注册远程对象 6、运行服务器和客户程序
2.什么是SCA?什么是分布式?分布式有什么优点?
SCA全称Service Component Architecture,即服务组件框架。它由BEA、IBM、Oracle等知名中间件厂商联合制定的一套符合SOA思想的规范。
SCA中的一个关键推动因素是Service Data Object(服务数据对象,SDO)。
SCA组件被组成为程序集。程序集是服务级的应用程序,它是服务的集合,这些服务被连接在一起,并进行了正确的配置。SCA程序集运行在两个级别:第一种情况,程序集是系统内的一组松散连接的组件;另一种情况,程序集是模块内的一组松散连接的组件。二者的区别在于,一般来说,模块是组件的集合,而系统是模块的集合。此外,系统对应于“大规模编程”(programming in the large或megaprogramming),而模块对应于“小规模编程”(programming in the small)
将组件连接到它所依赖的服务的方式就是服务网络“装配”的方式。程序集已经在许多技术和框架中广为应用,比如CORBA、J2EE、ATG Dynamo和Spring,也就是说,它并不是新出现的。从这些技术中我们可以知道,程序集提供了许多重要的优点,比如更轻松的迭代开发,以及避免使业务逻辑依赖于中间件容器。SCA使用程序集解决了许多SOA开发中的重要问题,包括:
业务逻辑与底层基础架构、服务质量和传输的分离。
“小规模编程”与“大规模编程”的联系。
为架构的设计、编码和操作性部署在自底向上(bottom-up)和自顶向下(top-down)两种方法中来回切换提供了一种统一的方式。
1.增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。
2.加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。
3.因为模块化,所以系统模块重用度更高
4.因为软件服务模块被拆分,开发和发布速度可以并行而变得更快
5.系统扩展性更高
6.团队协作流程也会得到改善
3.为什么要把web和service分离?应用了哪些概念?
这个是服务组件构架的思想,应用到分布式的概念。
2.学习基础知识
(1)SET集合的学习
不可重复,无序
实现
A:底层数据结构是哈希表(是一个元素为链表的数组)
B:哈希表底层依赖两个方法:hashCode()和equals()
执行顺序:
首先比较哈希值是否相同
相同:继续执行equals()方法
返回true:元素重复了,不添加
返回false:直接把元素添加到集合
不同:就直接把元素添加到集合
C:如何保证元素唯一性的呢?
由hashCode()和equals()保证的
(2)treeset学习
A:底层数据结构是红黑树(是一个自平衡的二叉树)
B:保证元素的排序方式
a:自然排序(元素具备比较性)
让元素所属的类实现Comparable接口
b:比较器排序(集合具备比较性)
让集合构造方法接收Comparator的实现类对象
/**
* treeset:排序并唯一
* @author lujing
* Create_at 2018/1/27 16:09
*/
public class TreeSetDemo {
public static void main(String[] args) {
Set<User> set1 = new TreeSet<>();
User u1 = new User("盖伦", 20);
User u2 = new User("盖伦", 20);
User u3 = new User("德玛西亚万岁", 32);
User u4 = new User("洛克萨斯之手", 12);
User u5 = new User("卡特琳娜", 30);
User u6 = new User("卡特琳娜", 30);
set1.add(u1);
set1.add(u2);
set1.add(u3);
set1.add(u4);
set1.add(u5);
set1.add(u6);
for (User user : set1) {
System.out.println(user);
}
}
让user实现compareable的接口,比较年龄,但是年龄相同两个对象也不一定相同,所以还要比较姓名。或者其他信
明日计划
1.学习map集合以及之间的区别。
2.进入任务9,学习tuscany.
遇到问题
无
收获
1.了解了list,set接口的用法以及一些基本的数据结构。
评论