Modularization of large web applications

Autor: João de Castro Gonçalves da Silva Figueiredo
Jazyk: angličtina
Rok vydání: 2013
Předmět:
Druh dokumentu: Dissertação
Popis: O mundo globalizado e acelarado moderno levou ao crescimento de aplicações web de larga escala. Estas aplicações enfrentam desafios particulares, ao contrário de sistemas mais pequenos e complexos, nomeadamente: escalabilidade, concur- rência, complexidade, e distribuição. Estes sistemas evoluiram ao longo dos anos, passaram por vários programadores, arquitectos e gestores, e, tal como qualquer arquitecture de software, tendem a tornar-se numa "Big Ball of Mud".Modularizar estes sistemas - i. e. dividi-los em partes mais pequenas que, indi- vidualmente, são mais fáceis de gerir, desenhar, desenvolver, testar, manter e exten- der - é essencial para evitar um cenário de dívida técnica. Esta dissertação estuda a modularização de sistemas distribuidos de larga escala de uma forma exaustiva, e tenta responder questões como: que paradigmas e modelos de programação são mais adequados para a modularização, respondendo também aos desafios de aplicações web de larga escala; que tecnologias existem actualmente para que possamos usar esses paradigmas e modelos; que padrões de arquitecture de software formalizam boas prácticas para concur- rências, distribuição e orientação a serviços.Esta dissertação irá utilizar o sistema Betfair para empiricamente analisar a vali- dade dos referidos conceitos de modularização. Betfair é a maior bolsa de apostas online do mundo e processa mais transações que a soma de todos os mercados de acções da europa. Constitui uma desafiante, enorme e amadurecida base de código com algumas limitações de modularidade. Assim sendo, ir-se-á especificar uma ar- quitectura modular que lida com essas limitações não descartando os desafios de escalabilidade e concurrência.Por último, analisar-se-á como se poderá fazer um "refactoring" da arquitectura actual da Betfair para a arquitectura especificada, comparando os custos de um"refactoring" com os custos de uma escrita total do sistema.
A global, fast paced modern world has led to the rising of large scale web appli- cations. These applications face particular challenges from smaller, less complex systems, namely: scalability, concurrency, complexity, and distribution. They usually evolved during the years, passed by several programmers, architects and managers, and, as every software architecture, tend to become a "Big Ball of Mud".Modularizing such systems - i. e. dividing them into smaller parts that are, indi- vidually, easier to manage, design, develop, test, maintain and extend - is key to avoid a technical debt scenario. This dissertation studies modularization of large scale distributed systems in a extensive manner, and tries to answer questions such as: which programming paradigms and models are better suited for modularization, while still addressing large web applications challenges; which technologies are currently avail- able for us to make use of those paradigms and models; which software design patterns formalize good practices for concurrency, distribution and service-orientation.This dissertation we'll use the Betfair system to empirically analyse the validity of the referred modularization concepts. Betfair is the world's largest online betting exchange and processes more transations than all european stock market combined. It constitutes a challenging, massive and mature code base with some modularity limitation. As such, we will specify a modular architecture that addresses those limitations while still handling its scaling and concurrency challenges.Finally, this dissertation analyses how we can refactor the Betfair' existing archi- tecture to the specified architecture, comparing the cost of a refactoring with the cost of a total rewrite.
Databáze: Networked Digital Library of Theses & Dissertations