BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
With the rising importance of mobile for executing new business services, many organizations are taking a closer look at developing better enterprise architectures for leveraging the cloud and back-end services, said Jeff Davies, senior principal product manager at Oracle. Davies, in attendance at the JavaOne 2014 conference, advocates that organizations use tools such as service busses and develop lightweight architectures that can provide benefits in a month or two. This approach enables organizations to wrap the underlying enterprise and cloud services in such a way that they are easy to use.
A key component of this new era of mobile development has been the rise of REST as a ubiquitous way of integrating cloud-based services and enterprise applications running on Oracle, SAP and IBM mainframe systems. This applies not only to consuming mobile services, but also to making it easier to roll out new Web applications.
Davies said many organizations dive into mobile without changing the underlying architecture. As a result, they end up building a hub-and-spoke architecture around the phone as the integration point. He believes this is the wrong way to implement mobile integration. Just because these services are implemented as REST does not mean an enterprise has adopted a good architecture. For example, an application for generating a list of customers that purchase a product often resides across multiple back-end cloud and enterprise applications. A good practice is to create REST services that are application-neutral. When an order is placed, the intermediary service can push different parts of the transaction to the order systems, billing systems and CRM systems that are transparent to the device. This approach helps keep mobile engineers from being integration engineers so they can focus on applications that interoperate logically with the enterprise.
Making the leap between facades and services
An SOA approach helps hide the underlying details. Davies argued that developers already understand the basic principles of this approach. Typically, modern applications are written using facades that provide a simple interface to a larger body of code. Davies has found that enterprise architecture concepts are easier to communicate to developers when framed within a context they already understand.
Coding applications using facades helps ensure best practices without a lot of thinking during development. For example, developers often use facades to hide inner and factory classes. Similar principles are also used for hiding complexity at the enterprise level. This is a mind shift for treating enterprises like an application, Davies said.
Mobile developers are not always comfortable or skilled in writing the enterprise integration logic required to be successful in the long run. A key thing to keep in mind is that mobile developers need to be focused more on developing a good architecture than on writing REST interfaces.
Davies has seen a lot of architectural groups fail because the tendency is to elevate the architectural team in terms of status and pay rather than focusing on the architectural goal. As a result, many enterprise architects don't have the interpersonal or technical skills to communicate effectively with development teams.
Everyone on the business and development side should understand what the architecture is intended to accomplish and why individuals may be resisting. Without such understanding, business managers go around architects, procuring cloud services to fulfill business needs without heeding the long-term business ramifications. Developers may also write applications in ways that are difficult to update.
For these reasons, Davies recommends enterprise and cloud architects embed themselves within the development teams. It is important to be with the team on release nights and to learn about the problems that occur. Being an architect does not make someone better, it just means they have a different focus, Davies said.
Embracing the mobile imperative
Geoff Poremba, director of mobile strategy at Oracle, said the rise of mobile applications is leading senior business executives to rethink the need for a better architecture and how they think about properly architecting applications. The imperative now is to build service-oriented architectures that make it easier to create and change business service capabilities in a timely manner.
Business executives are realizing that if they don't have a mobile strategy, they don't have a business strategy. As a result of the shift to the cloud and mobile, many organizations are starting to think more seriously about Agile development practices. But Poremba cautioned against adopting an Agile strategy in name only. He said many organizations have bought Agile development tools and processes but have seen few improvements. One company he worked with spent hours in meetings about Agile and used tools that were cryptic and arcane. As a result, the project ground to a halt.
A lesson to be learned is that actually creating the conditions for good architecture is more important than creating a separate enterprise architecture role within the business. For example, Sébastien Blanc, Red Hat's senior software engineer for mobile development tools, does not have any enterprise architects in the group. Rather, the role is spread across the team and the practices they embrace.
Blanc noted that architects are often full of ego, drawing diagrams and not programming. On his team, everyone can contribute to the architecture. For example, software engineers receive peer feedback about how new application code will affect the enterprise architecture. As a result the development team is able to create mobile software in a way that eliminates the need for management overhead.
Learn more about SoMoClou: Social, mobile and cloud technology
Take an in-depth look at the latest in enterprise application architecture