CityTech was approved as a Motorola Enterprise Mobility Partner today.  We are excited about having this partnership in place as it will enable us to include Motorola’s vast line of mobile devices as a key part of the mobile solutions we develop for our clients.  If you have any questions regarding the partnership or want to talk mobility, drop me a line!

Posted in Mobile | No Comments »

I inadvertently posted an infamous “Test” blog post earlier today and was notified by a few of my blog readers!  Funny….I guess that new Alfresco 3.0 multi-channel blog publishing feature works!  I was demoing it for a customer this morning and forgot that I did that.

I hope to provide a more comprehensive review of Alfresco 3.0 sometime soon.  If you get a chance download it and give it a whirl.

Posted in ECM | No Comments »

Overview

If your passion is Enterprise Content Management (ECM), you probably have heard Content Management Interoperability Services (CMIS) will soon be released to OASIS as a standard content service interface.  I am happy to see such a standard emerge from some of the largest players of the ECM market including Documentum, IBM FileNet, OpenText, Oracle, SAP and both of our partners, Alfresco and Microsoft.

It is great to see Alfresco lead the charge being the first vendor to provide a draft implementation of CMIS at such an early stage of the standard.  As mentioned in John Newton’s blog, Alfresco has been preparing for this standard for some time after releasing the web script API in 2005.  I was not part of the CMIS specification development, but it is my opinion that the Alfresco web script API definitely influenced the CMIS standard which is confirmed by Alfresco already having a reference implementation available to the community.

In this blog I intend to provide a high-level overview of CMIS.  First I will briefly list the CMIS goals followed by a high-level technical view of what CMIS provides.

CMIS Goals

The CMIS goals below are taken directly from the specification.

  1. Allow applications to be built that can target one or more ECM repositories uniformly for basic content services.
  2. Provide a set of basic services enabling richer ECM applications and use cases.
  3. Allow for loose coupling between an ECM application and a repository.

These goals are straightforward.  After first reading them, all I could say is “Amen”.  I have created an image which I think shows not only a typical requirement in a larger enterprise, but also to show off how the CMIS standard can enable content to be ubiquitous in enterprises.

In the diagram above, the fictitious organization has three different content repositories:  (1) Alfresco, (2) Microsoft Sharepoint and (3) IBM FileNet.  At the top of the diagram there are three enterprise applications (i.e. ERP, CRM, Corporate Website) and for the sake of complicating this example to show the benefit of CMIS they each have been custom built using three separate development platforms such as Java, .NET and Ruby on Rails.   Before CMIS, each enterprise application would require a custom integration to each content repository.  Additionally, if the enterprise upgraded one of the repositories and the native API changed, the organization would need to go back to each of those enterprise applications and change the integration code.  With CMIS, the integration is standard for both the enterprise applications and the repositories.  No need to learn the API for three separate repositories - just learn CMIS.  After thinking through this, i believe the goals of the specification mentioned above have been fulfilled.

Technical Overview

CMIS describes the following:

  1. An abstract data model
  2. Set of abstract services
  3. Support for SOAP and REST protocols

Data Model

The data model consist of four (4) pre-defined root object types:

  1. Document
  2. Folder
  3. Relationship
  4. Admin Policy

The Document object can be versioned and searchable.  It consists of a set of properties (metadata) and optionally a content stream.   The Folder is a container object meaning it can contain other objects such as folders and documents.  A document can reside in more than one folder (known as
“multi-filing) or reside in no folder (known as “orphaned”).  The Relationship object is the link between two other objects (either Document or Folder).  The relationship object specifies a direction therefore a source and target objects must be defined.   The Admin Policy object can be applied to other objects such as the Folder or Document object.  An admin policy can be a list of ACLs, retention policy, etc.  The possible types of admin policies are not defined in the specification.  Only the root admin policy type is described.

Services

The basic CRUD (Create, Retrieve, Update and Delete) operations are supported for any of the four (4) object types described above.  It is important to understand that the services also apply to sub-types of the four (4) object types as well.

Beyond the basic CRUD operations, there are additional services specified in the CMIS standard.  These include Search Services such as being able to find all objects that are the source of relationship “x”.   Additionally, the standard supports the ability to apply or remove an Admin Policy from an object.

