Salesforce Powered Mobile Apps - Shifting enterprise focus
The Importance of Mobile
It is important for enterprise software providers to continually supply updated IT solutions that not only exceed business objectives, but also, meet the demands of today’s shifting technological landscape. Over the last five years computer technology has changed drastically towards mobile computing and given rise to cloud based computing. In fact, according to the 2015 internet trends report users now spend 51 percent of their time on mobile devices compared to 42 percent of their time on desktop computers making it important for enterprise software companies to stay on top of mobile computing as it is quickly becoming the dominant computing platform.
The rise of mobile computing goes hand in hand with cloud based technology. By moving more resources to a cloud-based model it becomes considerably easier to create a central connection point for a variety of devices to sync with. The cloud also provides increased elasticity as companies can scale to meet increased demand, or deprovision to not waste resources. The switch to the cloud and mobile also improves the development and upgrade cycles to where apps can be built in a matter of months through continuous development and download cycles, not major IT deployments. The speed, flexibility and scalability of these new solutions mean that all enterprise companies should deploy mobile applications to the cloud.
Mobile applications backed by cloud hosting provide benefits through improved access to key data, analytics, workflow tools, and communication with remote resources. These benefits have given rise to a whole new set of opportunities and optimizations for applications such as mobile time card submission, cost-accounting software, and real time communications. All of which combine to produce more effective result driven decision-making through improved access to data and resources.
In this paper, we will discuss the business advantages of mobile focused apps with distributed cloud based architectures and the methods behind implementing this within the Salesforce ecosystem.
Shifting Enterprise Focus To Mobile
The shift to mobile computing does not simply include building a mobile app; it involves an infrastructure change to support mobile first software. According to a new study conducted by the Harris Poll (on behalf of Appian companies) companies are beginning to shift their focus to enterprise mobile solutions, not just mobile apps, but holistic approaches to mobile computing opportunities across the entire IT infrastructure. The study concluded that 73% of the respondents companies are planning to mobilize their entire organizations. When creating a mobile IT organization it is important to start with the server side architecture and ensure the design supports a distributed model where many different types of devices access your backend resources.
The airline industry has implemented this effectively both in in-flight travel and ticket sales. They have developed apps that allow customers to check into flights and take advantage of in air accommodations such as Wi-Fi, movies, and flight logistics. In addition to apps, the airlines have leveraged mobile kiosks for everything from ticketing to bag checking. In order to accomplish this, their backend systems must be able to refresh and display data to multiple devices, operating systems, and applications. The airline industry has been able to accomplish this by creating scalable backend systems that can handle the variable load associated with airline traffic (i.e. the holiday rush), along with the security risks associated with computing mainly; data encryption, identity access, authentication/authorization, and compliance.
Handing all of these vectors is daunting for any company, which is why many organizations turn to traditional cloud computing companies to supply the backend infrastructure necessary to scale and secure the application, while they focus on developing the client facing applications themselves. Salesforce, as a prominent cloud computing company, has seen this shift and has quickly worked to capitalize on these new business vectors with the release of its Force.com REST API Developer Kit and Mobile SDK.
For companies already relying on the Force.com platform Salesforce’s quick adoption of mobile friendly technologies makes it considerably easier to transition into a mobile first mindset by building on existing infrastructure to transform the existing platform into a mobile friendly solution without losing any of the benefits of the existing Force.com infrastructure.
Force.com REST API
In the past Salesforce has utilized SOAP (Simple Object Access Protocol) in order to communicate; however, this requires a significantly more code in order to operate and only utilizes POST over HTTP. Typically for SOAP requests each service provider is explicitly defined with a XML structured request and response. This is typically codified into a WSDL (Web Service Description Language), which can be thought of as a contract between the provider and the consumer of the service. This protocol requires strong contracts and is thus more difficult to scale and implement across a variety of devices and operating systems.
These shortcomings have helped to push the current trend in software development away from SOAP and towards REST (Representational State Transfer), a stateless architectural pattern built on top of the HTTP protocol. REST allows for greater visibility, reliability, and scalability by providing a stateless clear separation between the client and the server. Instead of explicitly defining XML structured requests and responses REST is data driven and utilizes hierarchically structured URI requests to transfer data using HTTP standard verbs (GET, PUT, POST, and DELETE). Another advantage of REST architecture is that GET methods can be cached, allowing for faster lookups and better overall software performance. SOAP only utilizes the HTTP POST method, which does not allow caching unless certain headers are present, and even then some browser’s will not cache the request. For distributed applications across a variety of systems caching becomes an important optimization, this along with the fact that a REST API is always independent of the type of platform or programming language used makes it the better choice for developing mobile first IT infrastructure.
REST does not have to utilize HTTP for transport; however, little to no development has taken place to tether REST to a different transport protocol.
The Force.com REST API provides a simple Web services API for interacting with Force.com in a RESTful manner while still allowing for the usage of the same underlying data model. The REST API allows for communication utilizing the REST architecture pattern and for a more decoupled architecture providing lighter weight communications between producer and consumer. These attributes make REST a popular building style for cloud-based APIs and distributed scalable systems associated with a mobile first approach.
Ideally by using the Force.com REST API the server side processes can now easily support a series of different devices all interacting with your Force.com backend. A reliable highly adaptable backend IT infrastructure allows for more investment into customer facing products that help to drive business goals. In order to build the client facing application it is crucial to connect the client side application, in a reliable and scalable way, to the backend infrastructure. The connection from the client application to the server side application is where the Salesforce Mobile SDK comes into play.
Using Mobile SDK
The Salesforce Mobile SDK is an open-source suite of familiar technologies—REST API and OAuth 2.0—that you can use to interface with server side endpoints created with the Force.com REST API. The Salesforce Mobile SDK supports three development approaches for building mobile apps: native, HTML5, and hybrid. You can learn more about the pros and cons of these options here.
OAuth is a commonly used secure authentication methodology consisting of several different flows. Salesforce utilizes the bearer token flow with JWT tokens which is considered the most secure option and this comes standard with the Mobile SDK. It is worth noting that OAuth covers authorization and not authentication meaning the development team must still implement a permissions system inside of the application to ensure proper authentication for resources.
The Mobile SDK lays out a set of tools that leverage authorization through the Salesforce OAuth protocol and generate authorized REST requests to securely access backend resources on your server. The SDK ensures that all of the security benefits you receive on the native Force.com platform carry over by enforcing its bearer token authentication flow. The Mobile SDK provides a standard process to access server side data across all mobile platforms; however, at Acumen we typically recommend utilizing the Mobile SDK with the iOS platform because Apple provides excellent software and hardware support as well as enforcing security best practices through end to end encryption and app transport security. The Mobile SDK also interfaces with Cocoapods, a dependency manager for Cocoa projects (iOS projects are based on the Cocoa framework) that has over 23 thousand libraries and is used in over 1.1 million apps.
With Cocoapods and the Salesforce Mobile SDK it is relatively easy to setup the client side API and authentication flow for an application allowing developers to focus on rich front-end applications. Innovative front end applications can work to transform the way business takes place and are changing the enterprise landscape from inflexible monolithic applications to modern platform-driven IT architectures that enable digital, real-time enterprise. Companies need only to look at how airlines have transformed the flight booking experience, or how Slack has transformed enterprise collaboration through user friendly front end features to see the vast array of opportunities that exist in mobile first cloud computing. With the Mobile SDK’s easy integration through Cocoapods and the Force.com API your company can unlock the power of mobile computing era while leveraging the Force.com platform.
Conclusion
The rise of the cloud based computing and mobile computing has not only exposed new exciting business vectors; but has also greatly increased the complexity of the technological landscape. In order to compete across these new verticals companies must invest in updating back end architecture to support scalable distributed systems that allow for interaction with a variety of front-end applications.
Sources:
- https://www.slideshare.net/kleinerperkins/internet-trends-v1/30-30While_Consumer_Internet_EntrepreneursOften_PursuePersonal
- https://www.channelinsider.com/mobile-devices/slideshows/the-rise-of-the-mobile-enterprise-is-upon-us.html#sthash.r91KFww2.dpuf
- https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- https://oauth.net/2/