Rapid Development Applied to Alfresco Document Management System
Rapid Development Applied to Alfresco Document Management System
Join the DZone community and get the full member experience.Join For Free
In this article, an extension to the CMS Alfresco is proposed in order to reduce costs involved with the creation of a custom front-end and make it more efficient the issue of document management.
An organization often has to manage a large number of documents, such as bills, transport documents, technical documentation, production orders and so forth. This large amount of documents would require a lower storage space and would be more easily retrieved if they were digitalized. For instance, bills coming from vendors could be scanned and converted to an electronic format, other documents could be created directly in a digitalized version, through some office applications or other information systems.
When such a scenario occurs, there is the need to store several gigabytes of documents in an efficient way, indexing them through ad hoc criterias, which can change according to the document type.
Moreover, they must be searched quickly and efficiently, that is to say, through specific search policies, like the navigation of a documents hierarchy, composed of categories and sub categories or by looking up documents using custom fields, such as the document title, author, creation date, etc.
Another very helpful feature is the ability to search for a document based on its content, starting from a group of words to find inside the document.
Finally, since that gigantic quantity of data is strategic for a company, it is essential to create a backup of it, in order to ensure the restoring of the duplicated data in case of loss of data due to hardware failures or software malfunctions.
What just described is normally part of a system called Content Management System (CMS).
Every organization should have an information system including a CMS module or, as an alternative, it should add a stand alone CMS system if it is not supported by the main I.S., since its presence allows to take advantage of what described above.
Nowadays, several CMS solutions are available in the market, some of these are open source products which provide a significant economic saving for a company, especially for the small to middle size ones.
One of the most popular CMS today is Alfresco, which is available also with a free edition. This product provides all of the features reported in the previous paragraphs.
Basically, it is a Java based web application, portable on many platforms, including Windows and Linux and its user web interface allows to administer, search and manage documents both inside the company and remotelly, by simply using a web browser.
Alfresco is composed of these main components:
a CMS engine, through which it can store and retrieve documents
a web interface to use to administer and look up documents
a web services layer that allows external applications to connect to the CMS engine, without the need to use the Alfresco web interface
a second web application, named Share, used to create ad hoc user interfaces, according to specific organization requirements, by developing the GUI and the business logic behind it; skilled Alfresco web developers are needed to create and mantain this part of the system.
The main advantages of this solution are:
no licence costs are required, in case a company decides to choose the free Community Edition of Alfresco
a powerful CMS engine to manage and search for documents
a web services layer, extendable by writing additional web scripts executed through the engine; in this way, the product is very flexible and customizable.
a fine Access Control List management (ACL), used to set the visibility and access level of a single document or documents folder, with the ability to restrict the access at user level or at group of users level.
However, there are a few issues involved with Alfresco Share and it is time to draw attention to them:
creating an ad hoc user interface starting from Share is costly, because it requires a deep knowledge of the product, as long as skilled web developers to realize what needed; in addition, each time a change is required to that part of the system, an external software vendor or a developer must be engaged in order to mantain the custom part
documents often are stored along with their metadata, which is additional information that describe the document, in terms of author, title or further structured data such as the customer code, an item code, etc,
This kind of information should be stored together with the document and they are helpful particularly when the user is searching for documents starting from these data.
In most of the cases, this type of data is managed through other applications and it is typically stored in databases; consequently, it can be cumbersome to access this data from Share, which is connected to the rest of the Alfresco suite and has not been designed to access other systems.
Starting from these limits, 4WS.Platform has been designed and developed; this product is a Java web application, as portable as Alfresco and it can be used to communicate with the Alfresco web services and interact with that CMS; in this way, the web interface must not be any more created using Share and consequently the costs and required skills involved with the construction of a custom user interface are dramatically reduced.
Platform allows to create a set of panes that compose the new web front-end of Alfresco; the construction is realized via a series of wizards through which it is possible to graphically configure lists of documents, detail panes and related metadata, search panels, document version lists, document preview and upload panes and much more, including the administration of documents, in terms of access policies, users and user groups.
These tasks can be accomplished in an easier way than with Share, without the need of expert technicians and with costs considerably lower. Mantaining this system is also cheaper and simpler, since neither external vendors are required, nor skilled developers.
Platform is more than that: it was born as an open source tool to use to quickly create data centric web applications. Among the most important features of this product, there are wizards to create grids, trees, detail forms, Google maps, image galleries, code selectors, starting from database tables and optionally database queries expressed in the SQL language, in a way very similar to the classical Microsoft Access application, but with more strengths, like the web access and multi user capability.
Moving from the data management focused on a database to the document management has been the natural step. Platform makes it possible to easily create forms showing a list of documents managed behind the scene by Alfresco engine and enhance that feature with the chance to fill in metadata by retrieving the values from a database. That overcomes the limit of products like Share or of custom applications developed with the same aim.
From the perpective of the document management, the main benefits coming from the Platform + Alfresco adoption are:
reduced costs when creating the web interface to use within the organization
the ability to mix data directly managed by the CMS with data coming from legacy systems and databases
the chance to create a web solution not limited to the document management area only, by means of a unique tool and a unique and uniform user interface
user authentication and authorizations can be delegated to external systems, such as an LDAP Server like Active Directory.
To sum up, within an organization is frequent to make several systems able to communicate and interact with each other, including a document management system.
Integration activities and costs involved with data/document oriented solutions can be significantly reduced when combining Alfresco and 4WS.Platform.
Opinions expressed by DZone contributors are their own.