What is a SmartForm?
Heard about SmartForms, but confused by the jargon? Never heard of SmartForms, but interested in the latest developments in electronic forms?
This blog provides the need-to-know facts about SmartForms. For a full overview, please watch SmartForms – the next generation of electronic forms.
| Running time: | 13 minutes |
|---|---|
| Content: | What is a SmartForm? |
| Demo of three SmartForms in action | |
| Why SmartForms? | |
| Who is using Smartforms? |
SmartForms
A SmartForm is an electronic form used by your customers, staff and partners to apply for products and services.
Key capabilities include:
- perform complex calculations
- dynamically display content as it is required
- perform sophisticated validation of the data
- lookup data from remote systems
- securely submit the data to your organisation’s systems
Geneaology of the Electronic Form
Not all electronic forms are equal. They differ in how smart they can be in making it easy for users and ensuring that you capture high quality data.
Electronic forms can be categorised into:
- Print form downloaded from your web-site, printed, completed by hand and posted/faxed to your organisation
- Fillable form downloaded from your web-site, filled-out on screen before being printed and posted/faxed to your organisation
- SmartForm downloaded from your web-site, filled-out on screen and submitted electronically
Print Form
The only electronic aspect to this is in its distribution. You face the same challenges as paper of interpreting hand-writing, handling forms that have been incorrectly filled-out and manually entering the data into your systems. According to the Australian outsourcing company review of 2006, 40% of forms contain missing information. Each of these failures result in higher costs and lost sales opportunities
Fillable Form
Fillable forms perform basic validation on the data as it is entered and will print an easy to read form. You will typically need to re-key this data into your back end systems. Optical character recognition (OCR) is feasible with fillable forms if you have the necessary infrastructure.
SmartForm
The most significant development in electronic forms since their inception. For the first time, it is now possible to guide novice users through the completion of complex forms in a highly engaging experience.
SmartForms presentation at BFMA
I was happy to accept an invitation to present at the BFMA region 8 September meeting.
I chose to talk about SmartForms; I described some of the innovative work that has been performed in Australian government over the last four years and shared some lessons learnt from the Red Tape Blueprints project that was delivered for a consortium of 41 NSW councils.
I ran the webinar on Adobe Connect and present the full recorded session below in four parts:
-
Part 1: What is a SmartForm? Demo of discovering a SmartForm Demo of filling out a Smartform Demo of user’s submission history -
Part 2: Why should you care about SmartForms? Demo of eForms benefits calculator Leading SmartForm projects in Australian government Introduction to Red Tape Blueprints case study -
Part 3: Red Tape Blueprints solution Red Tape Bluepirnts challenges overcome -
Part 4: Demo of SmartForm submission -
Part 5: Demo of providing attachments Demo of making payment Demo of signing a receipt
Part 1
Part 2
Part 3
Part 4
Part 5
About BFMA
BFMA, or the Business Forms Management Association, formed 50 years ago to address the unique educational and networking needs of forms designers and managers. With today’s technology, the forms function has broadened in scope to include everything from traditional paper forms to electronic data capture and the databases and applications that support it.
BFMA region 8 (Asia Pacific) is lead by Jessica Enders at Formulate.
PDF Accessibility – part 2 of 3 (reading fields)
This blog is the second in a series that explores PDF accessibility. This installment describes how to implement PDFs using Adobe LiveCycle Designer so that form fields are accessible to users of assistive technologies.
In this series:
PDF Accessibility – part 1 of 3 (introduction) – an introduction to accessibility standards and technologies
PDF Accessibility – part 3 of 3 (reading text) – a step-by-step guide on making text accessible
WCAG 2.0 Guidelines
1.1.1 Non-text Content: All non-text content that is presented to the user has a text alternative that serves the equivalent purpose 2.4.6 Headings and Labels: Headings and labels describe topic or purpose 3.2.4 Consistent Identification: Components that have the same functionality within a set of Web pages are identified consistently 3.3.2 Labels or Instructions: Labels or instructions are provided when content requires user input 4.1.2 Name, Role, Value: For all user interface components (including but not limited to: form elements, links and components generated by scripts), the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies
These guidelines are all about making it easier for assistive technology users to use form fields.
This is important due to the way that assistive technology users interact with a form. Although, fields are typically represented by un-informative shapes such as a rectangle, unimpaired users can rapidly determind its purpose. They have the benefit of being able to scan a form by eye in any direction that they choose and see fields in context; location, label and surrounding content. Assistive technology users can access the same information, but at a slower pace. Mechanisms are required to enable the user to navigate directly through the fields, ignoring other content, and for alternate text to be read which describes the fields’ purpose without relying on context.
Using the field’s caption for alternate text
Whenever possible you should use the field’s caption for alternate text. Set the ‘Screen Reader Precendence’ property to ‘Caption’ in the accessibility pallet.

