Archive for the 'LiveCycle ES' Category

Oct 21 2008

Answering LiveCycle Data Services messaging questions

This month’s DrLiveCycle consult was about leveraging the message feature of LiveCycle Data Services.

Disease:
You are planning the architecture of your LCDS Messaging based application and you asked yourself the following questions:

  • Is the order in which the messages are delivered to the clients always guaranteed, and does that depend on which channel you use?
  • If you have many concurrent consumers/producers connected to your messaging destination, but the consumers/producers don’t generate a lot of messages, would that have more impact on the processor or the memory

Prescription:
DrLiveCycle checked back with the engineering specialists (Jeff Vroom and Mete Atamel helped the doctor with the right diagnose) and learned that the order of messages from server to client are currently only guaranteed when using the RTMP channel. A RTMP channel uses only a single TCP connection and therefore the message order is always guaranteed. The AMF/HTTP channels, on the other hand, may issue concurrent HTTP requests over multiple TCP connections and even though each TCP connection guarantees its message ordering, there’s no message order guaranteed across multiple TCP connections. So, currently the order is only guaranteed with RTMP channels.

So how about memory and CPU usage of low-active consumers? The answer is that an inactive consumer would just take up memory (there is the connection memory, session memory etc.). The only CPU load that an idle messaging client would take up is any load caused by polling, or the heart-beat style functionality that was put into the HTTP streaming channel.

Tips to stay healthy:
The polling overhead is fairly easy to compute based on your settings – how long does the request wait on both the client and the server. The streaming overhead is pretty low… periodically the server has to send some bytes back on the connection to keep it alive. The RTMP channels – when not using the RTMPT HTTP polling mode – don’t have any significant overhead.

One response so far

Oct 13 2008

Extending Adobe Document Management with even more functionality

If you have installed and deployed Adobe LiveCycle Content Services ES for Document Management and/or Archiving purposes you have already seen the out-of-the-box features that are included in the product. Now, if you have written your own extensions and want to package these, the easiest way to do this is by creating a so called AMP file. This is a format that can be imported in another instance of Adobe LiveCycle Content Services ES.

Now without going into details on how to create these AMP files, you should know that there are also AMP files available in the community that you might want to evaluate. If you have installed the full LiveCycle ES Suite you will also get, as part of the SDK, a couple of sample packages such as records management, blog integration (including WordPress), and others.

Now the documentation is not very clear on how to deploy the included samples (or other available AMP files) to your deployed Content Services application. Below you will find a couple of steps on how to import AMP files.

1. Locate the C:\Adobe\LiveCycle8.2\LiveCycle_ES_SDK\misc directory

2. In there you will find a couple of AMP files and a utility called Module Management Tool. (adobe-contentservices-mmt.jar)

3. Locate the C:\Adobe\LiveCycle8.2\jboss\server\all\deploy\adobe-contentservices.ear

4. Retrieve the contentservices.war file from the ear file above

5. Open a command line tool and goto the directory C:\Adobe\LiveCycle8.2\LiveCycle_ES_SDK\misc

6. Run: java -jar adobe-contentservices-mmt.jar install yourfilename.amp contentservices.war (Before doing this is is recommended to make a backup of the ear file!)

7. After this, copy back the contentservices.war file into the adobe-contentservices.ear file and copy it back to the LiveCycle ES Deployment directory (C:\Adobe\LiveCycle8.2\jboss\server\all\deploy)

7a. To validate wether the AMP is included in the war file, you can run the following command for a list of extensions: “java -jar adobe-contentservices-mmt.jar list contentservices.war”

8. Restart your jboss services to be 100% sure that you have the extensions available

If you find any interesting AMP files in the community, please share them with us. Have fun in trying the above.

One response so far

Oct 06 2008

Sometimes the LiveCycle Turnkey installation wizard does not proceed

Disease:
You have downloaded and extracted the LiveCycle ES Turnkey installer to your desktop. When running the installer it gets stuck at the ‘Type of Installation’ dialog screen, so that you can’t continue installing the software.

