The document provides an overview and demonstration of Cleartext's enterprise microblogging platform. It discusses how the platform integrates IM, group chat, microblogging and email capabilities while incorporating security features like content filtering, malware protection and archiving. The presentation highlights how the system is built on XMPP standards and uses custom stanzas and commands to enable microblogging functionality within the XMPP framework. It also demonstrates how the platform allows CRMs and other systems to integrate via its API and how security is addressed without requiring federation.
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microblogging
1. Enterprise - Microblogging - IM - Email
Enterprise IM, Group Chat, Microblogging & Email
With Integrated Content Filtering, Malware Protection, URL & Image Filtering and Archiving with eDiscovery
David Banes - CEO/Founder
Presentation for
Wednesday, 2 February 2011
Me, product and R&D management in IT security and messaging, (Dr Sols (McAfee AV engine), Symantec(NAV
special projects and virus analysis), MessageLabs(SaaS infrastructure, DBCS projects) moving into social platforms
in 2005 (Jive Forums, then Clearspace/Jive SBS, hosted/SaaS and on premise.
Going to talk about our microblogging client/server and the decisions we took.
2. Enterprise - Microblogging - IM - Email
Cleartext Overview
• EIM, Group Chat & Microblogging
• SaaS / on premise hybrid, desktop and mobile
• Web portal for resellers and clients
• Security and compliance designed in
• Standards based XMPP platform (RFC 3920, 3921)
• Extensible e.g. microblogging component
Wednesday, 2 February 2011
Background - Cleartext Email SaaS, hosting, managed security, business messaging not end user free/freemium
etc.
CipherIM (1999, moved to Jabber 2001-3)
Our platform is ejabberd, custom erlang modules, python microblogging server component, AIR desktop app.
3. Enterprise - Microblogging - IM - Email
‘Social’ Technologies
Public Private Enterprise
Web Social Facebook Mzinga Jive SBS
Microblogging Twitter Yammer Cleartext
Wednesday, 2 February 2011
Our view of this technology space
Public - Open to everyone, who cares who sees who and what is shared?
Private - Closed network - Company confidential data etc (Yammer talk about security but they mean SSL)
Enterprise - has security and compliance built in
4. Enterprise - Microblogging - IM - Email
Microblogging
• Main Features
• Timelines, public & direct messages
• Profiles, followers and following lists
• Re-Tweets and mentions
• Hashtags, search (track)
• Enterprise Microblogging
• Malware & URL Filtering
• Content Control
• Archiving & eDiscovery
Wednesday, 2 February 2011
Key features and how they align with XMPP, so the technology aligns well.
Lists and groups also feature which XMPP can handle
URL filtering became important a year or so back
5. Enterprise - Microblogging - IM - Email
Federated Microblogging
• The difference between public and enterprise
• Problems to solve
• Message routing
• Access control
• Message data, address books, search results
• How would a web interface work across domains/servers?
• Is search/track across domains realistic?
• Do we need to solve them for business customers?
Wednesday, 2 February 2011
Twitter vs, Cleartext, Yammer, OneSocialWeb etc (public services, we want everyone to see, enterprise we don’t,
especially those outside the business)
Routing is easy - XMPP
Data access is the real issue (msg data, address books re: follows etc, search)
Groups and chat rooms offer some solutions
No not for public web based microblogging, but yes for XMPP enterprise. (although Yammer use HTTP and XMPP
they still silo domains, but allow cross domain groups )
6. Enterprise - Microblogging - IM - Email
Enterprise Microblogging
• Minimum Features for business use
• Similar to Twitter, tweet, follow, search, DM, RT etc
• ‘Real time’ search results
• Cloud or on premise install*
• Security & compliance modules
• Desktop app to fully integrate with IM.
• Mobile, we use 3rd party eg OneTeam
Wednesday, 2 February 2011
Key features and how they align with twitter, base line features, i.e. no lists and backward facing timelines not important if got
local history and SaaS archive
First three are generic, next after talking to customers
We have web app in R&D, it works but not our focus
Arguably there’s no pressing need for federation yet, customers see microblogging as an internal productivity tool
7. Enterprise - Microblogging - IM - Email
Enterprise Microblogging Server
• Technology Features
• Inspired by XMPP: The Definitive Guide
• Modelled on ProcessOne Twitter Gateway
• Python XMPP component (XEP-0114)
• ejabberd MySQL user database with modified schema
• NOT federated!
• Announcement! Open Source (Feb ’11)
Wednesday, 2 February 2011
Cleartext Microblogging platform
Message driven (not IQ’s), just like the processone twitter gateway.
Python is easier to work with than erlang
Re-use ejabberd schema with small mods to users table, plus a couple more tables for followers etc
Opting out of federation ‘solves’ the before mentioned data security problems.
We have the component 90% ready for open source, just install docs to tidy up.
8. Enterprise - Microblogging - IM - Email
Text Based Commands
Help Command
Cleartext microblog, version 0.1.11.
Commands:
"me" - shows who you are, your username and jid (Jabber ID)
"ers" - shows your followers
"ing" - shows who you follow
"f username" - follow this user
"u username" - unfollow this user
"d username message text" - send direct message to the user
"@username message text" - mention a user, a public message to a user
"s" - show saved searches
"s word" - save live search term
"us word" - delete live search term
"help" - show this help
Need more help? Go to the online help: http://www.cleartext.com/esm
Wednesday, 2 February 2011
How does the Cleartext solution work?
Just like Process One’s Twitter gateway, the server understands a set of commands
9. Enterprise - Microblogging - IM - Email
Custom Stanzas
Help Command
<message id="153" from="dbanes@cleartext.com/9643007101295859746231576" to="cleartext.cleartext.com" type="chat">
<body>help</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<x from="dbanes@cleartext.com/9643007101295859746231576" stamp="2011-01-24T10:46:10Z" xmlns="urn:xmpp:delay"/>
<x xmlns="http://cleartext.net/mblog">
<buddy type="sender">
<displayName>dbanes@cleartext.com</displayName>
<userName>dbanes</userName>
<jid>dbanes@cleartext.com</jid>
<avatar type="hash">56a03afdd9ab286d43c8f1715fac013d4c53f15a</avatar>
<serviceJid>cleartext.cleartext.com</serviceJid>
</buddy>
</x>
</message>
Wednesday, 2 February 2011
We have a set of custom stanzas that the client and server understands
10. Enterprise - Microblogging - IM - Email
Server Response
Cleartext microblog, version 0.1.11.
Commands:
"me" - shows who you are, your username and jid (Jabber ID)
"ers" - shows your followers
"ing" - shows who you follow
"f username" - follow this user
"u username" - unfollow this user
"d username message text" - send direct message to the user
"@username message text" - mention a user, a public message to a user
"s" - show saved searches
"s word" - save live search term
"us word" - delete live search term
"help" - show this help
Need more help? Go to the online help: http://www.cleartext.com/esm
Wednesday, 2 February 2011
11. Enterprise - Microblogging - IM - Email
Custom Stanzas
Follow Command
<message id="41" from="dbanes@cleartext.com/4732502611296587389793170" to="twitter.cleartext.com" type="chat">
<body>f noornet</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<x from="dbanes@cleartext.com/4732502611296587389793170" stamp="2011-02-01T19:23:38Z" xmlns="urn:xmpp:delay"/>
</message>
Server Response
<message from='twitter.cleartext.com' to='dbanes@cleartext.com/4732502611296587389793170' type='chat'>
<body>User noornet has been added to your following list</body>
</message>
Wednesday, 2 February 2011
12. Enterprise - Microblogging - IM - Email
Custom Stanzas
To Tweet...
<message id="156" from="dbanes@cleartext.com/9643007101295859746231576" to="cleartext.cleartext.com" type="chat">
<body>it's time for end of month expenses please</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<x from="dbanes@cleartext.com/9643007101295859746231576" stamp="2011-01-24T10:49:05Z" xmlns="urn:xmpp:delay"/>
<x xmlns="http://cleartext.net/mblog">
<buddy type="sender">
<displayName>dbanes@cleartext.com</displayName>
<userName>dbanes</userName>
<jid>dbanes@cleartext.com</jid>
<avatar type="hash">56a03afdd9ab286d43c8f1715fac013d4c53f15a</avatar>
<serviceJid>cleartext.cleartext.com</serviceJid>
</buddy>
</x>
</message>
Wednesday, 2 February 2011
13. Enterprise - Microblogging - IM - Email
Custom Stanzas
Incoming Tweet...
<message from='cleartext.cleartext.com' to='dbanes@cleartext.com' type='chat'>
<body>@admin: my expenses will be late</body>
<x xmlns='http://cleartext.net/mblog'>
<buddy type='sender'>
<displayName>Ozzie</displayName>
<userName>admin</userName>
<jid>admin@cleartext.com</jid>
<avatar type='hash'>ed90623da0e6963516abce705dd24bf0e84a03bd</avatar>
<serviceJid>cleartext.cleartext.com</serviceJid>
<text xmlns='http://cleartext.net/mblog'>my expenses will be late</text>
</buddy>
</x>
</message>
Wednesday, 2 February 2011
15. Enterprise - Microblogging - IM - Email
XMPP Goodness
• Customers can add their own bots e.g. CRM’s can tweet
• DM’s become regular IM sessions (push)
• We can use a users profile (vCard)
• All messages to/from all end points are;
• Archived
• URL scanned
• Image Scanned
• etc...
Wednesday, 2 February 2011
Simple extensibility that any developer can work with and get results quickly.
16. Enterprise - Microblogging - IM - Email
CRM’s can Tweet
$conn = new XMPPHP_XMPP('xmpp.service.net', 5222, 'our_crm', 'our_password', 'xmpphp', 'service.net',);
try {
$conn->connect();
$conn->processUntil('session_start');
$conn->presence();
$conn->message('cleartext.service.net', $this->session->userdata('userfullname').' edited customer: '.$_POST['customer_name']);
$conn->disconnect();
} catch(XMPPHP_Exception $e) {
die($e->getMessage());
}
Wednesday, 2 February 2011
Many libraries that allow customer IT staff to put data feeds together, for example our CRM is built with PHP so it’s as simple as
this.
17. Enterprise - Microblogging - IM - Email
Summary
• PubSub extra work, lack of client support
• XEP-0277 not ready for prime time?
• We don’t think federation is important to business yet
• A federated microblogging platform is more about data
security than protocols and routing
• The ACL problem is non-trivial and an admins nightmare
• Join/fork us at Github - a solution that works now.
Wednesday, 2 February 2011
Does PubSub address data security questions?
Microblogging over XMPP - xmpp.org/extensions/xep-0277.html
Lowest common denominator being XMPP messages
We needed an EIM client anyway
Github will have code, docs which include install help and custom stanza details