Några tankar om ett client/server-protokoll Mikael Cardell 2001-12-07 (3) 1. Andra protokoll Bra och dåliga saker i: * IMAP + Asynkrona anrop, så man kan skicka hur många anrop som helst och servern inte behöver svara i ordning. - Mycket processande på servern. - Stökigt. Stöder delvis överlappande saker i olika anrop. * NNTP + Lättläst. + Innehåller ålderdomliga anrop som gör att servern håller reda på vilken artikel klienten läser, et cetera. Onödigt? Känslan av närvaro kräver ju i alla fall att servern vet vilket möte klienten befinner sig i. - Synkront. * LysKOMs protokoll A + Asynkront. - Kräver mycket logik i klienten. - Gör operationer som "Vilka" och "Lista ärenden" väldigt långsamma. Borde underlättas av servern. * (LysKOMs protokoll B?) Var finns specen? 2. Förslag till nytt protokoll Baserat på Rivests S-uttryck (sexp). Varför? Baserat på BEEP? Varför? Mycket på köpet. Asynkront, kryptering, autenticering. Och nej, vi skall inte skicka några XML-baserade saker i det. Kanske skicka sexpar? Krav: o Asynkront o Enskilda anrop för "Vilka" och "Lista ärenden" o Fler? Ta NNTP, rensa bort läsarspecifika saker. Nyttiga utökningar? Son of RFC whatever. 3. Exempelsession C är client, S är server. ----------------- 8< ----------------- 8< ----------------- C: (1:0 here 14:mc@foo.bar.baz) S: (1:0 welcome ) C: (1:1 authinfo (user 2:mc) S: (1:1 authinfo-accept (pass md5 krb)) C: (1:2 authinfo (md5 17:)) S: (1:2 authinfo-succeed) C: (1:3 list-subscriptions) ;;; Hur skall prenumerationsdata se ut? Lista bara olästa verkar dumt, ;;; för då kan man ju inte genast använda dem till något. Borde vara ;;; bättre att lista högsta lästa inläggsnummer i mötet? Hur tänkte ;;; jag i MOK? Jag tror det var något i still med intervall av lästa + ;;; lista på lästa efter det, så här: S: (1:3 subscriptions ("Mikael Cardell" 17 (1 17) (20 23 25)) ("Fritt forum" 25 (1 456) (1007 1112)) ("Linco Hesto" 4711 (1 4711) (5617 5712 6110 6453 7666 8887 9228))) ;;; Kanske i stället unikt identifiera ett ärende? Då kan man enkelt ;;; låta bli att vara medlem i just ett ärende. C: (1:4 join 17) S: (1:4 "Mikael Cardell" 17 (1 17) (20 23 25)) ;;; Läs inlägg 18 i möte 17: C: (1:5 read 17 18) S: (1:5 ) ;;; Lista ärenden av de olästa i möte 17: C: (1:6 list-unread-subjects 17) S: (1:6 (18 (from 22) (to 17) (subject "Test av brev") (reply-to 17)) (19 (from 21) (to 17) (subject "Träff ikväll") (reply-to 15)) (21 (from 2) (to 17) (subject "Linco Hesto-möte"))) ----------------- 8< ----------------- 8< -----------------