首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
ContextModern middleware platforms provide the applications deployed on top of them with facilities for their adaptation. However, the level of adaptation support provided by the state-of-the-art middleware solutions is often limited to dynamically loading and off-loading of software components. Therefore, it is left to the application developers to handle the details of change such that the system’s consistency is not jeopardized.ObjectiveWe aim to change the status quo by providing the middleware facilities necessary to ensure the consistency of software after adaptation. We would like these facilities to be reusable across different applications, such that the middleware can streamline the process of achieving safe adaptation.MethodOur approach addresses the current shortcomings by utilizing the information encoded in a software system’s architectural style. This information drives the development of reusable adaptation patterns. The patterns specify both the exact sequence of changes and the time at which those changes need to occur. We use the patterns to provide advanced adaptation support on top of an existing architectural middleware platform.ResultsOur experience shows the feasibility of deriving detailed adaptation patterns for several architectural styles. Applying the middleware to adapt two real-world software systems shows the approach is effective in consistently adapting these systems without jeopardizing their consistency.ConclusionWe conclude the approach is effective in alleviating the application developers from the responsibility of managing the adaptation process at the application-level. Moreover, we believe this study provides the foundation for changing the way adaptation support is realized in middleware solutions.  相似文献   

2.
Interceptors are an emerging middleware technology enabling the addition of specific network‐oriented capabilities to distributed applications. By exploiting interceptors, developers can register code within interception points, extending the basic middleware mechanisms with specific functionality, e.g. authentication, flow control, caching, etc. Notably, these extensions can be achieved without modifying either the application or the middleware code. In this paper we report the results of our experiences with CORBA request portable interceptors. In particular, we point out (i) the basic mechanisms implementable by these interceptors, i.e. request redirection and piggybacking and (ii) we analyze their limitations. We then propose a proxy‐based technique to overcome the interceptors' limitations. Successively, we present a performance analysis carried out on three Java‐CORBA platforms currently implementing the portable interceptors specification. Finally, we conclude our work with a case study in which portable interceptors are used to implement the fault‐tolerant CORBA client invocation semantic without impacting on the client application code and on the CORBA ORB. We also release fragments of Java code for implementing the described techniques. Copyright © 2003 John Wiley & Sons, Ltd.  相似文献   

3.
The rapidly emerging area of pervasive computing faces many challenging research issues critical to application developers. Wide heterogeneity of hardware, software, and network resources pose veritable coordination problems and demand thorough knowledge of individual elements and technologies. In order to ease this problem and to aid application developers, different middleware platforms have been proposed by researchers. Though the existing middleware solutions are useful, they themselves have varied features and contribute partially, for context, data, or service management related application developments. There is no single middleware solution that can address a majority of pervasive computing application development issues, due to the diverse underlying challenges. In this survey paper, we identify different design dimensions of pervasive computing middleware and investigate their use in providing various system services. In-depth analysis of the system services have been carried out and middleware systems have been carefully studied. With a view to aid future middleware developers, we also identify some challenging open research issues that have received little or no attention in existing middleware solutions.  相似文献   

4.
Traditionally, most definitions seeking to characterize middleware suggest that it is the software that facilitates remote database access and systems transactions. More recently, the term has come to be associated-somewhat limitingly-with distributed platforms such as the Open Software Foundation's Distributed Computing Environment (DCE) and the Object Management Group's Common Object Request Broker Architecture (CORBA). And some have loosely applied it to systems as diverse as workflow support environments and even to the Web itself. We believe the essential role of middleware is to manage the complexity and heterogeneity of distributed infrastructures and thereby provide a simpler programming environment for distributed-application developers. It is therefore most useful to define middleware as any software layer that is placed above the distributed system's infrastructure-the network OS and APIs-and below the application layer  相似文献   

5.
This paper presents Arcademis, a Java‐based framework for communication middleware development. Arcademis consists of a set of abstract classes, interfaces and concrete components that define the general architecture of middleware systems. Its main objective is to support the implementation of non‐monolithic and easily configurable middleware platforms. Arcademis can be used by middleware developers to deploy systems that meet the requirements of a particular network or technology. Instances of Arcademis can also be customized by distributed systems engineers to meet the requirements of a particular application. For example, new transport protocols, connection management policies, authentication algorithms or invocation semantics can be easily configured in middleware platforms derived from Arcademis. In order to illustrate the use of the framework, the paper describes the RME system, a middleware derived from Arcademis that adds a remote method invocation service to the CLDC configuration of Java 2 Micro Edition (J2ME). Copyright © 2006 John Wiley & Sons, Ltd.  相似文献   

