在51CTO那上软考课程可靠吗?

10 构件平台与典型架构

几乎没有构件能独立的部署,它们大多数依赖于特定的基础设施平台。由于行业高度竞争,公用构建基础设施目前只有CORBA+Java和Microsoft COM+CLR两大阵营。

尽管只有两大阵营,SOA技术也飞速发展,不同平台构件连接能力有了一定改善,但在

设计、管理、规范等方面存在很大差异。因此,我们有必要了解这些平台特点和差异,为应用开发选择合适的构件开发平台。

成立于1989年的对象管理组(OMG)是目前计算工业中**的组织。作为一个非营利性组织,OMG旨在通过规范化对象开放市场的所有层次上的互操作性。至2002年有近800成员加入OMG。

CORBA的主要目标就是使不同语言、不同实现和不同平台间能进行交互。因此,OMG从没有停步在“二进制”标准上(可配置、可执行级的标准),而是**每个细节都被标准化,使其能顾及不同的实现及 CORBA兼容不同产品的独立供应商增值的需要。这一开放式方法的不利一面就是CORBA兼容产品不能在二进制级进行有效的互操作,只能以较高的代价在高层协议上协作。OMG的跨ORB(对象请求代理)协议--IIOP( Internet InterORB Protocol)互操作协议,在1995年7月的CORBA2.0中被规范化。与ORB的互操作兼容则必须支持IOP。在1996年7月的CORBA2.0更新版本中,加入了一条关于相互作用的协议,该协议明确了基于CORBA的系统与基于微软COM系统之间的互操作细节。

CORBA包括三个基本部分:一套调用接口、对象请求代理(ORB)和一套对象适配器。面向对象操作的调用实现后期绑定。对象引用所指代的对象实现决定了被调用方法的**终实现。调用接口支持不同级别的后期绑定,同时编排调用参数,使ORB核心能定位接收对象,调用方法,以及传递参数。在接收端,一个对象适配器还原参数,调用接收对象相应的方法。图10-1简单地描述了基本的 CORBA结构。

10.1.2 公共对象服务规范

现有的CORBA Service包含16种对象服务(CORBA服务),其中的通告服务是电信领域设施正式的组成部分。这些服务划分为两大类:一类服务应用于企业计算系统。

这些系统往往将CORBA对象视为模块,并视CORBA为易用的通信中间件,此时的CORBA服务大多用来支持大规模的操作:另一类服务则应用于细粒度的对象操作,但目前这些服务的实用价值较差。CORBA3.0中的持久状态服务( Persistent State Service,PSS)可能是一个例外,它替代了 CORBA2.0中的持久对象服务(POS)。PSS是 CORBA构件模型的三个主要支撑服务之一,另两个是事务服务和通告服务。值得注意的是,大型基于 CORBA系统往往只使用少量的 CORBA服务,包括名字服务、安全服务、事务服务和交易服务。现有大部分ORB产品并不试图支持全部的 CORBA服务也说明了这一点。

1.支持企业分布式计算的服务

许多大型企业系统只是将 CORBA作为对象总线,依靠ORB与其他各种各样的系统进行互操作。名字服务是关键服务之一。

1)命名服务,交易器服务

每个对象内部都有**的标志符。命名服务则允许任意地给对象赋予一个名字,这个名字在其所属的命名语境中是**的。而命名语境所形成的层次结构,使得所有的名字形成名字树。

交易器服务允许给对象赋予一个复杂的描述,从而允许客户基于该描述来定位所需的对象。交易器通过交易语境来组织对象。客户则在指定的交易语境中根据对象描述的部分内容或关键字来搜寻对象,而搜寻结果往往是一个包含满足査询条件的一组对象的列表。OMG交易器服务规范同时被ISO( ISO/IEC13235-1)和ITU(ITU-T推荐X.950)所采用。

2)事件服务,通告服务

事件服务允许定义那些从事件生产者被发送到事件消费者的事件对象。由于信息只能从生产者流向消费者,因而事件对象是不变的。事件必须通过事件通道传播,从而松散了生产者和消费者之间的耦合关系。事件可以具有类型(使用 OMG IDL定义),而通道可以根据类型过滤事件。

