Top Banner
BLIP BLIP Basic Lightweight Information Protocol Basic Lightweight Information Protocol Philosophy, Design Decisions, Philosophy, Design Decisions, and Experimental Results and Experimental Results Matt Jensen blip.org www.blip.org mailing list: blip- [email protected] FOR MORE INFO...
65

BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org mailing list: [email protected].

Jan 11, 2016

Download

Documents

Tyrone Hunter
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIPBLIP Basic Lightweight Information ProtocolBasic Lightweight Information Protocol

Philosophy, Design Decisions, Philosophy, Design Decisions, and Experimental Resultsand Experimental Results

Matt Jensen

blip.org

www.blip.org mailing list: [email protected]

FOR MORE INFO...

Page 2: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIP DescriptionBLIP Description

A federated, server-based protocol for near real-time, robust, scalable, subject-based publish-and-subscribe messaging. Useful for user-oriented or system-oriented communication.

Page 3: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Project GoalsProject Goals

Open standard for P&S messagingPrototyping and experimentingAggressive timing goals

Page 4: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Project GoalsProject Goals

Open standard for P&S messaging– Platform and Language Neutral

• run anywhere• handhelds to enterprise server farms

– Simple, text-based wire protocol– Leverage existing standards– Robust, can be extended

Page 5: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Project GoalsProject Goals

Prototyping and experimenting– Provide freeware tools– Provide source code– Let a thousand flowers bloom

Page 6: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Project GoalsProject Goals

Aggressive timing goals– Early tools available now– Finalize first-phase protocol in Aug.– End user tools by September– Fold lessons learned into next standard

Page 7: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

OriginsOrigins

Limitations of “push”

Page 8: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

OriginsOrigins Limitations of “push”

– No open standard; big buy-in, ads– Little control over info sent– Little control over notification techniques– Polling is slow, congests corporate network– Synchronous - miss messages when offline– Limited user-created topics– Limited data formats– Limited security, reliability

Page 9: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

OriginsOrigins

Requirements for a Good System

Page 10: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

OriginsOrigins

Requirements for a Good System– Open system– Notification is the essence– User has fine-grained control over what they receive, when, and how.– Publishers can send any MIME type data.– Persistent messages needed (offline, etc.)– User accounts needed

• Publishers want to control access• Subscribers need to keep track of what they’ve seen

Page 11: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

OriginsOrigins

Formed blip.org – Non-profit– Encourages freeware– New web site, mailing list

Page 12: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

OriginsOrigins Moving beyond Push

– General Notification• Buddy lists/collaboration tools• Printers• System monitoring, security

– Reliability• Once, only once, in-order, guaranteed delivery• Support transactions• You’re already 90% there• Opens new opportunities

Page 13: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIP - Possible ApplicationsBLIP - Possible Applications

Apps for People– News– Buddy lists– Monitoring (email, web pages)– Security (where’s my kid, my car?)– Persistent chat– Auctions– Stock trading (personal program trading)

Page 14: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIP - Possible ApplicationsBLIP - Possible Applications

Apps for Organizations Intranet/Extranet news delivery Custom business events Track inventory levels Workflow apps (e.g., DAV) Transactions

Process orders, coordinate databases, financial transactions

Distributed/parallel processing

Page 15: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

ReliabilityReliability

Publish & Subscribe

+ Reliable Message Queueing

+ Open Internet Protocol

= BLIP

Page 16: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - Message QueueingReliability - Message Queueing

– Uses• Tie systems together

– distributed processing– financial transactions– only send news if you can send bill, too

• Personal Assurance– personal apps can be mission-critical

Page 17: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - Message QueueingReliability - Message Queueing– Uses

• Tie systems together– distributed processing– financial transactions– only send news if you can send bill, too

• Personal Assurance– personal apps can be mission-critical

– Implementation Costs• Add two-phase commit• Optional

– All servers must support it– A topic can turn it off

Page 18: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - Existing ToolsReliability - Existing Tools

– Publish & Subscribe• Proprietary tools• Many new Java companies• No interoperability or openness