6.
Advances in wireless sensing and actuation technology allow embedding significant amounts of application logic inside wireless sensor networks. Such active WSN applications are more autonomous, but are significantly more complex to implement. Event-based middleware lends itself to implementing these applications. It offers developers fine-grained control over how an individual node interacts with the other nodes of the network. However, this control comes at the cost of event handlers which lack composability and violate software engineering principles such as separation of concerns. In this paper, we present CrimeSPOT as a domain-specific language for programming WSN applications on top of event-driven middleware. Its node-centric features enable programming a node’s interactions through declarative rules rather than event handlers. Its network-centric features support reusing code within and among WSN applications. Unique to CrimeSPOT is its support for associating application-specific semantics with events that carry sensor readings. These preclude transposing existing approaches that address the shortcomings of event-based middleware to the domain of wireless sensor networks. We provide a comprehensive overview of the language and the implementation of its accompanying runtime. The latter comprises several extensions to the Rete forward chaining algorithm. We evaluate the expressiveness of the language and the overhead of its runtime using small, but representative active WSN applications.  相似文献   

7.
Programming frameworks are an accepted fixture in the object‐oriented world, motivated by the need for code reuse, developer guidance and restriction. A new trend is emerging where frameworks require domain experts to provide declarations using a domain‐specific language, influencing the structure and behaviour of the resulting application. These mechanisms address concerns such as user privacy. Although many popular open platforms such as Android are based on declaration‐driven frameworks, current implementations provide ad hoc and narrow solutions to concerns raised by their openness to non‐certified developers. Most widely used frameworks fail to address serious privacy leaks and provide the user with little insight into application behaviour. To address these shortcomings, we show that declaration‐driven frameworks can limit privacy leaks, as well as guide developers, independently from the underlying programming paradigm. To do so, we identify concepts that underlie declaration‐driven frameworks and apply them systematically to an object‐oriented language, Java and a dynamic functional language, Racket. The resulting programming framework generators are used to develop a prototype mobile application, illustrating how we mitigate a common class of privacy leaks. Finally, we explore the possible design choices and propose development principles for developing domain‐specific language compilers to produce frameworks, applicable across a spectrum of programming paradigms. Copyright © 2016 John Wiley & Sons, Ltd.  相似文献   

8.
The use of RFID middleware to support application development for and integration of RFID hardware into information systems has become quite common in RFID applications where reader devices remain stationary, which currently represents the largest part of all RFID applications in use. Another field for applying RFID technology which is offering a huge set of novel possibilities and applications are mobile applications, where readers are no longer fixed. In order to address the specific issues of mobile RFID-enabled applications and to support developers in rapid application development, we present ID-Services, an architecture for an RFID middleware that is designed to support mobile applications. The ID-Services approach has been used to implement MoVIS (Mobile Visitor Information System), a mobile application which allows museum visitors to request individually adapted multimedia information about exhibits in an intuitive way.  相似文献   

9.
Due to the shift from software-as-a-product to software-as-a-service, software components that were developed to run in a single address space must increasingly be accessed remotely across the network. Distribution middleware is frequently used to facilitate this transition. Yet a range of middleware platforms exist, and there are few existing guidelines to help the programmer to choose an appropriate middleware platform to achieve desired goals for performance, conciseness, intuitiveness, and reliability. To address this limitation, in this article, we describe a case study of transitioning an Open Service Gateway Initiative service from local to remote access. In our case study, we evaluate five remote versions of this service, constructed using different distribution middleware platforms. These platforms are implemented by widely-used commercial technologies or have been proposed as improvements on the state of the art. In particular, we implemented a service-oriented version of our own Remote Batch Invocation abstraction. We compare and contrast these implementations in terms of their respective performance, conciseness, complexity, and reliability. Our results can help remote service programmers make informed decisions when choosing middleware platforms for their applications.  相似文献   

