A Django site.
April 11, 2008

Jared Ottley
nonic
Jared Ottley
» Lessons learned in Appliance building, Ideas for the Future

Errands run, kids in bed, and Krull On Demand. Finally, sometime to put some thoughts down about building the Alfresco Appliance.

Some of what I write here refers back to when I original put together, the first version of the appliance. Some is from revisiting it for this release.

Choosing a distribution

I started playing with building an appliance right about the time that Ubuntu announced their Jeos distribution. I have a strong preference for openSUSE and would have liked to have built the appliance on it. (LimeJEOS answers my concerns, and I am excited to give it a spin. Just a few more things to move off my plate before I can devote time to it.) I tried several different distributions: Fedora, openSUSE, Ubuntu, Puppy Linux, Zen Walk. I liked some, was optimistic about others, and disappointed and frustrated with a couple.

What I wanted was a distribution that provided me a small lightweight base, and gives me the ability to add just the packages I needed to run my application. Most of these came in close to what I wanted, but due to dependencies, grew to be much larger than I wanted. Some didn’t even provide me with a nice clean way to get the applications I was dependent on. Those I dropped immediately. Those with decent package mangers got pluses. I wanted to be to keep base packages up to date.

This brings us to Ubuntu Jeos (Just Enough OS). It gave me the size, the packages, and the manager that met my base criteria for a distribution.

Getting Started

While the base install is already fairly small, there still are many packages that I was going to need and not need. This takes some time, but go through the installed packages and identify what you aren’t and are going to need. Make a list and develop a script to remove the ones you don’t need. Another to add the ones you need. You may like to have some of the packages around while developing your appliance, but when you go to deliver it they may add more weight than what you would like, or give tools that just aren’t need by your appliance, or your end users. Keep them installed until you are sure they aren’t needed any more. My list includes: man pages, wireless-tools, sound packages, laptop packages, different editors, hardware utilities, etc. Your list will vary. Sometimes you may want to force remove dependent packages if you know their functionality is not needed. Don’t be afraid to take them out.

I know my list is not perfect, but over time it will improve. Some of this will come with trial and error. Don’t expect to get it right the first time.

Once I narrowed the package list, I started to add my dependent packages. Some of these could require you to re-add removed packages. That is why I suggest leaving packages installed until you have all your dependencies installed.

One of the cornerstones of an appliance is zero configuration. You want people to be able to just deploy the appliance, start it and use the appliance. In the case of Alfresco, it needs Tomcat to be started at boot time. For this I needed an init script. (Mine can be found here.) I use the init script to start Tomcat, start needed services, and perform runtime configurations.

Alfresco is a web-based application, so I need a way to provide the URL needed by users to access the application. For an appliance this can be changed from install to install. There are several ways to handle this, eventual, you will want to have a static address or use Dynamic DNS to update IP to name mappings. My appliances is primarily for evaluation. It is not really ideal to play with DNS or static IPs. I have kept the implementation simple, I’ve created a script that updates the /etc/issue file with runtime URL. (The script I use is here.) The major issue I faced was when the script was to be run. I placed the script in /etc/network/if-up.d. I fully expected it to be run when the interface came up. The script did run when I manually ran ifup. But it didn’t run in every case, especially the most import, at boot time. I tried several different things to work through this. I added a reference to the script into /etc/network/interfaces using the post-up directive. (in openSUSE, you would add a POST_UP_SCRIPT=”<name of your script>” to the interface file in /etc/sysconfig/network and put the script in /etc/sysconfig/network/scripts). This added a bit more power, but did quite fix my problem. I finally narrowed it down to udev. The interface was being brought up by udev, but when /etc/init.d/networking is run, it runs ifup with a -a option (all interfaces marked auto). The problem with this is if the interface is already up, the associated scripts won’t be run. I haven’t found an appropriate fix for this yet. (Any ideas?) So I just disabled the udev rule for the network interfaces . rPath has a good solution for this, they change /etc/issue file in an init script. I like this idea, but didn’t want to write another init script or pollute my existing alfresco init script with this.

