Read Part 1: Enabling the Mobile App?
A new architecture for a new world
As seen in the previous post the real challenge is what lies behind the app. The solution, for many, is to move to a new type of architecture where code can be shared and re-used across many different use cases. Business logic needs to be contained in one place which all client applications reuse. Client applications become essentially UI developed for the specific environment in which they run (phone, tablet, desktop and so on).
Developers only need to maintain the majority of an application’s functional requirements within a single code base around which they can build a suite of tests (such as Unit Tests), implement security and manage a single deployment process. Like the business case for hybrid the case for such a new architecture is compelling as it reduces time and cost over the Application Lifecycle. In addition it becomes faster and easier to develop and deploy new clients.
One such approach is Service Orientated Architecture (SOA) which makes use of a middleware layer of Web Services. Web Services have been around for some time and there are a number of frameworks and tools for creating them both from vendors such as Microsoft and IBM and Open Source solutions. The traditional Web Service used the Simple Object Access Protocol (SOAP) which is still popular within the enterprise today. Whilst SOAP had developer benefits such as the “WSDL” which made it easy to discover service methods and data structures it requires a lot of XML formatted data to be passed between client and server.
Any developer working with SOA to support mobile apps must consider the size and speed of data over the wire or risk users incurring prohibitive usage costs and poor app performance. Therefore when building for devices it is important to not just consider the code within the app itself but also the communication with the server and the performance and security of the server based code.
Developers need to consider their responsibilities in creating backend services. An example is that in traditional client/server development it has been easy to have databases return large record sets to the client (in the event that any of those fields are needed in future). When data starts moving across mobile networks it is not just the format that is important but the volume. If an app only needs five columns from a database table then only return five as that will keep the data packet size to a minimum.
Use tools such as mobile simulators to mimic different types of network and bandwidth availability to check the impact on app performance and optimise accordingly. Don’t forget the “no network connection” scenario and handling any offline data change operations.
Choosing the right tools and frameworks should help developers create, analyse and optimise all areas of development and so create secure, high performing and usable apps.
Building for success beyond today’s mobile needs
The challenge for organisations is how fast they can move to this type of architecture to support the burgeoning suite of mobile apps that their business require. Many will look for ways to stop-gap the situation to roll out mobile apps whilst addressing the bigger architectural shift. That approach may require wasted effort as interim solutions are scrapped later but could provide useful learning opportunities. Existing technology choices will dictate how and therefore how fast this transition can be made.
As we move into a rapidly changing world of devices it would behove organisations to adopt technology stacks that enable not just the ability to share data and logic with multiple user endpoints but also to be deployed to the Cloud.
Smart IT functions that get this transition right will deliver significant competitive advantage and cost savings for the businesses. We are only at the beginning of a wave of new devices and functional requirements that extend applications beyond the company firewall.
This is especially relevant within the enterprise which has historically been able to move slowly in adopting IT trends. Now (and increasingly going forward) they will be under pressure from inside and outside the organisation to move far more quickly. The decisions they make now to support mobile may have repercussions for some time to come.