10.
11.
Reuse-Conducive Development Environments   总被引:1,自引:0,他引:1  
Despite its well-recognized benefits, software reuse has not met its expected success due to technical, cognitive, and social difficulties. We have systematically analyzed the reuse problem (especially the cognitive and social difficulties faced by software developers who reuse) from a multidimensional perspective, drawing on our long-term research on information retrieval, human-computer interaction, and knowledge-based systems. Based on this analysis, we propose the concept of reuse-conducive development environments, which encourage and enable software developers to reuse through the smooth integration of reuse repository systems and development environments. We have designed, implemented, and evaluated CodeBroker—a reuse-conducive development environment—that autonomously locates and delivers task-relevant and personalized components into the current software development environment. Empirical evaluations of CodeBroker have shown that the system is effective in promoting reuse by enabling software developers to reuse components unknown to them, reducing the difficulties in locating components, and augmenting the programming capability of software developers.  相似文献   

12.
This prototype method management system (MMM), implemented with Web technologies, supports distributed authoring and execution of computational software modules among an interdisciplinary group of developers and users. Heterogeneous data formats, programming languages, and computing platforms pose various challenges whenever researchers are sharing and combining software modules, especially when the collaboration occurs across different traditions of scientific computing. To meet these challenges, we designed and implemented MMM. MMM is a collection of middleware services to support the interaction between software users and developers, and to facilitate the sharing of software modules across heterogeneous networks. The system design follows the World Wide Web paradigm: developers (providers) install their modules on the network in a way that allows users (consumers) to access and execute them. A prototype is available on the Web  相似文献   

13.
Today's mobile applications require constant adaptation to their changing environments, or contexts. Technological advances have increased the pervasiveness of mobile computing devices such as laptops, handhelds, and embedded sensors. The sheer amount of context information available for adaptation places a heightened burden on application developers as they must manage and utilize vast amounts of data from diverse sources. Facilitating programming in this data-rich environment requires a middleware that provides context information to applications in an abstract form. In this paper, we demonstrate the feasibility of such a middleware that allows programmers to focus on high-level interactions among programs and to employ declarative abstract context specifications in settings that exhibit transient interactions with opportunistically encountered components. We also discuss the novel context-aware abstractions the middleware provides and the programming knowledge necessary to write applications using it. Finally, we provide examples demonstrating the infrastructure's ability to support differing tasks from a wide variety of application domains.  相似文献   

14.
Historically, software development methodologies have focused more on improving tools for system development than on developing tools that assist with system composition and integration. Component-based middleware like Enterprise Java-Beans (EJB), Microsoft .NET, and the CORBA Component Model (CCM) have helped improve software reusability through component abstraction. However, as developers have adopted these commercial off-the-shelf technologies, a wide gap has emerged between the availability and sophistication of standard software development tools like compilers and debuggers, and the tools that developers use to compose, analyze, and test a complete system or system of systems. As a result, developers continue to accomplish system integration using ad hoc methods without the support of automated tools. Model-driven development is an emerging paradigm that solves numerous problems associated with the composition and integration of large-scale systems while leveraging advances in software development technologies such as component-based middleware. MDD elevates software development to a higher level of abstraction than is possible with third-generation programming languages.  相似文献   

15.
The MapReduce paradigm provides a scalable model for large scale data intensive computing and associated fault-tolerance. Data volumes generated and processed by scientific applications are growing rapidly. Several MapReduce implementations, with various degrees of conformance to the key tenets of the model, are available today. Each of these implementations is optimized for specific features. To make the right decisions, HPC application and middleware developers must thus understand the complex dependences between MapReduce features and their application. We present a set of benchmarks for quantifying, comparing, and contrasting the performance of MapReduce implementations under a wide range of representative use cases. To demonstrate the utility of the benchmarks and to provide a snapshot of the current implementation landscape, we report the performance of three different MapReduce implementations, and draw conclusions about their current performance characteristics. The three implementations we chose for evaluation are the widely used Hadoop implementation, Twister, which has been widely discussed in the literature in the context of scientific applications, and LEMO-MR which is our own implementation. We present the performance of these three implementations and draw conclusions about their performance characteristics.  相似文献   

