DataSnap is a complete middleware technologoy that ships with Delphi XE6 Firemonkey. DataSnap is available as a client and server in Delphi, C++Builder, and AppMethod. The documentation about DataSnap is quite extensive and has some interesting information contained within it. For example, there are DataSnap clients for Objective-C, CSharp, and finally Java (with support for Android Blackberry) in addition to the DataSnap components in Delphi and C++ builder. These clients are called DataSnap Mobile Connector and allow you to talk to a DataSnap server from various popular languages other than Object Pascal and C++. DataSnap supports TCP/IP, HTTP, and HTTPS transport protocols. Data is usually passed via JSON between client and server. DataSnap servers can be either a stand alone application, ISAPI, or Apache WebBroker. There are a number of samples that ship with Delphi demonstrating the usage of DataSnape. Here is a list of the samples:
Authorization -- Role Authorization Sample
Basic -- Basic DataSnap Client and Server Samples
ChatRoomDemo -- Chat Room Sample
Failover -- DataSnap HTTP Tunneling Sample
JSONViewer -- JSON Viewer Sample
ProxyGenerator -- Proxy Generator Sample
SessionStoreObject -- Session Store Object Sample
ShowSessionData -- Show Session Data Sample
EchoToChannel -- Echo to Channel Sample
If you are going to be building infrastructure with DataSnap it is probably a good idea to browse the DataSnap documentation to get a feel for the technology prior to architecting your usage of it.
Head over and check out the full documentation for using DataSnap with Delphi XE6 Firemonkey.
There is also an hour long lesson video by David I. from Embarcadero on building multi-tier apps with REST/JSON which you can access here.
And finally there is a second half hour video from David I. about creating and consuming a custom DataSnap REST API.