Plans for the Future

One of the things that I want to do is provide some Alfresco branding to the appliance. I also want to create some more production ready appliances that use MySQL and point at an external virtual drive to store content and the indexes.

What is Missing

One of the big things that is missing in a management interface for the appliance. rPath provides a very nice extensible web-based administrative interface. It is extensible both for function and branding. But it is rPath specific. I’d like to see an open source cross distro solution. One that was not only extensible but adds CIM based management features. This would make it easy to administer the CIM instrumented applications on the appliance, but also could allow it to be managed externally, but CIM enabled management tools. This would allow the appliance to play nicely in the data center. This is something that Xen is working toward.

» Alfresco Appliance 2.1.2

Update: Those who downloaded the appliance, may have noticed a packaging problem (ie part of it was missing! :()  I have fixed that as well as done a little tunning and a few modifications.  I’ll post about those later.

Available now! I’ve just finished the latest evaluation version of the VMware based Alfresco Appliance built on the latest Alfresco Enterprise release 2.1.2. This is a full 30-day trial release. It comes with the core Document Management Repository and Web Content Management pre-installed.

This is based on my previous work using Ubuntu Jeos. (I am, however, keen to try out LimeJeos based on openSUSE.)

A couple notes:

  • When it first starts, Alfresco will take a few minutes to come up fully. It is creating the initial DB. Subsequent restarts are quicker.
  • This is an evaluation appliance. So once you start it, you have 30-days before the trial expires.
  • When the appliance first starts it will ask you if you copied or moved the appliance. The correct answer is moved it.

Look for other (community) appliances in the next month or so. I also have some RPMs for Alfresco Community in the works (using the openSUSE Build Serivce). I’ll post more this evening about what I learned since the last time I built the appliance.

December 5, 2007

Jared Ottley
nonic
Jared Ottley
» More Alfresco Training

This is short notice, but we have another Alfresco training class this month.  This will be an excellent class, getting down into the details of designing content models, configuring the web client and a bonus section on configuring custom dashlets (Dashlets are like portlets on the My Alfresco Dashboard).   The 2-day class will be held in Reston Virginia.

The class will be taught by Louis LaFontisee, our Global Education Manager.

Content Modeling & Web Client Configuration

The Content Modeling & Web Client Configuration course builds upon the skills you learn in the System Administration course, enabling you to configure Alfresco even further.

Full course information »

Date Location
Dec 13-14, 2007 Reston Details & Register

November 21, 2007

Jared Ottley
nonic
Jared Ottley
» Coincidences

Moby posts on his blog about the band James….it’s funny that I have been on a James kick for the past week.

And this:

November 20, 2007

Jared Ottley
nonic
Jared Ottley
» Alfresco Office Add-in and Office 2007

Seeing some of the searches that had brought people to my post on Alfresco and Microsoft Office Integration, I thought I would add this little tidbit: The add-in was designed to work for Office 2003, but it can work with Office 2007 as well.

From the Alfresco Wiki:

Although the Alfresco Add-Ins have been designed with Microsoft Office 2003 in mind, they are compatible with Microsoft Office 2007, with the following caveats:

  • Before installing the Add-Ins, ensure the .NET Programmability Support option has been installed for each of the Office applications you are installing the add-ins for. Normally these will be Word, Excel and PowerPoint.
    • The options can be found by running the Office Setup program and expanding the list of available options for each application.
    • You may need your original Office 2007 install media in order to add these essential components.
  • » Alfresco-Facebook Press

    The press has been good.  Take a look at what they are saying:

    Analyst Blog - Kyle McNabb @ Forresters : http://blogs.forrester.com/information_management/2007/11/facebook-alfres.html

    “Alfresco, which continues to demonstrate a bit more edge thinking in the world of ECM than their commercial counterparts IBM, EMC, Oracle, and Open Text.”

    FR - Toolinux: http://www.toolinux.com/news/logiciels/alfresco_penetre_le_reseau_social_facebook_ar9854.html

    Sweden - CIO: http://www.idg.se/2.1085/1.131089

    Sweden - Computer Sweden: http://www.idg.se/2.1085/1.131387

    The article opens with “In five years we’re going to try to remember what the world looked like before Alfresco took over”

    UK -Techworld: http://www.techworld.com/applications/news/index.cfm?newsid=10664&pagtype=all

    “Newton said that the company had had many conversations with Facebook in developing the integration and he had been told that there was no other company developing a business tool for Facebook … not yet anyway.”

    UK - IT Week: http://www.vnunet.com/itweek/news/2203577/alfresco-extends-content

    UK - PC Pro: http://www.pcpro.co.uk/news/139563/facebook-adds-enterprise-application.html

    UK - ZDNet: http://news.zdnet.co.uk/software/0,1000000121,39290851,00.htm

    » Alfresco and Microsoft Office Integration

    One of the coolest (at least in my book) things that was released with Alfresco 2.1 (we are actually up to 2.1.1 now) is the Microsoft Office Add-on. It is not just cool because it allows you to work from Word, Excel and PowerPoint directly in Alfresco, but because it is an excellent example of Web Scripts in action. The add-on is actually launching a web browser that hooks into these MS Office Applications. Web Scripts are a powerful integration point for Alfresco. (Search here for write ups on Web Scripts.)

    The Alfresco add-in allows you to:

      browse the repository

        search within the repository

          open, save, delete content

            access version history and compare versions

              transform documents to PDFs

                start workflows

                  insert documents into an existing document (think of a folder with documents that are actually standard response to RFP or RFI questions, you can insert these responses directly into the RFP/RFI using the add-in.).

                    Alfresco is normally a zero-foot print install on the client side (You use your browser and/or mapped drive into the repository.) But this is really worth the 6MB for the whole bundle.

                    November 19, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Alfresco website up again

                    Checking this morning, it appears that our sites are up again.  Yeah!  What are horrible weekend for us, our community, customers and potential customers.  If you are experiencing problems still, it could be that the DNS updates haven’t made it all the way around the world yet.  The IP address post I made would still be helpful.

                    November 18, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Alfresco website and email down

                    We have been experiencing problems with our registrar and DNS.  It is in the process of being resolved.

                    If you need/want to get hold of someone at Alfresco.  You can use @alfresco.org as the domain for email.

                    All of our sites are available through their IP addresses:

                    • http://www.alfresco.com  - please use http://88.208.218.102/
                    • customers.alfresoco.com and partners.alfresco.com -  please use http://88.208.200.70/alfresco/
                    • forums.alfresco.com  - please use http://217.174.252.22/

                    I really can’t think of anything worse that can happen to a company that depends on the internet for their business.  Please bare with us as we get this fixed.  Changes are underway to make sure this won’t happen to us again.

                    We are extremely sorry for the inconvenience this has caused our customers and potential customers.

                    November 15, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Alfresco and Facebook Integration Launched

                    Alfresco formally launched its Facebook integration yesterday.   The press release goes into why we think that this is significant and what we think the future of the enterprise and social networking has in store for us all.

                    Some highlights:

                    Employees are increasingly communicating on social-networking platforms – outside the control of the corporate IT department. Corporations must choose either to ban social software use or to harness the potential to communicate more effectively with their community of customers, partners and employees.

                    From an enterprise perspective, organizations must have the ability to publish to a Facebook audience as effectively as to a Web site audience. From an employee perspective, forward-looking enterprises believe that social networking provides a ready-made knowledge-management platform for their workers, which will increase adoption rates to the levels that knowledge management was always meant to achieve.

                    Agree or disagree, social networks will/are having an affect on the enterprise.  Phil Windley, pointed out yesterday on BTL, the power in integration between search and facebook type social network platforms.  He said,

                    Facebook has more than a good record of my personal traits and attributes. They also know about my relationships.  Would you be willing to reveal your social network to Yahoo! or Google? For most of us, the answer depends on what we’d get in return. How about friend recommendations on products?

                    Imagine a system that knew what your friends were buying and ordered product search results accordingly. You could tweak it, perhaps, with information about who’s recommendation you trusted in what categories.

                    Now an ECM could also take advantage of this, sharing your content with your friends, and others in your extended networks.  Your personalized search engine could be pulling back content target at your employees, customers and partners, placing content at the finger tips of those whom you trust, associate with and sell to.

                    November 14, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Evaluating with a Virtual Appliance

                    I have been working on a side project of developing a Virtual Appliance for Alfresco. My first attempt is here. I have played with several distros (Fedora, openSUSE, Ubuntu, puppylinux, zenserver) trying to figure out the right combination. This first release is based on Ubuntu JeOS as a VMware VM. I need to dig into Kiwi and see if I can build out the same thing with openSUSE. I think that Fedora has a utility to do something similar.

                    There are lots of things to think about when planning a virtual appliance: size, dependencies, easy of use, what you want end-users to be able to do with the appliance, etc. I have gone back and forth on trade-offs. Initially, I would like to see the appliance as a quick and easy way for someone to evaluate Alfresco. So I stuck with HSQL for the DB. I removed a nice chunk of packages that I would not expect anyone to be using during an evaluation of Alfresco. I think key is keeping them focused. If you are trying to do everything with Alfresco you are bound to get distracted. One of the things that you want with an evaluation is that it just works. While there is a log in prompt, I have the appliance report back, on boot, the most important information they need to try out Alfresco: The URL to access Alfresco. Just point your browser at the URL provided. Everything self-contained.

                    The VM has Alfresco DM and WCM installed. I haven’t loaded it up with all the cool add-ons, etc. While that would be fun, it takes space, and keeps from the focus: The basic/core functionality of the repository.

                    I still need to cut down on the size, learn how to better package VMs and make them work under multiple VM managers.

                    P.S. If you download this and you feel you really need the login credentials and can’t figure them out….let me know I will be glad to send them to you.

                    November 13, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Alfresco Sysadmin and WCM Training

                    We are having Sysadmin and WCM training for Alfresco in Santa Clara, CA, at the end of the month. If you are interested, register soon. Seats will go quickly. (This is probably the last chance for training on the west coast for the year.)

                    Sysadmin training is being taught by Luis Sala, Senior Director of Solution Engineering. WCM training will be taught the Peter Monks, Director of Services.


                    System Administration

                    This is an introductory course for customers and partners who need to deploy a production-ready system. It is a pre-requisite to most other Alfresco Training courses.
                    Full course information »

                    Date Location
                    Nov 26-28, 2007 Santa Clara Details & Register

                    Web Content Management for Developers

                    This developer-oriented course focuses around an installation of Alfresco 2.1E with lab exercises for form development, template development, and deployment.
                    Full course information »

                    Date Location
                    Nov 29-30, 2007 Santa Clara Details & Register

                    November 12, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Alfresco in an Hour

                    Just finished another Alfresco in an Hour.  An hour of me talking non-stop about Alfresco.  I should have had a glass of water next to me.

                    You can get past recorded version of Alfresco in an Hour in the Alfresco Content Community.

                    (Alfresco in an hour is a weekly webinar that gives you an overview and demo of Alfresco with time for questions at the end of every session.)

                    November 9, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Using Alfresco to manage blog content

                    Alfresco is very much about collaboration, specifically collaboration around/with content.  I have written about Alfresco-Facebook Collaboration but the first integration that I saw/used with Alfresco was its integration with blogs.  Alfresco delivers an add-on module that allows you to integrate Alfresco with, by default, WordPress or Movable Type.   The interfaces that the add-on uses are open, and therefore could also be used to integrate with other blog software/platforms.

                    With the add-on installed, you can designate a folder that contains content (HTML or text files) that can be posted to a defined blog.  But that is not where the strength of the Alfresco integration comes.  The strength of using Alfresco to manage your content comes in the Alfresco feature set.

                    All of the blog content can be versioned.  During the creation phase/life of your blog articles, the content can be versioned.  If an article is being worked on by multiple people in the system, you can keep track of who made changes and what those changes are.

                    Content can be managed as part of a workflow.   I have seen potential blog posts from management and developers being passed around for review in email.  There is no accountability in that.  There is no way to track where it went and what comment/modifications are being made along the way.  And it really would stink if important changes were lost in someones inbox.  Potential posts could be submitted as part of a workflow, where the post is assigned to people for review.  As part of the process email notifications could be sent to each person during the process to let them know of assignment, completion of task and final posting of the content. (One of the cool features of Alfresco is that all content is URL referenceable, so an actual file never needs to be sent to anyone, just the URL.  And the URL always references the latest version of the content.)

                    Content transformation. Content could also start out in one format and be transformed to another by rule.   It is possible that the post could first start out as a Word document and then be introduced into the repository using the Alfresco Microsoft Office Integration. Before content makes it to be published, the Word document could be transformed into a text file.

                    Alfresco makes it possible for you to create collaborative content, in a collaborative way.  With more businesses starting to use blogs to communicate with customers, being able to manage the content is becoming more important.

                    November 7, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Alfresco WCM and .NET Web Applications

                    There are a few basic ways of using Alfresco in a .NET web application; the web services APIs, web scripts (REST-API) and .NET code calls retrieving content directly from the filesystem.

                    Your content authors in the Authoring instance of Alfresco, inside your firewall, would create content.  This content would be deployed to a runtime instance of Alfresco outside of your firewall and/or to your IIS servers.  (Publishing to your IIS servers would be deploying static content.)

                    When creating content under Alfresco WCM, forms are used to collect/enter the content.  The content is defined in a XML Scheme Definition (XSD).  This XSD defines the form  (content model) that the content author uses to enter content.  The XSD is used to create the XML file that holds the content that you are creating.  Applying templates against this XML file you can then create renditions of the content.  These templates can be the HTML Freemarker templates, XSLT or XSL-FO.  The renditions can be full pages, micro-pages, code snippets or render the content in another format, like creating a PDF.

                    Your .NET web application could retrieve/ use content in a couple of ways:

                    0/ The Alfresco runtime could be queried via the SOAP APIs. The results displayed in your web application
                    1/ URL calls to web scripts, which would return XML (that could be formatted as RSS or ATOM), JSON or rendered HTML (that could be a widget, or html with reference to your wire framework) that could be included directly in the page, or wrapped in an IFRAME.
                    2/ Dynamic calls to static content on an IIS server.  (Content can be deployed to a specific location, and your .NET code could display that content in some fashion. [Reading files by naming convention, filetype, etc.])

                    The same type of implementation can be use with Java/J2EE, PHP, Ruby on Rails, CF, etc.

                    November 6, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » Calling all (Open Source) Cars

                    If you are a multilingual CS, EE, etc. student looking for a way to earn some Open Source street cred, I have a project for you! Alfresco, the leading Open Source Enterprise Content Management System, needs a few more language packs, or updates to existing ones.

                    To begin, just browse through our list of existing language packs, if you see one that is outdated, or see a language missing, download the base language pack (english). Translate the strings you find there and then submit them as an update or new project on the Alfresco Forge site. You can also join our community network where you can get access to recorded demos, whitepapers, hosted trial, etc.

                    And if you are in Utah, and interested in a demo/presentation to your user group,  ping me and we will organize a demo for you.

                    November 5, 2007

                    Jared Ottley
                    nonic
                    Jared Ottley
                    » I bit the bullet

                    This last week I did something I thought I wouldn’t do. I signed up for a Facebook account. Why? Partly to see what the hype is about. Partly because we are starting to do some work around and with Facebook.

                    So far, I am OK with Facebook. I haven’t had to experience a lot of the silliness that deterred me in the first place. (throwing food, biting people, turning them into zombies, etc.)

                    For those of you on facebook and using Alfresco, there is a new Alfresco User Group. (The image is linked to join.)

                    You can also find in the Alfresco dev tree work that we started on a Facebook-alfresco integration. You can upload and share your content stored in Alfresco with your Facebook friends from within Facebook.