Being the procrastinator that I am, I finally got around to posting a session for MAX 2008. The sesion will be about how to built a collaborative review solution using Adobe AIR and LiveCycle. The solution has 3 components: AIR client, LiveCycle backend services, and a repository for storing content and comments. During the session, I will talk about high level architecture, implementation details, and showcase bunch of demos. (starting from a multitude of assets, leveraging Adobe's shared review capabilities, and use LiveCycle as the orchestration engine.)
For others who wants to present, go to https://adobemax.dabbledb.com/page/callforsessions/NLXYueHm and suggest a session before the deadline tonight.
See you all in San Fran.
David
Dave's thoughts on technology, with specific focus on Adobe Flex, LiveCycle, PDF, enterprise Java and related technologies. May also include rants on daily events.
Tuesday, May 27, 2008
Thursday, March 13, 2008
Enable SSL for LiveCycle Rights Management for cheap
LiveCycle Rights Management ES which protects PDF documents with revokable policies, requires an SSL certificate to ensure communication between PDF and the server is secured. In the past, we typically use a self signed certificates for development purposes, until the project is ready for production. Unfortunately, most trusted CA signed SSL certificates tends to be quite expensive.
I didn't know about this until recently, but inexpensive SSL certificates ($30 USD / year) can be used. P.s. I am not affiliated with GoDaddy. If you find other cheap and trusted CA, feel free to post in the comments.
I was a bit skeptical about whether the root certificate is trusted in the browser and in various OS's. Of the machines i tried, it seems to work fine. So below is a brief end to end instructions on how to enable your Rights Management ES instance (jboss) using a trusted CA signed certificate.
Step 1: Generate java keystore

Step 2: Generate certificate request

Step 3: purchase a Standard SSL certificate
Follow instructions provided by the CA, and paste certificate signing request when requested.
Step 4: importing the various certificates into your java keystore
After successfully purchasing a certificate, you will be sent a set of certificates. A root, a chain, an intermediate, and your site certificate. Follow the instructions below to import the certificates into your keystore.

Step 5: update server.xml
First copy the .keystore into a known location. I used JBOSS_HOME\server\all\conf. Then update the server.xml located at JBOSS_HOME\server\all\deploy\jbossweb-tomcat55.sar as below.
I didn't know about this until recently, but inexpensive SSL certificates ($30 USD / year) can be used. P.s. I am not affiliated with GoDaddy. If you find other cheap and trusted CA, feel free to post in the comments.
I was a bit skeptical about whether the root certificate is trusted in the browser and in various OS's. Of the machines i tried, it seems to work fine. So below is a brief end to end instructions on how to enable your Rights Management ES instance (jboss) using a trusted CA signed certificate.
Step 1: Generate java keystore
Step 2: Generate certificate request
Step 3: purchase a Standard SSL certificate
Follow instructions provided by the CA, and paste certificate signing request when requested.
Step 4: importing the various certificates into your java keystore
After successfully purchasing a certificate, you will be sent a set of certificates. A root, a chain, an intermediate, and your site certificate. Follow the instructions below to import the certificates into your keystore.
Step 5: update server.xml
First copy the .keystore into a known location. I used JBOSS_HOME\server\all\conf. Then update the server.xml located at JBOSS_HOME\server\all\deploy\jbossweb-tomcat55.sar as below.
Thursday, January 17, 2008
New COLLADA flex sample based on Away3D
Finally got around to posting a COLLADA viewer that we built based on modified version of Away 3D. The component was put together to support viewing 3D models based on the COLLADA standard within a Flex application.
Changes include:
The reason behind building this component is that we wanted to support viewing and interacting with a 3D model for a flex application. We also wanted to ensure that existing 3d models can be reused. Some of our envisioned usage scenarios below:
To view a demo of the viewer in action here. The samples page on our website here, including a download for project source.
Cheers,
David
Changes include:
- - Implement a flex component for the AWAY3d rendering engine.
- - Hover/Zoom navigation support using custom targeted hover camera (hold down shift OR ctrl on top of the model viewer).
- - Added simple material and lighting support to the COLLADA parser.
- - Added materials preloading support.
The reason behind building this component is that we wanted to support viewing and interacting with a 3D model for a flex application. We also wanted to ensure that existing 3d models can be reused. Some of our envisioned usage scenarios below:
- - interacting with a Air Plane or Car Model for a technician to document repairs and issues done (visual maintenance record).
- - review architecture and design decisions for a building amongst architects, and developers.
- - etc...
To view a demo of the viewer in action here. The samples page on our website here, including a download for project source.
Cheers,
David
Thursday, October 25, 2007
Be a rebel...
I needed to validate LiveCycle ES 8.0.1 against Windows 2003 R2 - 64 bit and SQL 2000 Server. According to the install documentation (pg13) , this is a big no no.:
Good news!
The installation and configuration went basically flawlessly. The only thing I ran into problem with was the JDBC Driver.
I started the installation process using: SQL Server 2000 Driver for JDBC Service Pack 3 . Unfortunately I ran into some SQL issues during start up of my jboss app server. Specifically I got the "Can't start manual transaction mode because there are cloned connections". After a bit of googling, this turns out to be a problem with Microsoft Type 4 JDBC Driver and concurrent statements, transactions, or result sets on the same database connection. The resolution was to pass in "SelectMethod=cursor" in my connection string. I didn't like this very much, since SelectMethod=cursor potentially has performance impact.
After further researching, it turns out that the SQL Server 2005 JDBC Driver 1.2 supports SQL Server 2000 as well as 2005. Using this driver my connection issue went away, and I was unable to successfully complete the rest of my configuration steps for LCES.
The specifics of my environment below. Hopefully this may potentially help some of you.
Hardware: AMD X2 5600+ , 8GB of RAM
OS: Windows 2003 Server Enterprise Edition R2, 64 Bit
Java: JDK 1.5.0_13-windows-amd64
Database (on a remote machine): SQL 2000 Server SP4 on a Windows 2003 Enterprise (32bit)
Notes:
- Use the latest JDBC Drivers from Microsoft. Version 1.2 of the JDBC Driver was released recently, and my preliminary tests (Reader Extensions, create sample policies) worked without any issues.
- Set database to authenticate against mix mode (SQL Server and Windows authentication)
- Watch out for driver-class in adobe-ds.xml and mssql-ds.xml. I double checked by extracting the jar file to see what the path is.
Happy installation :-)
Intel x86 compatibilityOn supported Windows and Linux environments, LiveCycle ES supports Intel EDT64 and AMD64 compatible chipsets, but the operating system must be 32 bit.
Microsoft Windows Server 2003 Enterprise Edition or Standard Edition SP1 and R2 (32-bit edition only)
Good news!
The installation and configuration went basically flawlessly. The only thing I ran into problem with was the JDBC Driver.
I started the installation process using: SQL Server 2000 Driver for JDBC Service Pack 3 . Unfortunately I ran into some SQL issues during start up of my jboss app server. Specifically I got the "Can't start manual transaction mode because there are cloned connections". After a bit of googling, this turns out to be a problem with Microsoft Type 4 JDBC Driver and concurrent statements, transactions, or result sets on the same database connection. The resolution was to pass in "SelectMethod=cursor" in my connection string. I didn't like this very much, since SelectMethod=cursor potentially has performance impact.
After further researching, it turns out that the SQL Server 2005 JDBC Driver 1.2 supports SQL Server 2000 as well as 2005. Using this driver my connection issue went away, and I was unable to successfully complete the rest of my configuration steps for LCES.
The specifics of my environment below. Hopefully this may potentially help some of you.
Hardware: AMD X2 5600+ , 8GB of RAM
OS: Windows 2003 Server Enterprise Edition R2, 64 Bit
Java: JDK 1.5.0_13-windows-amd64
Database (on a remote machine): SQL 2000 Server SP4 on a Windows 2003 Enterprise (32bit)
Notes:
- Use the latest JDBC Drivers from Microsoft. Version 1.2 of the JDBC Driver was released recently, and my preliminary tests (Reader Extensions, create sample policies) worked without any issues.
- Set database to authenticate against mix mode (SQL Server and Windows authentication)
- Watch out for driver-class in adobe-ds.xml and mssql-ds.xml. I double checked by extracting the jar file to see what the path is.
Happy installation :-)
Monday, October 22, 2007
rise from the ashes ;)
Been a while since I've posted... some updates over the course of next few days:
1. Currently experimenting with installing LiveCycle ES 8.0.1 on an 64 bit OS. Officially it's unsupported. I am keeping my fingers crossed that A) Java's abstracted well enough from the OS layer that this is a non-issue. B) LiveCycle 8 is purely Java, failing that C) Windows 2003's 32 bit emulation mechanism is good enough.
I should have an answer tomorrow.. Keep reading :)
2. Some folks in our office spent quite a few weeks trying out install and configuration documentation for Clustering on LiveCycle ES. Version 8 is so much easier to install and configure in a cluster than previous releases. There are a few caveats to watch out for in *unix based environments. Specifically this has to do with the GlobalStorageDirectory properties during the installation step. I will share some of the problems we ran into, and our workarounds in a follow up post. For those who needs specific help, send me an email at davidl AT ensemble dot com.
1. Currently experimenting with installing LiveCycle ES 8.0.1 on an 64 bit OS. Officially it's unsupported. I am keeping my fingers crossed that A) Java's abstracted well enough from the OS layer that this is a non-issue. B) LiveCycle 8 is purely Java, failing that C) Windows 2003's 32 bit emulation mechanism is good enough.
I should have an answer tomorrow.. Keep reading :)
2. Some folks in our office spent quite a few weeks trying out install and configuration documentation for Clustering on LiveCycle ES. Version 8 is so much easier to install and configure in a cluster than previous releases. There are a few caveats to watch out for in *unix based environments. Specifically this has to do with the GlobalStorageDirectory properties during the installation step. I will share some of the problems we ran into, and our workarounds in a follow up post. For those who needs specific help, send me an email at davidl AT ensemble dot com.
Friday, May 25, 2007
LiveCycle Enterprise Suite (ES) preview release
LiveCycle Enterprise Suite (ES) preview release is available for download from http://www.adobe.com/devnet/livecycle/espreview/ . Yes folks, this is the next version of LiveCycle.
Some of the changes in LiveCycle are quite significant in this release. Notable features include:
Installation and Configuration
Designer ES
- Let me overwrite and update the generated MXML code. This will allow finer grained control over the user experience and look and feel of the UI.
- Guide preview currently generates the swf in a default location. Let me specify where to put this. Or better, place in a sub-folder from where the xdp/pdf template is.
- The preview in the guide builder doesn't open the PDF? It's pointing to a default PDF.
- I am quite excited about Form Fragments. In many of our large form projects, we could have used something exactly like this. Form fragments allows you to create, say a company header, or a mortgage calculator object and reuse across all forms. How is this different from a custom XFO? Well, when you insert an XFO, a static copy is inserted into your form. Any updates to the XFO will need to be updated in all form instances. This is not true for form fragments. Since XDP with form fragments contains a reference to the fragment, any updates to the fragment will be dynamically picked up by ALL form instances. This is a big win in terms of form maintainability.
LiveCycle ES Document Services
Workbench ES
Process Management and Workflow
There are alot of new and exciting features in LiveCycle ES that makes a lot of sense for developers who are currently on the 7.x platform, as well as new organizations that want to adopt LiveCycle into their business processes.
Some of the changes in LiveCycle are quite significant in this release. Notable features include:
Installation and Configuration
- consistent installation and configuration experience from a single installer.
- better support at detecting environment settings and automatic deployment of LiveCycle ES onto the app servers.
- Support of the latest app servers and databases.
Designer ES
- [New feature] Form Guide, a flash based wizard constructed with the same PDF template (xdp and pdf).
- [New Feature] Form Fragments, xdp concept that allows fragments to be reuse across different templates.
- Let me overwrite and update the generated MXML code. This will allow finer grained control over the user experience and look and feel of the UI.
- Guide preview currently generates the swf in a default location. Let me specify where to put this. Or better, place in a sub-folder from where the xdp/pdf template is.
- The preview in the guide builder doesn't open the PDF? It's pointing to a default PDF.
- I am quite excited about Form Fragments. In many of our large form projects, we could have used something exactly like this. Form fragments allows you to create, say a company header, or a mortgage calculator object and reuse across all forms. How is this different from a custom XFO? Well, when you insert an XFO, a static copy is inserted into your form. Any updates to the XFO will need to be updated in all form instances. This is not true for form fragments. Since XDP with form fragments contains a reference to the fragment, any updates to the fragment will be dynamically picked up by ALL form instances. This is a big win in terms of form maintainability.
LiveCycle ES Document Services
- LiveCycle Forms ES can generate a form guide from the XDP template
- Better and consistent Java API support across the board. Remote java calls now supported for Reader Extensions. We used to have to write a webservices wrapper for Reader Extensions.
- Better and consistent SOAP API support across the board.
Workbench ES
- Eclipse based development environment for building your form, and processes.
- Re-skinned, and much improved workflow designer in terms of user experience.
- Drag and drop support to add files into the repository for consumption by the processes.
Process Management and Workflow
- additional invocation methods to all services supported by default, including watch folder, email, java, soap, and remoting (flash remoting).
- [New Feature] Workspace to replace LiveCycle Form Manager. Workspace is a Flex application that allows user to initiate and participate in processes.
There are alot of new and exciting features in LiveCycle ES that makes a lot of sense for developers who are currently on the 7.x platform, as well as new organizations that want to adopt LiveCycle into their business processes.
Monday, May 14, 2007
New LiveCycle Samples (with source code)
There are 3 additional LiveCycle samples that we have made available at our website.
The first sample utilizes Reader Extensions and Assembler to cover the scenario of enabling a pdf document for review, then compare and merge the comments using Assembler.
The second sample goes through various mechanisms for validating a PDF form before additional processing can occur. Three specific approaches were illustrated: LiveCycle Forms API (processFormSubmission()), LiveCycle Reader Extensions API (exportFormData()), and XPAAJ (exportFormData()).
Finally, the last sample shows how to apply a policy on a PDF document.
The samples can be found at http://www.ensemble.com/samples/adobe/livecycle
David
The first sample utilizes Reader Extensions and Assembler to cover the scenario of enabling a pdf document for review, then compare and merge the comments using Assembler.
The second sample goes through various mechanisms for validating a PDF form before additional processing can occur. Three specific approaches were illustrated: LiveCycle Forms API (processFormSubmission()), LiveCycle Reader Extensions API (exportFormData()), and XPAAJ (exportFormData()).
Finally, the last sample shows how to apply a policy on a PDF document.
The samples can be found at http://www.ensemble.com/samples/adobe/livecycle
David
Labels:
Assembler,
Forms,
LiveCycle,
PDF Samples,
Policy Server,
Reader Extensions,
XPAAJ
Subscribe to:
Posts (Atom)