I4 Data Saving Technical Note
Clients
Each of the I4 data clients is used in a different way, and has its strengths and weaknesses.
UrlClient
- Can send via batch (via module)
- Can send a manifest
- Can be called from a module
- Cannot perform queries
- Cannot fail-over if connection dies (domain of web browser)
XmlSocketClient
- Can send via batch (via module) or real time (via Xml setting)
- Can send a manifest or a live database
- Can be called from a module
- Can perform queries
- Can fail-over if connection dies to saveStepByStep
CacheManager
The CacheManager (_cacheManager) is used to store manifests. UrlClient and XmlSocketClient use the CacheManager APIs to retrieve manifests (value pairs, time stamps, load history and version information) to send. The CacheManager supports:
- Saving a manifest in bulk
- Saving a manifest in pieces (e.g. step by step)
- Restoring a navigation from a manifest
Database
The Database is used by CacheManager to collect the data for its manifests. It is also used by XmlSocketClient to send data while connected and saving step by step.
Step-By-Step
-
always writes to Manifest in pieces, and xmlsocket if defined (in xml) sends the data bits over the wire