Prescription:
Typically why a turnkey install won’t proceed from this point is due to a “Directory too deep for turnkey installation” error.  What this means is that the directory you are running the installer from (say, a network location such as \\SomeServer01\Software\Installations\, or a folder somewhere deep in My Documents and Settings – like your desktop folder) is too distant from the location you are trying to install to and LiveCycle and the path between them is too long for LiveCycle to use. So the solution is to choose for an install directory in e.g. your C:/ drive.

Tip to stay healthy:
LiveCycle can be installed ‘manually’ which allows you to deeply integrate it into applications (java application servers, databases etc) that have already been deployed in your environment. However, it means that there is a lot of configuration that you have to do yourself.

As a developer that is often not the first thing you want to have to bother about, especially not when you start learning what LiveCycle can do for you.  Or, you do not even have all the required software installed at all. In that case the Turnkey install option is a great trouble saver.

Adobe LiveCycle ES Updater 1 comes with Turnkey installers for JBoss, Websphere as well as Weblogic for both Windows and UNIX. As with most of the Adobe software there are trials available online, at www.adobe.com/go/lces_trial.

No responses yet

Sep 29 2008

Load test Flex and LiveCycle Data Services enabled applications

Disease:
You have built an amazing cool and data intense Rich Internet Application with Adobe Flex and expect many users to work with your application. Suddenly you get concerned; how will the server behave when hundreds or even thousands of users visit your site?

Prescription:
Some more background on this problem first; You probably know that a server in production will behave differently when interacting with a RIA than compared to serving traditional HTML apps that you have been building before.  This is mainly because UIs are not generated on the server any more. Though on the other side, there is probably increased data exchange between the client and server and most of all…. ideally you use the ActionScript Message Format (AMF) and Data Management cause it is easier to develop or faster on the client.  But how does it impact the server, can it handle the load and do traditional load testing tools still work?

LiveCycle Data Services Stress Testing Framework admin UI screenshot

Adobe currently hosts the LiveCycle Data Services Stress Testing Framework on Adobe Labs which addresses lots of these questions. The framework helps developers that use LiveCycle Data Services ES 2.6 to load test the server-side implementation of their LCDS applications. The page is stuffed with information on how to use the Framework so definitely spend some time going through all the details. The Data Services Stress Testing Framework is currently in beta form, but available for testing and evaluation. You can download and test the framework and we obviously hope you will provide us your feedback through the Adobe Labs page.

Tips to stay healthy:
The stress / load testing problem itself has been around for long, and many software vendors have created solutions to help web developers test their servers for large rollouts. However, most of these solutions are still based on the traditional HTML web metaphor and do not work well with AMF. Also, the Data Services Stress Testing Framework currently does not support BlazeDS or other AMF server implementations. Adobe is currently working with a number of testing tool vendors to implement all of the data transport protocols available in Flash. It seems that Borland’s SilkPerformer is one of the first to have AMF3 support. I have not worked with it myself and would love your feedback. Obviously if you know of other tools that are useful for load testing your Flex applications, feel free to leave a comment!

ps: I heard internally that we are working on a new Capacity Planning Guide for LiveCycle Data Services ES 2.6 whitepaper, but it has not yet been finalized. I assume it will be posted in the coming weeks on the LiveCycle Development Center so stay tuned.

UPDATE: You can download the Capacity Planning Guide for LiveCycle Data Services 2.6 from www.adobe.com/go/lcds26_cap_planning_guide.

4 responses so far

Sep 24 2008

How to ‘switch off’ mandatory fields when the subform they belong to becomes invisible

Disease:

Putting objects ‘visible/invisble’ is a great feature to guide end-users to fill-out forms in an easy way. However, when putting a subform, which contains mandatory fields to invisible, the mandatory fields still remain mandatory. This can off course be solved by putting all mandatory fields to ‘non-mandatory’ through scripting but can become a development nightmare. 

