The Service Component Definition Language (SCDL) and the Web Service Business Process Execution Language (WS-BPEL) are the standards de-facto used in the modeling and implementing of ServiceComponent Architecture (SCA). However, these powerful languages lack a formal foundation for the specification and verification of the SCA properties. In this study, the use of Wright formal ADL and Ada programming language was proposed to check the behavioral properties of SCDL/WS-BPEL ServiceComponent architectures. To achieve this, the mapping of SCDL/WS-BPEL to the Wright formal ADL was suggested in order to verify the standard behavioral consistency of the source description. As a second step, the target specification could be transformed into Ada to check the specific and dynamic behavioral properties of the SCDL/WS-BPEL source architecture.
CS266 Software Reverse Engineering (SRE)
Reengineering and Reuse of Legacy Software
Teodoro (Ted) Cipresso, teodoro.cipresso@sjsu.edu
Department of Computer Science
San José State University
Spring 2015
James Ervin Glover has conducted research in several areas including:
1) Developing statistical methods and algorithms for analyzing individual differences in head-related transfer functions which measure how sound is localized.
2) Performing statistical quality control research on particulate emissions.
3) Converting engineering programs between computing platforms and environments like the Cray supercomputer and workstations.
4) Developing routines to convert data between binary formats used by different computing systems to facilitate analysis.
International Journal of Computational Engineering Research(IJCER)ijceronline
International Journal of Computational Engineering Research(IJCER) is an intentional online Journal in English monthly publishing journal. This Journal publish original research work that contributes significantly to further the scientific knowledge in engineering and Technology.
The document provides an overview of functional programming in JavaScript. It discusses key functional programming concepts like pure functions, referential transparency, and higher-order functions. It also covers functional techniques like mapping, filtering, reducing, and recursion that are commonly used in functional programming. The document uses examples with Lodash functions to demonstrate how these concepts and techniques can be implemented in JavaScript.
Overlapping optimization with parsing through metagrammarsIAEME Publication
This document describes techniques for improving the performance of a meta framework developed by combining C++ and Java language segments. The meta framework identifies and parses source code containing C++ and Java statements using a metagrammar. Bytecodes are generated from the abstract syntax tree and optimized using techniques associated with the metagrammar, such as constant propagation. Constant propagation identifies constant values and replaces variables with those values to simplify expressions and reduce unnecessary computations. Other optimizations discussed include function inlining, exception handling, and eliminating unreachable code through constant folding. The goal is to develop an optimized meta framework that generates efficient bytecodes for hybrid C++ and Java source code.
The document describes an extended method for synthesizing distributed protocol specifications from UML-based service specifications that include timing constraints. The method first assigns timing intervals to transitions in the service specification. It then extends an existing UML-based protocol synthesis technique to consider channel delays between communicating protocol entities when deriving transition events and timing constraints. The resulting synthesized protocol specifications are guaranteed to conform to the timing constraints of the original service specification.
Synthesizing specifications for real time applications that involve distributed communication protocol
entities from a service specification, which is modeled in the UML state machine with composite states, is a
time-consuming and labor-intensive task. Existing synthesis techniques for UML-based service
specifications do not account for timing constrains and, therefore, cannot be used in real time applications
for which the timing constraints are crucial and must be considered. In this paper, we address the problem
of time assignment to the events defined in the service specification modeled in UML state machine. In
addition, we show how to extend a technique that automatically synthesizes UML-based protocol
specifications from a service specification to consider the timing constraints given in the service
specification. The resulting synthesized protocol is guaranteed to conform to the timing constraints given in
the service specification.
This document discusses formalizing BPEL-TC (Business Process Execution Language - Temporal Customization) through π-calculus. BPEL-TC is an extension of BPEL and WSDL-TC that handles process decomposition, assembly and temporally customized web services. The document provides background on related work using process algebra to formalize BPEL. It then describes the BPEL-TC approach and key activities like receive, reply and invoke. Finally, it explains how π-calculus can be used to formally represent BPEL-TC processes and their changing connectivity.
CS266 Software Reverse Engineering (SRE)
Reengineering and Reuse of Legacy Software
Teodoro (Ted) Cipresso, teodoro.cipresso@sjsu.edu
Department of Computer Science
San José State University
Spring 2015
James Ervin Glover has conducted research in several areas including:
1) Developing statistical methods and algorithms for analyzing individual differences in head-related transfer functions which measure how sound is localized.
2) Performing statistical quality control research on particulate emissions.
3) Converting engineering programs between computing platforms and environments like the Cray supercomputer and workstations.
4) Developing routines to convert data between binary formats used by different computing systems to facilitate analysis.
International Journal of Computational Engineering Research(IJCER)ijceronline
International Journal of Computational Engineering Research(IJCER) is an intentional online Journal in English monthly publishing journal. This Journal publish original research work that contributes significantly to further the scientific knowledge in engineering and Technology.
The document provides an overview of functional programming in JavaScript. It discusses key functional programming concepts like pure functions, referential transparency, and higher-order functions. It also covers functional techniques like mapping, filtering, reducing, and recursion that are commonly used in functional programming. The document uses examples with Lodash functions to demonstrate how these concepts and techniques can be implemented in JavaScript.
Overlapping optimization with parsing through metagrammarsIAEME Publication
This document describes techniques for improving the performance of a meta framework developed by combining C++ and Java language segments. The meta framework identifies and parses source code containing C++ and Java statements using a metagrammar. Bytecodes are generated from the abstract syntax tree and optimized using techniques associated with the metagrammar, such as constant propagation. Constant propagation identifies constant values and replaces variables with those values to simplify expressions and reduce unnecessary computations. Other optimizations discussed include function inlining, exception handling, and eliminating unreachable code through constant folding. The goal is to develop an optimized meta framework that generates efficient bytecodes for hybrid C++ and Java source code.
The document describes an extended method for synthesizing distributed protocol specifications from UML-based service specifications that include timing constraints. The method first assigns timing intervals to transitions in the service specification. It then extends an existing UML-based protocol synthesis technique to consider channel delays between communicating protocol entities when deriving transition events and timing constraints. The resulting synthesized protocol specifications are guaranteed to conform to the timing constraints of the original service specification.
Synthesizing specifications for real time applications that involve distributed communication protocol
entities from a service specification, which is modeled in the UML state machine with composite states, is a
time-consuming and labor-intensive task. Existing synthesis techniques for UML-based service
specifications do not account for timing constrains and, therefore, cannot be used in real time applications
for which the timing constraints are crucial and must be considered. In this paper, we address the problem
of time assignment to the events defined in the service specification modeled in UML state machine. In
addition, we show how to extend a technique that automatically synthesizes UML-based protocol
specifications from a service specification to consider the timing constraints given in the service
specification. The resulting synthesized protocol is guaranteed to conform to the timing constraints given in
the service specification.
This document discusses formalizing BPEL-TC (Business Process Execution Language - Temporal Customization) through π-calculus. BPEL-TC is an extension of BPEL and WSDL-TC that handles process decomposition, assembly and temporally customized web services. The document provides background on related work using process algebra to formalize BPEL. It then describes the BPEL-TC approach and key activities like receive, reply and invoke. Finally, it explains how π-calculus can be used to formally represent BPEL-TC processes and their changing connectivity.
An Approach To Enable Replacement Of SOAP Services And REST Services In Light...Joaquin Hamad
This document presents an approach to enable the dynamic replacement of SOAP services with REST services and vice versa within lightweight processes at runtime. Semantic annotations using MicroWSMO are added to REST service descriptions to establish compatibility with SAWSDL descriptions of SOAP services. At runtime, if a SOAP service fails, the execution engine can select a semantically equivalent REST service using the annotations and adapt the request/response through a service adapter using mapping scripts. The approach was implemented in a prototype to execute lightweight processes containing alternative SOAP and REST services.
The document discusses complex event processing (CEP) and its use of Oracle Continuous Query Language (CQL) to process streaming data. CEP can process hundreds of thousands of events per second and detect patterns. CQL extends SQL to enable developers to query streaming data. The document provides examples of how CEP can be used in applications like monitoring financial transactions and algorithmic stock trading. It demonstrates the use of CQL concepts like streams, relations, operators and patterns to implement solutions.
Synthesizing specifications for real time applications that involve distributed communication protocol
entities from a service specification, which is modeled in the UML state machine with composite states, is a
time-consuming and labor-intensive task. Existing synthesis techniques for UML-based service
specifications do not account for timing constrains and, therefore, cannot be used in real time applications
for which the timing constraints are crucial and must be considered. In this paper, we address the problem
of time assignment to the events defined in the service specification modeled in UML state machine. In
addition, we show how to extend a technique that automatically synthesizes UML-based protocol
specifications from a service specification to consider the timing constraints given in the service
specification. The resulting synthesized protocol is guaranteed to conform to the timing constraints given in
the service specification.
Application Parameter Description Scheme For Multiple Job Generation In Probl...James Heller
The document proposes an Application Parameter Description Language (APDL) and Parametric Study Service (PSS) to provide flexible parameter studies on scientific simulations run on grids. The APDL extends the Job Submission Description Language (JSDL) to generate multiple job descriptions with varying parameters from a single input. The PSS converts APDL job descriptions into the format required by different grid middleware platforms and submits the jobs. It was applied to an aerospace research environment for turbulent fluid analysis.
Performance Evaluation of Web Services In Linux On MulticoreCSCJournals
Contemporary Business requires the ability to seamlessly exchange information between internal
business units, customers, and partner, is vital for success. Most organizations employ a variety of
different applications to store and exchange data in dissimilar way and therefore cannot “communicate” to
one another productively [1]. Service Oriented Architecture (SOA) components provide services to other
components via communication protocols typically over a network [2].The technologies like DCOM, RMI,
COBRA, Web Services etc. are developed using SOA, which contributed best to fulfill requirements to
some extent, but components result from these technologies are mostly either language specific or
platform specific,[3]. The services or components developed for one platform may not be able to
communicate and reusable in other platform, as they are mostly language specific or platform specific.
“World Wide Web Consortium (W3C) International community to develop web standards” issued WS-*
specifications for programming language vendors for Web services, which confirms a standard means of
interoperating between different software applications running on a variety of platforms or frameworks
[4][5]. This paper tests web services performance gain along with interoperability, reusability by using
“NAS Parallel Benchmarks (NPB)” set of program [6] developed by NASA Advanced Supercomputing
Division to evaluate the performance of supercomputers.
ABC Architecture A New Approach To Build Reusable And Adaptable Business Tie...Joshua Gorinson
1) The document proposes a new ABC Architecture for building reusable and adaptable business tier components based on static business interfaces.
2) The architecture uses Call Level Interfaces as a low-level API to communicate with databases, and implements type-safe interfaces to communicate with client applications based on SQL statement schemas.
3) ABC components can dynamically accept, remove, and update SQL statements at runtime from authorized entities, and execute the statements on behalf of client applications through the interfaces.
Comparative Study of Orchestration using gRPC API and REST API in Server Crea...IJCNCJournal
Cloud computing is the quick, simple, and economical distribution of computing services. To offer quality services in cloud infrastructure, the NFV Management and Orchestration (MANO) function is a critical task for managing both infrastructure resources and network functions. Since the demand for cloud services is rapidly increasing, cloud service providers are constantly trying to reduce operational costs. Hence the elements of MANO functions have gained critical importance in cloud infrastructure. To use MANO efficiently, there are hypervisors (OpenStack) that act as a middle layer between hardware and software that are used to provide Infrastructure-as-a-Service solutions through a set of interrelated services. These services are managed by an application programming interface (API). The existing orchestration method uses Representational state transfer (REST) API for communicating with core components of a hypervisor. These API have been integral part of creating and deploying a server. To improve the performance, this paper proposes a novel approach for orchestration based on the open-source remote procedure call framework, known as gRPC. To analyse the proposed solution, both REST and gRPC-based orchestration methods are implemented for creating and launching servers using OpenStack cloud computing platform. The server creation time is obtained for different scenarios and SFC use cases. The results show that by using gRPC, the performance in terms of server creation time of an orchestration is improved by up to 27% compared to the traditional REST-based orchestration.
Comparative Study of Orchestration using gRPC API and REST API in Server Crea...IJCNCJournal
Cloud computing is the quick, simple, and economical distribution of computing services. To offer quality services in cloud infrastructure, the NFV Management and Orchestration (MANO) function is a critical task for managing both infrastructure resources and network functions. Since the demand for cloud services is rapidly increasing, cloud service providers are constantly trying to reduce operational costs. Hence the elements of MANO functions have gained critical importance in cloud infrastructure. To use MANO efficiently, there are hypervisors (OpenStack) that act as a middle layer between hardware and software that are used to provide Infrastructure-as-a-Service solutions through a set of interrelated services. These services are managed by an application programming interface (API). The existing orchestration method uses Representational state transfer (REST) API for communicating with core components of a hypervisor. These API have been integral part of creating and deploying a server. To improve the performance, this paper proposes a novel approach for orchestration based on the open-source remote procedure call framework, known as gRPC. To analyse the proposed solution, both REST and gRPC-based orchestration methods are implemented for creating and launching servers using OpenStack cloud computing platform. The server creation time is obtained for different scenarios and SFC use cases. The results show that by using gRPC, the performance in terms of server creation time of an orchestration is improved by up to 27% compared to the traditional REST-based orchestration.
ENHANCING AND MEASURING THE PERFORMANCE IN SOFTWARE DEFINED NETWORKINGIJCNCJournal
Software Defined Networking (SDN) is a challenging chapter in today’s networking era. It is a network design approach that engages the framework to be controlled or 'altered' adroitly and halfway using programming applications. SDN is a serious advancement that assures to provide a better strategy than displaying the Quality of Service (QoS) approach in the present correspondence frameworks. SDN etymologically changes the lead and convenience of system instruments using the single high state program. It separates the system control and sending functions, empowering the network control to end up specifically. It provides more functionality and more flexibility than the traditional networks. A network administrator can easily shape the traffic without touching any individual switches and services which are needed in a network. The main technology for implementing SDN is a separation of data plane and control plane, network virtualization through programmability. The total amount of time in which user can respond is called response time. Throughput is known as how fast a network can send data. In this paper, we have design a network through which we have measured the Response Time and Throughput comparing with the Real-time Online Interactive Applications (ROIA), Multiple Packet Scheduler, and NOX.
EXTENDING WS-CDL TO SUPPORT REUSABILITYijwscjournal
WS-CDL is a very rich language that is specially designed to describe choreography of services. However it is very poor to adopt reusability mechanisms for making the choreography easy to design and confident to use. The main challenge is that there is no mechanism to make a reusable sub choreography which is able to expose an interface. Therefore, it is impossible to inject variables like exception variables from performing choreography into performed sub choreography.
In this paper, a complex element namely Template is added to WS-CDL making it more adequate to support reusability. A template is an abstract definition of an interaction pattern which is appeared frequently through a family of business services choreographies. The paper is also details how to use the template as black box in main choreography including assigning the variables to template interface parameters. We enhanced meta model of WS-CDL by adding template related elements, then produced a simple engine that loads the our enhanced meta model of WS-CDL, the file paths of main and template choreographies and automatically generate an output file includes a compiled choreography code expressed with standard WS-CDL.
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
This document discusses extending the WS-CDL (Web Service Choreography Description Language) specification to better support reusability of choreographies. The authors propose adding a new "Template" element to WS-CDL that would allow abstract choreographies to be defined independently and then reused by mapping their interfaces to specific instances in other choreographies. Currently, WS-CDL's "Perform" activity does not support parameterizing or injecting variables into performed sub-choreographies, limiting its reusability. The Template element is intended to address this by allowing abstract choreographies defined in templates to expose parameterized interfaces that can be customized when reused.
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
WS-CDL is a very rich language that is specially designed to describe choreography of services. However it is very poor to adopt reusability mechanisms for making the choreography easy to design and confident to use. The main challenge is that there is no mechanism to make a reusable sub choreography which is able to expose an interface. Therefore, it is impossible to inject variables like exception variables from performing choreography into performed sub choreography.
In this paper, a complex element namely Template is added to WS-CDL making it more adequate to support reusability. A template is an abstract definition of an interaction pattern which is appeared frequently through a family of business services choreographies. The paper is also details how to use the template as black box in main choreography including assigning the variables to template interface parameters. We enhanced meta model of WS-CDL by adding template related elements, then produced a simple engine that loads the our enhanced meta model of WS-CDL, the file paths of main and template choreographies and automatically generate an output file includes a compiled choreography code expressed with standard WS-CDL.
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
WS-CDL is a very rich language that is specially designed to describe choreography of services.
However it is very poor to adopt reusability mechanisms for making the choreography easy to design and
confident to use. The main challenge is that there is no mechanism to make a reusable sub choreography
which is able to expose an interface. Therefore, it is impossible to inject variables like exception variables
from performing choreography into performed sub choreography.
In this paper, a complex element namely Template is added to WS-CDL making it more adequate to
support reusability. A template is an abstract definition of an interaction pattern which is appeared
frequently through a family of business services choreographies. The paper is also details how to use the
template as black box in main choreography including assigning the variables to template interface
parameters. We enhanced meta model of WS-CDL by adding template related elements, then produced a
simple engine that loads the our enhanced meta model of WS-CDL, the file paths of main and template
choreographies and automatically generate an output file includes a compiled choreography code
expressed with standard WS-CDL.
The document provides an overview of web services, including their key features, architecture, and core technologies. It discusses how web services use standards like XML, SOAP, WSDL, and UDDI to allow software components to communicate over the internet in a manner that is self-contained, self-describing, and platform-independent. WSDL files describe web service operations and messages using an XML format, while SOAP is the messaging protocol used to make remote procedure calls between clients and services.
This document describes SWORD, a toolkit for composing web services. SWORD represents each service as a rule specifying its inputs and outputs. When a user wants to create a composite service, SWORD uses a rule engine to determine if it can be realized by composing existing services. If so, SWORD generates a composition plan specifying the sequence of services to invoke. SWORD has been implemented in a prototype and can compose information-providing services like those providing data about people, movies, etc. without requiring emerging standards like WSDL or SOAP.
This document provides an overview of RESTful web services and how to implement them using JAX-WS. Some key points:
- REST (REpresentational State Transfer) is an architectural style that embraces a stateless, client-server architecture where web services are viewed as resources and identified by URLs.
- Common HTTP methods like GET, POST, PUT, DELETE map to CRUD operations on resources.
- JAX-WS supports building RESTful web services through the Provider interface, which can receive and return entire protocol messages or just payloads.
- A sample RESTful web service implementation shows mapping HTTP methods to business logic methods for a purchase order service.
- Best practices include mapping
Introduction to business process execution languagesuranisaunak
This document provides an introduction to Business Process Execution Language (BPEL). It discusses what BPM and SOA are and how BPEL fits into these approaches. BPEL allows processes to be defined using XML that can integrate multiple web services. Key components of BPEL include activities to receive, assign, invoke and reply to messages. The document also summarizes Oracle BPEL Process Manager, a tool for developing, deploying and managing BPEL processes.
This document discusses semantic mapping as a way to improve information retrieval on the semantic web. It proposes a two-step semantic mapping algorithm to map web service description language (WSDL) files to web ontology language for services (OWL-S) files. The algorithm loads WSDL files, converts them to OWL-S using a WSDL translator, and generates OWL-S output files. Message parts of WSDL are mapped to grounding in OWL-S, and operation parts are mapped to service profile information. The algorithm aims to redefine conventional web resources semantically in an efficient and automated way. Classification could further improve the approach by standardizing the mapped web services.
The document discusses frameworks and patterns for reusable software architectures in C++ network programming. It provides an overview of product line architectures and how frameworks can be used to support concurrent and networked applications. The document outlines some key frameworks in ACE (Adaptive Communication Environment) and how they embody commonality and variability. It also discusses design patterns used in a networked logging service example.
The document describes the architecture for building a JAX-WS web service that calculates order subtotals using JBoss Drools and Apache jUDDI integration. The proposed solution includes major components like a business rule engine (BRE) to house rules for calculations, a service registry for discovery, and connectors. The requirements involve calculating order subtotals based on items, taxes, discounts, and shipping. The architecture is designed around loose coupling, with interfaces, canonical definitions, and externalization of business rules and data formats.
An Approach To Enable Replacement Of SOAP Services And REST Services In Light...Joaquin Hamad
This document presents an approach to enable the dynamic replacement of SOAP services with REST services and vice versa within lightweight processes at runtime. Semantic annotations using MicroWSMO are added to REST service descriptions to establish compatibility with SAWSDL descriptions of SOAP services. At runtime, if a SOAP service fails, the execution engine can select a semantically equivalent REST service using the annotations and adapt the request/response through a service adapter using mapping scripts. The approach was implemented in a prototype to execute lightweight processes containing alternative SOAP and REST services.
The document discusses complex event processing (CEP) and its use of Oracle Continuous Query Language (CQL) to process streaming data. CEP can process hundreds of thousands of events per second and detect patterns. CQL extends SQL to enable developers to query streaming data. The document provides examples of how CEP can be used in applications like monitoring financial transactions and algorithmic stock trading. It demonstrates the use of CQL concepts like streams, relations, operators and patterns to implement solutions.
Synthesizing specifications for real time applications that involve distributed communication protocol
entities from a service specification, which is modeled in the UML state machine with composite states, is a
time-consuming and labor-intensive task. Existing synthesis techniques for UML-based service
specifications do not account for timing constrains and, therefore, cannot be used in real time applications
for which the timing constraints are crucial and must be considered. In this paper, we address the problem
of time assignment to the events defined in the service specification modeled in UML state machine. In
addition, we show how to extend a technique that automatically synthesizes UML-based protocol
specifications from a service specification to consider the timing constraints given in the service
specification. The resulting synthesized protocol is guaranteed to conform to the timing constraints given in
the service specification.
Application Parameter Description Scheme For Multiple Job Generation In Probl...James Heller
The document proposes an Application Parameter Description Language (APDL) and Parametric Study Service (PSS) to provide flexible parameter studies on scientific simulations run on grids. The APDL extends the Job Submission Description Language (JSDL) to generate multiple job descriptions with varying parameters from a single input. The PSS converts APDL job descriptions into the format required by different grid middleware platforms and submits the jobs. It was applied to an aerospace research environment for turbulent fluid analysis.
Performance Evaluation of Web Services In Linux On MulticoreCSCJournals
Contemporary Business requires the ability to seamlessly exchange information between internal
business units, customers, and partner, is vital for success. Most organizations employ a variety of
different applications to store and exchange data in dissimilar way and therefore cannot “communicate” to
one another productively [1]. Service Oriented Architecture (SOA) components provide services to other
components via communication protocols typically over a network [2].The technologies like DCOM, RMI,
COBRA, Web Services etc. are developed using SOA, which contributed best to fulfill requirements to
some extent, but components result from these technologies are mostly either language specific or
platform specific,[3]. The services or components developed for one platform may not be able to
communicate and reusable in other platform, as they are mostly language specific or platform specific.
“World Wide Web Consortium (W3C) International community to develop web standards” issued WS-*
specifications for programming language vendors for Web services, which confirms a standard means of
interoperating between different software applications running on a variety of platforms or frameworks
[4][5]. This paper tests web services performance gain along with interoperability, reusability by using
“NAS Parallel Benchmarks (NPB)” set of program [6] developed by NASA Advanced Supercomputing
Division to evaluate the performance of supercomputers.
ABC Architecture A New Approach To Build Reusable And Adaptable Business Tie...Joshua Gorinson
1) The document proposes a new ABC Architecture for building reusable and adaptable business tier components based on static business interfaces.
2) The architecture uses Call Level Interfaces as a low-level API to communicate with databases, and implements type-safe interfaces to communicate with client applications based on SQL statement schemas.
3) ABC components can dynamically accept, remove, and update SQL statements at runtime from authorized entities, and execute the statements on behalf of client applications through the interfaces.
Comparative Study of Orchestration using gRPC API and REST API in Server Crea...IJCNCJournal
Cloud computing is the quick, simple, and economical distribution of computing services. To offer quality services in cloud infrastructure, the NFV Management and Orchestration (MANO) function is a critical task for managing both infrastructure resources and network functions. Since the demand for cloud services is rapidly increasing, cloud service providers are constantly trying to reduce operational costs. Hence the elements of MANO functions have gained critical importance in cloud infrastructure. To use MANO efficiently, there are hypervisors (OpenStack) that act as a middle layer between hardware and software that are used to provide Infrastructure-as-a-Service solutions through a set of interrelated services. These services are managed by an application programming interface (API). The existing orchestration method uses Representational state transfer (REST) API for communicating with core components of a hypervisor. These API have been integral part of creating and deploying a server. To improve the performance, this paper proposes a novel approach for orchestration based on the open-source remote procedure call framework, known as gRPC. To analyse the proposed solution, both REST and gRPC-based orchestration methods are implemented for creating and launching servers using OpenStack cloud computing platform. The server creation time is obtained for different scenarios and SFC use cases. The results show that by using gRPC, the performance in terms of server creation time of an orchestration is improved by up to 27% compared to the traditional REST-based orchestration.
Comparative Study of Orchestration using gRPC API and REST API in Server Crea...IJCNCJournal
Cloud computing is the quick, simple, and economical distribution of computing services. To offer quality services in cloud infrastructure, the NFV Management and Orchestration (MANO) function is a critical task for managing both infrastructure resources and network functions. Since the demand for cloud services is rapidly increasing, cloud service providers are constantly trying to reduce operational costs. Hence the elements of MANO functions have gained critical importance in cloud infrastructure. To use MANO efficiently, there are hypervisors (OpenStack) that act as a middle layer between hardware and software that are used to provide Infrastructure-as-a-Service solutions through a set of interrelated services. These services are managed by an application programming interface (API). The existing orchestration method uses Representational state transfer (REST) API for communicating with core components of a hypervisor. These API have been integral part of creating and deploying a server. To improve the performance, this paper proposes a novel approach for orchestration based on the open-source remote procedure call framework, known as gRPC. To analyse the proposed solution, both REST and gRPC-based orchestration methods are implemented for creating and launching servers using OpenStack cloud computing platform. The server creation time is obtained for different scenarios and SFC use cases. The results show that by using gRPC, the performance in terms of server creation time of an orchestration is improved by up to 27% compared to the traditional REST-based orchestration.
ENHANCING AND MEASURING THE PERFORMANCE IN SOFTWARE DEFINED NETWORKINGIJCNCJournal
Software Defined Networking (SDN) is a challenging chapter in today’s networking era. It is a network design approach that engages the framework to be controlled or 'altered' adroitly and halfway using programming applications. SDN is a serious advancement that assures to provide a better strategy than displaying the Quality of Service (QoS) approach in the present correspondence frameworks. SDN etymologically changes the lead and convenience of system instruments using the single high state program. It separates the system control and sending functions, empowering the network control to end up specifically. It provides more functionality and more flexibility than the traditional networks. A network administrator can easily shape the traffic without touching any individual switches and services which are needed in a network. The main technology for implementing SDN is a separation of data plane and control plane, network virtualization through programmability. The total amount of time in which user can respond is called response time. Throughput is known as how fast a network can send data. In this paper, we have design a network through which we have measured the Response Time and Throughput comparing with the Real-time Online Interactive Applications (ROIA), Multiple Packet Scheduler, and NOX.
EXTENDING WS-CDL TO SUPPORT REUSABILITYijwscjournal
WS-CDL is a very rich language that is specially designed to describe choreography of services. However it is very poor to adopt reusability mechanisms for making the choreography easy to design and confident to use. The main challenge is that there is no mechanism to make a reusable sub choreography which is able to expose an interface. Therefore, it is impossible to inject variables like exception variables from performing choreography into performed sub choreography.
In this paper, a complex element namely Template is added to WS-CDL making it more adequate to support reusability. A template is an abstract definition of an interaction pattern which is appeared frequently through a family of business services choreographies. The paper is also details how to use the template as black box in main choreography including assigning the variables to template interface parameters. We enhanced meta model of WS-CDL by adding template related elements, then produced a simple engine that loads the our enhanced meta model of WS-CDL, the file paths of main and template choreographies and automatically generate an output file includes a compiled choreography code expressed with standard WS-CDL.
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
This document discusses extending the WS-CDL (Web Service Choreography Description Language) specification to better support reusability of choreographies. The authors propose adding a new "Template" element to WS-CDL that would allow abstract choreographies to be defined independently and then reused by mapping their interfaces to specific instances in other choreographies. Currently, WS-CDL's "Perform" activity does not support parameterizing or injecting variables into performed sub-choreographies, limiting its reusability. The Template element is intended to address this by allowing abstract choreographies defined in templates to expose parameterized interfaces that can be customized when reused.
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
WS-CDL is a very rich language that is specially designed to describe choreography of services. However it is very poor to adopt reusability mechanisms for making the choreography easy to design and confident to use. The main challenge is that there is no mechanism to make a reusable sub choreography which is able to expose an interface. Therefore, it is impossible to inject variables like exception variables from performing choreography into performed sub choreography.
In this paper, a complex element namely Template is added to WS-CDL making it more adequate to support reusability. A template is an abstract definition of an interaction pattern which is appeared frequently through a family of business services choreographies. The paper is also details how to use the template as black box in main choreography including assigning the variables to template interface parameters. We enhanced meta model of WS-CDL by adding template related elements, then produced a simple engine that loads the our enhanced meta model of WS-CDL, the file paths of main and template choreographies and automatically generate an output file includes a compiled choreography code expressed with standard WS-CDL.
EXTENDING WS-CDL TO SUPPORT REUSABILITY ijwscjournal
WS-CDL is a very rich language that is specially designed to describe choreography of services.
However it is very poor to adopt reusability mechanisms for making the choreography easy to design and
confident to use. The main challenge is that there is no mechanism to make a reusable sub choreography
which is able to expose an interface. Therefore, it is impossible to inject variables like exception variables
from performing choreography into performed sub choreography.
In this paper, a complex element namely Template is added to WS-CDL making it more adequate to
support reusability. A template is an abstract definition of an interaction pattern which is appeared
frequently through a family of business services choreographies. The paper is also details how to use the
template as black box in main choreography including assigning the variables to template interface
parameters. We enhanced meta model of WS-CDL by adding template related elements, then produced a
simple engine that loads the our enhanced meta model of WS-CDL, the file paths of main and template
choreographies and automatically generate an output file includes a compiled choreography code
expressed with standard WS-CDL.
The document provides an overview of web services, including their key features, architecture, and core technologies. It discusses how web services use standards like XML, SOAP, WSDL, and UDDI to allow software components to communicate over the internet in a manner that is self-contained, self-describing, and platform-independent. WSDL files describe web service operations and messages using an XML format, while SOAP is the messaging protocol used to make remote procedure calls between clients and services.
This document describes SWORD, a toolkit for composing web services. SWORD represents each service as a rule specifying its inputs and outputs. When a user wants to create a composite service, SWORD uses a rule engine to determine if it can be realized by composing existing services. If so, SWORD generates a composition plan specifying the sequence of services to invoke. SWORD has been implemented in a prototype and can compose information-providing services like those providing data about people, movies, etc. without requiring emerging standards like WSDL or SOAP.
This document provides an overview of RESTful web services and how to implement them using JAX-WS. Some key points:
- REST (REpresentational State Transfer) is an architectural style that embraces a stateless, client-server architecture where web services are viewed as resources and identified by URLs.
- Common HTTP methods like GET, POST, PUT, DELETE map to CRUD operations on resources.
- JAX-WS supports building RESTful web services through the Provider interface, which can receive and return entire protocol messages or just payloads.
- A sample RESTful web service implementation shows mapping HTTP methods to business logic methods for a purchase order service.
- Best practices include mapping
Introduction to business process execution languagesuranisaunak
This document provides an introduction to Business Process Execution Language (BPEL). It discusses what BPM and SOA are and how BPEL fits into these approaches. BPEL allows processes to be defined using XML that can integrate multiple web services. Key components of BPEL include activities to receive, assign, invoke and reply to messages. The document also summarizes Oracle BPEL Process Manager, a tool for developing, deploying and managing BPEL processes.
This document discusses semantic mapping as a way to improve information retrieval on the semantic web. It proposes a two-step semantic mapping algorithm to map web service description language (WSDL) files to web ontology language for services (OWL-S) files. The algorithm loads WSDL files, converts them to OWL-S using a WSDL translator, and generates OWL-S output files. Message parts of WSDL are mapped to grounding in OWL-S, and operation parts are mapped to service profile information. The algorithm aims to redefine conventional web resources semantically in an efficient and automated way. Classification could further improve the approach by standardizing the mapped web services.
The document discusses frameworks and patterns for reusable software architectures in C++ network programming. It provides an overview of product line architectures and how frameworks can be used to support concurrent and networked applications. The document outlines some key frameworks in ACE (Adaptive Communication Environment) and how they embody commonality and variability. It also discusses design patterns used in a networked logging service example.
The document describes the architecture for building a JAX-WS web service that calculates order subtotals using JBoss Drools and Apache jUDDI integration. The proposed solution includes major components like a business rule engine (BRE) to house rules for calculations, a service registry for discovery, and connectors. The requirements involve calculating order subtotals based on items, taxes, discounts, and shipping. The architecture is designed around loose coupling, with interfaces, canonical definitions, and externalization of business rules and data formats.
Similar to MAPPING SCDL/BPEL TO ADA FOR FORMAL VERIFICATION OF THE BEHAVIORAL PROPERTIES OF SERVICE-COMPONENT ARCHITECTURE (20)
Understanding Inductive Bias in Machine LearningSUTEJAS
This presentation explores the concept of inductive bias in machine learning. It explains how algorithms come with built-in assumptions and preferences that guide the learning process. You'll learn about the different types of inductive bias and how they can impact the performance and generalizability of machine learning models.
The presentation also covers the positive and negative aspects of inductive bias, along with strategies for mitigating potential drawbacks. We'll explore examples of how bias manifests in algorithms like neural networks and decision trees.
By understanding inductive bias, you can gain valuable insights into how machine learning models work and make informed decisions when building and deploying them.
6th International Conference on Machine Learning & Applications (CMLA 2024)ClaraZara1
6th International Conference on Machine Learning & Applications (CMLA 2024) will provide an excellent international forum for sharing knowledge and results in theory, methodology and applications of on Machine Learning & Applications.
Low power architecture of logic gates using adiabatic techniquesnooriasukmaningtyas
The growing significance of portable systems to limit power consumption in ultra-large-scale-integration chips of very high density, has recently led to rapid and inventive progresses in low-power design. The most effective technique is adiabatic logic circuit design in energy-efficient hardware. This paper presents two adiabatic approaches for the design of low power circuits, modified positive feedback adiabatic logic (modified PFAL) and the other is direct current diode based positive feedback adiabatic logic (DC-DB PFAL). Logic gates are the preliminary components in any digital circuit design. By improving the performance of basic gates, one can improvise the whole system performance. In this paper proposed circuit design of the low power architecture of OR/NOR, AND/NAND, and XOR/XNOR gates are presented using the said approaches and their results are analyzed for powerdissipation, delay, power-delay-product and rise time and compared with the other adiabatic techniques along with the conventional complementary metal oxide semiconductor (CMOS) designs reported in the literature. It has been found that the designs with DC-DB PFAL technique outperform with the percentage improvement of 65% for NOR gate and 7% for NAND gate and 34% for XNOR gate over the modified PFAL techniques at 10 MHz respectively.
ACEP Magazine edition 4th launched on 05.06.2024Rahul
This document provides information about the third edition of the magazine "Sthapatya" published by the Association of Civil Engineers (Practicing) Aurangabad. It includes messages from current and past presidents of ACEP, memories and photos from past ACEP events, information on life time achievement awards given by ACEP, and a technical article on concrete maintenance, repairs and strengthening. The document highlights activities of ACEP and provides a technical educational article for members.
We have compiled the most important slides from each speaker's presentation. This year’s compilation, available for free, captures the key insights and contributions shared during the DfMAy 2024 conference.
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTjpsjournal1
The rivalry between prominent international actors for dominance over Central Asia's hydrocarbon
reserves and the ancient silk trade route, along with China's diplomatic endeavours in the area, has been
referred to as the "New Great Game." This research centres on the power struggle, considering
geopolitical, geostrategic, and geoeconomic variables. Topics including trade, political hegemony, oil
politics, and conventional and nontraditional security are all explored and explained by the researcher.
Using Mackinder's Heartland, Spykman Rimland, and Hegemonic Stability theories, examines China's role
in Central Asia. This study adheres to the empirical epistemological method and has taken care of
objectivity. This study analyze primary and secondary research documents critically to elaborate role of
china’s geo economic outreach in central Asian countries and its future prospect. China is thriving in trade,
pipeline politics, and winning states, according to this study, thanks to important instruments like the
Shanghai Cooperation Organisation and the Belt and Road Economic Initiative. According to this study,
China is seeing significant success in commerce, pipeline politics, and gaining influence on other
governments. This success may be attributed to the effective utilisation of key tools such as the Shanghai
Cooperation Organisation and the Belt and Road Economic Initiative.
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
Literature Review Basics and Understanding Reference Management.pptx
MAPPING SCDL/BPEL TO ADA FOR FORMAL VERIFICATION OF THE BEHAVIORAL PROPERTIES OF SERVICE-COMPONENT ARCHITECTURE
1. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
DOI : 10.5121/ijwsc.2018.9101 1
MAPPING SCDL/BPEL TO ADA FOR FORMAL
VERIFICATION OF THE BEHAVIORAL
PROPERTIES OF SERVICE-COMPONENT
ARCHITECTURE
Sakka Rouis Taoufik1
, Bhiri Mohamed Tahar2
and Kmimech Mourad3
1
LIPAH Laboratory, FST, University of Tunis El Manar, Tunisia
2
Miracl Laboratory, ISIMS, Technological Pole of Sfax, Tunisia
3
UR-OASIS Laboratory, ENIT, University of Tunis El Manar, Tunisia
ABSTRACT
The Service Component Definition Language (SCDL) and the Web Service Business Process Execution
Language (WS-BPEL) are the standards de-facto used in the modeling and implementing of Service-
Component Architecture (SCA). However, these powerful languages lack a formal foundation for the
specification and verification of the SCA properties. In this study, the use of Wright formal ADL and Ada
programming language was proposed to check the behavioral properties of SCDL/WS-BPEL Service-
Component architectures. To achieve this, the mapping of SCDL/WS-BPEL to the Wright formal ADL was
suggested in order to verify the standard behavioral consistency of the source description. As a second
step, the target specification could be transformed into Ada to check the specific and dynamic behavioral
properties of the SCDL/WS-BPEL source architecture.
KEYWORDS
Service-Component Architecture, Behavioral Verification, SCDL, WS-BPEL, Model-Checker, FDR2, Ada
Concurrent Program
1. INTRODUCTION
The Service-Component Architecture (SCA) technology [19] combines the advantages of
component-based approach and service-oriented approach. Indeed, the main idea behind this
technology is to be able to build distributed applications which are independent of
implementation technology and protocol. SCA software architecture is generally described by a
composite of services-components written by the Service Component Definition Language
(SCDL) [19]. The latter is an XML based formatted language which allows expressing all the
relations in this SCA composite. The communication mechanisms of this SCA composite can be
implemented by WSDL interfaces, Java class or WS-BPEL [3] process. Where WS-BPEL (Web-
Service Business Process Execution Language) represents a convergence of two languages to
compose web services: WSFL [17] of IBM and XLANG [21] of Microsoft. This WS-BPEL
(abbr. BPEL) language offers a standard- based approach to build flexible business processes by
the choreographing and orchestrating of multiple Web services. In addition, it aims to model the
behavior of component processes by specifying both executable and abstract business processes.
It also defines an interoperable integration model that should facilitate the expansion of
automated process integration both within and between businesses.
2. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
2
For several years now, the SCDL [19] and WS-BPEL [3] technologies appear as powerful
complementary models for the development of service-component architectures. However, they
lack a formal foundation for the specification and verification of their structural, behavioural and
qualitative properties [5]. As solutions for this problem, several works have been proposed to
translate these source models into another which supports analysers. For example, in our
previous work [11] we proposed to map SCA to Acme/Armani for the verification of the
structural and qualitative properties of an SCA software architecture. For the verification of the
WS-BPEL behavioral specifications, numerous works are presented to translate the WS-BPEL
activities into a formal technique. For example, the works presented in [23], [28] and [26] prose,
respectively, to translate the WS-BPEL activities into LOTOS, FSP and PetriNet.
In this work, we target a formal verification of the behavioral properties of SCDL/WS-BPEL
service-component architectures. To achieve this, the model transformation approach is used to
translate an SCDL/WS-BPEL service-component architecture to an Ada concurrent program [25].
In this study, the Wright formal ADL [2] is used as an intermediate modeling language. The
choice of these two languages in our verification approach is justified mainly by the following
three factors:
• The Wright ADL defines eleven standard properties related to the consistency of software
architecture among which four -assimilated to behavioral contracts- are automated by our
Wr2fdr tool [13, 20]. The latter contracts can be checked with the FDR2 model-checker
[24].
• The semantic rapprochement between the Wright process and the Ada task favors the
formalization of the Wright configuration by an Ada concurrent program.
• The presence of different analysis tools related to the detection of the dynamic and
specific behavioral problems of an Ada program. For example, SPIN, SMV, FLAVERS
and INCA [7, 8] are four formal analysis tools of Ada concurrent programs and are
complementary.
The paper is structured as follows: Section 2 proposes an overview of our SCDL/WS-BPEL
behavioral verification; Section 3 deals with our systematic rules allowing the translation of
SCDL/WS-BPEL source software architecture to the Wright target software architecture; Section
4 exhibits the translation rules of the Wright abstract architecture into the Ada concurrent
program. An overview of the main related works is presented in Section 5; Finally, Section 6
provides a conclusion and possible future work.
2. PROPOSED APPROACH
Our verification approach presented in Figure 1 can be considered as four consecutive steps.
Firstly, we propose to use the SCDL language to describe the structural aspect of service-
component architecture, and the WS-BPEL language to describe the behavioral aspect of this
architecture. Secondly, a set of rules allowing the translation of an SCDL/WS-BPEL source
architecture to Wright description is proposed. Then, the Wright description obtained can be
automatically translated into a CSP specification through our Wr2fdr tool. Using the FDR2
model checker, this CSP specification can be checked by the standard properties proposed by the
Wright ADL. Finally, a latest transformation of the Wright specification into an Ada concurrent
program can be proposed. This is favored by the verification of the dynamic and specific
behavioral properties of the SCDL/WS-BPEL source software architecture. Indeed, many are the
tools that allow the analysis of the dynamic and specific properties of an Ada concurrent program.
3. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
3
For example, SPIN, SMV, FLAVERS and INCA [8] are four formal analysis tools of Ada
concurrent programs and are complementary.
Figure1.Verification approach
3. TRANSLATION OF SCDL/WS-BPEL TO WRIGHT
This section is subdivided on two subsections: In Sub-section 3.1, we propose a set of rules
allowing the translation of an SCDL/WS-BPEL architecture to a Wright specification. This
allows the verification of standard behavioral properties supported by the Wr2fdr tool
accompanying the Wright ADL. Then, a validation of this proposed approach will be proposed in
subsection 3.2.
3.1. Translation Rules
Regarding the static aspect, An SCA software architecture is generally described in an XML
SCDL file. The latter expresses all the relations in a composite. In this language, the basic
deployment markup of a Web application is the composite. An SCDL composite is an assembly
of heterogeneous components. Each SCDL component is based on a common set of abstractions
such as services, references and properties. In the context, services and references describe,
respectively, what a component provides and what a component requires from its external
environment. These services and references can be matched with bindings. Hence, each SCDL
markup can be specified in Wright as follows:
• An SCDL composite can be translated to a Wright configuration;
• An SCDL component can be translated to a Wright component;
• An SCDL component’s reference can be translated to a Wright port with the same name;
• An SCDL component’s service can be translated to a Wright port with the same name;
• An SCDL wire connects two SCA components. Hence, we propose to translate an SCDL
wire to a Wright connector that proposes two roles.
4. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
4
Concerning the translation of the WS-BPEL behavioral descriptions, we propose to translate each
WS-BPEL process by a CSP process. In this translation, each primitive activity is translated to a
CSP event. Since WS-BPEL provides three kinds of activities, we suggest translating each
activity by a specific event as follows:
• An <invoke> activity is used to initialize an appeal of an operation Oper. This activity
can be modeled in CSP by an initialized event as follows : _invokeOper
• A <receive> activity is used to wait for a message from an external operation Oper. This
observed activity can be modeled in CSP by an observed event as follows: receiveOper
• A <reply> activity is used to initialize a response to an external operation Oper. This
activity can be modeled in CSP by an initialized event as follows: _replyOper
In addition to these communication primitive activities, WS-BPEL provides typical structured
activities such as sequence, flow, terminate, if, switch, while, repeatUntil etc. These control
structures can express a causal relationship between multiple invocations by means of control and
data flow links. For the WS-BPEL control structures, we propose the following translation rules:
• The <sequence> construct is used in WS-BPEL wherever a series of activities needs to
occur sequentially, although they may be contained one or more times within looping or
concurrent construct activities. This <sequence> construct can be modeled in CSP by a
set of events separated by the prefixing operator (->).
• Concurrency in WS-BPEL permits us to model the concurrent transitions in the message
sequence charts. In WS-BPEL, this is specified using the <folw> construct. However,
the concurrency in CSP is modeled by the parallel composition operator (| |). This
operator is formally given as: If P and Q are processes then (P | | Q) represents the
concurrent execution of P and Q. Hence, using the CSP parallel operator (| |), we can
model the WS-BPEL flow activities by a set of concurrent processes.
• In WS-BPEL, the conditional branching introduces decision points to control the
execution flow of a process. Each conditional structure such as <if> or <switch> can be
modeled in CSP by the adequate choice operator:
- ([ ]) deterministic choice operator: if the choice between these activities is an external
choice. In other words, if these activities are observed (receive activity).
- (|~|) nondeterministic choice operator: if the choice between these activities is an
internal choice. In other words, if these activities are initialized (invoke or reply activity).
• In WS-BPEL, as in most programming languages, loops are used to repeat activities.
Each looping structure such as <forEach>, <while> or <repeatUntil> can be modeled in
CSP by a recurrent process as follows: P=… -> P.
3.2.Validation
The objective of this section is to validate our SCDL/BPEL transformation approach to Wright /
CSP on an online Banking system. This system offers its customers remote banking services. To
put it simply, we have retained the following services: visualization of balances, transfer of funds
and loan request. The proposed modeling includes the following two components (see Figure 2):
• The AccountBank component provides a service for client authentication and a reference
that triggers the three services offered above.
5. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
5
• The DataBase component provides a service that executes requests from the
AccountBank component.
Figure2. Graphical description of the Banking system
Our SourceForge repository [15] presents the complete description (SCDL and BPEL files) of
this Banking system. Listing 1 shows the Wright configuration corresponding to the translation
of the SCDL / BPEL component assembly of this Banking system.
Configuration BankingSystem
Component AccountBank
Port client = receiveAuthenticate -> _replyAuthenticate -> TICK
Port reference = TICK |~| (_invokeVisualisation -> MovementsTicket -> TICK |~|
_invokePret -> PretTicket -> TICK |~| _invokeTransfert-> TransfertTicket ->
(TICK |~| _invokeVisualisation -> MovementsTicket -> TICK))
Computation = client.receiveAuthenticate -> _client.replyAuthenticate ->
(TICK |~| (_reference.invokeVisualisation -> reference.MovementsTicket -> TICK
|~|_reference.invokePret-> reference.PretTicket -> TICK |~|
_reference.invokeTransfert-> reference.TransfertTicket -> (TICK |~|
_reference.invokeVisualisation -> reference.MovementsTicket-> TICK)))
Component DataBase
Port service = receiveVisualisation -> _replyVisualisation -> TICK []
receiveTransfert->_replyTransfert -> TICK [] receivePret -> _replyPret -> TICK
Computation = service.receiveVisualisation -> _service.replyVisualisation ->
TICK [] service.receiveTransfert -> _service.replyTransfert -> TICK []
service.receivePret -> _service.replyPret-> TICK
Connector Wire
Role Rreference = TICK |~|(_invokeVisualisation -> MovementsTicket -> TICK |~|
_invokePret -> PretTicket -> TICK |~| _invokeTransfert-> TransfertTicket ->
(TICK |~| _invokeVisualisation -> MovementsTicket -> TICK) )
Role Sservice = receiveVisualisation -> _replyVisualisation -> TICK []
receiveTransfert->_replyTransfert -> TICK [] receivePret -> _replyPret -> TICK
Glue= Rreference.invokeVisualisation -> _Sservice.receiveVisualisation ->
Sservice.replyVisualisation -> _Rreference.MovementsTicket -> TICK []
Rreference.invokeTransfert -> _Sservice.receiveTransfert ->
Sservice.replyTransfert -> _Rreference.TransfertTicket -> TICK []
Rreference.invokePret -> _Sservice.receivePret -> Sservice.replyPret ->
_Rreference.PretTicket -> TICK
Instances
A : AccountBank
B : DataBase
AB :Wire
Attachments
A.reference As AB.Rreference
B.service As AB.Sservice
End Configuration
Listing 1. Wright configuration associated to the Banking system.
Using our Wr2fdr tool [20] and the FDR2 model-checker, we have formally verified the
consistency of two components (AccountBank and DataBase) and the non-blocking of the Wire
6. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
6
connector (see Figure 3). However we detected an architectural error related to the non-
compatibility between these two components via the Wire connector.
Figure 3. Verification with FDR2 model-checker
4. TRANSLATION OF WRIGHT TO ADA
The means to establish automatic connections between Wright and Ada are limited. For example,
Naumovich et al. [18] offer a manual translation of Wright into Ada without explanation rules.
In our previous work [6] we established a set of simple rules allowing translating Wright software
architecture into Ada. In this study, a significant improvement of our translation rules was
proposed. The main structural concepts treated in this paper are: configuration, component,
connector, port, role, computation, glue, attachments, process, initialized event, observed event,
successfully terminated event, prefixing operator, deterministic choice operator and
nondeterministic choice operator. To achieve this, we proposed an Ada package called
ArchWright allowing the representation in Ada of the main structural concepts coming from the
Wright ADL. For this purpose, we benefited from using the Ada composite type “record” that
groups one or more fields. A field can be of any type, even a record. In addition, the typing
possibilities offered by the Ada language are profitably used for the translation of the Wright
behavioral aspects.
4.1. Component Translation
A Wright component is a computation element with multiple ports. Each port represents a point
of interaction between the component and its environment. A CSP process expresses the
component properties and expectations seen through this port and is part of its behavior. The
computation specification provides a complete description of the behavior and properties of the
component showing how ports are grouped and used.
In this work, we propose to implement a Wright component with an Ada record compound with
two fields:
• Ports: it represents the component’s ports. It is modeled by an array of CSPTask, where
the CSPTask is the task type proposed to implement in Ada the CSP process (see Section
3.4).
7. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
7
• Computation: it represents the component computation. It can be modeled by a single
CSPTask.
Listing 2 illustrates the formalization of the Wright component by an Ada record type. This new
type represents a base type for all Wright component instances.
type CompWright (portsNumber : natural) is record
Ports: array (portsNumber) of CSPTask;
Computaion: CSPTask;
end record;
Listing 2. Formalization of Wright component in Ada
Table 1 illustrates an example of an Ada implementation of a Wright component instance which
proposes three ports: Input, Left and Right.
Table 1. Translation of Wright component instance in Ada
Wright Component Implementation in Ada
Component Filter
Port Input=…
Port Left =…
Port Right=…
Computation=…
Instances
SplitFilter : Filter
SplitFilter : CompWright (3);
-- it have three ports
SplitFilter := CompWright’(
Ports =>(1 => …, --CSPTask of first port
2 => …, --CSPTask of second port
3 => …); --CSPTask of third port
Computation => …;--CSPTask of computation
);
4.2. Connector Translation
In Wright, connectors define patterns of interaction between components. A Wright description
of a connector consists of a set of connector roles and connector glue. Each role specifies, by a
CSP process, the behavior of a participant in the interaction. However, the connector’s glue
describes how the participants work together to create an interaction.
In this work, we propose to formalize a Wright connector with an Ada record compound with two
fields:
• Roles: it represents the connector roles. It is modeled by an array of CSPTask, where the
CSPTasck is the task type proposed to implement the CSP process (See Section 3.4).
• Glue: it represents the glue of the connector. It can be modeled by a single CSPTask.
Listing 3 illustrates the formalization of the Wright connector by an Ada record type. This new
type represents a base type for all Wright connector instances.
type ConnectorWright (rolesNumber : natural) is record
Roles: array (rolesNumber) of CSPTask;
Glue: CSPTask;
end record;
Listing 3. Formalization of Wright connector in Ada
Table 2 shows an example of an Ada implementation of a Wright connector instance called Pipe
that proposes two roles: Source and Sink.
8. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
8
Table 2. Translation of Wright connector instance in Ada
Wright Connector Implementation in Ada
Connector Channel
Role Source=…
Role Sink=…
Glue= …
Instances
Pipe : Channel
Pipe : ConnectorWright (2);
-- it have 2 roles
Pipe := ConnectorWright’(
Roles =>
(1=>…, --CSPTask of the Source role
2 => …); --CSPTask of the Sink role
Glue=>… ; --CSPTask of the glue
);
4.3. Configuration Translation
A Wright configuration can be translated to an Ada concurrent program using the ArchWright
package. Table 3 illustrates the principle of the translation of a Wright configuration to an Ada
concurrent program. For traceability reasons, we keep the same identifiers used in the Wright
specification.
Table 3. Translation of Wright configuration in Ada
Wright Connector Implementation in Ada
Configuration FilterPipe
Component Filter
Port Input=…
Port Output =…
Computation=…
Connector Pipe
Role Source=…
Role Sink=…
Glue= …
Instances
Filter1, Filter2 : Filtre
Pipe1 : Pipe
Attachments
…
…
End Configuration
with ArchWright;
use ArchWright;
procedure FilterPipe is
Filter1 :CompWright(2);-- it have two
ports
Filter2 :CompWright(2);-- it have two
ports
Pipe1 :ConnectorWright(2);--it have 2
roles
Filter1 := CompWright’(
Ports =>(1=> … , --CSPTask of first
port
2=> … );--CSPTask of second
port
Computation =>…;--CSPTask of computation
);
Filtre2:= Filtre1;
-- Filtre1 and Filtre2 are derived
-- from the same component
Pipe1 :ConnectorWright(2);
-- Pipe1 have 2 roles
Pipe1 := ConnectorWright’(
Roles => (
1=>…,--CSPTask of the Source role
2=>…); --CSPTask of the Sink role
Glue=>…; --CSPTask of the glue
);
begin
…
…
end FilterPipe ;
9. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
9
4.4. CSP Process Translation
The Wright ADL is one of the first approaches allowing the description of the behavioral aspect
of architectural elements. Indeed, the behavior of a Wright component (respectively of a
connector) is described locally through the ports (respectively roles) and, generally, through a
computation (glue respectively) using a CSP process algebra. In this algebra, a simple process
can be a compound with a set of observed and initialized events separate with the CSP prefixing
operator ( ).
Based on the similarity between the CSP process and the Ada task, we offer an intuitive
correspondence provided below for translating a CSP process to an Ada task:
• A CSP process leads to an Ada task;
• A CSP event naturally corresponds to an Ada entry. In order to differentiate between an
observed and an initialized event, we propose to use the same prefixed notation used in
CSP: an observed event is denoted by (e) and an initialized event is denoted by (_e)
• The recursion operator can be translated by an Ada loop;
• The CSP prefixing operator ( ) can be specified by the Ada sequential instruction;
• The CSP successfully terminated event (denoted by TICK or §) can be implemented with
the Ada “terminate” instruction.
• The CSP nondeterministic (or internal) choice operator (denoted by Π or | ~|) allows the
future evolution of a process to be defined as a choice between two sub-processes, but
does not allow the environment any control over which one of the component processes
will be selected. This nondeterministic choice can be implemented in Ada with a simple
conditional structure ( if ). If we have multiple composite processes, the Ada conditional
structure (case) can be used.
• The CSP deterministic (or external) choice operator ([ ]) allows the future evolution of a
process to be defined as a choice between two sub processes, and allows the environment
to resolve the choice by communicating an initial event for one of the processes. This
deterministic choice can be implemented with the Ada “select” instruction.
Table 4 illustrates these proposed rules allowing the translation of a CSP specification to Ada.
Table.4. Translation of CSP specification to Ada
CSP Specification Implementation in Ada
P = _request -> result -> §
task P is
entry _request;
entry result;
end P ;
task body P is
accept _request; accept result;
end P;
P1 | |P2
if internCondition then P1
else P2
end if;
10. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
10
P1 | | P2 | | P3
case internCondition is
when 1 => P1 ;
when 2 => P2 ;
when 3 => P3 ;
end case ;
P1 [ ] P2 [ ] TICK
select P1;
or P2;
or terminate ;
end select;
4.5. Attachments Translation
After the instances declaration, the attachments statement completes the Wright configuration.
These attachments show which components participate in which interaction, binding a
component’s port with a connector’s role.
Each association between a component’s port and a connector’s role can be implemented in Ada
by a sequence of entries call of the events specified in the interconnected port/role. The general
form of the entries call (event) is specified as follows:
• If the port entry corresponds to an initialized event: we call this entry, then we call the
similar entry of role (Component.port._event; Connector.role._event;).
• Else, if this entry corresponds to an observed event, we call this entry after the call of the
similar entry in the role (Connector.role.event; Component.port.event;).
Table 5 shows an illustrative example of an attachment translation.
Table 5. Translation of Wright attachment to Ada
Wright Configuration Ada implementation
Configuration ClientServer
…
Component Client
Port caller =_request →
result → §
…
Connector cs
Role client =_send →
receive → §
Role server = …
…
Instances
c : Client
cls: cs
Attachments
Client. caller As cls.client
…
End Configuration
with ArchWright;
use ArchWright;
procedure ClientServer is
-- CSP Task of the caller port
task Client_caller is
entry _request;
entry result;
end Client_caller ;
task body Client_caller is
accept _request; accept result;
end Client_caller ;
-- CSP Task of the client role
task Cls_client is
entry _send;
entry receive;
end Cls_client;
task body Cls_client is
accept _send;accept receive;
end Cls_client;
-- CSP Task of the server role
begin -– principal program
Client_caller._request;
Cls.client._send;
Cls.client.receive;
Client_caller.result ;
end ClientServer ;
11. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
11
4.6. Validation
Using the translation rules presented in the previous sections on the Banking system (See Section
3.2), we obtained an Ada concurrent program available at [15]. Using an Ada analysis tool such
as SPIN, SMV, FLAVERS and INCA [8], we can detect several errors in our Banking system. In
particular, using the FLAVERS toolset we detect that our source AccountBank component has a
deadlock problem between its global behavior and its interface behaviors. Indeed, its global
behavior allows the call of two successive rendezvous of the AccountBank._invokeVisualisation
entry; however, the behavior of this reference interface cannot accept these rendezvous. To cover
this error, we can replace the global BPEL of the AccountBank component by another compatible
with its interfaces.
5. RELATED WORKS
The approach shared by most of the existing works in the field of Web services architectures
consistency verification is the use of techniques and general tools such as B [1] and CSP [14]. To
achieve this, numerous works offer more or less systematic translations of source architecture to
the target model. In this section, only the works related to the behavioral verification of the
SCDL/WS-BPEL architectures are mentioned.
Yeung proposes in [28] to translate the WS-BPEL web service to CSP to verify the behavior
properties of web services architecture. In this paper, formal verification can be carried out based
on the notion of CSP trace-refinement and can take advantage of the FDR2 model checking.
Another formal approach [9] similar to the one reported by Yeung [28] proposes to use the FSP
formal language to check if a web service composition implemented inWS-BPEL satisfies a web
service composition specification captured by Message Sequence Charts (MSCs). Both theWS-
BPEL process and the MSC are translated to FSPs. Each FSP represents a finite labelled
transition system. Using the LTSA model checking tool, this FSP target specification can check
the safety and progress properties as well as properties expressed in the LTL logic. In [10],
Foster et al. use this LTSA to check the compatibility of web service compositions in WS-BPEL.
Since the semantics of Petri Nets is formally defined by mapping each WS-BPEL process to a
Petri net, a formal model of WS-BPEL can be obtained. This approach has been followed in
several works. For example, in [26] Verbeek et al. formalize some WS-BPEL activities used for
the orchestration of Web services as a class of Petri Net called workflow nets. For this class of
Petri nets, a verification tool named Wolfan has been developed. This tool can verify properties
such as the termination of a workflow net and detection of nodes that can never be activated. The
authors of [27] propose to map most of the basic and structured activities of WS-BPEL and the
Web Service Choreography Interface (WSCI) to Coloured Petri Nets (CPN). Choosing this CPN
as a verification method relates to the work of Tsai and Xu [22]: CPN, as the intermediate formal
basis, can be transformed to the input languages of existing analysis tools such as SPIN, SMV,
SMC, and IOTA. In [12] Hamel et Al. propose to use the Event-B method to check the structural
and behavioural properties of an SCA component assembly. To achieve this, the B-Invariant and
B-Event are profitably used to formalize the patterns proposed by Barros [4]. Using the ProB
animator, Hamel et Al. validate their formal approach on an event-B specification.
6. CONCLUSION
In this paper, an approach for verifying the behavioral coherence of SCDL/WS-BPEL
component-service architectures has been proposed. To achieve this, it has been proposed to map
SCDL/WS-BPEL to the Wright ADL, thus allowing the checking of the standard properties
supported by this ADL. Indeed, the Wright ADL defines eleven standard properties related to the
12. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
12
consistency of software architecture, among which four, assimilated to behavioral contracts, are
automated by the Wr2fdr tool. The latter contracts can be checked with the FDR2 model checker.
As a second step of our verification approach, the translation of the Wright specification to an
Ada concurrent program has been put forward, which allows:
• The validation of an abstract software architecture using dynamic analysis tools
associated with Ada, such as test data generation and debugging. Indeed, the execution
of abstract software architecture with representative test data allows the validation of the
future system in an early time.
• The verification of specific properties on an abstract software architecture using several
verification tools supporting the Ada concurrent language. Indeed, many are the tools
that allow the analysis of Ada concurrent programs. For example, SPIN, SMV,
FLAVERS and INCA [8] are four complementary approaches permitting the static
analysis of Ada concurrent programs. Indeed, vis-à-vis the specification of properties to
be verified, the SMV and SPIN tools promote the property-oriented state, while INCA
and FLAVERS promote the property- oriented trace.
Our verification approach is validated on a set of uses cases available at our SourceForge
repository [15]. Currently, we are extending this work by an automation of these translation rules
using the ATL [16] model transformation language.
REFERENCES
[1] Abrial J. R.: The B-Book, Assigning Programs to Meanings. Cambridge University Press. (1996).
[2] Allen R.: A Formal Approach to Software Architecture. Phd Thesis, Carnegie Mellon University,
(1997).
[3] Andrews T., Curbera F., Dholakia H., Goland Y., Klein J., Leymann F., Liu K., Roller D., Smith D.,
Thatte S., Trickovic I., and Weerawarana S.: Business Process Execution Language for Web Services,
(2005).
[4] Barros O.: Business Process Patterns and Frameworks: Reusing Knowledge in Process Innovation.
Business Process Management Journal, (2007). Vol.13, N°1, pp. 47- 69.
[5] Beugnard A., Jézéquel J. M., Plouzeau N. and Watkins D.: Making components contract aware. In
IEEE Software, (July 1999), pp 38-45.
[6] Bhiri M. T., Fourati F., Kmimech M., Graiet M.. Transformation exogène de Wright vers Ada.
Technique et Science Informatiques, Vol. 31, No. 7, (2012), pp.839-868
[7] Cobleigh J. M., Clarke L. A. and Osterweil L. J.: FLAVERS: a Finite State Verification Technique
for Software Systems’. IBM Systems Journal, (2002), vol. 41, n° 1, pp. 140-165.
[8] Dwyer M. B., Pasarean S. C. and Corbett J. C.: Translating ADA programs for Model checking: A
tutorial’, Technical Report 12, Kansas State University. (1998).
[9] Foster H., Uchitel S. Magee J. and Kramer J.: Model-based verification of web service compositions.
In Proceedings of 18th IEEE International Conference on Automated Software Engineering, pp. 152-
163, Montreal, Canada, (October 2003). IEEE.
[10] Foster H., Uchitel S. Magee J. and Kramer J and Magee J.: Compatibility verification for web
service choreography. In Proceedings of the IEEE International Conference on Web Services, pp.
738-741, San Diego, CA, USA, (June 2004). IEEE.
13. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
13
[11] Haddad I., Kmimech M., Sakka Rouis T., and Bhiri M. T.: Towards a practical approach to check
service component architecture. In 11th International Conference on Semantics, Knowledge and
Grid, (2015), pp. 65–72. IEEE.
[12] Hamel L., M. Graiet G., M. Kmimech M.: Formal modeling for verifying SCA composion. RCIS
conference, (2015), pp. 193-204.
[13] Hammami M., Bhiri M. T., Kmimech M. and Graiet M.. : Traduction de Wright en CSP pour la
vérification par le model-checking. 6 ème conférence francophone sur les architectures logicielles,
Montpellier. (2012). [14]Hoare C. A. R.: Communicating Sequential Processes. Prentice Hall
(1985).
[15] https://sourceforge.net/projects/SCA2WrightToAda
[16] Jouault F., Allilaire F., Bézivin J. and Kurtev I.: Atl: A model transformation tool. Sci. Comput.
Program. (2008) vol. 72, n° 1-2, pp. 31-39.
[17] Leymann F.: Web services ow language (WSFL 1.0), May 2001.
[18] Naumovich G., Avrunin G. S., Clarke L. A. and Osterweil L. J., Applying static analysis to
software architectures’. ACM SIGSOFT 1997, Software Engineering Notes, vol. 22, n° 6, (1997),
pp. 77-93.
[19] OASIS. Service Component Architecture Assembly Model Specification Version 1.1. Oasis.
https://www.oasis-open.org/standards, (July 2017).
[20] Sakka Rouis T., Bhiri M. T., Kmimech M and Moussa F.: Wr2Fdr Tool Maintenance for models
Checking. Proceeding in 16th International Conference on Intelligent Software Methodologies,
Tools, and Techniques (2017), Kitakyushu, Japan.
[21] Thatte S.: XLANG: Web Services for Business Process Desig. Corporation, 2001.
[22] Tsai J. J. P. and Xu K.: An empirical evaluation of deadlock detection in software architecture
specifications, Annals of Software Engineering, 7, (1999). pp. 95-126.
[23] Tremblay G. and Chae J.: Towards specifying contracts and protocols for web services. In H. Mili
and F. Khendek, editors, Proceedings of the MCeTech Montreal Conference on eTechnologies,
Montreal, Canada, (January 2005). pp. 73-85.
[24] The Formal Systems Website, vendor for the FDR2. http://www.fsel.com/
[25] Taft S. T., Duff R. A., Brukardt R. L., Ploedereder E. and Leroy P.: Ada 2005 Reference Manual.
(2005)
[26] Verbeek H. M. W. and. Van Der Aalst W. M. P.: Analyzing BPEL processes using Petri nets. In
D. Marinescu, editor, Proceedings of the Second International Workshop on Applications of Petri
Nets to Coordination, Workow and Business Process Management, pp. 59-78, Miami, FL, USA,
(October 2005).
[27] Yang Y., Tan Q., Yu J., and Liu F.: Transformation BPEL to CP-nets for verifying web services
composition. In Proceedings of the International Conference on Next Generation Web Services
Practices, Seoul, Korea, (August 2005). IEEE.
[28] Yeung W. L.: Mapping ws-cdl and BPEL into csp for behavioural specification and verification of
web services. ECOWS, IEEE Computer, (2006), pp. 297-305.
14. International Journal on Web Service Computing (IJWSC), Vol.9, No.1, March 2018
14
AUTHORS
Taoufik Sakka Rouis is a doctor in computer science and member at the LIPAH laboratory (Tunisia). He
received his Ph.D’s degree in Computer Science from the University of Manouba. His main research
interests are component-based software engineering and formal verification of service-component
architectures.
Moahamed Tahar Bhiri is a professor at the Faculty of Sciences of Sfax (Tunisia). He led numerous
studies on the subject of Object, Component and transformation models. He uses the formal models such as
Wright, Acme, B, Event-B and CSP to check the consistancy of the UML2.0 diagrams. Currently, he is
interested in the integration of competition in the Event-B method.
Mourad Kmimech is an associate professor at the High School of Computer Science and Mathematics,
Monastir University. He holds a Ph.D. (2010) in software engineering from the University of Pau and Pays
of the Adour, France. His research interests include service computing, service component architecture
(SCA), services reliability/flexibility and formal verification.