What is “Instant Communication”
First things first. What is this all about?
We say this is “Instant communication” or “Near real-time communication” and indeed, this is about communicating,
talking, sending messages, sending other information, documents. Instant or real-time means, whatever you send, is sent
right away, it is also delivered right away.
Would the receiving person get it right away too? Well, it depends, if the person is online, it gets it right away and
can respond right away.
Messaging really means chatting, talking. It’s not just sending and receiving messages. You send a message, friend
receives it in real-time and can respond right away. You see the full chat history, context, you just talk. And
you can chat with many people at the same time, in what we call group chat rooms. It’s like sitting at the table
with friends and talking to them.
What special about this system is, that You know if your friends are online. If you send a message to online friend you
can expect his response right away, if he is offline, you know about it and you know you may have to wait for a response.
No guessing. This is the “Presence” part in the title. Presence is just a status of the other person: online, offline,
busy, away, and so on… So you not only can send a message to your friend instantly but also can know his current
status, also in real-time. As soon as somebody changes his status, you know it right away.
Presence is also much more than just online status. Presence can optionally carry on additional information, like
location, mood, what your friends are listening to and just anything your friend chooses to share with you.
And… “last but not least”, the system is not just for people talking. It’s for devices as well. Anything that can send
some information, share some data, update it’s status can effectively use our software. IoT is an ideal example where our
software excels and shows it’s full power.
How is it different from e-mail?
Simple enough. It all looks similar to email, send and receive messages. What’s more, even a user address looks exactly
like email. So what is the difference?
There are a few significant differences:
E-mail is not real-time and is not instant. It may be quite fast but it may also be quite slow (a couple of minutes)
until the email is actually delivered and this is still considered a norm for email messages.
XMPP is actually near real-time and instant. Typical delivery time is way below 1 second.
E-mail is not really for chatting or talking. It’s more like sending letters, longer texts. It’s not really
suitable for sending short messages or notifications.
XMPP is just for that. Chatting, talking, sending short messages or notifications. However our software has
expanded on the basic features and allows rich text formatting using Markdown language. You can
send long texts and even letters nicely formatter which are pleasant to read.
E-mail has no presence information. You send an email message but you do not know whether your friend is online,
when he gets the message, when he can read the message and finally respond. You just send an email and wait.
XMPP does have presence information. Plus all kinds of confirmations built-in. You know if your friend is online,
when he received the message, read it and you know when to expect a response. You know whether your friend is available
to talk right now or busy doing something.
E-mail was designed and created very long time ago. When the high security and privacy was not such a big concern, there was no
spam, and other attacks. Over time security of email improved but there are many different techniques and standards not always
adopted by every email provider. Spam has been a huge problem for a long time and so far nobody knows how to solve it.
XMPP came to be long time after e-mail. When all the email weaknesses and problems were well known. So it was designed
from ground up to solve the problems. Security is embedded in the XMPP core, privacy was the main concern and preventing
Spam and DOS attacks was taken into consideration from the very beginning.
How is it different from SMS / Text Messages?
SMS / Text messages are instant, aren’t they? They are sent and delivered in real-time, aren’t they?
At first, it all sounds like SMS / Texting. People chat over SMS all the time. Is XMPP any different.
There are a few significant differences:
- Presence - is completely missing from SMS/Texting. You have no idea whether the person is at their device to read
the message and text you back. You are sure, that he gets the message, usually, right away, unless their device is
turned off. But you have no way of knowing if the device is on or off, whether your friend is close by to the device,
and not busy to respond.
User address/ID - for SMS / Texting, this is just a phone number. Sure, nowadays it is kind of personal thing but if it
changes, then friends may have problem finding out your new number, may have problem contacting you at all. So you have
to take a good care of letting them know about the phone number change. But even if you have still your number and poeple
can text you, the device may be far on the table when you rest on the coach with your tablet. To read a text from a
friend or send somebody SMS you would have to interrupt your rest, find your phone and type the message on the screen.
Don’t mention about all your chat history. When your mobile is gone, all the SMSes / Texts are gone too.
With XMPP, this problem does not exist. You can have multiple applications connected to your one user address and can
chat with friends using whatever device you have handy with you. And all your friends will always recognize you as you.
And you can choose to store your chat history on the server and you can see it on any devices and app you connect with.
- Chat feedback. With SMS / Text you send a message and… wait. In XMPP, you send a message, you see when it was delivered,
you also see when the friend read it and finally you can even see when the friend starts typing response.
How is it different from Twitter, FB?
Twitter and Facebook are social networking services. Although you can send a message to other people, these services are not
really designed for effective, real-time communication. They are more like publications, where you can post a message,
a longer article, photo or just anything for people to see, when they come over to your profile.
In theory, the XMPP in it’s core can do all that can be done on Twitter and Facebook and also so much more. It’s just
a matter of implementing apps that can make use of all the XMPP capabilities.
The Tigase XMPP Server could serve as a social networking platform out of the box and there already are systems like this.
Our focus, however, is on real-time communication, hence our apps are designed as effective messaging clients.
How is it different from Skype, ICQ, AIM, FB Messenger, iMessage and others big names?
Ok, so, there are chat / messaging systems available already. They are instant and near real-time. Big brands are behind them
they are not going anywhere any time soon. They also offer voice and video calls and all the features and maybe even more.
How XMPP is different and how Tigase is different and better then?
First of all XMPP is a public and open standard. So, you know what is under the hood, how it works, you can evaluate if
it is secure. You can easily create own tools, apps, servers to connect to the world wide XMPP network. Well, the XMPP by desgin
is extensible, so you can easily customize and extend the basic XMPP protocol with more features and capabilities.
None of this is true for the big name systems.
You do not really know how your messages are sent and delivered by the big names. How your personal data is handled.
Even if you assume, they are big with big pockets, so they can implement secure systems and can take care of your data.
There are other important questions: It safe? Who has access to it? Would they sell your profile to third-party?
XMPP and Tigase for that matter allows you to deploy your own instant communication system, independent from any other,
you keep all your data, you control everything, you decide what is allowed, who can communicate with whom. And still while
having independent system for your needs, you can communicate with other users who are on XMPP.
And if you want some extra features, customization, there is no way to have it on the big name systems. You just have to rely
on what is there and adjust yourself to what is available.
How is it different from Slack?
And again, it all sounds like Slack. So similar in every aspect. Is there any difference?
Indeed there is. In principle XMPP has all the same features as Slack has. Probably even some more. The main differene
is that with XMPP you can choose software vendor (Tigase is one of them but there are many others), deploy your own
system, independent which is under your full control, you keep your data and you decide what happens with them.