Tip:
Highlight text to annotate it
X
flip is a technology to make real-time collaborative applications
So we'll first see why make real time collaborative applications
and later How does it technically works and why it can make you developer faster.
Google Drive spreadsheet is the best when it comes to sharing figures
and team working because it allows real-time collaboration
but we also know it's limited by performance and lack features compared
Microsoft Excel. With flip you can build a fully functional
native application but still collaborative
in fact it's all about workflow. In the sequential workflow
users have to exchange files one after the other
this breaks workflow
and the more numerous users there are the more painful it is
moreover if they work at the same time conflicts happen
and in some cases were could be lost
with the parallel workflow all users can edit the document
at the same time. They don't have to wait for each other every user can modify the
same document at the same time
rather that waiting for their turn. It's more efficient
because it can do just more the sequential. So if your application
is used by more than one person, ask yourself
what it could become if they might work on the same thing at the same time
with no errors with no loss
flip is it data model API. Basically
in a model-view-controller design flip manages your model
therefore flip is something close to Apple's core data technology
except that it manages real time collaboration, is cross-platform
and we believe is easier to learn and to use
let's study in own studio like architecture
here a user application asks the server to join a document
the central
server on AWS Ubuntu hosted by Amazon Web Services
instantiates specific flip server process that will handle this document.
Every new client that connects this document will download the current state.
Every model modification
leads to a transaction, that is first applied locally immediately
and then sent to the server.
These transactions could be refused by the server when it detects conflict
or a possible corruption
Let's take for example a very simple application with the star
and a square. Users can move them
or make them unmovable.
A conflict will happen for example if Peter makes
the star unmovable and almost at the same time Stephen moves it.
Unmovable transaction arrives first, and is accepted by the server
whereas Stevens' moves is refused.
When "unmovable transaction"
arrives to Steven, Flip rolls back the move action, as it wasn't confirm by
server yet
and applies unmovable action. Then Flip tries to apply
again the move action but cancels it when it discovers it is now impossible.
A bit later, server confirms that the move transaction is refused.
Of course this kind of conflict is rare and happens faster.
But at the end, everything is kept in sync by Flip
without lock mechanisms.
Flips manages undo and redo operations.
When you'll modify your document, you'll specify when you start and when you end it.
Then Flip will create the corresponding transaction, and send it to
the server
Flip will play the transaction backward for an undo operation, and
forward for a redo operation.
So as a developer,
you won't have to create tons of "action classes" where you have to code a
revert function for every action.
This was time consuming and used to generate lot of bugs.
That's why we
also use flip for standalone applications. Here is a couple of examples.
The memory and CPU footprint is as low as possible, so we develop faster,
more reliably and with great performances.
For standalone usage, the server is as if embedded in the application.
Another key point is that during a real time collaboration,
Flip will treat users' action stacks
independently.
Here is an example with two users.
They duplicate 4 times a pattern then undo
then redo
We see that a user won't undo an operation done by another user
which would really mess things up.
a small HTTP
server is embedded the sample code and shows you important data
memory and CPU usage, number of connections
number of transactions per minute,as well as logs and running sessions details...
This tool helps you understand your application's usage and detect issues.
That's also a good way to check good performances!
We've been working with Flip since 2007. It has been used in production for 2 years
and during that period we encountered only 2 bugs due to Flip.
We consider this technology mature and stable.
Here's a summary of why using flip is great.
Making real time collaboration application becomes possible
and easy to do. No more synchronization issues.
Your development will be easier as you won't have to manage undo and redo operations.
The CPU and network usage is very low.
It's design to go in the cloud and taking advantage of storage capability
We haven't encountered
a single bug in FLIP in more than a year
That's easy to develop with:
That's easy to develop with:
you just code as if this is a single user app.
So now, check our page to download the API and watch our documentation.
It's under GPL2.0 license so you can test it
and build open source applications with it for free. for any technical question
use the sourceforge forum. For any commercial question,
contact us.