7 research outputs found
Personalizing the web: A tool for empowering end-users to customize the web through browser-side modification
167 p.Web applications delegate to the browser the final rendering of their pages. Thispermits browser-based transcoding (a.k.a. Web Augmentation) that can be ultimately singularized for eachbrowser installation. This creates an opportunity for Web consumers to customize their Web experiences.This vision requires provisioning adequate tooling that makes Web Augmentation affordable to laymen.We consider this a special class of End-User Development, integrating Web Augmentation paradigms.The dominant paradigm in End-User Development is scripting languages through visual languages.This thesis advocates for a Google Chrome browser extension for Web Augmentation. This is carried outthrough WebMakeup, a visual DSL programming tool for end-users to customize their own websites.WebMakeup removes, moves and adds web nodes from different web pages in order to avoid tabswitching, scrolling, the number of clicks and cutting and pasting. Moreover, Web Augmentationextensions has difficulties in finding web elements after a website updating. As a consequence, browserextensions give up working and users might stop using these extensions. This is why two differentlocators have been implemented with the aim of improving web locator robustness
Constructing Hybrid Incremental Compilers for Cross-Module Extensibility with an Internal Build System
Context: Compilation time is an important factor in the adaptability of a
software project. Fast recompilation enables cheap experimentation with changes
to a project, as those changes can be tested quickly. Separate and incremental
compilation has been a topic of interest for a long time to facilitate fast
recompilation.
Inquiry: Despite the benefits of an incremental compiler, such compilers are
usually not the default. This is because incrementalization requires
cross-cutting, complicated, and error-prone techniques such as dependency
tracking, caching, cache invalidation, and change detection. Especially in
compilers for languages with cross-module definitions and integration,
correctly and efficiently implementing an incremental compiler can be a
challenge. Retrofitting incrementality into a compiler is even harder. We
address this problem by developing a compiler design approach that reuses parts
of an existing non-incremental compiler to lower the cost of building an
incremental compiler. It also gives an intuition into compiling
difficult-to-incrementalize language features through staging.
Approach: We use the compiler design approach presented in this paper to
develop an incremental compiler for the Stratego term-rewriting language. This
language has a set of features that at first glance look incompatible with
incremental compilation. Therefore, we treat Stratego as our critical case to
demonstrate the approach on. We show how this approach decomposes the original
compiler and has a solution to compile Stratego incrementally. The key idea on
which we build our incremental compiler is to internally use an incremental
build system to wire together the components we extract from the original
compiler.
Knowledge: The resulting compiler is already in use as a replacement of the
original whole-program compiler. We find that the incremental build system
inside the compiler is a crucial component of our approach. This allows a
compiler writer to think in multiple steps of compilation, and combine that
into a incremental compiler almost effortlessly. Normally, separate compilation
\`a la C is facilitated by an external build system, where the programmer is
responsible for managing dependencies between files. We reuse an existing sound
and optimal incremental build system, and integrate its dependency tracking
into the compiler.
Grounding: The incremental compiler for Stratego is available as an artefact
along with this article. We evaluate it on a large Stratego project to test its
performance. The benchmark replays edits to the Stratego project from version
control. These benchmarks are part of the artefact, packaged as a virtual
machine image for easy reproducibility.
Importance: Although we demonstrate our design approach on the Stratego
programming language, we also describe it generally throughout this paper. Many
currently used programming languages have a compiler that is much slower than
necessary. Our design provides an approach to change this, by reusing an
existing compiler and making it incremental within a reasonable amount of time
Una propuesta de transformación M2M para el análisis de la fase ASM de MoWebA
En este trabajo presentamos cómo la adopción del ASM apoya la portabilidad del PIM y mantiene el modelo arquitectónico independiente de la plataforma de implementación. Para el efecto, adoptamos MoWebA, con sus reglas de transformación M2M que permiten la correcta generación de múltiples ASM partiendo del mismo PIM y múltiples PSM partiendo del mismo ASM.
Así, el alcance de este trabajo es presentar las reglas de transformación PIM-ASM definidas en MoWebA para dos arquitecturas diferentes (Aplicaciones Enriquecidas de Internet y móviles) y mostrar su relevancia en pos de la reducción del problema de la portabilidad del PIM. Hemos seleccionado RIA y arquitecturas móviles debido a la relevancia y el impacto actual de ambas.
Con este trabajo se logró comprobar que mediante transformaciones M2M es posible obtener modelos ASM para diferentes arquitecturas partiendo de un único PIM sin necesidad de modificarlo previamente. A pesar de que sólo fueron considerados dos modelos ASM (i.e., uno para RIA y otro para persistencia móvil), se concluyó que es completamente posible obtener modelos ASM para otras arquitecturas.
La principal ventaja de obtener varios modelos ASM partiendo de un único modelo PIM es que la portabilidad del PIM se conserva de manera considerable y significativa. Es importante recordar que este enfoque (es decir, la captura de los elementos arquitectónicos en el modelo ASM), es muy diferente al de la mayoría de las metodologías actuales que, a diferencia de MoWebA, tienden a agregar los elementos específicos de la arquitectura al PIM (mediante la adaptación/extensión del mismo).
Adicionalmente, este estudio muestra que mediante el uso de archivos de configuración externos es posible mejorar en gran medida el grado de automatización de las transformaciones PIM-ASM, más aún cuando es posible procesar estos archivos invocando código Java nativo.This study focuses on a model-to-model (M2M) transformation approach as a possible contribution for the portability problem, mainly at the conceptual modeling level. Therefore, we show as the adoption of Architectural Specific Model (ASM), an intermediate model between Platform Independent Model (PIM) and Platform Specific Model (PSM), supports the PIM portability and maintains the architectural model independent from the implementation platform. To exemplify the concept, we defined M2M transformation rules for MoWebA in order to automate transformations from PIM to ASM for different architectures. We show how to obtain different ASM models for two architectures (Rich Internet Applications and mobile) starting from the same PIM model with a semi-automatic process. Thus, we show the approach relevance to reduce the portability problem.Facultad de Informátic
Reverse engineering of web applications
The MAP-i Doctoral Program of the Universities of Minho, Aveiro and PortoEven so many years after its genesis, the Internet is still growing. Not only are
the users increasing, so are the number of different programming languages or
frameworks for building Web applications. However, this plethora of technologies
makes Web applications’ source code hard to comprehend and understand,
thus deteriorating both their debugging and their maintenance costs.
In this context, a number of proposals have been put forward to solve
this problem. While, on one hand, there are techniques that analyze the entire
source code of Web applications, the diversity of available implementation
technology makes these techniques return unsatisfactory results. On the other
hand, there are also techniques that dynamically (but blindly) explore the applications
by running them and analyzing the results of randomly exploring
them. In this case the results are better, but there is always the chance that
some part of the application might be left unexplored.
This thesis investigates if an hybrid approach combining static analysis and
dynamic exploration of the user interface can provide better results. FREIA, a
framework developed in the context of this thesis, is capable of analyzing Web
applications automatically, deriving structural and behavioral interface models
from them.Mesmo decorridos tantos anos desde a sua génese, a Internet continua a crescer.
Este crescimento aplica-se não só ao número de utilizadores como também ao
número de diferentes linguagens de programação e frameworks utilizadas para
a construção de aplicações Web. No entanto, esta pletora de tecnologias leva
a que o código fonte das aplicações Web seja difícil de compreender e analisar,
deteriorando tanto o seu depuramento como os seus custos de manutenção.
Neste contexto, foram desenvolvidas algumas propostas com intuito de resolver
este problema. Não obstante, por um lado, existirem técnicas que analisam
a totalidade do código fonte das aplicações Web, a diversidade das tecnologias
de implementação existentes fazem com que estas técnicas gerem
resultados insatisfatórios. Por outro lado, existem também técnicas que, dinamicamente
(apesar de cegamente), exploram as aplicações, executando-as e
analisando os resultados da sua exploração aleatória. Neste caso, os resultados
são melhores, mas corremos o risco de ter deixado alguma parte da aplicação
por explorar.
Esta tese investiga se uma abordagem híbrida, combinando a análise estática
com a exploração dinâmica da interface do utilizador consegue produzir
melhores resultados. FREIA, uma framework desenvolvida no contexto desta
tese é capaz de, automaticamente, analisar aplicações Web, derivando modelos
estruturais e comportamentais da interface das mesmas.Esta investigação foi financiada pela Fundação para a Ciência e Tecnologia através
da concessão de uma bolsa de doutoramento (SFRH/BD/71136/2010) no âmbito
do Programa Operacional Potencial Humano (POPH), comparticipado pelo Fundo
Social Europeu e por fundos nacionais do QREN
Dienstekomposition in intelligenten Umgebungen basierend auf KI-Planung
In intelligenten Umgebungen wird das Zusammenspiel mehrerer Dienste benötigt, welches durch eine Dienstekomposition erzielt werden kann. KIPlanung ist eine Methode, dies umzusetzen. Im Rahmen der vorliegenden Arbeit wurde experimentell das Laufzeitverhalten von verschiedenen Planern untersucht. Daneben wurden die Möglichkeiten der Modellierung von Problemen der Dienstekomposition evaluiert, was zu einer Richtline für die verteilte Modellierung von Dienstbeschreibungen führte. Basierend auf den Erfahrungen wurde ein Composer entworfen und umgesetzt, der verschiedene Planer nutzen kann
Электронные библиотеки: перспективные методы и технологии, электронные коллекции
Электронные библиотеки – область исследований и разработок, направленных на развитие теории и практики обработки, распространения, хранения, анализа и поиска цифровых данных различной природы. Основная цель серии конференций RCDL заключается в формировании сообщества специалистов России, ведущих исследования и разработки в области электронных библиотек и близких областях. Всероссийская научная конференция 2009 г. (RCDL'2009) является одиннадцатой конференцией по данной тематике (1999 г. – Санкт-Петербург, 2000 г. – Протвино, 2001 г. – Петрозаводск, 2002 г. – Дубна, 2003 г. – Санкт-Петербург, 2004 г. – Пущино, 2005 г. – Ярославль, 2006 г. – Суздаль, 2007 г. – Переславль-Залесский, 2008 г. – Дубна).
Настоящий сборник включает тексты докладов, коротких сообщений и стендовых докладов, отобранных Программным комитетом RCDL'2009 в результате проведенного рецензирования