– Message Queueing• Very proprietary (MQSeries, MSMQ, etc.)• Slow efforts at cooperation (BMQ)

Page 19: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - JMSReliability - JMS

– Java Messaging Service (JMS)• Provides event services• Limitations• Sun-directed; not open ?• Java only

JMS JMS

Java Client Java Server

Page 20: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIP BLIP

JMS

Reliability - JMSReliability - JMS

– Java Messaging Service (JMS)• Provides event services

• Limitations

• Sun controlled - not open

• Java only

• JMS on top of BLIP/other standard?

JMS is an API for Java, which could use BLIP/other

as underlying protocol.

JMS

Java Client Java Server

BLIP BLIP

Other API Other API

Java Client Java Server

Page 21: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - JMSReliability - JMS

– Java Messaging Service (JMS)• Provides event services

• Limitations

• Sun controlled - not open

• Java only

• JMS on top of BLIP/other standard?

BLIP BLIP

Other API Other API

Java Client Java Server

public interface SimpleBlipAwareness { public void fireBlipMessageReceived(

int aTopicID, int aMessageID, String headline, String completeMessage);

public void fireBlipError(String e); public void fireBlipConnectionStateChange(

int newState, int oldState);}

Page 22: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - DatabasesReliability - Databases

Very useful for persistent messages– Offloads queries from event server– Leverage existing tools

• SQL for queries• Proven reliability -- transactions, recoverability• High performance (depending on domain)• Integration w/ other systems

– Middleware community moving this way

DB

Page 23: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability - DatabasesReliability - Databases

Not required everywhere– Perceived as slower– Power not always needed

DBServer

Custom Filing System

DBTopicMgrDBTopicMgr

SimpleTopicMgrSimpleTopicMgr

Topics

Page 24: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Reliability & PeopleReliability & People

People want notification systems that are reliable.

“Almost everything can be mission critical to someone.”

Page 25: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIP Software - CurrentBLIP Software - Current

Java server Java client classes Java applets Win95 native client Perl send/receive scripts Simple client OCX VB demos

Page 26: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

BLIP Software - UpcomingBLIP Software - Upcoming

Palm OS client WinCE client Native Linux server Native NT server More applets Bridges to MSMQ, MQSeries ? Possible JMS wrapper ?

Page 27: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Page 28: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

What BLIP doesn’t do

– Presentation• topic or client specific

– ACLs• looking at other standards

– Topic discovery (?)• ACAP/LDAP

– Advanced security• Open hook to other systems

Page 29: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - The BLIP Protocol - SubscriptionsSubscriptions URL-based ACLs are out of band Different cases:

– messages from now on– messages from #1 on– start at 10 messages ago

Default policies– e.g. - buddy lists

Page 30: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - MessagesThe BLIP Protocol - Messages

SMTP-style headers

Any MIME type data– text– GIF– HTML– XML– etc. ...

Page 31: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - Filters?The BLIP Protocol - Filters?

Server-side rules– XML, but how to script?

Page 32: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - Filters?The BLIP Protocol - Filters?

Server-side rules– XML, but how to script?

Currently, repackage data as new topic– like “Event Refinement” in Keryx ?

Page 33: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– Improves scaling– Offers levels of service

Page 34: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– ALIVE

ClientServer

Page 35: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– ALIVE

ClientServer

Page 36: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– ALIVE

ClientServer

Page 37: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– ALIVE

ClientServer

Page 38: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

Page 39: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

Page 40: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 41: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 42: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 43: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 44: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 45: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 46: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– AWARE

ClientServer

tag

IP

Page 47: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– ALIVE

• Fast - maintains connection• Expensive - maintains connection

– AWARE• Slower - create TCP connection• Scalable - only use needed connections

Page 48: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Multiple access modes– ALIVE

• Fast - maintains connection• Expensive - maintains connection

– AWARE• Slower - create TCP connection• Scalable - only use needed connections

– Other modes?• Multicast -- Reliable Multicast very delicate

– RFC 2357

Page 49: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Modes allow flexible scaling– High-priority users get ALIVE mode

