系统的构建一定会设计到简历接口,让他与不同的语言的应用程序之间简历系统的联系。这就叫做erlang的接口技术。
接口技术的三种实现方法:
1.让程序以外部操作系统进行的形式在Erlang虚拟机以外运行。这是一种安全的做法。即时外部语言的代码也是有问题的,也不会让Erlang系统崩溃,Erlang同坐一种名为端口的对象来控制外部程序,与外部进行的通信则是通过一个面向字节的通讯信道。Erlang负责启动和停止外部程序,可以可以监视他,让他在崩溃后重启,外部进行被称为端口进程,因为他是通过一个Erlang端口控制的。
2.在Erlang内部运行操作系统命令并捕捉结果
3.在Erlang虚拟机的内部运行外部语言代码,着设计到链接外部代码,和Erlang虚拟机代码,是一种不安全的做法,外部语言代码里的错误可能会导致Erlang系统崩溃,虽然它不安全,但还是有用的,因为这么做比使用外部进行更高效。(在代码链接到Erlang内核只适应于C语言这样能生成本地目标代码的语言,不适用于java这样自身拥有虚拟机的语言)
Erlang如何与外部程序通信
Erlang通过名为端口的对象向外部程序通信,如果想向端口发送一个消息,此消息酒会被发往与端口相连的外部程序,来自外部程序的消息就会变成来自端口的Erlang消息。
对程序员来说,端口的行为就像是一个Erlang进程,你可以向他发送消息,可以注册他,如果外部程序泵扩了,就会有一个退出信号发送给相连的进程,如果相连的进程挂了,外部程序就会被关闭。
请注意使用端口与外部进程通信很使用套接字的区别,如果实用段鸥,他会表现的想一个Erlang进行,这样就可以连接他,从某个远程分布式Erlang节点向他发送消息,如果使用了套接字,就不会表现出类似进程的行为,创建端口的进程被称为该端口的相连进行,相连进程有其特殊的重要性,所有发往端口的消息都必须标明相连进程的PID 所有来自外部程序的消息杜辉发往相连进程。(未完待续)
Erlang-接口技术