Prescription:

The idea is to have a general procedure which would specify for each subform which fields are mandatory.  We will define an array inside the form which will contain a list of mandatory fields for each subform. Secondly, a procedure is built which will loop through this array for the given subform and will put the fields to mandatory/non-mandatory depending on the fact whether the subform has been set to visible/invisble.

  

A sample form can be found here

Tips to stay healthy:

When analyzing your forms take in consideration how objects will be grouped and which fields are mandatory within a group. This makes it afterwards easy to introduce these fields/subforms in the array. 

 

 

No responses yet

Aug 19 2008

RIAlisation of Document Management

Disease:

You are implementing a Document Management system or you have just deployed this within your organization. A common challenge is very often to find a balance between a technically clean, flexible, scalable and future-proof solution on one hand, and to get your solution adopted by the end-users on the other.

Unfortunately the term end-users is often interpreted as “the last step in the deployment”, and very often the solution that is deployed is not adopted very well because it is too difficult or not intuitive to use. Have a look at some of the document management systems out there, and ask any “end-user” if they like the interface that is offered from that product!

Often the business where most “end-users” work, pay for these projects, and therefore should expect a solution that fits within their way of working, their processes and their knowledge-level. So why offer an interface that offers over 100 document management features where the user only wants to store a document in the archive. Result is most likely that the things they really need are hidden somewhere, and require extensive training. For a casual contributor (the 80/20 rule applies here as well…. most people in an organization only every now and then interact with the Document Management System) it is too much to do a 1 or 2 day training on how to use an application, especially when he/she needs to do this over and over again.

Prescription:

I guess the point above is clear, and there should be more focus on creating engaging experiences as well for business users that use Document Management in their daily activities. You will find a lot of examples on how web 2.0 changes everything that you see on the web. Rich Internet Applications (RIA) are more and more common for many websites. A more recent development is that RIA’s can also be deployed on your desktop for instance by using Adobe AIR.

So what does deploying a RIA web application to your desktop mean? Think about using standard web technology such as HTML, AJAX and Flash for building desktop applications that support business users in their activities. Think about intuitive, easy-to-use, and graphically oriented applications that everybody enjoys to work with. Now this can be the front-end for your Document Management System!

Adobe offers a Document Management System via LiveCycle Content Services ES. Yes, it has all the features you need…. and more. It offers a web interface, integration with MS-Office and many other ways to interact with the system as a business user. I will not go into te details for each way of interacting with the system. However, there is one specific area that I would like to highlight here.

In the development community out there you will find many interesting applications that can be used as a front-end for Content Services. There is 2 I would like to highlight in this post.

Firstly there is an initiative called Opsoro. These guys are developing an AIR application that can be used on top of LiveCycle Content Services. The application is build using AJAX techniques, and resides right on a local computer’s desktop. No bookmarks, no limitations of a web-browser… very simple and easy. Here is a screenshot on how this looks:

 

It has some interesting features such as live-search, preview, etcetera. Below a screenshot on how the preview is displayed.

According to the website of Opsoro there are other things planned to utilize the features that are offered by Adobe AIR even more, such as offline usage, drag&drop interaction with the desktop. Check out the roadmap and other things their website.

Now Opsoro is not the only initiative out there that focuses on the usability of a Document Management System by offering a RIA on the desktop. Another initiative is FlexSpaces by Integrated Semantics. Their AIR client is based on Adobe Flex and offers some very handy features for searching using Tag Clouds, category search, tasks, launching processes, offline usage, drag&drop, and many others. Check out the complete list and their screencams.

You will notice that the applications above are related to Alfresco, an open source ECM solution. Adobe LiveCycle Content Services ES is based on Alfresco, and includes integration with other enterprise features/functions of LiveCycle ES. A good post about this can be found here.

The screenshots above are real screenshots running on my local LiveCycle Content Services demo machine. If you would like to know more, please get in touch.