When a user tabs into this field, the screen reader JAWS V10 with default configuration reads the following:
Your country of citizenship… edit… type in text
The alternate text is read first to identify the field. This is followed by additional information to help the assistive technology user. In this case, it tells the user what type of field this is and how to use it. Although, this approach is common, the text read is specific to screen reader.
Setting custom text for alternate text
There are occasions when it is not appropriate to use the field’s caption, including:
- The field has no caption
- The caption is too verbose
- The caption is not meaningful out of context
Set the ‘Screen Reader Precendence’ property to ‘Custom Text’ and enter the custom text in the ‘Custom Screen Reader Text’ property in the accessibility pallet.
The field has no caption
It is sometimes necessary to implement a field’s label as a separate text object, for instance to implement multi-line labels:
![]()
In this case, it is common to use the text from the label object as custom text.

The caption is too verbose
It is important that the alternate text for a field is concise. Verbose captions that are provided to assist a sighted user may be frustrating for a user of assistive technology.
In this case, it is common to paraphrase the caption text.

The caption is not meaningful out of context
Field captions can depend on context to make sense. A common example is radio button lists. Typically, a separate text object is implemented to ask a question and a radio button is provided for each answer.
For instance, when a user tabs into a yes/no radio button list that uses the caption for alternate text, the screen reader JAWS V10 with default configuration would read the following:
Yes… radio button not checked… one of two
To resolve this, it is common to provide custom text that combines the question with the response for that radio button.