The service that I think will push CMIS ahead from an adoption perspective is the implementation of SQL like query capability services.  The CMIS implementation will employ a relational model which sits on top of the data model described above.  This relational model will map object properties to columns of a table enabling SQL 92 type query language for easy retrieval of content objects.

Conclusion

If you have had to integrate a repository such as IBM FileNet with another application you can easily see how CMIS can ease the pain. My hope is that CMIS will increase the value of enterprise content management (ECM) in organizations by enabling better integration of content repositories and enterprise applications users use everyday such as ERPs, CRMs, portals, etc.

Posted in ECM, SOA | No Comments »

Social Networking Mashups

March 22nd, 2008

I posted my first blog post on November 10th, 2006. The title of the blog post was Web 2.0 and it was a result of me attending the Portals & Collaboration conference in Boston, MA. It is interesting to go back and read this post. I gave a summary of what I learned to be Web 2.0 along with some thoughts on how Web 2.0 might help enterprises and traditional web applications. Well, here we are…silo social networking sites such as MySpace, FaceBook, etc are not enough anymore. I am not saying that MySpace and Facebook are going anywhere as there is definitely a place for them. However, I see users wanting more from the applications they use often.

Users are asking for Social Networking Mashups. My definition of a Social Networking Mashup is a mixture of traditional application functionality + social networking. For a typical large enterprise, this maybe a CRM application which provides the basic functionality of managing future and existing customer relationships along with a social networking aspect. The social networking aspect provides the ability for sales reps, marketing and customer support the ability to collaborate and share thoughts and ideas right along side the core CRM functionality.

I am not talking about this on just a theoretical basis. Here are some firsthand evidence that the need for social networking mashups are not only coming, but are here:

1. We at CityTech have seen a very common demand lately in that our existing and new clients are asking for a sprinkle of social networking functionality in almost every new application we are commissioned to develop.

2. Look at some of the new web applications coming online lately. You will see that many of them are providing social networking alongside of the functional aspects of the application. For example, Zecco.com is a free trading community. Zecco.com not only provides users the ability to execute trades and manage their portfolio, it also wraps this functionality with a community aspect. You can setup an avatar, profile yourself as a specific type of trader, participate in discussion forums, meet online friends that are possibly trading the same stocks as you, etc. Zecco.com does not charge any commissions for trading stocks just as long as you trade under a certain number of transactions per month. A common question about Zecco.com is how can these guys survive without charging any type of fee or commissions. Look at the writing on the wall! Zecco.com is providing trading functionality along with social networking. They know that if they can get people to sign-up for free trading that they can keep those users coming back by adding value to their experience through social networking. This will keep existing users coming back and also attract new users. I suspect that Zecco.com will primarily drive revenue with advertising and of course the interest or leverage they realize when users put cash in their account, margin interest, etc. This is a good example of a traditional web application providing a social networking mashup.

3. I read about a new startup called Ringside Networks. This startup is lead by Bob Bickel the former head of business development at JBoss as well as Bluestone which was aquired by Hewlett-Packard. Ringside Networks is building an open source, Social Application Server. According to Ringside Networks:

The Ringside Social Application Server is the first open source platform that enables website owners to build and deploy social applications that operate with existing website content and business applications while seamlessly integrating with social networks such as Facebook. Ringside Networks is going to enable any web site to enhance their communications with their user base by creating and deploying social applications, and expand it beyond by allowing web sites to integrate with the large social networks like Facebook.

Very interesting. I am excited to watch this product evolve as I can really see value in externalizing this functionality using APIs and being able to add the social networking aspects to existing and new applications in a modular fashion.

Being in the technology business is great. There is always something new to learn. Being in the technology consulting business is even better as we are constantly challenged to help our clients increase their value proposition to their customers through the use of technology based solutions such as social networking mashups. They are in demand now and they will continue to be in the future. We look forward to helping our clients integrate social networking into their applications and products as I believe it is a value add to any public or enterprise application. I look forward to anyone’s comments, perspectives and opinions on this subject.

