Developers love cloud services. A well constructed REST API makes integration and application development easy. There are a bunch of great REST APIs out there. There are public web services like S3, BigTable, and DynamoDB available from Google, Amazon, and Azure. There are also API marketplaces from companies like Mashable that publish services for enterprise applications. Many other services are constructed "in house" for data access or other purposes.
And REST APIs are becoming incredibly important for application development. Mobile devices like phones and tablets must use REST APIs for collaborative activities and database access. The new generation of wearable devices and the Internet of Things also depends on REST APIs. Developers use REST for server to server or desktop to server communication as well. It's just a matter of time until legacy HTML websites are rebuilt with the same REST API that all these other devices are already using.
But all of these services have different characteristics. Some use XML, some use JSON. Some use SOAP, some use REST. Some use HTTP headers, others use URL parameters. An HTTP service might require GET, PUT, POST, or DELETE. Each service has unique user authentication and security requirements. Some important assets like SQL databases don't have a REST interface at all, developers have to build one. Others like NoSQL databases might have an interface but can't be called from a client due to security constraints. Unfortunately developers have to figure out how to navigate this API jungle.
If that wasn't bad enough for developers, their companies end up being locked in to all these services. For example, a mobile application written in HTML5 and PhoneGap will include external service calls embedded in JavaScript. A native mobile application for iOS, Android, or Windows 8 will include external service calls in the Objective C, Java or .Net code. Since this compiled code is deployed on a phone or tablet, changing a service can require an employee to visit the App Store for updates. Server side code can also have this problem and require an expensive rewrite to change a service integration.
Companies locked in to a proprietary service lose the flexibility they need to make good decisions. What if a service becomes too expensive? What if application requirements change? What if a better alternative becomes available? What if an application needs to be moved between clouds? From development, to testing, to production? From inside to outside the firewall? Between geographies or data centers? An enterprise needs the flexibility to change services as needed without disruption or expense.
The DreamFactory Services Platform (DSP) is the perfect solution for preventing cloud lock-in. First off, you won't be locked in to our product, because DreamFactory is an open source software package that is easy to install on your private cloud or any other server. We provide installation packages for AWS, Azure, BitNami, VMware, Redhat, CentOS, Debian, and Ubuntu. We offer a commercial license and support package for customers who need one but otherwise this is a completely free and open source software package written by service API experts.
Related reading: Avoiding Cloud Lock In With Service Virtualization.
We make it easy to hook up almost any kind of SQL database, NoSQL database or file storage system, and expose these assets with a comprehensive palette of RESTful services. SQL database support includes MySQL, SQL Server, DB2, Oracle, and PostgreSQL. NoSQL databases include DynamoDB, SimpleDB, Azure Tables, MongoDB, MongoHQ, and CouchDB. For file storage we offer Amazon S3, Azure Tables, and OpenStack Objects. User management features include password hashing, single sign-on, OAuth, Active Directory, Guest Users, and Open Registration. Security services include the ability to control access to all backend assets through detailed user roles and permissions. Lastly, we can perform external service integration with URL parameters and HTTP headers.
The picture above shows how DreamFactory solves the service lock-in problem. On the left hand side we can hook up to a wide variety of SQL databases, NoSQL databases, and file storage systems, both in the cloud and on premises. But on the right hand column our service platform exposes these assets with a single comprehensive, generic and unified REST API designed for software development. As long as developers use this API they can swap out any of the backend services without changing the client application! Our REST API acts as a "mediation layer" or "service broker" to prevent lock-in to proprietary cloud services.
There are additional advantages to using the DreamFactory Services Platform. Now developers have a single REST interface for all of these backend systems. They can use a new service without building or even learning a new API. They have a single user authentication model with roles and permissions. They have a single security model through SSO. All master credentials to backend systems are securely hidden by the platform. We also make it easy move applications from one DSP to another. This is perfect for deployment on different clouds or data centers. This capability eases the transition from development to testing to production.
In addition, developers don't have to write server side code for important tasks like REST enabling a database. Many authentication, management, and security issues are also handled by the platform. In most cases there will be no need for Developers to write server software at all, and this allows smaller teams or even a single engineer to write great service based applications. We provide dynamically generated SDKs for iOS, Android, Windows 8, and JavaScript. All a developer has to do is hook up the backend system and call the SDK.
Thank you for reading this long blog post! Please come to our website and either download the DreamFactory Services Platform or sign up for our Free Hosted Edition. Here are some useful links, below.
Sign up for the Free Hosted Edition of the DreamFactory Services Platform:
https://www.dreamfactory.com/user/register
Install the open source software package with the DreamFactory Services Platform:
https://bitnami.com/stack/dreamfactory
Here is a movie that provides more detail on how DreamFactory stops cloud lock-in:
https://www.youtube.com/watch?v=JGiTltbiLgs