Since MAX 2004 in New Orleans, I’ve presented to one extent or another around the theme of architectural best-practices for delivering enterprise applications upon Adobe technologies.  This year is no different, and I’m very much looking forward to presenting with one of my colleagues from our Chicago Office, Tunde Turner, on our collective experiences within Adobe Consulting in delivering Enterprise Rich Internet Applications that leverage Flex and LiveCycle ES.

In previous years, I’d like to think that we illuminated many ideas around software architecture as it would apply to Rich Internet Applications, through presenting and contributing around the Cairngorm Framework for Rich Internet Applications. What I aspire to achieve in Tunde and I’s talk, is to help Rich Internet Application developers take the complexity and scale of their applications to new levels, by understanding the class of recurring problems where Flex, LiveCycle Data Services and LiveCycle ES play strongly, and the patterns and practices that recur in architecting these solutions.

A theme I introduced at MAX last year, during both the Chicago and Barcelona keynotes, was the idea that combining Flex and LiveCycle allowed us to "create innovative experiences on both sides of the glass".  I’ve continued to use that metaphor in helping customers understand the value that Adobe technology can bring, and indeed this is baked into the way Adobe Consulting help customers conceive of innovative solutions, and it’s baked into our go-to-marketing message (you can hear more about that message in the video at the foot of this page linked here ). 

Tunde and I aim to re-introduce this concept of creating innovative solutions "on the glass" and "behind the glass", to show some stunning examples of this metaphor applied, and to use this as the highest-level of abstraction for discussion around microarchitectures for Enterprise Rich Internet Applications.

On the Glass

On the glass, we’ll definitely talk about architectural best-practices for Flex and AIR development; we’ll take a brief tour of Cairngorm, explore some of the emerging ideas around Cairngorm and how a Cairngorm application can logically extend it’s reach towards an enterprise back-end with LiveCycle Data Services and LiveCycle ES.

On the glass, we’ll also look at some little appreciated features of LiveCycle ES – the Workspace and FormGuide APIs that allow us to create Rich Internet Applications for review and approval patterns, and for data capture patterns of user-experience.

Behind the Glass – Data Oriented Architectures and Microarchitecture Pattern Catalogues

Where things get really interesting however, is when we start to reach behind the glass.  A key consideration which I urge development teams to consider, is whether an application is a service oriented architecture or a data oriented archtiecture.  I will explain this consideration in detail – as to me this is a compelling reason to understand the best-practices between Blaze DS and LiveCycle DS that are often, naively, and incorrectly, reduced to "do you require data push".  Tunde and I will then spend some time exploring the Service Oriented Architecture view of LiveCycle ES, and the manner in which we can invoke services within the LiveCycle ES container, and what that actually means.

For Rich Internet Application developers, we’ll present a service-oriented view of LiveCycle ES, and help you to understand the different services that are available that I’m confident you’ll have spent far too much time in Java in the past trying to implement simplified versions of yourself.  We’ll show the rapid-development model offered by LiveCycle ES, and then identify patterns of applications that consistently leverage the same solution components and services of LiveCycle ES.

Microarchitecture Patterns

I’m confident that the idea of "microarchitecture patterns" will be the most significant contribution from this presentation; and that it will offer the same "Eureka" moment that Cairngorm offered many RIA developers.

Think about this – in Cairngorm, we identified a recurring application problem ("a Rich Internet Application sitting upon a service oriented architecture") for which we identified a network/collaboration of design patterns that became the Cairngorm microarchitecture. 

As our applications reach even deeper into an enterprise, and we concern ourselves not just with the architecture, patterns and practices "on the glass", but the architecture, patterns and practices "behind the glass", then there are recurring patterns of application:

  • RIA that results in a document being processed through an organisation and generating some final paper output, eg Applying for a Credit Card and getting your welcome pack and confirmation letter in the post
  • RIA dashboard that tracks an approval process, eg Loan or Mortgage Approval
  • RIA dashboard for real-time high-volume data, eg Trading Platform, Instrumentation Dashboard
  • RIA that captures information that needs to be secured and archived, eg Clinical Trial Management, Filing of Crime Reports
  • RIA application that configures electronic documents that are then pushed through a high-volume printing process, eg Electronic Statements, eBanking

As we consider the different, yet recurring, suites of services that these application types might consume, as we consider the different ways in which we engage through custom RIA development, through Form Guides and Workspace component suites in Flex, leveraging AIR and PDF for offline data capture or as the tool for moving information through an organisation, we are in effect identfying a series of microarchitectures that are larger networks of patterns than Cairngorm, microarchitectures that span both sides of the glass.

In essence – if Cairngorm was one microarchitecture for RIA upon a generic Service Oriented Architecture, we have yet to expose you to our microarchitectures for RIA upon Data Oriented Architectures, and RIA upon service and data-oriented architectures that focus on document-centric, form-centric, workflow-centric applications where people engage in business processes, where the digital and paper worlds collide, and where a significant number of enterprise problems exist.

Tunde and I look forward to broadening your vocabulary of microarchitectures to consider these different classes of Enterprise RIA!

Beyond Microarchitecture Patterns to Solution Accelerators

There’s a natural next step here; there comes a point where if you’re continually applying a particular microarchitecture that spans both sides of the glass, that the recurrence isn’t jus technical recurrence, but recurrence in the business requirements, from customer to customer, from enagement to engagement.  This next, higher, level of abstraction is what we call a solution accelerator – and I’ll be talking about solution accelerators in a separate talk at MAX with another colleague from Ottawa, Danny Saikaly.

So my question before we finish (ahem, start) the slides….are there recurring patterns of Enterprise RIA that you are developing, that span both the client and the server-side, that require consistency of approach from engagement to engagement on both sides of the glass ?