MENU:
Home
Who is Samuel Zallocco?
Main Interest:
  Web Design
  Web Service
  Queueing Networks
  Small-World Phenomenon
  AJAX
Photo Album
Software
Doc & Pub
Contacts
 
 
  
REFERENCE:
University of L'Aquila
UnivAQ Science Faculty
Anastasia Art Studio
 
Friends LINKS:
www.fonza.it
www.nuvolone.it
www.pmds.it
www.marilungo.com
www.empix.it
www.synthesis.co.it
www.becontent.org
 
THE OTHERs:
www.report.rai.it
www.beppegrillo.it
www.freetibet.org

 

Queueing Networks: Multiple tool solution with the WEASEL Tool

Weasel:
    The main goal of the WEASEL tool is to offer a Web Service that solves queueing network models specified in PMIF  format, using multiple external solution tools. Actually the WEASEL tool provide support for QNAP, SHARPE, PDQ, PEPSY, MQNA1, MQNA2, PMVA, MVA-QFP, OPENQN and CLOSEDQN tools, but it provide a simple way to add support for other solution tools. The WEASEL tool follow a simple client-server approach to accomplish this scope, based on the standard XML based web service protocols SOAP and WSDL. The WEASEL tool provide a four level stack oriented architecture, where each level can use or not the result of the previous one. Clients application are keep free to use or not some functional level in order enhance the Web Service flexibility. This functional levels are shown in Figure 1 and the functions are described below:

 

Figure 1: Weasel Web Service Functional Levels (click to enlarge)

  • Level 1: PMIF 2.0 syntax validation against official PMIF 2.0 Schema definition.

  • Level 2: PMIF 2.0 semantic validation against “PMIF Semantic Analyzer” external tool.

  • Level 3: Translation of the PMIF 2.0 model into a file in one of the integrated tools format, using an XSLT transformation.

  • Level 4: Solution tool execution on the PMIF 2.0 translated model or on the tool native language model.

    We have preferred to leave the clients application free to select the functional level to use without the limit of a sequential invocation of the four levels. This, in some measure, follow the Web Service philosophy of providing “simple” services that can be combined to perform a more complex task. This approach allow client users to decide if use our web service and which functionality of it. For example, some user may decide to use our web service only for the solution of a QN model, but to use a third party web service for the model semantic or syntax validation. The performance measure are presented to the client as a text file in the original output format of the selected tool. Actually the web service do not provide a method to format the tools output in XML, but these feature can be implemented as an extension in a future version. In order to implement our Web Service we have chosen the Apache, PHP 5, PEAR::SOAP trilogy. This approach offer a free of charge implementation that can be widely implemented in a various range of HW and SW architecture. Apache is a secure and efficient HTTP server available in the Microsoft™ Windows©, Mac™ OS/X© and Linux operating systems. In order to provide a standard access method to our web service we have to implement the SOAP protocol and we have to provide a standard interface to the web service methods via a WSDL file. The simplest way to do that is to using the PHP5 scripting language with the PEAR::SOAP extension. Using PHP5 will simplify our life providing us the support to DOM (Document Object Model) and XSLT (eXtensible Stylesheet Language for Transformations) extension used respectively for the PMIF 2.0 syntax validation and for PMIF 2.0 to tool models translation. The PEAR (PHP Extension and Application Repository) SOAP extension is a PHP5 module that provide support for the SOAP protocol and for the automatic generation of the WSDL file.


Figure 2: WEASEL Web Service UML Class Diagram (click to enlarge)

