初探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分钟?太慢不能忍? 改了一行代码 或只调 ...
随机推荐
- 机器学习10k均值
下面介绍无监督机器学习算法,与前面分类回归不一样的是,这个不知道目标变量是什么,这个问题解决的是我们从这些样本中,我们能发现什么. 这下面主要讲述了聚类算法,跟数据挖掘中的关联挖掘中的两个主要算法. ...
- 通过urllib2抓取网页内容(1)
一.urllib2发送请求 import urllib2 url = 'http://www.baidu.com' req = urllib2.Request(url) response = urll ...
- spring boot项目Intellij 打包
spring boot项目Intellij 打包 学习了:http://blog.csdn.net/hzt_fighting_up/article/details/78174291 在edit con ...
- [React Testing] Confidently Ship Production React Apps
We want to make sure that when we ship new code, our users can use the application. The best way we' ...
- cocos2d-x andriod, Box2D.h: No such file or directory
原文链接:r=47980">http://www.cocos2d-x.org/forums/6/topics/47503? r=47980 You need to include li ...
- [ACM] POJ 1942 Paths on a Grid (组合)
Paths on a Grid Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 21297 Accepted: 5212 ...
- 通过buildpath 导入jar和在lib下导入的jar包区别
jar包放置在WEB-INF/lib下和通过build path导入的区别是什么? jar包直接拷贝到WEB-INF/lib下和以userLibrary形式引入的区别? jar包放置在WEB-INF/ ...
- IOS的一个关于球碰撞的小游戏
这个游戏是关于一个球随机在屏幕上移动,能够用手指来操纵令一个球,假设两个球碰撞到一起,就表示输了,很easy的一个游戏 在StoryBoard里定义两个UIImageView和一个startbutto ...
- SetWindowPos函数详解
//声明:SetWindowPos(hWnd: HWND; {窗口句柄}hWndInsertAfter: HWND; {窗口的 Z 顺序}X, Y: Integer; {位置}cx, cy: Inte ...
- 用Arduino+OSC建立一个iPad铁路王国巡视机
翻译自:http://blog.mydream.com.hk/howto/build-up-a-ipad-plarail-patrol-with-arduino-osc 简单介绍 这个教程告诉你怎样建 ...