Technological layers in web integration
A technological platform has an essential influence on implementation possibilities of a web integration project
In web integration it is important to deal not only with information architecture but system architecture too, which results in the technical design of the solution.
From the implementation phase perspective, the basic issue seems about choosing the correct technological platforms and then specific software products. This is also the case in the implementation phase of system integration. In traditional system integration, this is particularly the case of middleware systems supplied as an application server. This type of standardised software product is based on a paradigm of three-layer software architecture, in which the integration links between the systems are implemented when it is possible only in a middle-application layer. Such a layer is created independently on a presentation layer, or in case of server-client architecture independent on the client, whether this involves a direct user interface (UI) or another integrating system, often by means of web services (SOAP or RESTfull interface) provided by the application components of individual systems. On the basis of these implementation layers SOA (service-oriented architecture) is being implement.
In the case of web integration, which is directly based on web technology, in contrast to system integration, a presentation layer or sometimes a communication layer is in the spotlight. In this environment emphasis is placed on the presentation and tying it to the application layer and there is a need to perceive and work with the technologies on several layers.
The first technological layer of web integration is the application platform, which is understood as a programme language and usually is strong supported by objective programming as well as supplemented by (ideally objective) an application programmable interface (API). Currently there are several dominant application platforms suitable for implementing web solutions:
Other examples include
Unlike the above, the latter are far less widespread, but in several types of web solutions they are an interesting and essentially exotic alternative.
Application frameworks exist for every application platform, and they add functionality, which supports the effective development of this or another specific area, to the basic APIs (in web integration this typically means web solutions), taking the form of reusable components.
In PHP, this concerns a whole range of open source frameworks, Zend framework, Symfony and Cake PHP are highly popular, and in the Czech scene Nette is a favourite framework. Web PHP frameworks have typically a strong focus on the implementation of MVC (model-view-controller) or MVP (model-view-presenter) architecture, which are related to the implementation of further design models and implementation principles (especially recently in the Inversion of Control – IoC) in a form of ready-to-use application components and helper classes.
In the case of Java as an application technology, web technologies are generalised in Java Enterprise Edition (JEE), which is connected to the fundamental principles of the Java Standard Edition (JSE) designed for general implementation of desktop and server systems, at the level of standard interfaces and abstract classes. Specific implementation of this standard is delivered by software vendors in a form of web containers or application servers, which the functionality of the web container as runtime environment for Java web application integrates (often in the form of an already existing standalone product) and adds other containers and libraries implementing other JEE standards to it, among which excel in particular application component model system called EJB (Enterprise Java Beans). In the last decade the Spring framework has seen a great deal of growth and represents an noteworthy spread in the fundamental principles of JSE/JEE standards and a replacement of certain more complex technologies included in it (e.g. Managed beans instead of EJB). As a programming language, Java has also been gaining ground in alternative application platforms independent of J2EE standards (Google Web Toolkit – GWT, and the Android mobile platform contains its own Java virtual machine and API). Java technologies are available as open source as well as commercial software products.
The second technological layer of web integration is portal technology.
In web integration we understand the portal as a collection of technological instruments for building and operating the web portal as a website that is structured in terms of the information perspective (typically a tree hierarchy), visual aspects (with the support of definition of reusable page layouts and functional components contained within them) and security (by a structured setting of user access rights or groups both at the front end and in administration). This enables a centralised and unified approach to information or services using web technologies.
From the technological perspective, the web portal is, in Java’s case, defined by standards of Java Portlet technology (JSR-168 and JSR-286). Here the Portlet is the basic building block of the web portal user interface, with a clearly defined life cycle, integration links in the infrastructure portal and a package format for distribution and deployment. In addition, the portal further defines the information structure, in the form of individual pages composed of particular portlets, as well as the visual structure of these pages, based on templates. The Java portal does not concern content management, which is handled by separate CMS systems, based usually on a standard Java Content Repository (JSR-170), integrated into the portal.
In case of the Microsoft .NET framework, this portal concept is implemented in the same way, in a form of web parts. But unlike Java, in this case the application servers are not in use because operation of the web.NET applications is ensured in a Microsoft Windows server environment, through the Internet Information Services (IIS) service. Web parts are then implemented especially for the Microsoft Sharepoint portal, an actual web application platform based on an API .NET framework, forming a complete environment for developing web solutions.
Unlike the first two platforms mentioned above, PHP itself does not offer standardised support for implementing the web portal. This area is covered by a whole range of web application frameworks and software products, of varying quality. These frameworks and products also partly operate as frameworks for developing complex web solutions. They generally do not implement component UI model, which has a clearly defined life cycle as is the case in Java portlets and .NET web parts and web forms, but they are always associated with the MVC design model. Model implementation is focused on generating pages (generally routing URL to components of the MVC controller) meaning that PHP solutions are increasingly linked to web paradigms than is the case with Java and .NET. PHP systems covering CMS functionality have such capabilities (which likewise in the PHP world is not standardised in any way). In the PHP solution the web portal is not usually differentiated from the CMS system, but se regarded as the only integral product (generally designated apriori as CMS, not the portal system).
Content Management System
The third technological layer of web integration are systems for managing (web) content – (W)CMS. They are currently available in numerous forms of WCMS products built on the most varied application technologies, with varying levels of support for integrating them with other application platforms or web portals.
From the view of functioning CMS systems the following are implemented at the very least.
- a) Content storage usually supported by the use of a relational database system (RDBMS)
- b) Quick content search in storage (fulltext function) whether under use of independent fulltext indexer or with support of fulltext engine on the level of storage implementation
- c) Support for export and import of content from the system (interface for exchanging content, typically combination of web services or a RESTful interface with a transport XML-based protocol)
- d) Secure access to the content in the form of access control lists (ACL)
- e) User content management using admimistration user interface, generally based on the infrastructure of the web portal.
The systems of the Enterprise Content Management (ECM) category are implemented beyond these basic functions, and are focused on putting in place company mission-critical portals of another function, such as:
- a) Workflow management
- b) Document and asset management
- c) Audit log (and completely structured logging of activities inside CMS system)
- d) Support for distributed deployment (clustering capabilities which enables load balancing, more instances deployed into infrastructure – typically publication instance separated from multiple presentation instances of the system)
- e) Implementation of network file protocols (e.g. WebDAV or SMB/CIFS) for remote access to content storage
From the perspective of standardising the above functionalities, certain standards apply:
- a) General, i.e. not dependent on the specific application technology
- b) Specific for particular application technology
Among the general standards, we can mention CMIS (Content Management Interoperability Services) or standards for publishing content like Atom or RSS. In terms of specific application technologies we can mention Java Content Repository (JCR) standardised JSR-170 and JSR-183. A standard similar to JCR for application platforms PHP and .NET is not available, and generally, standardisation is at the CMS level, in contrast to application and portal technologies, on a lower level, thanks to a huge number of open source and paid CMS products which address the problem of implementing CMS in a specific way. They also define themselves in contrast to competitor systems that act as if they are “reinventing the wheel“.
Some software products implement both the web portal and the WCMS system. At the same time, they create a very specific API, which is connected to the basic interface of the used application platform or framework, thus supporting heavily the website solution developer. This type of product is very widespread on the PHP application platform, especially thanks to the absence of robust standards in all of the described technological levels. In practice, most of these systems are designated CMS; however they have a character of the portal and very often also the web application framework/platforms. In the PHP field, examples include Drupal, Joomla and Wordpress. A similar situation applies in the v .NET world, for which there are a number of WCMS systems, which are basically in competition with the Microsoft Sharepoint portal system, a product originally intended for business collaboration that also operates as a general web application platform. Sharepoint in its most recent versions has attempted to achieve the level of WCMS. Java has one of the most well-known examples in Alfresco system and especially the very successful Liferay Portal.
All-in-one products often add complex functionality beyond the basic technological levels of web integration described above, especially support for collaboration, social networking or e-mail processing (mass-mailing) or own platform for e-commerce solutions. Deploying an all-in-one system into a web integration project generally creates a strong solution ource code dependency on product specific API and limits the possibility of later changes/switch to another product. This is an advantage for both the vendor of such a product and the implementer of a solution upon it .
In the next part of this series we will focus on further specific types of technological products and solutions that are also part of the web integration project.