非常教程

Erlang 20参考手册

orber

12.orber网页 | 12. OrberWeb

12.1使用OrberWeb

OrberWeb旨在使用Orber开发和测试应用程序时更容易。 用户可以通过使用Web浏览器通过GUI与Orber进行交互。

OrberWeb要求应用程序WebTool可用并且至少在一个节点上启动; 如果这样的话OrberWeb通常可以用来访问支持可互操作命名服务的Orber节点。 起始OrberWeb中介绍了如何启动OrberWeb

OrberWebGUI包括一个的菜单帧数据帧

菜单框架

菜单框架包括:

  • 节点列表-要访问的节点。
  • 配置-查看当前节点上的Orber是如何配置的。
  • 名称服务-浏览NameService并添加/删除上下文/对象。
  • IFR类型-查看在IFR中登记的类型。
  • 创建对象-创建一个新对象,并可能将其存储在NameService中。

图12.1:菜单框架。

我们可以访问哪些节点取决于调用[node()| nodes()]时返回的内容。 如果在列表中看不到所需节点,则必须调用net_adm:ping(Node)。 但是这要求节点在分配开启的情况下启动(例如,erl -sname myNode); 这也适用于OrberWeb运行的节点。

配置数据帧

访问“ 配置”页面时,OrberWeb会显示一个包含configuration settings目标节点的表格。

图12.2:配置设置。

也可以更改Orber已启动时可更改的配置参数。Key-Value对是作为元组列表给出的,例如{orber_debug_level,5},{iiop_timeout,60},{giop_version,{1,2}}。如果有人试图更新一个可能无法更改的参数,则会显示一条错误消息。

IFR数据框架

在IFR(接口库)中注册的所有类型都有关联的IFR-id,可以通过IFR数据帧查看。这为用户提供了一种简单的方法来确认所有必要的IDL规范已被正确注册。IFR Types在菜单框中选择时列出所有可用的类型:

图12.3:选择类型。

选择类型后,将显示该特定类型的所有定义。如果不存在此类绑定,表将为空。

由于Orber在安装IFR时添加了定义(例如CosNaming),因此不仅用户定义的类型将显示在表中。在下图中,您可以找到列出的NameService例外。

图12.4:列出注册的例外。

NameService数据框架

NameService的主要目的是使绑定客户端应用程序可以解析和调用操作的对象引用成为可能。最初,NameService是空的。最常见的情况是,用户应用程序创建上下文并在NameService中添加对象。OrberWeb允许用户做同样的事情。

引用对象或上下文时,必须使用字符串化的NameComponents。欲了解更多信息,请参阅Interoperable Naming Service。在下面的例子中,我们将使用字符串org / erlang / TheObjectName,其中orgerlang将是上下文,而TheObjectName是该对象将绑定到的名称。

由于NameService在开始时是空的,我们唯一能做的就是创建一个新的上下文。只需在输入字段中编写组织,然后按New Context。如果OrberWeb能够创建上下文,则会显示在完成消息中。如果成功,只需按下Go Back按钮。现在,应该在表中列出名为org的链接。在右栏中显示上下文类型。上下文与ncontext和带有nobject的对象相关联。

图12.5:添加一个新上下文。

要创建下一级上下文(即erlang),只需按照链接并重复该过程即可。如果正确完成,如果您遵循erlang链接,那么包含与下图相同数据的表应该是结果。请注意,该路径显示在黄色字段中。

如果上下文不包含任何子上下文或对象绑定,则可以删除上下文。如果满足这些要求,Delete Context则会出现一个按钮。删除上下文后将显示完成状态消息。

图12.6:删除上下文。

现在可以使用完整的名称字符串来绑定一个对象。要了解如何使用OrberWeb完成请参阅Object Creation。现在,我们将假设一个对象已经创建并绑定为TheObjectName

图12.7:存储在NameService中的对象。

如果您遵循TheObjectName链接,则会显示有关绑定对象的数据。请注意,取决于它是哪种类型的对象,所给出的信息会有所不同。例如,它不可能为所有类型的对象显示Pid,因为它可能驻留在Java-ORB上。在下图中,一个CosNotification FilterFactory已经绑定在名称org / erlang / TheObjectName下。

图12.8:对象数据。

OrberWeb还可以删除绑定并处理关联的对象。按解除绑定将被删除,但该对象将仍然存在。但是,如果按下“ 取消绑定和处理”按钮,绑定将被删除,并且对象终止。

对象创建数据框架

这部分可以创建一个新对象,并且如果需要的话,可以将它存储到NameService中。

图12.9:创建一个新对象。

  • 模块 - 只需键入要创建的对象类型的模块名称即可。如果模块以大写字母开头,我们通常必须写'Module_Interface'。但是,使用OrberWeb时,您应该。由于我们无法创建链接的对象,因此这不是一个选项。
  • 参数 - 提供的参数必须写成单个Erlang术语。也就是说,作为包含其他Erlang术语的列表或元组。参数将被传递给init对象的函数。但是,不可能使用Erlang记录。如果OrberWeb无法解析参数,则会显示错误消息。如果留空,则会传递一个空列表。
  • 选项 - 选项可以是Module_InterfaceOrber参考手册中列出的选项。因此,这里不作进一步描述。但是,作为一个例子,在上图中,我们启动了全局注册的对象。如果没有提供选项,该对象将默认启动。
  • 名称字符串 - 如果留空,该对象将不会在NameService中注册。因此,以另一种方式访问​​对象非常重要,否则会创建一个僵尸进程。在前面的章节中,我们使用了名称字符串org / erlang / TheObjectName。如果我们在这里选择相同的名称,则必须创建列出的上下文(即orgerlang),然后才能创建对象并将其绑定到TheObjectName。如果这个要求不符合,OrberWeb不能绑定对象。因此,该对象将被终止并显示错误消息。
  • 操作使用 - 选择哪个选项将决定OrberWeb的行为。如果您选择了绑定并且绑定已经存在,则会显示一条错误消息并终止新启动的对象。但是,如果您选择重新绑定,则任何现有绑定都将被覆盖。

12.2 启动OrberWeb

您可以选择在Orber运行或不运行的节点上启动OrberWeb。但是Erlang分发必须启动(例如通过使用-sname aNodeName)。现在,你所要做的就是调用:

    
erl> webtool:start().
WebTool is available at http://localhost:8888/
Or  http://127.0.0.1:8888/
    

在您的网页浏览器中输入一个URL:s。如果您想从不同的机器访问WebTool应用程序,只需替换localhost其名称即可。有关更多信息,请参阅WebTool文档。

Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1