事件通道支持“推”和“拉”两种方式的事件通告模型。在“推”模型中,事件生产者调用事件通道的“推”方法将事件上传给事件通道,事件通道进而调用所有注册的事件消费者的“推”方法将事件传给消费者。在“拉”模型中,事件消费者调用事件通道的“拉”方法,这将导致事件通道调用所有注册的事件生产者的“拉”方法,此时获得的新事件将返回给消费者。

1998年,通告服务为事件服务増加了几个重要的特征一一服务质量( Quality of Service,QoS)规范和管理;标准的类型化和结构化事件;基于类型和QoS的动态事件过滤:作用于资源、通道、一组消费者或单个消费者的事件过滤:针对资源、通道和客户的事件发现。值得注意的是,通告服务本身并不是 CORBA服务,而是电信领域工作组( TelDTF)提交的 CORBA设施。

对象事务服务( Object Transaction Service,OTS)是建立分布式应用**重要的服务之一。OMG于1994年12月制定的OTS规范在大多数的ORB产品及若干J2EE服务器中得到支持。OTS实现必须支持平坦事务,而嵌套事务是可选的。遵循X/Open分布事务处理标准的其他事务服务可以与OTS集成。同样,多个异构ORB提供的事务也可集成。

在基于构件的系统中,嵌套事务似乎不可避免。因为一个构件的实现可能创建一个覆盖一系列操作的事务闭包,而这些事务属性无须在构件接口中声明。这种独立扩展性原则需要嵌套事务的支持。作为**的OTS实现必须支持的事务类型,平坦事务在构件系统中的价值有限。实际上,现有的主流事务中间件也不支持嵌套事务,这是它们共同的缺点。

OTS自动维护当前的事务语境,该语境将随请求在ORB系统中传递,也可传递给其他的非 CORBA的事务系统。对于 CORBA对象,事务语境可以传递给任何实现了Transactional Object的对象。当前的事务语境可从ORB获得,因此必须**随时可用。事务操作,如begin,commit,rollback都在当前的语境中定义。

所有希望在一次事务中执行修改,或者需要执行事务控制的对象都必须向OTS协调器注册。该协调器可从当前语境中获得。一个资源可以指明它是否支持嵌套事务。任何资源都必须实现 Resource接口,从而允许协调器执行两段提交协议(众所周知,两段提交协议在完全分布的环境下可能发生死锁,这只能通过特定的广播协议避免;三段提交协议能够避免死锁问题( Mullender,1993),但开销太大。因此,OTS规定协调器在逻辑上必须是集中式的)。

OTS的设计目标之一是希望将事务控制作为一个独立的服务,但目前更普遍的是将事务和其他服务集成到应用服务器提供的语境或容器中。

可靠的安全服务对于一个跨越多个相互信赖的组织的分布系统极为重要。安全服务必须得到普及。所有可互操作的ORB或可共同工作的系统必须协作,而这要求为所有的参与者建立统一的安全策略。

CORBA安全规范定义了一系列的服务,包括认证、安全通信、证书委托(也称为“替身”)及防抵赖等。目前**有少数产品完全支持该规范,如BEA的 WebLogic和IBM的 WebSphere。很多产品****依赖Netscape的安全套接字( Secure Socket Layer,SSL)实施安全保障,尤其采用独立ORB,而不是完全集成的应用服务器时。因为利用SSL可以很方便地实现简单的认证及安全的通信,但不能支持类似委托和防抵赖等较**的安全机制。

5)支持细粒度对象互操作的服务

