POA简介

1 POA简介
  (1)POA结构
  每一个POA都要维护一个活动对象映射(Active Object Map),它包含一个个对应于服务的对象ID,活动对象映射是一张将激活对象映射到相应服务的表。对象ID是一个由POA和用户提供的实现使用的一个值,用来标识一个特定的抽象的CORBA对象。对象ID的值可能由POA或实现来赋值和管理,对象ID的值由引用封装并对客户方隐藏。对象ID没有标准格式,它们被POA作为未解释的8位字节序列来管理。在POA中还需要根据实际应用实现诸如缺省服务、服务激活器、适配器激活器、服务定位器之类的功能。
  (2)POA工作机制
  以对象引用为基础,一个POA必须决定它是否能服务于那个对象。ORB通过一种定位机制去选择一个合适的POA。一旦一个对象被定位,ORB 就会异步地将请求传输给POA。一旦对请求的处理结束,POA就会通知ORB并将结果返回。在多个POA组成的树形结构中,客户发出的所有请求由根POA 接收,根POA在这之前已经在ORB上进行了注册。请求是从根POA开始向下传递给它的下级的,如果专门处理某个请求的POA不存在,这个请求将发送给该 POA的父POA,并调用它的适配器激活器重新建立这个丢失了的POA。POA接收到了请求,然后通过对象的定位,使用对象的实现去处理接收到的请求。
  
  2 CORBA实现IDL的服务器端映射方式
  CORBA支持两种实现IDL接口的服务器端映射:ImplBase inheritance(继承)和Tie delegation(委托)。ImplBase方法用一个实现类实现IDL接口,其中的实现类也扩展编译器生成的xxxImplBaseClass。 Tie方法用两种类实现IDL接口:一个IDL生成的Tie类,该类继承自xxxImplBaseClass,但委托所有的调用到一个实现类;一个实现 IDL生成的xxxOperations接口的类,它定义了IDL的功能。
  
  3 POA-Tie的服务器端实现
  3.1 定义接口(Hello.idl)
  首先使用IDL创建一个CORBA应用,规定所有的对象和接口。程序Hello.idl定义了一个CORBA对象,其中sayHello()操作返回一个string,shutdown()方法用来关闭ORB。
  module HelloApp
  {
  interface Hello
  {
  string sayHello();
  oneway void shutdown();
  };
  };
  3.2 服务器端实现(HelloServer.java)
  服务器端包括两个类:servant和server。Servant(HelloImpl)实现Hello的IDL 接口,Hello中的每一个实例都由HelloImpl中的一个实例实现。Servant是由Hello.idl通过idlj编译器编译产生的,是 HelloPOA的子类,它包含了Hello.idl中定义的两个方法sayHello()和shutdown(),其余的代码是用来处理由 skeleton提供的ORB的,这个ORB用来对参数和结果进行编组等。
  HelloServer类包含main()方法,它完成以下操作:
  ·创建并初始化一个ORB实例
  ·得到根POA的引用并激活POAManager
  ·创建servant实例并且通知ORB
  ·创建一个连接使servant成为代理
  ·为连接得到一个CORBA对象应用
  ·得到根的命名上下文
  ·用名字“Hello”在命名上下文中注册一个新的对象
  ·等待客户端对这个新对象的请求
  HelloServer.java 中创建tie的核心代码:
  // create a tie, with servant being the delegate.
  HelloPOATie tie = new HelloPOATie(helloImpl, rootpoa);
  Hello href = tie._this(orb);
  3.3 客户端实现(HelloClient.java)
  客户端完成以下操作:
  ·创建并初始化ORB
  ·获得根命名上下文
  ·在命名上下文中查找“Hello”并接收CORBA对象的引用
  ·调用对象的sayHello()和shutdown()方法,将结果打印出来
  3.4 创建并运行Hello World
  (1)使目录中包含文件Hello.idl
  (2)运行idlj,产生stub和skeleton
  (3)编译*.java 文件: javac*.javaHello
  App/*.java
  (4)启动orbd:start orbd -ORBInitialPort 1050 -ORBInitialHost localhost
  (5)启动Hello server: start java HelloSer
  ver -ORBInitialPort 1050 -ORBInitialHost localhost
  (6)执行客户端应用程序:java HelloClient -ORBInitialPort 1050 -ORBInitialHost localhost
  综上所述,POA-Tie机制利用了java的多接口继承,使用POA-Tie机制可以更灵活地在java中实现CORBA,并能提供附加的、像框架一样的函数提供给服务器端对象。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
亚马逊的POA(Plan of Action)模板是指卖家在面对亚马逊的相关问题或违规指控时,需要提交的一份解决方案计划。这个模板有特定的格式和内容都是需要遵循的。 首先,在POA模板中,卖家需要明确指出亚马逊所指控的问题,并清楚地解释为什么会出现这个问题。例如,如果亚马逊指控某个商品存在品质问题,卖家需要说明商品的来源、质量检验流程等,以证明商品质量合格。 接下来,卖家需要提供解决问题的具体步骤和措施。这些措施应该有针对性地解决亚马逊所指控的问题,并能够确保问题不再发生。例如,如果卖家被指控缺乏对物流问题的控制,卖家可以提出改进物流流程,增加包装防护措施等。 在POA模板中,卖家还需要附上相关的支持文件和证据,以证明自己的解决方案的可行性和有效性。这些证据可以包括供应商合作协议、质检报告、翻译文件等。卖家应该确保这些文件是真实可靠的,能够提供给亚马逊进行核查。 最后,卖家需要在POA模板中表达对亚马逊的合作态度和诚意。卖家可以向亚马逊保证将切实执行所提出的解决方案,并提供追踪和监管措施。此外,卖家还可以承诺对自身的业务进行全面的检查和改进,以确保未来不再发生类似问题。 总之,亚马逊的POA模板是卖家在面对亚马逊问题时所需准备的一份解决方案计划。卖家在填写这个模板时,应该清楚描述问题、提供解决方案、附上支持文件,并表达合作态度和诚意,以恢复亚马逊对其的信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值