378,155 research outputs found

    Composing concurrent objects

    Get PDF
    Adopting the object-oriented paradigm for the development of large and complex software systems offers several advantages, of which increased extensibility and reusability are the most prominent ones. The object-oriented model is also quite suitable for modelling concurrent systems. However, it appears that extensibility and reusability of concurrent applications is far from trivial. In addition, very little attention has been paid by the conventional object-oriented development methodologies to the analysis and design of\ud synchronisation constraints for concurrent objects.\ud To address these problems, in this thesis the framework of composition-filters, an extension to the object-oriented model, is adopted. An analysis is presented of the problems involved in reusing and extending concurrent objects, in particular the so-called inheritance anomalies. Based on this analysis, a set of criteria for effective extensible concurrent objectoriented\ud programming languages is formulated.\ud The thesis introduces techniques for the creation of concurrency and the synchronisation of concurrent activities, fully integrated within the (object-oriented) composition-filters model. Important properties of the proposed object model are: all objects are -potentially- active, intra-object concurrency is supported and synchronisation specifications are fully separated\ud from method implementations. The applicability and expressive power of the proposed technique are demonstrated, and it is shown how reusability and extensibility of concurrent objects are achieved

    An Object-Oriented Model for Extensible Concurrent Systems: the Composition-Filters Approach

    Get PDF
    Applying the object-oriented paradigm for the development of large and complex software systems offers several advantages, of which increased extensibility and reusability are the most prominent ones. The object-oriented model is also quite suitable for modeling concurrent systems. However, it appears that extensibility and reusability of concurrent applications is far from trivial. The problems that arise, the so-called inheritance anomalies are analyzed and presented in this paper. A set of requirements for extensible concurrent languages is formulated. As a solution to the identified problems, an extension to the object-oriented model is presented; composition filters. Composition filters capture messages and can express certain constraints and operations on these messages, for example buffering. In this paper we explain the composition filters approach, demonstrate its expressive power through a number of examples and show that composition filters do not suffer from the inheritance anomalies and fulfill the requirements that were established

    Examples of Reusing Synchronization Code in Aspect-Oriented Programming using Composition Filters

    Get PDF
    Applying the object-oriented paradigm for the development of large and complex software systems offers several advantages, of which increased extensibility and reusability are the most prominent ones. The object-oriented model is also quite suitable for modeling concurrent systems. However, it appears that extensibility and reusability of concurrent applications is far from trivial. The problems that arise, the so-called inheritance anomalies or crosscutting aspects have been extensively studied in the literature. As a solution to the synchronization reuse problems, we present the composition-filters approach. Composition filters can express synchronization constraints and operations on objects as modular extensions. In this paper we briefly explain the composition filters approach, demonstrate its expressive power through a number of examples and show that composition filters do not suffer from the inheritance anomalies

    Measuring Qualities for OSGi Component-Based Applications

    Get PDF
    International audienceComponent-based software engineering (CBSE) begins to reach a certain level of maturity. Indeed, for the development of complex applications the use of component paradigm has become common. Therefore, the evaluation of the quality of these applications becomes necessary. In this context, the use of metrics is considered very important. Several metrics specific to component-based applications have been proposed. However, any of these metrics gained the consensus of the CBSE community and mainly there is no proposed tool to support them. As a large part of frameworks for component-based application development is based on object-oriented technology, we propose to use some object-oriented (OO) metrics to evaluate component-based applications produced with this kind of framework. Indeed, these metrics became a standard in OO community. So, they are well-defined, well-known and empirically validated. To identify which object-oriented metrics are useful for the evaluation of component-based applications, we have conducted an experimental study on 10 OSGi applications. This study also gives us the opportunity to discuss on the respect by OSGi developers of some properties pointed out by the literatur

    Knowledge-based simulation using object-oriented programming

    Get PDF
    Simulations have become a powerful mechanism for understanding and modeling complex phenomena. Their results have had substantial impact on a broad range of decisions in the military, government, and industry. Because of this, new techniques are continually being explored and developed to make them even more useful, understandable, extendable, and efficient. One such area of research is the application of the knowledge-based methods of artificial intelligence (AI) to the computer simulation field. The goal of knowledge-based simulation is to facilitate building simulations of greatly increased power and comprehensibility by making use of deeper knowledge about the behavior of the simulated world. One technique for representing and manipulating knowledge that has been enhanced by the AI community is object-oriented programming. Using this technique, the entities of a discrete-event simulation can be viewed as objects in an object-oriented formulation. Knowledge can be factual (i.e., attributes of an entity) or behavioral (i.e., how the entity is to behave in certain circumstances). Rome Laboratory's Advanced Simulation Environment (RASE) was developed as a research vehicle to provide an enhanced simulation development environment for building more intelligent, interactive, flexible, and realistic simulations. This capability will support current and future battle management research and provide a test of the object-oriented paradigm for use in large scale military applications

    From Remote Objects to Physically Distributed Objects

    Get PDF
    Present-day object-oriented middleware provides little support for the distribution, replication and caching of the state of a distributed object. This makes these platforms unsuitable for the development of large-scale distributed applications. We argue that the model of distributed objects on which these middleware platforms are based hinders the addition of comprehensive distribution and replication support to these platforms. We present an alternative view of distributed objects, in which objects are not only in control of the functional aspects of their implementation but also in control of their nonfunctional aspects, in particular, the distribution and replication of their state. We claim that a middleware platform based on this view of distributed objects is better suited for developing the large-scale applications of the future. 1

    Migration from client/server architecture to internet computing architecture

    Get PDF
    The Internet Computing Architecture helps in providing a object-based infrastructure that can be used by the application developers to design, develop, and deploy the ntiered enterprise applications and services. For years of distributed application development, the Internet Computing Architecture has helped in providing various techniques and infrastructure software for the successful deployment of various systems, and established a foundation for the promotion of re-use and component oriented development. Object-oriented analysis is at the beginning of this architecture, which is carried through deploying and managing of finished systems. This architecture is multi-platform, multi-lingual, standards-based, and open that offers unparalleled integration capability. And for the development of mission critical systems in record time it has allowed for the reuse of the infrastructure components. This paper provides a detailed overview of the Internet Computing Architecture and the way it is applied to designing systems which can range from simple two-tier applications to n-tier Web/Object enterprise systems. Even for the best software developers and managers it is very hard to sort through alternative solutions in today\u27s business application development challenges. The problems with the potential solutions were not that complex now that the web has provided the medium for large-scale distributed computing. To implement an infrastructure for the support of applications architecture and to foster the component-oriented development and reuse is an extraordinary challenge. Further, to scale the needs of large enterprises and the Web/Internet the advancement in the multi-tiered middleware software have made the development of object-oriented systems more difficult. The Internet Computing Architecture defines a scaleable architecture, which can provide the necessary software components, which forms the basis of the solid middleware foundation and can address the different application types. For the software development process to be component-oriented the design and development methodologies are interwoven. The biggest advantage of the Internet Computing Architecture is that developers can design object application servers that can simultaneously support two- and three-tier Client/Server and Object/Web applications. This kind of flexibility allows different business objects to be reused by a large number of applications that not only supports a wide range of application architectures but also offers the flexibility in infrastructure for the integration of data sources. The server-based business objects are managed by runtime services with full support for application to be partitioned in a transactional-secure distributed environment. So for the environments that a supports high transaction volumes and a large number of users this offers a high scaleable solution. The integration of the distributed object technology with protocols of the World Wide Web is Internet Computing Architecture. Alternate means of communication between a browser on client machine and server machines are provided by various web protocols such as Hypertext Transfer Protocol and Internet Inter-ORB Protocol [NOP]. Protocols like TCP/IP also provides the addressing protocols and packetoriented transport for the Internet and Intranet communications. The recent advancements in the field of networking and worldwide web technology has promoted a new network-centric computing structure. World Wide Web evolves the global economy infrastructure both on the public and corporate Internet\u27s. The competition is growing between technologies to provide the infrastructure for distributed large-scale applications. These technologies emerge from academia, standard activities and individual vendors. Internet Computing Architecture is a comprehensive, open, Network-based architecture that provides extensibility for the design of distributed environments. Internet Computing Architecture also provides a clear understanding to integrate client/server computing with distributed object architectures and the Internet. This technology also creates the opportunity for a new emerging class of extremely powerful operational, collaboration, decision support, and e-commerce solutions which will catalyze the growth of a new networked economy based on intrabusiness, business -to-business (B2B) and business-to-consumer (B2C) electronic transactions. These network solutions would be able to incorporate legacy mainframe systems, emerging applications as well as existing client/server environment, where still most of the world\u27s mission-critical applications run. Internet Computing Architecture is the industry\u27s only cross-platform infrastructure to develop and deploy network-centric, object-based, end-to-end applications across the network. Open and de facto standards are at the core of the Internet computing architecture such as: Hyper Text Transfer Protocol (HTTP)/ Hyper Text Markup Language (HTML)/ Extensible Markup Language (XML) and Common Object Request Broker Architecture (CORBA). It has recognition, as the industry\u27s most advanced and practical technology solution for the implementation of a distributed object environment, including Interface Definition Language (IDL) for languageneutral interfaces and Internet Inter Operability (MOP) for object interoperability. Programming languages such as JAVA provides programmable, extensible and portable solutions throughout the Internet Computing Architecture. Internet Computing Architecture not only provides support, but also enhances ActiveX/Component Object Model (COM) clients through open COM/CORBA interoperability specifications. For distributed object-programming Java has also emerged as the de facto standard within the Internet/Intranet arena, making Java ideally suited to the distributed object nature of the Internet Computing Architecture. The portability that it offers across multi-tiers and platforms support open standards and makes it an excellent choice for cartridge development across all tiers

    OpenVX-Based Python Framework for Real-time Cross-Platform Acceleration of Embedded Computer Vision Applications

    Get PDF
    Embedded real-time vision applications are being rapidly deployed in a large realm of consumer electronics, ranging from automotive safety to surveillance systems. However, the relatively limited computational power of embedded platforms is considered as a bottleneck for many vision applications, necessitating optimization. OpenVX is a standardized interface, released in late 2014, in an attempt to provide both system and kernel level optimization to vision applications. With OpenVX, Vision processing are modeled with coarse-grained data flow graphs, which can be optimized and accelerated by the platform implementer. Current full implementations of OpenVX are given in the programming language C, which does not support advanced programming paradigms such as object-oriented, imperative and functional programming, nor does it have runtime or type-checking. Here we present a python-based full Implementation of OpenVX, which eliminates much of the discrepancies between the object-oriented paradigm used by many modern applications and the native C implementations. Our open-source implementation can be used for rapid development of OpenVX applications in embedded platforms. Demonstration includes static and real-time image acquisition and processing using a Raspberry Pi and a GoPro camera. Code is given as supplementary information. Code project and linked deployable virtual machine are located on GitHub: https://github.com/NBEL-lab/PythonOpenVX

    Measuring Qualities for OSGi Component-Based Applications

    Get PDF
    International audienceComponent-based software engineering (CBSE) begins to reach a certain level of maturity. Indeed, for the development of complex applications the use of component paradigm has become common. Therefore, the evaluation of the quality of these applications becomes necessary. In this context, the use of metrics is considered very important. Several metrics specific to component-based applications have been proposed. However, any of these metrics gained the consensus of the CBSE community and mainly there is no proposed tool to support them. As a large part of frameworks for component-based application development is based on object-oriented technology, we propose to use some object-oriented (OO) metrics to evaluate component-based applications produced with this kind of framework. Indeed, these metrics became a standard in OO community. So, they are well-defined, well-known and empirically validated. To identify which object-oriented metrics are useful for the evaluation of component-based applications, we have conducted an experimental study on 10 OSGi applications. This study also gives us the opportunity to discuss on the respect by OSGi developers of some properties pointed out by the literatur

    An object-oriented component-based approach to building real-time software systems

    Get PDF
    A project report submitted to the Faculty of Erlglncerlng, University of Witwatersrand, Johannesburg, In partial fulfilment of the requirements for the degree of Master of Science In Engineering Johannesburg 1993This Project Repolt r ''"lorts on the study of an approach to building integrated real-time software systems based on re-usable object-oriented components. The basis of the approach is the development of a a-layered structure of components, where each layer is built on the underlying layer of components, The lower layer of components consists of generic re-usable building blocks that may be re-used for building and integrating other real-time applications. The middle layer consists of components that are generic to the application domain, and the top layer consists of components that are specific to each application of that application domain. The Report includes researching and developing methods of communicating between these building blocks using an OSI/CMIP-conformant 'software highway" and in this regard particular attention is given to the formal and de facto industry standards. With this approach, it is argued that the application engineer can effectively build new applications using the re-usable components. This is demonstrated by reporting on the implementation of a large real-world Telecommunications Network Management application. The Project Report contains a critical analysis of the technical, organisational and project management issues of this Object-oriented component approach as compared to the traditional development approach. The Report concludes that despite certain technical and organisational concerns, the object-oriented approach does indeed yield several worthwhile benefits for developing real-time software systems. These benefits include genuine re-usability, and l"1proved productivity, testability and maintainability
    • …
    corecore