尽管有些服务,包括收集、外部化和査询服务,仍未被任何产品实现(原因很多,如查询服务的规范过于松散,收集服务的某些假设不切实际,本节仍将介绍余下的服务,以便读者对OMA涉及的对象服务有一个**的认识。

该服务支持对资源进行加锁和解锁。锁必须依赖于事务的语境或其他语境才能获得。依赖事务语境创建的锁将作为事务回滚的部分被释放。锁具有不同的模式,如读锁、写锁、升级锁。其中,读锁允许多个客户同时执行读操作;而写锁**只有一个客户能执行写操作;:升级锁是可以升级为写锁的读锁,支持互斥的读操作。锁有多个锁集合。每个受保护的资源都拥有一个锁集合,该集合决定了可用的锁的种类及数量。一个锁集合的工厂接口支持创建新的锁集合。锁集合不是事务型就是非事务型的,并可与其他锁集合建立关联。锁协调器可以释放指定锁集合中所有的锁。

组装构件的过程中需要获取所有非免费构件的使用许可。许可服务支持多种类型的许可模式。该服务定义了两个接口(抽象)——许可服务管理器和特定于厂商的许可服务。如果一个对象与一个许可协议绑定,那么它可以通过许可服务管理器检查其使用是否合法。

这类服务支持创建、复制、移动和删除 CORBA对象及其相关的对象组。下面将介绍如何利用关系服务提供的包含与引用关系来处理对象组。包含关系支持嵌套复制,即所有被包含的对象都会被复制。为了支持对象创建,生命周期服务支持注册与获取工厂对象。一旦获得所需的工厂对象,就能够用它来创建新的对象。

生命周期服务允许删除对象或对象组,但并不提示何时销毁该对象。这意味着分布式内存管理需要高层应用的参与,这被认为是 CORBA较为明显的缺点。相比较而言,DCOM支持分布引用的计数,Java和CLR甚至支持基于租借的远程引用的分布式垃圾收集。

关系服务指允许定义和维护对象之间的关系。不依赖语言级的指针或引用,该服务引入了一种关系模型,以支持在不影响相关对象的情况下创建对象间的关系。但是,关系服务基本上没有实际应用,甚至没有产品实现,极有可能被基于CCM的业务对象关系所取代。

持久性是指对象在其创建程序终止后仍然存活。为此,CORBA2.0制定了持久对象服务(POS),用来支持 CORBA对象的持久性。尽管在1994年年初就被OMG标准化为关键服务,但直到1996年年中才出现一个beta版的实现。些报告甚至指出该规范及其与其他对象服务的互操作存在严重的技术问题。另外,POS没有解决“正确性”的问题,尤其是它把存储的申请交给应用代码处理。POS规范**终在 CORBA3.0版本中被新的持久状态服务(PSS)所代替。

这项服务支持对象网和对象流之间的双向映射。对象网外部化后再内部化意味着创建该对象网的副本。外部化服务并不**引用的完整性,**保留同时外部化的对象之间的引用。外部化使得对象网的值复制成为可能。而外部化对象所需的其他对象的引用可保存为ORB为对象引用提供的字符串标志。

对象必须实现Streamable接口オ能被外部化。为了外部化一个 Streamable对象,必须首先调用实现了Stream接口的某个对象的外部化方法,该方法将调用流对象的externalize_to_stream方法,并传递一个实现StreamIO接口的对象。**,流对象将任何OMG IDL定义的数据类型或实现写入streamIO对象。流对象也可以外部化由关系服务定义的整个对象图表。

这种服务允许将任意的属性与对象关联起来,被关联对象必须实现 PropertySet接口。属性可以独立地或成组地添加、获取和删除。如果一个对象还实现了PropertySetDef接口,则可按以下4种模式中的任一种进一步控制属性,这4种模式是:标准属性(可以修改和删除)、只读属性(能被删除但是不能修改)、强制标准属性(能被修改但不能删除)和强制只读属性。

属性服务并不说明属性的语义和内容。一般而言,对于程序有用的属性都需要由程序显式地赋予相应的信息。作为一个重要的例子,系统管理工具被赋予“粘贴”特性来有效地跟踪对象。

该服务用来依靠属性定位对象。该服务类似于对象交易服务,但该服务定位对象实例而不是定位服务器。査询使用的属性由对象公布或者允许通过操作获得。有两种査询语言可供选择,面向对象数据库管理组的ODMG-93对象询语言( Object Query Language,OQL)和扩展的SQL。一个更为普遍的查询语言正在建立。

查询服务定义了其自身的一个简单的集合服务——是通用集合服务的子集。査询结果集返回给用户时会用到集合。这些简单的集合提供了有序集的语义,包括增加或删除元素和元素集的操作。服务提供了一个 Iterator接口来支持对集合元素的遍历。

对象集合服务支持各种抽象拓扑集合,例如,包、集合、队列、表、树、角色模型是Smalltalk集合类库( Goldberg与 Robson,1983,1989)。CORBA的集合服务(基于CORBA对象的相对重权模型)是否可与本地的对象集合库竞争是一个有争议的问题,另外,对象库可能更适于在ORB间传输各种形态与属性的集合。

这一服务处理拥有众多异步时钟的分布式系统固有的误差问题。许多应用程序中,用实时信息将内部事件(如创建文件)与外部通用时间建立关联。一个时间服务必须在允许的误差范围内实现这种关联,并避免其他非因果的关联。例如,假设一个新对象的产生是对另一个对象触发某事件的反应,那么,如果给前一个对象赋予“生成日期”的时间戳,而该时间却先于后一个对象产生的时刻,此时就会产生一个非因果的时间信息一一这恰恰是非因果时间服务的典型结果。

 CORBA3.0是 CORBA标准中**的一个。尽管2002年6月左右该规范**部分仍未定稿,但针对 CORBA2.0**的改进已经获得了显著的进展。除了对象服务的**修订,**主要的成就恐怕就是新的 CORBA构件模型(CCM)一尽管**终的CCM规范的发布仍未定案。(有时,CCM也被称做 CORBA构件。)

CORBA对象适配器主要的作用就是在一个ORB和真正接收调用并且返回结果的对象实现之间进行协调。目前采用的对象适配器的规范针对可移植的对象适配器,它代替了已过时的基本对象适配器。目前还没有其他的对象适配器规范。这种可移植对象适配器的一个实例为一组对象接收请求。任何ORB支持的服务器进程至少有一个POA(Portable Object Adapter)的实例,当然,该进程中的每个服务对象都可能有一个POA实例。

一个POA实例通过将收到的请求传递给一个“服务体”来对其进行处理。“服务体”是 CORBA对象的实现。图10-2给出了一个典型的工具使用场景,从一个IDL定义开始,客户端的指代,服务器端的POA骨架,服务器端的“服务体”模板被一一建立。**可以通过完成该模板来补充实现细节。CORBA对象不强制使用面向对象语言,因而“服务体”也不一定为“类”。如果使用了面向对象语言,那么“服务体”就是类的实例。

一个CCM应用程序是CCM构件的一个组装,其中构件可以是客户创建的或者是现成的、企业内部的或者是后来获得的。企业级JavaBean构件和CCM构件能够在一个应用程序中集成在一起。单个构件通过构件包发布,该构件包含有一个描述其内容的XML文档,还可以包含支持不同平台的二进制代码。CCM的装配包含一个描述它们所引用的构件包信息的XML文档,以及它们的部署配置。

Language,构件实现描述语言)输入并产生实现代码的生成器。另外,每个构件实例都放在一个CCM容器里。构件通过容器的接口与POA、事务、安全、持久化及通知服务相作用。一个容器同样也有插座接口来接收对构件实例的回调。

