<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<b id="internal-source-marker_0.10839117830619216" style="color:
rgb(0, 0, 0); font-family: 'Times New Roman'; font-size: medium;
font-style: normal; font-variant: normal; letter-spacing: normal;
line-height: normal; orphans: auto; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px; font-weight: normal;">
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">So for
offline and sync for 2.0 I’ve been doing some
thinking/research and come up with some broad topics to
discuss so we can start honing in on what we want it to
do/look like.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">This
isn’t a spec, this isn’t a proposal, this is just trying to
narrow down what we want at a high level so we can pick things
to focus on.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">1.
Documents vs Transactions</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">There
are two “big picture” methods of doing sync. One is a
Document sync (Think like a gallery with videos and pictures).
Documents are saved, the whole document is sent to the
server, then the whole document is pushed out to other clients
who are syncing against the same source. The other is a
Transactional sync where many small atomic operations are sent
to the server. The best analog I have is Google
Drive/operation transforms. </span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Obviously
the server side implementations of these are hilariously
divergent and I will leave the relative complexity of each as
an exercise for the list.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">2.
Background vs Foreground sync</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Does
the application have to be opened (foreground) for syncing to
happen? As far as I know, native Web requires this (barring
extensions to the browser, plugins etc). I think Cordova can
in Android, but I haven’t researched it. iOS seems like a
mixed bag, but generally you can only sync if your application
is in the foreground (but you can use notifications and badges
to communicate that there is a pending sync or new data). I
understand there is CoreData + iCloud that is supposed to do
something, but that seems like it is still foreground only.
On Android background sync is easy.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Is it
OK to only have background syncing on some platforms but not
others?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">3.
Push vs Poll?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Obviously
pushing updates is better for devices and users, but polling
will let things work better for legacy services which may not
have push support or which may be difficult to integrate into
AG-Controller.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Should
we support both on the clients?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">4.
Multiple clients,multiple users, and conflicts</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">How do
we want to support multiple users and multiple clients? How
should we try to do conflict resolution? What does
authorization and authentication look like here?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">At a
high level here are some options I have seen for conflict
resolution:</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> A.
Last in always wins. The server explicitly trusts things in
the order it gets and pushes that data out to users.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> B.
Clients are allowed one submit at a time and must wait for
the server to acknowledge the receipt. If there is a conflict
the app can either a) merge the data, b)reload the latest from
the server and make the user do his operation again, or c)
create a new document and inform the user.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> C.
Operation Transforms. This was meant to solve the conflict
and sync problem. However it is a LOT of work</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">5.
Offline Support</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Really
this is more what do we want to do for coming from an
“offline” mode to an “online” mode? Abstractly, operations
which happen offline are the same as operations which happen
online just with a REALLY REALLY laggy connection. :) We
could just only viewing data when offline and requiring a
connection for editing, queueing an upload, etc.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">6.
How much of this is the responsibility of AG-controller vs
underlying services?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">How
should the controller expose resources to clients, how should
the controller send data to its underlying services, how much
data should the controller be responsible itself for?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Should
it be easy for an Operation Transform system to integrate with
AeroGear-controller? </span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Should
it be easy to write a Controller based project which polls a
third party source? </span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">How
would the server handle passing credentials to the third party
source?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Appendix
Use Cases:</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Here
are a few contrived use cases that we may want to keep in
mind.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">1.
Legacy Bug Trackers From Hell</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> a.
It is a webapp written in COBOL, no one will ever EVER update
or change the code</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> b.
It has TONS of legacy but important data</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> c.
It has TONS of users </span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> d.
It only has a few transactions per day, all creating and
updating bug reports</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> e.
Multiple users can edit the same report</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">2.
Slacker Gallery</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> a.
Each User has a multiple galleries, each gallery has multiple
photos</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> b.
A Gallery has only one user, but the user may be on multiple
devices</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> c.
Galleries may be renamed, created, and deleted</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> d.
Photos may only be created or deleted. Photos also have meta
data which may be updated, but its creation and deletion is
tied to the Photo object.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">3.
Dropbox clone</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> a.
A folder of files may be shared among users</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> b.
There is a size limit to files and how much storage may be
used per folder</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> c.
Files are not updated. If there is a new file, there is an
atomic delete and create operation</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">4.
Email client</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> a.
This is an AG-controller which accesses a mail account. </span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> b.
There are mobile offline and sync enabled clients which
connect to this controller.</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">5.
Google Docs clone</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> a.
Operational Transform out the wazzoo</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> b.
What would the server need?</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;"> c.
What would the client need?</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Appendix
Reference (Open Source) Products:</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Wave-in-a-box</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">CouchDB</span></p>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Google
Drive RealtimeAPI</span></p>
<br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span><br>
<span style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration: none;
vertical-align: baseline; white-space: pre-wrap;"></span>
<p dir="ltr" style="margin-top: 0pt; margin-bottom: 0pt;"><span
style="font-size: 15px; font-family: Arial; color: rgb(0, 0,
0); background-color: transparent; font-weight: normal;
font-style: normal; font-variant: normal; text-decoration:
none; vertical-align: baseline; white-space: pre-wrap;">Can
you guys think of more projects/examples to look at for
inspiration?</span></p>
</b><br class="Apple-interchange-newline">
</body>
</html>