初探CORBA组件化编程
1.掌握组件化开发的概念,了解CORBA模型及ORB机制;
2.掌握CORBA组件编程方法。
二、实验内容
(一)、步骤
1.配制环境JDK环境。
2.编写编译IDL接口。
3.编写编译服务端程序。
4.编写编译客户端程序。
5.运行测试与调试。
6.完成报告。
(二)、实验题目
1、使用CORBA编程实现显示“Hello,World!+班级+中文姓名”字符串
说明:CORBA处理字符串有:String和wstring两种类型,string类型主要
用于处理ASCII类型的字符串,wstring用于处理多字节的字符串,例如:中文。
2、要求:编写实现连加、连减和加减混合等数学++/- -运算
(三)、实验分析
(一)、程序分析
1、Hello,World实验
通过编译HelloWorld.idl文件(即编译IDL接口)生成module。包sample中包含(HelloWorldStub.java、HelloWorld.java、HelloWorldHelper.java、HelloWorldHolder.java、HelloWorldOperations.java、HelloWorldPOA.java)六个生成的java文件。
再通过编写并编译HelloWorldServer.java、HelloWorldClient.java文件生成Server和Client程序。
运行程序 (在源文件路径下):
启动名字服务器
tnameserv -ORBInitialPort 1050
1
启动服务端程序
java HelloWorldServer -ORBInitialPort 1050
1
启动客户端程序
java HelloWorldClient -ORBInitialPort 1050
1
2、Counter实验
通过编译counter.idl文件(即编译IDL接口)生成module。包sample中包含(CounterStub.java、Counter.java、CounterHelper.java、CounterHolder.java、CounterOperations.java、CounterPOA.java)六个生成的java文件。
再通过编写并编译Server.java、Client.java文件生成Server和Client程序。
运行程序 (在源文件路径下):
启动名字服务器
tnameserv -ORBInitialPort 1050
1
启动服务端程序
java Server -ORBInitialPort 1050
1
启动客户端程序
java Client -ORBInitialPort 1050
1
(四)、调试及测试
源文件请于腾讯云下载(链接:https://share.weiyun.com/5QLdVMJ 密码:zs4rvz)
1、进入目标文件夹(源文件所在文件夹)
2、成功编译
3、启动名字服务器
4、启动服务器端
5、启动客户端程序
发现出现乱码并解决
(查看cmd活动代码页为936(即GBK)并非65001(即UTF-8),故更改活动代码页为65001)
更改活动代码页所需代码:
chcp 65001
1
(五)、总结
通过这次上机逐渐熟悉了CORBA组件化编程,在学习组件化编程的过程中虽然是从未接触过的一种编程方式,但是回头想想CORBA编程并非难以理解。在上级过程中虽然出现了各种问题,但是在通过交流和查询主要知识点之后都将其逐一解决。在可课下完成熟悉实验中慢慢的发现CORBA组件化编程易于构造组装,普遍性比较高,标准规范也非常统一。
---------------------
初探CORBA组件化编程的更多相关文章
- React 面向组件化编程 - 封装了webpack - npm run build 产生的包的 /static 引用路径问题
React 面向组件化编程 面向对象 ----> 面向模块 ----> 面向组件 套路: 注意: 组件名必须大写开头: 只能有一个根标签: <input />虚拟DOM 元素必 ...
- vue组件化编程应用2
写几个小案例来理解vue的组件化编程思想,下面是一个demo. 效果图示: 需求: header部输入任务,进行添加,在list中显示; list中每个item项,鼠标移入时,背景变灰并显示delet ...
- vue组件化编程应用
写几个小案例来理解vue的组件化编程思想,下面是一个demo. 效果图示: 功能: Add组件用于添加用户评论,提交后右边评论回复会立马显示数据.Item组件点击删除可以删除当前用户评论.当List组 ...
- vue - Vue组件化编程
今天是对vue组件化的一个理解,最主要的单文件组件,然后就可以脚手架的学习了,本来昨晚就该上传的,但是用的那个上传博客园的Python脚本不行了,换了一个新的. 组件化让我越来越感觉到框架的力量了 一 ...
- vue组件化编程
vue文件包含3个部分 <template> <div></div> </template> <script> export default ...
- 谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo
前言 前端已经过了单兵作战的时代了,现在一个稍微复杂一点的项目都需要几个人协同开发,一个战略级别的APP的话分工会更细,比如携程: 携程app = 机票频道 + 酒店频道 + 旅游频道 + ..... ...
- C++ 类的动态组件化技术
序言: N年前,我们曾在软件开发上出现了这样的困惑,用VC开发COM组件过于复杂,用VB开发COM组件发现效率低,而且不能实现面向对象的很多特性,例如,继承,多态等.更况且如何快速封装利用历史遗留的大 ...
- 我所理解的Android组件化之通信机制
之前写过一篇关于Android组件化的文章,<Android组件化框架设计与实践>,之前没看过的小伙伴可以先点击阅读.那篇文章是从实战中进行总结得来,是公司的一个真实项目进行组件化架构改造 ...
- 得到、微信、美团、爱奇艺APP组件化架构实践
一.背景 随着项目逐渐扩展,业务功能越来越多,代码量越来越多,开发人员数量也越来越多.此过程中,你是否有过以下烦恼? 项目模块多且复杂,编译一次要5分钟甚至10分钟?太慢不能忍? 改了一行代码 或只调 ...
随机推荐
- P - How many
Give you n ( n < 10000) necklaces ,the length of necklace will not large than 100,tell me How man ...
- JQuery获取select选中值和清除选中状态(转)
1.获取值 var provinceSearch = $("#loc_province_search").find("option:selected").att ...
- 修改 db_unique_name
在创建DB的时候 db_unique_name设置错了.本来我是想让 db_name=itid db_unique_name=itid1 不过想改回来很简单的. SQL> alter syste ...
- HPC2013小节
对于高性能计算,三个分支能耗.高性能.容错.下面我对会议的主要内容作一个小节,很多问题也是不求甚解. 下面针对大会内容,我主要总结如下,会有了解不周的地方,欢迎讨论:大会主要报告分成3个方向,1.基础 ...
- ios 导航栏(自己定义和使用系统方式)
系统方式: //1.设置导航栏背景图片 [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] ini ...
- mysql 日期计算,今天,明天,本周,下周,本月,下月
--今天 DATE_FORMAT(BIRTH_DATE,'%Y-%m-%d') = CURDATE() --明天 DATE_FORMAT(BIRTH_DATE,'%Y-%m-%d') = TIMEST ...
- OST
爱情的条件 http://music.163.com/#/album?id=531414 kill me heal me http://music.163.com/#/album?id=3104890
- hdoj--5625--Clarke and chemistry(枚举)
Clarke and chemistry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- insufficient space
- [转]RDLC报表——动态添加列
本文转自:http://www.cnblogs.com/pszw/archive/2012/07/19/2599937.html 前言 最近接到一个需求:在给定的数据源中,某(些)列,可能需要单独统计 ...