Tag Archives: LiveCycle

Modularity is critical to industrialize differentiated experience

Modularity is perhaps the most essential architecture principle applied across the Adobe® Digital Enterprise Platform (ADEP). Modularization in ADEP enables you to manage the complexity of your CEM solutions by separating them into independent components and other concerns that can be worked on by different development teams and tested in isolation. When deployed, these solutions consume minimal footprint that is associated with specific workload requirements (i.e. resource usage is kept to what is essential for delivering business value).

Modularity

The very nature of differentiated customer experience is modular–my experience today should differ from my experience tomorrow, from my experience yesterday and from what another customer may experience. ADEP anticipates, is tuned for and can accelerate composition and reuse. In an enterprise context, supporting such modularity means that you can draw upon the breadth of assets (content, applications, documents, processes, services) available, including those from Adobe, Adobe’s partners, systems integrators, agencies and other teams within your enterprise. These assets can be brought to bear on business problems in a manner that can be partitioned and rolled out incrementally with minimal disruption (e.g. hot deployment[1]).

Modularity in ADEP is a form of separation of concerns that provides both logical and physical encapsulation of classes. Modularity is desirable because it allows you to break applications into logically independent pieces that can be independently changed and reasoned about. Modularity enables division of labor across a solution, and it promotes abstraction, reuse and ease of maintenance and repair.

As a consequence of embracing modularity as a core architecture principle, software modules in ADEP are self-contained (local wholes), highly cohesive (fulfill single purposes) and loosely coupled (well-isolated from other modules).

To support all three properties, it is vital for modules to have a well-defined interface for interaction with other modules. A stable interface enforces logical boundaries between modules and prevents access to internal implementation details. Ideally, the interface should be defined in terms of what each module offers to other modules, and what each module requires from other modules.

Modularity is driven across the ADEP architecture via the following principles:

  • Interface-based programming[2]
  • Externalization of cross-cutting concerns (aspect-oriented programming[3])
  • Late binding of implementation instances to interfaces (dependency injection;[4] extensibility)

Next: everything is content.

Update 9/6/2011: The larger technical white paper from which this post was drawn is now available from the ADEP Developer Center as a PDF download. Please feel free to provide me with your feedback on that work here. Thanks in advance!

Footnotes:
[1] i.e. a provision of dynamic modularity in an OSGi-based system like ADEP
[2] Please consider Interface Oriented Design for a more detailed discussion of interface-based programming.
[3] Please consider AspectJ in Action: Enterprise AOP with Spring Applications, Second Edition for a more detailed discussion of aspect-oriented programming (AOP).
[4] Please consider Dependency Injection: Design patterns using Spring and Guice for a more detailed discussion of dependency injection (DI).

When content meets apps, Berlin edition

Thanks to everyone at Day Ignite Berlin 2010 who came to the technical track session that I presented this afternoon. In order to keep the conversation going, I’ve uploaded this presentation as follows:

During this presentation I recommended that you consume my “Realizing great customer experiences with LiveCycle ES3″ presentation from Adobe MAX 2010, if you’re interested in more details about the architecture and capabilities of LiveCycle ES3. You will find that presentation here.

I also asked you to consider downloading and installing Adobe Enterprise Café. Café, as we like to call it in Adobe, helps you stay in touch with the enterprise community, receive news, find information and aggregate content related to Adobe LiveCycle ES (Enterprise Suite), Acrobat, Connect, ColdFusion, the Adobe Flash Platform, and (since its v1.5 release) the Omniture community. Targeted at the general developer ecosystem, Café is the one tool you need to search across the entire community knowledge base and stay in touch with the Adobe teams. Furthermore, the Café is hard at work to integrate the Day community as well. However, you don’t need to wait for that new version of Café; you can install Café today and when the Day community is integrated, you’ll receive that update the next time you launch the Adobe AIR application.

When I presented this session with Alex Choy in Chicago, Irina Guseva of CMS Wire published her thoughts on the session: “Apps as Content, or How Day and Adobe May Fit Together.”

Adobe, Day and open development

Thanks to everyone at Adobe MAX 2010 who came to the session that David Nuescheler, Roy Fielding and I presented. If you weren’t able to attend our session, it’s provided below.

Roy kicked off the discussion by talking about open development and how open development is critical to architecture. David followed Roy by showing how open development principles have been powerfully applied at Day to its products like CQ5, providing live demonstrations to our audience. I wrapped up this discussion by relating WCM and Day content infrastructure (e.g. Sling and CRX) to Adobe’s CEM platform and specifically to LiveCycle RIA. (For more detail on LiveCycle RIA and other aspects of the LiveCycle ES3 release, which is currently under development, please see my previous post.)

In order to keep the conversation going, I’ve uploaded this presentation as follows:

Update 11/5/2010: You can now watch and listen to this MAX session online (i.e. in synchronized fashion).

Update 12/3/2010: Jayan has done a nice job of rounding up LiveCycle-flavored MAX sessions, including this one, here.

Realizing great customer experiences with LiveCycle ES3

Thanks to everyone at Adobe MAX 2010 who came to the sessions that I presented. I enjoyed the interactivity during after after the presentations, especially listening to your thoughts on how Adobe CEM will enable you to realize your own customer experience vision as well as the growing expectations of your prospects, consumers, customers and clients.

In order to keep the conversation going, I’ve uploaded this presentation as follows:

Realizing Great Customer Experiences with Adobe® LiveCycle® ES3 – Craig Randall

Whether you were able to attend MAX or not, I encourage you to check out MAX 2010 on Adobe TV (e.g. here are the keynotes). Please also visit the MAX 2010 session catalog to browse all sessions and download presentations of interest.

Update 11/5/2010: You can now watch and listen to this MAX session online (i.e. in synchronized fashion). It appears that the good folks at MAX decided to post the slides and recording that corresponded to my first delivery (on Monday during MAX). While that session went well, I did receive some feedback that I incorporated into a revised deck that was also recorded (on Wednesday during MAX). Personally, I liked the latter content and delivery better than the first, and that is what is provided here in this blog post, above.

Update 12/3/2010: Jayan has done a nice job of rounding up LiveCycle-flavored MAX sessions, including this one, here.

When content meets applications

Thanks to everyone at Day Ignite Chicago 2010 who came to the technical track session that Alex and I presented–especially those who stood the entire time in a packed room.

In order to keep the conversation going, I’ve uploaded this presentation as follows:

We’re very excited at Adobe about the opportunity to work with those at Day Software as fellow colleagues. By working together with you, we believe that great things will emerge from the unified delivery of content plus applications.

P.S. If you’re not already watching the #dayignite tweetstream, why not? ;-)

Update 10/18/2010: Irina Guseva published her thoughts on this presentation on CMS Wire: “Apps as Content, or How Day and Adobe May Fit Together.”

Update 10/22/2010: Presentations from Day Ignite Chicago 2010 are appearing here. Presentations that will also be delivered during Day Ignite Berlin 2010 won’t appear on Slideshare until after both events have concluded. (That being said, you can see a thorough write-up of David Nuescheler’s presentation here.) Event photos from Chicago are here.

Update on 10/27/2010: The message first delivered in Chicago around the unified delivery of content and applications was expanded upon in Los Angeles at Adobe MAX 2010, and that presentation is now available here.