CORBA设施可以分为水平的(普遍的)和垂直的(特定领域的)支持。不管是哪种支持,每个 CORBA设施都定义了一个特定的构件框架,从而能够集成构件。**初,OMG试图标准化4个领域的水平设施:用户界面、信息管理、系统管理和任务管理。

但是这些努力都失败了,而且水平设施在今天的OMA( Open Mobile Architecture)中的影响力很弱,之所以保留下来,是因为垂直设施的工作很可能产生并不特定于单个领域的设施。水平设施的例子,或者已经被标准化或者正在考虑之中,包括全球服务、移动代理、时间和打印设施。

领域任务组定义了垂直设施。在2002年年初,有10个这样的任务组:商业企业集成命令控制、计算机通信和集成、财政、卫生保健、生命科学研究、制造业、空间、电信、运输和共用设施建设。

为了能让更多人享受软考的政策福利和现实功利,51CTO旗下软考教研团队联合薛大龙老师,认真严肃向大家推出软考3日直播特训营

扫码下方二维码入群0元领取6G的软考6资料包+3天软考特训营名额

扫面下方二维码入群后按照老师的要求操作即可领取。

51CTO软考三天直播训练营

这门课恰好能够为你答疑解惑,助你快速**并**软考知识要点,获得技能提升。为自己的职业发展规划制定一个更明确的规划,迈出升职加薪的**步。

心急的小伙伴可直接扫码解锁。

课程涵盖:高分知识点梳理,案例分析解题方法、论文通用模板等。我们力争通过3天的直播课程,助力您快速**并一次性**软考!

如果你对这门课程还不太了解的话,就跟我一起往下看吧。

我们的主讲老师薛大龙老师,深耕软考教育培训20余年,主编出版软考辅导教材60余本,非常熟悉软考题目的要求、难度、以及判卷标准。

完成本体验营3天所有课程及作业考核,学员将**信息系统项目管理师、系统集成项目管理工程师的高频考点及答题技巧

①**信息系统项目管理师知识体系

②**考试高分占比知识领域;

③**考试考情前沿分析