16.
Distributed object programming is significantly more complex than programming a local host and requires highly skilled developers. Current distributed middleware for distributed programming is hard to use mainly because its programming model and runtime support are quite different from those of local programming. For instance, the local reference and the remote reference to the same object are of different types and therefore are not assignable to the same set of references. Hence, a remote reference cannot always replace a local reference as a parameter in a method invocation. Furthermore, a local object cannot be referenced remotely, unless it has been first converted into a remote object. Another distributed programming obstacle with current middleware is that access to classes and resources residing across the distributed environment is not as natural and transparent as with local programming, where all resources are in the same classpath. The Java language introduces a new scope where distributed object programming can become as easy and simple as local programming. In this paper we identify the main distinctions between local and distributed Java programs and present new middleware which achieves this goal. The proposed middleware converts any Java-enabled host into a Java peer, which can share its classes and object instances and interact with other Java peers in a manner which almost reflects a single system image to the user.  相似文献   

17.
The nature of distributed systems is constantly and steadily changing as the hardware and software landscape evolves. Porting applications and adapting existing middleware systems to ever changing computational platforms has become increasingly complex and expensive. Therefore, the design of applications, as well as the design of next generation middleware systems, must follow a set of guiding principles in order to insure long-term “survivability” without costly re-engineering. From our practical experience, the key determinants to success in this endeavor are adherence to the following principles: (1) Design for change; (2) Provide for storage subsystem I/O coordination; (3) Employ workload partitioning and load balancing techniques; (4) Employ caching; (5) Schedule the workload; and (6) Understand the workload. In order to support these principles, we have collected extensive experimental results comparing three middleware systems targeted at data- and compute-intensive applications implemented by our research group during the course of the last decade, on a single data- and compute-intensive application. The main contribution of this work is the analysis of a level playing field, where we discuss and quantify how adherence to these guiding principles impacts overall system throughput and response time.  相似文献   

18.
An innovative middleware‐transparent approach to developing distributed applications is presented. The approach uses an aspect‐oriented software development technique to separate an application's middleware‐independent functionality from its middleware‐specific functionality. Application elements that are specific to the middleware are localized in aspects that can be seamlessly integrated into middleware‐independent application designs. The middleware‐transparent approach is used to decouple business functionality from middleware‐specific functionality. The decoupling allows developers to change middleware application elements without significantly modifying business functionality. Middleware technologies such as Java Remote Method Invocation (RMI), Jini, Simple Object Access Protocol (SOAP) remote procedure call (RPC) and .Net are used as examples to illustrate the approach. Copyright © 2005 John Wiley & Sons, Ltd.  相似文献   

19.
In recent years, planet exploration has received an increasing interest due to the possibility of exploiting planet resources and assuring a human–robotic colonized presence on suitable planetary surfaces. These goals can be reached through the development of smart robots, which are able to work on their own and without requiring a constant human supervision but, at the same time, assuring a great level of safety and reliability. To this aim, the development of effective architectures, concerning both software and hardware issues, could represent a great improvement toward this ambitious objective. This paper presents a novel modular architecture called Test Bench for Robotics and Autonomy (TBRA), the main objective of which is to create a test bench for rover autonomy missions where different implementations of a particular subsystem can be easily tested, while keeping the rest of the system unchanged. Thus, it allows the developers to be able to compare the results of tests and understand which version works better. Such architecture has been built on top of the Workframe, a generic middleware for real-time robotics. This two-layered approach allows the final user to deal only with the TBRA interface, which is designed to be extremely simple to use and takes care of most real-time programming problems, while allowing flexibility in the development, maintenance and future extension of the TBRA itself.  相似文献   

20.
The author demonstrates the methodology for parallelizing of finding stochastic bounds for Markov chains on multicore and manycore platforms. The stochastic bounds algorithm for Markov chains with the sparse matrices is investigated, thus needing a lot of irregular memory access. Its parallel implementations should scale across multiple threads and characterize with a high performance and performance portability between multicore and manycore platforms. The presented methods are built on the usage of two parallelization extensions of the C++ language: OpenMP and Cilk Plus. For this two extensions, we use two programming models, namely loop parallelism and task-based parallelism. The numerical experiments show the execution time of the implementations and the scalability on multicore and manycore platforms. This work provides the parallel implementations and at the same time presents an educational example of how computer science problems with irregular memory access can be implemented for high performance using OpenMP and Cilk Plus.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号