meillo@187: .PS 3.5 meillo@187: arrowhead = 18 meillo@187: meillo@187: define disk { meillo@187: Disk: [ meillo@187: ellipsewid=ellipsewid/2 meillo@187: ellipseht=ellipseht/2 meillo@187: ellipse meillo@187: spline down ellipseht*4/3 from last ellipse.w \ meillo@187: then right ellipsewid \ meillo@187: then up ellipseht*4/3 to last ellipse.e meillo@187: ] meillo@187: } meillo@187: meillo@187: define machine { meillo@187: box wid $1.wid+.3 ht $1.ht+.3 dashed at $1 meillo@187: } meillo@187: meillo@187: up meillo@187: Sender: [ meillo@187: ellipse "\fBMUA\fP" meillo@187: ellipse "MSA" meillo@187: ] meillo@187: machine(Sender) meillo@187: meillo@187: arrow 3*linewid from Sender.n meillo@187: meillo@187: right meillo@187: Server1: [ meillo@187: ellipse "MTA" meillo@187: ] with .s at last arrow.end meillo@187: machine(Server1) meillo@187: meillo@187: arrow 2*linewid from Server1.e meillo@187: box invis ". . ." meillo@187: arrow 2*linewid meillo@187: meillo@187: Server2: [ meillo@187: ellipse "MTA" meillo@187: ellipse "MDA" meillo@187: arrow linewid/2 meillo@187: disk meillo@187: move to Disk.s - (0,.05) meillo@187: ] meillo@187: machine(Server2) meillo@187: meillo@187: down meillo@187: arrow <- 3*linewid dashed from Server2.s+(.86,0) meillo@187: arrow 3*linewid from Server2.s+(.9,0) meillo@187: meillo@187: Recipient: [ meillo@187: ellipse "MRA" meillo@187: ellipse "MDA" meillo@187: move to last ellipse.w meillo@187: left meillo@187: arrow linewid/2 meillo@187: disk meillo@187: arrow <-> linewid/2 meillo@187: #arrow <-> linewid/2 from Disk.w+(0,.03) meillo@187: #arrow linewid/2 from Disk.w+(0,-.03) meillo@187: ellipse "\fBMUA\fP" meillo@187: ] with .n at last arrow.end-(.8,0) meillo@187: machine(Recipient) meillo@187: meillo@187: line from .5 to .5 dotted meillo@187: .PE