④**论文与案例超干货答题方法

⑤**名师对真题的独到解析

报名前,你还需要知道的3件事

直播课程+社群学习活动

付费后根据提示添加学姐为好友,开营前学姐会统一拉人入群。

本课程为-51CTO学堂-软考培训班体验课-信息安全工程师

【发福利】51CTO学堂薛大龙软考培训班免费体验啦!

7月25日起报名学员可以享受10天冲刺学习计划~让你免费体验价值699元的线上培训课程,体验我们的服务与流程,

包含:学习视频+作业辅导+阶段测验+直播答疑!

第一波学习报名限额30名,可报名科目:信息系统项目管理师/系统集成项目管理工程师/信息安全工程师/信息系统监理师

秘籍1 :薛大龙博士亲自授课

秘籍1: 52个必考重难点,逐个突破;

同期薛大龙软考培训班:

信息系统项目管理师 在线培训:3180元

系统集成项目管理工程师 在线培训:2880元

信息安全工程师 在线培训:1680元

信息系统监理师 在线培训:1880元

老学员享优惠(在学堂购买过任意软考课程):每人优惠200元

江西地区的软考报名入口已经开放,而且报名时间也出来了,考生可以进行报名,你要想进入IT行业,你需要一个**资质。软考就是你进入这个行业的一个资质证明。参加软考,真的是提升自我的一个好机会。

报名网址:江西软考报名入口

广大考生可通过中国计算机技术职业资格网(/)进行软考职称考试报名。

1、报名照片上传后可以修改吗?江西软考报名入口

报名照片上传成功后不可以修改,务必请本人谨慎操作。报名照片上传前一定要下载报名系统中的“照片审核工具”审核通过后再上传。

2、报名信息填报时职称怎么填?

如果有那么就填上现有职称(资格)和取得职称(资格)时间,如果没有就直接填“无”或者“没有”。报名条件对考生现有职称没有要求,所以没有职称也没关系,同样可以报考。

3、报名信息确认后可以修改吗?

可以修改,一般来说只要还没有缴费都是可以修改的,具体要以当地软考办规定为准,但是照片上传成功,将无法修改。考生照片及主要信息是打印准考证和资格证书的依据,请考生务必填写真实信息。

4、报名信息缴费后可以修改吗?

缴费后不可以自行修改,如要修改必须向当地软考办申请。由所在地考试机构受理核实后报省考试机构按规定程序予以修改。江西软考报名入口

5、报名后可以取消吗?

只要你还未缴费成功便意味着报名还未成功,未在规定时间内缴费视为放弃报名,如果缴费完成了便意味着报名成功,是不可以取消报名的,即使你放弃考试也不会退还考试费用。

你们日夜期待的软考就要到来,先把名报上吧,等你报名成功之后,就可以耐心的等待软考的到来了,只要你拿到证书,升职加薪不在话下。

为了能让更多人享受软考的政策福利和现实功利,51CTO旗下软考教研团队联合薛大龙老师,认真严肃向大家推出软考3日直播特训营

扫码下方二维码入群0元领取6G的软考6资料包+3天软考特训营名额

扫面下方二维码入群后按照老师的要求操作即可领取。

51CTO软考三天直播训练营

这门课恰好能够为你答疑解惑,助你快速**并**软考知识要点,获得技能提升。为自己的职业发展规划制定一个更明确的规划,迈出升职加薪的**步。

心急的小伙伴可直接扫码解锁。

课程涵盖:高分知识点梳理,案例分析解题方法、论文通用模板等。我们力争通过3天的直播课程,助力您快速**并一次性**软考!

如果你对这门课程还不太了解的话,就跟我一起往下看吧。

我们的主讲老师薛大龙老师,深耕软考教育培训20余年,主编出版软考辅导教材60余本,非常熟悉软考题目的要求、难度、以及判卷标准。

完成本体验营3天所有课程及作业考核,学员将**信息系统项目管理师、系统集成项目管理工程师的高频考点及答题技巧

①**信息系统项目管理师知识体系

②**考试高分占比知识领域;

③**考试考情前沿分析

④**论文与案例超干货答题方法

⑤**名师对真题的独到解析

报名前,你还需要知道的3件事

直播课程+社群学习活动

付费后根据提示添加学姐为好友,开营前学姐会统一拉人入群。

我要回帖

更多关于 什么是软考 的文章

 

随机推荐