UOC Technology


The Technology Layer

The Technology Layer


The UOC's architecture is a reflection of its history. Some technologies, such as C++, have been in use for over 15 years, while others, such as Ruby, are more recent additions, although all of them have a role to play in the University's architectural map. While coordinating this range of technologies is not an easy task, it is a price that has to be paid for a flexible environment that can adapt to change and serve a large number of users who connect to the system on a daily basis. The UOCs Virtual Campus is one of the e-learning systems with the greatest number of concurrent accesses.

A technology is usually the practical application of an agreement, rule, concept or technique for resolving a problem. The technology is, therefore, often the result of the implementation or realization of a specification. The ISO (International Organization for Standardization - http://www.iso.org) defines the standards or specifications as "documented agreements containing technical specifications or other precise criteria to be used consistently as rules, guidelines, or definitions of characteristics, to ensure that materials, products, processes and services are fit for their purpose".

The diagram for this layer contains many standards, specifications and technologies for system management and maintenance. Programming languages, such as JAVA and PHP; application servers, such as APACHE, TOMCAT and JBOSS; specific systems, such as SHIBBOLETH for the authentication, being examples of these. See the Technology Infrastructure section for more information on the base technologies used at the UOC.

For a technology environment such as the UOC's, the capability of interacting and connecting with other systems and exchanging information with them is fundamental. The interoperability between systems is defined in this layer by combining three types of standards and specifications: data specifications, communication specifications and interface specifications.

The data specifications cover the structures, meaning and specific data vocabularies. XML, HTML and RSS are examples of this type of specification. Using standards or arriving at agreements at this level facilitates that two systems can import and export the same data and, therefore, exchange information.

The communication specifications define how two systems or machines communicate with each other. SOAP, REST, CORBA and HTTP are examples of these. The standards and agreements at this level are often called protocols. A system that is compatible with a given protocol can communicate with another system that also uses this protocol. So, the agreements at the protocol level make communication between different systems possible.

An interface specification is a contract that defines and separates the responsibilities between two pieces of software. IMS LTI, OKI OSIDs and Google Gadgets are examples of these. The use of interfaces allows changing the implementations of the services and applications without affecting the rest of the system. Interfaces serve to cover the underlying changes in the technology and facilitate reusing software in different environments and with different technologies.

A well-defined technology architecture helps to position each of these specifications, standards and technologies and combine them coherently. The architecture provides a common context in which these specifications can be interpreted and adopted.