The Chicago weather definitely tried to challenge the attendance at the inaugural Alfresco Regional Meetup last week. Despite the snow and cold, roughly 45 people showed up. I thought this was pretty good considering the weather and that it was the first Chicago event for Alfresco. Here is a quick list of highlights taken from the event:

  • The meeting was kicked off by Michael Uzquiano (Alfresco) giving an in-person “Alfresco in an Hour” presentation.
  • Ian Howells (Alfresco CMO) presented the latest findings from the Open Source Barometer - a survey using opt-in data provided by Alfresco community members.
  • Matria Healthcare and CityTech (Jeff Brown) talked about the use of Alfresco in Matria’s next generation touch system.
  • TSGRP talked about a social networking proof of concept which uses Alfresco to store content related to a user’s network.
  • Michael Uzquiano (Alfresco) showed a demo of Alfresco’s website framework application. The demo was very impressive. The product walked the user through a series of questions related to the new website, then created a drag and drop based site for managing the content.  The framework passes JSON between the Alfresco Web Script tier (REST based services) and the web front-end for rendering and interacting with content. There was talk about whether this framework will be available via the Alfresco Forge or possibly even being rolled into the core Alfresco product. Either way, we can’t wait to get our hands on it as it has been a long time coming.

After the presentations were over, Alfresco sponsored a cocktail hour where some of the attendees stuck around, drank a couple beers and chatted about technology. A few of the CityTech guys (Jeff Schwartz, Jeff Palmer and Tom Kelly) ripped out their laptops and setup shop on the cocktail tables to show a couple more real-life examples of Alfresco centric applications. One of the applications the guys demoed is a contract management application we developed using Alfresco to manage a highly complex contract approval workflow (over 50 steps!) and related documents for a large municipality. The other demo showed how Hyperic (and open source enterprise application monitoring system) could be used to monitor the health of Alfresco through the use of Hyperic monitoring plugins. On a side note, it is amazing how the open source application eco-system is growing. There is great value in bringing the top tier open source applications such as Alfresco, Hyperic, Mule and JBoss together to provide enterprise caliber solutions at a fraction of the cost.

It looks like the next North American Alfresco Community Conference will be held in San Jose, California on March 12, 2008. We might actually have someone attending as Shane Johnson happens to be in the Bay area for a while working on a large WCM project. Hopefully, Shane can continue to carry the torch and blog on the west coast version of the North American Community Conference, so please check back to http://blogs.citytechinc.com often to keep up with the scoop!

Our very own Shane Johnson has been asked to present at the 2008 TheServerSide Java Symposium in Las Vegas on Friday, March 28. Shane’s session will address the emergence of web content management and portal integrations specifically discussing his experience integrating Day’s Communiqué WCM and BEA’s WebLogic Portal. He will share his hands-on experience in web content management and portal integration by using a case study as the basis of the presentation.

We are excited to see Shane’s name in the same mix as Eugene Ciurana, Rod Johnson, Neal Ford, Ted Neward, etc. This is yet another example of a CityTech’s consultant being recognized as a leader in an emerging technology such as web content management and portal integration.

If you can swing a trip to Las Vegas for a few days in March, come on out and sit in on Shane’s presentation. I don’t think he can make any promises in offering any gambling advice, but there is a very good chance you will learn a few things about integrating a web content management system with a portal.

Goodbye 2007 and Welcome 2008!

December 30th, 2007

As we say goodbye to 2007 and welcome the new year, I would like to thank our employees and clients who have contributed to CityTech’s success and growth in 2007. I can’t say enough on how fortunate I feel to have the opportunity to work with such great people on a daily basis.

Happy New Year!

Records Management
According to AIIM
, Records Management can be defined as: “The application of systematic and scientific control to recorded information required in the operation of an organization’s business, standardizing access to complete information through common classification and indexing methods and ensuring the preservation of records in accordance with regulatory and operational business requirements.”. Wow, what a mouthful. Records Management as simply a process in which an organization follows for managing the lifecycle of documents used within an organization’s business context. These documents are of special interest because they have been used to make a business decision or were a by product of a business process.

Records Management is not just for public companies needing to comply with new laws and regulations. Records Management should be employed by any organization wishing to organize and manage documents that are used as part of a business process or a by product of a business process. Having a solid Records Management initative in place can save an organization money today by managing the lifecycle of important documents, making them easier to discover by end users as well as in the future by setting an organization to field any type of eDiscovery request.