A closer look at how alternate text works
How alternate text is read is dependent on the assistive technology used. You can use the attached AltText-TestForm to test. The two most popular screen readers were used for this article:
- JAWS V10
- Window-Eyes V7.1
Screen Reader Precedence
The ‘Screen Reader Precedence’ property on the accessibility pallet has the following values:
- Custom Text
- Tooltip
- Caption
- Name
- None
The screen reader uses this property to determine what text to read. If no text is found, then the screen reader searches for text in the precendence order, starting from Custom Text.
When ‘None’ is selected Window-Eyes performs a search through the precedence order. JAWS does not search through the precedence order, but tries to find a caption, including looking for a text object that may be the label for this field. As a last resort, both screen readers read nothing for the field description, resulting in:
edit… type in text
Using tooltips
Tooltips are used to provide sighted users assistance with completing fields. The text is displayed in a box when the user hovers the cursor over a field.
Typically, tooltips are too verbose to be used as alternate text. To make important tooltip information accessible, it should also be displayed in the form content.
c9eq4xmrbv
From eForms to Climate Change
One of the benefits of eForms over Paper Forms is a reduction in the use of paper (seems obvious). But when you look at how much of a climate change impact this can have – it’s surprising. Using data from the Environmental Protection Agency in Queensland Australia that using 1 ream of paper equates to 6% of a tree, 5.4kg of CO2 and 160 litres of water, Avoka have developed an eForm Benefits Calculator that calculates the environmental, cost and customer service benefits of replacing paper forms with eForms.
A core service offering from Avoka is the development of electronic forms (we call them “SmartForms“) … interactive PDF, Flash or HTML forms for structured data capture. Typically these SmartForms replace paper or static PDF forms within organizations and the clients for these solutions are medium-large businesses and Government agencies. They usually deal in tens, hundreds or thousands of different forms and many receive millions of form submissions each year.
Traditionally, the motivation for the creation of SmartForms is improvements to customer service, reductions in operating costs and increased revenue through improved sales order processing. But what about the environmental impact?
I received an email from the Environmental Protection Agency in Queensland Australia with one of those “think b4u print” messages at the bottom, which was backed up with data. Namely:
“Think B4U Print
1 ream of paper = 6% of a tree and 5.4kg CO2 in the atmosphere
3 sheets of A4 paper = 1 litre of water”
Based on this data, we decided it would be interesting to develop a calculator (eForm Benefits Calculator) that provides estimates on the benefits to an organization when replacing paper forms with SmartForms…with the benefits grouped in to 3 distinct categories:
- Environmental Impact
- Cost Savings
- Customer Service improvements
Based on the user entering 2 pieces of information in the calculator
- Forms – Number of forms processed per year
- Pages – Average number of pages per form…
we calculate the savings as follows:
Environmental Impact:
Assuming the Forms x Pages = pages consumed, and a ream of paper = 500 pages. We calculate the amount of CO2 produced, number of trees removed from the environment and water consumed in the manufacturing of that total number of pages.
We then convert the water and trees in to CO2 figures as follows:
- Using 1,100 litres of water is equivalent to 1 kg of CO2 in to the atmosphere (not that water isn’t valuable in its own right)
- 1 tree can remove 3 kg of CO2 from the atmosphere per year
By brining all the environmental benefits back to a CO2 number, we can calculate a single Climate Change figure represented by the size of the Green Footprint – the more potential savings, the bigger the footprint.
Cost Savings:
Based on research from a business process outsourcing company on the operational cost of processing paper forms (e.g. data entry, rework due to missing information, searching for misplaced documents, etc) and using a flat fee of $40 per hour for administrative staff, we’ve calculated the work time that can be saved when an organisation avoids dealing with paper…no data entry, no rework, no misfiled documents, etc. This is shown as a straight annual dollar saving.
Customer Service:
Based on the same outsourcing company’s research into paper form processing, we’ve estimated the reduction in the processing time for a request initiated with a form. Given that 38% of paper forms have incorrect information or are missing required information (from the same outsourcing company study), organizations have to get back in touch with the customer to get that information. When combined with data entry time etc. the total delays that can be avoided averages out to be 48 hours. So if your company operates 24×7, you can get back to a customer 2 days faster. If you operate 9 to 5, you can respond 6 days faster. This equates to more rapid customer service.
Summary
If your organization was to replace 500,000 form submissions with an average of 4 pages per form with eForms, the ANNUAL savings would be in the order of:
- 21,643 Kg of CO2
- 667,332 litres of water
- 240 trees
- $13m in operational costs
- Reduction in customer response times by 48 hours.
Try the calculator for yourself…
Note:
The calculator is not designed to be exact or exhaustive…it’s more of a rough estimate, but with some science to back it up. For example, we purposely haven’t factored in additional power usage requirements for filling in a form online using a computer as:
(a) It is probably balanced by the power usage to download and print (printers are power hungry!) a static PDF from a website
(b) Computers tend to be on during the day – this way they’re being used productively
(c) Other savings like emissions associated with transporting paper in mail vans etc. haven’t been included
(d) You get the picture…it gets complicated pretty quickly.
This is our first calculator and there’s probably room for refinement. We’d be happy to receive suggestions on enhancements – please post your suggestions here.
Tour de LiveCycle Launched
Over the past several months we have been working with the Adobe Evangelist Team to create Tour de LiveCycle, a desktop application designed to explore the capabilities of Adobe LiveCycle Enterprise Suite.
After the success of Tour de Flex it was felt that a similar style AIR application would be an ideal way to allow users to explore the wide range of features and services provided by the LiveCycle ES Platform. There are over 2,000 pages of content, videos and sample applications. Whether you plan to spend 10 minutes getting a feel for what LiveCycle ES is all about or you need to build a full application with LiveCycle ES, Tour de LiveCycle can help.
Tour de LiveCycle is built on Adobe AIR and will run on Windows, Mac and, Linux. All of the content is hosted and downloaded on demand – the installer is only about 1.5MB.
Managing the size of your LiveCycle database
A user on the Adobe forums, recently posted a comment about noticing that his LiveCycle database was increasing rapidly over time.
http://forums.adobe.com/message/1934388#1934388
You may have noticed the same with your own database, as well as the size of the Global Directory Storage, particularly if you’re running larger numbers of long lived processes involving users.
It turns out that quite a big chunk of this data is temporary data, that doesn’t really need to be kept around after the process has completed. Luckily, there are a few ways in which you can remove this data.
1. You can use the Adobe PurgeProcessTool.
This tool completely deletes all trace of processes that meet a particular criteria (usually, they must be comleted, and older than a certain date). After you run the tool, that process and all its data will be gone – there is no record that it ever existed. You can find a batch file (modify for Unix) at: C:\Adobe\LiveCycle8.2\LiveCycle_ES_SDK\misc\Foundation\ProcessPurgeTool
Note: We recommend you only purge process types that you have created and make sure you test this in your Test machines before you activate in in Production.
2. You can use the Avoka purge tool.
The Avoka tool takes a slightly different approach. It leaves the old processes intact, but removes a whole lot of superfluous information that is stored along with the process instance. It removes:
- The data associated with certain internal data structures. This data accounts for the vast majority of the size associated with process instances, and is generally completely superfluous. (The only exception is if you’re invoking processes programmatically, and polling for the results.)
- Optionally, the data associated with attachments within Workspace. It doesn’t remove the record that there was an attachment, but if you try to download the attachment, it will be a zero byte file. Note that any attachments are duplicated at every single user step, potentially resulting in very large data in the database.
Our general recommendation is to use both tools:
- Use the Avoka Purge Tool on a weekly or even daily basis. This means that you can still search and track historical processes, maintaining audit trails – it doesn’t delete the whole process, just the unneccessary data associated with each process.
- Quarterly or annually, use the Adobe purge tool to remove all traces of processes that completed in the previous quarter/year – providing you don’t want those records for historical analysis. Ensure that you have a backup of the database before you do this.
One of our recent customers had reached a database size of 50GB, and was running out of capacity. By using the Avoka Purge Tool, we were able to reduce the database by 80%, without any loss of historical process data.
The bottom line is that the Avoka Purge Tool will dramatically reduce your database size, without removing your ability to search and track historical process instances.
Pre-populating forms with LiveCycle ES
Summary
The recommended pre-population technique is on the server as part of a Livecycle ES process. This provides the best user experience and allows leverage of the full power of LiveCycle ES. This is the default implementation for LiveCycle forms rendered as Form Guides or HTML, as you already have the infrastructure in place for rendering these formats.
A light-weight alternative is available for PDF forms: direct web service calls from Reader/Acrobat that requires little or no server infrastructure.
The most common approach for PDF is to pre-populate user data, for instance name, address and contact details for a known user, in a LiveCycle ES process on the server and then use web services from the client to lookup data from large data sets or perform complex/shared validations.
Pre-populating on the server
Pre-population of data into LiveCycle forms on the server is implemented in a LiveCycle ES process. The three core services to enable this are:
- Forms Data Integration (FDI) – for pre-population of XML data into a PDF. This service is bundled with several LiveCycle solution components including Process Management and Reader Extensions
- Forms ES – for pre-population of XML data into an XDP and conversion to PDF, Form Guide or HTML. This is for use cases that are only supported by XDP, including dynamic importing of form fragments
- Output ES – for pre-population of XML into XDP or PDF and conversion to a read-only or printer-ready format
A typical user experience would be:
- User logs into a web-site or portal
- User clicks on a link to a form
- A server web component (any HTTP technology including servlets, jsp, PHP and ASP.NET) handles the request and calls a LiveCycle process, passing a form ID and the user’s ID (either as a web service or using the LiveCycle APIs)
- The LiveCycle process retrieves the form based on form ID
- The LiveCycle process retrieves user data based on the ID and generates an XML file
- The form is pre-populated using one of the services above
- The pre-populated form is returned to the web component which is displayed to the user
Avoka provides a pre-built web component to simplify this implementation – process invoker.
Pre-populating from the client
PDF forms provide the functionality to lookup data directly from Reader/Acrobat using a web service or database lookup. An explanation of how this is implemented is provided by Adobe livedocs.
Web service pre-population is the prefered approach. The database lookup requires that ODBC data source names (DSN) be set up on each user’s machine that will use the form. This may be useful for testing, but is infeasible for production forms. It is not scalable for internal forms and impractical for externally facing forms.
A typical user experience would be:
- The user navigates to a web-site
- The user clicks on a link to a form
- An empty form is displayed within the browser (inside the Acrobat plug-in)
- The user enters a customer ID and clicks a button
- The Acrobat plug-in directly calls a web service, passing in the customer ID
- The web service returns the user’s data which is displayed within the form
Comparison Matrix
| Pre-populating on the server | Pre-populating from the client | |
|---|---|---|
| User experience | The form is already customised for a known user when it is viewed | The form is not personalised to the known user when it is first viewed. The user has to re-enter identifying information into the form and perform an action, for instance click a button, for the web service to be called |
| Maintenance | Changes to the pre-population service can be made in one central location and does not require changes to or re-distribution of forms | Changes to the pre-population service may require changes to and re-distribution of forms |
| Data sources | Pre-populated data can be retrieved from multiple sources and transformed by the LiveCycle process before being pre-populated into the form | Multiple web services can be used from within or outside the organisation |
| Infrastructure | A server installation of LiveCycle ES is required | A lighweight solution that can be implemented with little or no server infrastructure. Server infrastructure is only required to provide access to the form, if it is not to be distributed offline, for instance by email or on CD-ROM/DVD, and to expose web services from your organisation |
| Development tool | Implemented with LiveCycle Workbench | Implemented with LiveCycle Designer |
| Offline support | The user must be logged in and online to view a new form. They can then save the form to their local machine and work offline | The user can either view the form from a web-site or receive it in an email or on fixed media, for instance cd-rom or memory stick. The user must be online to call the web service |
| Technical limitations | None. LiveCycle ES can handle different form types, data sources and transformation requirements | Web services in anything that is not document literal style or returns multiple responses requires custom codingPassword-protected web services cannot be called from a form
Users behind an NTLM authenticating proxy must use Adobe Reader/Acrobat version 9.0 or higher. Typically, this only affects users on corporate environments |
PDF Accessibility – part 1 of 3 (introduction)
This blog is the first in a series that explores the, often misunderstood, field of accessibility. This installment introduces the basic concepts and sets the context for subsequent blogs which will cover the practical aspects of implementing accessible PDF and Flex solutions.
In this series:
PDF Accessibility – part 2 of 3 (reading fields) – a step-by-step guide on making form fields accessible
PDF Accessibility – part 3 of 3 (reading text) – a step-by-step guide on making text accessible
The bottom line
Despite some misconceptions, PDF and Flex/Flash solutions can be highly accessible.
However, it does not happen automagically. Project commitment is required to attain the desired level of accessibility. It is advocated that ITC professionals spend time to understand accessibility, regulatory compliance, the capabilities of Adobe technologies and apply the appropriate level of consideration in project planning.
It is far more expensive to retro-fit changes, rescue a failed project or limit brand damage caused by building a solution that, for example, is unavailable to an important community of Mac users or is complained about in a public forum by a blind user.
What is accessibility?
Accessibility can be considered the degree to which electronic services and products can be accessed by the largest number of users possible. Although, often focused on disabled people, this is relevent to all people, including those that are on slow broadband, using non mainstream operating systems, using a mobile device or speaking non native languages.
Accessibility is closely related to the concept of usability. Usability can be considered the ease with which a specified group of people can use an electronic service or product.
Why should I care about accessibility?
Technological progress and the meteoric rise of the Internet continues to fuel the trend of delivering services and goods through electronic channels. As the trend progresses, the opportunities and responsibilities of accessibility increase.
The three primary reasons to care about accessibility are:
- It is good for business – increase leads and conversion to sales
- It is good for society – provide access for more people to the benefits of technological advancement
- You have to - legislation has been passed around the world that mandates accessibility requirements
Accessibility and disability
Although, accessibility is often set in the context of totally blind people, there are different categories of disabilities with different accessibility requirements.
Types of disability
The major categories of disability types are:
![]() |
Visual | Blindness, low vision, color-blindness |
![]() |
Hearing | Deafness |
![]() |
Motor | Inability to use a mouse, slow response time, limited fine motor control |
![]() |
Cognitive | Learning disabilities, distractibility, inability to remember or focus on large amounts of information |
What is Assistive Technology?
Assistive technology refers to any product or software program that has been developed or modified to make it accessible for the disabled. Of the wide range of assistive technologies available, the most relevent to PDF and Flex solutions are screen readers, text-to-speech, screen magnifiers and Braille output devices.
Screen Readers
Screen readers are software that interprets what is being displayed on screen and re-presents it as synthesised speech or on a Braille output device.
According to the WebAIM Survey of Preferences of Screen Readers Users completed in January 2009, the top three screen readers being used by 1121 respondents were:
- JAWS at 74%
- Window-Eyes at 23%
- NVDA at 8%
JAWS and Window-Eyes are commercial products that offer evaluation licences. NVDA is a free, open-source screen reader.
Screen readers are highly configurable, complex software that is designed to enable the operation of a computer in ways that are very different from the traditional keyboard and mouse methods employed by fully sighted users. The WebAIM screen reader simulation tool is an interesting way for a fully sighted user to experience the use of screen readers. It is recommended that screen reader testing be performed by specialist users.
Text to Speech
Text to speech software re-present normal language text as an artificial production of human speech. This software is used by screen readers and can be used independently. Common programs include ReadPlease and NaturalReader.
Screen Magnifiers
Screen magnifiers are software that interface with a computer’s graphical output to present enlarged screen content for the partially sighted.
Braille output devices
Braille output devices re-present text as Braille by raising pins through a flat surface in Braille characters.
What is the web standard for accessibility?
Since 1999 the primary international standard for website accessibility has been the Web Content Accessibility Guidelines (WCAG) developed by the W3C. This has formed the basis for accessibility legislation around the world, including Section 508 in the US and the 2000 Government Online Strategy in Australia.
In December 2008, the W3C released WCAG 2.0 recommendation. Version 2 is a significant update to its predecessor.
WCAG 2.0 is built around four basic principles:
| Perceivable | Information and user interface components must be presentable to users in a way that they can perceive |
| Operable | User interface components and navigation must be operable |
| Understandable | Information and the operation of user interface must be understandable |
| Robust | Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies |
Each of these four principles contains a number of guidelines outlining how a website should meet all users’ needs. Within the guidelines there are a number of success criteria which outline how the web content should be developed to meet the guidelines. There are three levels of conformance within WCAG 2.0, A, AA and AAA (the highest level). In order to conform to WCAG 2.0, the web content must satisfy at least level all of the Level A success criteria.
The diagram below shows the minimum success criteria that must all be satisfied for web content to conform to WCAG 2.0:

WCAG 2.0 introduces the notion of “Accessibility Supported” and the requirement that only “accessibility supported ways of using technologies” can be relied upon to satisfy the success criteria. As both Adobe Reader and Flash Player are free and generally available from the Adobe web site, PDF and Flex satisfy the first of the basic requirements for it to be considered “accessibility supported” under the standard:
- Users of the web must be able to obtain user agents for the Web Content technology that are accessibility supported. The W3C suggests this can be achieved in one of four ways.
- In its basic state the technology is accessible to common user agents – e.g. HTML is supported by browsers. OR
- The technology is supported by an accessible plug in such as Flash that is generally available. OR
- The content is to be used in a closed environment such as a university or corporate network, where the necessary accessibility supported technologies are supplied. OR
- The user agent that allows the technology to be accessible is easy for a person with a disability to obtain and it doesn’t cost any more than it would for someone without a disability.
Developments in the Adobe Acrobat, Reader and Flash Player in partnership with assitive technology vendors results in PDF and Flex passing the second of the basic requirements:
- The way a particular web content technology is used must be supported by the assistive technology, that is, if you use JavaScript or PDF, for example, you must do so in a way that allows the final product to be accessed by assistive devices like screen readers and switches.
The accessibility myth
It is a misconception that PDF and Flex solutions cannot be accessible. There are two primary reasons for this:
Many existing PDF and Flex solutions on the web are not highly accessible
This is either due to projects not investing in accessibility or, particularly in the case of PDF technology that has been around for a long time, and was developed prior to versions of Reader and Flash Player that do support accessibility.
Although HTML supports accessibility, it is possible (even easy) to implement HTML web-sites that are horribly inaccessible. Just because HTML supports accessibility does not mean that all HTML sites are automatically accessible – it takes effort and care to achieve this.
In the same way modern versions of Reader and Flash do support accessibility and it is possible to build PDF and Flash content that is accessible. It is up to PDF and Flash developers to learn about these features and implement them correctly.
A bias of the earlier standard WCAG 1.0 was towards W3C web technologies
WCAG 1.0 has been the W3C endorsed standard for nine years and is the referenced standard for accessibility legislation around the world. WCAG 1.0 is technology dependent; Guideline 11 of the standard has two checkpoints relating to what technologies are accessible:
- Checkpoint 11.1 has priority 2 (should) and says to use W3C technologies
- Checkpoint 11.4 has priority 1 (must) and says that if you cannot create an accessible page, then an alternate accessible page that uses W3C technologies must be provided
One of the key drivers to WCAG 2.0 was to become technology agnostic, thereby opening the standard to non-W3C technologies such as PDF and Flex.
Processes, Orchestrations, Services, and other confusing terminology
Introduction
There are a number of different terms used in Adobe LiveCycle Process Management, including process, orchestration, workflow, service, and component. These can be confusing.
Part of the reason for the proliferation of terminology is the history of the Process Management product and industry trends, and this blog entry tries to provide this perspective. This is my understanding of how these terms fit together, and should not be regarded as a definitive explanation.
If you don’t care about the historical perspective, skip to the end for a summary.
Workflow
The first version of Process Management was called “Adobe Workflow”. And the things you created were called “Workflows”. Even today, many people will generically refer to any combination of boxes and lines that you create in Workbench as a “workflow”.
However, the term workflow was used primarily in the 80’s and 90’s to refer to more traditional image storing and routing applications, and doesn’t really adequately describe the much more useful data-oriented and integration capabilities of LiveCycle. In the 2000’s, the terms BPM or Business Process Management started to become more widely used, not just as a technology, but also as a way of thinking about and improving your business. Various BPM disciplines evolved, including Six Sigma, Lean, and others. LiveCycle fits in much more closely with BPM than it does with the older imaging-oriented workflow systems, so…
Adobe Workflow became LiveCycle Process Management, and Workflow was replaced with …
Process
A Process is no different to a workflow, really, it’s just a term that better reflects the data-orientation and integration capabilities of the LiveCycle platform.
In LiveCycle, a process is almost always associated with a Form, and a series of human interactions that allow people to interact with the form and its data. There are almost always integration steps as well, such as pre-filling the form, writing to a database, adding a digital signature, sending emails, etc. These are also known as “long lived processes”, because they involve people interating with the form over a period of days or weeks.
Long lived process have a unique process-id, have every step recorded and audited, can be re-tried if any step fails, and can be viewed and managed through the Adminui interface.
Orchestration
In LiveCycle ES, we started seeing an increasing number of processes that are short-lived, and don’t include human steps. An example is the Default Render Process in LiveCycle ES. These processes used to be written as Java code in LiveCycle 7 – in ES, they have the advantage that being processes, we end-users can see and modify them very easily. It’s really just visual drag-and-drop programming. You can also easily build your own orchestrations to do something useful – for example, you may want to grab some data from an XML file, populate a form with it, encrypt the form with a password, and email the result to someone. There are no human steps in that, just a series of operation that need to be performed as quickly as possible. You could do this using the API’s, but implementing this as an orchration is quicker, more reliable, and much easier to change.
These short-lived or “straight-thru” processes do not store an audit trail, run as fast as possible (very close to native Java speeds), and do not have a unique process-id that identifies them. They cannot be managed through Adminui, and if they fail, they simply throw an exception back to the caller, rather than being able to be re-tried thru Adminui.
Someone coined the term “Orchestration” to refer to this type of process, and the name has stuck. I’m not sure where the use of this term originated, but it’s used in several other standards BPM standards and products.
Notes:
- Adobe do not officially use this term in their documentation (see http://blogs.adobe.com/livecycledocs/2009/02/the_livecycle_terminology_secr.html) but I think it’s a helpful term that differentiates a process as being short-lived.
- You can still use a long-lived process for something that doesn’t involve humans. We often use long-lived-processes for processes that geneally run very quickly, because of the advantages of having each step audited, and for the ability to re-try a step if anything goes wrong. I would still call this an orchestration, because it doesn’t involve any human steps.
Here is a screenshot from WorkBench. This shows a process, its implementation, and its properties. This is a short-lived process, so I would call it an orchestration.
Component
A LiveCycle Component is basically a bunch of Java code, packaged up into a jar file, and deployed into the LiveCycle server.
LiveCycle Components are brilliant. I love ‘em. They are my insurance policy. I know that there is no problem that I can’t solve in the process world, because if i get stuck, I can write Java code to implement it. Then I can turn it into a LiveCycle component, drop it into LiveCycle, and bingo, I can use it my processes. And the real beauty of it is that anyone else can use my component too, without needing to understand programming. In LiveCycle, Adobe have created the best implementation of a server-side component model that I’ve ever seen – it’s a bit like those Visual Basic ocx controls that you can buy to build your GUI – but on the server.
The concept of LiveCycle server-side components came from a predecessor of Process Management, and were originally called QPACs – Quick (QLink for the real old-timers) Process Action Components.
Each component defines one or more services (see below). Although in reality, most components only define a single service, so components and services are somewhat interchangable.
A service can define one or more operations. An operation is the thing that actually does the work – like sending an email, encrypting a PDF, or writing a file to disk. Services group common operations together – so the File Utilities component contains a FileUtilsService, which in turn contains operations to read, write, create and delete files. Operations each define a number of input and output parameters.
For Java programmers:
- Component == .jar file
- Service == Class
- Operation == method
Here is a screenshot of a Component within LiveCycle.
Avoka has been building components to solve real business problems with LiveCycle for many years, and we turn most of our components into re-usable components that anyone can use. We have a large library of components that solve most of the problems we’ve encountered over the last 5 years. So most of the time, you don’t even have to learn how to build components – if it’s not already in the Adobe “box”, then check out our website – there’s a good chance we may already have built it for you.
For more information, see: http://www.avoka.com/avoka/escomponents.shtml, or email info@avoka.com
Service
Another concept that was introduced in LiveCycle ES was that of a “Service Bus” or “Service Oriented Architecture”. LiveCycle is internally implemented as a service bus. In simple terms, any bit of functionality within the LiveCycle server can be exposed to the outside world as a “Service”, and can be invoked in a number of different and useful ways. Once you’ve defined a service, you can define one or more EndPoints for that service. So for example, I might have a service that encrypts a PDF – I could add a Web Service Endpoint that allows me to invoke that service using Web Services. And I could also add a Watch Folder endpoint that allows me to invoke that service by dropping a file into a folder.
Now things get a little confusing. Services can be implemented as either some Java code, or as a LiveCycle process.
- If you need to write Java code, you create a component, deploy that, and you get a service.
- Or you can do it by creating an orchestration (or process), you define your orchestration, activate it, and you get a service.
- Either way, you get a service. The choice of whether to use an orchestration or Java code depends on the complexity of the service you’re trying to create, and whether it can be created by joining together (or orchestrating) a number of other existing services.
The LiveCycle process engine doesn’t really care whether your service is implemented in Java or as an orchestration, you invoke and manipulate it in exactly the same way. You can either call a service externally (by defining an endpoint), or you can invoke one service from another, simply by dragging the service into process. This is a very neat way to handle things – why should you care how something is implemented, you should be able to use it the same way.
Note: An orchestration only ever defines a single operation, always called “invoke”. Whereas a component can define multiple operations.
This screenshot shows two services, one implemented as a component, and the other as an orchestration.
Summary
- Process: Something that you build in Workbench, and looks like a flowchart. Can be user-oriented/long-lived, or straight-thru/short-lived.
- Orchestration: An unofficial but commonly-used term for a straight-thru/short-lived process.
- Workflow: An older term for a process.
- Component: A jar file containing some code to do something “useful”, that you deploy to the LiveCycle server. A component contains services, which in turn contain operations. All the Adobe services are built as components, as are all the Avoka add-on services.
- Service: Something that lives in the LiveCycle server that provides some sort of “service”. Can be implemented either as Java code (as a component) or as a process/orchestration.
Speedup JBoss LiveCycle Startup
JBoss Start-up Performance
Starting JBoss with a fully configured LiveCycle installation can take an awfully long time! We’ve done some digging and found that a large portion of this time is spent unpacking the LiveCycle EAR file – and copying these files into the jboss/server/all/tmp directory. In fact a fully configured LiveCycle EAR can amount to over 800 MB of data being written – which adds a considerable amount of time to the start-up.
JBoss supports unpacked EAR and WAR files in the deploy directory, which will save these files from being unpacked at start-up time. To simplify this we’ve created a small utility that unpacks the LiveCycle EAR file and all of its contents into the deploy directory.
We’ve found that its halved the JBoss start-up time – on my laptop this saved nearly 8 minutes – which is lots when you have to restart Jboss often.
Instructions:
- Download the utility and unzip the file. You should have a file called “AdobeJBossEarUnpacker.jar“
- Run the Jar – it will prompt you for the location of the JBoss deploy directory (typically its under your LiveCycle install directory in /jboss/server/all/deploy).
- That’s it. It will create a copy of your LiveCycle.ear file then proceed to unpack LiveCyle inside your deploy directory. Whenever you need to redeploy LiveCycle make sure you delete the exploded directory first.
Startup Sequence
While we are on the topic of starting JBoss another really handy trick is to make use of the “deploy.last” sub-directoy. Any files placed in this directory won’t be deployed until all the files in the main deploy directrry have started. This can be very handy when you have an application that is dependant on a LiveCycle service – which means that you don’t want it to start until LiveCycle its-self has fully started.
PS – Thanks to Malcolm Edgar for some great investigative work and creating the unpacker util.