The PHP5 implementation of the Web Service consist essentially in a PHP5 class named QNSolver (see Figure 2) with the following public method:

  • Copyright: this method have no parameter. The returned string can be customized by the Web Service mantainer and can contain the following information: web service name and version, guest operating system, PHP version, web service physical location, mantainer name and e-mail address.

  • GetToolsList: like the previous one this method needs no parameters. It returns an XML string containing the description of the integrated tools. This method can be used by clients application to build a runtime menu to be able to use multiple web service that integrate different solvers. Information provided by this method are: tool name, description, author, supported client operation (translation, solution, native tool language solution) and supported solution methods and algorithms.

  • ValidateSyntax: this method receive an input string with a QN model and is type (actually can be only “PMIF 2.0”) and returns an output string containing an XML response with the value of the syntax validation (True or False). The validation is made against the PMIF 2.0 XML Schema provided by www.perfeng.com/pmif/pmifschema.xsd.

  • ValidateSemantic: this method receive an input string with a QN model and a string with is type (actually can be only “PMIF 2.0”) and returns an output string containing an XML response with the value of the semantic validation (True or False). The validation is made against the PMIF Semantic Analyzer external tool of D. G. Cousillas and C. M. Lladó.

  • Transform: this method receive an input string containing a QN model, a string with is type (actually can be only “PMIF 2.0”), a string containing the target tool ID, an optional string containing the solution method (for those tools that support more than one solution algorithms) and one more optional string containing some extra params needed by some tools (for example number of jobs).

  • Solve: this method receive an input string containing a QN model, a string with is type (here the type can be any of the integrated tools ID), a string containing the target tool ID (if the type of model is different from “PMIF 2.0” then type and tool ID must be equal), an optional string containing the solution method (for those tools that support more than one solution algorithms) and one more optional string containing some extra params needed by some tools (for example number of jobs).

  • GetModelDescription: this method receive an input string with QN model and an input string with is type (actually can be only “PMIF 2.0”) and return an output string containing an english human readable description of the model.

The WEASEL tool is fully customizable and extensible, we have split the configurable part of the web service in an external file “QNSolver.inc” where user can add new tool and change the web service behaviour.

End user is free to develop his own web service client and implement it with any programming language that provide standard SOAP support. In order to test our web service we have developed three clients application. The first was been written in PHP5 and have a simple command line interface. The second was a web based application using the emerging AJAX (Asyncronous Javascript And Xml) technology. The third was a real Microsoft™ Windows© application written in Borland™ Delphi© 2005 Architect Edition, that we have named “PMIF Editor” due to the fact that integrate a graphical PMIF 2.0 visual editor (see Figure 3) able to assist the analysts from the visual design phase of the queueing networks, to the translation of the graphic model in PMIF 2.0 and finally to the resolution invoking the remote web service.


Figure 3: The Weasel Client (click to enlarge)

    Given a standard PMIF 2.0 queuing network model, the WEASEL tool can actually translate the model into the following tools/languages:
 

Tool ID

XSLConversion File

Supported QN Type

Guest OS

PDQ

PMIF2_to_PDQ.xsl

Open, Closed

Windows, Linux

QNAP

PMIF2_to_QNAP.xsl

Open, Closed, Mixed?

Windows, Linux?

SHARPE

PMIF2_to_SHARPE_PFQN.xsl

Closed

Windows, Linux

OPENQN

PMIF2_to_OPENQN.xsl

Open

Windows

CLOSEDQN

PMIF2_to_CLOSEDQN.xsl

Closed

Windows

MVAQFP

PMIF2_to_MVAQFP.xsl

Closed

Windows, Linux

PMVA

PMIF2_to_PMVA.xsl

Closed

Windows

PEPSY

PMIF2_to_PEPSY.xsl

Open, Closed, Mixed?

Linux

MQNA1

PMIF2_to_MQNA1.xsl

Open, Closed

Windows

MQNA2

PMIF2_to_MQNA2.xsl

Open, Closed, Mixed, Finite Capacity Queue with Blocking and Lost

Windows

For more information on weasel please visit:

To download the PMIF Editor click here

To download the Samuel Zallocco full thesis (in Italian) click here

 

 

     Zallocco.NET (C) by Samuel Zallocco
     All right reserved
     For information please contact: samuel@zallocco.net