May 24, 2008
LiveCycle ES - the SOA for your RIA
In my previous post, I introduced LiveCycle ES to architects and developers as a Service Oriented Architecture. For those architects and developers who are delivering Rich Internet Applications - and specifically what I used to call "Enterprise Rich Internet Applications", I also positioned LiveCycle ES as an SOA upon which you can build RIA, as back-end for Rich Internet Application front-ends. In the previous post, I broadly introduced the concept of LiveCycle ES services; in this post, I'd like to talk in a little more detail about the architecture for those services, and how this architecture exposes these services to your Rich Internet Application.
LiveCycle ES - An SOA deployed within your J2EE infrastructure
LiveCycle ES deploys into a J2EE application server, offering a Service Oriented Architecture upon which you can build applications, including (but definitely not limited to) Rich Internet Applications. I don't want to get into the details and technicalities of SOA, or SOA versus ESB, I want to keep this discussion abstract. If you really want to understand how "SOA compliant" LiveCycle ES, Duane Nickull has covered this in the past, as has Marcel Boucher.
Every service in the LiveCycle ES Service Oriented Architecture is exposed through a number of different "end-points" which allow you to invoke those services. These endpoints are:
- RemoteObject endpoints for invocation by RemoteObject tag in Flex
- WebService endpoints for invocation by WebService tag in Flex, or by another Web Service client
- Java endpoints for invocation by Java applications running in a J2EE container
- Email endpoints, that allow you to invoke a service on receipt of an email
- Watched Folder endpoints, that allow you to invoke a service on a file as it appears in a particular folder or directory
Immediately, you probably have a sense of just how easy it is for a Rich Internet Application built with Flex or AIR to invoke and consume the services that LiveCycle ES offers; natively with a RemoteObject call, or with a WebService call.
Immediately, you probably have a sense of just how easy it is for a Rich Internet Application built with Flex or AIR to invoke LiveCycle services alongside your existing J2EE infrastructure. Though you could easily bring your own Java services into LiveCycle ES (more on that later), you can just as easily invoke LiveCycle ES services from your own Java middleware, and allow your Rich Internet Application to continue to sit upon your Java tier. In future posts, I'll consider the trade-offs of some of these different archtiectures.
In future posts (and perhaps at MAX :) ) I'll talk about just how easy, and how few lines of code you need, to bring powerful LiveCycle ES services to bear, to be seamlesly choreographed and orchestrated by your Rich Internet Application.
Hopefully you can see however, that with RemoteObject and WebService endpoints on all LiveCycle ES services, with the LiveCycle ES container deployed, it's a no-brainer to invoke those services from your Rich Internet Applications.
In the meantime, how do I get started ?
First of all, go and grab a developer copy of LiveCycle ES, which we offer as a turnkey installation with JBoss. You can go and download it here.
There is extensive livedocs around LiveCycle ES - if the above has caught your interest, I'd suggest jumping into the "Introducting Invocation" section of the Programmer SDK docs.
Posted by swebster at 10:46 PM | Comments (0)
LiveCycle ES for Software Architects and RIA Developers
I caught the following post, "Lets call LiveCycle what is really is", which captures a certain zeitgeist as developers and architects try to understand what LiveCycle ES can mean to them. In this post, I'd like to share my thoughts on how I think Software Developers and Architects - particularly those who are already taking Adobe technologies into the enterprise - can think about LiveCycle ES. To summarise, if you're a software architect or developer, then some of the ways you can think of LiveCycle ES are:
- The backend to your Rich Internet Application front-ends
- A Service Oriented Architecture (SOA) comprising services where information must move between the paper and the digital world, between humans and systems, people and processes
- An architecture upon which you can deliver great experiences on both sides of the glass
If you are a financial service organisation, trying to improve the process of onboarding new customers, increasing conversion rates of customers and driving down the costs associated with abandonment and the inefficiencies associated with manual re-keying of application forms, I might have positioned LiveCycle ES differently to you.
If you were a business analyst in an organisation, responsible for managing a number of electronic forms in your organisation, I might have positioned LiveCycle ES differently to you.
If you were a manufacturing organisation, looking to convert CAD drawings as 3D documents that can be securely exchanged between buyers and suppliers, I might have positioned LiveCycle ES differently to you.
But you're a software developer, or a software architect, you're delivering applications within enterprise architectures, you see the value of Rich Internet Applications as a way of improving anaemic, frustrating, page-driven, web-based experiences.
So this description of LiveCycle ES is for you.
The SOA Backend to your Rich Internet Application Front Ends
Several years ago, I used to use the phrase "Enterprise Rich Internet Applications" to differentiate the creation of Flash or Flex based web-applications with the same kind of user-experiences that had the additional complexity of having to be deployed upon upon new and existing enterprise infrastructure, usually J2EE or .NET technology stacks.
For Adobe Consulting - and for many of you - this defines most if not all of the RIA development we undertake today. And when I think about building Enterprise RIA with Adobe technologies, I think about rich user-experiences built with Flex and AIR sitting atop LiveCycle ES on the back-end, alongside other enterprise technology and infrastructure, whether that be J2EE or .NET infrastructure, legacy enterprise information systems, or services from other 3rd parties.
LiveCycle ES - a Service Oriented Architecture
So to think of LiveCycle ES as an SOA, think for now of LiveCycle ES as a suite of services, pre-built by Adobe, that you are free to orchestrate, choreograph, invoke and consume from your own applications. Broadly, you can think of these services as:
- Services that support data capture in both an online and offline environment, and storage of that data in a form that can be acted upon by other services below, or storage of that data in industry-standard formats for archiving, for instance.
- Services that support the dynamic generation, assembly and high-volume printing of high-fidelity documents, merging these documents with data from your applications, and from your enterprise information systems
- Services that support the security and assurance of information that is captured, allowing it to be rights-managed, digitally signed and certified, and securely moved within and beyond your firewall
When you hear about LiveCycle ES "solution components", we're essentially talking about packages of related services that you may or may not wish to have deployed within your service container. So LiveCycle Forms ES, LiveCycle Barcoded Forms ES, LiveCycle Process Management ES, LiveCycle Rights Management ES, LiveCycle Digital Signatures ES, LiveCycle Output ES, etc, are all just packages of services that you can easily leverage in your own solution architectures.
And if you need a service that Adobe doesn't offer, then you can simply and easily write your own, that can be deployed within the LiveCycle ES architecture to be invoked and consumed as first-class citizens.
However, an SOA is at it's most valuable when loosely-coupled services can be composed and reused, seamlessly alongside services from multiple vendors, mixing them and matching them with services in your own architecture.
Composing Loosely Coupled Services into Business Processes
So LiveCycle ES will help there too, allowing you to not just choreograph and orchestrate the invocation of services from your client, but to aggregate and composite services into what we call orchestrations, that reflect your enterprise business processes.
These orchestrations may comprise simple or complex complex workflows that can take seconds or even days to execute (because they require human intervention, they wait for an email to arrive with a signed document, they wait for a human to approve a loan, for instance).
And most importantly, these workflows can leverage out of the box services from LiveCycle ES alongside non-Adobe services that exist on either side of your firewall.
These orchestrations themselves become services within the SOA, which you can easily invoke from your applications from a single end-point. But that's another level of detail I'll defer to talk about until my next post.
Summary
So when I talk to customers about building innovative enterprise applications, I talk about innovating with Adobe technology "on both sides of the glass".
On the glass, I advocate the business benefits that can be realised by delivering users more useful, usable and desirable user-experiences with Rich Internet Application technologies such as Flex and AIR.
Behind the glass, I advocate the business benefits that can be realised by building these applications upon LiveCycle ES, employing services from the LiveCycle ES "solution components" alongside existing middleware and 3rd party services, to create more innovative and effective business processes where information needs to be moved securely between the digital and real-world, between people and process, and across the firewall. These business processes might support applying for a loan, registering for benefits, choosing a seat on a plane and printing a boarding pass, or all manner of other such applications.
LiveCycle ES by no means demands an RIA presentation tier. But for me, the whole is greater than the sum of the parts. To create great user-experiences on both sides of the glass, to bring rich user experiences to enterprise architectures, think about LiveCycle ES as the SOA back-end for your RIA front-end.
Within Adobe Consulting, this is a repeating architectural pattern for enterprise innovation.
Posted by swebster at 10:19 PM | Comments (0)
June 04, 2007
LiveCycle ES - What it means for RIA Developers
If you're a creative developer familiar with Adobe products, you can't but fail to be aware of creative suite - a suite of applications that assist creative professionals in their design work. As Adobe further extends it's reach into the Enterprise software market, the latest launch of the LiveCycle suite of products has been released with the ES ("Enterprise Suite") branding - as designers work with CS3 and beyond, enterprise software developers will deliver solutions using ES and beyond. I'd like to use this blog post as an introdution to what LiveCycle ES means for application developers, and followup with some more specific looks at the solution components within LiveCycle ES - akin to the creative components like Flash, Photoshop, Dreamweaver, etc, that ship as part of Creative Suite.
John Dowdell commented on his blog, "I think this announcement is more significant than it may appear". John is absolutely correct - I think LiveCycle ES is a massive step-forward for enterprise software developers, including (but not limited to) RIA developers who focus on delivering RIA solutions that might be termed "enterprise scale".
In this post, I'm going to begin to focus on what LiveCycle ES means for Enterprise RIA developers.
Enterprise Rich Internet Applications
But before I progress; let me make something clear in my terminology - there is no complex of superiority or "my RIA is better than your RIA" when I use the term enterprise. When I was running my own software consultancy, I used to employ the phrase "Enterprise RIA" to differentiate the kind of applications that we were trying to deliver with Rich Internet Applications, versus some of our colleagues in other consultancies who were building more interactive applications upon the Flash platform.
When we were talking about Enterprise RIA, we were talking about rich and immersive user-experiences, delivered with Flex, that sat upon new and existing infrastructure within an enterprise software stack. Our typical customers were financial services organisations, many of whom who were (and many who still are) engaged in initiatives to deliver service oriented architectures (SOA) within their organisations, exposing their internal business systems and processes in such a manner that they might be consumed easily and consistently across their organisation, achieving the much touted benefits of reuse and business agility (the ability to more rapidly deliver new and innovative solutions). Within Adobe, our enterprise focus extends beyond financial services to also include Government, Life Sciences (Healthcare) and Manufacturing organisations.
So when I talk about delivering Enterprise RIA, I'm talking about building Rich Internet Applications that sit within these kind of infrastructures. I'm talking about solutions where the rich and immersive user-experience that an RIA promises to deliver is only part of a much deeper engagement with the customer; where behind the "apply for loan" button there is a rich orchestration of services responsible for address verification, online decisioning, kicking off the generation of a printed form that needs to be sent to you for signature, for the long-lived process to spring back into life when your application form has been received by you, signed (what we call a 'wet signature'), posted back to the organisation and when received, entered back into the system (hopefully without any manual rekeying of your form with the information you previously entered - you don't believe this happens ? You have too much faith in the organisations you typically engage with), approved, before your loan is approved, you are notified by mobile phone and email, and the appropriate documentation is sent to an output server to be automatically printed, stuffed into an envelope, shipped to your address, before being added to your online portfolio of products the next time you login to your bank. That was a big sentence, with lots of clauses. But you can see the RIA front-end was one part of that clause - the tip of the proverbial iceberg as it were. So much more has to be orchestrated to happen in order that your engagement with the organisation you just applied for a loan with is an effective and memorable one.
I'm not saying these "Enterprise RIA" are any more ingenious, valuable, well-engineered, worthy of praise or innovative than the other applications you may be building - scrapbooks, fully fledged online word processors, photo editing applications and timesheet management systems are equally impressive applications of RIA technology. However, it's less often that these applications reach so far back into the depths of an enterprise, where the experience of the customer engagement can be as impacted by what happens after you click the final button as what happens to get you are guided more simply, more easily and more effectively towards that button click.
So that's a big segue; but I just want to be sure that no-one feels disqualified when I talk about Enterprise RIA, but simply recognise that I'm describing a particular category of Rich Internet Application, that sits firmly upon existing enterprise infrastructure within an organisation. That's the kind of stuff my team are building, and I know it's the kind of stuff that many of you are building also. And these are the kind of applications where I think LiveCycle ES becomes a powerful set of tools for you to deliver your Enterprise RIA with.
So if i'm building Enterprise RIA, what's LiveCycle ES offering me ?
So when we operate in vertical markets like financial services, government organisations, life sciences or manufacturing, there tends to be a lot of processes and a lot of paper.
Proceses to change your address, or to take a 6-month payment holiday on your mortgage. Forms to be completed when you want to file a tax return, prescriptions that need to be renewed or medical reports that need to be securely exchanged throughout a healthcare provider, or RFQs that need to be submitted to potential suppliers, with securely attached CAD drawings that should not be inadvertantly sent outwith the receiving organisation before bids are collected and the contract awarded.
When people think about PDF, they often think about a read-only document format. In fact, when you see people asking about alternate clients to Reader, often what they are missing are the sheer number of things that can be done with a PDF other than simply rendering a document electronically. PDF forms can be edited electronically - online and offline, they can be digitally signed, they can be secured (rights managed), they can be assembled on the fly by compiling a document from document fragments and merging PDF templates with dynamic data. Electronic PDF forms can be adorned with two-dimensional barcodes, the barcode image representing the data entered into the form - once that form is printed and signed, the barcode can be scanned to immediately extract the data from the paper form and eliminate the previously necessarly manual rekeying following a wet-signature step. And much much more.
Adobe LiveCycle comprised a number of products that were able to perform these manipulations of PDF documents, enabling enterprise software developers to create enterprise software solutions that more effectively moved paper around an organisation, and orchestrated processes where there were journeys that crossed the online digital world to the offline paper world, and back again.
Adobe LiveCycle ES delivers all of these different services within a single enterprise run-time - a service oriented architecture delivered as an integrated J2EE solution that blends electronic forms, process management, document security and document generation services.
If you're an RIA developer or a development shop that recognises the benefits that Rich Internet Applications can bring to your customers, and to your customer's customers, then you're probably building solutions that have as many challenges to solve under the water-level, on some of these areas, as the tip-of-the-iceberg user-experience that you are addressing with RIA. And this is where LiveCycle ES really strengthens your end-to-end proposition to your customers.
If you want an example of the kind of solutions I might be speaking about, the LiveCycle ES pages do a great job of breaking out some of the recurring solution patterns that we have observed in some of our target vertical markets:
- Adobe LiveCycle ES for Financial Services
- Adobe LiveCycle ES for Government
- Adobe LiveCycle ES for Life Sciences
- Adobe LiveCycle ES for Manufacturing
I'm sure some of these solution patterns are familiar to you, and I'm sure you face many more with your own customers.
LiveCycle ES - Solution Services in a Service Oriented Architecture
One way to think of - and a correct way to think of - LiveCycle ES, is as a service oriented architecture (SOA) that exposes a number of different services that are useful in the delivery of end-to-end Enterprise RIA solutions. When you take a look at the LiveCycle Enterprise Suite Solution components, then the CreativeSuite analogy is a good one. Just as you might employ Dreamweaver to manipulate some HTML, then employ the services of Flash when you wish to create an interactive animation that targets that Flash Player, and then employ the services of Photoshop where you wish to manipulate some design work, so too can you employ the services of LiveCycle ES when you wish to perform server-side business processes.
LiveCycle ES delivers a number of solution components, each of which sit upon and within a common LiveCycle ES Foundation architecture, that handles common administration functions, invocation services, orchestration and security. I'll cover each individual solution component in more detail in follow-on postings, however for the time being you can review these components on the LiveCycle ES Solution Component web pages.
Flex and Apollo Developers can easily invoke LiveCycle ES Services through Remoting Endpoints
Each and every service in the LiveCycle ES architecture can be easily invoked and consumed by a Flex or Apollo Rich Internet Application. LiveCycle ES remoting ensures that each servic is exposed to Flex as a remoting endpoint, however there are a number of different endpoint technologies, including Web Services, for the invocation of LiveCycle ES services from a client to a server.
This is the first piece of the puzzle for Flex developers; in an instant, all of these services exposed by LiveCycle ES can be immediately and easily consumed by an Enterprise RIA.
Capture Data Quickly and Effectively using Form Guides
When you deliver Enterprise RIA, you'll find yourself creating forms. Lots of forms. Flex forms that deliver on the promise of removing the end-user from the frustrations of the request/response paradigm to create single-screen form experiences that leverage user-experience patterns such as accordions and wizards, to allow the end user to seamlessly navigate through a multi-step application form, completing the form in the order they so desire.
Form Guides are a tremendous labor-saving addition to LiveCycle ES; so much so that they're going to merit a separate blog post. But for now, let me outline some of the heavy lifting that LiveCycle ES can offer. There's a lot of merit to capturing this data into a PDF - as I've outlined above, once data is captured as an electronic form, there's a tonne of things we can do to it, from digitally signing it, rights managing it, barcoding it prior to a wet-signature, completing it offline or having it participate in a long-lived process. BUT - forms are also a user-experience designed to squeeze as much information onto as few sheets of paper as possible, and not necessarily conduisive to a great user-experience. Which is what RIA are for, right ?
LiveCycle ES allows analysts and non-developers to create forms; you can start by scanning in an existing paper form, or by importing a word file for instance, and then slowly turning that form into something electronic, with form fields, and validation rules and the like. Previously, these interactive forms would then render as an editable PDF - however, using the same Form Designer, LiveCycle ES can now automatically generate a Flex-based RIA form, known as a Form Guide. As a Flex developer, you have complete control over the look, feel and behavior of these forms within an organisation - from the simplest of CSS styling through to more code-level customisation. But the key thing here, is that these forms can be designed by an analyst in a design tool, automatically code-generated, and given a consistent look and feel across an organisation. We've engaged in projects with literally thousands of forms, and the labor saving that Form Guides offers is tremendous - with the additional bonus that the RIA form is actually rendering the same data as an underlying PDF, so that we can swap between a PDF-world view or an RIA-world view of the form, and perform any of our LiveCycle ES service operations upon that form.
Summary
I've only touched on the different ways in which LiveCycle ES is bringing the RIA and LiveCycle technologies from Adobe and Macromedia together. I've only touched on the service oriented architecture of LiveCycle ES that dramatically simplifies the manner in which an enterprise software developer can leverage LiveCycle ES services into their own software applications. And I've only touched on the utility of these services to Enterprise RIA developers who are delivering solutions into verticals like financial services, government, life sciences and manufacturing. And I haven't even begun to touch on what this means for the existing LiveCycle customer-base, for whom HTML and PDF online experiences can be easily upgraded to deliver much more effective user-experiences upon the Adobe Flex platform, with as little coding as the development team feels comfortable with.
In future blog entries, I'll look at the various LiveCycle ES solution components in more detail, and help you to understand how you can leverage these solution components in your own application development.
In addition, I'll talk more about the ways in which Flex and LiveCycle ES come together, and explore how we can more easily create innovative and immersive user-experiences that extend our customer engagement beyond the screen and deep into the enterprise processes that happen under the water-level.
However, as an increasing number of options emerge for creating Rich Internet Applications, I think LiveCycle ES is a tremendously valuable addition to the technology stack for Enterprise RIA development upon the Adobe platform. Not only do we have an RIA platform in Flex, that is steaming towards it's 3rd release, but sitting underneath this proven front-end architecture we have an SOA architecture in LiveCycle ES that offers a tremendous number of services that are immediately valuable when delivering the kind of solutions I've outlined above.
As John Dowdell said, "I think this announcement is more significant than it may appear". I'll say so - we just got ourselves a brand new platform in Flex and LiveCycle ES for the delivery of bet-the-business mission-critical enterprise RIA in vertical markets like Financial Services, Government, Life Sciences and Manufacturing.
I'll say that's significant.
Posted by swebster at 09:26 PM | Comments (1) | TrackBack
March 21, 2007
On Labs: The Artist formerly known as Flex Data Services
With all the anticipated hype surrounding our release of Apollo on Labs, this one might sneak under the radar a little - we've also just released to Labs the 2.5 incarnation of Flex Data Services, which includes a brand new change of image, renamed "LiveCycle Data Services 2.5". Let's talk a little about what this means for Flex developers, what it means for LiveCycle developers, and what it means more generally for the platform upon which we are delivering innovative new user-experiences.
The next version of Flex Data Services
First and foremost, LiveCycle Data Services is the 2.5 release of the technology formerly known as Flex Data Services. As such, you'll continue to employ this part of our technology platform when you seek to build powerful service-oriented or data-oriented architectures. More information on the intent of LiveCycle Data Service can be found here, including data management services, data synchronisation and conflict management, data paging, occasionally connected application development, messaging service features such as data push and publish/subscibre messaging, support for the develoment of applications that support collaboration and concurrent data sharing, "co-browsing" and experience sharing, as well as support for more robust testing strategies with automated functional testing using Mercury QuickTest Pro.
There are a number of enhancements in the LiveCycle Data Services 2.5 release - too numerous to mention, available in the release notes, but here's a short summary of some of the new features that I think will capture the attention of current users of Flex Data Services:
- Runtime Configuration of Data Destinations; there is no longer a compile-time dependancy in your configuration of data services, these can be specified and configured at run-time in your application. I will try and discuss use-cases that can leverage this feature in a separate blog post.
- Per-client Quality of Service (QoS) in messaging; incredibly useful in the development of applications that make significant use of streams of real-time data, this feature empowers a Flex client with being able to set custom data access policies for real-time data streams.
- RTMP Tunnelling; a much requested feature by those leveraging the Real-time Messaging Protocol in Data Services, RTMP Tunnelling greatly simplifies the ability to have your applications punch through a firewall or proxy that otherwise impedes direct connections to your server.
- SQL Adaptor; I recall from MAX 2006 in Las Vegas, that many of you were conceiving code-generation solutions when your business tier was doing little more than mediating between a Flex client presentation-tier and a database integration tier. The new SQL adaptor removes the need to write any of the intermediate server-side JDBC code in your Java business tier when this is your typical architecture.
- General Improvements in Performance and Stability; in addition to these new features, the team have focussed on a number of core enhancements to the performance and stability of Data Services applications.
I encourage you to dig around the release notes and documentation a little on your own, to find out more about the above features, and to explore some of the other features such as the updates to the client-side web service library, features to seamlessly integrate with Ajax including Ajax dataservices and the Flex Ajax bridge, a new JSP tag library to more easily incorporate MXML and ActionScript code into a JSP as well as greater support for WSRP, for those of you that are enhancing portal application developents with the features and benefits of a Flex-based RIA solution.
What's with the LIVECYCLE Data Services ?
So what's with the name change ? I've spoken a great deal about Flex and LiveCycle on my blog in the past, as a platform of technologies that allow us to bring richer user-experiences to document and process-centric enterprise applications.
We started talking about the new version of our LiveCycle platform at MAX 2006. Duanne Nickull has a great post about the SOA (Service Oriented Architecture) for the next incarnation of LiveCycle over at his blog post here, but a benefit of this is that all the features of the LiveCycle platform will be more consistently exposed as a layer of services that can be invoked and consumed by a client technology.
Clearly, we have our own client technology in Rich Internet Applications with Flex, and so what you're now beginning to see is the fruition of how the Flex technology that started life in Macromedia, and the LiveCycle technology that came from Adobe are coming together. By bringing the world of rich user-experiences together with technologies that improve the delivery of process-centric or document-centric experiences, we are able to much more rapidly and consistently develop applications that leverage our technologies on both ends of the wire.
The renaming of Flex Data Services to LiveCycle Data Services, for me, brings clarity to the utilty of the data services that are being offered to developers. Though squarely of benefit to Flex developers, these services can be equally consumed by an AJAX application for instance, and simply become another suite of services that can be leveraged and consumed by application developers in their RIA development. There has often been confusion as to what lives on the server and what lives on the client in the Flex ecosystem; this becomes clearer as you think of LiveCycle services as those we expose in a J2EE runtime for consumption by client technologies, including Flex.
PDF Generation from your Flex Application
However; what you will also see in the Labs beta, is the exposition of document-based features to your Flex applications. Let me talk a little about the PDF Generation capability of LiveCycle data services, which is a tremendous feature with unbounded use-cases.
Oftentimes in the capture of business requirements for an RIA, our customers will request the ability to deliver a rich and high-fidelity print experience to customers. Perhaps a customer has just engaged with an interactive mortgage calculator, or found a product of interest to them using a product configurator delivered as an immersive, lean-forward RIA experience.
Though Flex exposed APIs that allowed you to print areas of your application, and extended those APIs to allow you to do smart things like printing the entire contents of a datagrid, not just the visible rows, the experience from RIA to print was never a great one. More often than not, print requirements would be satisfied by throwing content into a neatly formatted HTML page that could be printed from within the browser.
One of the great new features of LiveCycle Data Services, is the provision of services that dramatically simplify the ability to dynamically generate high-fidelity PDF with the dynamic data from your RIA (or even from an Ajax application).
By creating a PDF Template using LiveCycle Designer, you can quickly and easily create Form templates - these Form templates are high-fidelity forms that will look like any typical paper document from a glossy brochure to a tax return. Similar to data-binding in a Flex application, a data-binding architecture for Forms can bring the dynamic data from a data model together with the Form template, to dynamically render a PDF.
In LiveCycle Data Services 2.5, we offer for you a service called XFAHelper (XFA is the XML Forms Architecture that combines Form Templates with XML data models) that you can invoke to take data from your RIA, from your backend services or indeed from any other data source, and populate a PDF template with that data. By writing a tiny Java class that invokes the XFAHelper, you can use a standard RemoteObject call from your Flex application to pass data down from your RIA and return to the browser a PDF populated with that data. If you don't want to render the PDF back to the screen, you can do anything else you like with it - email it off to a customer, archive it in a database or document management system, or leverage other aspects of LiveCycle to have that document initiate or participate in a workflow, be secured with document policies, etc.
In future blog posts, I or one of my Adobe Consulting colleagues will offer some examples of how to create Flex applications that dynamically generate PDF using LiveCycle Data Services 2.5
And what about Apollo ?
With LiveCycle Data Services shipping on the back of Apollo, it should be no surprise how closely our product teams are working together to ensure that Apollo applications can leverage Flex and LiveCycle in their application architectures.
LiveCycle Data Services 2.5 will give you a glimpse of how the platform begins to glue together to deliver seamless experiences from the glass to the server.
One of the exciting features about Apollo, is the ability to work completely offline with web-delivered applications - LiveCycle Data Services is poised to play a key role in that use-case for your offline yet data-oriented RIA. Flex applications using LCDS will receive improved support for local queuing of outbound messages when the client is disconnected, with management of these messages when server reconnect occurs. A local data cache further supports future Apollo application support, enabling you to cache client data requests and data changes on the local file system, for later retrieval when the application resumes. It's exciting to see all these different pieces of the framework coming together to offer elegant architectures for the delivery of Rich Internet Applications in either an occasionally connected desktop or browser-based deployment model.
Summary
As is the intention of Adobe Labs, we offer this early access to our technology not only to observe and understand what you want to do with it, but to offer you the opportunity to provide your feedback directly to the engineering team, to ensure that the product meets your particular and varied needs. I know the team are seeking feedback on everything from the web service support and PDF generation, your data management services and real-time data messaging applications to general feedback on new features such as the JSP tag library or the SQL Adaptor.
Everything you need to get started can be found on Labs.
Posted by swebster at 11:29 AM | Comments (3) | TrackBack
September 09, 2006
Flex and LiveCycle – Platform for Enterprise Success
When I joined Macromedia/Adobe Consulting, my role as Practice Leader was to grow a practice in EMEA around Rich Internet Application technologies. In recent months, we have taken the decision to bring together the Rich Internet Application practice with our LiveCycle practice, reflecting the recurrence in opportunity for us to fuse these client and server technologies together to solve a number of enterprise business problems. As I assume the responsibility to grow this combined practice in EMEA, I’ll extend my blogging to share some of the excitement and thinking we have around how the technologies from our Enterprise Developer Business Unit – including Flex, Flex Data Services and the numerous LiveCycle technologies - converge as an enterprise business platform.
I’d like for this blog post to initiate some thinking on what this might mean.
I expect that people who track this blog – by the nature of where it is generally aggregated – are already familiar with Rich Internet Application technologies. I expect these readers already have a strong understanding of the importance and effectiveness of a user-experience that enables consumers, customers, citizens, workers or all manner of other individuals (user is such a non-personal description of the various persona of people who interact with business through a user-interface) to perform their tasks with applications that are not only useful, but usable and desirable.
What is LiveCycle ?
These same readers may not be as familiar however with the LiveCycle suite of technologies. I’m not going to go into exhaustive detail on this suite of technologies, but would highly recommend a browse through the Adobe LiveCycle section of our corporate website. Nor am I going to attempt here to be exhaustive of the business benefits of LiveCycle, but will instead aim to call out some concrete examples of where the fusion of Flex and LiveCycle allows us to tackle even more of the business challenges that our richer and more effective user-experiences have set out to address.
The Business Benefits of RIA…
I’m a great believer in education through example, and understanding through analogy, so let me try and paint a picture of the current landscape.
The ineffectiveness of online application forms not delivering on the promises of 24/7 at-your-leisure access when delivered in a browser, is well understood. Take a mortgage or a loan application from your online bank – these are characterised as frustrating processes that typically employ between 8 and 11 different HTML pages, where each page refresh results in 5% of applicants making an abandonment decision. The problems of page-refresh are well understood - technological frustrations associated with navigating back through an already completed process or session time-outs, user-experience frustrations such as being forced to complete the form in a sequential manner (what I often compare to “reading a book through a straw”) rather than more familiar “complete the easy stuff and come back to the hard stuff”, or the situation where you need to go and find some supporting information, like your social security number. I can pitch this “failed promise of the Internet” for an hour, so I’ll spare you here.
Rich Internet Applications replace these multi-step, complex processes with simpler, easier, more effective single-screen or guided-completion processes, often employing UI metaphors such as the accordion to deliver a user-experience that more effectively matches the interaction patterns of real users.
An analogous problem to financial service application forms, is the same problems manifesting themselves through retail checkout experiences – addressing these problems with RIA have been shown in blind A/B tests to improve the appalling abandonment rates of 75% with increased conversion rates of checkout customers by 50%. So with RIA, we’re well on our way to delivering efficiencies through user-experience and design-led solutions that attack the problem from the user’s perspective rather than a technology perspective.
I’ll talk more of such design-led approaches to RIA solutions in future blog entries.
…fuse with the Business Benefits of LiveCycle
But typically, the rich user-experiences that we deliver with RIA are often the beginning of a more complex document-based process, that inevitably crosses the digital world to a world where people interact through paper.
Let’s consider some of these inefficiencies, by returning to our loan application.
Immediately you complete your application (and by replacing that application process with a design-led RIA, there are many more of you that have completed that application compared to the old days of the several HTML forms) you enter the world of workflow, and the world of paper.
In fact, many organisations will insist that you become the protagonist in their paper play. The final step of your mortgage application will often require that you print your application as a form, sign that form, and post that form to the bank.
If you print the form, if you sign it, if you remember to put it in your bag, if you buy the envelope and the stamp and if you remember to post it, then some days later, once your piece of paper has survived the postal system and made it’s way to the desk of a loan processing officer, your application is ready to be processed. Electronically. But it’s a bit paper. So what are we going to have to do … that’s right, having taken you from the state-of-the-art RIA-enhanced electronic world back to a piece of paper, the very next step is to capture that form information digitally again.
So how will LiveCycle help us here ? Well first and foremost, moving seamlessly between the RIA and the PDF world is a simple and obvious fusion of Flex and LiveCycle. One of the key aspects to LiveCycle, is the process of document generation – leveraging technologies such as LiveCycle PDF Generator to automate the creation of PDF files or LiveCycle Assembler to “form-stitch” together document fragments to create customised PDF documents.
More effective however, is to remove the paper-trail altogether, and this is where LiveCycle can really begin to optimise the behind-the-curtain processes in an enterprise RIA solution. In addition to creating a dynamic PDF representation of our application form data, LiveCycle Document Security will enable the customer to digitally sign and encrypt a document before it is electronically submitted to the bank for processing, removing the need for manual rekeying when the document is received.
However, if the bank does require receipt of a paper document with an ink signature, the manual rekeying can still be eliminated. LiveCycle Barcoded Forms automate the capture of user-provided data from printed or faxed forms, by representing that data as a 2-dimensional barcode that can be easily and rapidly scanned, removing the processing and errors associated with manual rekeying of user-supplied data.
Once your loan application is born again as an electronic application form in back-office systems it must be processed; typically this processing is a complex hand-off of your application between different departments, or different people within a department. Perhaps you have to be credit-scored, before your application is then allowed to proceed to the next department, who are responsible for checking your employer references. A gap in your employment perhaps triggers the need for a letter to be sent to you requesting further information – otherwise, your application progresses to a decisioning process that determines the maximum amount of loan you will be offered. You are then sent a letter either approving or declining the loan, and this kicks off another step in the workflow, where your approved loan exists for 30-days. After 30-days, your loan is no longer valid, until another credit-check has been performed. And all the while, you have no insight as to where you are in the loan approval process, or indeed whether your loan has even been received at all.
What we have here, is an example of a complex workflow associated with a transient document – your loan application – as it moves between a variety of systems and people. LiveCycle Workflow Server allows us to streamline these human-centric processes, allowing either the visual or programmatic assembly of “workflows”, which allow your electronic application to move quickly and securely through an organisation.
Meanwhile LiveCycle Policy Server could be employed, ensuring that information remains confidential, specifying not only who has access to the document, but what they can do to the document, when they can do that to the document (for instance, once the customer receives their loan approval as a PDF, can they update their mobile telephone number in-site, but not change their address), and for how long they can make these changes. Furthermore, Policy Server will allow all these security policies to be updated even once a document has been issued – revoking access to a loan approval after 30 days, or even confirming that the user has printed the loan application approval, removing the need to send them a paper-copy in the post).
And what of keeping you, the customer engaged ? A Flex application upon a LiveCycle workflow, leveraging Flex Data Services, can offer real-time notification to a user as to the receipt, the progress and the success of their loan application. The enterprise technology stack enables a two-way communication between customer and bank, not a one-way flow of information into a black hole.
And the list goes on…
As I said earlier, I have no desire to be exhaustive in my overview of LiveCycle technologies in this post, but I hope that the above real-world scenario outlines how – effective as a Rich Internet Application can be – we can offer significant additional return on investment when the RIA on the front-end is supplemented with the process automation, document generation and information assurance services that LiveCycle can offer in the back-end.
And it’s not just in financial services; think of all the online processes that you have considered that can be improved and innovated upon with RIA technology – not just financial services and online banking, but travel booking, online check-in for flights, retail commerce, making a movie reservation, booking seats at the theatre, hiring a car, submitting your tax return, filing your expenses for approval, etc, etc.
As limited as you are by your imagination, think how many of these opportunities for insanely great user-experiences also result in something physical and tangible in your hand as the result of a process of automations, approvals, workflows or generation of documents.
Like account statements. Like travel itineraries. Like boarding passes. Like movie or theatre tickets, with barcodes that can be scanned at point of sale or point of entry.
Think of how a richer user-experience can not only benefit business with increases in conversion rates, increases in the effectiveness of cross-selling and up-selling, increases in repeat-business or increases in customer acquisition through customer evangelism. Think of how a richer user-experience can benefit from the efficiencies of automatic and electronic processing.
Think of the value you can begin to offer your clients, and their customers. Think of how Flex and LiveCycle might work together for you.
Summary
A couple of years ago, I was using the phrase “Enterprise RIA” to define the kind of online applications that could benefit from a richer user-experience while performing complex integration with new and existing systems and infrastructure. The fusion of RIA and LiveCycle dramatically lowers the barrier to delivery of these enterprise RIA, upon a recurring solution platform for enterprise business applications.
I’m tremendously excited about the solution opportunities and business problems our consultants are going to be delivering with the combination of Flex and LiveCycle.
In future blog posts, I’ll speak more of how some of these integrations can be achieved technically, whether you are a J2EE architect that wants API-level access to these services, or someone who would rather orchestrate these solutions in a visual development environment, and integrate them with your Rich Internet Applications.
Additionally, I’ll be aiming to share some of the leadership our User Experience practice, and RIA and LiveCycle practice consultants are creating around Flex and LiveCycle.
I hope this blog post lifts the lid on a whole new world of enterprise RIA development, while kick starting your thinking about the solutions you could deliver, and the skills you could leverage or the partnerships you could create in order that you are more suitably positioned to deliver these solutions.
Posted by swebster at 05:05 PM | Comments (4)
