实验目的, 内容 参见上篇文章:http://c-zhiwu.iteye.com/blog/720696
实验基于CORBA程序开发的基本原理、基本过程,涉及IDL接口设计及其语言。服务端程序设计涉及POA 机制、POA 策略设计、伺服务对象激活器与定位器、适配器激活器的程序设计方法及应用特等。
1. 启动服务端
修改bin/agenda/persistence/Labels.properties文件的server值(数据库地址),设置成数据库所在IP。启动命令行,转到\bin\目录下,输入命令:
start vbj -classpath ../lib/mysql-connector-java-3.0.17-ga-bin.jar Server
启动服务程序。
2. 启动客户程序
启动命令行,转到client所在目录,进入\bin\目录下输入命令:
vbj Client
3. 运行命令
运行客户端命令有两种方式,一是带参数启动服务端,另一种不带参数启动,而将命令写在bin/batch/batch文件中,这种方式可以嵌套。即batch文件里面的命令也可以是batch [文件名]。如:
batch register
batch add
batch delete
clear username05 password05
按照实验的要求,下面的实验都以带参数启动的方式启动客户端。
4. 注册用户
启动客户程序之后,输入命令:vbj Client register username01 password01
注册后,查看刚才注册的用户。
以下的命令都会检查用户名和密码匹配,原理和这里基本相同,这里不再截图。该目录测试了所有可能出现的异常和正常的情况。
5. 添加议程
在命令行输入vbj Client add username01 password01 username03 2008-12-14 12:45:00 2008-12-14 13:45:00 agenda1
查看数据库:
6. 查询议程
则在客户端输入命令:vbj Client query username01 password01 2008-11-14 12:45:00 2008-12-29 13:45:00 查询该用户在2008-11-14 12:45:00至2008-12-29 13:45:00 所有议程。
再输入一个不包括以上时间的查询:query username01 password01 2009-11-14 12:45:00 2009-12-29 13:45:00, 此时系统系统提示找不到相关议程
7. 删除议程
删除议程时,被邀请人和发起人对应的议程都会被删除。
输入命令: vbj Client delete username01 password01 agenda1
查看操作结果:
若输入的议程不存在,则系统提示找不到该议程。
8. 清除用户议程:
和删除议程一样,清除用户议程时对应的被邀请人和发起人的议程会被删除。
输入命令:vbj Client clear username01 password01
查看删除结果:
9. 批处理
输入命令 java Client 系统默认执行批处理命令。或是指定参数 java Client 192.168.52.105 8080 batch [文件名]
输入批处理命令后客户端的情况是:
服务端显示处理的命令:
第2章 程序设计
1. 服务端UML图
服务端程序采用三层设计。最底层是提供数据库数据操作层的数据层,它屏蔽了基本的XML文档操作。持久层对通过数据层提供数据持久化,并对外提供接口。
数据层和持久层关键类的UML如下:
ConnectionPool是一个连接池实例,DBConnectionFacade封装连接池的初始化和构建等操作。接口IDataMapping提供了XML、各种关系数据库的底层数据与Agendabean的Mapping,屏蔽了用户从数据库到Agendabean的全部操作,外层使用者可以将议程作为元数据进行操作,IDataMapping的定义如下:
接口IAgenda是整个服务端的入口,其定义如下:
业务逻辑层关键类的UML如下:
这里采用装饰者模式设计对UserBean的各种操作,有点类似命令模式。这样设计的好处是使操作和实现解构出来,即使业务逻辑改变,也无需更改很多代码。被装饰者的接口定义如下图,所有装饰者和被装饰者都继承此接口。
下面是采用该模式进行用户注册的实现方法,它能体现程序的简单和实现的方便:
userBean = new AddUserDecorator(
new CheckUsernameDecorator(
new UserBean("username","password")));
return userBean.execute();
程序的主入口是IAgenda,在Corba中,其关系如下图:
其中,AgendaCORBAImpl是IAgenda的实现类。
2. 客户端UML
客户端主要是读取命令参数并执行命令,和上次的设计没有区别,仍然采用命令模式加工厂模式进行设计。
- 大小: 16.9 KB
- 大小: 4.8 KB
- 大小: 6.6 KB
- 大小: 78.8 KB
- 大小: 37.6 KB
- 大小: 5.8 KB
- 大小: 21.4 KB
- 大小: 101 KB
- 大小: 70.9 KB
- 大小: 16.1 KB
- 大小: 76.1 KB
- 大小: 24.9 KB
- 大小: 22.5 KB
- 大小: 92.2 KB
- 大小: 6.1 KB
- 大小: 48.8 KB
- 大小: 60 KB
分享到:
相关推荐
山东大学中间件实验,基于corba技术开发一个考试查询系统,实验报告
基于CORBA的分布式程序设计(入门与提高),文档来自百度文库。
本程序主要是讲CORBA分布式资源池实现(jdk1.3):资源池机制应用于一个CORBA 应用程序的服务端,通过使用一个CORBA 对象实例池(instance pool)提高CORBA 应用程序服务端的系统性能
面向对象的分布式应用系统一方面提升了系统的可扩展性和可成长性,同时又带来了系统管理和维护的复杂化。介绍了一种基于CORBA的分布式服务对象监测系统,并详细讨论了相关概念、原理和实现的关键技术。
本文结合CORBA技术、数值计算方法、OpenGL图形仿真技术,以C++Builder为开发工具开发了基于CORBA的分布式多连杆仿真系统,实现了分布式环境下的多连杆系统的分析、仿真及灵敏度分析,用户可以在客户端提供相应参数,由...
基于CORBA的分布式数据库系统开发技术.pdf
简单的银行系统,基于OMG(Object Management Group,对象管理组织)CORBA规范的集成中间件。客户端,服务端程序。简单让你很快理解CORBA分布式流程~适合新手~~~~
CORBA(Common Object Request Broker Architecture,公用对象请求代理体系结构)是一种规范,定义了分布式对象如何实现互操作。这篇文章对其进行了详细的描述。
分布式计算——CORBA客户服务器编程,学习CORBA客户/服务器编程。
基于CORBA技术的分布式智能网分布式课堂论文
关于CORBA的圣经:) 分布式系统 并发 系统集成
基于Corba的平台分布式应用程序开发
rmi corba 基于JAVA的分布式系统
该文提出了一个新的基于 CORBA的分布式网络管理体系结构 DiNM/CORBA,采用 Java和 JMAPI技术将 CORBA计算环境和SNMP网络管理环境无缝地集成起来,使 CORBA环境的服务对象可以直接访问 SNMP代理的信息。文中论述了系统...
基于CORBA_JAVA RMI的分布式系统应用研究
JAVA CORBA创建分布式对象系统,CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构
本文分析了当前主流网管系统的不足之后,给出了基于CORBA的分布式网管系统模型,并进一步阐述了分布对象技术(CORBA)在网管领域的应用优势。
#资源达人分享计划#
使用CORBA写一个分布式应用程序,包括用户登录、回话建立、回话查询等简单功能。
#资源达人分享计划#