220 likes | 426 Views
Stoneworks Software Corp. Presents Ambassador for DOORS. What is Ambassador?.
E N D
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 interoperablemachine-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 DOORS Client Cache DOORS Client Envoy Service Ambassador Service for DOORS WSDL Delegate Service Client JAVA, C++, VB, Perl, etc
Envoy Service DOORS Server DOORS Client Cache DOORS Client Envoy Service Ambassador Service for DOORS WSDL Delegate Service Client JAVA, C++, VB, Perl, etc
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 DOORS Client Cache DOORS Client Envoy Service Ambassador Service for DOORS WSDL Delegate Service Client JAVA, C++, VB, Perl, etc
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
Delegate Service DOORS Server DOORS Client Cache DOORS Client Envoy Service Ambassador Service for DOORS WSDL Delegate Service Client JAVA, C++, VB, Perl, etc
Delegate • Any programming language that supports Web Service Development • JAVA, C++, Visual Basic, Perl, etc. • Therefore most any existing 3rd 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!
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