CORBA Design Patterns In Distributed Systems
计算机编程常用术语中英对照
目录计算机编程常用术语A-ZAABC (abstract base class) 抽象基类abstract class 抽象类access 存取;访问;aggregation聚集;聚合;algorithm 算法alias 别名;假名;align对齐allocate配置allocator配置器angle bracket 尖括号annotation评注application应用;应用程序;API (application programming interface) 应用(程序)编程接口assembly n.装配;组装;assemble v.装配;组装;assembly language 汇编语言assert(ion) 断言assign v. 赋值;assignment operator 赋值操作符;赋值运算符;associated 相应的;相关的;associative container 关联式容器对应:sequence container 序列式容器atomic原子的atomic operation 原子操作Bb2b integration (business-to-business integration) b2b整合;b2b集成;background背景;后台(进程);backward compatibility向后兼容;向下兼容;binary function 二元函式;双参函数;binary operator二元操作符binary search 二分查找;折半查找;同义词:half-interval search;logarithmic searchbinary tree 二元树;二叉树同义词:bivariate function;function of two variables;binding绑定bit位全称:binary digit (bit其实就是将binary 和digit二词的字母糅合在一起而合成的词)bit field位域bitmap位图(位图图像);点阵图像;绘制图像;同义词:bit array; bitmap index)square bracket AmE. 中括弧、中括号;方括弧、方括号;breakpoint断点也可称为pausebrowser applications 浏览器应用(程序)browser-accessible application 可经由浏览器访问的应用程序build 编连(专指编译和连接)built-in 内建;内置;bus 总线button 按钮byte字节(由8 bits 组成)Ccache高速缓存;快取;call调用;呼叫、叫用;call operator 调用操作符check button复选按钮check constraints check约束checked exception 可控式异常check point 检查点child class 子类、子类别;同义词:derived class; subtype; subclassCIL (common intermediate language) 通用中间语言、通用中介语言; class 类别class body类体;类别本体;class declaration类声明class definition 类定义clause 子句client 客端、客户端、客户;client area 客户区client application 客户端应用程序client cursor 客户端游标cleanup 清理、清除;CLI (call-level interface) 调用级接口CLI (common language infrastructure) 通用语言基础设施Client/Server 客户端/服务器;C/S结构;client-server model 主从架构compatible兼容compile time 编译时;编译期;compiler 编译器component 组件composite index 复合索引、组合索引;composite key 复合键、组合键;composition组合;复合;合成;concept 概念concrete 具体的abstract 抽象的concrete class 具体类destructor (dtor) 析构函数copy v. 拷贝copy n. 复件, 副本;CORBA ( common object request broker architecture) 通用对象请求中介架构cover 涵盖、覆盖;create 创建;产生;crosstab query 交叉表查询CRTP ( curiously recurring template pattern) 奇异递归模板模式;CRTP 模式;Ddata 数据data connection 数据连接data dictionary 数据字典data dictionary view 数据字典视图data file 数据文件database schema数据库结构纲目;数据库布局纲目;datagram 数据报文DBCS (double-byte character set) 双字节字符集DBMS (database management system) 数据库管理系统DCOM (distributed com) 分布式comdead lock 死锁deallocate 归还debug 调试debugger 调试器declaration 声明design by contract 契约式设计design pattern 设计模式destroy销毁destructor (dtor) 析构函数constructor (ctor) 构造函数determinant 行列式device设备DHTML (dynamic hypertext markup language) 动态超文本标记语言dialog 对话框同义词:dialogue box; dialog boxdictionary 字典digest 摘要distributed computing 分布式计算;分散式计算;distributed query 分布式查询DNA (distributed internet application) 分布式网间应用程序document 文件;文档;DTD (document type definition) 文档类型定义dot operator (圆)点操作符;(句点)运算子;driver 驱动程序;驱动器;dump 转储dump file 转储文件dynamic assembly 动态装配件、动态配件;EEAI (enterprise application integration) 企业应用集成EBCO (empty base class optimization) 空基类优化(机制)e-business 电子商务equivalent 等价、等同、对等;error log 错误日志escape code 转义码escape character 转义字符exclusive lock 排它锁explicit transaction 显式事务evaluate评估event 事件event driven 事件驱动的event handler 事件处理器Ffacility 设施、设备;fat client 胖客户端同义词:heavy client; rich client; thick client. 对应:thin client 瘦客户端flag标记flash memory闪存flexibility 弹性;灵活性;flush刷新FK (foreign key) 外键font字体form 窗体formal parameter 形参形式参数又被称为虚拟变量、名义变量、哑变量,对应英文为dummy variables forward declaration 前置声明forward-only 只向前的functionality 功能function reference 函数调用function template函数模板functor 仿函数GGAC (global assembly cache) 全局程序集缓存game 游戏GC (garbage collection) 垃圾回收(机制)guard clause卫语句;卫述句;graphical interfaces图形界面GUI ( graphical user interface) 图形用户接口GUID (globally unique identifier) 全球唯一标识Hhandle句柄handler处理函数hard-coded 硬编码的http pipeline http管道HTTP (hypertext transfer protocol) 超文本传输协议hyperlink超链接Iicon 图标IDE( Integrated Development Environment) 集成开发环境identifier标识符import导入incremental update 增量更新increment operator增加操作符;infinite loop 无限循环infinite recursive无限递归inline内联inline expansion内联展开inline function 内联函数initialization初始化initialization list初始化列表interacts 交互interface 界面;接口;interpreter解释器invariants约束条件iterate 迭代iterator迭代器Llaser激光late binding 迟绑定left outer join 左外连接local object局部对象lock 机锁log 日志login 登录login security mode登录安全模式lookup table 查找表loop循环LP (linear programming ) 线性规划同义词:linear optimizationlvalue ( left value)左值rvalue ( right value) 右值Mmachine code 机器码同义词:machine languagemacro宏member initialization list成员初始值列表memberwise copy 以members 为单元逐一复制memory内存memory leak 内存泄漏menu菜单message消息message based基于消息的message loop消息循环meta- 超……;元……;例:meta-programming 超编程;元编程micro 微MOLAP (multidimensional OLAP) 多维olap OLAP (Online Analytical Processing) 联机分析处理multiuser 多用户multi-tasking多任务Nnamed parameter 命名参数同义词:pass-by-name;keyword arguments;named pipe 命名管道;命名管线;Oobject对象object-based基于对象的object file目标文件OLE database consumer OLE db使用者db: database 数据库OLE db provider OLE db提供者one-to-many relationship 一对多关系one-to-one relationship 一对一关系OLAP(online analytical processing ) 联机分析处理online redo log 联机重做日志OLTP (online transaction processing) 联机事务处理ODS (open data services) 开放式数据服务operand 操作数overloaded set重载集合override重载、改写、重新定义;outer join 外连接Ppackage包pair 对组palette 调色盘;组件盘;pattern模式performance 性能persistence持久性pixel 像素placeholder 占位符platform平台POD (plain old data )同义词:passive data structure; plain old data structure pointer指针poll轮询polymorphism多态process进程profile评测profiler 效能(性能)评测器programmer程序员programming编程progress bar进度指示器project项目、工程;property 属性protocol协议pseudo code 伪码Qqualified限定qualifier限定修饰词quality质量Rrace condition 竞争条件(多线程环境常用语)radian弧度radio button单选按钮refer参考refer to 指代reference引用、参考register寄存器reflection反射;relational database关系数据库remote 远程RPC (remote procedure call) 远程过程调用represent表述,表现;resolution 解析过程resolution分辨率row lock 行锁rowset 行集runtime运行期;运行时;common language runtime (CLR) 公共语言运行库rvalue右值Ssave 存储savepoint 保存点SAX Simple API for XMLsemaphore 信号量sequential container 顺序式容器对应:associative container 关联式容器server服务器;服务端;server cursor服务器游标serial 串行对应:parallel并行serialization序列化session 会话setter 赋值函数getter 取值函数specification规格;规范;splitter切分窗口SOAP (simple object access protocol) 简单对象访问协议software软件solution方案source 源码、源代码SQL (structured query language) 结构化查询语言stack栈;堆栈;stack unwinding 栈辗转开解(用于exception 主题)standard library 标准程式库STL(standard template library)标准模板库subtype子类型suspend挂起symbol 记号syntax 语法system database 系统数据库system table 系统表Ttable 表table lock 表锁table-level constraint 表级约束对应:fat client/ rich client/ heavy client/ thick client 胖客户端third-party 第三方thread 线程thread-safe 线程安全的throw 抛出、引发(常指发出一个exception)token 符号、标记、令牌(看场合)trace 跟踪transaction事务transaction log 事务日志transaction rollback 事务回滚UUDDI (universal description, discovery and integration) 统一描述、发现和集成UML (unified modeling language) 统一建模语言URN (uniform resource name) 统一资源名称user用户user interface用户界面Vvalue types 值类型variable 变量vector 向量、矢量;(一种容器,与array有些类似)Wweb service web服务where clause where子句wildcard character 通配符XXMI ( xml message interface) xml消息接口XML (extensible markup language) 可扩展标记语言XSD (xml schema definition language) xml模式定义语言。
CORBA技术剖析及其应用
CORBA技术剖析及其应用梁剑,李晓,胡彬华(中国科学院新疆物理研究所,新疆乌鲁木齐830011)摘要:为了满足复杂的、大型的分布式应用开发的需求,作为基于组件对象模型的分布式技术规范,CORBA 和COM/DCOM技术被广泛采用。
主要分析CORBA技术的标准、结构、特点及其作用,并提出了CORBA对象的具体实现方法;同时也给出了CORBA技术和COM/DCOM技术相应的对比。
关键词:分布式应用;CORBA;COM/DCOM中图法分类号:TP311.5文献标识码:A文章编号:1001-3695(2002)08-0091-03The Anatomy and Application of CORBA TechnologyLIANG Jian,LI Xiao,HU Bin-hua(The Xinjiang Institute of Physics,the Chinese Academy of Sciences,Wulumugi Xinjiang830011,China)Abstract:In order to meet that need of the large-scale and complicated development of distributed application,as the distributed technology standard of component model,CORBA and COM/DCOM technologies are used widely.In this paper,we analyze the criterion,structure,char-acteristic and function of CORBA technology,and give an achieving method.In addition,we have given the comparison between CORBA and COM/DCOM technologies.Key words:Distributed Application;CORBA(Common Object Reguest Broker Architecture);COM/DCOM1引言目前,开发分布式多层应用系统似乎是所有开发工具、数据库厂商、Internet/Intranet、工具,以及操作系统厂商都积极提倡的应用系统结构。
基于corba软件体系结构
摘要随着软件开发的愈来愈复杂,构件化开发是提高软件复用的重要的技术。
软件体系结构提供了种自顶向下实现基于构件的软件复用的途径。
它的ADL描述提供了一种描述整个系统构造的能力。
而当前的UML只安为其提供一些扩展也能够描述软件体系结构。
构件化的开发目前已经有很多成熟的技术,而CORBA规范充分利用了现今软件技术发展的最新成果,在基于网络的分布式应用环境下实现应用软件的集成,使得面向对象的软件在分布、异构环境F实现可重用、可移植和互操作。
我们提出~种基于CORBA的袍灶珏菇摸式,这是~种三层结构的开发模式,先粟用UML描述整个系统的体系结构,建模出该系统的基本信息。
然后采用CORBA的二层结构开发模式实现它。
这种方J℃可以把大系统划分为很多独立的构件.可以更改某些构件而不会对系统的其他部分造成影响。
从而能够极大的提高软件的开发效率和复用。
关键字:软件体系结掬ADLUML构件技术CORBAVv∥。
√ABSTRACTWiththecomplexityofSoftwaredevelopment,Component—BasedSoftwareDevelopmentisanimportangtechniqueofSoftwareReuseSoftwarearchitectureafrortsawaytorealizeaup-to—downsoftwareresuebasedoncomponents.it’SADLdiscriptionaffortsacompetence/abilitytodescribetheconstructionofthewholesystem,thecurrentUMLneedonlytobeaffordedsomcextendtodescribesoftwarearchitecture.Component—BasedSoftwareDevelopmenthaspossessedmanymaturationaltechnologies,butCORBAavailsofthelatestproduceofcurrentsoftwaretechnologydevelopment,Realizesintegrationofapplicationsoftwareinthenet—distributed—usebasedcircumstance,makestheSoftwarerealizereuse,transplant,andinteractivemanipulation.WeadvanceacomponentdevelopmentmodelbasedonCORBA.it'sadevelopmentmodelincludingtllleestratificationstructures.firstlyituseUMLtodescribethewholesystem’Sarchitecture.modelthebasicinformationofthesystem.thenitrealizesthesystembythecorbatllreesatratificationslructuresdecelopmentmodelthesystembythecorbathreesatratificationstructuresdecelopmentmodel.ThiskindofmodeCallde_idethebigsystemintomanyindependentcomponents,Canmodifysomecomponentswithoutanyaffectiontootherpansofthesystem.SOitcanextremelyimprovethedevelopinge币ciencyandreuseofthesoftware.Keyword:SoftwareArchitecture,CORBA,Compdent,ADL,UMLIll基1:CORBA的软件体系结构引言近儿年来,面对日益复杂的软件系统,人们开始认识到,要真LE实现软件的T业化生产力式,达到软件产业发展所需要的软件生产率和质量,软件复用是一条现实可行的途径。
基于CORBA的柔性制造系统模型的建立
Ke o d :f x l mauatr gs se C B o j t r ne d lheaci ld tb t o t l y w r s l i e n fc i y tm; OR A; be - i t mo e; i r h a ir ue cnr eb un c oe d r c s i d o
es fr dfee t lc to s A ot t r i rn o a in . pr o ype s t s prs t o v l a e t e FM S b e n CORBA t ls . o yse i m e e e t ai t h n d d ad o s a a t
t o tol ys e Th a aa d me h d o d e c n r t m. e d t n t o s c mmon t h itiu e on r l r e i tg a e t ev r d s o t e ds rb t c tol s a e rt d i o s r e sa d e r n n n t e me h im o a h c ntol rt ev r a CORBA a epr vd . h c a s f re c o r l o s r e svi n e C b ie Theu e o n o d s fCORBA d lwa e s a ami d e r
维普资讯
20 年第1 期 07 2
文 章 编 号 :0 1 2 6 ( 0 7 1 0 0 0 10 — 2 5 20 ) 2— 19— 4
・ 管理 技 术 ・
基 于 C R A的 柔 性制 造 系 统模 型 的建 立 OB
孑、 艳 J 晓
( 无锡 职业技 术 学院 工 业 中心 , 苏 无 锡 江 240 ) 10 0
一种图形化的CORBA体系结构描述方法
Ke wo d y rs
S f r rhtcue Ditb td sfw r C mp n n C mp n n e e d ny G a ho e td po rmmig ot e ac i tr wa e sr ue ot ae i o o e t o o e td p n e c rp —r ne rga i n
国际上流行 的 A L语 言 主要 有 以下 一 些 : e p Me H, D As , t o a
LL I EANN ,Ar e A T k, W r h , Ra i e U io i t g pd , n c n, C 2, Daw n, ri
本 文针对基于组件 的分布式计算技术 中的软件体系结构 方 面的特 殊性 ( 如节点 问关 系 , 动态配置 , 点间消息传 递等 ) 节 及
一
种 图形 化 的 C B 体 系结构 描 述 方 法 OR A
陈 怡 曹 曼
( 上海大学计算机学院 上海 2 07 ) 0 0 2
摘
要
随着软件技 术的发展 , 对于软件体 系结构的研 究越来越 引起 人们 的重视。本 文对 C R A分布 式软件体 系结 构的描述 OB
需求和组件之 间的依赖 关系进行 了较详细 的分析 , 在此基础上提 出了一种基于 图形的软件体 系结构 描述 方法 , 该方法把基 于 C R O— B A的分布式应用的软件体 系结构视 为一 张逻辑 图, 图上 预定 义 一组 操作 , 助于 C R A 应用 的程 序 设计 和维 护。本文 还在 在 有 OB
维普资讯
第2 3卷 第 3期
20 0 6年 3月
计 算机应 用 与软 件
C mp trAp l ain n o t r o u e p i t sa d S f c o wa e
半导体专业名词解释
Cd cadmium
AWS advanced wet station
Manufacturing and Science
Sb antimony
===B===
B billion; boron
Ba barium
BARC bottom antireflective coating
BASE Boston Area Semiconductor Education (Council)
ACF anisotropic conductive film
ACI after-clean inspection
ACP anisotropic conductive paste
ACT alternative control techniques; actual cycle time
Al aluminum
ALD atomic layer deposition
ALE atomic layer epitaxy; application logic element
ALS advanced light source; advanced low-power Schottky
===A===
A/D analog to digital
AA atomic absorption
AAS atomic absorption spectroscopy
ABC activity-based costing
ABM activity-based management
AC alternating current; activated carbon
资料结构 使用CC 程式语言 杨正宏编著讲解
資料結構使用C/C++程式語言楊正宏編著.臺北市全華科技圖書民91[2002].957-21-3749-2 平裝附光碟片新臺幣520元.E314219.AUDIO CODING技術手冊 MP3篇吳炳飛等編著.臺北市全華民93[2004].957-21-4449-9 平裝新臺幣280元.E314220.工程數學理論與題庫武維疆編著.臺北市全華民93[2004].957-21-4691-2 平裝新臺幣600元.E314221.線性代數理論與題庫武維疆編著.臺北市全華 2004[民93].957-21-4730-7 平裝新臺幣280元.E314222.DREAMWEAVER範例教本李孟蓁編著.臺北市全華民93[2004].957-21-4566-5 平裝附光碟片新臺幣114元.E314223.VISUAL C++程式設計入門與應用 / 書英資訊編著.臺北市 : 全華科技圖書公司, 2005[民94].9572147870 平裝新臺幣380元.E314224.FOUNDATIONS OF ALGORITHMS USING JAVA PSEUDOCODE / RICHARD E. NEAPOLITAN, KUMARSS NAIMIPOUR.Sudbury, Mass. : Jones and Bartlett Publishers, c2004.0763721298 (hardcover) : NT$1,100.W321265.DIGITAL SIGNAL PROCESSING : SIGNALS, SYSTEMS AND FILTERS / ANDREAS ANTONIOU. New York : McGraw-Hill, c2006.0071255877 : NT$1,200.0071454241.007145425X.W321266.COMPUTER-GRAPHIC FACIAL RECONSTRUCTION / [EDITED BY] JOHN G. CLEMENT AND MURRAY K. MARKS.Burlington, MA : Elsevier Academic Press, c2005.0124730515 : NT$3,300.W321267.3D VIDEOCOMMUNICATION : ALGORITHMS, CONCEPTS, AND REAL-TIME SYSTEMS IN HUMAN CENTRED COMMUNICATION / EDITED BY OLIVER SCHREER, PETER KAUFF, THOMAS SIKORA. Chichester, England : Hoboken, NJ : Wiley, 2005.9780470022719 (cloth : alk. paper).047002271X (cloth : alk. paper) : NT$3,960.W321268.HANDBOOK OF IMAGE AND VIDEO PROCESSING / EDITOR, AL BOVIK.Amsterdam ; Boston, MA : Elsevier Academic Press, c2005.0121197921 (alk. paper) : NT$3,200.W321269.MODEL, RIG, ANIMATE WITH 3DS MAX / MICHELE BOUSQUET.Berkeley : Peachpit Press, c2005.0321321782 : NT$1,320.W321270.HOW COMPUTERS WORK / RON WHITE ; ILLUSTRATED BY TIMOTHY EDWARD DOWNS. Indianapolis, Ind. : Que, 2006.0789734249 (pbk.) : NT$1,050.W321271.INSIDE 3DS MAX 7 / [LEAD AUTHOR, SEAN BONNEY].Berkeley, Calif. : New Riders, c2005.0735713871 : NT$1,870.W321272.3DS MAX 7 FUNDAMENTALS / TED BOARDMAN.Berkeley, Calif. : New Riders, c2005.0321321383 : NT$1,490.W321273.123 PIC MICROCONTROLLER EXPERIMENTS FOR THE EVIL GENIUS / MYKE PREDKO.New York : McGraw-Hill, c2005.0071451420 : NT$850.W321274.COMPUTERS : INFORMATION TECHNOLOGY IN PERSPECTIVE / LARRY LONG, NANCY LONG. Upper Saddle River, N.J. : Pearson/Prentice Hall, c2005.0131432354 : NT$980.0131432249.W321345.INTRODUCTION TO JAVA PROGRAMMING : COMPREHENSIVE VERSION / Y. DANIEL LIANG. Upper Saddle River, NJ : Pearson Prentice Hall, c2005.0131857215 (international ed.) : NT$1,120.0131489526.W321346.THE C PROGRAMMING LANGUAGE / BRIAN W. KERNIGHAN, DENNIS M. RITCHIE.Upper Saddle River, NJ : Prentice-Hall , c1988.0131193716 (International ed.) : NT$640.W321347.MATLAB PROGRAMMING FOR ENGINEERS / STEPHEN J. CHAPMAN.Australia ; [Pacific Grove, Calif.] : Thomson, c2004.0534424171 : NT$980.0534408397 (pbk.) :W321348.PROBLEM SOLVING IN C++ : INCLUDING BREADTH AND LABORATORIES / ANGELA B. SHIFLET, PAUL A. NAGIN ; WITH CONTRIBUTIONS FROM JOHN S. HINKEL.Belmont, CA : Thomson-Brooks/Cole, c2004.0534400051 : NT$1,000.W321349.JAVA PROGRAMMING WITH CORBA : ADVANCED TECHNIQUES FOR BUILDING DISTRIBUTED APLICATIONS / GERALD BROSE, ANDREAS VOGEL, KEITH DUDDY.New York : Wiley, 2001.0471376817 (paper/website) : NT$1,050.W321546.ADTS, DATA STRUCTURES, AND PROBLEM SOLVING WITH C++ / LARRY R. NYHOFF.Upper Saddle River, NJ : Pearson/Prentice Hall, c2005.0131409093 : NT$1,150.W321547.INTRODUCTION TO COMPUTING FOR ENGINEERS / STEVEN C. CHAPRA, RAYMOND P. CANALE. New York : McGraw-Hill, c1994.0079116094 (recycled, acid-free paper) : NT$550.W321548.COMPUTER GRAPHICS WITH OPENGL / DONALD HEARN, M. PAULINE BAKER.Upper Saddle River, NJ : Pearson Prentice Hall, c2004.0130153907 : NT$1,150.0131202383 (Intl. ed.).W321550.OBJECTS, ABSTRACTION, DATA STRUCTURES, AND DESIGN USING JAVA, VERSION 5.0 / ELLIOT B. KOFFMAN, PAUL A.T. WOLFGANG.Hoboken, NJ : John Wiley, 2005.0471692646 (pbk.) : NT$1,150.W321551.ADVANCED DIGITAL DESIGN WITH THE VERILOG HDL / MICHAEL D. CILETTI.Upper Saddle River, N.J. : Prentice Hall, c2003.0130891614 : NT$1,250.W321552.COMPUTER VISION : A MODERN APPROACH / DAVID A. FORSYTH [AND] JEAN PONCE. Upper Saddle River, N.J. ; London : Prentice Hall, c2003.0130851981 : NT$1,050.W321553.MODERN INDUSTRIAL ELECTRONICS / TIMOTHY J. MALONEY.Upper Saddle River, N.J. : Pearson/Prentice-Hall, c2004.0130487414 : NT$1,180.W321554.INTRODUCTION TO ELECTRONIC CIRCUIT DESIGN / RICHARD R. SPENCER, MOHAMMED S. GHAUSI.Upper Saddle River, N.J. : Prentice Hall/Pearson Education, Inc., c2003. 0130652180 (CD-ROM).020******* : NT$1,050.W321555.AN INTRODUCTION TO STATISTICAL SIGNAL PROCESSING / ROBERT M. GRAY, LEE D. DAVISSON.Cambridge, UK ; New York : Cambridge University Press, 2004.0521838606 : NT$1,400.W321556.NUMERICAL ANALYSIS / RICHARD L. BURDEN, J. DOUGLAS FAIRES.Belmont, CA : Thomson Brooks/Cole, c2005.0534392008 (student ed. : acid-free paper).0534404995 (international student ed. : acid-free paper) : NT$1,150.W321558.DIFFERENTIAL EQUATIONS AND BOUNDARY VALUE PROBLEMS : COMPUTING AND MODELING / C. HENRY EDWARDS, DAVID E. PENNEY.Upper Saddle River, NJ : Pearson Education, 2004.0130652458 : NT$1,150.W321559.。
corba
•
OMG成立于 成立于1989年,作为一个非营利性组 成立于 年 集中致力于开发在技术上具有先进性、 织,集中致力于开发在技术上具有先进性、在商 业上具有可行性并且独立于厂商的软件互联规范, 业上具有可行性并且独立于厂商的软件互联规范, 推广面向对象模型技术, 推广面向对象模型技术,增强软件的可移植性 )、可重用性 (Portability)、可重用性(Reusability)和互 )、可重用性( ) 操作性( )。该组织成立之初 操作性(Interoperability)。该组织成立之初, )。该组织成立之初, 成员包括Unisys、Sun、Cannon、Hewlett成员包括 、 、 、 Packard、Philips等在业界享有声誉的软硬件厂 、 等在业界享有声誉的软硬件厂 目前该组织拥有800多家成员。 多家成员。 商,目前该组织拥有 多家成员
•
CORBA体系的主要内容包括以下几部分: 体系的主要内容包括以下几部分: 体系的主要内容包括以下几部分 (1) 对象请求代理 对象请求代理ORB(Object Request Broker):负责对象在分 : 布环境中透明地收发请求和响应,它是构建分布对象应用、 布环境中透明地收发请求和响应,它是构建分布对象应用、在异构或 同构环境下实现应用间互操作的基础。 同构环境下实现应用间互操作的基础。 (2) 对象服务(Object Services):为使用和实现对象而提供的 对象服务( ):为使用和实现对象而提供的 ): 基本对象集合,这些服务应独立于应用领域。主要的CORBA服务有: 服务有: 基本对象集合,这些服务应独立于应用领域。主要的 服务有 名录服务(Naming Service)、事件服务 名录服务 、事件服务(Event Service)、生命周期 、 服务(Life Cycle Service)、关系服务 服务 、关系服务(Relationship Service)、事务 、 服务(Transaction Service)等。这些服务几乎包括分布系统和面向对 服务 等 象系统的各个方面,每个组成部分都非常复杂。 象系统的各个方面,每个组成部分都非常复杂。 (3) 公共设施 公共设施(Common Facilitites):向终端用户提供一组共享 : 服务接口,例如系统管理、组合文档和电子邮件等。 服务接口,例如系统管理、组合文档和电子邮件等。 (4) 应用接口 应用接口(Application Interfaces):由销售商提供的可控制 : 其接口的产品,相应于传统的应用层表示,处于参考模型的最高层。 其接口的产品,相应于传统的应用层表示,处于参考模型的最高层。 (5) 域接口 域接口(Domain Interfaces):为应用领域服务而提供的接口。 :为应用领域服务而提供的接口。 组织为PDM系统制定的规范。 系统制定的规范。 如OMG组织为 组织为 系统制定的规范
Corba_IIOP
CORBA IIOP Protocol and ApplicationsIntroductionThe Common Object Request Broker Architecture (CORBA) and the Internet Inter-ORB Protocol (IIOP) are two technologies that enable distributed computing across heterogeneous systems. CORBA defines the total architecture required for communication between distributed objects and IIOP is the most important specification of CORBA. IIOP focuses on interoperability of distributed objects in heterogeneous environments. CORBA, created by the Object Management Group (OMG) in 1991, enables an application's components to communicate without regard for their locations on a network. A CORBA-compliant object is guaranteed to be able to communicate with other distributed objects because the technology defines a common interface. IIOP was introduced in Dec. 1994 as a component of CORBA 2.0 specification. Netscape and Sun Microsystems support CORBA and IIOP in their next-generation products. Group project by: Fei Zhang Chunsong JI Fenghua Ji 7/21/98BackgroundToday, using of Internet and Web has been changing our life in all aspects. It also changes the way we use computers. One of the biggest changes is that it gives a new meaning to distributed computing. Instead of the traditional client/server network, the new era of distributed computing make it possible for enterprise systems, whose objects are distributed across multiple computers, that they can all communicate, regardless of operating system, platform, or programming language. Even more amazing is that these distributed objects can be components of a single application or of the dozens of applications that form the enterprise system. The application modular evolved from monolithic to multtiered.Figure 1 Application Modular: A, B--monolithic, C--multi-tieredPage - 1 -It is the technology such as the Common Object Request Broker Architecture (CORBA) and the Internet Inter-ORB Protocol (IIOP) that enables distributed computing across heterogeneous systems. CORBA specifies the complete architecture necessary for communication between distributed objects. The specification includes IIOP and a host of other technologies. IIOP is the most important piece of CORBA, because it focuses on interoperability of distributed objects in heterogeneous environments. In addition, CORBA and IIOP define the middleware that could cause developers around the world to rethink how they create applications in networked environments. CORBA is a standard created by the Object Management Group. It is first implemented in 1991. The organization's goal is to provide a common framework for application development using object-oriented techniques. Instead of applications, OMG produces specifications that make distributed-object computing possible. By describing a common architecture for communication between distributed objects, CORBA makes it possible for an application's components to communicate, regardless of their locations on a network. Further, because CORBA defines a common interface between objects, the operating system and the programming language of the object don't matter. As long as an object is CORBA-compliant, it can communicate with other distributed objects. IIOP is another success standard of OMG. It is introduced as part of the CORBA 2.0 specification in December 1994. Before IIOP, the CORBA specification defined interaction only for distributed objects created by the same vendor; the objects had to be designed for a specific implementation. Using IIOP, the second CORBA specification became the definitive solution for object interoperability that wasn't tied to a specific platform or implementation.Inside CORBAAs a technology that provides the framework for interaction between dissimilar objects, CORBA succeeds admirably, yet that is only a piece of a greater picture called the Object Management Architecture (OMA), the primary components of which are: CORBA ORB--handles requests among objects; CORBA Services--defines system-level services that help manage and maintain objects; CORBA Facilities--defines facilities and interfaces at the application level; application objects--the objects themselves.ORB The Object Request Broker (ORB) is the heart of CORBA. It is the object bus. The ORB allows objects to make requests of each other. Although the ORB operates in a client/server environment, objects in ORB can function as either clients or servers, depending on the circumstances. If an object is receiving and processing a request, then it is acting as a server. If the object is making a request, then it is acting as a client.Page - 2 -The ORB lets objects transparently make requests to and receive responses from other objects located locally or remotely. The client is not aware of the mechanisms used to communicate with, activate, or store the server objects. The ORB lets objects discover each other at runtime and invoke each other's services. Brokering requests and returning results is all the job for the ORB. It involves intercepting each request from one object to another, locating the object that's supposed to handle the request, invoking the appropriate method in the receiving object, passing parameters if necessary, and returning the result to the object that made the request. Because the ORB handles requests transparently, it doesn't matter whether the request is from a local or a remote object. ORBs are the common denominators that bridge the differences in location, platform, and programming language that can separate a client and a server. ORBs can contact each other across the network, can create and interpret object references, and can marshal parameters into and out of the format used by IIOP (Internet InterORB Protocol). The ORB is an architectural abstraction rather than a process executing on a specific machine. In practice, this abstraction is usually implemented as a library linked into clients and servers. An ORB daemon can optionally support the automatic launching of ORB servers for persistent objects.Fig 2, Structure of Object Request Broker interface IDL The ORB handles these requests regardless of programming language, operating system, or platform. The mechanism that allows ORBs to handle requests transparently is the Interface Definition Language (IDL), which is used to declare the boundaries and interfaces of an object. Much like an independent arbitrator, the IDL is neutral and independent of the object and the ORB, yet it binds providers of distributed-object services to their clients. CORBA supports multiple inheritance, and its IDL uses inheritance to encapsulate objects. This makes reuse of code very easy.Page - 3 -IDL expresses operating system and programming language-independent interfaces to all the services and components that reside on a CORBA bus. It allows client and server objects written in different languages to interoperate across networks and operating systems. IDL is purely declarative; it provides no implementation details. IDL-specified methods can be written in and invoked from any language that provides CORBA bindings, including Java, C, C++, and Smalltalk. IDL is mapped into each programming language to provide access to object interfaces from that language. The advantage of IDL is that you can concisely define APIs yet still have the freedom to define the IDL methods in any programming language that provides CORBA bindings. As anyone who has done object-oriented programming knows, you need to know a receiving object's interface before you can make a request, and you design your objects so that they know the interfaces of the objects they interact with. But with distributed computing between heterogeneous objects, you'll run into lots of problems if you try that approach. To make IDL truly independent, CORBA uses an interface repository, the purpose of which is to store the method signatures of objects so that the signatures can be dynamically retrieved and updated at runtime. In this way, all objects in the enterprise system can learn about other objects' interfaces, the methods the interfaces support, and the parameters the interfaces require.Figure 3 CORBA ORB Architechture CORBA Object Services CORBA services is used to manage and maintain objects through their life cycles. It provides the interfaces that can be used to create objects, handle object security, determine the location of objects, and perform class-level management of objects. Because they are system-level rather than applicationlevel services, it can be implemented across the enterprise. It is easy to create consistency throughout the enterprise system. There are 16 object services, including: CollectionPage - 4 -PropertiesConcurrency control Event notification Externalization Licensing Life cycle Naming PersistenceQuery Relationships Security Startup Time Trader TransactionsCORBA object services let developers focus their efforts on their objects, without having to worry about system-level services. You can develop a class for your object and then use the object services to add the functionality they provide. You handle this with subclassing and multiple inheritance. For example, if you create a Widget class, you can then create a subclass called aWidget that is persistent simply by inheriting from the Persistence service. You could also handle event notification, security, and queries by inheriting from the appropriate services. CORBA extends the power of subclassing and multiple inheritance with metaclasses. A metaclass is a class of objects that can be created at runtime. Using metaclasses, you can dynamically add services to CORBA objects, allowing you to customize objects on demand. CORBA Object Facilities CORBA Facilities define frameworks that provide interfaces and other services. These frameworks are divided into broad categories that include application interfaces, domain interfaces, and networking facilities. Application interfaces consist of non-standardized facilities specific to individual applications, such as a reservation system or inventory management system. The domain interfaces consist of facilities for end users in specific application domains. (Here a domain refers to a specific vertical market or industry.) Whereas domain interfaces focus on specific markets, Internet facilities are the application-level functions and interfaces that reach a broad market. These facilities include common user-oriented tasks within applications, such as printing or saving a file, yet also reach into common networked tasks, such as using email and networking facilities. Application Objects Application objects are the actual objects that form the core of a CORBAcompliant application. They are also called business objects. A business object is a way of describing concepts that are independent of an application, such as a customer, order, or payment. You will use a collection of business objects to create an application. Unlike system-level objects, which handle tasks such as persistence, business objects handle real-world business processes. Although a typical business object may handle only a single task (such as working with reservations, customers, orPage - 5 -inventory), collections of business objects can be used to handle an entire business process, such as booking and managing reservations for an airline. Because business objects come with ready-to-use functionality, a developer can stitch them together to create a custom application. In order to manage the complexity of an application with distributed business objects, the business objects know only what services other objects provide, not how those services are actually implemented. Business objects hide the complexities of back-end processing by focusing on interfaces rather than on implementation.COBRA/IIOPOMG create standards for distributed object computing that are realistic, commercially available and usable through its Object Management Architecture (OMA) at the heart of which is the Common Object Request Broker Architecture (CORBA). CORBA specifies the Object Request Broker (ORB) that allows applications to communicate with one another no matter where they reside on a network. The CORBA 2.0 specification, adopted in 1994, created true out-of-thebox interoperability in heterogeneous environments and delivers this interoperability over the Internet through IIOP – the Internet Inter-ORB Protocol. A common misconception about IIOP is that it is a "separate" specification that developers need to write to in order to allow CORBA to work over the Internet. This is not so. A properly constructed CORBA 2.0 ORB already incorporates IIOP. IIOP is an underlying mechanism of CORBA technology which is transparently managed by ORBs. So IIOP and CORBA are, essentially, inseparable. Therefore, programmers and users are never required to interact with IIOP in any way; it is invisible to them. IIOP allows their programs to interact transparently while executing, so one does not have to write "IIOP programs." The IIOP specification defines a set of data formatting rules, called CDR (Common Data Representation), which is tailored to the data types supported in the CORBA Interface Definition Language (IDL). Using the CDR data formatting rules, the IIOP specification also defines a set of message types that support all of the ORB semantics defined in the CORBA core specification. Together, the CDR formatting rules and the message formats constitute an abstract protocol called GIOP, which stands for General Inter-ORB Protocol. GIOP messages can be sent over virtually any data transport protocol, such as TCP/IP, Novell SPX, SNA protocols, etc. To ensure "out-of-the-box" interoperability between ORB products, the IIOP specification requires that ORBs send GIOP messages over TCP/IP connections because TCP/IP is the standard connection-oriented transport protocol for the Internet. To put it very simply, GIOP + TCP/IP = IIOP. Objects publish their identities and locations in the form of object references. The CORBA 2.0 specification dictates a common format for object references exchanged over IIOP, called IOR (Interoperable Object Reference) format. An IOR contains one or more profiles. Each profile describes how a client can contact and send requests to the object using a particular protocol. All legal IORs must have at least one IIOP profile, thus ensuring that wherever that reference goes, any CORBA-compliant ORB will be able to locate the object and sendPage - 6 -requests to it. The IIOP profile contains the Internet address of the object's server and a key value used by the server to find the specific object described by the reference. Object references can be converted into character strings, which can be published arbitrarily, like URLs, in email messages, files, databases, directories, and so on. Any CORBA-compliant application can convert the string into an IOR and use it to locate and invoke the object. When a client program built with ORB vendor B's product needs to talk to an object in a server built with ORB vendor A's product, the client program opens a TCP/IP connection to the server, and sends one or more IIOP request to the server. The ORB component linked into the server locates or activates the object specified in the request and invokes the appropriate method on the object. The fact that the object is not built with the same ORB product is invisible to the client. One of the most important aspects of CORBA/IIOP is its platform independence. CORBA ORBs interoperate without regard to vendor origin making CORBA/IIOP the truly ideal solution for the Internet, especially when one considers its vast size and the disparate hardware and software that is deployed there. This platform independence allows businesses to take advantage of the Internet without having to rebuild systems and networking hardware and software or forcing them to commit to a single vendor solution. CORBA/IIOP will allow most every system that is now in operation to be incorporated with comparatively minor modifications so that a business's installed base, even if it is made up of equipment and software packages from a variety of vendors, will be able to work together seamlessly. IIOP, the Internet Inter-ORB Protocol, is a projection on TCP/IP of the more general GIOP. GIOP, the General Inter-ORB Protocol which is defined in the CORBA 2.0 specifications, allows different ORBs to work together. The GIOP specification consists of three main elements: The transport management requirements The GIOP message formats The CDR, Common Data Representation, transfer syntax definition With respect to GIOP, IIOP is not a distinct interoperability protocol. IIOP implements GIOP over the TCP/IP transport layer. It extends the GIOP specification by mapping GIOP connections to TCP/IP socket connections. It is only possible for two ORBS to work together, after both the client and the server have an ORB. It is intuitive that the server would be set up with an ORB already installed and running, but not so intuitive that everyone who is going to access the environment has installed CORBA, so to solve this We just have to use an ORB written in Java, which will be in a class format like any other Java objects. We will then download the ORB within the Web browser, along with the applet that will use it. Those ORBs written in Java are generally called Java ORBs. `` ORBlets'' is also sometimes used for Java ORBs that are downloaded like an applet in a Web browser. Then the Web users can first use HTTP to download texts, images and applets, and then use IIOP for Java-CORBA, client-server communications. Moreover, with IIOP, the server programs are not limited to be located on the same machinePage - 7 -as the Web server. This means that unlike CGI applications and traditional Java, clients can communicate with any machine on the network, under the only condition that it supports IIOP. With IIOP, Web applications are not locked into a single machine that must manage both requests of HTML files and executions of server programs, either through CGI or Java. A Web server can now be installed on a dedicated Internet host that is free to serve only incoming HTTP requests, while all the other client/server applications are run on different machines.Application of CORBAEmploying CORBA, you can create an enterprise-wide system with objects distributed throughout the network. Within the enterprise system, your Windows NT server could store core file-services objects used by the application. These objects could be programmed in C++. Your mainframe could store the application's primary back-end functions--perhaps using objects programmed in COBOL. Each of your desktop systems running Windows 95 could store the application's front-end interfaces, using objects created in Visual Basic. And all of the objects could communicate by brokering requests with CORBA. IBM, Netscape Communications Corp., Oracle Corp., and Sun Microsystems Inc. – jointly are going to make enhancements to the CORBA specification in an attempt to create a component model that better interacts with a number of other component models, most notably JavaBeans (attempt to fight off Microsoft Corp.). Sun uses CORBA and IIOP to implement heterogeneous remote procedure calls in Java 1.1, and without those technologies, the Java Platform for enterprise networks wouldn't be possible. Further, the Enterprise JavaBeans API will use CORBA and IIOP to allow scalable business applications with reusable server components. There are many successful stories of companies use CORBA to solve problems or development software. For example, CNN Interactive, a division of Cable News Network from Atlanta, GA is just one of the benefices. It has built and is deploying a system using CORBA (Common Object Request Broker Architecture) to gather, store and disseminate news material. The project has enabled the organization to tie together its various clients and servers that include Windows and Mac desktops, Windows NT, Sun Solaris and Netscape server platforms so that all internal users can access the material and all servers can talk to one another. CNN Interactive has realized many benefits through its use of CORBA: Ability to build both clients and servers simultaneously and IDL interfaces allow them to be married together quickly and seamlessly. Time savings, ability to build clients and servers simultaneously is allowed because IDL interface works so well. Shortened development cycle Object reusability saves time, money and minimizes debugging of new programs.CORBA/IIOP: Empowering the WebAs the Internet and network computing evolved, protocols were needed to allow applications to work over these networks. As an application specific (actually display specific) protocol HTTP is fine but as web applications become more complex, they are running up against the limitations of HTTP. Any problem thatPage - 8 -requires dynamic interaction with the user, such as an on-line reservation system, exposes some of the problems inherent in using HTTP to build non-trivial applications. The available mechanisms, such as CGI and NSAPI, are not objectoriented -- they do not enforce any type-safety. There is no standard way of defining the service interfaces, so there is no repository of interfaces or selfdescription capability. Consequently, developers have to write more code with clumsier interfaces, the applications are more error-prone, they are harder to maintain, and are not likely to permit any meaningful re-use. So as web-based applications become more complicated CORBA/IIOP becomes the natural solution for handling them. Using CORBA means that applications can communicate with each other over the Internet no matter where they are or who built them. For the most part, moving from HTTP to IIOP will be transparent to end-users, except for the fact that with IIOP the applications they use will become more sophisticated and have better performance. Initially, web applications that use IIOP will most likely take the form of Java applets downloaded via HTTP. Once the applet is downloaded, it takes over communication with remote objects using IIOP. The CORBA model and tools that support it allow programmers to build this kind of application more quickly, develop more functionality, and make use of existing components.Figure 4. Web tiers using CORBA/IIOPCompare IIOP with DCOMCORBA and IIOP aren't the only distributed-computing solutions. Microsoft has a competing architecture called the Distributed Computing Object Model (DCOM), basically an Object Request Broker (ORB) that is part of Windows NT 4.0 and will be part of the next release of Windows.Page - 9 -It's possible to make remote procedure calls to Java using DCOM. The necessary hooks are available with Visual J++. But DCOM is available only on Windows NT 4.0 and Windows 95 (through an Internet Explorer Extension), which means you cannot use DCOM to implement communications to other operating systems. Microsoft has announced that DCOM will be ported to other platforms in the future. IIOP lets Netscape's Open Network Environment (ONE) communicate with enterprise-wide systems. IIOP also lets programmers connect Java, JavaScript, and C or C++ code to enterprise-wide systems. In Netscape Navigator, IIOP is the protocol within LiveConnect that lets applets, plug-ins, and scripts communicate with each other. If you like to see more information about the difference between DCOM and IIOP, you can visit . Using CORBA, you can easily scale up from a network of three computers to an Internet-size network. CORBA provides the framework that lets you connect objects programmed in different languages, and you can do so regardless of the platform or operating system for which the objects were designed, as long as CORBA mappings are available. Because CORBA can operate across heterogeneous platforms, it has an advantage over DCOM at the present time. But with the Microsoft powerhouse behind it, DCOM is sure to be a force to reckon with in the coming years. As some expert said, CORBA has a handicap. ORBs based on CORBA are too difficult to implement and write applications for. As a result, they take up too much time and money for most users to work with. However, as we all know that there is an inherent immaturity to distributed object computing in general. The stranglehold for CORBA, DCOM, and even Distributed Java, is the lack of expertise in the mainstream marketplace for developing distributed systems. OMG is working to deal with the complexity issue. In June 1997, a Component Initiative was submitted to the OMG Technical Committee, the purpose of which is to ease application construction by composing components with a simple scripting language.SummaryWith its backing consortium of more than 700 companies, CORBA is anything but the latest craze to hit the market. CORBA and IIOP are developments that are in the right place at the right time, and not a prototype churned out quickly in response to "web time" demands. From the beginning, CORBA/IIOP was intended to meet even the needs of the large, multinational enterprise where robustness, scalability, security, and value are critical elements of their information systems. CORBA/IIOP perfectly meets these criteria making it the architecture/protocol of choice for the future of World Wide Web.Page - 10 -。
基于CORBA的C/S分布式计算模型
CORBA
结构 框 架. 绍 了 C 介 OR A 与 J B AVA 的 结 合 , 过 J 通 AVA 本 身 的 安 全 机 制 进 一 步 加 强 系 统 的 安 全 服 务 . 关 键 词 : ORB C A;安 全 模 型 ;分 布 式 计 算 环 境
中 图 分 类 号 :TP3 3 9 文 献标识 码 : A
将 其 任 务 分 配 到 不 同 的 机 器 上 去 运 行 . 0R பைடு நூலகம் 实 现 了 服 务 C B
域 网 甚 至 I tr e 上 已 成 为 用 户 的 普 遍 需 求 , 电 子 商 务 、 n en t 如 虚 拟 企 业 中 的 信 息 集 成 等 , 中 重 要 的 实 现 途 径 就 是 采 用 分 布 其 式 汁算 技 术 “ . 前 成 熟 的 分 布 式 计 算 技 术 有 OM G 组 织 制 当
象 模 型/ 布 组 件 对 象 模 型 ) 准 和 S 分 标 UN 公 司 的 J v M I aaR
( a a Re t eh d I v c to J v J v mo eM t o n o ai n, a a远 程 方 法 调 用 ) COR— .
容 , 它 的 服 务 可 以 通 过 对 OR 核 心 的 扩 展 或 者 外 挂 式 服 务 其 B 方式 提 供 给 客户 使 用 , 且 这 些 服务 不 包 含 在 C 并 OR A 规 范 B
1 引 言
随 着 ] tr e n e n t的 广 泛 应 用 . 各 种 应 用 扩 展 到 局 域 网 、 将 广
在 实 际 的运 行 环 境 中 , 用 软件 往 往运 用 不 同 的编 程语 应 言 编 制 实 现 , 往 往 需 要 运 行 在 不 同 的 操 作 系 统 之 上 , 可 能 也 并
CORBA
OMG IDL接口定义语言 IDL接口定义语言
OMG IDL 代码类似于C++或者JAVA代码 代码类似于C++或者JAVA代码 它支持的属性包括:模板(module) 它支持的属性包括:模板(module),接口 (interface),操作(method),属性 interface),操作(method),属性 (attribute),继承(inheritances),数据 attribute),继承(inheritances),数据 类型,异常(exception),传播的上下文. 类型,异常(exception),传播的上下文. 下面举一个IDL简单定义的例子. 下面举一个IDL简单定义的例子.
DSI
ORB (GIOP/IIOP) )
CORBA体系结构 CORBA体系结构
OMG接口定义语言 OMG接口定义语言 OMG IDL是一种声明性语言,不是编程语言, IDL是一种声明性语言,不是编程语言, 用于指定包含操作的属性的接口,它使对 象行为与对象实现分离.使不同语言产生 的对象之间可以互操作,但是需要编译器 把IDL映射为具体的语言,目前,已经有 IDL映射为具体的语言,目前,已经有 IDL到 IDL到C ,C++, C++, Smalltalk,Ada,Java,COBOL|等的映射. Smalltalk,Ada,Java,COBOL|等的映射.
Module CORP { struct PersonalData {string name; string phone; string site;}; typedef PersonalData EmpPersonalData; struct EmpData {char jobjob-class; float hourlyhourly-rate;}; Interface Employee {attribute EmpData personal-data; personalreadonly attribute Department department-obj; departmentvoid promote (in char new-job-class); new-job}; Interface Manager: Employee { void approve-transfer(in Employee employee-obj, approveemployeein Department current-department); current} }
DistributedSystemsPrinciplesandParadigms中文版书名分布
Marcus,Sten : Blueprints for High Availablity
Birman, Reliable Distributed Systems
Byzantine Failure问题:
Pease,M., “Reaching Agreement in the Presence of Faults” J.ACM,1980
Lamport,L.: “Byzantine Generals Problem. ” ACM T ng.syst. 1982
Shooman,M.L: Reliability of Computer Systems and Networks :Fault Tolerance, Analysis, and Design. 2002
Tanisch,P., “Atomic Commit in Concurrent Computing. ” IEEE Concurrency,2000
集中式体系结构:C/S
分布式体系结构:
点对点系统(peer-peer system):DHT(distributed hash table),例如Chord
随机图(random map)
混合体系结构:
协作分布式系统BitTorrent、Globule
自适应软件技术:
①要点分离
②计算映像
③基于组件的设计
Henning,M., “A New Approach to Object-Oriented Middleware”
第11章分布式文件系统
NFS (Network File System):远程访问模型
ch90 CORBA技术一瞥
CORBA技术一瞥北京邮电大学交换与网络技术国家重点实验室宽带网中心串白杨2005-11-02主要内容分布式技术简介CORBA技术简介CORBA编程简介CORBA应用之ACE/TAO CORBA互操作性主要内容分布式技术简介CORBA技术简介CORBA编程简介CORBA应用之ACE/TAO CORBA互操作性分布式技术简介分布式计算技术分布式对象计算技术分布式计算技术背景随着Internet的普及,将应用扩展到局域网、广域网甚至Internet上已成为用户的普遍需求,这样,分布式计算成了新的热点。
在分布计算环境中,异构性是一个十分显著的特点。
一个典型的分布环境包括大型主机、UNIX工作站和PC机,各种机器所采用的操作系统和网络通信协议也是千差万别。
在这样的异构环境下实现信息和软件资源的共享将十分困难,而一个健壮的分布计算框架将为分布应用软件的开发带来极大的好处。
分布式计算技术定义分布式计算,是指一种应用程序设计方案,在这种方案中程序、程序处理的数据以及实际计算任务都分布在网络上,这样可以调节多台计算机的处理能力,也可以适合应用程序由不同模块组成的特性分布式对象计算技术背景自80年代末期以来,对应用软件的可扩展性和可重用性的要求也使得面向对象的分析、设计和编程技术得到了广泛的运用。
将面向对象的思想应用到分布环境中,分布对象计算(Distributed Object Computing,简称DOC)的概念就应运而生了。
分布式对象计算技术产品目前,OMG组织制订的CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理体系结构)标准与Microsoft的COM/DCOM(Component Object Model/Distributed COM,组件对象模型/分布组件对象模型)标准、Sun公司的Java RMI(Java Remote Method Invocation,Java远程方法调用)标准一起形成了分布对象计算领域的主流。
软件开发常用英语词汇
软件开发常用英语词汇Aabstract 抽象的abstract base class (ABC)抽象基类abstract class 抽象类abstraction 抽象、抽象物、抽象性access 存取、类类access function 类类函数access level类类类类account 类类action 类作activate 激活active 活类的actual parameter 类参adapter 适配器add-in 插件address 地址address space 地址空类ADO(ActiveX Data Object)ActiveX数据类象advanced 高类的aggregation 聚合、聚集algorithm 算法alias 类名align 排列、类类allocate 分配、配置allocator分配器、配置器angle bracket 尖括号annotation 注解、类注API (Application Programming Interface) 类用(程序)类程接口appearance 外类append 附加application 类用、类用程序application framework 类用程序架框Approximate String Matching 模糊匹配architecture 架、系类构体构archive file 类文件、存文件档档argument参数。
array 数类arrow operator 箭类操作符assert(ion) 断言assign 类类assignment 类类、分配assignment operator 类类操作符associated 相类的、相类类的asynchronous 异步的attribute 特性、性属authentication service 类类服类authorization 授类Bbackground 背景、后台(类程)backup 类份backup device类类类份backup file 类文件份backward compatible 向后兼容、向下兼容base class 基类base type 基类型batch 批类理BCL (base class library)基类类Bin Packing 装箱类类binary 二类制binding 类定bit 位bitmap 位类block 类、类、类句类区boolean 布林类(真假类~true或false)border 类框bounds checking 类界类类boxing 装装箱、箱类类brace (curly brace) 大括、花括号号bracket (square brakcet) 中括、方括号号breakpoint 断点browser applications 类类器类用(程序)browser-accessible application 可类由类类器类类的类用程序bug 缺陷类类build 类类(类指类类和类接)built-in 内内建、置bus 类类business 类类、商类(看类合)business Logic 类类类类business rules 类类类类buttons 按类by/through 通类byte 位元类(由8 bits类成)Ccache 高速类存calendar 日类Calendrical Calculations 日期call 类用call operator 类用操作符callback 回类candidate key 候类类 (for database)cascading delete 类类类除 (for database)cascading update 类类更新 (for database)casting 类型、造型类类catalog 目类chain 类(function calls)character 字符character format 字符格式character set 字符集check box 类类框check button 类类按类CHECK constraints CHECK类束 (for database)checkpoint 类类点 (for database)child class 子类CIL (common intermediate language)通用中类类言、通用中介类言class 类class declaration 类明声class definition 类定类class derivation list 类类承列表class factory 类厂class hierarchy 类类次类构class library 类类class loader 类类器装class template 类模板class template partial specializations 类模板部分特化class template specializations 类模板特化classification 分类clause 子句cleanup 清清理、除CLI (Common Language Infrastructure) 通用类言基类类施client 客类、客类端client application 客类端类用程序client area 客类区client cursor 客类端游类 (for database)client-server 客类机/服类器、客类端/服类器clipboard 剪类板clone 克隆CLS (common language specification) 通用类言类范code access security 代类类类安全code page 代类类COFF (Common Object File Format) 通用类象文件格式collection 集合COM (Component Object Model) 类件类象模型combo box 类合框command line 命令行comment 注类commit 提交 (for database)communication 通类compatible 兼容compile time 类类期、类类类compiler 类类器component类件composite index 类合索引、类合索引 (for database)composite key 类合类、类合类 (for database)composition 类合、类合concept 概念concrete具的体concrete class 具类体concurrency 并并类、类机制configuration 配置、类类Connected Components 类通分支connection 类接 (for database)connection pooling 类接池console 控制台constant 常量Constrained and Unconstrained Optimization 最类类类constraint 类束(for database)construct 构概构件、成分、念、造;for language,constructor (ctor) 构数构造函、造器container 容器containment包容context 类境、上下文control 控件cookiecopy 拷类CORBA 通用类象类求中介架构(Common Object Request Broker Architecture) cover 覆盖、涵盖create/creation 类建、生成crosstab query 交叉表类类 (for database)Cryptography 密类CTS (common type system)通用类型系类cube 多类据集数(for database)cursor 光类cursor 游类 (for database)custom 定制、自定类Ddata 数据data connection 数据类接 (for database)data dictionary 数据字典 (for database)data file 数据文件 (for database)data integrity 数据完整性 (for database)data manipulation language (DML)数据操作类言(DML) (for database)data member 数据成类、成类类量data source 数据源 (for database)Data source name (DSN) 数称据源名(DSN) (for database)data structure数构据类Data Structures 基本据类数构data table 数据表 (for database)data-bound 数据类定 (fordatabase)database 数据类 (for database)database catalog 数据类目类 (for database)database diagram 数据类系类 (for database)database file 数据类文件 (for database)database object 数据类类象 (for database)database owner 数据类所有者 (for database)database project 数据类工程 (fordatabase)database role 数据类角色 (for database)database schema 数数构据类模式、据类架 (for database)database script 数据类脚本 (for database)datagram 数据类文dataset 数据集 (for database)dataset 数据集 (for database)DBMS (database management system)数据类管理系类 (for database) DCOM (distributed COM)分布式COMdead lock 死类 (for database)deallocate 类类debug 类类debugger 类类器decay 退化declaration 声明default 缺省、默类类DEFAULT constraint默类类束 (for database)default database 默类据类数(for database)default instance 默类类例 (for database)default result set 默类类果集 (for database)defer 推类definition 定类delegate 委托delegation 委托deploy 部署derived class 派生类design pattern 类类模式destroy 类毁destructor(dtor)析函、析器构数构device 类类DHTML (dynamic HyperText Markup Language)类类超文本类类类言dialog 类类框Dictionaries 字典digest 摘要digital 数字的directive (类类)指示符directory 目类disassembler 反类类器DISCO (Discovery of Web Services)Web Services的类找dispatch 类度、分派、派类distributed computing 分布式类算distributed query 分布式类类 (for database)DNA (Distributed interNet Application) 分布式类类用程序网document 文档DOM (Document Object Model)文类象模型档dot operator (类)点操作符double-byte character set (DBCS)双字类字符集(DBCS)driver 类类(程序)DTD (document type definition) 文类型定类档dump 类类dump file 类类文件Ee-business 类子商类efficiency 效率efficient 高效encapsulation 封装end user 最类用类end-to-end authentication 端类端身类类份engine 引擎entity 类体enum (enumeration) 枚类enumerators 枚类成类、枚类器equal 相等equality 相等性equality operator 等操作符号error log 类类日志 (for database)escape character 类类符、类类字符escape code 类类类evaluate 类估event 事件event driven 事件类类的event handler 事件类理器evidence 类据exception 异常exception declaration 异声常明exception handling 异异常类理、常类理机制exception specification 异常类范exception-safe 异常安全的exit 退出explicit 类式explicit specialization 类式特化explicit transaction 类式事类 (for database)export 类出expression 表式达Ffat client 胖客类端feature 特性、特征fetch 提取field 字段 (for database)field 字段(java) field length 字段类度 (for database)file 文件filter 类类 (for database)finalization 类类finalizer 类类器firewall 防火类flag 类类flash memory 类存flush 刷新font 字体foreign key (FK) 外类(FK) (for database)form 窗体formal parameter 形参forward declaration 前置明声forward-only 只向前的forward-only cursor 只向前游类 (for database) framework 框架full specialization 完全特化function 函数function call operator (即operator ()) 函类用操作符数function object 函类象数function template函模板数functionality 功能functor 仿数函GGC (Garbage collection) 垃圾回收(机制)、收集垃圾(机制)generate 生成generic 泛化的、一般化的、通用的generic algorithm通用算法genericity 泛型getter (相类于 setter)取类函数global 全局的global object 全局类象grant 授类 (for database)group 类、群group box 分类框GUI 类形界面GUID (Globally Unique Identifier) 全球唯一类类符Hhandle 句柄handler 类理器hard disk 硬类hard-coded 硬类类的hard-copy 截类屏hardware 硬件hash table 散列表、哈希表header file类文件heap 堆help file 帮助文件hierarchical data 类类式据、类次式据数数hierarchy 类次类、类承系构体high level 高类、高类hook 类子Host (application)宿主(类用程序)hot key 类类HTML (HyperText Markup Language) 超文本类类类言HTTP (HyperText Transfer Protocol) 超文本类类类类HTTP pipeline HTTP管道hyperlink 超类接Iicon 类类IDE (Integrated Development Environment)集成类类类境identifier 类类符IDL (Interface Definition Language) 接口定类类言idle time 空类类类if and only if当当且类IL (Intermediate Language) 中类类言、中介类言image 类象IME 类入法immediate base 直接基类immediate derived 直接派生类immediate updating 即类更新 (for database)implement 类类implementation 类类、类类品implicit 类式implicit transaction类式事类 (for database)import 类入incremental update 增量更新 (for database)Independent Set 独立集index 索引 (for database)infinite loop 无限循类infinite recursive 无限类类information 信息inheritance 类承、类承机制initialization 初始化initialization list 初始化列表、初始类列表initialize 初始化inline 内类inline expansion 内类展类inner join 内类接 (for database)instance 类例instantiated 具类化、类化体(常类用于template)instantiation 具类、具类化类体体(常类用于template)integrate 集成、整合integrity 完整性、一致性integrity constraint完整性类束 (for database)interacts 交互interface 接口interoperability 互操作性、互操作能力interpreter 解类器introspection 自省invariants 不类性invoke 类用isolation level 隔离类类 (for database)item 类、条款、类目iterate 迭代iteration 迭代(回圈每次类回类一称个iteration)iterative 反类的、迭代的iterator 迭代器JJIT compilation JIT类类类类类即Job Scheduling 工程安排Kkey 类 (for database)key column 类列 (for database)Lleft outer join 左向外类接 (for database)level 类、类例library 类lifetime 生命期、命寿Linear Programming 类性类划link 类接、类接linkage 类接、类接linker 类接器、类接器list 列表、表、类表list box 列表框literal constant 字面常数livelock 活类 (for database)load 装类、加类load balancing 类类平衡loader 装类器、类入器local 局部的local object 局部类象lock 类log 日志login 登类login security mode登类安全模式 (for database)lookup table 类表找(for database)loop 循类loose coupling 松散合耦lvalue 左类Mmachine code 机器类、机器代类macro 宏maintain 类类managed code 受控代类、托管代类Managed Extensions 受控类充件、托管类展managed object 受控类象、托管类象manifest 清类many-to-many relationship 多类多类系 (for database)many-to-one relationship 多类一类系 (for database)marshal 列集Matching 匹配member 成类member access operator 成类取用算子运(有dot和arrow两类) member function 成类函数member initialization list成类初始类列表memory 内存memory leak 内存泄漏menu 菜类message 消息message based 基于消息的message loop 消息类message queuing消息类列metadata 元据数metaprogramming元类程method 方法micro 微middle tier 中类类middleware 中类件modeling 建模modeling language 建模类言modem 类制解类器modifier 修类字、修类符module 模类most derived class最底类的派生类mouse 鼠类multi-tasking 多任类multi-thread 多类程multicast delegate 类播委托、多点委托multithreaded server application 多类程服类器类用程序multiuser 多用类mutable 可类的mutex 互斥元、互斥体Nnamed parameter 命名参数named pipe 命名管道namespace 名字空类、命名空类native 原生的、本地的native code 本地类、本机类nested class 嵌套类nested query 嵌套类类 (for database)nested table 嵌套表 (for database)network 网类network card 网卡Network Flow 网类流Oobject 类象object based 基于类象的object model 类象模型object oriented 面向类象的ODBC data source ODBC数据源 (for database)ODBC driver ODBC类类程序 (for database)one-to-many relationship 一类多类系 (for database)one-to-one relationship 一类一类系 (for database)operating system (OS) 操作系类operation 操作operator 操作符、算符运option 类类outer join 外类接 (for database)overflow 上限溢位(相类于underflow)overload 重类override 覆、写重类、重新定类Ppackage 包packaging 打包palette 类色板parallel 并行parameter 参数参数参、形式、形parameter list 参数列表parameterize 参数化parent class 父类parentheses 类括弧、类括号parse 解析parser 解析器part 零件、部件partial specialization 局部特化pass by reference 引用类类pass by value 类类类pattern 模式persistence 持久性pixel 像素placeholder 占位符platform 平台Point Location 位置类类pointer 指类polymorphism 多类pooling 池化pop up 类出式port 端口postfix 后类precedence 类先序(通常用于算子的类运先类行次序)prefix 前类preprocessor 类类理器primary key (PK)主类(PK) (for database)primary table 主表 (for database)primitive type 原始类型print 打印9 / 13printer 打印机procedure 类程process 类程program 程序programmer 程序类programming类程、程序类类progress bar 类度指示器project 类目、工程property 属性protocol 类类pseudo code类类Qqualified 合格的qualifier 修类符quality 类量queue 类列Rradio button 类类按类random number 随数机Random Number Generation 随数机生成range 范类、类区rank 等类raw 未类类理的re-direction 重定向readOnly只类record 类类 (for database)recordset 类类集 (for databaserecursion ——类类recursive 类类refactoring 重构refer 引用、参考reference 引用、参考reflection 反射refresh data 刷新据数(for database)register 寄存器regular expression 正类表式达relational database 类系据类数remote 类程remote request 类程类求represent 表述~表类resolution 解析类程resolve 解析、类决result set 类果集 (for database)retrieve data 类索据数return 返回return type 返回类型return value 返回类revoke 撤类right outer join 右向外类接 (for database)robust 健壮robustness 健壮性roll back 回类 (for database)roll forward 前类 (for database)routine 例程row 行 (for database)rowset 行集 (for database)RPC (remote procedure call)RPC(类程类程类用)runtime 类行期、行期、类行类、行类运运rvalue 右类SSatisfiability 可类足性save 保存savepoint 保存点 (for database)SAX (Simple API for XML)scalable 可伸类的、可类展的schedule 类度scheduler 类度程序schema 模式、类目类构scope 作用域、生存空类screen 屏幕scroll bar类类条SDK (Software Development Kit)类件类类包sealed class 密封类search 类找Searching 类找semantics 类类sequential container序列式容器serial 串行serialization/serialize 序列化server 服类器、服类端session 会类 (for database)Set and String Problems 集合与串的类类Set Cover 集合覆盖Set Data Structures 集合Set Packing 集合配置setter 类类函数side effect 副作用signature 类名single-threaded 类类程slider滑类slot 槽SMTP (Simple Mail Transfer Protocol) 类类类件类类类类snapshot 截类屏snapshot 快照 (for database)SOAP (simple object access protocol) 类类类象类类类类software 类件Sorting 排序source code 源类、源代类specialization 特化specification 类范、类格splitter 切分口窗SQL (Structured Query Language) 类化类类类言构(for database)stack 类、堆类standard library 类准类standard template library 类准模板类stateless 无类的状statement 类句、明声static cursor 静类游类 (for database)static SQL statements 静类SQL 类句 (for database)status bar 状条类类stored procedure 存类类程 (for database)stream 流string 字符串String Matching 模式匹配stub 存根subobject子类象subquery 子类类 (for database)subscript operator 下类操作符support 支持suspend 挂起symbol 类号syntax 类法system databases 系类据类数(for database)system tables 系类表 (for database)Ttable 表 (for database)table-level constraint 表类类束 (for database)target 类的,目类task switch 工作切类TCP (Transport Control Protocol) 类类控制类类template 模板temporary object 类类类象temporary table 类类表 (for database)text 文本Text Compression 类类text file 文本文件thin client 瘦客类端third-party 第三方thread 类程thread-safe 类程安全的throw 抛出、引类(常指类出一个exception)trace 跟踪transaction 事类 (for database)transaction log 事类日志 (for database)transaction rollback 事类回类 (for database)traverse 遍类trigger 触类器 (for database)type 类型UUDDI(Universary Description, Discovery and Integration)类一描述、类类集成与UML (unified modeling language)类一建模类言unary function 类函参数unary operator 一元操作符unboxing 拆拆箱、箱类类underflow 下限溢位(相类于overflow)Unicode 类一字符类类类准~采用字类类字符类行类类双Union query 类合类类 (for database)UNIQUE constraints UNIQUE类束(for database)unique index 唯一索引 (for database)unmanaged code 非受控代类、非托管代类unmarshal 散集unqualified 未类限定的、未类修类的URI (Uniform Resource identifier) 类一类源类类符URL (Uniform Resource Locator) 类一类源定位器user 用类user interface 用类界面Vvalue types 类类型variable 类量vector 向量(一类容器~有点类似array)vendor 厂商viable 可行的video 类类view 类类 (for database)view 类类virtual function 虚数函virtual machine 虚类机virtual memory 虚内类类存WWeb Services web服类WHERE clause WHERE子句 (for database)wildcard characters 通配符字符(for database)wildcard search 通配符搜索 (for database)window 窗口window function 窗数口函window procedure 窗口类程Windows authentication Windows身类类份wizard 向类word 类类write enable 写启用 (for database)write-only 只写WSDL (Web Service Description Language)Web Service描述类言XXML (eXtensible Markup Language) 可类展类类类言XML Message Interface (XMI) XML消息接口XSD (XML Schema Definition) XML模式定类类言XSL (eXtensible Stylesheet Language) 可类展类式表类言XSLT (eXtensible Stylesheet Language Transformation)可类展类式表类言类类xxx based 基于xxx的xxx oriented 面向xxx。
design patterns
…….
Categories of Patterns(2)
Design patterns vary in granularity and level of
abstraction. By categorizing patterns, it becomes easier to recognize and learn them Categorized by purpose or scope Purpose reflects what the pattern does Scope specifies if the pattern applies to classes or objects
Purpose
Reflects what the pattern does Creational – facilitate object creation Structural -- deal with the composition of classes or objects Behavioral -- deal with the way objects interact and distribute responsibility
Structural Patterns (1)
Deal with the composition of classes or objects Adapter: Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces. Bridge: Decouple an abstraction from its implementation so that the two can vary independently. Composite: Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.
CORBA
摘
要 :由对象管理集屡( M ) O G 提出并采用 的公共对象请求代 理结构 ( O B , C R A)采用 面向对象方法刨 建在应
用程序之 间可重用与可共 享的软件组件 , 从而降低开发分 布式应用程序的复杂性及成奉 , 而作为 C R A基本 OB 服务之一的命 名服务, 其主要作用则是通过将一个或多个 逻辑 名字 与对象实现 相联 系 , 而为客户程 序和服 从
客J 程 序 、 对 象程 序
分 布式 运算 技 术 一 直 是计 算 机界 的热 门话
题 , 其 当今 It ntn re 的应用 飞速发 展 , 尤 n ae It nt r / e 企
业 迫切 需要 完整 的分布 式解 决方 案 , 应用 于 复杂 的异构 环境 , 实现不 同硬 件 平台 、 软件 系统 、 网络 环境 及数 据 库 系统 闻 的 有效 集 成 。传 统 的 面 向 对 象的思 想 已经难 以适 应 这 种分 布式 软件模 型 , 于是 组件 化程 序设计 思想 得到 了迅速 的发 展 。 按照组 件 化程序设 计 的思 想 , 复杂 的 应用 程
文 章 编 号 :10 07—1 X 20 )2— O4— 4 4 (020 08 0 4
v l2 o 2 o 4 N Ap .2 0 r 02
C R A命名 服 务 技 术 的应用研 究 O B
王 虎 ,黄宏毅
4]0 3 7) ( 0 ( 武汉理工大学 管理学院 , 湖北 武沮
罔 IC R A体 系结构罔 O B
3 C R A命名服务的基本原理与 实现 OB
在 C R A体 系 中 , 象命 名 服 务 是 对 象 请 OB 对 求中介 ( R ) 的对 象 找 到 其 他 对 象 的 基 本 机 OB 上 制。命名服 务 允 许 将 一个 或 多个 名 字 与 一 个 对 象标 记关联 起来 , 并将 这些 名字 存 储在 一 个名 字 空 间中 。它还 允 许 客户 程 序 通 过 命 名 服 务 利 用 指派 给对 象 的 名字 获 取该 对 象 的 引 用 。相 对 于
基于CORBA技术的多机数据传输实现说明书
International Conference on Mechatronics Engineering and Information Technology (ICMEIT 2016)Implementation of CORBA-based data transfer between multiplemachinesYongbin Bai, Yupeng Liu, Haiming Tong, Zhen Liu1China Satellite Maritime Tracking and Control Department, Jiangyin, 214431, ChinaKey words: Software Bus; CORBA;Data transmissionAbstract: In this paper, complete Virtual Radio Control System software bus, mainly multi-machine data exchange between modules of this key technology. Environmental monitoring and control for distributed systems, data exchange based on CORBA technology between multiple machine function modules.1. IntroductionSoftware bus is the foundation platform software system, provides for the development of the upper functional modules, and integrated software framework for interoperability. Soft bus need to solve two key technologies, multi-machine data exchange between functional modules and high-speed data transmission between the single function within the module. From this data the interactive aspects of the software bus to achieve.2. Overall hierarchical structureTransmission module is designed based on CORBA event service mechanism, and to improve and extend with the characteristics of measurement and control system, and improve performance of data transmission. The system uses hierarchical design ideas, designed primarily to three levels: level agents, agent management, event channel layer, as shown in Fig. 1.Fig.1 Hierarchical structure of the systemAs shown in Fig.1, Agent layer includes agents and consumers by providing proxy; proxy management including supplier management proxy agent and consumer management.The event service data transmission, Supplier is not directly registered on the event channel, but with the proxy layer Proxy Consumer connected. Proxy Consumer and provider in the same process space, is to simplify the event channel other consumers. Similarly, Consumer Proxy Supplier is directly connected. Visible, agents and consumers to provide a layer of soft data bus and the interactive interface, the system is the connection layer and external communications.Supplier Admin and Consumer Admin role in the diagram is to create separate providers and consumers proxy agent. A provider manager / consumer manager can create more than one proxy provider / consumer agent.Data generated through the algorithm module is transferred to the consumer proxy software bus, the bus and transfer agent by the provider to the consumer algorithm module need this data, thereby completing the data communication between the two modules.3. Construction of a communication linkConstruction of communication links including the establishment and disconnection of the communication link.Providers and consumers for data communication, we must first establish a communication link. Process established communication link includes an acquisition event channel to establish links and link consumers end provider side.a. Get event channelThis article uses CORBA Naming Service Event Channel Obtains object references. First, the service name to the event, and then naming services Naming Context interface service resolving(1) Event Channel to create a Supplier Admin:RtecEventChannelAdmin:: Supplier Admin varsupplier admin = EventChannel -> for_suppliers ();(2) Call provider operations manager for the end consumer to create a Proxy Consumer locally: consumer_proxy = supplier_admin-> obtain_push_consumer ();(3) Providers themselves connected to the Proxy Consumer, told the Event Channel Register: consumer_proxy-> connect_push_supplier (supplier, get_SupplierQoS ());This step has two input parameters, the first parameter indicates the provider to connect to a communication link; second parameter is the type of data provider published not qualify for this type of data communication link cannot be sent.c. Establishing a communications link on the consumer side.(1) Event Channel Manager to create a consumer:Rtec EventChannel Admin:: Consumer Admin varconsumer_admin = EventChannel-> for_consumers ();(2) Calling consumers manage the operation of the peer provider to create a local Proxy Supplier:supplier_proxy = consumer_admin-> obtain_push_supplier ();(3) Consumers themselves connected with the Proxy Supplier, represents registered to the same event channel:supplier_proxy-> connect_push_consumer (consumer, get_ConsumerQoS);This step has two input parameters, the first parameter represents the communications link to connect to the consumer; the second argument is the data type of consumer subscriptions, communications link will only meet this type of data is sent to the consumer by module.This completes the connection data communication links between providers and consumers, as shown in Fig.2.Fig.2 Communication link connection diagramData provider or consumer can take the initiative to disconnect the data communications link. (1) Provider sideAfter the completion of the transmission data provider, consumers can call the operating agent connected thereto on:// Do not send any more datas...consumer_proxy->disconnect_push_consumer ( )(2) The consumer sideRecipient of the data relative to disconnect, you can call the provider proxy operator connected thereto on:// Do not receive any more datas...supplier_proxy_->disconnect_push_supplier ( )4. Data transmission process.Software bus data transmission system in accordance with the "publish and subscribe" scheduling mode, the data from the module provider to subscribe communication link transmission of this data by the consumer module. Unified communications link management providers and consumers, and complete two matches by filtration mechanism to publish and subscribe to the same data source providers and consumers to link to complete the transfer of data. Definition of providers and consumers is relative, even if the data is sent after receiving consumer data to other modules for further processing, it became provider.Provider side to achieve the data transmission requires the following steps:a. Soft bus landing.Soft landing bus primarily for initialization software bus, including the provider side ORB initialization, create POA adapter, and open the naming service.b. Publish data type.According to "publish - subscribe" scheduling mechanism, the provider-side before sending the data to published data type of the output data, the communication link according to data released by the type of data to be filtered, meet the filter criteria to be able to send data to the communication link . Published data type is designed as a four-byte string.c. Connecting a communication link.Communication link is a major part of the software bus, according to the event service mechanism, establish a data transfer between the provider and the consumer channel, to complete the transfer of data.d. Produce and package data.Data provided by module algorithm processing internally generated data to the output. Before being sent to software bus, in order to facilitate the transmission and consumer software bus terminal receives, you first need to package the data format converted into soft bus specifies a unified data structure. According to the unified data structure designed in this paper, data formats, including header and data body, described later in detail. Here is the process of packaging the data:(1) Establishment of a data packet.RtecEventComm:: Event_Set event (1); event.length (1); // define the lengthRtecEventComm:: Event & e = event [0];(2) Initialization header, specify the data type.Event [0] .header. Type = "BPSK"(3) Import the data into data volume.Event [0] .data.any value << = dataProvider-side data transfer program flow chart shown in Fig.3.Fig.3 Provider-side program flow charte. Sending data.This design task scheduling model is based on data flow-driven way to pass data, the data source is the A/D acquisition card periodically sampled. Event Service using Push delivery mode, each time the provider side to produce new data by calling the Push) interface to take the initiative to send (to the soft data bus. Soft bus to the need for this data and then the consumer side through the data channel data.5. SummaryPaper completed the virtual radio and Control System software bus is mainly based on CORBA technology to achieve multi-machine data exchange between functional modules.References[1] Command Ranging & Telemetry Cortex CRT-XL User’s Manual [M]. 2013,12:3-12.[2] V. Bose, M.Ismert, M.Wellborn. Virtual radios [J]. IEEE Journal on Selected Areas inCommunications, 2009, 17(4):591-602.[3] T. Grydeland,F. D. Lind,P. J. Erickson,J. M. Holt. Software Radar Signal Processing[J].European Geosciences Union 2014.[4] J. Schamus, J. B. Y. Tsui, D. M. Lin. Real-time software GPS receiver [C]. ION GPS 2012Proceedings, 2012: 24-27.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Proceedings of MASPLAS'02The Mid-Atlantic Student Workshop on Programming Languages and SystemsPace University, April 19, 2002CORBA Design Patterns In Distributed SystemsNothmar NorielDepartment of Computer Science and Information Systems, PACE UniversityAbstractDesign Patterns in CORBA are effective reusable solutions to many problems that result in applying CORBA for the interoperability of applications in a heterogeneous system. This paper will discuss an overview of some Design Patterns commonly used in applying CORBA Architecture to implement Distributed Systems.This paper will assume that the reader has some knowledge of distributed systems.1 IntroductionThe Computer Revolution of the late 1900s, technological advances of computer systems have resulted in the evolution of many different competing computer architectures. These different computer systems have produced scores of computer applications developed to work specifically for that specific operating system. In today’s global economy, interaction of computer applications in a Distributed System is of high value and importance. Allowing one computer application to update information in another application located in a different computer system is just one example of the need for a Distributed system that manages these resources.Distributed Systems is a network of various heterogeneous computers and processors. The difference of Distributed systems and Network systems are that Distributed Systems allow a uniform view of naming schemes, file systems, and access to resources, while Network systems does not hide the fact that system resources that are used belong to another computer system.The Common Object Request Broker Architecture (CORBA) is an effective resource in allowing interoperability of heterogeneous systems in a Distributed System. CORBA is emerging as a standard for distributed computing and has a lot of advantages that make use of distributed computing.Design Patterns are reusable solutions that assist in more effective development of computer systems. Design Patterns are collected solutions to recurring problems that can be resolved in a similar manner with a possible similar solution. Identification of these type of recurring problems is critical in applying Design Patterns to resolve them. This paper will present an overview of CORBA Architecture, an overview Design Patterns and then discuss some interesting CORBA Design Patterns.2 Distributed Systems OverviewDistributed systems are groups of computers and processors connected by a network. Distributed systems allow a collection of computers to provide a similar global view of shared resources.Distributed Systems vs. Network systemsThe difference of Distributed systems and network systems is that network systems do not attempt to provide a consistent global view of shared resources. Distributed systems are tightly coupled systems and network systems are not tightly coupled. Distributed systems are tightly coupled because distributed systems have many rules that must be followed on order to maintain integrity.Distributed Systems ModelsDistributed Systems have two primary models: Client Server model and Peer-to-peer model. The Client Server model has a client node making a request and a Server node receives the request and processes the request for the clients. In a peer-to-peer model, every computer in the distributed system can process the request of another computer. TransparencyDistributed systems provide various levels of transparencies to each node in the network.A distributed system provides name transparency, location transparency, access transparency, migration transparency, replication transparency, concurrent and parallelism transparency and failure transparency. Transparency mainly means that when a user requests a service, the user will not be able to distinguish whether the shared resource resides on his current PC, or from another PC system in the distributed system.3 CORBA OverviewCORBA was designed by the Object Management Group (OMG) to primarily provide an object-oriented interoperability of applications in heterogeneous distributed system. The use of Object-Oriented design, analysis, and development using CORBA allows greater reusability across systems. Advantages of Object-Oriented features such as inheritance, encapsulation, redefinition and dynamic binding are implemented in CORBA. Object-oriented features of CORBA objects are also effectively easier to extend and modify without affecting other applications and objects.CORBA encapsulates applications and provides a common infrastructure for communication using the CORBA ORB and is used to receive requests and locate server objects.CORBA encourages the development of open applications, applications that can be integrated to larger systems.CORBA advantages also include: location transparency, programming language transparency, Operating System transparency and Computer Hardware transparency. Location transparencyCORBA Objects can be located and accessed in the client or reside on a remote server. The location of the CORBA Objects should not affect its implementation ability or not system performance.Programming Language transparencyCORBA supports many different languages including Java, C/C++, Ada 95, Smalltalk and COBOL.Operating System transparencyCORBA supports many O/S platforms including Microsoft Windows families:NT/2000/XP, various UNIX flavors, Mainframe O/S.Computer Hardware transparencyCORBA objects can be used on different Hardware configurations and Architectures CORBA ArchitectureCORBA architecture can be categorized into four software interfaces: CORBA Object Request Broker (ORB), CORBAservices, CORBAfacilities and CORBAdomains.Figure 1: CORBA ArchitectureCORBA Object Request Broker (ORB)The heart of CORBA is the Object Request Brokers (ORB). CORBA ORB is interfaces that allow a client to access distributed objects residing on servers.A request by a client for an object goes to the ORB. The ORB locates the requested object and identifies the server that hosts the requested object. The ORB translates the client and server calls. The ORB then maps the Interface Definition Language (IDL) to the language to which the object is implemented.CORBAdomainsCORBA domains are vertical markets, including Brokerage, Financial and Pharmaceutical industries where CORBA is appliedCORBAfacilitiesCORBA Facilities are horizontal interfaces focused on Application interoperability in distributed systemsCORBA ServicesCORBA Services include object life cycles, event notification, and distributed system transactionsCORBA IDLServers use the CORBA Interface Definition Language (IDL) as a generic interface to Objects that it hosts. The interface includes implementation information such as attribute and operation signatures.CORBA Object AdapterThe CORBA Object adapter is mainly responsible for creation and translation of CORBA object references, activation and deactivation of Object implementations and mapping object references with object implementations.4 Design Patterns OverviewDesign Patterns are reusable solutions to recurring design problems. Design Patterns can be thought of as a solutions template to a pattern problem. The resurgence of Design Patterns can be attributed to the Gang of Four: Gamma, Helm, Johnson and Vlissades. These four authors authored the industry popular book: Design Patterns: Elements of Reusable Object-Oriented Software.Patterns can be described using the following information: Pattern Name, Pattern Intent, Solution, Solution Benefits and Consequences, References to other Design Patterns, Examples, ForcesPattern NameA Unique Name that identifies the PatternPattern IntentThe purpose of the Design PatternSolutionDescription of how the Design Pattern solves the problemSolution Benefits and ConsequencesDescribes the Benefits and Consequences of using the Design PatternReferences to other Design Patterns and SolutionsDescribes other Similar Design Patterns and SolutionsExamplesGives examples of the Design Pattern solutionForcesForces are the motivating factors that have a need to be resolved. Forces include the environment and information of the problem scope. Design Patterns attempt to provide solutions to these forces.Some Essential Design Patterns that I will discuss include the Singleton Pattern, Façade Design Pattern, Adapter Design Pattern and Abstract Factory Pattern. Other Essential Design Patterns, that I will not discuss in this research paper are: MVC Pattern, Bridge Pattern, Strategy Pattern, Observer Pattern, Template Method Pattern.Singleton PatternThe Singleton Pattern ensures that an object is only instantiated once. A method is invoked, this method checks if the specified object has already been created. If the object has only been created, the reference to this object is returned by the method. If the object has not yet been instantiated, then the object is created and a reference to the objects is returned by the method.Singleton Pattern is for client objects that need to call the same object, and not want to create another object.Figure 2: Singleton PatternFaçade Design PatternThe Façade Design Pattern provides a new interface in front of the applicable system. The Façade Design Pattern can be used to simplify a complex interface. The Façade encapsulates the original system and provides its own interface. Benefits include: The Façade can include new functionality not previously offered by the original system and consequences are that some of the original systems functionality may be lost.Figure 3: Façade Design PatternAdapter Design PatternThe Adapter Design Patterns replicates the plug adapter, in that it converts the current systems interface into another interface by wrapping the entire interface and creating the desired new interface. The benefits of this pattern are that it allows objects to be encapsulated by a new class structure and creates new interfaces that match the class that invokes it.Figure 4: Adapter Design PatternAbstract Factory PatternThe Abstract Factory Pattern is a useful pattern that collectively creates families of objects. The Abstract Factory manages the rules in instantiating these objects. Client objects invoke factory objects to instantiate the required server objects. When the factory object is invoked, an Abstract class is created. The Abstract class contains an interface that provides method invocation for the objects that are instantiated. The consequence of this pattern is that rules on which objects to use are isolated from the logic on how to use the objects. Modern compiler designs make use of the Abstract Factory Pattern to instantiate its objects.Figure 5: Factory Design Pattern5 CORBA Design Patterns in Distributed SystemsCORBA Design Patterns are Design Patterns that resolve recurring problems in CORBA implementations in Distributed Systems. CORBA Distributed systems provide the following services: Partial Processing, Concurrency control and Mutual Exclusion. Design Patterns discussed here replicate many existing features implemented by Distributed Systems. CORBA facilitates distributed systems.Parallel SystemsParallel Systems are systems with multiple processors located within the same computer. Parallel systems can perform parallel processing of processes and jobs by utilizing different processors that are connection by various network architectures including Interconnection Network, Bus Network, Crossbar network, Hypercube network and Shuffle-Exchange Interconnection network.Concurrency ControlConcurrency control is an essential operating system concept that is crucial also to Distributed systems. Concurrency control manages processes from accessing a shared resource and also controls efficient processing of distributed and parallel systems. Mutual ExclusionMutual Exclusion prevents multiple processes from accessing shared resources at the same time. The shared resource that is currently being accessed is referred as the critical region.Design Patterns for CORBA in Distributed Systems that I will discuss are: CORBA ORB, Partial Processing, Lock, Replication, Naming Service, Load Balancing and Concurrency Control.Design Pattern: CORBA Object Request Broker (ORB)The Object Request Broker is an enterprise-wide CORBA Design Pattern that simplifies the overall Distributed System. The ORB decreases the complexity of a system by providing client invocation of server objects that provide transparency of low-level implementations. The ORB acts as the middleman (middleware) for communication of the client and server.Advantages of the CORBA ORBORB relieves the application from performing infrastructure functions such as data marshalling, server location/selection/activation. Client requests are provided with the information requested without regard to how the information was processed.Applications vendor’s interfaces to the CORBA standard may result in dependency to CORBA implementations, which is against the low coupling goal of object-oriented systemsDesign Pattern: Partial ProcessingPartial Processing increases performance by reducing wait time on object creation by factory objects. The server creates minimal attributes for the object, including object reference and minimal data to allow the creation of the object after invoking the object with the object reference. Performance management if the motivating forces for partial processing.Advantages of Partial ProcessingPartial processing increases parallel processing in distributed systems. Partial processing reduces processing time for jobs waiting for results.Disadvantages of Partial ProcessingMajor consequence of partial processing is there is more complex maintenance in implementing Partial ProcessingDesign Pattern: LockLock is used to prevent multiple processes from accessing a shared resource. The Lock can be either locked or unlocked. Lock manages concurrency control and mutual exclusion to shared resources. In order for a process to use a shared resource, the shared resource should be in the unlocked state.Advantages of LockLock manages concurrency control in distributed systems, protecting shared resources and allows parallel processingDisadvantages of LockLock can reduce system performance, especially for a critical region that is accessed repeatedly.Design Pattern: Instance ReferenceThe Instance Reference Design Pattern creates a mapping of an object interface with the requested object instance. An object can be referenced by an identifier reference data specified by the object implementation that is created prior to the creation of the object reference. An operation that requests the use of an object instance calls this object reference.Advantages of Instance ReferenceThis Design Pattern increases performance by creating multiple object instances for each server process. Object Reference allows the mapping to an object reference.Implementation of Instance Reference increases code complexity in development. Instant References may require specific standard implementations in order to reference objectsDesign Pattern: ReplicationReplication Design Pattern is popular in replicating data objects and information to various locations. Motivating forces for the Replication Pattern is the need to provide backup of data objects and information.Advantages of ReplicationReplication increases Performance because it can create multiple objects to handle processing and sharing of data from many locations of a distributed system. Replications are cheaper than copying data.Disadvantages of ReplicationReplication can become costly for resources and can become complex by trying to coordinate the consistency of data in various locations.Figure 6: Replication Design PatternDesign Pattern: Naming ServiceNaming is a repository that store name object references. The Naming service is used to located objects in CORBA. The Naming service can be used to retrieve the object reference. Operations of the service can be invoked, through the object reference. Naming supports two basic operations: store (bind) and retrieve (resolve). Services advertise their availability to the Naming Service by their name object references. Advantages of Naming ServiceNaming supports distributed environments. Naming Service is a standard service and implementation that is platform independent.Disadvantages of Naming ServiceNaming Services is not available for all implementations, but can be easily implemented if requiredLoad Balancing Design PatternThis Pattern increases the performance of the Distributed System by spreading the work of a server to other servers in the Distributed Systems. Load balancing’s main interest is to get the best results in conjunction with effectively utilizing system resources. To perform Load balancing, processes are migrated to available servers. Process will be completely migrated as a whole to another server if the process is indivisible. If the process is divisible, the process can be broken up and parts of the process are migrated. If the process is divisible, there must be effective management in achieving completion of the divisible of the process.Design Pattern: Object WrapperThe Object Wrapper pattern is an abstraction that gives an object-oriented interface to applications that lack an OMG IDL interface. The Object Wrapper interface that is created for the application must expose only the required attributes and operations that are required by CORBA clients and services.Advantages of Object WrapperObject Wrappers are especially useful for Legacy applications that lack Object-oriented capabilities and an OMG IDL interface. Object Wrappers make use of object-oriented features without changing the underlying application.Disadvantages of Object WrapperTo implement an Object Wrapper for an application, thorough knowledge is required of the application to be interfaced. The operations of the application are then mapped to the object wrapper. Also, limitations of the legacy systems may be inherited when implementing object wrappers.Figure 7: Object Wrapper6 ConclusionsCORBA Design Patterns provides: [1] Performance Increase, [2] Complexity Simplifications. CORBA provides location transparency, programming language transparency, Operating System transparency and Computer Hardware transparency.Design Patterns are reusable solutions to recurring design problems. Design Patterns can be thought of as a solutions template to a pattern problem.CORBA Design Patterns include Parallel Processing, Lock, Replication, Load Balancing, Object Reference, ORB.In this paper, I provided an overview of various CORBA Design Pattern as well as give an overview of CORBA Architecture and Design Patterns.References1. T. Mowbray, R Malveau, Corba Design Patterns, John Wiley and Sons, Inc, Canada,19972. D. Galli, Distributed Operating Systems, Prentice Hall, NJ, 20003. A. Shalloway, J. Trott, Design Patterns Explained, Addison-Wesley, NJ, June 20014. P. Lewis, A. Bernstrin, M. Kifer, Databases and Transaction Processing, Addison-Wesley, 20025. R. Pressman, Software Engineering, A Practitioner’s approach, McGraw Hill, NY,20016. S. Baker, Corba Distributed Objects using Orbix, Addison-Wesley, ACM, 199717.11。