An examination of the database landscape reveals that, along with social networks, big data and cloud computing have been game changers. Those responsible for existing databases, and developing new applications or services, will prudently look at the public, private, and hybrid cloud options for hosting big data and databases.
Building a new application means developers have great flexibility in choosing what architecture, network, and database platform will match requirements. But migration of an existing database to the cloud means developers must understand how the cloud database will support existing applications, with the goal being transparency and a seamless transition. Ideally, migration to the cloud should not require expensive reprogramming of applications and services.
If you are planning to host databases in the cloud, you should be attuned to platform differences, such as data model, language bindings, service-level agreements, replication, and tools for administrators and developers. You should also examine issues related to operating systems, hypervisors, authorization, authentication, and connectivity just to name a few. If you're moving existing databases to the cloud, you'll need to understand the present database and application architecture, APIs, libraries, and uptime requirements. There can be SLA, availability and licensing issues for middleware, application servers, and database servers.
This discussion is a look at some platform and connectivity options. For this purpose, think of connectivity as encompassing network protocols and data access application programming interfaces (APIs).
Connectivity: APIs and Protocols
The ascendancy of the SQL database was due in part to distributed processing based on client-server architecture. Clients ship queries over a network for processing by the database server. In this context, "client" refers to a database server client, which could be an application or service, often running on an application server or web server.
Network architectures, such as IBM Distributed Relational Database Architecture (DRDA) and Oracle Transparent Network Substrate (TNS) define specific protocols (‘wire protocols') for communicating with the database server. Sybase Adaptive Server and Microsoft SQL Server operate with their own version of the Tabular Data Stream (TDS) wire protocol. Because database wire protocols sit at a higher level in the network stack, they can operate over lower level protocols, such as TCP/IP connecting to database servers in the cloud, data centers, stores, and offices.
The client software stack for an SQL database includes libraries to implement a database access API and a network library for the platform-specific wire protocol. There are also JDBC and ODBC drivers that implement the wire protocol and therefore don't require a network library on the client.
The W3C XML specification provided a vehicle for building a new class of highly interoperable messaging capabilities, based on protocols that exchange XML-encoded messages. XML messaging provided a solution for web services using SOAP and REST interfaces. They also enabled developers to create data services that could integrate information from disparate data sources, SQL and non-SQL, and deliver it to the browser and other clients.
Companies with SQL platforms, such as Microsoft, and those with non-SQL data, such as Google, have adopted data delivery protocols based on XML and JSON data sent by HTTP: commands. AtomPub
The Atom Publishing Protocol (AtomPub), RFC 5023, uses XML and HTTP methods (
GET, POST, PUT, and
A variety of Google products expose APIs based on the Google Data Protocol (GData), which operates with data feeds that are in AtomPub and JSON format. Developers can program directly with GData using HTTP
POST requests, or they can use instead client libraries that handle the HTTP
POST processing. To reduce network round trips, GData supports batching multiple operations in a single