Mike Gilpin and Noel Yuhanna gave a presentation on how informaton-as-a-service can help your projects and applications. Many SOA implementations were focused on transactional solutions but Forrester found that many used the same service infrastructure to expose information – e.g. a customer update service which exposes the current address also. Theme: Information-as-a-service (IaaS) offers to application developers a new opportunity.
Data is typically locked into application databases and other technology silos. EAI and ETL are often used to replicate and integrate this information but it remains a challenge for business users (and customers) who struggle to find the data they want. 30% of data is duplicated, often without enough control, and unstructured data is increasingly prevalent making the problem harder. Conventional data access middleware is weak at integrating structured and unstructured data, real-time support is not great and data security can be neglected. The ties between data and application logic are also a problem as they make it hard to change and integrate data structures.
Meanwhile SOA adoption continues to grow – 22% growth between 2006 and 2007 (to about 50%) and still lots of future intent still. Before data integration used custom APIs or SQL mapping. Today many data sources are made available through SOA interfaces allowing XML to be used consistently across sources. This allows SOA to deliver services based on key business objects like Customer or Product. This might be done for a Portal or other end-user tools but increasingly also for application development. Some definitions:
An information service provides a simplified, integrated view of real-time, high-quality information about a specific business entity. Information is provided in the form needed including XML, SQL tables or files. Information is often delivered through SOA infrastructure.
IaaS is a comprehensive strategy for the delivery of information obtained from information services, following a consistent approach using SOA infrastructure and/or Internet standards. This information delivered may be required to conform to a common information model.
In their surveys people doing SOA had already using IaaS (40%+) – less than BPM but significant – and another 40% aware.
IaaS can be a better approach when:
- Multiple, numerous, diverse information sources, especially where these are systems of record
- Performance and availability are an issue due to size or distribution
- WAN-based real time access is required
- Application developers need access to information not data – scrubbed, mapped, canonical
- A data access layer is desired to support multiple applications and usage scenarios
It works less well when these are less true, though existing information services should be used wherever possible even if you would not necessarily build them for a specific project.
The IaaS use cases include a number that are relevant to developers. The first three are the most common by far:
- Enterprise Search
- High Performance Applications
For developers this is all about caching, a distributed data cache, as this is often very effective and IaaS delivers this. It eliminates I/O bottlenecks and supports scalable, distributed, grid-like architectures.
- Single Version of the Truth
For developers the ability to pull information from a service that has been aggregated and cleaned helps simplify application development. This requires a canonical model, at least for the specific business entities being presented through information services.
- Real-time BI
IaaS is driving canonical information models – 40-50% of those doing IaaS. This splits between those doing it at an enterprise-level, a business unit level and even some at the ecosystem level.
Developers using BPM/SOA to develop applications should use the canonical model while those adding to an existing application should use its model. Developers can get an IDE-compatible version so they can see and use it. They should use metadata to manage mapping and make sure they track model versioning as part of their change management process.
Forrester did a wave for IaaS vendors with a focus on application developer scenarios. IBM, Oracle, BEA and Red Hat came up as leaders. Ipedo, Composite and Microsoft were strong performers while Endeca and Xcalia are just contenders. Microsoft did better when focused on high-performance applications. No-one was strong across the board, however, and some of the vendors have multiple pieces but not much of an integration into an IaaS product. Since then, obviously, Oracle has acquired BEA and Xcalia has been acquired by Progress software and the combination is likely to be better for IaaS.
While there are trade-offs for developers in terms of new things to learn and changes to make, the more declarative and simpler approach will be better in the long run. Recommendations:
- IaaS is something for which you should have a strategy
- IaaS products make it much easier to build information services
- The SOA and development tools you have should factor in to your IaaS choices
- Information Architects are really important to developers in this context
- Experiment with one entity and read-only access services
- If you plan to do updates through information services then constantly check performance all the way through.