Stoneworks Software Corp.

greenbeansneedlesSoftware and s/w Development

Dec 13, 2013 (3 years and 8 months ago)

96 views

Stoneworks Software Corp.

Presents



Ambassador for DOORS




What is Ambassador?


The Ambassador is a proprietary service
-
oriented
architecture (SOA) created by Stoneworks Software
Corporation that facilitates the communication and data
sharing between an IBM Rational DOORS® Server and
any software product.

What is a Web Service?


Defined by the
W3C

as "a software
system designed to support
interoperable

machine
-
to
-
machine

interaction over a
network



They expose API of the operations
offered by the service written in the
Web
Services Description Language

(WSDL)


User Interfaces are provided by
Implementation


Our Service


Service API written in pure JAVA


Platform Independent


Can run as a Web Service or as a stand
alone RMI Server.

Ambassador SOA Framework

DOORS

Server

Cache

Ambassador
Service for
DOORS

Envoy

Service

DOORS
Client

DOORS
Client

Delegate Service

Client

JAVA, C++, VB,
Perl, etc

WSDL

Envoy Service

DOORS

Server

Cache

Ambassador
Service for
DOORS

Envoy

Service

DOORS
Client

DOORS
Client

Delegate Service

Client

JAVA, C++, VB,
Perl, etc

WSDL

Envoy Service


Manages DOORS Clients


Starts N DOORS Clients


Monitors QOS of DOORS Clients


Stops DOORS Clients


Handles request from the Ambassador Service for DOORS by
creating DXL Scripts Dynamically and submitting the script to
DOORS and waiting for DOORS to complete


The script generates XML


Transforms the XML response from DOORS into JAVA Objects
that are returned to the Ambassador

Dynamic DXL Script

string dUn = "foo";

string outputPath = "C:
\
\
Temp
\
\
DOORSThread
\
\
5094~
-
1417675888
\
\
";

string outputFileName = "C:
\
\
Temp
\
\
DOORSThread
\
\
5094~
-
1417675888
\
\
out.xml";

string curUid = "00000000";


#include <stoneworks/RMLink/seeds/listContentByUid.inc>


inc_listContentByUid();

DOORS XML

<?xml version="1.0" encoding="ISO
-
8859
-
1"?>

<rs id="00000000">


<el name='Project' id='00000001'>


<attributes>


<at name="Name"><![CDATA[New Car]]></at>


<at name="FullName"><![CDATA[/New Car]]></at>


<at name="Id"><![CDATA[00000001]]></at>


<at name="ParentId"><![CDATA[00000000]]></at>


<at name="Type"><![CDATA[Project]]></at>


<at name="Path"><![CDATA[/]]></at>


<at name="Description"><![CDATA[Initial Assessment of Requirements for a New Passenger Car]]></at>


<at name="Url"><![CDATA[doors://doorsServer:36677/?version=1,prodID=0,dbid=4713b90735de1ad9,container=00000001]]></at>


<at name="Description"><![CDATA[Initial Assessment of Requirements for a New Passenger Car]]></at>


</attributes>


</el>


<el name='Project' id='00000002'>


<attributes>


<at name="Name"><![CDATA[Test System]]></at>


<at name="FullName"><![CDATA[/Test System]]></at>


<at name="Id"><![CDATA[00000002]]></at>


<at name="ParentId"><![CDATA[00000000]]></at>


<at name="Type"><![CDATA[Project]]></at>


<at name="Path"><![CDATA[/]]></at>


<at name="Description"><![CDATA[Testing of Avionics Systems]]></at>


<at name="Url"><![CDATA[doors://doorsServer:36677/?version=1,prodID=0,dbid=4713b90735de1ad9,container=00000002]]></at>


<at name="Description"><![CDATA[Testing of Avionics Systems]]></at>


</attributes>


</el>


….

DOORS XML Cont.


<el name=
'Folder
' id='00000003'>


<attributes>


<at name="Name"><![CDATA[Test]]></at>


<at name="
FullName
"><![CDATA[/Test]]></at>


<at name="Id"><![CDATA[00000003]]></at>


<at name="
ParentId
"><![CDATA[00000000]]></at>


<at name="Type"><![CDATA[Folder]]></at>


<at name="Path"><![CDATA[/]]></at>


<at name="Description"><![CDATA[]]></at>


<at name="
Url
"><![CDATA[doors://doorsServer:36677/?version=1,prodID=0,dbid=4713b90735de1ad9,container=00000003]]></at>


<at name="Description"><![CDATA[]]></at>


</attributes>


</el>

</
rs
>

XML to JAVA Mapping

default=com.cse.rmlink.doors.common.objects.DOORSObjectBean

folder=com.cse.rmlink.doors.common.objects.DOORSFolderBean

project=com.cse.rmlink.doors.common.objects.DOORSProjectBean

formal=com.cse.rmlink.doors.common.objects.DOORSModuleBean

baseline=com.cse.rmlink.doors.common.objects.DOORSBaselineBean

object=com.cse.rmlink.doors.common.objects.DOORSRequirementBean

cp=com.cse.rmlink.doors.common.objects.DOORSChangeProposalBean

view=com.cse.rmlink.doors.common.objects.DOORSViewBean

column=com.cse.rmlink.doors.common.objects.DOORSColumnBean

history=com.cse.rmlink.doors.common.objects.DOORSHistoryBean







Ambassador Service for DOORS

DOORS

Server

Cache

Ambassador
Service for
DOORS

Envoy

Service

DOORS
Client

DOORS
Client

Delegate Service

Client

JAVA, C++, VB,
Perl, etc

WSDL

Ambassador Service for DOORS


Manages


Sessions (License Consumption)


Envoy Connections


Cache


File Transfers


Load Balancing


Cache


Converts RTF from DOORS


Into
Apache FOP

XML


From FOP to HTML


From FOP to PDF


Converts Pictures from DOORS


Into JPG format


API

Delegate Service

DOORS

Server

Cache

Ambassador
Service for
DOORS

Envoy

Service

DOORS
Client

DOORS
Client

Delegate Service

Client

JAVA, C++, VB,
Perl, etc

WSDL

Delegate


Any programming language that
supports Web Service Development


JAVA, C++, Visual Basic, Perl, etc.


Therefore most any existing 3
rd

party
thin or thick application can leverage
DOORS data and add value to their
respective product

WSDL and Stubs


The Ambassador service exposes a
public
WSDL

that informs implementers
of the available API and related Objects


This WSDL can be used to generate
language specific Objects (Stubs) that
facilitate communication with the remote
service

Simple JAVA Delegate Code

RMLinkQueueServerIfc server = getRMLinkQueueServer();


String sessionId = server.login("Zm9vOmZvbw=="); // Base64 Encoded


DOORSFolderBean root = server.getRootFolder(sessionId);


DOORSResultSet set = server.listContents(sessionId, root);

for (int i = 0; i < set.getSet().length; i++) {


System.out.println(set.getSet()[i].getFullName());

}


server.logout(sessionId);

Simple JAVA Delegate Output

/New Car

/Test System

/Test


Questions?

Contact Stoneworks Software for more information today!

Our Partners


Stoneworks Software Corp.


Headquarters


7404 Executive Place

Suite 102 Lanham MD USA 20706


Stoneworks Software Corp.



O: 443.423.1246



F: 443.423.1246






Toll Free 1.877.761.1246


General Information


Email

info@sws
-
corp.com


Website

http://www.sws
-
corp.com