Presentation is loading. Please wait.

Presentation is loading. Please wait.

User Interface; Graphical User Interface;Jabber XMPP- Core.

Similar presentations


Presentation on theme: "User Interface; Graphical User Interface;Jabber XMPP- Core."— Presentation transcript:

1 User Interface; Graphical User Interface;Jabber XMPP- Core

2 6.893 Spring 2004: User Interface Larry Rudolph Communicating between two presence-aware entities XML Stream Starts with Ends with Stream is unidirectional; but two streams allowed over one TCP connection initial stream and response stream XML Stanza the stuff (packets) of the stream presence, message, iq are the only upper-level types

3 6.893 Spring 2004: User Interface Larry Rudolph A basic session C: <stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> S: <stream:stream from='example.com' id='someid' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>... encryption, authentication, and resource binding... C: <message from='juliet@example.com' to='romeo@example.net' xml:lang='en'> C: Art thou not Romeo, and a Montague? C: S: <message from='romeo@example.net' to='juliet@example.com' xml:lang='en'> S: Neither, fair saint, if either thee dislike. S: C: S:

4 6.893 Spring 2004: User Interface Larry Rudolph A session gone bad C: <stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> S: <stream:stream from='example.com' id='someid' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>... encryption, authentication, and resource binding... C: Bad XML, no closing body tag! S: <xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/> S:

5 Motivating GUI via IM

6 Email, Instant messages, chat Email: send message based on name must know name, but can guess it. IM: can only send message to buddy can have both sides agree to be buddies. Chat: can only send message to “room” must connect to “room” to get messages Asynchronous like “computation” Semi-synchronous like “interactive” Semi-synchronous like “parallelism”

7 Big Idea: Abstraction “Any problem in computer programming can be solved by adding a level of abstraction” “Performance can be improved in programs by removing a level of abstraction” Indirection used to support abstraction

8 Big Idea for IM: Indirection “Publish and subscribe” Publish “presence” with a server Subscribe to relevant published entities Once when registering and whenever logon “Interact” direct communication (mediated) indirect communication

9 Hard vs Soft State Hard State: server knows buddy list can send status of each buddy to requester Soft State: client knows buddy list can ask status of each buddy But indirection always requires hard state

10 Instant Messaging Clients register with server When client logs on, others subscribe Client sends message to server, server forwards to recipient can only send messages to registered/published recipients Supported operations: Register, Unregister, Logon, Logoff, Send/Rec, Add/Remove Buddy, etc.

11 Many disconnected pieces Client-Server protocol (messier than just this) Client code User Interface Code Semantics of interaction e.g. send only to published & subscribed entities

12

13 User Interface Want to disconnect application from user interface Application should work independent of UI Character display and keyboard or fancier main difference was number of columns and lines Graphical user interface make big assumptions about h/w abilities not really independent of GUI

14 Evolution

15 Separating events from handlers Register handler for event Two different types of events: within application within window system. Events connect the two pieces but are developed separately.

16 Separation of GUI description Glade

17 No semantic content why bad? no error correction


Download ppt "User Interface; Graphical User Interface;Jabber XMPP- Core."

Similar presentations


Ads by Google