6,184 research outputs found
VISOR: virtual machine images management service for cloud infarestructures
Cloud Computing is a relatively novel paradigm that aims to fulfill the computing as utility dream. It has appeared to bring the possibility of providing computing resources (such as servers, storage and networks) as a service and on demand, making them accessible through common Internet protocols. Through cloud offers, users only need to pay for the amount of resources they
need and for the time they use them. Virtualization is the clouds key technology, acting upon virtual machine images to deliver fully functional virtual machine instances. Therefore, virtual machine images play an important role in Cloud Computing and their efficient management becomes a key concern that should be carefully addressed. To tackle this requirement, most cloud offers provide their own image repository, where images are stored and retrieved from, in order to instantiate new virtual machines. However, the rise of Cloud Computing has brought
new problems in managing large collections of images.
Existing image repositories are not able to efficiently manage, store and catalogue virtual machine images from other clouds through the same centralized service repository. This becomes especially important when considering the management of multiple heterogeneous cloud offers. In fact, despite the hype around Cloud Computing, there are still existing barriers to its widespread adoption. Among them, clouds interoperability is one of the most notable issues.
Interoperability limitations arise from the fact that current cloud offers provide proprietary interfaces, and their services are tied to their own requirements. Therefore, when dealing with multiple heterogeneous clouds, users face hard to manage integration and compatibility issues.
The management and delivery of virtual machine images across different clouds is an example of such interoperability constraints.
This dissertation presents VISOR, a cloud agnostic virtual machine images management service and repository. Our work towards VISOR aims to provide a service not designed to fit in a specific cloud offer but rather to overreach sharing and interoperability limitations among different clouds. With VISOR, the management of clouds interoperability can be seamlessly abstracted
from the underlying procedures details. In this way, it aims to provide users with the
ability to manage and expose virtual machine images across heterogeneous clouds, throughout the same generic and centralized repository and management service. VISOR is an open source software with a community-driven development process, thus it can be freely customized and further improved by everyone. The conducted tests to evaluate its performance and resources
usage rate have shown VISOR as a stable and high performance service, even when compared
with other services already in production. Lastly, placing clouds as the main target audience is not a limitation for other use cases. In fact, virtualization and virtual machine images are not exclusively linked to cloud environments. Therefore and given the service agnostic design concerns, it is possible to adapt it to other usage scenarios as well.A Computação em Nuvem (”Cloud Computing”) é um paradigma relativamente novo que visa
cumprir o sonho de fornecer a computação como um serviço. O mesmo surgiu para possibilitar o
fornecimento de recursos de computação (servidores, armazenamento e redes) como um serviço
de acordo com as necessidades dos utilizadores, tornando-os acessíveis através de protocolos de
Internet comuns. Através das ofertas de ”cloud”, os utilizadores apenas pagam pela quantidade
de recursos que precisam e pelo tempo que os usam. A virtualização é a tecnologia chave
das ”clouds”, atuando sobre imagens de máquinas virtuais de forma a gerar máquinas virtuais
totalmente funcionais. Sendo assim, as imagens de máquinas virtuais desempenham um papel
fundamental no ”Cloud Computing” e a sua gestão eficiente torna-se um requisito que deve ser
cuidadosamente analisado. Para fazer face a tal necessidade, a maioria das ofertas de ”cloud”
fornece o seu próprio repositório de imagens, onde as mesmas são armazenadas e de onde
são copiadas a fim de criar novas máquinas virtuais. Contudo, com o crescimento do ”Cloud
Computing” surgiram novos problemas na gestão de grandes conjuntos de imagens.
Os repositórios existentes não são capazes de gerir, armazenar e catalogar images de máquinas
virtuais de forma eficiente a partir de outras ”clouds”, mantendo um único repositório e serviço
centralizado. Esta necessidade torna-se especialmente importante quando se considera a gestão
de múltiplas ”clouds” heterogéneas. Na verdade, apesar da promoção extrema do ”Cloud Computing”, ainda existem barreiras à sua adoção generalizada. Entre elas, a interoperabilidade
entre ”clouds” é um dos constrangimentos mais notáveis. As limitações de interoperabilidade
surgem do fato de as ofertas de ”cloud” atuais possuírem interfaces proprietárias, e de os seus
serviços estarem vinculados às suas próprias necessidades. Os utilizadores enfrentam assim
problemas de compatibilidade e integração difíceis de gerir, ao lidar com ”clouds” de diferentes fornecedores. A gestão e disponibilização de imagens de máquinas virtuais entre diferentes
”clouds” é um exemplo de tais restrições de interoperabilidade.
Esta dissertação apresenta o VISOR, o qual é um repositório e serviço de gestão de imagens de máquinas virtuais genérico. O nosso trabalho em torno do VISOR visa proporcionar um
serviço que não foi concebido para lidar com uma ”cloud” específica, mas sim para superar as
limitações de interoperabilidade entre ”clouds”. Com o VISOR, a gestão da interoperabilidade
entre ”clouds” é abstraída dos detalhes subjacentes. Desta forma pretende-se proporcionar
aos utilizadores a capacidade de gerir e expor imagens entre ”clouds” heterogéneas, mantendo
um repositório e serviço de gestão centralizados. O VISOR é um software de código livre com
um processo de desenvolvimento aberto. O mesmo pode ser livremente personalizado e melhorado por qualquer pessoa. Os testes realizados para avaliar o seu desempenho e a taxa de
utilização de recursos mostraram o VISOR como sendo um serviço estável e de alto desempenho,
mesmo quando comparado com outros serviços já em utilização. Por fim, colocar as ”clouds”
como principal público-alvo não representa uma limitação para outros tipos de utilização. Na
verdade, as imagens de máquinas virtuais e a virtualização não estão exclusivamente ligadas a
ambientes de ”cloud”. Assim sendo, e tendo em conta as preocupações tidas no desenho de um
serviço genérico, também é possível adaptar o nosso serviço a outros cenários de utilização
A partition methodology to develop data flow dominated embedded systems
Comunicação apresentada no International Workshop on Model-Based Methodologies for Pervasive and Embedded Software (MOMPES 2004), 1, Hamilton, Ontario, Canada, 15-18 June 2004.This paper proposes an automatic partition methodology oriented to develop
data flow dominated embedded systems. The target architecture is
CPU-based with reconfigurable devices on attached board(s), which closely
matches the PSM meta-model applied to system modelling. A PSM flow
graph was developed to represent the system during the partitioning process.
The partitioning task applies known optimization algorithms - tabu search
and cluster growth algorithms - which were enriched with new elements to
reduce computation time and to achieve higher quality partition solutions.
These include the closeness function that guides cluster growth algorithm,
which dynamically adapts to the type of object and partition under analysis.
The methodology was applied to two case studies, and some evaluation
results are presented
Towards a High-Level Implementation of Execution Primitives for Unrestricted, Independent And-Parallelism
Most efficient implementations of parallel logic programming rely on complex low-level machinery which is arguably difficult to implement and modify. We explore an alternative approach aimed at taming that complexity by raising core parts of the implementation to the source language level for the particular case of and-parallellism. We handle a significant portion of the parallel implementation at the Prolog level with the help of a comparatively small number of concurrency.related primitives which take case of lower-level tasks such as locking, thread management, stack set management, etc. The approach does not eliminate altogether modifications to the abstract machine, but it does greatly simplify them and it also facilitates experimenting with different alternatives. We show how this approach allows implementing both restricted and unrestricted (i.e., non fork-join) parallelism. Preliminary esperiments show thay the performance safcrifieced is reasonable, although granularity of unrestricted parallelism contributes to better observed speedups
Language run-time systems:An overview
The proliferation of high-level programming languages with advanced language features and the need for portability across increasingly heterogeneous and hierarchical architectures require a sophisticated run-time system to manage program execution and available resources. Additional benefits include isolated execution of untrusted code and the potential for dynamic optimisation, among others. This paper provides a high-level overview of language run-time systems with a focus on execution models, support for concurrency and parallelism, memory management, and communication, whilst briefly mentioning synchronisation, monitoring, and adaptive policy control. Two alternative approaches to run-time system design are presented and several challenges for future research are outlined. References to both seminal and recent work are provided
Model-based, event-driven programming paradigm for interactive web applications
Applications are increasingly distributed and event-driven. Advances in web frameworks have made it easier to program standalone servers and their clients, but these applications remain hard to write. A model-based programming paradigm is proposed that allows a programmer to represent a distributed application as if it were a simple sequential program, with atomic actions updating a single, shared global state. A runtime environment executes the program on a collection of clients and servers, automatically handling (and hiding from the programmer) complications such as network communication (including server push), serialization, concurrency and races, persistent storage of data, and queuing and coordination of events.National Science Foundation (U.S.) (Grant CCF-1138967)National Science Foundation (U.S.) (Grant CCF-1012759)National Science Foundation (U.S.) (Grant CCF-0746856
- …