module Chat { interface ChatLocal // implemented by the ClientImpl { boolean ask(in string key); void receive(in string msg, in string skey); void update(); }; interface ChatRemote // implemented by the ServerImpl { typedef sequence UserList; UserList who(); void enroll(in ChatLocal ccObj, in string id); void remove(in string key); boolean available(in string key); boolean request(in string skey, in string dkey); void send(in string msg, in string skey, in string dkey); // Key identifies the s(source) and d(dest) client void callUpdate(in string user, in ChatRemote cr); }; };