I have to develop a database application in vb.net 2005 with the following rules

1. The application connects with an online mysql database (i.e database resides on a remote machine)
2. The application has no local database but it should have a local cache to stores new records and the
changes made to the existing records should also be stored in the local cache if the connection with
online mysql database fails
3. The changes in the local cache should be updated in the online mysql database when the connection
with online database server becomes available
4. A search feature is also required

I am not sure, how to achieve all this. Please help me out.