What is a Record?
Records are defined as any recorded information that is created, received, and maintained by an organization in the transaction of business, in pursuance of legal obligations, or in the conduct of day-to-day activities and kept as evidence of such. There is a fine line between a record and a document. A record can be a document (or any other piece of content). What makes a document a record? If a document was used in a business decision or process, then it should be treated as a record and managed by a Records Management system. Examples of documents that could be managed as a record for an organization are:

  • Reports involved in decisions (i.e. I sold 500 shares of xyz because this report indicated I should do so)
  • Communications (i.e. email, IM)
  • Document containing information related to an official action (i.e. we are going to tow your car, etc.)
  • Policies (i.e. human resources communications with employees, etc.)
  • Legal or financial information (i.e. financial statements,
  • Business Transactions (i.e. invoices, past due notices)
  • Web Content (i.e. information provided to end viewers related to special pricing, etc.)

What is the Motivation for Records Management?
Recent dramatic headlines have made it quite apparent that records management (or the lack thereof) is an essential activity to ascertain and confirm the credibility of many business transactions and government activities. The proliferation of electronic documents and the potential litigation exposure that they cause are becoming the bane of legal advisors and records managers in many corporations and government agencies. There are several notable court cases that have resulted in corporations and government agencies being liable for large sums of money due to their inability to produce an electronic (or paper) document that was requested in trial.

Another motivation for having a Records Management initiative in place is to minimize information overload. A short-sighted approach to information management is to continue increasing data warehouses and storage subsystems to be able to hold more and more business records. But, without the means for easily categorizing business records for easy retrieval or classifying key e-mail messages as business records from basic non-critical communications, organizations are, in effect, creating “digital landfills” where every record is stored but no record is very easy to find. The inability to easily find the information you are looking for continues to drag down businesses. A Records Management initiative will help manage the “digital landfill” and only preserve what is required and useful to the business while minimizing the time for users to access the information they need.

One mistake many organizations make is making the policy of: “We will keep everything forever”. This is the worse thing an organization can do because it makes the organization liable to possibly reproduce any document that has been created since the organization’s inception. We know that even if this is possible, that the discovery cost in finding a specific document from decades ago would be a very expensive operation. In the Rowe Entertainment, Inc. v. The Willam Morris Agency, Inc. (205 F.R.D. 421 S.D.N.Y 2002) case, the litigant estimated it would take approximately $10 million to produce a single requested document! Needless to say, this organization did not have a Records Management system in place.

Successful Records Management
What are the requirements for a successful Records Management implementation? We at CityTech believe that a Records Management initiative can only be successful if end users are using the Records Management system. This means they are actively evaluating whether a document should be a record and then figuring out what file plan that document should follow (a file plan provides the structured, subject-based filing scheme required to support a retention schedule sot hat proper retention and disposition can be carried out for the appropriate records). The technical solution could be the best on this planet, but if it does not overcome the human factor, it won’t be successful.

In order to minimize the human factor as described above, a Records Management solution must be transparent to the end users. It should provide the end users a simple process for classifying and creating records. The system should understand the context in which the user is working and provide as help/hints in the creation and management of the record as possible. The more pervasive the Records Management solution is in an enterprise, the more successful and comprehensive the Records Management initiative will be. Make sure you choose a Records Management solution that provides your users access to the Records Management system either through a specific client application or integrated with the application they work with on a daily basis (the better option). Beware of vendors requiring you to buy a CAL (license) for each user that will use the Records Management system. This can be a “buzz kill” for any Records Management initiative.

Getting Started with Records Management
We believe that a Records Management initiative should evolve from within an organization’s departments and also have executive sponsorship. In many cases the Records Management initiative is typically initiated by the IT/IS department. This is ok as the IT/IS department should be involved in the solution evaluation from a technical perspective. It is best when the IT/IS department plus a user from each department in an organization are involved in the evaluation of the Records Management solution (typically a component of an overall ECM solution). The IT/IS department’s role is to make sure that the solution fits their technical environment and will be something they will feel comfortable supporting. The end user from each department will evaluate the product based on its functional offering. They will confirm that the solution will be something their fellow colleagues can use with minimal impact to their daily tasks.

After the solution is selected and procured, we recommend a small Records Management pilot be executed. This pilot might be an entire department (i.e. Human Resources) or just a segment of a department (i.e. Recruiting). This can depend on the size of your organization and/or the availability of the participants. For example, you would not want to choose a department that is under the gun on something else such as a marketing department who is currently in the middle of performing a product launch. You also need commitment from a couple key representatives of the selected department to help champion the initiative. Once you have buy-in for the pilot, you will then need to identify the department’s Records Management needs. What are the records? What are the retention requirements? When should the records be destroyed? When can a hold take place? Is there approval processes required before a document is created as a record? All of these questions (and more!) should be answered for the scope of the pilot. Once the records and file plans have been identified, it is time to figure out how the identified content is created today by the end users. If they are created by another system (i.e. ERP, Web Application, Jane’s 2001 VB App, etc.), then looking at a way to integrate that system with the Records Management solution is a good strategy. Remember, the key to successful Records Management is pervasiveness. In order to be pervasive, the solution must be as close to transparent as possible to the end user. So, integrating with existing applications or making the creation of a record simple is important. Once the pilot is up and running, it will be important to gather feedback from the users of the Records Management solution. These users are not only the end users that are creating the documents (ultimately records) but also the records managers who review the records, authorize destruction, etc.

CityTech’s Records Management Solution
CityTech’s Records Management solution is based on Alfresco’s ECM product. We are excited to have Alfresco be the core of our Records Management solution. Alfresco is based on open standards and has the ability to integrate with just about any existing application through a variety of integration methods. These qualities enable the Records Management solution to be pervasive in an enterprise. As discussed above, this drives the success of Records Management in an organization. The Records Management functionality is in accordance to the Department of Defense (DOD) Standard 5015.2. This standard defines the basic requirements based on operational, legislative and legal needs that must be met by records management application (RMA) products acquired by the Department of Defense (DoD) and its Components. It also defines requirements for RMA’s managing classified records. Contact me if you would like to learn more about our Records Management solution.

In future postings, I will be going over our Records Management solution along with some real life use cases where we have seen great success in employing Records Management solutions for our clients.

Posted in ECM | No Comments »

Alfresco WCM 1.0

March 13th, 2007

The 2.0 release of Alfresco’s successful ECM product includes the long awaited Web Content Management (WCM) module. In this blog I summarize a couple key features I believe are worth noting which could set traditional web content management solutions into playing catch up. Try it for yourself by downloading the Community Edition, in a matter of minutes you will be up and running.

Traditional web content management provided content authors the ability to edit content declaratively using a content authoring environment offered by the web content management product. This authoring environment would be something the content authors would be trained in since it was most likely drastically different than the tools they were used to using (i.e. Dreamweaver, etc.). Additionally, the website became a victim of vendor lock-in since most traditional web content management solutions dictate the methods in which you will create the layout of your pages, content and navigation. The “framework” in which you built your website content assets was something the web content management solution made you use, so you were at a loss if you wanted to do something outside the box, such as integrate an RSS reader or grab some data from one of your company’s databases or a web service (i.e. stock quotes, etc.). Some of the more advanced [traditional] web content management solutions tried to keep ahead of the curve offering proprietary toolsets that enabled external data access. However, these toolsets and work around strategies introduced bad practices from a technical architecture perspective, violating the very popular Model View Controller (MVC) pattern since you were adding business logic and enterprise integration “hooks” directly into the View.

In the Web 2.0 world, being able to manage web applications that live within a world where they must participate in mashups and integrations with other products is becoming very important. Alfresco’s WCM solution has changed the approach to web content management. There are two very unique features that make it standout amongst the other commercial web content management solutions:

1. Web Framework Independence
Alfresco’s WCM does not dictate or assume the implementation framework your website was developed on. Unlike traditional web content management solutions where the vendor dicated the framework and tools you used to implement the website, Alfresco completely leaves this up to you. This means if you have an existing site that is based on any of the popular web application frameworks such as Struts, SiteMesh, Tapestry, ASP.NET and it is composed of structured content (i.e. database driven content) AND unstructured content (i.e. news releases, marketing information, images, etc.), Alfresco’s WCM can manage it as it is without any unnecessary conversions to a proprietary framework. This means that your existing development staff can continue to use the tools and frameworks you have already invested in with complete freedom to use the features offered by those tools and frameworks. A content author or developer can map a Alfresco CIFS drive on their local workstation, point Dreamweaver, Eclipse or Visual Studio to the CIFS share and work freely just as if they had a local copy of the website. The CIFS drive still takes on any of the workflow triggers and aspects that you may have configured for the workspace. So, if the author saves the next press release to the site, it could potentially triger a jBPM based workflow which would manage the approval process and any other enterprise integration that was setup for that content type. Your imagination is the limit.

2. Virtualization
“Virtualization” is a hot topic these days. If you are a system administrator, when you hear “Virtualization” then you probably think of VMware, Xen or Virtual Iron. Alfresco’s WCM Virtualization does not virtualize the hardware in which it runs, but provides virtualization of the website it is managing. What does this mean? This means that you can view your website as it will be in the future given one or more content changes your content authors or developers may have in their sandbox. Alfresco’s WCM provides content authors and developers their own sandbox in which they work. At any given time, these authors and developers can view their updates along with the entire website just as it would be rendered for the end user. Additionally, they can choose other author and developer’s sandbox content in addition to their own changes and then be able to view the entire site. Alfresco accomplishes this by running a virtual web application server that serves up snapshots of the web application per a unique URL that is designated by the content repository. You might ask, if you can virtualize a site to see what it might look like at some time in the future, can you see what the site looked like in the past? The answer is yes, you can view a site’s content for any previous snap shot in its entirety for any given time in the past.

As with all of Alfresco’s ECM components, the WCM content is stored in the same repository as the other content managed by a typical ECM solution. This is important as it provides the ability to leverage common aspects, content models and workflows that are used by the other ECM components such as records management, document management and digital asset management.

Look for Alfresco’s 2.1 release in early April, 2007 which will include more WCM features such as new tools to simplify page layout, site management, deployment and dependency management. Other core product features will also include a preview of the Microsoft Office plugins which will enable integration with the popular Office product.

Alfresco 2.0 Released

March 3rd, 2007

Alfresco has released the 2.0 version of their successful ECM platform. The release has been issued to the community (free) and via the Alfresco Enterprise Network (24/7 support) which includes top notch support from Alfresco’s development engineers. This will be the beginning of a series of posts that I will be writing on the Alfresco 2.0 product.

First, I will do a short introduction on the management team at Alfresco as I think this is an important component of their success so far. Alfresco was founded as an open source alternative for enterprise content management. The founding members of Alfresco consist John Newton (Co-Founder of Documentum), John Powell (Former COO, Business Objects), Dr. Ian Howells (Former VP Marketing, SeeBeyond), Kevin Cochrane (Former VP Web Content Management, Interwoven), Matt Asay (Founder and Organizer of the Open Source Business Conference). The development team consists of the former Documentum Java Web Development and Portal Team and former Interwoven TeamSite and OpenDeploy Engineers. They are funded by leading investment firms Accel Partners and Mayfield Fund. Having the right people on board with funding is a good start to any successful company.

Now for the fun stuff….the 2.0 release packs in several new features as well as extensions to features included in the 1.4 release. Here is a short list summarized from Alfresco’s site:

  1. Document Management (enchancements) - more multi-language support capabilities
  2. Web Content Management (new) - first release of WCM leveraging same repository as document and records management features with rapid import of existing web applications of all types (J2EE, Static HTML, etc.). This first release offers many other features as well including virtualization (i.e. show me what my site displayed to users on 1/3/2007 @ 1:30 PM, etc.).
  3. OpenSearch (new) - Parallel, Federated and Secure Search capabilities (huge!!)
  4. Alfresco Application Exchange (new) - Alfresco Module Package (AMP) capabilities to provide simple methods of packaging functionality that may be shared within an organization or Alfresco partner.
  5. Records Management (new) - advanced customization capabilities for FilePlan execution, advanced scheduling management for record cutoff, hold and disposition
  6. Web Client (enhancements) - additional rich client features leveraging AJAX

In upcoming blogs I plan to go over each of the features listed above in more detail. I also will be talking about Alfresco’s implementation architecture which I believe presents a major competitive advantage over the existing [legacy] ECMs in the marketplace today.