• ISPs, paying subscribers

– Low-priority users get AWARE mode

Server

ALIVE

AWARE

Page 50: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP ProtocolThe BLIP Protocol

Another example

Server “Real” Clients

200 ALIVE clients per level3 levels...= 8 million ALIVE clientswith 5-10 second delay(?)

can it be coordinated?

Proxies/Relayers

Page 51: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - Client StatesThe BLIP Protocol - Client States

Unauthorized Ready

Receiving

Sending

Login

Page 52: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - Client StatesThe BLIP Protocol - Client States

Unauthorized Ready

ReceivingSending

C: Acknowledge

S:

Tra

ns

ac

tio

nC: Acknowledge

S:

Tra

ns

ac

tio

n

C: Acknowledge

S:

Tra

ns

ac

tio

n

Page 53: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

S: UPDATE TXN=1S: START ITEM #322 61S: Headline: Inflation is upS: Posted 05 Jul 1998 12:49:55 GMTS: Content-Length: 145S:S: The Federal Reserve. . .S: END ITEM (additional items)S: END UPDATES:C: !A002 ACK 1C:S: !A002 200 - OK.S:

The BLIP Protocol - A SessionThe BLIP Protocol - A SessionS: BLIP 0.46 MODES=ALIVES:C: LOGIN joeuser mypassword mode=ALIVEC:S: 200 - OK. Logged in.S:C: !A001 UPDATES ONC:S: !A001 200 - OK.S:

either immediately, or after some time…

Page 54: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

The BLIP Protocol - VariationsThe BLIP Protocol - Variations

S: BLIP 0.46 MODES=ALIVE

S: BLIP 0.46 MODES=ALIVE,AWARE

C: LOGIN joeuser mypassword mode=ALIVE

C: LOGIN joeuser mypassword mode=ALIVE,AWARE

C: LOGIN joeuser mypassword mode=ALIVEC:

C: LOGIN joeuser auth=XYZ mode=ALIVEC: Key=de5te4545665r65e4ddhkjdkasiudy753sdC:

Modes - Server variations

Modes - Client variations

Security - Client variations

Page 55: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Issues - Server vs. Point-to-PointIssues - Server vs. Point-to-Point

BLIP is server-based– Not point-to-point– Could be used w/ p-to-p tools

Page 56: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Issues - Server vs. Point-to-PointIssues - Server vs. Point-to-Point

With few clients, p-to-p is nice– reduces server load– can reduce latency– could enhance privacy

With many clients, client gets burdened– Needs sophisticated programming– Especially for real-time collaboration

Page 57: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Issues - Server vs. Point-to-PointIssues - Server vs. Point-to-Point

Example - Spot Demo

Page 58: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Issues - Server vs. Point-to-PointIssues - Server vs. Point-to-Point

Page 59: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Issues - Server vs. Point-to-PointIssues - Server vs. Point-to-Point

Old user sees this... New user sees this...

Page 60: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Clients

Del

ay (

ms)

0

50

100

150

200

250

300

350

400

450

500

2 10 20 30 40

Point-to-Point

Client/Server

Page 61: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

Issues - Server vs. Point-to-PointIssues - Server vs. Point-to-Point

Page 62: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

IssuesIssues

Roaming users and AWARE mode– multiple ‘active’ client devices per

person?• “Location Server” from SIP?

(Session Initiation Protocol)

Page 63: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

IssuesIssues

Do Subscribers get messages sent before their subscription started?

– “Quenching”– Multicast

– Flexibility

Page 64: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

IssuesIssues

Dynamic filter control– How to fine-tune what you receive, on

the fly, without disturbing subscriptions?

C: !A0002 UPDATES ONC: - /nasdaq/quotes/*C: + /nasdaq/quotes/msftC:

Page 65: BLIP Basic Lightweight Information Protocol Philosophy, Design Decisions, and Experimental Results Matt Jensen blip.org  mailing list: blip-subscribe@makelist.com.

EndEnd

Matt Jensen

[email protected]

www.blip.org mailing list: [email protected]

FOR MORE INFO...