Web developments
The integration of multiple data source is critical to have a complete overview of a living system. Then, once data are correctly combined, it is essential to develop software applications which allow the exploration of the integrated data sources and the design new hypotheses. Thus, besides data integration, software development represents another critical step towards a in-silico simulation of a living cell. Software development has many other aspects to be taken into account. One central question that comes along with the start of a new project is usually “Should I develop a desktop tool or a web application?”. The answer to this question is crucial as the development process can be entirely different. The two main advantages of desktop applications are security and performance. Data are manipulated within the computer which can be detached from the network. Since most of the security issues come from the internet, desktop applications are more secure than web tools. Also, the use of machine-optimised code and the locality of the data increase the performance of desktop applications.
In the last years, the situation has changed and promoted the development of web applications over the desktop ones. Security issues are still there, but the spreading of technologies like HTTPS and SSL have provided a new security shield against fraudulent actions. On the performance side, the growing availability of cloud computing services, at a reduced cost, has given web applications a virtually endless computing power. For example, software like Hadoop, built for handling Big Data, can be plugged in a SOA and piloted via a web interface. In this scenario, the user-friendliness and possibility of updating contents remotely, introduced by web apps, are critical elements for developing a community-wide application that can be used by anyone even the less tech-savvy user. Another advantage of web tools is the possibility of using them regardless of the location (they only need an internet connection) and the platform which can range from a smartphone to a personal computer.
Web development is a broader term which implies the construction of a website. From the start of the Web in 1991 (History of the World Wide Web – Wikipedia, n.d.) websites have evolved from a collection of basic HTML pages to sophisticated applications built on top of multiple frameworks. A framework is an high-level solution which allows the reuse of software pieces. It also ensures the quality of the code and guarantees the same behaviours across multiple browsers and multiple platforms . The use of web framework has speeded up the development of new websites which, nowadays, fulfil high-quality standards. There are plenty of web frameworks on the market, therefore, choosing the right one has become a hard task. Web developers spend more and more time benchmarking different solutions since making a wrong choice would lead to a waste of energy and time. Each framework requires a period of study to learn its specific syntax and logic. Furthermore, some frameworks have short life leaving the developer without support and updates. In this ecosystem of frameworks which expands every day, we are going to focus on web components being one of the principal technologies used for developing the web tools.
Web Components
To fully understand the power of web components we need to introduce the concepts of HTML and DOM. HTML stays for HyperText Markup Language and is the standard programming language for building web pages. Together with Cascading Style Sheets (CSS) and javascript form the cornerstone technologies behind the web (HTML – Wikipedia, n.d.). The DOM, which stays for Document Object Model, is an application programming interface (API) which converts HTML, XHTML and XML into a tree structure where each node is an object and represent a part of the web page.
Web components are reusable interface widgets which are built with web technologies. In other words, web components directives allow developers to create new custom, reusable HTML tag in web pages and web apps. All the custom components built following the web components directives operate across modern browsers, and work in synergy with any JavaScript library or framework that support HTML (Webcomponents.Org – Discuss & Share Web Components, n.d.). Web components are standardised by the W3C, the international standard organisation for the World Wide Web, and they have been added to the specification of HTML and DOM.
Web components they consist of four different technologies:
• Custom elements: A collection of JavaScript APIs that allow the user to define new custom HTML tags and their behaviour.
• Shadow DOM: A collection of JavaScript APIs to attach a private and encapsulated DOM to a custom element. Using shadow dom the code of each component become private and cannot be accessed from other ones. This technology removes the possibility of collision between different parts of the document.
• HTML templates: It introduce the custom tags ‘template’ and ‘slot’ used to create templates that are not displayed in the page. They can be adopted to create the custom element’s basic structure.
• HTML Imports: It is the mechanism to import new custom components into plain HTML pages. HTML imports allow developers to encapsulate the logic and the interface of a web component into a separated file and import it where it will be used.
Developers are free to create “vanilla” web components which are built only using the standard by W3C. A second option is to use libraries which guide the development process and refine parts of the standard that are not mature. Google Polymer, Bosonic, SkateJS, X-Tag are some of the available libraries which help to create a web component ecosystem. Within the Glycomic@ExPASy initiative, we Google Polymer wa selected as one of the most stable and continuously updated libraries on the market. Also, Google Polymer developers are working together with W3C to enlarge and improve the web component standard. This lead to a reduction of the Polymer library each time the standard upgrade one of its technology. In the long run, Polymer components will be entirely built with the standard, and the Polymer library will slowly disappear.