Tips to stay healthy:

If you are considering an implemenation of a Document Management System, do think about the success factors of that implementation. One can have the most optimal technical solution in place, but if it is hard to embed in the business processes of business users, the system will never bring the desired results. Key here is that the system is easy to use, intuitive, requires little or no training, etcetera. This is what Rich Internet Applications are about. Now it’s time to RIAlise Document Management!

One response so far

Aug 06 2008

Combining LiveCycle Content Services ES & Acrobat for shared review

Disease:

You are an Acrobat user creating documents, brochures, leaflets and other information that you want to share with other collegues or people outside your organization for approval, comment, changes, etcetera. Within Acrobat there is a feature called “Send for shared review” that enables you to do this. But what if you don’t have a central server to store it on so other people can access it?

Prescription:

One of the new features within LiveCycle ES update 1 is Content Services. This essentially offers you Enterprise Content Management features that you can include in your business processes. These business processes can be fully controlled processes that are setup within LiveCycle using Process Management. But these features are also available for more ad-hoc type of business processes where Adobe Acrobat is used.

After you have created a PDF file and want to send it to some people for review, you can use the send for shared review feature. Here is a screenshot of this option.

Now, the next step is an important step where you can point to a central location where people can find the file for reviewing. This is where you can connect Acrobat to LiveCycle ES Content Services. Content Services exposes itself in many different ways; via a browser, via MS-Office, via CIFS, FTP and also via WebDav. WebDav is the way to connect the Acrobat business process (shared review) to an Enterprise Repository.

After you have selected the option above, you will see a dialogue.

Select the internal server option, and click next to find the following screen.

Here you have 3 options to choose. To connect to Adobe LiveCycle Content Services ES choose the 3rd option, a Web Server folder. As the URL you should enter http://yourserver:port/contentspace/webdav (If you don’t have a server available, and would like to try, let me know) I configured this using my server, and see the following screen after this.

After this you will be asked for your credentials and you will see a couple of screens to ask you to send a link to the document, and also to indicate the persons that are part of this review. End result is that the document now resides in the LiveCycle Content Services repository. See the screenshot of the Web Interface of Content Services.

I will not go into the possibilities that you then have from there, but just remember that there is a full range of

Tips to stay healthy:

Just make sure that the people that are participating in the review have an account within LiveCycle ES (Typically this is done by synchronizing a corporate LDAP tree), and you should be fine.

No responses yet

Aug 04 2008

How to configure the LiveCycle PDF Generator ES print driver?

Disease:

So you have installed LiveCycle ES Update 1 that includes a new feature for PDF Generator, a print driver for windows. This allows you to select the Adobe LiveCycle ES printer from your printer list. The print job results in a PDF file that is centrally generated on a configured LiveCycle ES Server. Here is a screenshot of the “select printer” dialogue within MS-Word.

Printer Dialogue in MS-Word

Now it is clear how to initiate a PDF conversion process. But where does your file end-up?

Prescription:

There is a couple of things to take into account.

1. When installing the print driver via http://servername:port-number/pdfg-ipp/install you will be asked to provide a username. The account that is used here is an account that is known within LiveCycle ES (either synchronized with your directory, or a native account). The email-address that is known within LiveCycle ES is the one that is used to return the results to.

2. On the server-side you will need to configure a mail server that can be used for sending the results. Typically this is an smtp server that will be used. Now you will need to configure this using the LiveCycle ES Admin UI. Go to “Services” -> “Applications and Services” -> “Service Management”. Now look for a service called “provider.email_sendmail_service” and click on it. You will find the screen as shown below.

Configuring sendmail service

Just to make sure stop and start the service, and you should be fine.

Tips to stay healthy:

Just remember, when deploying this solution accross your organization, make sure that the users install the print driver with an account that points to their email address. Don’t use one address for everybody. Lastly, make sure that every account that is used, also has the proper user rights assigned to it. (Or even better, work with the groups and roles available within the User Management)

3 responses so far

