8136301
Architecture classification for SOA-based applications
The architecture of SOA-based applications is different from traditional software architecture where the architecture is mainly static. The architecture of an SOA-based application is dynamic, i.e., the application may be composed at runtime using existing services. Thus SOA has provided a new direction for software architecture study, where the architecture is determined at runtime and architecture can be dynamically changed at runtime to meet the new software requirements. This paper proposes an architecture classification scheme for SOA-based applications. Using this classification, several well-known SOA-based applications are reviewed including the architectures proposed and adopted by major computer companies and standard organizations. The architecture classification provides a unified way to evaluate a variety of architectures for SOA-based applications
2310959
XKvalidator: a constraint validator for XML
The role of XML in data exchange is evolving from one of merely conveying the structure of data to one that also conveys its semantics. In particular, several proposals for key and foreign key constraints have recently appeared, and aspects of these proposals have been adopted within XMLSchema.In this paper, we examine the problem of checking keys and foreign keys in XML documents using a validator based on SAX. The algorithm relies on an indexing technique based on the paths found in key definitions, and can be used for checking the correctness of an entire document (bulk checking) as well as for checking updates as they are made to the document (incremental checking). The asymptotic performance of the algorithm is linear in the size of the document or update. Furthermore, experimental results demonstrate reasonable performance.
5650965
L-Tree: A Dynamic Labeling Structure for Ordered XML Data
With the ever growing use of XML as a data representation format, we see an increasing need for robust, high performance XML database systems While most of the recent work focuses on efficient XML query processing, XML databases also need to support efficient updates To speed up query processing, various labeling schemes have been proposed However, the vast majority of these schemes have poor update performance In this paper, we introduce a dynamic labeling structure for XML data: L-Tree and its order-preserving labeling scheme with O(log n) amortized update cost and O(log n) bits per label L-Tree has good performance on updates without compromising the performance of query processing We present the update algorithm for L-Tree and analyze its complexity.
1747046
UCSOA: User-Centric Service-Oriented Architecture
This paper introduces a new user-centric service-oriented architecture (UCSOA) that allows end users to compose applications. UCSOA is an extension of consumer-centric service-oriented architecture (CCSOA), which is an extension of conventional SOA. The conventional SOA is producer-centric because service providers publish their services and service consumers must search available services to compose their applications. CCSOA is different as it allows consumers publish their needs including workflows and services, and let producers to produce services to meet the requirements. Based on CCSOA, UCSOA provides support for end users. An application builder is an engineer who has both domain and programming knowledge, while an end user has little knowledge on programming and thus UCSOA needs to allow nontechnical persons to compose their applications. This paper presents the concepts, architecture, enabling techniques, and illustrative examples
5682504
An Efficient XPath Query Processor for XML Streams
Streaming XPath evaluation algorithms must record a potentially exponential number of pattern matches when both predicates and descendant axes are present in queries, and the XML data is recursive. In this paper, we use a compact data structure to encode these pattern matches rather than storing them explicitly. We then propose a polynomial time streaming algorithm to evaluate XPath queries by probing the data structure in a lazy fashion. Extensive experiments show that our approach not only has a good theoretical complexity bound but is also efficient in practice.
5453537
Testability of Software in Service-Oriented Architecture
Service-oriented architecture (SOA) is a system architecture in which a collection of loosely coupled services communicate with each other using standard interfaces and message-exchanging protocols. As an emerging technology in software development, the SOA presents a new paradigm, and it affects the entire software development cycle including analysis, specification, design, implementation, verification, validation, maintenance and evaluation. This paper proposes several testability evaluation criteria for SOA software, which serves as a reference for both service providers and application builders to evaluate the test support to SOA software. The proposed evaluation criteria are illustrated in a stock-trading case study
8090728
The SAHARA Model for Service Composition across Multiple Providers
Services are capabilities that enable applications and are of crucial importance to pervasive computing in next-generation networks. Service Composition is the construction of complex services from primitive ones; thus enabling rapid and flexible creation of new services. The presence of multiple independent service providers poses new and significant challenges. Managing trust across providers and verifying the performance of the components in composition become essential issues. Adapting the composed service to network and user dynamics by choosing service providers and instances is yet another challenge. In SAHARA, we are developing a comprehensive architecture for the creation, placement, and management of services for composition across independent providers. In this paper, we present a layered reference model for composition based on a classification of different kinds of composition. We then discuss the different overarching mechanisms necessary for the successful deployment of such an architecture through a variety of case-studies involving composition.
16186547
Specification-based regression test selection with risk analysis
Regression testing is essential to ensure software quality. The test team applies a regression test suite to ensure that new or modified features do not regress (make worse) existing features. Although existing research has addressed many problems and put forward solutions, most regression test techniques are code-based. Code-based regression test selection is good for unit testing, but it has a scalability problem. When the size of the subject under test grows, it becomes hard to manage all the information and to create corresponding traceability matrices. In this paper, we describe a specification-based method for regression test selection.The basic model we use for describing requirements based on customer features or behaviors is the activity diagram, which is a notation of the Unified Modeling Language (UML). A process for identifying the affected test cases is presented. To summarize our approach, we select two kinds of regression tests: i) Targeted Tests, which ensure that important current customer features are still supported adequately in the new release and ii) Safety Tests, which are risk-directed, and ensure that potential problem areas are properly handled. Our test selection technique will be based on a practical risk analysis model.
43634604
Hamiltonian Kneser Graphs
The Kneser graph K(n,k) has as vertices the k-subsets of {1, 2, ..., n}. Two vertices are adjacent if the corresponding k-subsets are disjoint. It was recently proved by the first author [2] that Kneser graphs have Hamilton cycles for n >= 3k. In this note, we give a short proof for the case when k divides n.
2016418
CHIME: customizable hyperlink insertion and maintenance engine for software engineering environments
Source code browsing is an important part of program comprehension. Browsers expose semantic and syntactic relationships (such as between object references and definitions) in GUI-accessible forms. These relationships are derived using tools which perform static analysis on the original software documents. Implementing such browsers is tricky. Program comprehension strategies vary, and it is necessary to provide the right browsing support. Analysis tools to derive the relevant cross-reference relationships are often difficult to build. Tools to browse distributed documents require extensive coding for the GUI, as well as for data communications. Therefore, there are powerful motivations for using existing static analysis tools in conjunction with WWW technology to implement browsers for distributed software projects. The CHIME framework provides a flexible, customizable platform for inserting HTML links into software documents using information generated by existing software analysis tools. Using the CHIME specification language, and a simple, retargetable database interface, it is possible to quickly incorporate a range of different link insertion tools for software documents, into an existing, legacy software development environment. This enables tool builders to offer customized browsing support with a well-known GUI. This paper describes the CHIME architecture, and describes our experience with several re-targeting efforts of this system.
1773435
Chava: reverse engineering and tracking of Java applets
Java applets have been used increasingly on Web sites to perform client-side processing and provide dynamic content. While many Web site analysis tools are available, their focus has been on static HTML content and most ignore applet code completely. The paper presents Chava, a system that analyzes and tracks changes in Java applets. The tool extracts information from applet code about classes, methods, fields and their relationships into a relational database. Supplementary checksum information in the database is used to detect changes in two versions of a Java applet. Given our Java data model, a suite of programs that query, visualize, and analyze the structural information were generated automatically from CIAO, a retargetable reverse engineering system. Chava is able to process either Java source files or compiled class files, making it possible to analyze remote applets, whose source code is unavailable. The information can be combined with HTML analysis tools to track both the static and dynamic content of many Web sites. The paper presents our data model for Java and describes the implementation of Chava. Advanced reverse engineering tasks such as reachability analysis, clustering, and program differencing can be built on top of Chava to support design recovery and selective regression testing. In particular, we show how Chava is used to compare several Java Development Kit (JDK) versions to help spot changes that might impact Java developers. Performance numbers indicate that the tool scales well.