Hi, CORBA main focus is about interoperability between systems, languages (don't know about opentalk). If you want smalltalk only remote execution, you can very easily do your own on Pharo with Zinc http components and Fuel serializer: a small server that reads smalltalk blocks, evaluates them and return the result (see below an example of server and client). I don't know if Zinc and Fuel run on Squeak, but I guess if not, they are equivalents ones or you could do the same. Beware that Fuel builds a graph of the objects touched by the object it serializes (the block) and serialize them along the way, that may be a problem if you have references to other big objects of your image. " ================================= RPC server" " start Zn server in background " ZnServer startDefaultOn: 1701. ZnServer default delegate: (ZnWebSocketDelegate handler: ([ :webSocket | [ [ | serializedRequest request response serializedResponse | serializedRequest := webSocket readMessage. request := FLMaterializer materializeFromByteArray: serializedRequest. "execute block and it's value to response byte array" response := [ request value ] on: Exception do: [ :ex | ex resume: 'Exception ',ex class name , ' - ', ex messageText ]. serializedResponse := FLSerializer serializeToByteArray: response . webSocket sendMessage: serializedResponse . ] repeat. ] on: ConnectionClosed, ConnectionTimedOut do: [ self crLog: 'Ignoring connection or timeout' ] ]) ). "=========================================" " to stop the server" ZnServer stopDefault . "========================================= RPC CLIENT" " Client call to server: calculate factorial 100 on the other side" | webSocket | webSocket := ZnWebSocket to: 'ws://127.0.0.1:1701'. [ | request serializedRequest serializedResponse response | request := [ 100 factorial ] . " the request is the block to evaluate" serializedRequest := FLSerializer serializeToByteArray: request . "serialize the block" webSocket sendMessage: serializedRequest . "send it" serializedResponse := webSocket readMessage . " read response" response := FLMaterializer materializeFromByteArray: serializedResponse. "deserialize to object" Transcript show: response asString ; cr ] on: ConnectionClosed do: [ self crLog: 'Ignoring connection close, done' ] regards, Alain Le 12/11/2014 18:17, Annick Fron a écrit :
Hi,
Are there some libraries in pharo to do remote calls like in Opentalk or Corba ?
Annick