27 research outputs found
QoS-Aware Mobile Service Selection Algorithm
For the problem of mobile service selection, this paper gives a context-aware service selection algorithm based on Genetic Algorithm. In this algorithm, a tree encoding method, a fitness function, and a fitness-better strategy were proposed. The tree encoding mode made Genetic Algorithm support selection of various types of service combinations, for example, sequence composition, concurrence composition, probability composition, and loop composition. According to the encoding method, a fitness function was designed specially. The fitness-better strategy gives the direction of population evolution and avoids the degradation of population fitness. Some experiments analyses show that the provided service selection algorithm can get better service composition
Jolie and LEMMA: Model-Driven Engineering and Programming Languages Meet on Microservices
Part 3: Large-Scale Decentalised SystemsInternational audienceIn microservices, Model-Driven Engineering (MDE) has emerged as a powerful methodology for architectural design. Independently, the community of programming languages has investigated new linguistic abstractions for effective microservice development. Here, we present the first preliminary study of how the two approaches can crosspollinate, taking the LEMMA framework and the Jolie programming language as respective representatives. We establish a common ground for comparing the two technologies in terms of metamodels, discuss practical enhancements that can be derived from the comparison, and present some directions for future work that arise from our new viewpoint
Vnode: Low-overhead Transparent Tracing of Node.js-based Microservice Architectures
Tracing serves as a key method for evaluating the performance of
microservices-based architectures, which are renowned for their scalability,
resource efficiency, and high availability. Despite their advantages, these
architectures often pose unique debugging challenges that necessitate
trade-offs, including the burden of instrumentation overhead. With Node.js
emerging as a leading development environment, recognized for its rapidly
growing ecosystem, there is a pressing need for innovative approaches that
reduce the telemetry data collection efforts, and the overhead incurred by the
environment instrumentation. In response, we introduce a new approach designed
for transparent tracing and seamless deployment of microservices in cloud
settings. This approach is centered around our newly developed Internal
Transparent Tracing and Context Reconstruction (ITTCR) algorithm. ITTCR is
adept at correlating internal metrics from various distributed trace files, to
reconstruct the intricate execution contexts of microservices operating in a
Node.js environment. Our method achieves transparency by directly instrumenting
the Node.js virtual machine, enabling the collection and analysis of trace
events in a transparent manner. This process facilitates the creation of
visualization tools, enhancing the understanding and analysis of microservice
performance in cloud environments
Advanced Strategies for Precise and Transparent Debugging of Performance Issues in In-Memory Data Store-Based Microservices
The rise of microservice architectures has revolutionized application design,
fostering adaptability and resilience. These architectures facilitate scaling
and encourage collaborative efforts among specialized teams, streamlining
deployment and maintenance. Critical to this ecosystem is the demand for low
latency, prompting the adoption of cloud-based structures and in-memory data
storage. This shift optimizes data access times, supplanting direct disk access
and driving the adoption of non-relational databases.
Despite their benefits, microservice architectures present challenges in
system performance and debugging, particularly as complexity grows. Performance
issues can readily cascade through components, jeopardizing user satisfaction
and service quality. Existing monitoring approaches often require code
instrumentation, demanding extensive developer involvement. Recent strategies
like proxies and service meshes aim to enhance tracing transparency, but
introduce added configuration complexities.
Our innovative solution introduces a new framework that transparently
integrates heterogeneous microservices, enabling the creation of tailored tools
for fine-grained performance debugging, especially for in-memory data
store-based microservices. This approach leverages transparent user-level
tracing, employing a two-level abstraction analysis model to pinpoint key
performance influencers. It harnesses system tracing and advanced analysis to
provide visualization tools for identifying intricate performance issues. In a
performance-centric landscape, this approach offers a promising solution to
ensure peak efficiency and reliability for in-memory data store-based cloud
applications
Modeling Interaction-Oriented Architectures using Choreographies
The Software architecture of a system can be regarded as a consistent set of views to describe the system. This paper focuses on the interaction between components in a system. These can be modeled as choreographies, capturing all allowed interactions between the components. In this paper, we show that it is feasible to analyze a composed set of these choreographies: a tree of choreographies in which each member may refer to another. The two major components of the analysis are correctness by structure: a choreography needs to follow strict rules to guarantee soundness. Otherwise, the choreography is transformed into a Petri net which is checked by an external tool. This paper shows the theoretical techniques to verify a composed choreography, and implements the solutions into a single educational modeler tool: INORA2