`

Java实验: 基于CORBA的分布式议程服务 (1)

    博客分类:
  • cava
阅读更多

实验目的, 内容 参见上篇文章:http://c-zhiwu.iteye.com/blog/720696

第1章 实验基本原理

实验基于CORBA程序开发的基本原理、基本过程,涉及IDL接口设计及其语言。服务端程序设计涉及POA 机制、POA 策略设计、伺服务对象激活器与定位器、适配器激活器的程序设计方法及应用特等。

1.1  功能实现截图

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:002008-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章 程序设计

2.1  UML

1.      服务端UML

服务端程序采用三层设计。最底层是提供数据库数据操作层的数据层,它屏蔽了基本的XML文档操作。持久层对通过数据层提供数据持久化,并对外提供接口。



 

       数据层和持久层关键类的UML如下:

 

 



 

ConnectionPool是一个连接池实例,DBConnectionFacade封装连接池的初始化和构建等操作。接口IDataMapping提供了XML、各种关系数据库的底层数据与AgendabeanMapping,屏蔽了用户从数据库到Agendabean的全部操作,外层使用者可以将议程作为元数据进行操作,IDataMapping的定义如下:

 



 接口
IAgenda是整个服务端的入口,其定义如下:

 



 

       业务逻辑层关键类的UML如下:

 



 

这里采用装饰者模式设计对UserBean的各种操作,有点类似命令模式。这样设计的好处是使操作和实现解构出来,即使业务逻辑改变,也无需更改很多代码。被装饰者的接口定义如下图,所有装饰者和被装饰者都继承此接口。

 



 

下面是采用该模式进行用户注册的实现方法,它能体现程序的简单和实现的方便:

 

userBean = new AddUserDecorator(

new CheckUsernameDecorator(

new UserBean("username","password")));

return userBean.execute();

 

程序的主入口是IAgenda,在Corba中,其关系如下图:

 



 

其中,AgendaCORBAImplIAgenda的实现类。

 

 

 

 

 

 

 

 

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
7
3
分享到:
评论
4 楼 lordheart 2010-08-06  
lirig 写道
CORBA 技术已经比较老了,分布式技术现在已经有很多了,而且java要实现远程传输,最大的问题是序列化和反序列化的问题。



java的序列化和反序列化有什么问题?
3 楼 murainwood 2010-08-03  
c.zhiwu 写道
lirig 写道
CORBA 技术已经比较老了,分布式技术现在已经有很多了,而且java要实现远程传输,最大的问题是序列化和反序列化的问题。


我觉得重要的不是技术的应用, 而是从技术的原始面貌开始认识其本身, 从RMI到CORBA再到J2EE, 是一个很好的过渡..

这不懂你这个过渡的逻辑。
2 楼 c.zhiwu 2010-08-03  
lirig 写道
CORBA 技术已经比较老了,分布式技术现在已经有很多了,而且java要实现远程传输,最大的问题是序列化和反序列化的问题。


我觉得重要的不是技术的应用, 而是从技术的原始面貌开始认识其本身, 从RMI到CORBA再到J2EE, 是一个很好的过渡..
1 楼 lirig 2010-08-03  
CORBA 技术已经比较老了,分布式技术现在已经有很多了,而且java要实现远程传输,最大的问题是序列化和反序列化的问题。

相关推荐

    corba实验:基于corba技术开发一个考试查询系统

    【Corba实验:基于Corba技术开发考试查询系统】 在本次实验中,主要目标是利用CORBA(Common Object Request Broker Architecture)技术构建一个考试查询系统。这个系统涉及到山东大学计算机科学与技术学院的学生,...

    基于CORBA的分布式程序设计(入门与提高)

    ### 基于CORBA的分布式程序设计(入门与提高) #### CORBA概述 CORBA(Common Object Request Broker Architecture)即公共对象请求代理体系结构,是面向对象领域中的一种通用框架,旨在支持分布式环境中不同软件...

    基于CORBA技术的分布式智能网

    总之,基于CORBA技术的分布式智能网是一种高效、灵活的通信网络解决方案,它通过中间件技术实现了网络服务的分布式部署和智能化处理,为现代通信网络的发展提供了强大的支持。通过深入研究和实践,我们可以预见这一...

    基于CORBA分布式对象技术的新一代电网调度自动化系统的应用研究.pdf

    CORBA,即公共对象请求代理体系结构,是一种基于分布式对象技术的体系结构,其核心在于对象请求代理(ORB)总线,它允许不同应用、服务或子系统中的组件通过ORB实现互操作。这种技术特别适合于复杂系统中的信息共享...

    CORBA客户服务器编程.rar_Java CORBA_corba_corba java_分布式

    CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)是一种标准的中间件技术,用于实现分布式计算。在Java中,CORBA允许不同系统间的对象相互通信,仿佛它们都在同一进程中运行。这个压缩包...

    Java_Corba.rar_CORBA分布式

    它是基于 OMG(Object Management Group,对象管理组织)制定的CORBA标准在Java中的实现,使得不同系统间的对象能够像在同一系统内一样进行通信和协作。 首先,我们需要理解CORBA的核心概念——ORB(Object Request...

    基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响.pdf

    《基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响》 本文探讨了在分布式应用软件中,尤其是针对导航系统,基于CORBA(Common Object Request Broker Architecture)的...

    论文研究-基于CORBA分布式对象监测系统的研究与实现.pdf

    标题《论文研究-基于CORBA分布式对象监测系统的研究与实现》揭示了论文的重点:研究和实现一种基于CORBA的分布式对象监测系统。CORBA全称为“通用对象请求代理体系结构”(Common Object Request Broker ...

    基于CORBA的分布式数据库系统开发技术

    综上所述,基于CORBA的分布式数据库系统开发技术不仅解决了传统数据库应用系统的局限性,还极大地促进了企业级应用系统在性能、安全性和可维护性方面的提升,为信息化社会的数据管理和服务提供了强大的支撑。

    CORBA分布式应用程序

    【CORBA分布式应用程序】 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种标准的中间件技术,用于构建跨平台、跨语言的分布式应用程序。它允许不同计算机上的对象互相通信,...

    CORBA分布式资源池

    本程序主要是讲CORBA分布式资源池实现(jdk1.3):资源池机制应用于一个CORBA 应用程序的服务端,通过使用一个CORBA 对象实例池(instance pool)提高CORBA 应用程序服务端的系统性能

    一个基于CORBA的分布式网管系统模型.pdf

    1. 跨平台的互操作性:CORBA 允许不同平台、不同语言编写的应用程序对象进行通信,这使得基于 CORBA 的分布式网管系统可以跨平台操作,不受限于特定的操作系统和硬件环境。 2. 高度的可扩展性:通过引入对象请求代理...

    分布式实验报告CORBA.docx

    3. **JAVA IDL**:JAVA IDL是JDK中的一个组件,它实现了CORBA规范,使得Java开发者可以使用CORBA。实验中,使用JAVA IDL工具(idlj)将IDL文件编译为Java源代码,生成服务器框架和客户端存根。 4. **服务器端实现**:...

    一种基于CORBA的分布式应用模型.pdf

    【标题】:“一种基于CORBA的分布式应用模型” 【描述】:“资源达人分享计划” 【标签】:“分布式,分布式系统,分布式开发,参考文献,专业指导” 【部分内容】:介绍了基于CORBA技术的分布式应用模型,该模型...

    基于CORBA的分布式对象技术及其在电网调度自动化系统的应用.pdf

    基于CORBA(Common Object Request Broker Architecture)的分布式对象技术是一种在电网调度自动化系统中广泛应用的技术,它允许不同系统间的对象通过中间件进行交互,实现跨平台、跨语言的互操作性。在电力系统中,...

    java corba demo

    Java CORBA(Common Object Request Broker Architecture)是一种中间件技术,用于构建分布式应用程序。它允许不同计算机上的对象相互交互,仿佛它们都在同一台机器上运行。Java CORBA与RMI(Remote Method ...

    JAVA_CORBA.rar_corba_分布式对象

    **Java CORBA:构建分布式对象系统** Java CORBA是一种强大的技术,它允许不同的软件应用程序在不同的计算机上相互通信,仿佛它们都在同一台机器上运行。这个技术是基于Common Object Request Broker Architecture...

    基于CORBA_JAVA RMI的分布式系统应用研究.pdf

    基于CORBA和JAVA RMI的分布式系统应用研究 CORBA(Common Object Request Broker Architecture)是一种公共对象请求代理体系结构,主要分为三个部分:接口定义语言(IDL)、对象请求代理(ORB)和ORB之间的互操作...

    基于CORBA的分布式仿真系统的开发与实现.

    ### 基于CORBA的分布式仿真系统的开发与实现 #### CORBA简介 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种由OMG(对象管理组织,Object Management Group)制定的标准,...

Global site tag (gtag.js) - Google Analytics