Jul 21 2008

Trials for LiveCycle ES Update 1 available

Published by Waldo Smeets under LiveCycle ES

LiveCycle ES Update 1 was announced on june 16th 2008 and a good tradition at Adobe is to make the software available to end users one month later.  So from today (or was it even earlier?) you can try the software – including all the new integration features with Alfresco – by selecting one of the options listed at www.adobe.com/devnet/livecycle/trial.  You can basically choose to download the multi-gigabyte installers from the website or get a DVD shipped to you for just a few euros.

Together with this release there is also separate trial downloads available for updated releases of LiveCycle Designer ES and LiveCycle Data Services ES 2.6 (for those Flex developers that don’t dare to get their hands dirty on the rest of LiveCycle yet, hehe).

If you are new to LiveCycle I highly recommend the turn key option with the JBoss download, which is ideal for evaluation purposes. This will install the application server, database, and samples with just a few mouse clicks.

For an overview of new features in LiveCycle ES Update 1:

Installing the software is pretty straightforward, especially when you follow the steps listed in How to Get Started and choose the turn key installation. However, if you are having issues or need help evaluating specific parts of the LiveCycle Enterprise Suite, feel free to contact us for questions or even better… make an appointment for a free consult with DrLiveCycle.

One response so far

Jul 08 2008

LiveCycle Data Services and Java EE container managed security

Disease

You want to authenticate via a Flex application and still leverage Java EE container managed security.

Prescription

With LiveCycle ES Data Services you can authenticate users using the Flex application and you can pass these credentials on to the back-end where they will be verified by the container. The server-side Flex Session give you access to the Principal object. Through the use of roles you can authorize users to invoke LiveCycle ES Data Services endpoints or avoid users invoking specific LiveCycle ES Data Services assembler methods.

Following steps explain how to set this up on Tomcat 5.5.

  • Download the source of this sample from Adobe share and import the Flex project
  • Configure container managed security in Tomcat.
  • Follow the steps in $LCDSHOME/resources/security/tomcat/readme.txt (download LiveCycle ES Data Services)
  • Create a LiveCycle ES Data Services project in Eclipse (Dr. FLex & Dr. LiveCycle)
  • In your project, create a context.xml under META-INF/
 

<Context>
      <Realm className="org.apache.catalina.realm.MemoryRealm" />
      <Valve className="flex.messaging.security.TomcatValve"/>
</Context>

 
  • In your project, edit services-config.xml in WEB-INF/flex, the <security> tag should point to the following login command:
 

<security>
    <login-command class="flex.messaging.security.TomcatLoginCommand"
                               server="Tomcat">
      <per-client-authentication>false</per-client-authentication>
    </login-command>

</security>

 
  • To pass on the credentials captured in your Flex application to your back-end you can use (see main.mxml in the code sample):
 

personDS.setCredentials(username.text, password.text);

 

      personDS is a LiveCycle ES Data Services Data Management endpoint

  • The container will only allow you to access the LiveCycle ES Data Services endpoint when these credentials are valid.
  • To obtain the Principal in the LiveCycle ES Data Services assembler you execute (see PersonAssember in the code sample). For more info on assemblers, go to Dr Flex & Dr. LiveCycle or consult the LiveCycle Data Services Developer Guide.
  Principal principal = FlexContext.getUserPrincipal();  

 

Tips to stay healthy :

You can extend this further by leveraging the integration between LiveCycle ES Data Services and Java EE security by protecting resources via roles to allow only specific users to invoke Data Services endpoints.

Embedding the following in your LiveCycle ES Data Services data-management-config.xml file, you can avoid users not having the correct role to invoke this endpoint (see sample code):

 

<destination id="persons">

    <adapter ref="java-dao" />
    <security>
        <security-constraint>
            <auth-method>Custom</auth-method>
            <roles>
                <role>help</role>
            </roles>
        </security-constraint>
    </security>

    ….

One response so far

« Prev - Next »