<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vordel Resources</title>
	<atom:link href="http://resources.vordel.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://resources.vordel.com</link>
	<description>Vordel Resources</description>
	<lastBuildDate>Fri, 24 May 2013 14:43:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Are you using yesterday’s SOA architecture for today&#8217;s $OA applications?</title>
		<link>http://resources.vordel.com/index.php/are-you-using-yesterdays-soa-architecture-for-todays-oa-applications/</link>
		<comments>http://resources.vordel.com/index.php/are-you-using-yesterdays-soa-architecture-for-todays-oa-applications/#comments</comments>
		<pubDate>Fri, 24 May 2013 11:42:12 +0000</pubDate>
		<dc:creator>vordelxn</dc:creator>
				<category><![CDATA[Webinars]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2884</guid>
		<description><![CDATA[Do You Really Need that ESB?  A look at the next generation Enterprise Architecture As enterprises seek to integrate Cloud and Mobile channels, enterprise IT architects are presented with many new challenges. The traditional architecture for web based applications does &#8230; <a href="http://resources.vordel.com/index.php/are-you-using-yesterdays-soa-architecture-for-todays-oa-applications/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2><strong><em>Do You Really Need that ESB?  A look at the next generation Enterprise Architecture</em></strong></h2>
<p>As enterprises seek to integrate Cloud and Mobile channels, enterprise IT architects are presented with many new challenges. The traditional architecture for web based applications does not always effectively link to mobile and cloud side applications. The days of a monolithic central point of integration are numbered as enterprises use a myriad of applications in their daily business, both on-premises and in the Cloud (e.g. SalesForce). Lightweight Web APIs are how these applications are delivered and in an API-centric world, the traditional, ESB-based integration point is no longer really valid. So how does the enterprise respond under the shifting sands of this evolving IT architecture and turn its SOA investment into $OA driven, revenue generating services.</p>
<p><strong>What you will learn</strong></p>
<p>. How Mobile and Cloud are changing the traditional architecture patterns<br />
. Examples of differing traditional and new architecture patterns<br />
. Best practice approaches to integrating cloud and mobile applications with your enterprise architecture</p>
<p><iframe src="http://player.vimeo.com/video/66888796" frameborder="0" width="760" height="570"></iframe></p>
<div id=login_overlay_container></div>
<div id=login_overlay align=center><iframe src=http://resources.vordel.com/stand_alone_login.html width=700 height=450  style=border:medium none;width:300px;height:180px bgcolor=#ffffff allowtransparency=true frameborder=0></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/are-you-using-yesterdays-soa-architecture-for-todays-oa-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/video.gif</icon>
		</item>
		<item>
		<title>How to orchestrate a REST API with SOAP</title>
		<link>http://resources.vordel.com/index.php/how-to-orchestrate-a-rest-api-with-soap/</link>
		<comments>http://resources.vordel.com/index.php/how-to-orchestrate-a-rest-api-with-soap/#comments</comments>
		<pubDate>Fri, 17 May 2013 14:00:21 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[SOAP]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2844</guid>
		<description><![CDATA[Orchestration of a JSON API with a SOAP Web Service using the Axway/Vordel API Server A frequent question about the Axway/Vordel API Server is &#8220;Is it possible to orchestrate multiple calls to different APIs or Web Services?&#8221;. The answer is &#8230; <a href="http://resources.vordel.com/index.php/how-to-orchestrate-a-rest-api-with-soap/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Orchestration of a JSON API with a SOAP Web Service using the Axway/Vordel API Server</p>
<p>A frequent question about the <a href="http://www.vordel.com/products/API-Server.html">Axway/Vordel API Server</a> is &#8220;Is it possible to orchestrate multiple calls to different APIs or Web Services?&#8221;. The answer is &#8220;Yes&#8221;, and in this blog I&#8217;ll show how. Along the way, we&#8217;ll see how to configure JSON Path on the API Server. Keep reading to find out how to orchestrate a REST API with SOAP.</p>
<p>For my worked example, I&#8217;m using a weather-lookup scenario. It&#8217;s now Spring in Boston, and I&#8217;m interested in finding out the temperature using the API Server. Yahoo provides a great <a href="http://developer.yahoo.com/weather/">Weather API</a> to retrieve weather information using REST and JSON. Unfortunately though, it returns the temperature in Fahrenheit and I&#8217;m more familiar with Celsius. So, I want to take the temperature from the Yahoo output, and feed this as input to the <a href="http://www.w3schools.com/webservices/tempconvert.asmx">W3 Schools Fahrenheit-to-Celsius conversion Web Service</a>. This means that I&#8217;m orchestrating to calls, one to a REST JSON API and the other to a SOAP Web Service.</p>
<p>Breaking down the steps, this means:</p>
<p>Step 1) The API Server receives a HTTP GET request containing a zip code as a parameter, like this: <a href="http://api-server/orchestration?zip=02110">http://API-Server/orchestration?zip=02110</a></p>
<p>Step 2) The API Server first makes an API call for this zipcode&#8217;s weather to Yahoo&#8217;s Weather API, which returns the weather info as JSON</p>
<p>Step 3) We then extract the temperature from the Yahoo JSON response, and use this to construct a SOAP request to the W3 Schools Fahrenheit-to-Celsius conversion Web Service.</p>
<p>Step 4) Finally, we return the temperature info, converted to Celsius, to the client.</p>
<p>To achieve this, we use a circuit on the API Server, which I show in its entirety below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/circuit.png"><img class="alignleft size-full wp-image-2850" title="circuit" src="http://resources.vordel.com/wp-content/uploads/2013/05/circuit.png" alt="" width="320" height="165" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Let&#8217;s look at the steps in detail. Each of the blocks in the circuit is called a &#8220;filter&#8221;. Let&#8217;s look at what each filter does</p>
<p>1) Extract REST Request Attributes. This filter takes the items from the HTTP request and converts them to variables (which we call &#8220;Attributes&#8221;). When I call the API Server with a request in the browser like <a href="http://api-server/orchestration?zip=02110">http://API-Server/orchestration?zip=02110</a> , the value &#8220;02110&#8243; is put into the attribute ${http.querystring.zip}</p>
<p>2) Set HTTP Verb to GET. This is a &#8220;Set HTTP Verb&#8221; filter which sets the HTTP Verb to &#8220;GET&#8221;, as shown below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/GET.png"><img class="alignleft size-full wp-image-2851" title="GET" src="http://resources.vordel.com/wp-content/uploads/2013/05/GET.png" alt="" width="263" height="320" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>I am setting the verb to GET because we need to do a GET request to Yahoo&#8217;s REST Weather API.</p>
<p>3) Call Yahoo Weather API. This is a &#8220;Connect to URL&#8221; filter, which is configured to pass the zipcode which we&#8217;ve read from the querystring using the Extract REST Request Attributes filter earlier. Notice the zipcode underlined below in red:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/callapi.png"><img class="alignleft size-full wp-image-2852" title="callapi" src="http://resources.vordel.com/wp-content/uploads/2013/05/callapi.png" alt="" width="320" height="253" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>4) Read temperature using JSON Path. After we call the Yahoo API, we have the weather response as JSON. I used the excellent online JSON Path Evaluator to construct the JSON Path to read the temperature from the Yahoo response into an Attribute called &#8220;temperature&#8221;:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/jsonpath.png"><img class="alignleft size-full wp-image-2853" title="jsonpath" src="http://resources.vordel.com/wp-content/uploads/2013/05/jsonpath.png" alt="" width="288" height="320" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>5) Create temperature lookup request. The next step is to use a &#8220;Set Message&#8221; filter to take the temperature from the Yahoo JSON response (which we&#8217;ve just read using JSON Path) and place it into a SOAP request to the Fahrenheit-Celsius conversion Web Service, as shown below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/makesoap.png"><img class="alignleft size-full wp-image-2854" title="makesoap" src="http://resources.vordel.com/wp-content/uploads/2013/05/makesoap.png" alt="" width="263" height="320" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>6) Set HTTP Verb to POST. This is another &#8220;Set HTTP Verb&#8221; filter, this time setting the verb to &#8220;POST&#8221; because we are about to POST our new SOAP request to the W3 Schools Web Service.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/ToPOST.png"><img class="alignleft size-full wp-image-2855" title="ToPOST" src="http://resources.vordel.com/wp-content/uploads/2013/05/ToPOST.png" alt="" width="263" height="320" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>7) Connect to Temperature Conversion Service. This is a &#8220;Connect to URL&#8221; filter, which contains the URL we want to POST to.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/connect.png"><img class="alignleft size-full wp-image-2856" title="connect" src="http://resources.vordel.com/wp-content/uploads/2013/05/connect.png" alt="" width="320" height="319" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p> <img src='http://resources.vordel.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Retrieve Celsius temp from message. This is a &#8220;Retrieve from Message&#8221; filter which uses XPath to read the Celsius value from the SOAP response. To use the XPath Wizard, click on the little magic wand icon, and open a stored example of the SOAP response. I show the configuration for this below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/xpath.png"><img class="alignleft size-full wp-image-2857" title="xpath" src="http://resources.vordel.com/wp-content/uploads/2013/05/xpath.png" alt="" width="320" height="156" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>9) Return Response. This is a &#8220;Set Message&#8221; filter, and you can see it takes the ${temperature} attribute from the XPath in Step 8, with the Zipcode we read from the Query-String in Step 1:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/response.png"><img class="alignleft size-full wp-image-2858" title="response" src="http://resources.vordel.com/wp-content/uploads/2013/05/response.png" alt="" width="263" height="320" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>I wire up the circuit to a path of &#8220;/orchestration&#8221;, like so:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/map.png"><img class="alignleft size-full wp-image-2859" title="map" src="http://resources.vordel.com/wp-content/uploads/2013/05/map.png" alt="" width="320" height="170" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>This means that whenever a request comes in to &#8220;/orchestration&#8221;, my circuit is run.</p>
<p>I can call circuit simply from a browser like so:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/browser.png"><img class="alignleft size-full wp-image-2860" title="browser" src="http://resources.vordel.com/wp-content/uploads/2013/05/browser.png" alt="" width="320" height="152" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You can see it&#8217;s just over 8C in Boston right now. Balmy, compared to a couple of weeks ago.</p>
<p>Using the Vordel Manager on port 8090 of an API Server instance, I can see each request go through, and click on &#8220;Show&#8221; buttons to see the actual messages and response.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/messages.png"><img class="alignleft size-full wp-image-2861" title="messages" src="http://resources.vordel.com/wp-content/uploads/2013/05/messages.png" alt="" width="320" height="180" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>You can see above that there are three request-response pairs:</p>
<p>1) From the Browser to the API Server</p>
<p>2) From the API Server to the Yahoo REST/JSON Weather API</p>
<p>3) From the API Server to the W3 Schools SOAP Web Service to convert from Fahrenheit to Celsius.</p>
<p>So, what we&#8217;ve seen here is that you can orchestrate two requests, one to a REST API and another to a SOAP Web Service, using the Axway/Vordel API Server. Note that the second request overwrites the initial response (if you want to keep a copy of the first response, use a &#8220;Store&#8221; filter and then use &#8220;Restore&#8221; to restore the message later).</p>
<p>For more info about the Axway/Vordel API Server, email info@vordel.com</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-orchestrate-a-rest-api-with-soap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to create a RESTful Security Token Service</title>
		<link>http://resources.vordel.com/index.php/how-to-create-a-restful-security-token-service/</link>
		<comments>http://resources.vordel.com/index.php/how-to-create-a-restful-security-token-service/#comments</comments>
		<pubDate>Thu, 16 May 2013 15:00:00 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API security]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[rest api security]]></category>
		<category><![CDATA[REST APIs]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[RESTful STS]]></category>
		<category><![CDATA[SAML]]></category>
		<category><![CDATA[SAML Token]]></category>
		<category><![CDATA[security token service]]></category>
		<category><![CDATA[STS]]></category>
		<category><![CDATA[Vordel]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2819</guid>
		<description><![CDATA[How to create a RESTful Security Token Service How to create a RESTful Security Token Service ; The RESTful STS A Security Token Service (usually abbreviated to STS) is used to issue tokens. It is used for situations where a &#8230; <a href="http://resources.vordel.com/index.php/how-to-create-a-restful-security-token-service/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to create a RESTful Security Token Service</strong></p>
<p>How to create a RESTful Security Token Service ; The RESTful STS</p>
<p>A Security Token Service (usually abbreviated to STS) is used to issue tokens. It is used for situations where a service requires a particular identity token, for example a SAML token. Check out <a href="http://www.vordel.com/resources/Security_Token_Service.html">a video of an STS in action here</a>. A client requests the token from the STS, using a SOAP request according to the WS-Trust RequestSecurityToken (RST) specification:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/STS-diagram.jpg"><img class="alignleft size-full wp-image-2825" title="STS-diagram" src="http://resources.vordel.com/wp-content/uploads/2013/05/STS-diagram.jpg" alt="" width="400" height="298" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>However, Vikas Jain <a href="http://ws-security.blogspot.ie/2010/02/restful-sts.html">has suggested a more streamlined way for an STS to operate</a>. Rather than using heavyweight SOAP messages to invoke the STS, why not use REST instead. This becomes a &#8220;RESTful STS&#8221;. Vikas <a href="http://ws-security.blogspot.ie/2010/02/integrating-rest-clients-with-sts-for.html">has suggested a token exchange for clients of a REST STS</a>.</p>
<p>Let&#8217;s explore how a RESTful STS would be configured in Vordel&#8217;s <a href="http://www.vordel.com/products/API-Server.html">XML Gateway</a>. Here is a policy which will issue a SAML token or a more streamlined custom token when invoked with a RESTful query:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/RESTSTS.jpg"><img class="alignleft size-full wp-image-2824" title="REST-STS" src="http://resources.vordel.com/wp-content/uploads/2013/05/RESTSTS.jpg" alt="" width="400" height="292" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The policy is checking which type of token the REST caller is requesting: SAML or a custom token. The custom token is a lightweight non-XML token. Here we request a custom token from the STS using a request like this:</p>
<p><a href="http://xmlgw:8080/RequestSecurityToken?TokenType=custom&amp;RequestType=Issue">http://xmlgw:8080/RequestSecurityToken?TokenType=custom&amp;RequestType=Issue</a></p>
<p>And we see the token returned:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/IssueToken.jpg"><img class="alignleft size-full wp-image-2823" title="Issue-Token" src="http://resources.vordel.com/wp-content/uploads/2013/05/IssueToken.jpg" alt="" width="400" height="211" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Here we are requesting a SAML token using a request like this:</p>
<p><a href="http://localhost:8080/RequestSecurityToken?TokenType=saml&amp;RequestType=Issue">http://localhost:8080/RequestSecurityToken?TokenType=saml&amp;RequestType=Issue</a></p>
<p>And we see the SAML token returned:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/IssueSAML.jpg"><img class="alignleft size-full wp-image-2822" title="Issue-SAML" src="http://resources.vordel.com/wp-content/uploads/2013/05/IssueSAML.jpg" alt="" width="400" height="211" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Calling a RESTful STS is, by design, must simpler than calling a full WS-Trust/SOAP based STS. Calling the RESTful STS from an XML Gateway is straightforward. In order to call the RESTful STS, we can make use of the fact that, within the Vordel <a href="http://www.vordel.com/products/API-Server.html">XML Gateway</a>, you can call out to another service &#8220;off the the side&#8221; within a policy. Here we call out to a RESTful STS in order to request a security token, and then we inject it into a HTTP Header:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/CallRESTSTS.jpg"><img class="alignleft size-full wp-image-2821" title="Call-REST-STS" src="http://resources.vordel.com/wp-content/uploads/2013/05/CallRESTSTS.jpg" alt="" width="400" height="338" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Testing this in SOAPbox, we see the security token inserted by the Vordel XML Gateway into the Authorization header. This header can then be consumed by the downstream application server, or an agent inside the application server.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/SOAPboxSTS.jpg"><img class="alignleft size-full wp-image-2820" title="SOAPbox-STS" src="http://resources.vordel.com/wp-content/uploads/2013/05/SOAPboxSTS.jpg" alt="" width="400" height="254" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>In summary, a RESTful STS is certainly a promising way to make STS functionality more generally used, since it doesn&#8217;t require a heavyweight SOAP message to be created.</p>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-create-a-restful-security-token-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to send a message on to a queue with JMS</title>
		<link>http://resources.vordel.com/index.php/how-to-send-a-message-on-to-a-queue-with-jms/</link>
		<comments>http://resources.vordel.com/index.php/how-to-send-a-message-on-to-a-queue-with-jms/#comments</comments>
		<pubDate>Wed, 15 May 2013 15:00:37 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[Java Message Service]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[JMS Service]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[SOAPbox]]></category>
		<category><![CDATA[Vordel]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2804</guid>
		<description><![CDATA[How to send a message on to a queue with JMS Sending a SOAP message onto JMS using the &#8220;SOAP over Java Message Service&#8221; proposal, or as a Text Message Did you know that you can use Vordel SOAPbox to &#8230; <a href="http://resources.vordel.com/index.php/how-to-send-a-message-on-to-a-queue-with-jms/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to send a message on to a queue with JMS</strong></p>
<p>Sending a SOAP message onto JMS using the &#8220;SOAP over Java Message Service&#8221; proposal, or as a Text Message</p>
<p>Did you know that you can use <a href="http://resources.vordel.com/index.php/api-tester-test-apis-policies-configurations-clients-providers/">Vordel SOAPbox</a> to send a SOAP message onto a JMS message queue? You can choose to send it as a normal TextMessage, or an ObjectMessage. But you can also choose to use the &#8220;SOAP over JMS Message Service&#8221; proposal to place the message.</p>
<p>Just choose Design mode instead of Classic mode in the tabs in the top-right, and then drag in a &#8220;Messaging System&#8221; filter onto the canvas. You might notice that the &#8220;drag and join&#8221; configuration of SOAPbox is very similar to how the <a href="http://www.vordel.com/products/API-Server.html">Vordel Gateway</a> is configured. So you can test the JMS service in exactly the same way as you configure the connection to the JMS service.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/SOAPbox-DesignMode.jpg"><img class="alignleft size-full wp-image-2805" title="SOAPbox-Design-Mode" src="http://resources.vordel.com/wp-content/uploads/2013/05/SOAPbox-DesignMode.jpg" alt="" width="400" height="242" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-send-a-message-on-to-a-queue-with-jms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to monitor Salesforce</title>
		<link>http://resources.vordel.com/index.php/how-to-monitor-salesforce/</link>
		<comments>http://resources.vordel.com/index.php/how-to-monitor-salesforce/#comments</comments>
		<pubDate>Mon, 13 May 2013 10:52:15 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Keys]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[Salesforce]]></category>
		<category><![CDATA[SalesForce API]]></category>
		<category><![CDATA[Vordel]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2790</guid>
		<description><![CDATA[How to monitor Salesforce.com usage traffic Monitoring SalesForce.com Usage, traffic and response times One of my favorite Web APIs to use in demos is SalesForce.com . SalesForce has a ton of information about their API on their developer site. The &#8230; <a href="http://resources.vordel.com/index.php/how-to-monitor-salesforce/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to monitor Salesforce.com usage traffic</strong></p>
<p>Monitoring SalesForce.com Usage, traffic and response times</p>
<p>One of my favorite Web APIs to use in demos is SalesForce.com . SalesForce has a ton of information about their API on their <a href="http://www.salesforce.com/us/developer/docs/api/index.htm">developer site</a>. The Vordel API Sever can be used to connect up to SalesForce, including sending up the API Key and caching the Session Identifier which is returned back by SalesForce.</p>
<p>One of the neat things is that all traffic from the app to the SalesForce API is now monitored by the Vordel API Server. There are many advantages to this, which I will delve deeper into in later posts. But, one key advantage is that &#8220;rogue cloud service usage&#8221; is stamped out, since it appears on the Real-Time Monitoring of the Gateway:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/MonitoringConnectionToSalesForce.jpg"><img class="alignleft size-full wp-image-2792" title="Monitoring-Connection-To-SalesForce" src="http://resources.vordel.com/wp-content/uploads/2013/05/MonitoringConnectionToSalesForce.jpg" alt="" width="400" height="359" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Any issues with the data being sent to SalesForce, such when the Vordel API Server detects and blocks sensitive information which should not go up to SalesForce, is instantly viewable.</p>
<p>Similarly, the response time from SalesForce.com is monitored. It&#8217;s easy to see the bytes in, bytes out, and the response times and codes from SalesForce.com, using the Vordel API Server.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/SalesForceResponse.jpg"><img class="alignleft size-full wp-image-2793" title="SalesForce-Response" src="http://resources.vordel.com/wp-content/uploads/2013/05/SalesForceResponse.jpg" alt="" width="400" height="338" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-monitor-salesforce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to validate a SAML 2.0 assertion</title>
		<link>http://resources.vordel.com/index.php/how-to-validate-a-saml-2-0-assertion/</link>
		<comments>http://resources.vordel.com/index.php/how-to-validate-a-saml-2-0-assertion/#comments</comments>
		<pubDate>Fri, 10 May 2013 14:16:52 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[How to validate a SAML 2.0 assertion]]></category>
		<category><![CDATA[SAML]]></category>
		<category><![CDATA[SAML 2.0]]></category>
		<category><![CDATA[SAML Assertion]]></category>
		<category><![CDATA[validate a SAML 2.0 assertion]]></category>
		<category><![CDATA[Vordel API Gateway]]></category>
		<category><![CDATA[Vordel Blog]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XML Gateway]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2775</guid>
		<description><![CDATA[How to validate a SAML 2.0 assertion More SAML: Validating a SAML 2.0 Assertion It&#8217;s simple to setup the validation of a signed SAML 2.0 assertion in a Vordel XML Gateway. In a circuit, chain together (1) an &#8220;XML Signature &#8230; <a href="http://resources.vordel.com/index.php/how-to-validate-a-saml-2-0-assertion/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to validate a SAML 2.0 assertion</strong></p>
<p>More SAML: Validating a SAML 2.0 Assertion</p>
<p>It&#8217;s simple to setup the validation of a signed SAML 2.0 assertion in a Vordel <a href="http://www.vordel.com/products/API-Server.html">XML Gateway</a>. In a circuit, chain together (1) an &#8220;XML Signature Verification&#8221; filter (which you can find in the &#8220;Integrity&#8221; group on the right-hand-side of Policy Studio), and (2) a &#8220;SAML Authentication&#8221; filter (which you can find in the &#8220;Authentication&#8221; group).</p>
<p>With XML Signature Verification filter, make sure that the SAML assertion is selected under &#8220;What must be signed&#8221;. In the filter to validate the SAML assertion, make sure that it&#8217;s a SAML 2.0 assertion.</p>
<p>Really what we are doing here is first verifying the SAML assertion (i.e. checking it&#8217;s trusted, using its signature) and then validating it (making sure it&#8217;s the right format). By checking the trust first, we are ensuring that we are not wasting time validating an untrusted SAML assertion. It is important to understand the difference between verifying and validating a token like this. The configuration for the validation step is shown below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/ValidateSAML1.jpg"><img class="alignleft size-full wp-image-2777" title="ValidateSAML" src="http://resources.vordel.com/wp-content/uploads/2013/05/ValidateSAML1.jpg" alt="" width="400" height="213" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>To test this circuit, I am using the <a href="http://resources.vordel.com/index.php/api-tester-test-apis-policies-configurations-clients-providers/">SOAPbox testing tool</a>.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/05/ValidAssertion.jpg"><img class="alignleft size-full wp-image-2778" title="ValidAssertion" src="http://resources.vordel.com/wp-content/uploads/2013/05/ValidAssertion.jpg" alt="" width="400" height="213" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>We see on the Response screen of SOAPbox that the assertion we&#8217;ve sent is indeed valid. If you change its signature in any way, the Vordel Gateway will reject it.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-validate-a-saml-2-0-assertion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to convert from REST to SOAP</title>
		<link>http://resources.vordel.com/index.php/how-to-convert-from-rest-to-soap-2/</link>
		<comments>http://resources.vordel.com/index.php/how-to-convert-from-rest-to-soap-2/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:09:23 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[convert from REST to SOAP]]></category>
		<category><![CDATA[Convert REST to SOAP]]></category>
		<category><![CDATA[Create SOAP]]></category>
		<category><![CDATA[How to convert from REST to SOAP]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[REST API]]></category>
		<category><![CDATA[REST Request]]></category>
		<category><![CDATA[REST Services]]></category>
		<category><![CDATA[REST To SOAP]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[SOAP Message]]></category>
		<category><![CDATA[SOAP Services]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[SSL Authentication]]></category>
		<category><![CDATA[Vordel]]></category>
		<category><![CDATA[Vordel Blog]]></category>
		<category><![CDATA[XML Gateway]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2471</guid>
		<description><![CDATA[How to convert from REST to SOAP The popular advantages of REST over SOAP are well known: It&#8217;s easier to write a REST client, the messages are smaller, you can cache REST traffic using standard Web infrastructure. But what if &#8230; <a href="http://resources.vordel.com/index.php/how-to-convert-from-rest-to-soap-2/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>How to convert from REST to SOAP</p>
<p>The popular advantages of REST over SOAP are well known: It&#8217;s easier to write a REST client, the messages are smaller, you can cache REST traffic using standard Web infrastructure. But what if you have SOAP Web Services and your clients are crying out for REST Web Services instead?</p>
<p>Here is how you create REST Web Services in front of SOAP services using Policy Studio and the Vordel XML Gateway&#8230;(<a href="http://www.vordel.com/products/API-Server.html">http://www.vordel.com/products/API-Server.html</a>)</p>
<p>To do this, create a policy which reads parameters from the REST URL and then inserts those parameters into a SOAP message which it creates on-the-fly. This is shown in the screenshot below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/REST-to-SOAP1.jpg"><img class="alignleft size-full wp-image-2474" title="REST-to-SOAP" src="http://resources.vordel.com/wp-content/uploads/2013/04/REST-to-SOAP1.jpg" alt="" width="320" height="240" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span id="more-2471"></span></p>
<p>Let&#8217;s look at one of the filters which retrieves parameters from the REST request. This is added to the policy by dragging and dropping it from the &#8220;attributes&#8221; group (a REST parameter is an example of a message attribute).</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/RetrieveCustomerID.jpg"><img class="alignleft size-full wp-image-2475" title="RetrieveCustomerID" src="http://resources.vordel.com/wp-content/uploads/2013/04/RetrieveCustomerID.jpg" alt="" width="320" height="309" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Once the attributes are read in from the REST request, we create a SOAP message using a &#8220;Set Message&#8221; filter, as shown below. The message attributes are written dynamically into this SOAP message which is created on-the-fly. You can see the message attributes below, with the dollar signs and curly braces:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/CreateSOAP.jpg"><img class="alignleft size-full wp-image-2476" title="CreateSOAP" src="http://resources.vordel.com/wp-content/uploads/2013/04/CreateSOAP.jpg" alt="" width="320" height="309" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The upshot is that now a REST client, such as an XMLHttpRequest object running in a browser, can access a URL like this <a href="http://xmlgateway:8080/QuotationRequest?CustomerID=1234&amp;CommencementDate=Jan2008">http://xmlgateway:8080/QuotationRequest?CustomerID=1234&amp;CommencementDate=Jan2008</a> and then this results in the XML Gateway sending a SOAP request to a Web Service which looks like this:</p>
<p>&lt;soap:envelope soap=&#8221;http://schemas.xmlsoap.org/soap/envelope/&#8221;&gt;</p>
<p>&lt;soap:body&gt;</p>
<p>&lt;m:getquotation m=&#8221;http://www.example.org/&#8221;&gt;</p>
<p>&lt;customerid&gt;1234&lt;/customerid&gt;</p>
<p>&lt;commencementdate&gt;Jan2008&lt;/commencementdate&gt;</p>
<p>&lt;/m:getquotation&gt;</p>
<p>&lt;/soap:body&gt;</p>
<p>&lt;/soap:envelope&gt;</p>
<p>The overall picture is shown below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/Schematic.jpg"><img class="alignleft size-full wp-image-2477" title="Schematic" src="http://resources.vordel.com/wp-content/uploads/2013/04/Schematic.jpg" alt="" width="320" height="56" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>This is a nice example of &#8220;service virtualization&#8221;. The REST service in this example is a &#8220;virtual service&#8221;, since it doesn&#8217;t actually exist on the Web Service platform itself. Only the SOAP service exists there. The XML Gateway exposes the REST service as a &#8220;virtual service&#8221;. This has security advantages, since there is nothing so secure as something which doesn&#8217;t even exist. The REST service does not exist on the Web Services platform. It only exists on the locked down, hardened XML Gateway as a virtual service.</p>
<p>The REST parameters can be scanned using a &#8220;Threatening Content&#8221; filter dragged into the policy in Policy Studio. This is shown below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/Scan.jpg"><img class="alignleft size-full wp-image-2478" title="Scan" src="http://resources.vordel.com/wp-content/uploads/2013/04/Scan.jpg" alt="" width="285" height="320" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>In addition, authentication can be added, for example using HTTP client authentication or SSL mutual authentication.</p>
<p>Using this technique, clients can access a REST service, gaining the advantages of REST, while the service provider is safe in the knowledge that they haven&#8217;t just opened up a backdoor into their SOAP services.</p>
<p>&nbsp;</p>
<div style="width: 340px;"><a href="http://resources.vordel.com/index.php/ebook-how-to-build-an-enterprise-api-platform/"><img title="ebook - 20 Ways To Better Deliver, Manage &amp; Secure APIs" src="http://www.vordel.com/images/cta5/ebook.jpg" alt="How To Build An Enterprise API Platform" width="340" height="216" border="0" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-convert-from-rest-to-soap-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to run the API Server as a Windows Service</title>
		<link>http://resources.vordel.com/index.php/how-to-run-the-api-server-as-a-windows-service/</link>
		<comments>http://resources.vordel.com/index.php/how-to-run-the-api-server-as-a-windows-service/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:07:37 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[download API Server]]></category>
		<category><![CDATA[Vordel]]></category>
		<category><![CDATA[Vordel API Gateway]]></category>
		<category><![CDATA[Vordel Blog]]></category>
		<category><![CDATA[Windows Service]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2506</guid>
		<description><![CDATA[How to run the API Server as a Windows Service Pro tip: Running Vordel API Server analytics as a Windows service If you&#8217;ve downloaded the Vordel API Server v7.1 from the Vordel website and want to configure it to run &#8230; <a href="http://resources.vordel.com/index.php/how-to-run-the-api-server-as-a-windows-service/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to run the API Server as a Windows Service</strong></p>
<p>Pro tip: Running Vordel API Server analytics as a Windows service</p>
<p>If you&#8217;ve <a href="http://resources.vordel.com/index.php/downloads/">downloaded the Vordel API Server v7.1 from the Vordel website</a> and want to configure it to run analytics as a Windows service, it&#8217;s quite simple to do this. The command is:</p>
<p><span id="more-2506"></span></p>
<p>installservice.bat &#8220;C:\Vordel-7.1.0\analytics&#8221; &#8220;analytics&#8221; &#8220;7.1&#8243; analytics.xml</p>
<p>Where &#8220;analytics&#8221; is the name you want to give the service, and &#8220;7.1&#8243; is the version number. The installservice.bat script can be found under the /win32/bin folder of the API Server installation.</p>
<p>Once you run this, hey presto, you&#8217;ll see Vordel API Server analytics in your list of Windows services:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/analytics1.png"><img class="alignleft size-full wp-image-2508" title="analytics" src="http://resources.vordel.com/wp-content/uploads/2013/04/analytics1.png" alt="" width="320" height="114" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Note: Ensure you run the installservice.bat with the permissions to create a Windows Service, otherwise you will see an &#8220;Access is denied. Could not open service control manager&#8221; error.</p>
<p>&nbsp;</p>
<div style="width:340px">
<a href="http://resources.vordel.com/index.php/ebook-how-to-build-an-enterprise-api-platform/"><img src="http://www.vordel.com/images/cta5/ebook.jpg" title="ebook - 20 Ways To Better Deliver, Manage &#038; Secure APIs" width="340" height="216" alt="How To Build An Enterprise API Platform" border="0"></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-run-the-api-server-as-a-windows-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to convert XML to JSON</title>
		<link>http://resources.vordel.com/index.php/how-to-convert-xml-to-json/</link>
		<comments>http://resources.vordel.com/index.php/how-to-convert-xml-to-json/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:05:41 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[convert XML to JSON]]></category>
		<category><![CDATA[How to convert XML to JSON]]></category>
		<category><![CDATA[SOAPbox]]></category>
		<category><![CDATA[Vordel]]></category>
		<category><![CDATA[Vordel Blog]]></category>
		<category><![CDATA[XML Gateway]]></category>
		<category><![CDATA[XML to JSON]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2494</guid>
		<description><![CDATA[How to convert XML to JSON JSON is a very popular choice for transmitting data on the wire, especially since it is widely used for Apple iPhone app development. The usage of JSON allows a developer to skip the step &#8230; <a href="http://resources.vordel.com/index.php/how-to-convert-xml-to-json/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to convert XML to JSON</strong></p>
<p>JSON is a very popular choice for transmitting data on the wire, especially since it is <a href="http://mobileorchard.com/tutorial-json-over-http-on-the-iphone/">widely used for Apple iPhone app development</a>. The usage of JSON allows a developer to skip the step in the browser where incoming XML must be parsed and read into an object. Instead, a serialized JavaScript object is sent, often including the data it needs already. So, no need for XML. But, in order to create this JSON structure in the first place, it is a good idea to offload this task onto an appliance such as an <a href="http://www.vordel.com/products/API-Server.html">XML Gateway</a>. The XML Gateway then serves up the JSON (to an iPhone for example), dynamically converting it from the source XML.</p>
<p>Here you can see XML being converted dynamically to JSON by an XML Gateway, as tested using the free <a href="http://resources.vordel.com/index.php/api-tester-test-apis-policies-configurations-clients-providers/">SOAPbox</a> tool:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/XMLtoJSON.jpg"><img class="alignleft size-full wp-image-2495" title="XMLtoJSON" src="http://resources.vordel.com/wp-content/uploads/2013/04/XMLtoJSON.jpg" alt="" width="400" height="271" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span id="more-2494"></span></p>
<p>This is enabled at the Gateway side by a relatively simple circuit. One key gotcha to remember is that when serving up JSON; make sure the content type is set to &#8220;application/json&#8221;. Otherwise, clients may choke on it since they will not realize what it is.</p>
<p>Grab a copy of the Vordel Gateway to test this XML-to-JSON functionality here: <a href="http://vordel.com/products/vx_gateway/">http://vordel.com/products/vx_gateway/</a></p>
<div style="width:340px">
<a href="http://resources.vordel.com/index.php/ebook-how-to-build-an-enterprise-api-platform/"><img src="http://www.vordel.com/images/cta5/ebook.jpg" title="ebook - 20 Ways To Better Deliver, Manage &#038; Secure APIs" width="340" height="216" alt="How To Build An Enterprise API Platform" border="0"></a>
</div>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-convert-xml-to-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
		<item>
		<title>How to throttle API traffic</title>
		<link>http://resources.vordel.com/index.php/how-to-throttle-api-traffic/</link>
		<comments>http://resources.vordel.com/index.php/how-to-throttle-api-traffic/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 15:04:00 +0000</pubDate>
		<dc:creator>david.murphy@vordel.com</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[API Gateway]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Server]]></category>
		<category><![CDATA[How to throttle API traffic]]></category>
		<category><![CDATA[Policy Studio]]></category>
		<category><![CDATA[SOAPbox]]></category>
		<category><![CDATA[throttle API]]></category>
		<category><![CDATA[throttle API traffic]]></category>
		<category><![CDATA[Vordel]]></category>
		<category><![CDATA[Vordel API Gateway]]></category>
		<category><![CDATA[Vordel Blog]]></category>

		<guid isPermaLink="false">http://resources.vordel.com/?p=2513</guid>
		<description><![CDATA[How to throttle API traffic Here&#8217;s a guide to setting up throttling in the Vordel Gateway: If you&#8217;ve already registered a WSDL, skip forward to step 4. Step 1: Open Policy Studio. Connect to the Gateway you wish to configure &#8230; <a href="http://resources.vordel.com/index.php/how-to-throttle-api-traffic/">Continue&#160;reading&#160;<span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>How to throttle API traffic</strong></p>
<p>Here&#8217;s a guide to setting up throttling in the Vordel Gateway:</p>
<p>If you&#8217;ve already registered a WSDL, skip forward to step 4.</p>
<p>Step 1: Open Policy Studio. Connect to the Gateway you wish to configure your policy on.</p>
<p>Once you connect, choose &#8220;Edit Active Configuration&#8221;.</p>
<p>New Web Services are registered in the &#8220;Web Service Repository&#8221; which is accessed under the &#8220;Policies&#8221; group on the left-hand-side.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/OpenPolicyStudio.jpg"><img class="alignleft size-full wp-image-2516" title="Open Policy Studio" src="http://resources.vordel.com/wp-content/uploads/2013/04/OpenPolicyStudio.jpg" alt="" width="400" height="186" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span id="more-2513"></span></p>
<p>&nbsp;</p>
<p>Step 2: Right-click on the &#8220;Web Service Repository&#8221; and choose &#8220;Register Web Service&#8221;. Note that the Web Services are arranged in groups, and you can rename these groups. In the screenshot below you can see that we&#8217;ve created a group called &#8220;B2B Web Services&#8221;.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/RegisterWebService.jpg"><img class="alignleft size-full wp-image-2517" title="Register Web Service" src="http://resources.vordel.com/wp-content/uploads/2013/04/RegisterWebService.jpg" alt="" width="400" height="185" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Step 3: Select your WSDL (either via URL, file, or UDDI) and then walk through the wizard. Choose the location to deploy your virtualized service. Out of the box, there is a set of services called &#8220;Default Services&#8221; on port 8080 in , but you can rename this or change the port. You can also add a new service group (e.g. called &#8220;SSL Services&#8221;) with a different listening interface (create the new services, then right-click and choose &#8220;Add interface&#8221;).</p>
<p>Don&#8217;t check the box right now to &#8220;Secure this Web Service&#8221;. You&#8217;ll then see a &#8220;Summary&#8221; screen in the wizard, which says what path the Virtual Service has been deployed on. Take note of this path. Press OK and then press the &#8220;Deploy&#8221; button on Policy Studio to deploy. Now open the WSDL in the browser. Note that will automatically virtualize the service hostname in the WSDL (as explained here: <a href="http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html">http://www.soatothecloud.com/2011/06/how-to-enable-service-virtualization.html</a> ).</p>
<p>Step 4: Right-click on &#8220;Policies&#8221; in Policy Studio and select &#8220;Add Policy&#8221;. If you already have created a contained to contain your policies, you can right-click on your container and make your policy there. Note that containers are a way to group policies together, e.g. for importing and exporting them together, but don&#8217;t affect the running of the policies.</p>
<p>Call your new policy &#8220;Throttling&#8221;</p>
<p>Step 5. Drag in a &#8220;Throttling&#8221; filter, which you can find in the &#8220;Content Filtering&#8221; group. Configure with &#8220;10 messages in 1 minute&#8221; as shown in the screenshot below. Note that the Gateway must retain state for the messages, because it stores the message count. So, this is stored in a cache [called "Maximum Messages" in the screenshot]. You can add another cache, or edit the cache name, under &#8220;External Connections&#8221; in Policy Studio.</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/ThrottlingSettings.jpg"><img class="alignleft size-full wp-image-2518" title="Throttling Settings" src="http://resources.vordel.com/wp-content/uploads/2013/04/ThrottlingSettings.jpg" alt="" width="348" height="400" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>When you drag in the filter on to the policy canvas, it is initially gray because it is not being used yet. Right-click on this filter and choose &#8220;Set as start&#8221;. Now it is no longer grayed out. However, it is outlined in red because it requires an input (the messages) which it is not getting at the moment. For it to get this input, it must be &#8220;wired up&#8221; to policy that is receiving a message through a listening interface.</p>
<p>Step 6: In Policy Studio, look under &#8220;Policies&#8221; and then &#8220;Generated Circuits&#8221; to find the service you&#8217;ve registered in Step 3. Double-click on the filter called &#8220;Service Handler for &#8221;. Then open the &#8220;Message Interception Points&#8221; tab. Under &#8220;Before Operation-specific Policy&#8221; press on the &#8220;&#8230;&#8221; button to choose the policy you made in step 5 to do throttling. Once it is mapped, you should see the mapping set. Make sure you press the &#8220;Deploy&#8221; button on the Policy Studio toolbar to deploy this policy.</p>
<p>Step 7: Open the SOAPbox testing tool (<a href="http://resources.vordel.com/index.php/api-tester-test-apis-policies-configurations-clients-providers/">a free download from here</a>). We will be using SOAPbox to test our throttling policy. Open the Virtual Service WSDL which you obtained from Step 3. [Tip: The Service Manager interface, under :8090/ , also allows you to see the Virtual Service WSDL, if you connect with a role which allows you to use Service Manager]. In SOAPbox , press on the import WSDL and import the Virtualized WSDL (note: not the actual WSDL from the back-end service you&#8217;ve registered, otherwise you&#8217;ll simply send your messages to the back-end services and not through ).</p>
<p>Step 8: You&#8217;ll see a sample message created for you in SOAPbox. Send the message through to with SOAPbox, by pressing the green triangular &#8220;play&#8221; button. Keep pressing the button until you reach the throttling limit. This message will be blocked. Note that you can customize the response message, since in a production system it is not usual to return a SOAP Fault to clients.</p>
<p>Step 9: View the blocked message in the Vordel Gateway&#8217;s Real-Time Monitoring by pointing a browser to :8090/ and then clicking on &#8220;Real-Time Monitoring&#8221;. Note that you&#8217;ll have to login as a user with a role which allows viewing of Real-Time Monitoring. The screen is shown in the screenshot below:</p>
<p><a href="http://resources.vordel.com/wp-content/uploads/2013/04/BlockedThrottling.jpg"><img class="alignleft size-full wp-image-2519" title="Blocked Throttling" src="http://resources.vordel.com/wp-content/uploads/2013/04/BlockedThrottling.jpg" alt="" width="400" height="180" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Other steps: If you add a Distributed Cache (under &#8220;External Connections&#8221; then &#8220;caches&#8221; then &#8220;Add&#8221; in the botton-right) then you can set two or more Gateways to use the same cache. This means that if the traffic is being distributed across them, then the throttling count is cumulative over them (e.g. if 5 requests come to 1, and 5 to 2, then the value in the cache will be 10).</p>
<p>&nbsp;</p>
<div style="width: 340px;"><a href="http://resources.vordel.com/index.php/ebook-how-to-build-an-enterprise-api-platform/"><img title="ebook - 20 Ways To Better Deliver, Manage &amp; Secure APIs" src="http://www.vordel.com/images/cta5/ebook.jpg" alt="How To Build An Enterprise API Platform" width="340" height="216" border="0" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://resources.vordel.com/index.php/how-to-throttle-api-traffic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<icon>http://www.vordel.com/images/icon/blog.gif</icon>
		</item>
	</channel>
</rss>
 


