<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>vordelfeeds</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=343f7adb581c354a15a7c7981d82cacb</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=343f7adb581c354a15a7c7981d82cacb&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 22:52:30 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>Live from 36000 Feet - How to deploy the Vordel Gateway in Multiple Environments</title>
         <link>http://xmlgateway.blogspot.com/2011/08/live-from-36000-feet-how-to-deploy.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;First of all, a quick acknowledgement of  my lack of blogging.  Life at Vordel has been really fast paced, and I've been traveling the country working on a lot of interesting use cases with some really great customers.  I'm flying from San Diego to San Francisco, and this flight has WiFi, so I guess I'm out of excuses.&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 238);&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 238);&quot;&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;A quick note on feature that was added in 6.0.3 - envSettings.properties.  This is the ability to externalize attribute values in the gateway's per environment.  The file can be found in the $VINSTDIR&amp;#92;conf directory.  The text below, from the file explains how to use it.&lt;/div&gt;&lt;div&gt;&lt;blockquote style=&quot;font-size:large;&quot;&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;# This file is read when the server starts up. If a server configuratio&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 238);&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;n contains a value in the format &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;# ${env.X}, where X is any string (for example, MyCustomSetting), this file MUST contain an equivalent &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;# name-value pair of env.MyCustomSetting=MyCustomValue.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;# When the server starts up, every occurrence of env.MyCustomSetting is expanded to the value of MyCustomValue.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;# For example, if a port in the server configuration is set to ${env.LISTENER_PORT}, specifying a name-value &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;# pair of env.LISTENER_PORT=8080 results in the server opening up port 8080 at start up.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;env.LISTENER_PORT=8080&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Here we see the corresponding configuration in the Policy Studio&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-size:large;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-size:large;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size:16px;&quot;&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 238);&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/-VHuLiKxO53Y/TlUF7a_DMDI/AAAAAAAAAC0/RjH3lIjJXQg/s400/blog1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5644424226392977458&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:400px;height:259px;&quot;/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This is a very simple. but powerful approach for configuring the gateway to work across environments.  It also aligns nicely with most enterprises existing approach for moving configurations among environments.&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Looks like I forgot to charge my battery, and no AC power on the flight, so this is going to have to be a short post :)&lt;/div&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-6937289213705009988</guid>
         <pubDate>Wed, 24 Aug 2011 06:56:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-VHuLiKxO53Y/TlUF7a_DMDI/AAAAAAAAAC0/RjH3lIjJXQg/s72-c/blog1.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Finalized Agenda for First Meeting of the Boston Chapter of CSA - NOTE: NEW LOCATION</title>
         <link>http://xmlgateway.blogspot.com/2011/04/finalized-agenda-for-first-meeting-of.html</link>
         <description>I've got the agenda for the first meeting of the Boston Chapter of the Cloud Security Alliance.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;When:&lt;/b&gt; Wednesday April 27, 2011 - 6:00 PM - 7:30 PM&lt;br /&gt;&lt;b&gt;Where:  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://maps.google.com/maps?q=100+staples+drive+framingham+ma&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;hq=&amp;amp;hnear=100+Staples+Dr,+Framingham,+MA+01702&amp;amp;gl=us&amp;amp;ei=LKqxTf6pDcSy8QPG_cmVDA&amp;amp;sa=X&amp;amp;oi=geocode_result&amp;amp;ct=title&amp;amp;resnum=1&amp;amp;ved=0CBUQ8gEwAA&quot;&gt;CA Offices in Framingham, MA&lt;/a&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://maps.google.com/maps?q=100+staples+drive+framingham+ma&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;hq=&amp;amp;hnear=100+Staples+Dr,+Framingham,+MA+01702&amp;amp;gl=us&amp;amp;ei=LKqxTf6pDcSy8QPG_cmVDA&amp;amp;sa=X&amp;amp;oi=geocode_result&amp;amp;ct=title&amp;amp;resnum=1&amp;amp;ved=0CBUQ8gEwAA&quot;&gt;&lt;/a&gt;Agenda: &lt;/b&gt;Two presentations, each with their own unique and insightful perspectives on the topic of cloud security.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse:collapse;font-family:arial, sans-serif;font-size:14px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color:black;&quot;&gt;Presentation #1: &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse:collapse;font-family:arial, sans-serif;font-size:14px;&quot;&gt;Cloud Computing Risks&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color:black;&quot;&gt;Speaker Bio:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.linkedin.com/pub/bhargav-shah/3/748/b24&quot;&gt;Bhargav Shah&lt;/a&gt; is a Director within &lt;span class=&quot;il&quot; style=&quot;background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);&quot;&gt;KPMG&lt;/span&gt; Advisory practice.  He has over 12 years of experience as a trusted advisor to C-level and Senior IT leadership having led multiple engagements in Outsourcing, Cloud Computing, IT Solution Delivery/Application Development, Process Engineering, and IT Services Management.  Mr. Shah regularly speaks at conferences and IT leadership forums on various topics related to Outsourcing and Cloud Computing. He also leads &lt;span class=&quot;il&quot; style=&quot;background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);&quot;&gt;KPMG&lt;/span&gt;’s solution development initiatives related to IT implications of cloud computing.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color:black;&quot;&gt;Abstract:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt;As the paradigms of technology consumption change, cloud computing is at the forefront of an IT transformation providing infrastructure, platforms, and software as services to the business. While some call it a technology fad, the pervasive buzz around cloud computing is here to stay. Cloud computing provides many benefits but introduces just as many risks. Successful organizations must understand and mitigate these risks to get more out of their cloud computing initiatives.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt;In this session, Bhargav Shah will share his insights on the types of risk you need to be aware of while utilizing cloud computing, how they vary by cloud model you use (Public vs. Private) and what controls you can consider to mitigate some of these risks associated with cloud computing.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-collapse:collapse;font-family:arial, sans-serif;font-size:13px;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;border-collapse:separate;color:black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse:collapse;font-family:arial, sans-serif;font-size:14px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color:black;&quot;&gt;Presentation #2: &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse:collapse;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Cloud Computing and it’s impact of Identity &amp;amp; Access Management (IAM) Infrastructure&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-size:16px;font-family:Georgia, serif;border-collapse:separate;color:black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse:collapse;font-family:arial, sans-serif;font-size:15px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-collapse:separate;font-size:16px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse:collapse;font-size:13px;&quot;&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;color:black;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color:black;&quot;&gt;Speaker Bio:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;color:black;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size:13px;line-height:16px;border-collapse:separate;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;text-align:justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.linkedin.com/pub/robert-levine/0/b9b/4b7&quot;&gt;Robert Levine&lt;/a&gt; brings more than 25 years of technology management experience to SENA Systems that includes significant customer and vendor side enterprise software and knowledge. Robert has served as SENA’s President &amp;amp; CEO since 2001 and with the SENA management team has overseen its growth in the US, Europe, Asia and the India operations center as well as its merger in March of 2008 with aurionPro Solutions LTD. Robert presently holds the position of President of aurionPro Solutions Inc as well as the head of the SENA Systems business unit. Prior to joining SENA Systems, Robert worked for Venture Consulting Group, Inc. a provider of management services to early stage and restructuring companies, as a strategic business advisor to both public and private companies.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:16px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;text-align:justify;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Robert previously served as the VP of Business Development for Transindigo, a startup e-infrastructure company providing mission critical solutions for securely managing transactional entitlements and authorizations that was sold to RSA. Robert also served as the co-concept originator, interim CEO and technical advisor to Transindigo prior to its launch in January 2000. Prior to Transindigo, Robert served as Managing Director, Deutsche Bank Strategic Ventures and as Managing Director in Bankers Trust's Technology and Operations Group where he was a member of the management team responsible for Global Technology Infrastructure. Robert served on the board of IQ Financial, a global software supplier of front, middle and back-office financial services technology selling to global financial firms that was later sold to Misys. He also served as the technical advisory board of mFormation a wireless network management products and services company. Robert was a founding member and Vice President of SIMC, a nonprofit organization, that focused on advancing the capabilities of middleware in the financial services industry. Robert is a strong believer of community service and currently serves in a Line Officer capacity as Sergeant of his local community EMS Rescue Squad&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;color:black;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color:black;&quot;&gt;Abstract: &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;color:black;&quot;&gt;&lt;span style=&quot;color:black;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height:14px;&quot;&gt;No conference, seminar or a CXO level technology roadmap meeting today is complete withouta discussion on Cloud Computing. Every organization is asking the question – how could, would and should cloud computing impact or&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height:14px;&quot;&gt; influence their plans related to IAM.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;color:black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height:14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;color:black;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size:13px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;&quot;&gt;In &lt;span class=&quot;il&quot; style=&quot;background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);&quot;&gt;SENA&lt;/span&gt;’ talk on Cloud Computing we will discuss the following considerations:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right:0in;margin-left:0.25in;margin-bottom:0.0001pt;line-height:normal;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;font-family:Symbol;&quot;&gt;&lt;span&gt;·&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;&quot;&gt;Two Fold impact of Cloud Computing on IAM Services&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right:0in;margin-left:0.75in;margin-bottom:0.0001pt;line-height:normal;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;font-family:'Courier New';&quot;&gt;&lt;span&gt;o&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;&quot;&gt;Protecting cloud based applications with should IAM Services.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.75in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:'Courier New';&quot;&gt;&lt;span&gt;o&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt;Providing IAM Services over a Cloud infrastructure.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.25in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.25in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:Symbol;&quot;&gt;&lt;span&gt;·&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt;IAM Infrastructure&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.75in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:'Courier New';&quot;&gt;&lt;span&gt;o&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt;Considerations related to &lt;i&gt;Software as a Service&lt;/i&gt;, &lt;i&gt;Platform as a Service&lt;/i&gt; and &lt;i&gt;Infrastructure as a Service&lt;/i&gt; including &lt;span class=&quot;il&quot; style=&quot;background-color:rgb(255, 255, 204);color:rgb(34, 34, 34);&quot;&gt;SENA&lt;/span&gt;’s plans regarding such offerings.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.75in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:'Courier New';&quot;&gt;&lt;span&gt;o&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt;Differentiating the advantages and challenges related to&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:1.25in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:Wingdings;&quot;&gt;&lt;span&gt;§&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt;Identity Management&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:1.25in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:Wingdings;&quot;&gt;&lt;span&gt;§&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;&quot;&gt;Access Management&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height:14px;&quot;&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.25in;font-family:arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-size:10pt;line-height:14px;font-family:Symbol;&quot;&gt;&lt;span&gt;·&lt;span style=&quot;font:normal normal normal 7pt/normal 'Times New Roman';&quot;&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height:14px;&quot;&gt;A frank assessment of where the security industry is with regards to Cloud offerings.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left:0.25in;font-family:arial, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height:14px;&quot;&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-673988954805110489</guid>
         <pubDate>Fri, 22 Apr 2011 09:14:00 +0000</pubDate>
      </item>
      <item>
         <title>Call for Speakers - First Meeting of the Boston CSA Chapter - April 27 6:00 @ Oracle Offices in Burlignton</title>
         <link>http://xmlgateway.blogspot.com/2011/03/call-for-speakers-first-meeting-of.html</link>
         <description>I'm happy to announce that we're going to have our first meeting of the Boston Chapter of the Cloud Security Alliance on Wednesday, April 27th at 6:00 at the Oracle office in Burlington, MA.&lt;br /&gt;&lt;br /&gt;The topic for this meeting is Cloud Security Architecture.  We wanted to cover both the conceptual (NIST, CSA Reference Architecture, etc) and the practical - real world examples of what people are using/deploying in their environments. The agenda will be something like this:&lt;br /&gt;&lt;br /&gt;6:00 - 6:15 Introductions&lt;br /&gt;6:15 - 6:45 Presentation 1 - Cloud Security Architecture - Conceptual &lt;br /&gt;6:45 - 7:15 Break/Networking Session&lt;br /&gt;7:15 - 7:45 Presentation 2 - Cloud Security Architecture - Practical/Use Case&lt;br /&gt;7:45 - 8:00 Closing&lt;br /&gt;&lt;br /&gt;We're looking for speakers on both the abstract notion of &quot;What is Cloud Security Architecture?&quot;  and a more practical hands on use-case driven view of the topic.  If you are interested in speaking or participating in a round-table type discussion, please send me which topic you're interested in presenting, and speaker's BIO (linkedin profile).  Please send this to me (josh.bregman@vordel.com) by Thursday, March 31st.&lt;br /&gt;&lt;br /&gt;Looking forward to a great first session.</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-8561678159905456306</guid>
         <pubDate>Mon, 21 Mar 2011 07:03:00 +0000</pubDate>
      </item>
      <item>
         <title>Minutes from the Boston Chapter of the CSA's first Board Meeting</title>
         <link>http://xmlgateway.blogspot.com/2011/03/minutes-from-boston-chapter-of-csa-1st.html</link>
         <description>After many scheduling challenges, we had our first CSA Boston Chapter Board Meeting.  The &quot;Board&quot; consists of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.linkedin.com/in/joshbregman&quot;&gt;me&lt;/a&gt; (Vordel), &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.linkedin.com/in/mishraprateek&quot;&gt;Prateek Mishra&lt;/a&gt; (Oracle),&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.linkedin.com/pub/matthew-gardiner/0/485/9a0&quot;&gt;Matthew Gardiner&lt;/a&gt; (CA), and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.linkedin.com/pub/kevin-fox/1/1a0/106&quot;&gt;Kevin Fox&lt;/a&gt; (Cisco).  A really good session for planning out the year.  Here's the basic thinking:&lt;br /&gt;&lt;br /&gt;- Divide the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cloudsecurityalliance.org/certifyme.html&quot;&gt;CSA guidance&lt;/a&gt; into 4 units and have 1 meeting focused around each unit&lt;br /&gt;- The events will be about 2 hours - 1 hour on high-level information contained in the CSA guidance and 1 hour on a lower level details of someone who is actually living/implementing the scenario&lt;br /&gt;- We'll rotate the location among CA, Oracle and Cisco locations - basically 128/495&lt;br /&gt;&lt;br /&gt;The next steps are to have Matt, since it was his idea, to group the domains into the four meeting &quot;buckets&quot;, and for us to meet again in two weeks to start the planning of the 1st meeting - targeted for some time in April.&lt;br /&gt;&lt;br /&gt;Once we get the meeting &quot;themes&quot; worked out, we'll be publishing them with some tentative dates, and we'll be issuing a pseudo &quot;call for speakers&quot;.  Ultimately we're looking to have some really interesting speakers and presentations that are worth the trip - but for that to happen we'll need everyone's help.  Ping any of the board members if you have a topic to suggest (aligned with the CSA Guidance) or a speaker that you think would be good.   &lt;br /&gt;&lt;br /&gt;We're also open to any other suggestions/guidance that people may have, so don't hesitate to speak up.</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-2598556827675852685</guid>
         <pubDate>Fri, 04 Mar 2011 15:41:00 +0000</pubDate>
      </item>
      <item>
         <title>How to turn an XML Gateway into a Maven Repository</title>
         <link>http://xmlgateway.blogspot.com/2011/03/how-to-turn-xml-gateway-into-maven.html</link>
         <description>I've made some real progress on the Maven integration with the Vordel XML Gateway.  I've updated the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/cloudservicebroker/source/browse/trunk/projects/maven/maven-repository-policies.6.0.3.xml&quot;&gt;incubator with the latest set of policies&lt;/a&gt;.  These policies provide two main features:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The ability to download the Gateway libraries as dependencies directly from the gateway&lt;br /&gt;&lt;li&gt;The ability to deploy Maven artifacts to the gateway&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Exposing the libraries of the Gateway as POMs&lt;/h2&gt;&lt;br /&gt;One of the main challenges in getting a technology like the gateway that isn't built using Maven into the Maven world is the mapping of jars to POMs.  As I showed previously, you can do this, but its a manual process.  You could automate it with ANT tasks, but its still tricky.  I encountered this problem before when I was trying a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fusionsecurity.blogspot.com/2010/08/maven-integration-for-oracle.html&quot;&gt;similar exercise with Oracle Entitlements Server&lt;/a&gt;.  For that I wrote a bunch of custom code and deployed it as a WAR to the OES Admin Server.  Not bad, but with the gateway it was even simpler.   &lt;br /&gt;&lt;br /&gt;Basically I used the static content service to point to the directories on gateway, and then used a policy to handle a view of the subtleties - we only have MD5 checksums, POMs need to get generated since we don't have them, some of the mappings for the org.eclipse libraries are irregular.  For the main case, retrieving the jar, I'm just manipulating the http.request.uri property and passing it to the static content service.  Magically, it returns the POM, the JAR, and the MD5 checksum of the JAR.  I also used a cool feature new to 6.0.3 - the ${env.xxx} capabilities.  You can use this namespace from inside of a policy, and the gateway will resolve the value based on the &lt;i&gt;envSettings.props&lt;/i&gt; file.  I used this to specify the values of the location of the gateway in my environment&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;env.maven.gateway.path=c:&amp;#92;&amp;#92;Users&amp;#92;&amp;#92;jbregman&amp;#92;&amp;#92;Documents&amp;#92;&amp;#92;products&amp;#92;&amp;#92;xml gateway&amp;#92;&amp;#92;vordelgateway&amp;#92;&amp;#92;system&amp;#92;&amp;#92;lib&lt;br /&gt;env.maven.policystudio.path=c:&amp;#92;&amp;#92;Users&amp;#92;&amp;#92;jbregman&amp;#92;&amp;#92;Documents&amp;#92;&amp;#92;products&amp;#92;&amp;#92;xml gateway&amp;#92;&amp;#92;policystudio&amp;#92;&amp;#92;plugins&lt;br /&gt;env.maven.repo2.path=c:&amp;#92;&amp;#92;Users&amp;#92;&amp;#92;jbregman&amp;#92;&amp;#92;repo2&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;In order to take advantage of my gateway as a repository, I modified the parent POM of the sample-filter, to include:&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;repositories&amp;gt;&lt;br /&gt;    &amp;lt;repository&amp;gt;&lt;br /&gt;       &amp;lt;id&amp;gt;vordelgateway&amp;lt;/id&amp;gt;&lt;br /&gt;        &amp;lt;url&amp;gt;http://localhost:9090/repo&amp;lt;/url&amp;gt;&lt;br /&gt;    &amp;lt;/repository&amp;gt;&lt;br /&gt;&amp;lt;/repositories&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This means that when its looking for the dependencies, it will check the gateway, and they will be downloaded to your local repository so you can compile.  Maven supports SSL and Basic Authentication, so these things could easily be added to both the Maven configuration as well as applied to the Maven policies running on the gateway.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Deploying Maven Artifacts to the Gateway&lt;/h2&gt;&lt;br /&gt;The first question is &quot;Why would you want to do that?&quot;.  One use case that I'm working on is for custom filters.  Once the jar is built, it needs to be copied to the gateway's lib directory, so this is the foundation for that.  I'm not there yet - need to do something with the file once its there, but I like the simplicity of using the mvn deploy task to push the artifact to the gateway for me.  Ultimately my goal is to package up all of the dependent artifacts and push/deploy them to the gateway.&lt;br /&gt;&lt;br /&gt;The policies for this one were a little more complicated because the static content service only gets me so far - it doesn't handle HTTP PUT requests- which is what Maven uses to push the files to the server.  No problem - I simply used the &lt;i&gt;Save to File&lt;/i&gt; filter - to store the file on disk.  Again, I used the ${env.xxx} to define the location on disk for the repository.&lt;br /&gt;&lt;br /&gt;In order for projects to take advantage of this capability, I again modified the parent POM:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;distributionManagement&amp;gt;&lt;br /&gt;  &amp;lt;repository&amp;gt;&lt;br /&gt;    &amp;lt;id&amp;gt;dev-integration-gateway&amp;lt;/id&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;Dev Integration Gateway&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;url&amp;gt;http://localhost:9090/repo2&amp;lt;/url&amp;gt;&lt;br /&gt;  &amp;lt;/repository&amp;gt;&lt;br /&gt;  &amp;lt;snapshotRepository&amp;gt;&lt;br /&gt;    &amp;lt;id&amp;gt;dev-integration-snapshot-gateway&amp;lt;/id&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;Dev Integration Gateway&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;url&amp;gt;http://localhost:9090/repo2&amp;lt;/url&amp;gt;&lt;br /&gt;  &amp;lt;/snapshotRepository&amp;gt;&lt;br /&gt;&amp;lt;/distributionManagement&amp;gt;&lt;br /&gt;&lt;/pre&gt;   &lt;br /&gt;&lt;br /&gt;This means than when you run &lt;i&gt;mvn deploy&lt;/i&gt; the artifact can be pushed and stored on the gateway.  Presumably, in addition to just deploying the file, other actions could be taken - synchronously or asynchronously.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Implications for the SDLC&lt;/h2&gt;&lt;br /&gt;Notice that in the parent POM, there is the same server (localhost) referenced both times.  I put the two separate repositories on different relative paths to simplify the implementation, but in practice these repositories are likely to be on separate instances.  The idea is that a developer working on a sandbox instance can download the libraries to their local repository, develop the component and then deploy it to the dev-integration-gateway.  The thinking here is that this gateway is the first managed gateway.  The gateway's configuration is then pushed using the policy directory from the dev-integration gateway to QA.  Getting all of this to work end-to-end using Maven is the goal of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/cloudservicebroker/wiki/ProjectMavenIntegration&quot;&gt;Maven Integration project on the incubator&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you like where this is headed, get involved, join the incubator at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cloudservicebroker.googlecode.com&quot;&gt;cloudservicebroker.googlecode.com&lt;/a&gt;.</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-7291300016347615523</guid>
         <pubDate>Wed, 02 Mar 2011 18:36:00 +0000</pubDate>
      </item>
      <item>
         <title>REST API for message level and system level metrics for the XML Gateway</title>
         <link>http://xmlgateway.blogspot.com/2011/02/rest-api-for-message-level-and-system.html</link>
         <description>In my first few weeks at Vordel, I've been spending a lot of time on the &quot;cool&quot; part of the product - building circuits and policies.  As a developer, I really enjoy (am amazed) at how quickly you can know things out.  But this is a job after all, so I also have to spend time coming up to speed on some of the less &quot;glamorous&quot; yet really important and valuable features of the product.&lt;br /&gt;&lt;br /&gt;I've started to look at the various administrative interfaces in the product and see what makes them tick.  One really powerful feature of the Vordel XML Gateway is its out-of-the-box real time monitoring capabilities.  The application itself is a Flash app that displays all of the details of the usage of the gateway - successful messages, blocked messages, failed messages - traffic to various remote hosts.&lt;br /&gt;&lt;br /&gt;One thing that it also has is the system utilization - memory and CPU.  This is really nice because you can get both the message (application level) and system-level information from a single source.  This makes the task of integrating this information into an enterprise operations system much simpler.  But how do you get at the information.  Simple,  http://&lt;i&gt;gateway&lt;/i&gt;:8090/metrics&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-3IYqyb5JbBc/TWcbT0wnVKI/AAAAAAAAACc/81iVIfq-XGQ/s1600/metrics.bmp&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:144px;&quot; src=&quot;http://4.bp.blogspot.com/-3IYqyb5JbBc/TWcbT0wnVKI/AAAAAAAAACc/81iVIfq-XGQ/s400/metrics.bmp&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5577456690915660962&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notice that I'm just accessing the URL form a browser and you can see both the system information, as well as all of the statistics for the messages.&lt;br /&gt;&lt;br /&gt;This is the same URL that the flash application accesses to retrieve the information in the real time monitor.  The URL is protected with HTTP Basic authentication (all of the admin services are out of the box) so access is restricted as well as audited.  Now that you know that the REST API is available, you can integrate this information into your environment.</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-788002702550312315</guid>
         <pubDate>Thu, 24 Feb 2011 18:32:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-3IYqyb5JbBc/TWcbT0wnVKI/AAAAAAAAACc/81iVIfq-XGQ/s72-c/metrics.bmp" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>How to Use an XML Gateway with an Asynchronous Web Service using WS-Addressing</title>
         <link>http://xmlgateway.blogspot.com/2011/02/how-to-use-xml-gateway-with.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;In general synchronous web-services are simpler and more common than asynchronous web services.  I like them, because for 99% of cases, the security can be done at the transport level using 2-way SSL.  Asynchronous web-services introduce additional security challenges - mainly that messages are likely to be in memory or on disk where the transport is not there to keep the contents of the message secure.  The purpose of this post is not to explore the security challenges of using asynchronous web-services, but another complexity - proper handling of web-services callbacks through an intermediary.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the main uses of an XML gateway is to encapsulate the end-point of the actual service from the caller.  This approach is aligned with SOA best practices, but from a security perspective not letting people know where your service actual lives is a really good idea.  This principal can also apply in the callback use case - we may want to hide the location of callback URL from the actual service - let's for the sake of this discussion consider it need to know.  The end service can just callback to the gateway, and the gateway will deliver the message back to its appropriate destination.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now assuming that we're not passing the location of the callback - in WS-Addressing this is called the wsa:&lt;i&gt;ReplyTo &lt;/i&gt;address - then when the gateway finally receives the response, how does it know where to send the message?  To solve this problem, the gateway needs to create a cache of replyTo URLs keyed off of the messageId.  Each request has a &lt;i&gt;wsa:MessageId.&lt;/i&gt; When the server sends its reply, the original message id is reference in the &lt;i&gt;wsa:RelatesTo&lt;/i&gt; header.  This way the gateway can correlate the request with the response.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Understanding the Example&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;I've created an example project that demonstrates how the gateway works in the above scenario.  I'm using the gateway to play the role of 3 different use case actors - client, gateway, and server.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-Tu3og1uH_IM/TWSQAYpyYWI/AAAAAAAAABk/kJwhyLGIrcc/s1600/ws-addressing.bmp&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:310px;&quot; src=&quot;http://2.bp.blogspot.com/-Tu3og1uH_IM/TWSQAYpyYWI/AAAAAAAAABk/kJwhyLGIrcc/s400/ws-addressing.bmp&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576740574883635554&quot;/&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Client - SOAPBox is sending the initial request to the service.  I created an HTTP service listening on port 11000 to serve as the destination of the final &lt;i&gt;wsa:ReplyTo&lt;/i&gt;.&lt;/li&gt;&lt;li&gt;Gateway - When the service gets invoked, the gateway stores the &lt;i&gt;wsa:ReplyTo&lt;/i&gt; in a cache (keyed by the &lt;i&gt;wsa:MessageId&lt;/i&gt;) and modifies the &lt;i&gt;wsa:ReplyTo&lt;/i&gt; and &lt;i&gt;wsa:To&lt;/i&gt; fields accordingly.  In the callback service, the gateway retrieves the original &lt;i&gt;wsa:ReplyTo&lt;/i&gt; from the cache (pulling the key from the &lt;i&gt;wsa:RelatedTo&lt;/i&gt;) field, and sends the request to the original &lt;i&gt;wsa:ReplyTo&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Server - This is just using the gateway to simulate the back end server.  When it receives the message, it simply sticks the file on disk.  The gateway has a directory scanner configured.  Directory Scanner is the ability for the gateway to process files sitting on the file system.  When the Directory Scanner finds a file, it modifies the response (read: appends &quot;Hello&quot; to the message) and then sends it to the address in the &lt;i&gt;wsa:ReplyTo&lt;/i&gt; which is the gateway.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;You can see what an end-to-end flow looks like in the Real Time Monitor&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-CwBBAsQ6yFk/TWUgaws0L2I/AAAAAAAAABs/o_hKjx74Ux0/s1600/rtm.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/-CwBBAsQ6yFk/TWUgaws0L2I/AAAAAAAAABs/o_hKjx74Ux0/s400/rtm.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576899357689786210&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:400px;height:121px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The Gateway Policy Details&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The example contains policies for all three roles.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size:16px;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-w3OwMilIc98/TWUhxNZ1GGI/AAAAAAAAAB0/6yrulKNeMxE/s1600/Addressing.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/-w3OwMilIc98/TWUhxNZ1GGI/AAAAAAAAAB0/6yrulKNeMxE/s400/Addressing.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576900842863532130&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:400px;height:197px;&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;I wanted to spend some time here to review in a little more detail the gateway and what it does when it processes the request, and handles the callback.  When the request arrives, the original message looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;&lt;br /&gt; &amp;lt;wsa:MessageID&amp;gt;uuid:6B29FC40-CA47-1067-B31D-00DD010662DA&amp;lt;/wsa:MessageID&amp;gt;&lt;br /&gt; &amp;lt;wsa:ReplyTo&amp;gt;&lt;br /&gt;     &amp;lt;wsa:Address&amp;gt;http://localhost:11000/callback&amp;lt;/wsa:Address&amp;gt;&lt;br /&gt; &amp;lt;/wsa:ReplyTo&amp;gt;&lt;br /&gt; &amp;lt;wsa:To&amp;gt;http://localhost:12000/SoapContext/SoapGreeterPort&amp;lt;/wsa:To&amp;gt;&lt;br /&gt; &amp;lt;wsa:Action&amp;gt;Greet&amp;lt;/wsa:Action&amp;gt;&lt;br /&gt;&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&lt;br /&gt; &amp;lt;x1:greetMeOneWay xmlns:x1=&quot;http://apache.org/hello_world_soap_http/types&quot;&amp;gt;&lt;br /&gt;     &amp;lt;!-- Element must appear exactly once --&amp;gt;&lt;br /&gt;     &amp;lt;x1:requestType&amp;gt;Asynch Client using WS-Addressing&amp;lt;/x1:requestType&amp;gt;&lt;br /&gt; &amp;lt;/x1:greetMeOneWay&amp;gt;&lt;br /&gt;&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The message gets picked up and processed by the following policy:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 0);&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-dNMclq05OdY/TWU6vEYbR7I/AAAAAAAAACM/DLv1G3dImBc/s1600/request.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/-dNMclq05OdY/TWU6vEYbR7I/AAAAAAAAACM/DLv1G3dImBc/s400/request.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576928293872682930&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:400px;height:304px;&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I'm using policy shortcuts to encapsulate all of the details, but you get the basic idea.  The message leaving the gateway has been transformed to have the gateway address in the &lt;i&gt;wsa:ReplyTo&lt;/i&gt; and the server's address in the &lt;i&gt;wsa:To&lt;/i&gt;.  This is the resulting message sent to the server.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;&lt;br /&gt;   &amp;lt;wsa:MessageID&amp;gt;uuid:6B29FC40-CA47-1067-B31D-00DD010662DA&amp;lt;/wsa:MessageID&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;wsa:Action&amp;gt;Greet&amp;lt;/wsa:Action&amp;gt;&lt;br /&gt;&amp;lt;wsa:ReplyTo&amp;gt;&lt;br /&gt;&amp;lt;wsa:Address&amp;gt;http://localhost:12000/SoapContext/GreetCallbackSoapPort&amp;lt;/wsa:Address&amp;gt;&lt;br /&gt;&amp;lt;/wsa:ReplyTo&amp;gt;&amp;lt;wsa:To&amp;gt;http://localhost:13000/SoapContext/SoapGreeterPort&amp;lt;/wsa:To&amp;gt;&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&lt;br /&gt;   &amp;lt;x1:greetMeOneWay xmlns:x1=&quot;http://apache.org/hello_world_soap_http/types&quot;&amp;gt;&lt;br /&gt;       &amp;lt;!-- Element must appear exactly once --&amp;gt;&lt;br /&gt;       &amp;lt;x1:requestType&amp;gt;Asynch Client using WS-Addressing&amp;lt;/x1:requestType&amp;gt;&lt;br /&gt;   &amp;lt;/x1:greetMeOneWay&amp;gt;&lt;br /&gt;&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So when the reply comes back from the server, and arrives back at the gateway, it has a new &lt;i&gt;wsa:messageId&lt;/i&gt;, but the original messageId is available in the &lt;i&gt;wsa:RelatesTo&lt;/i&gt; header.&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&amp;gt;&lt;br /&gt;&amp;lt;soap:Header&amp;gt;&lt;br /&gt;   &amp;lt;wsa:Action&lt;br /&gt;       xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot; /&amp;gt;&lt;br /&gt;   &amp;lt;wsa:MessageID&lt;br /&gt;       xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;       uuid:Id-0000012e5303f409-0000000000a96fd2-2&lt;br /&gt;   &amp;lt;/wsa:MessageID&amp;gt;&lt;br /&gt;   &amp;lt;wsa:RelatesTo&lt;br /&gt;       xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;       uuid:6B29FC40-CA47-1067-B31D-00DD010662DA&lt;br /&gt;   &amp;lt;/wsa:RelatesTo&amp;gt;&lt;br /&gt;   &amp;lt;wsa:To xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;       http://localhost:12000/SoapContext/GreetCallbackSoapPort&lt;br /&gt;   &amp;lt;/wsa:To&amp;gt;&lt;br /&gt;&amp;lt;/soap:Header&amp;gt;&lt;br /&gt;&amp;lt;soap:Body&amp;gt;&lt;br /&gt;   &amp;lt;x1:greetMeResponse&lt;br /&gt;       xmlns:x1=&quot;http://apache.org/hello_world_soap_http/types&quot;&amp;gt;&lt;br /&gt;       &amp;lt;!-- Element must appear exactly once --&amp;gt;&lt;br /&gt;       &amp;lt;x1:responseType&amp;gt;&lt;br /&gt;           Hello Asynch Client using WS-Addressing&lt;br /&gt;       &amp;lt;/x1:responseType&amp;gt;&lt;br /&gt;   &amp;lt;/x1:greetMeResponse&amp;gt;&lt;br /&gt;&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The callback policy then picks this message up and applies the following filters:&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 0);&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-00rcpP9acps/TWU7SP8dUUI/AAAAAAAAACU/9kO9idQx48s/s1600/callback.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/-00rcpP9acps/TWU7SP8dUUI/AAAAAAAAACU/9kO9idQx48s/s400/callback.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5576928898272022850&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:400px;height:306px;&quot;/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This is the basic caching pattern used by the gateway.  The cache's key is the &lt;i&gt;wsa:messageId&lt;/i&gt; set by the incoming request.  This can then be retrieved from the cache by pulling the &lt;i&gt;wsa:RealtesTo&lt;/i&gt; messageId.  The resulting URL is then set as the destination (&lt;i&gt;wsa:To)&lt;/i&gt; of the response, and the reply is sent.  The final message looks like this:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br /&gt;&amp;lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&amp;gt;&lt;br /&gt;  &amp;lt;soap:Header&amp;gt;&lt;br /&gt;      &amp;lt;wsa:Action&lt;br /&gt;          xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot; /&amp;gt;&lt;br /&gt;      &amp;lt;wsa:MessageID&lt;br /&gt;          xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;          uuid:Id-0000012e53675a57-0000000001f76db2-18&lt;br /&gt;      &amp;lt;/wsa:MessageID&amp;gt;&lt;br /&gt;      &amp;lt;wsa:RelatesTo&lt;br /&gt;          xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;          uuid:6B29FC40-CA47-1067-B31D-00DD010662DA&lt;br /&gt;      &amp;lt;/wsa:RelatesTo&amp;gt;&lt;br /&gt;      &amp;lt;wsa:To xmlns:wsa=&quot;http://schemas.xmlsoap.org/ws/2004/08/addressing&quot;&amp;gt;&lt;br /&gt;          http://localhost:11000/callback&lt;br /&gt;      &amp;lt;/wsa:To&amp;gt;&lt;br /&gt;  &amp;lt;/soap:Header&amp;gt;&lt;br /&gt;  &amp;lt;soap:Body&amp;gt;&lt;br /&gt;      &amp;lt;x1:greetMeResponse&lt;br /&gt;          xmlns:x1=&quot;http://apache.org/hello_world_soap_http/types&quot;&amp;gt;&lt;br /&gt;          &amp;lt;!-- Element must appear exactly once --&amp;gt;&lt;br /&gt;          &amp;lt;x1:responseType&amp;gt;&lt;br /&gt;              Hello Asynch Client using WS-Addressing&lt;br /&gt;          &amp;lt;/x1:responseType&amp;gt;&lt;br /&gt;      &amp;lt;/x1:greetMeResponse&amp;gt;&lt;br /&gt;  &amp;lt;/soap:Body&amp;gt;&lt;br /&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;&lt;/pre&gt;I've exported this project and added it to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cloudservicebroker.googlecode.com/&quot;&gt;Vordel Incubator&lt;/a&gt;.  You can download the config &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/cloudservicebroker/source/browse/trunk/examples/ws-addressing-asynch/ws-addressing-example.6.0.3.xml&quot;&gt;here&lt;/a&gt;.  Let me know what you think.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-2352419897947395647</guid>
         <pubDate>Tue, 22 Feb 2011 20:40:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-Tu3og1uH_IM/TWSQAYpyYWI/AAAAAAAAABk/kJwhyLGIrcc/s72-c/ws-addressing.bmp" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Architectural Pattern for XML Gateway - Service Bus Sandwich</title>
         <link>http://xmlgateway.blogspot.com/2011/02/architectural-pattern-for-xml-gateway.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;I was in a discussion yesterday with a customer and the question of &quot;Do I need an internal gateway in addition to my ESB?&quot; came up.  In general, people thing about XML gateways as the security appliance that you stick in the DMZ to prevent unauthorized access to services (i.e. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xmlgateway.blogspot.com/2011/01/architectural-patterns-for-xml-gateways.html&quot;&gt;the Super PEP&lt;/a&gt;).  So, why do I need another one in my internal network?&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;img src=&quot;http://3.bp.blogspot.com/-BHOdHgUdjRo/TV5_rW7VspI/AAAAAAAAABc/8gW1-RdXOHc/s400/esb_sandwich.gif&quot; style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:309px;height:374px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5575033771596821138&quot;/&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;b&gt;Service Bus Sandwich&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I think the most basic reason is that the system that does security processing at the front of the bus should be the same system that does security processing at the back of the bus.  This promotes a consistent approach - same policies, same certificates, same administrative interfaces.  This also optimizes the capabilities of each component in the architecture - XML Gateway off loads the security processing from the ESB - SSL Termination, XML threat checking, authentication, authorization, message encryption/signing etc. - and the ESB does what it does best - routing, transformation, service virtualization, protocol translation etc.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, with all of the security processing off loaded to the XML Gateway, how should the ESB and the XML Gateway work together to pass security context.  I think the simplest way is to simply use 2-way SSL between the front XML Gateway and the 2-way SSL between the back XML Gateway.  This ensures that the ESB is receiving valid messages from the XML Gateway and that it can continue processing the message.  Likewise for the back XML Gateway - since it trusts that the request is from the ESB, it can send the message off to its next destination.  This makes the sole security interface between the XML Gateways and the ESBs a common trusted Certificate Authority.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If more information needs to be passed form the XML Gateway to the ESB - like the identity of the calling service/user, then you can simply use SAML bearer profile.  This profile basically means &quot;trust this assertion if you want.&quot;.  Since we know the request is over 2-way SSL, bearer seems fine.  You could optionally have the XML Gateway or STS sign the assertion, but its probably not necessary.  If you're inclined to add the additional control of the signed assertion, you're only adding a public key/CA to the ESB - still a pretty minimal binding.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Looking at the back XML gateway, this is basically the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xmlgateway.blogspot.com/2011/01/architectural-patterns-for-xml-gateways.html&quot;&gt;Cloud Service Broker &lt;/a&gt;- mediating out access to services in the cloud - but what if you're not using any cloud services yet.  Do I still need have the 2nd XML Gateway?  Besides the benefits of centralization and consistency, lets look at another real world use case.  Information arriving at the front gateway was secured in transmission using 2-way SSL, but contains PII that needs to be masked from the ESB while being processed - it can't be exposed in the clear, in logs, etc. - but the target service requires that information for processing.  In this case the front XML Gateway can encrypt/mask the contents of the message and the back gateway can decrypt/unmask the message prior to being sent to the back end service.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In summary, in architectures that contain an ESB, having both a front XML Gateway to secure incoming traffic and a back XML Gateway to secure the outbound traffic provides real benefit.  This may or may not represent two physically separate deployments - it just depends if the out bound traffic is allowed to be sent back out through the DMZ. The trust among the components can be done via transport - typically 2-way SSL.  This greatly simplifies the administration of security policies, and optimizes the utilization of both the ESB and the XML Gateway.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-2245669368014318308</guid>
         <pubDate>Fri, 18 Feb 2011 06:05:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-BHOdHgUdjRo/TV5_rW7VspI/AAAAAAAAABc/8gW1-RdXOHc/s72-c/esb_sandwich.gif" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>It Takes A Village....Announcing the Vordel Incubator</title>
         <link>http://xmlgateway.blogspot.com/2011/02/it-takes-villageannouncing-vordel.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-v6Z43QUhb4Q/TVtUPu2bn8I/AAAAAAAAABU/uTO16QBaIwk/s1600/VUG.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:337px;height:196px;&quot; src=&quot;http://3.bp.blogspot.com/-v6Z43QUhb4Q/TVtUPu2bn8I/AAAAAAAAABU/uTO16QBaIwk/s400/VUG.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5574141593052225474&quot;/&gt;&lt;/a&gt;&lt;br /&gt;After much debate, I'm pleased to announce the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/cloudservicebroker/&quot;&gt;Vordel Incubator&lt;/a&gt;.  I'm modelling after the wildly successful &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://coherence.oracle.com/display/INCUBATOR/Home&quot;&gt;Oracle Coherence Incubator&lt;/a&gt;.  The idea is to work as a community - company, customers, partners - on building solutions to real-world problems.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've started the project off &lt;b&gt;very modestly&lt;/b&gt; with a publishing of the full &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xmlgateway.blogspot.com/2011/02/how-to-extend-vordel-xml-gateway-with.html&quot;&gt;Maven project that I discussed earlier&lt;/a&gt;.  As people know, I'm very interested in Maven and believe it is a really good tool for integrating a product into an enterprise SDLC.  We'll be using it for the incubator.  As such, there is some work to do in short order to extend the existing Maven support through out the fuller lifecycle - automated testing, deployment etc.  I eager to work on these topics.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Additionally, as my team works with customers, there a common requests for solutions or examples that everyone would benefit from.  Its my intention to grow a library of such solutions in the incubator as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ultimately what I want is to try to harness the enthusiasm of the customers/partners that I've met over my first 6 weeks at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/&quot;&gt;Vordel&lt;/a&gt; - and channel into building things together that benefit everyone.  But to do that, I need people's help and participation.  If you are interested in participating in any way, please let me or anyone at Vordel know, and we'll get you looped into what we're doing.  I've created a public &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/cloudservicebroker&quot;&gt;google group to host discussions&lt;/a&gt;, so you can express your views/interests there.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I look forward to working with all of you on this.&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-5182199100366009896</guid>
         <pubDate>Tue, 15 Feb 2011 20:22:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-v6Z43QUhb4Q/TVtUPu2bn8I/AAAAAAAAABU/uTO16QBaIwk/s72-c/VUG.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>How to extend the Vordel XML Gateway with Maven</title>
         <link>http://xmlgateway.blogspot.com/2011/02/how-to-extend-vordel-xml-gateway-with.html</link>
         <description>One of the strengths of the Vordel XML Gateway is the ability of the  product to be extended using Java.  You can do this in two ways:   JavaScript and through writing custom Filters.  The really clever part  about how the XML Gateway is engineered is that the underlying XML  layers are written in native code so the product is really fast even  when you have to use Java to customize it.&lt;br /&gt;&lt;br /&gt;Recently, I had a customer ask &quot;How do I build filters using Maven?&quot;.  This is obviously a person after my own heart.  I had spent a lot of time last year working with Maven, in particular for the OES/Spring/JBOSS/AOP integration I did.  So, these are the steps for building the Example Filter using Maven.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt; Step 1 - Load the Dependencies into the Local File System &lt;/h2&gt;&lt;br /&gt;This for me is always the trickiest part.  For things that are &quot;non-Maven&quot; you need to get them loaded as dependencies - but how?  In order to get the XML Gateway APIs loaded into the local repository, you need to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.zparacha.com/include-externaljar-file-in-maven/&quot;&gt;use the &lt;span style=&quot;font-style:italic;&quot;&gt;install:install-file&lt;/span&gt; goal to load some of the jars&lt;/a&gt;. As I continue to invest in this solution, look for other more elegant approaches, but for now this is what I'm going with.&lt;br /&gt;&lt;br /&gt;This is the commands I ran, in my linux environment:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;java&quot;&gt;&lt;br /&gt;mvn install:install-file  -Dfile=/opt/vordel/vordelgateway/system/lib/circuit.jar  -DgroupId=com.vordel.vordelgateway -DartifactId=circuit -Dversion=6.0.3  -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file  -Dfile=/opt/vordel/vordelgateway/system/lib/server.jar  -DgroupId=com.vordel.vordelgateway -DartifactId=server -Dversion=6.0.3  -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file  -Dfile=/opt/vordel/vordelgateway/system/lib/entityStore.jar  -DgroupId=com.vordel.vordelgateway -DartifactId=entityStore  -Dversion=6.0.3 -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file -Dfile=/opt/vordel/vordelgateway/system/lib/manager.jar&lt;br /&gt;-DgroupId=com.vordel.vordelgateway -DartifactId=manager -Dversion=6.0.3 -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file -Dfile=/opt/vordel/vordelgateway/system/lib/common.jar&lt;br /&gt;-DgroupId=com.vordel.vordelgateway -DartifactId=common -Dversion=6.0.3 -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file -Dfile=/opt/vordel/vordelgateway/system/lib/client.jar&lt;br /&gt;-DgroupId=com.vordel.vordelgateway -DartifactId=client -Dversion=6.0.3 -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file   -Dfile=/opt/vordel/policystudio/plugins/org.eclipse.gef_3.2.101.v20070814.jar  -DartifactId=gef -DgroupId=org.eclipse -Dversion=3.2.101  -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file  -Dfile=/opt/vordel/policystudio/plugins/org.eclipse.jface_3.3.1.M20070910-0800b.jar  -DgroupId=org.eclipse -DartifactId=jface -Dversion=3.3.1  -Dpackaging=jar&lt;br /&gt;&lt;br /&gt;mvn install:install-file  -Dfile=/opt/vordel/policystudio/plugins/org.eclipse.swt.gtk.linux.x86_3.3.2.v3347.jar  -DgroupId=org.eclipse -DartifactId=swt -Dversion=3.3.2 -Dpackaging=jar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Step 2 - Create a Parent POM&lt;/h2&gt;&lt;br /&gt;The parent POM references all of the dependencies, as well as simplifies the rest of the building process:&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;project xmlns=&amp;quot;http://maven.apache.org/POM/4.0.0&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt; xsi:schemaLocation=&amp;quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;quot;&amp;gt;&lt;br /&gt; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;packaging&amp;gt;pom&amp;lt;/packaging&amp;gt;&lt;br /&gt; &amp;lt;build&amp;gt;&lt;br /&gt;  &amp;lt;plugins&amp;gt;&lt;br /&gt;   &amp;lt;plugin&amp;gt;&lt;br /&gt;    &amp;lt;version&amp;gt;2.3.1&amp;lt;/version&amp;gt;&lt;br /&gt;    &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;    &amp;lt;artifactId&amp;gt;maven-jar-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;configuration&amp;gt;&lt;br /&gt;     &amp;lt;archive&amp;gt;&lt;br /&gt;      &amp;lt;manifestFile&amp;gt;src/main/resources/META-INF/MANIFEST.MF&amp;lt;/manifestFile&amp;gt;&lt;br /&gt;     &amp;lt;/archive&amp;gt;&lt;br /&gt;    &amp;lt;/configuration&amp;gt;&lt;br /&gt;   &amp;lt;/plugin&amp;gt;&lt;br /&gt;  &amp;lt;/plugins&amp;gt;&lt;br /&gt; &amp;lt;/build&amp;gt;&lt;br /&gt; &amp;lt;dependencies&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;circuit&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;server&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;entityStore&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;manager&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;client&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;common&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;org.eclipse&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;jface&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;3.3.1&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;org.eclipse&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;gef&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;3.2.101&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;org.eclipse&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;swt&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;3.3.2&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt; &amp;lt;/dependencies&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;With the POM created, run &lt;i&gt;mvn install&lt;/i&gt; to load the POM into your local repository&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Step 3 - Create the Example Filter Project&lt;/h2&gt;&lt;br /&gt;I used eclipse and the Eclipse Maven Plugin.  I created a new Maven project that referenced the Parent POM&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;xml&quot;&gt;&lt;br /&gt;&amp;lt;project xmlns=&amp;quot;http://maven.apache.org/POM/4.0.0&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;br /&gt; xsi:schemaLocation=&amp;quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&amp;quot;&amp;gt;&lt;br /&gt; &amp;lt;parent&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;parent&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;6.0.3&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;/parent&amp;gt;&lt;br /&gt; &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt; &amp;lt;groupId&amp;gt;com.vordel.vordelgateway&amp;lt;/groupId&amp;gt;&lt;br /&gt; &amp;lt;artifactId&amp;gt;example-filter&amp;lt;/artifactId&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;0.0.1-SNAPSHOT&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;build&amp;gt;&lt;br /&gt;  &amp;lt;plugins&amp;gt;&lt;br /&gt;   &amp;lt;plugin&amp;gt;&lt;br /&gt;    &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;    &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;version&amp;gt;2.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;    &amp;lt;configuration&amp;gt;&lt;br /&gt;     &amp;lt;source&amp;gt;1.6&amp;lt;/source&amp;gt;&lt;br /&gt;     &amp;lt;target&amp;gt;1.6&amp;lt;/target&amp;gt;&lt;br /&gt;    &amp;lt;/configuration&amp;gt;&lt;br /&gt;   &amp;lt;/plugin&amp;gt;&lt;br /&gt;  &amp;lt;/plugins&amp;gt;&lt;br /&gt; &amp;lt;/build&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I then moved some files from the original example to conform with the Maven structure. I moved the simple.gif and resource files to their proper Maven place under resources.  I also moved the MANIFEST.MF file to src/main/resources/META-INF so it is included in the jar.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-yFd2a2THghQ/TVqXsKlJojI/AAAAAAAAABE/bH0K7vWaN40/s1600/Maven%2BExample%2BFilter.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:270px;height:320px;&quot; src=&quot;http://2.bp.blogspot.com/-yFd2a2THghQ/TVqXsKlJojI/AAAAAAAAABE/bH0K7vWaN40/s320/Maven%2BExample%2BFilter.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5573934273834623538&quot;/&gt;&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;You should be able to build the project. All that's left to do is copy the jar to the /opt/vordel/vordelgateway/ext/lib and the /opt/policystudio/plugins directories, and your plugin should be good to go.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-LoSKoAeKi9c/TVqZ4TJEsRI/AAAAAAAAABM/ljverhxuOM4/s1600/Example%2BFilter.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:320px;height:178px;&quot; src=&quot;http://2.bp.blogspot.com/-LoSKoAeKi9c/TVqZ4TJEsRI/AAAAAAAAABM/ljverhxuOM4/s320/Example%2BFilter.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5573936681314464018&quot;/&gt;&lt;/a&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-177291707723251154</guid>
         <pubDate>Mon, 14 Feb 2011 18:30:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-yFd2a2THghQ/TVqXsKlJojI/AAAAAAAAABE/bH0K7vWaN40/s72-c/Maven%2BExample%2BFilter.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>How to retrieve an OAuth token from a WS-Trust based Security Token Service (STS)</title>
         <link>http://xmlgateway.blogspot.com/2011/02/how-to-retrieve-oauth-token-from-ws.html</link>
         <description>&lt;div style=&quot;text-align:left;&quot;&gt;I'm finally back home after 4 straights days in airports.  During the week I delivered a really interesting use case that I wanted to share.  This was in support of a demo where the customer wanted to understand how &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xml.sys-con.com/node/1232549&quot;&gt;OAuth works with the XML Gateway&lt;/a&gt;.  Given the natures of POCs, I had already built much of the demo around the customer's other requirement - retrieving a SAML assertion via a WS-Trust based STS.  I had to come up with a way to add the OAuth functionality to the existing scenario.  I think the approach that I came up with is novel and so I wanted to share it on the blog.&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you look at a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html&quot;&gt;WS-Trust&lt;/a&gt; RST (Request for Security Token) message, the initiator can request a token type, so the call to the STS can reasonably start with a request for an OAuth token, but the real question is &quot;What to return and how to return it?&quot;.  One thing that I liked about this particular scenario was that it gave me a change to dig a little more deeply into OAuth 1.0.  I think I understand it much better.  There have been many places where OAuth has been explained, so I won't cover everything, but basically for the Gateway scenario calling a service protected with OAuth, you need an access token and a corresponding access token secret.  For the purposes of this scenario, I assumed that the access token and access token secret were already available to the STS - let's just say this happens when the user elects to allow the gateway application access to its information.&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, then how should we return this information.  Both the access token and access token secret are just strings. The solution I used was to return them as Attribute Statements inside of a SAML assertion.  One of the great things about SAML is its ability to include attributes related to the subject.  The eliminated the need to come up with a custom token or simply pass them pack in the transport.  The transport is OK, but I like the elegance of using SAML and quite frankly how easy it was to implement using the gateway.&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;On the caller side, I needed to modify the request to the STS to have the right token type&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://4.bp.blogspot.com/-Wo63hdDzEYk/TVX9_DlM6gI/AAAAAAAAAAc/9zdeBE-3PXI/s320/STS%2BClient%2B1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5572639373675784706&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:282px;height:298px;&quot;/&gt;&lt;/div&gt;&lt;div&gt; and then retrieve the assertion from the response.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://3.bp.blogspot.com/-aioc4tQIJ70/TVX-U68U2VI/AAAAAAAAAAk/JL6Mdw95rko/s320/STS%2BClient%2B2.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5572639749313976658&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:320px;height:115px;&quot;/&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The XML Gateway has a single filter that retrieves attribute assertions...couldn't have been easier.&lt;/div&gt;&lt;div&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-tAnliPorom8/TVX-tyROzUI/AAAAAAAAAAs/7oLK0oF8gFA/s1600/STS%2BCLient%2B3.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/-tAnliPorom8/TVX-tyROzUI/AAAAAAAAAAs/7oLK0oF8gFA/s320/STS%2BCLient%2B3.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5572640176482471234&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:250px;height:320px;&quot;/&gt;&lt;/a&gt;&lt;div style=&quot;text-align:left;&quot;&gt;On the STS side, this was also really simple.  I just added a branch in the STS policy to handle the case where an OAUTH token has requested and the call the policy to add the SAML Attribute Assertion.  &lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-hNj3ZZxOY40/TVX_aG74DrI/AAAAAAAAAA0/Vmtg0akfKRw/s1600/STS.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/-hNj3ZZxOY40/TVX_aG74DrI/AAAAAAAAAA0/Vmtg0akfKRw/s320/STS.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5572640937944288946&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:320px;height:219px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;A quick re-deploy of the policy and I was in business.  For the purposes of this demo, I used the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.linkedin.com/community/apis&quot;&gt;LinkedIn API&lt;/a&gt; which is protected by OAuth, and made a simple call to get my network updates for the day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/-yEmnJ-aWH8g/TVX_aBxQ4JI/AAAAAAAAAA8/kr06w5kXaXM/s1600/STS%2BSOAP%2BBox.png&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/-yEmnJ-aWH8g/TVX_aBxQ4JI/AAAAAAAAAA8/kr06w5kXaXM/s320/STS%2BSOAP%2BBox.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5572640936557600914&quot; style=&quot;display:block;margin-top:0px;margin-right:auto;margin-bottom:10px;margin-left:auto;text-align:center;cursor:pointer;width:320px;height:210px;&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I did all of this in about 1 hour very late at night - another strong testimony for the tool.  The fact that I could get and set the SAML assertions so easily, really made the whole thing &quot;just work&quot;.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I know that &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer-03&quot;&gt;OAuth 2.0 has a binding for passing a SAML assertion&lt;/a&gt; to retrieve an access token, but the convergence between SAML and OAuth is definitely underspecified.  &lt;/div&gt;&lt;div&gt;The scenario I'm showing here is the binding of an OAuth access token to a SAML assertion.  From a specification perspective, I think all you would need to formalize are the constants for requesting the token from the STS (token type) and the attribute names (OAuth access token) themselves.  I'll get &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://soatothecloud.com&quot;&gt;Mark&lt;/a&gt; on it after he gets back from RSA :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-5911581143360002292</guid>
         <pubDate>Fri, 11 Feb 2011 19:01:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-Wo63hdDzEYk/TVX9_DlM6gI/AAAAAAAAAAc/9zdeBE-3PXI/s72-c/STS%2BClient%2B1.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>How to Secure the Cloud?</title>
         <link>http://xmlgateway.blogspot.com/2011/02/how-to-secure-cloud.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;I'm in the process of getting the Boston chapter of the Cloud Security Alliance started.  I'm just waiting for the &quot;paperwork&quot; to go through, but I'm really excited about what I'm hearing from customers about the cloud.  Coming from Oracle, you get a bit of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=8UYa6gQC14o&quot;&gt;&quot;Larry Hates the Cloud&quot;&lt;/a&gt; mindset, but in my limited time here at Vordel, I can see the deep interest from customers.&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mark O'Neill has published a few articles recently on a few topics within cloud security (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.cloudsecurityalliance.org/2011/02/01/extend-the-enterprise-into-the-cloud-with-single-sign-on-to-cloud-based-services/&quot;&gt;SSO to Google Mail&lt;/a&gt; and&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.csoonline.com/article/660065/saas-paas-and-iaas-a-security-checklist-for-cloud-models&quot;&gt; Security Checklist for Cloud Security&lt;/a&gt;) but there is single &quot;Cloud Security&quot; solution.  Probably the only term less well defined than &quot;Cloud&quot; is &quot;Security&quot;.  CSA is starting a whole &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cloudsecurityalliance.org/secaas.html&quot;&gt;new focus are on &quot;Security as a Service&quot;&lt;/a&gt; - again we could have/and will continue to have a debate over what is a &quot;Service&quot;.  &lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unlike SOA, IT people are being asked by the business &quot;What are we doing about the cloud?&quot;.  This is because the &quot;cloud&quot; model continues to drive real cost savings.  So, given the state of  security in the cloud....what should you do?&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_3jrHf8f38ao/TUhcahc0dCI/AAAAAAAAAAU/71YN6J8FaLM/s320/Cloud%2BQuestion.png&quot; style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:320px;height:241px;&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5568802549969220642&quot;/&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From my perspective, the technical alignment between the traditional &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xmlgateway.blogspot.com/2011/01/architectural-patterns-for-xml-gateways.html&quot;&gt;XML Gateway use cases and the Cloud Service Broker use cases&lt;/a&gt; suggests that though the space and the standards are evolving, an investment in an XML Gateway will provide significant value moving up into the cloud.  What do you think?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-1608665769676674714</guid>
         <pubDate>Tue, 01 Feb 2011 08:56:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/_3jrHf8f38ao/TUhcahc0dCI/AAAAAAAAAAU/71YN6J8FaLM/s72-c/Cloud%2BQuestion.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Architectural Patterns for XML Gateways</title>
         <link>http://xmlgateway.blogspot.com/2011/01/architectural-patterns-for-xml-gateways.html</link>
         <description>What a week!  I didn't get stuck anywhere - except for snowed in at home - but it was really busy.  I did have the pleasure of ending the week briefing a group of really smart architects and pre-sales people on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/products/gateway/index.html&quot;&gt;Vordel Gateway&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://blastmagazine.com/wp-content/uploads/2010/10/top-gun-300x300.jpg&quot; style=&quot;float:left;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:300px;height:300px;&quot; border=&quot;0&quot; alt=&quot;&quot;/&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align:left;&quot;&gt;When talking about the gateway, it is easy to get into the weeds of does it support this crypto accelerator or this version of the WS-SecureConversation spec, or this version of some 3rd party I&amp;amp;AM product.  For this particular audience I was trying to get to the essence of how customers deploy this technology.  Here's my architectural taxonomy for XML Gateways.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Super PEP&lt;/i&gt;&lt;/b&gt; - The super/uber policy enforcement point.  This is the way that XML Gateways are traditionally deployed.  The idea here is that it can enforce any type of policy you can image - WS-Security, Authorization (XACML), SLA Policy, Routing Policy, XML Threat Policy...  This is of course a very solid model for the gateway, and the way that most people think of it.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Security Services Platform&lt;/i&gt; - &lt;/b&gt;There has been a lot of talk about reusable security services for a long time.  It was how we originally sold &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://download.oracle.com/docs/cd/E13196_01/platform/docs81/secintro/wles.html&quot;&gt;WLES&lt;/a&gt;/&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://download.oracle.com/docs/cd/E13169_01/ales/docs30/index.html&quot;&gt;ALES&lt;/a&gt;/&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.oracle.com/technetwork/middleware/oes/index.html&quot;&gt;OES&lt;/a&gt;.  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.oracle.com/technetwork/middleware/id-mgmt/index-100381.html&quot;&gt;The Oracle Platform Security Services - OPSS&lt;/a&gt; - has picked up some of that same flavor - and the concept is a good one.  Let's have a set of security services that can be called from a central location.  There are standard interfaces like&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf&quot;&gt; SAML&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml&quot;&gt;XACML&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-1.3-os.html&quot;&gt;WS-Trust&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=provision&quot;&gt;SPML&lt;/a&gt; etc, but how do you actually go build that into an enterprise?  XML Gateway to the rescue.  I think of this model as turning the gateway on its &quot;side&quot;.  Basically, the gateway has the ability to expose these WSDLs, and it has integration with all of these 3rd party I+AM vendors like &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.oracle.com/us/products/middleware/identity-management/oracle-access-manager/index.html&quot;&gt;Oracle/Sun&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ca.com/us/internet-access-control.aspx&quot;&gt;CA&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www-01.ibm.com/software/tivoli/products/access-mgr-productline/&quot;&gt;Tivoli&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.rsa.com/node.aspx?id=1186&quot;&gt; RSA&lt;/a&gt; - as well as various LDAPs - that constructing these services is very straight forward.  The gateway today has the ability to be an WS-Trust end-point, CRL endpoint as well as exposing an XML Encryption/Decryption and XML Signing/Validation service.  Its a simple exercise to extend this model to any API - standard or otherwise.  Furthermore, since the Vordel XML Gateway has very fast XML and crypto processing, the services will perform and scale.&lt;/li&gt;&lt;li&gt;&lt;i&gt;&lt;b&gt;Cloud Service Broker&lt;/b&gt;&lt;/i&gt; - This is like you take the XML Gateway and flip it around. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2010/02/how-cloud-service-brokers-enable-cloud.html&quot;&gt; Mark O'Neill talked about this convergence between XML Gateways and Cloud Services on his blog&lt;/a&gt;.  I like the architectural symmetry.  By flipping it over, you mediate access to services in the cloud.  The Vordel XML Gateway is really good at protecting things like API keys - to avoid the issue of having everyone in the enterprise have unfettered access to the company's storage cloud.  The distributed caching capabilities of the Gateway can help in cloud scenarios in two way.  First of all, caching boosts performance - no need to go to the cloud to get that file, if the gateway has a recent cached copy.  The second is that it can save firms money by optimizing calls to cloud services.  In the storage example, this eliminates unnecessary GETs.  In a transactional example, some provides give better rates for bulk operations, so the requests can be queued in the cache, and then sent en masse, again saving money. &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;These three architectures provide a simple way of summarizing the capabilities of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/products/gateway/index.html&quot;&gt;Vordel XML Gateway&lt;/a&gt;.  Like any pattern, they can be used in conjunction with each other.  For example, you could put the Super PEP in-front of the Security Services Platform or have the Security Services Platform call the Cloud Service Broker (off site authentication via cloud).  As I continue to work with customers, and learn more about how they are using the gateway, I'll be  sharing more of these patterns.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-3091006288660099894</guid>
         <pubDate>Fri, 28 Jan 2011 18:53:00 +0000</pubDate>
      </item>
      <item>
         <title>How to Securely Integrate Web Services in an Enterprise Environment</title>
         <link>http://xmlgateway.blogspot.com/2011/01/how-to-securely-integrate-web-services.html</link>
         <description>I spent the bulk of today updating the technical sales presentations for some upcoming training that we're giving in Boston.  While brainstorming about the key messages to deliver to customers, I came across this cartoon.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.brainshark.com/brainshark/viewer/fallback.ashx?pi=260619497&quot;&gt;&lt;img src=&quot;http://www.brainshark.com/brainshark/brainshark.net/apppresentation/splash.aspx?pi=260619497&quot; width=&quot;440&quot; height=&quot;330&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's admittedly a little silly, but I really like the core concept of the story. The idea is that the quality of the XML Gateway solution is not strictly about speeds and feeds, but the ability of the product to work across teams to deliver real value.  This is not some slight of hand - look over here at this other stuff - the performance of the Vordel Gateway is &quot;unbelievably good&quot; - but simply an observation about the challenges that customers face in deploying a solution like this.  I drew inspiration from this presentation, so if and when you see the technical presentation, you may recognize some of the themes.  As for the presentation in its raw form, I think its more &quot;appropriate&quot; as a web video. Enjoy!</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-3815313331325707376</guid>
         <pubDate>Wed, 26 Jan 2011 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>How to Integrate Web SSO with REST web-services using Oracle Access Manager</title>
         <link>http://xmlgateway.blogspot.com/2011/01/how-to-integrate-web-sso-with-rest-web.html</link>
         <description>Nothing inspires me to blog like being stuck in an airport.  I'm stuck in DC on a return from my first &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com&quot;&gt;Vordel&lt;/a&gt; customer trip.  We saw customers in San Diego, Los Angeles, Bay Area, and Seattle. Some of them there were very interested in the integration between&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.oracle.com/us/products/middleware/identity-management/oracle-access-manager/index.html&quot;&gt; Oracle Access Manager&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com&quot;&gt;Vordel&lt;/a&gt;.  Once again,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com&quot;&gt; Mark O'Neill, CTO of Vordel&lt;/a&gt; to the rescue.  &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;320&quot; height=&quot;266&quot;/&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/research/VordelAndOracleAccessManager.html&quot;&gt;The video demonstrates a few on the interesting scenarios combining a Web Access Management product with an XML gateway&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Authentication - By simply selecting Oracle Access Manager as a repository, usernames and passwords are authenticated against OAM - encapsulating the directory specifics and optimizing connections&lt;/li&gt;&lt;li&gt;Identity Propagation - Once authenticated, the OBSSO cookie is available to down stream applications&lt;/li&gt;&lt;li&gt;Single Sign On - By adding another filter - Validate Oracle Access Manager Token - the token is validated by the ASDK and the identity available to the service.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The thing that impresses me about this demo is how easy it is to do.  I'm still a relatively new to the Vordel product, but the UI metaphor on building the policies using filters and wiring them together is really simple and easy to grasp.  Also, the way that you can pull the output of one filter into the input of another is really useful.  The UI will also mark filters as RED is you're missing an upstream input.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Having seen experts like Mark and some of the long time Solutions Architects work with the product, you can get very productive with the tool and build super complicated security scenarios with amazing ease.  The biggest challenge is that the 6.0 product ships with &lt;b&gt;over 140 filters&lt;/b&gt;.  This is not a bad thing...it means that the product provides tremendous value out of the box....its not just a framework.  But as some one trying to come up to speed, you realize that there is a 99% chance that there is a filter (or set of filters) that will allow you to do the job.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The other really amazing thing about the filters, is that when you're trying to debug a policy, you can use the real-time monitoring, and see the success/failures of each of the individual filters.  This is super useful in diagnosing problems in any environment. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, they're calling my flight.  Wish me luck getting home.  Time stuck on the tarmac is just more time to get up to speed on the product :)&lt;/div&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-4533893226401178794</guid>
         <pubDate>Fri, 21 Jan 2011 03:54:00 +0000</pubDate>
      </item>
      <item>
         <title>How to Enforce Fine Grained Authorization to REST Services with Vordel and Oracle Entitlements Server</title>
         <link>http://xmlgateway.blogspot.com/2011/01/how-to-enforce-fine-grained.html</link>
         <description>Hello from Dublin,&lt;br /&gt;&lt;br /&gt;I'm nearly at the end of a very long week for Vordel Company kick-off, but I wanted to take the time get the new blog headed in the right direction.  I know that my blogging activity tailed off over the last few months, but one of my 2011 New Year's resolutions is to blog once a week - and lose 15 lbs.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Not surprisingly, my first post of the new year is on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/research/VordelAndOracleEntitlementsServer.html&quot;&gt;Vordel's integration with Oracle Entitlements Server&lt;/a&gt;.  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/&quot;&gt;Mark O'Neill, the Vordel CTO&lt;/a&gt;, has posted a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/research/VordelAndOracleEntitlementsServer.html&quot;&gt;video demo&lt;/a&gt; of the integration.  It follows the same basic use case as the Oracle Entitlements Server-&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fusionsecurity.blogspot.com/2010/06/securing-weblogic-webservices-with.html&quot;&gt;Oracle Web Services Manager&lt;/a&gt; integration that I did last year, except through the magic of the gateway, its protecting a REST service.&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;320&quot; height=&quot;266&quot;/&gt;&lt;/div&gt; A little background on this integration.  This was an integration that the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fusionsecurity.blogspot.com/&quot;&gt;A-Team&lt;/a&gt; helped Vordel with a while back. What's really nice about it is that it uses the Java SM.  This means that all of the calls are made inside of the Gateway.  So if we take the real world scenario described in the demo of the trader making a call to get a price, then performance is super critical.&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.layer7tech.com/tutorials/oracle-entitlements-server-integration&quot;&gt;  A more naive approach&lt;/a&gt; would be to call out using XACML.  The problem here is that the additional over head of creating an XML request, sending in, parsing in inside of the WS-SM, packing up the response, sending it back, and parsing again is &amp;gt; 100 ms.  Did you even know a trader that could wait 100 ms?  Also there is the additional operational complexity of having to stand up two instance of the WS-SM so that there is no single point of failure.&lt;br /&gt;&lt;br /&gt;Ultimately, I think the best solution would be &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.openliberty.org/wiki/index.php/OpenAz_Main_Page&quot;&gt;OpenAz&lt;/a&gt;...then you get a standard and likely an in-process implementation.  Now, if you have a XACML endpoint and want to call out - Vordel does this OOTB.  If you want this approach, my recommendation would be to run the XACML PDP from Oracle or other &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/solutions/axiomatics.html&quot;&gt;XACML vendors&lt;/a&gt; co-located on the Gateway (you can run the gateway as a software appliance), and then leverage the XML processing power of Vordel.&lt;br /&gt;&lt;br /&gt;The point here is that the quality of the integration and the quality of the platform does matter.  A good tight integration, like the one between &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/research/VordelAndOracleEntitlementsServer.html&quot;&gt;Oracle Entitlements Server and Vordel &lt;/a&gt;has real benefits (lower latency, operational efficiency) to customers.&lt;/div&gt;</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-2553679860689305720</guid>
         <pubDate>Thu, 13 Jan 2011 17:51:00 +0000</pubDate>
      </item>
      <item>
         <title>Why Vordel?</title>
         <link>http://xmlgateway.blogspot.com/2010/12/why-vordel.html</link>
         <description>This is my inagural post in this blog - in my new job - as Chief Solutions Architect at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/&quot;&gt;Vordel&lt;/a&gt;. In my time at Oracle, I had the opportunity to work with Vordel at a number of customers, and two things really stood out - the quality of the products and the quality of the people. It's a really good small company that reminds me very much of the early days of Netegrity. They have been the thought leaders in XML Gateways - a key element in SOA Security - for over a decade. Their push into the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/products/cloud_service_broker/index.html&quot;&gt;Cloud Service Broker&lt;/a&gt;/Web 2.0/REST Security area is very exciting to me as it represents the next generation of security solutions.&lt;br /&gt;&lt;br /&gt;For people who are familiar with the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fusionsecurity.blogspot.com/&quot;&gt;Fusion Security Blog&lt;/a&gt;, you'll see that I'm quite shamelessly copying the layout. Its also my intention to replicate its basic approach - &lt;em&gt;no manifestos, just good technical information on solving real world problems&lt;/em&gt;. The focus here will obviously be on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/&quot;&gt;Vordel&lt;/a&gt; and its primary product the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/products/gateway/index.html&quot;&gt;Vordel Gateway&lt;/a&gt;, but I'll also cover some of the broader SOA Security/WS-* use cases and approaches that we did on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fusionsecurity.blogspot.com/&quot;&gt;Fusion Security Blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For people who know me, they know that I was fairly reluctant to start blogging.  Quite to my surprise,  I have found it really useful in being able to connect quickly with customers. So, once again proving that old dogs can be taught new tricks, I've also created a twitter account &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.twitter.com/xmlgatewayguru&quot;&gt;@xmlgatewayguru&lt;/a&gt; .  I'll be honest - I'm not really sure what I'm doing with the &quot;twitter-machine&quot; yet, but I'll figure it out.  &lt;br /&gt;&lt;br /&gt;Wishing you a happy and healthy new year and a successful FY 11,&lt;br /&gt;&lt;br /&gt;Josh</description>
         <author>Josh Bregman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5730348672958747243.post-5098692838583486670</guid>
         <pubDate>Thu, 30 Dec 2010 19:07:00 +0000</pubDate>
      </item>
      <item>
         <title>Sorry for beeing late ..</title>
         <link>http://howtocloudsecurity.blogspot.com/2011/07/sorry-for-beeing-late.html</link>
         <description>Hallo Zusammen,&lt;br /&gt;nachdem mich eine netter Ex Kollege darauf aufmerksam gemacht das mein Blog sehr verwaist wirkt (Danke Wolfgang) ...&lt;br /&gt;&lt;br /&gt;Es gibt hier grade so viel zu tun, das ich es einfach nicht schaffe das hier regemässig zu pflegen .. also sein mir nicht Böse ...&lt;br /&gt;&lt;br /&gt;Soald ich Luft habe gibt es auch die ersten Infos ... mal in Deutsch mal in Englisch ... je nachdem wieviel Zeit ich habe&lt;br /&gt;&lt;br /&gt;ciao Axel</description>
         <author>Axel Grosse</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5384001504138779051.post-7249766204761734844</guid>
         <pubDate>Wed, 27 Jul 2011 07:05:00 +0000</pubDate>
      </item>
      <item>
         <title>Version 6.0.3 ist verfügbar !</title>
         <link>http://howtocloudsecurity.blogspot.com/2011/02/version-603-ist-verfugbar.html</link>
         <description>Die Version 6.0.3 ist heute veröffentlicht worden und über das Extranet von Vordel verfügbar.&lt;br /&gt;&lt;br /&gt;Die Release Notes sind &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://extranet.vordel.com/?p=347&quot;&gt;hier&lt;/a&gt;&amp;nbsp;verfügbar.&lt;br /&gt;&lt;br /&gt;Axel</description>
         <author>Axel Grosse</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5384001504138779051.post-3305436903843825590</guid>
         <pubDate>Tue, 01 Feb 2011 18:27:00 +0000</pubDate>
      </item>
      <item>
         <title>Warum Vordel ?</title>
         <link>http://howtocloudsecurity.blogspot.com/2011/01/warum-vordel.html</link>
         <description>Das ist mein erster Post in diesem Blog ... und in meinem neuen Job ... als Solution Architekt bei Vordel.&lt;br /&gt;In meinen vorherigen Job bei Oracle, habe ich mich ausgiebig mit SOA- und WebService&amp;nbsp;Architekturen&amp;nbsp;auseinandersetzten dürfen. Dabei bin ich einerseits über eine Mangel an&amp;nbsp;Sicherheitsbewusstsein&amp;nbsp;im Umfeld von SOA und&amp;nbsp;andererseits&amp;nbsp;über Vordel gestolpert. &amp;nbsp;Bei Vordel haben mich 2 Dinge überzeugt, ein gestandenes und ausnehmend gutes Produkt und eine Spirit wie ich ihn in meinen Anfangstagen bei Oracle im letzten Jahrtausend erlebt habe.&lt;br /&gt;Vordel &amp;nbsp;ist seit über 10 Jahren führend mit ihrem Produkt&amp;nbsp;- &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/products/gateway/index.html&quot;&gt;XML Gateway&lt;/a&gt; - in der SOA Security unterwegs und ihr neues Produkt - der &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.vordel.com/products/cloud_service_broker/&quot;&gt;Cloud Service Broker&lt;/a&gt; - ist der nächste Schritt in der Absicherung von großen SOA Netzwerken.&lt;br /&gt;&lt;br /&gt;Dieser Blog wird sich sicherlich hauptsächlich um Vordel drehen, aber ich habe vor auch abstraktere Themen rundum die Absicherung von Web Services und Cloud Services zu betrachten. Die Basis werden echte &amp;nbsp;Fallbeispiele sein ... also keine Werbeplakate, sonder technische Informationen um echte Probleme zu Lösen.&lt;br /&gt;&lt;br /&gt;Wer mich kennt, weiss das das mein erster Start in die Welt der Blogs ist .... Alte Hunde, neue Tricks ... geht doch.&lt;br /&gt;&lt;br /&gt;viel Spass bei lesen und verfolgen&lt;br /&gt;Axel</description>
         <author>Axel Grosse</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5384001504138779051.post-9120105760076925106</guid>
         <pubDate>Mon, 17 Jan 2011 08:47:00 +0000</pubDate>
      </item>
      <item>
         <title>Throttling – A Variation</title>
         <link>https://enterprisegateway.wordpress.com/2011/08/23/throttling-a-variation/</link>
         <description>In my last post I showed how simple request rate based throttling could be adapted to provide a more proactive approach to managing service consumption limits; applicable to a range of scenarios like capacity management, service metering and critical service &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://enterprisegateway.wordpress.com/2011/08/23/throttling-a-variation/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&amp;#038;blog=19210851&amp;#038;post=289&amp;#038;subd=enterprisegateway&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://enterprisegateway.wordpress.com/2011/08/23/throttling-a-variation/</guid>
         <pubDate>Tue, 23 Aug 2011 11:42:56 +0000</pubDate>
         <content:encoded><![CDATA[<p>In my last post I showed how simple request rate based throttling could be adapted to provide a more proactive approach to managing service consumption limits; applicable to a range of scenarios like capacity management, service metering and critical service protection. I also emphasized the difference between <strong><em>request throttling</em></strong> and <strong><em>concurrent connection throttling</em></strong>. Over the course of the past few weeks I have had cause to think a little harder about how to control and restrict the number of “in-flight” transactions for a particular service.</p>
<p>The obvious point to note here is that the number of requests processed per second does not necessarily relate to the load on the target system (whatever that may be);for example a search request with broad parameters that returns a huge amount of data will consume more resources on the service provider system than an update that contains a unique identifier for a record and a couple of values. The ability to restrict the number of concurrently processing, high cost requests should be considered as important as controlling the rate of incoming requests. Failing to provide this type of protection for mission critical services has seriously undesirable side-effects.</p>
<p>In this post I’ll give an example of how a gateway can be used to provide protection from system overload (at an operation level) and discuss the various approaches to managing this in an HA (High Availability) and dual site configuration.</p>
<p>First off let’s be clear about in-flight requests and concurrent transactions….</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/mct.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="mct" border="0" alt="mct" src="https://enterprisegateway.files.wordpress.com/2011/08/mct_thumb.png?w=609&#038;h=241" width="609" height="241"></a></p>
<p>Assuming the target service is exposed to external consumers in the classic service virtualisation pattern above, an “in-flight” request is considered to have a lifetime that begins as soon as the request leaves the gateway (forwarded to the service) and that ends once the response from the service is received by the gateway. For longer running requests (in the order of 2 to 5 seconds or more) the effect of concurrent processing is exaggerated. To clarify, the requests do not need to be concurrent – it is the overlap of&nbsp; the lifetime of in-flight requests that constitutes a “concurrent transaction” in the context of MCT (Maximum Concurrent Transaction) throttling.</p>
<p>In the diagram above, (green dots representing requests) if a limit of 2 MCT had been applied to the service, then subsequent requests would be rejected until such time as one of the requests currently being processed completes and returns.</p>
<p>Clearly the objective here is to manage a count, applying a one-in one-out restriction when the maximum number of allowed transactions currently being processed by the target server is reached… sounds pretty easy, and in a single gateway in-line configuration it is.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/mct_single_gw_inline.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="mct_single_gw_inline" border="0" alt="mct_single_gw_inline" src="https://enterprisegateway.files.wordpress.com/2011/08/mct_single_gw_inline_thumb.png?w=400&#038;h=444" width="400" height="444"></a></p>
<p>Using either the service name, operation name (or a combination of both) or even the URI of the incoming request to provide the key for the increment allows the restriction of the number of concurrently executing requests on the target server.</p>
<p>The challenge here is how to scale, simply dividing the maximum limit by the number of gateways behind a load balancer is notoriously unreliable and could easily result in a loss of transaction capacity if the load balancer has any bias at all. The only real solution is to maintain an atomic transaction count across 1..n gateways.</p>
<p>I spent some time looking at the different options for achieving this, and whilst there are a few that are satisfactory from a functionality point of view, they all came with a cost (usually a performance hit).</p>
<p>The silver bullet was actually handed to me on plate by David Cooke at Oracle (thanks David), who introduced me to Oracle Coherence, a very cool piece of tech. The key to it all is providing a non-blocking lock on the count – allowing multiple gateways to read, increment and decrement the count for a given service/operation. The simple policy shown below is all that is required to implement service level MCT throttling (in its most basic form)</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image8.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb8.png?w=549&#038;h=395" width="549" height="395"></a></p>
<p>If the gateway fails to acquire a lock on a transaction a custom error message is returned back to the client. The fault handler (in blue) for this circuit also releases the lock – to prevent orphaned transactions. In this example the connection to the target service is also load balanced (by the gateways) to multiple hosts.</p>
<p>As a solution this is highly scalable (multiple gateways, 300+ services/operations) and also self healing; one or more gateways can be removed from the architecture without impacting the availability or the transaction count, as long as there is one gateway up and running. Orphaned transaction locks from a terminated gateway are automatically cleaned up and freed for use by the remaining gateways.</p>
<p>The load balancing performed by the gateway will also mitigate downstream server failure – by removing an unresponsive host from the available pool and adding it back in when it becomes operational and available again. </p>
<p>If that wasn’t enough, the transaction restrictions can be applied even in a dual / multi site (DR) scenario – although <em>performance may vary</em> depending on the inter-site connectivity. </p>
<p>The MCT throttling limits can be implemented as “hard” and “soft” limits with alerting (as described in the previous <a rel="nofollow" target="_blank" href="https://enterprisegateway.wordpress.com/?p=282">request throttling</a> – and the concurrency can be tracked against almost any facet of the interaction service/operation/user/client IP address etc&#8230; Limits can be stored externally (abstracted to a directory/database / IdM solution) allowing the administration.</p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/enterprisegateway.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/enterprisegateway.wordpress.com/289/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&#038;blog=19210851&#038;post=289&#038;subd=enterprisegateway&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="https://2.gravatar.com/avatar/8eedbd2a7bdde61712e21423c21c1622?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">hsramnai</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/mct_thumb.png">
            <media:title type="html">mct</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/mct_single_gw_inline_thumb.png">
            <media:title type="html">mct_single_gw_inline</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb8.png">
            <media:title type="html">image</media:title>
         </media:content>
      </item>
      <item>
         <title>Request throttling – a proactive approach</title>
         <link>https://enterprisegateway.wordpress.com/2011/08/04/request-throttling-a-proactive-approach/</link>
         <description>I recently saw this great article by Mark O’Neill, CTO at Vordel about throttling. Take a look here http://www.soatothecloud.com/2011/07/how-to-configure-throttling-on-vordel.html. Mark assumes you have a degree of familiarity with either the Vordel Gateway or Oracle Enterprise Gateway, if you don’t then &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://enterprisegateway.wordpress.com/2011/08/04/request-throttling-a-proactive-approach/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&amp;#038;blog=19210851&amp;#038;post=282&amp;#038;subd=enterprisegateway&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://enterprisegateway.wordpress.com/?p=282</guid>
         <pubDate>Thu, 04 Aug 2011 16:55:53 +0000</pubDate>
         <content:encoded><![CDATA[<p>I recently saw this great article by Mark O’Neill, CTO at <a rel="nofollow">Vordel</a> about <strong><em>throttling</em></strong>. Take a look here <a rel="nofollow" target="_blank" href="http://www.soatothecloud.com/2011/07/how-to-configure-throttling-on-vordel.html">http://www.soatothecloud.com/2011/07/how-to-configure-throttling-on-vordel.html</a>.</p>
<p>Mark assumes you have a degree of familiarity with either the <a rel="nofollow">Vordel</a> Gateway or <a rel="nofollow" target="_blank" href="http://www.oracle.com/us/technologies/soa/soa-governance/enterprise-gateway-345737.html">Oracle Enterprise Gateway</a>, if you don’t then take a look at my earlier “hello world” entries <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://enterprisegateway.files.wordpress.com/2011/08/wlemoticon-smile.png?w=640"></p>
<p>What I’d like to do in this post is focus a little deeper on request throttling, and show how the gateway can help <em>avoid</em> partners and service consumers from overloading your services not just by <em>blocking</em> requests that exceed a certain threshold, but by giving advanced warning of erroneous excessive service consumption.</p>
<p>It is worth taking a few paragraphs to explain the very real value of request throttling, and perhaps to make a brief comparison with SLA management, quota management, traffic shaping and concurrent transaction processing limits.</p>
<p>In the context of gateways being used to virtualise services for external consumption, throttling is primarily concerned with the number of requests made by consumers to the target services. Restrictions take the form of a message count that is incremented and measured over a specific time period. The <a rel="nofollow">Vordel</a> gateway provides both coarse and fine grained control of request counts and perhaps more importantly can track the request count based on virtually any index. </p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb.png?w=362&#038;h=456" width="362" height="456"></a></p>
<p>&nbsp; The throttling filter provides a variety of options for measuring and tracking request counts – the time period unit ranges from seconds, minute, hour, day, and week meaning that it can used to implement quota management as part of a pay-per-use solution.</p>
<p>The number of messages, period and period unit can also specified by parameter substitution – enabling complete decoupling of the throttling limits which could be managed in an external provisioning system or database.</p>
<p>Key to the successful implementation of a request throttling solution of enterprise scale is the ability to maintain a consistent count across multiple gateways in an HA / HA-DR deployment – achieved quite simply here by the use of the gateway’s caching mechanism.</p>
<p>Pay special attention to the <strong><em>“Track per key” </em></strong>setting that allows the request count to be applied to different contexts. In the screen shot above, the wildcard attribute of <em>${http.request.clientaddr} </em>is being used – fairly obviously this will apply the request count restrictions based on unique IP address value of the calling client. The ability to control the “key” with attributes gives enormous flexibility, and because multiple throttling filters can be linked together in a policy (or circuit) limits can be applied to an incredibly low level. You could for example apply a <strong><em>global</em></strong> request rate limit across all services (good practice for mitigating DoS attacks). Legacy applications that have been “service enabled” may be a little fragile (having never been designed for web volumes) – it would make sense to apply a <strong><em>service wide</em></strong> limit in addition to the global restriction, but independent of the calling client – you could even be <em><strong>operation</strong> </em>specific. Most of us are also familiar with the pattern that allows restricted service usage for “free”, and a tiered allowance for those signing up to the “pro” version – a good example of metered service consumption <strong><em>by role</em></strong>. Then there is the hard core application – of quota management by identity (which could be at individual user level or partner organisation).</p>
<blockquote><p>For the record, throttling should not be confused with SLA (Service Level Agreement) monitoring and management. It may be sensible to offer an SLA within restricted bounds (of request volume) but SLA is more concerned with response times, number of failures (typically non 2xx response codes) etc…</p>
</blockquote>
<p>The value here is pretty obvious, by implementing a well considered throttling strategy (which incidentally can be designed once and applied globally) you get the following</p>
<ul>
<li>Protection from request volume based DoS attacks
<li>Shielding of vulnerable servers, services (and even specific operations)
<li>Service Consumption Metering (billable pay per use services)
<li>Optional and conditional routing of excess traffic (maybe expanding into the cloud at peek times
<li>Pro-active non-blocking alerting that allows action to be taken before critical limits are reached with built in alert storm protection
<li>boundary volumes for tightening SLA agreements</li>
</ul>
<p>Using externally set parameters means that limits can be changed an applied dynamically (or in extreme cases even scripted!!) you could for example automate the increase of a limit on receipt of payment for a particular partner / customer.</p>
<p>The wealth of functionality in just one filter component is impressive in its own right, and… there’s more… Mark’s blog describes a relatively simple design…. once you reach the throttling limit for the service then future requests are “rejected” until such time as the rate calculation falls below the specified threshold. By introducing a <strong><em>soft</em></strong> limit we have the capability to provide <strong><em>non-blocking</em></strong> alerts that give prior warning of an impending breech . </p>
<p>Working through an example….</p>
<p>1. Basic service throttling</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb1.png?w=643&#038;h=236" width="643" height="236"></a></p>
<p>The figure above shows rudimentary service throttling (at 100 requests per second is used as an example only). If the number of requests to the service exceed this, then a soap fault will be returned by the gateway and the request is not sent to the target service (blocking).</p>
<p>If we introduce another throttling filter (different key for tracking!) with a lower limit, we can provide an alert to an appropriate party (operations / partner administration contact / account manager or all)</p>
<p>2. Setting a “soft” limit</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb2.png?w=434&#038;h=278" width="434" height="278"></a></p>
<p>In this example I’ve chosen to set the warning level at 80 requests per second – and changed the key to track by to avoid a double increment with the hard limit filter.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb3.png?w=436&#038;h=182" width="436" height="182"></a></p>
<p>At first glance, it looks a little odd – basically we don’t change the policy execution path when we exceed the SOFT limit. This will however show in trace files, real time monitoring and the new Traffic Monitor</p>
<p>3. Take some action on exceeding the SOFT limit</p>
<p>a) For demonstration purposes I’ll use a syslog alert, but it should be obvious at this point that the conditional processing that occurs as a result of a SOFT limit breach is not restricted to syslog alerting – or alerting at all! – setting up an alert</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image4.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb4.png?w=244&#038;h=204" width="244" height="204"></a><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image5.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb5.png?w=313&#038;h=175" width="313" height="175"></a></p>
<p>Having set up an alert target, it can now be used to flag a soft limit breach… n.b. the alert filter is found in the Monitoring category</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image6.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb6.png?w=353&#038;h=119" width="353" height="119"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/08/image7.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb7.png?w=546&#038;h=282" width="546" height="282"></a></p>
<p>The actual alert configuration is outside the scope of what I want to discuss here, I’ll perhaps cover it in greater detail in a different post</p>
<p>So from the top down …..</p>
<p>If the request being processed causes the 80/s count to be exceeded we follow the failure path (the <font color="#ff0000">red</font> line) to the “Alert” filter – my alert is configured to send a message to syslog with details of the service soft limit breech.</p>
<p>In the above policy I have chosen not to put the alert on the critical path, in real terms this means that even if the alert fails then message processing will continue. Then the policy checks the HARD limit which is where we started at step 1… meaning that if the request is over the soft limit but below the hard limit then the alert is sent and the request is processed as desired, only when the hard limit is exceeded are requests blocked.</p>
<p>** The brighter readers of this might observe that this means you could have 20 alerts in a second for each request that is &gt;79 but less than 100 ** essentially an <em>alert storm. </em>Fortunately the alerting filter provides the ability to prevent this by configuring a limit for the number of alerts that can be sent in a given time period…. the clever guys at <a rel="nofollow">Vordel</a> think of almost everything <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://enterprisegateway.files.wordpress.com/2011/08/wlemoticon-smile.png?w=640"></p>
<p>I</p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/enterprisegateway.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/enterprisegateway.wordpress.com/282/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&#038;blog=19210851&#038;post=282&#038;subd=enterprisegateway&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="https://2.gravatar.com/avatar/8eedbd2a7bdde61712e21423c21c1622?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">hsramnai</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/wlemoticon-smile.png">
            <media:title type="html">Smile</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb1.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb2.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb3.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb4.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb5.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb6.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/image_thumb7.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/08/wlemoticon-smile.png">
            <media:title type="html">Smile</media:title>
         </media:content>
      </item>
      <item>
         <title>Hello Joe</title>
         <link>https://enterprisegateway.wordpress.com/2011/06/27/hello-joe/</link>
         <description>Hopefully you’ve been able to set up your new and shiny gateway and go through the simple hello world policy. In this post we are going to extend the HelloWorld policy to introduce some authentication and gateway attributes. So far &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://enterprisegateway.wordpress.com/2011/06/27/hello-joe/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&amp;#038;blog=19210851&amp;#038;post=261&amp;#038;subd=enterprisegateway&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://enterprisegateway.wordpress.com/?p=261</guid>
         <pubDate>Mon, 27 Jun 2011 12:54:43 +0000</pubDate>
         <content:encoded><![CDATA[<p>Hopefully you’ve been able to set up your new and shiny gateway and go through the simple hello world policy. In this post we are going to extend the HelloWorld policy to introduce some authentication and gateway <strong><em>attributes</em></strong>.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image58.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb58.png?w=323&#038;h=134" alt="image" width="323" height="134" border="0"/></a></p>
<p>So far we have used the set message filter to set the message value to some arbitrary text, and then used the reflect filter to bounce this back to the requestor with an http response code of 200.</p>
<p>To add some simple authentication, the first thing we will need is a User.</p>
<p>1. Creating the user</p>
<p>Select the users section on the configuration navigation panel on the left hand side.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image59.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb59.png?w=244&#038;h=145" alt="image" width="244" height="145" border="0"/></a> <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image60.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb60.png?w=223&#038;h=201" alt="image" width="223" height="201" border="0"/></a></p>
<p>Then click on the Users node of the User Store</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image61.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb61.png?w=849&#038;h=194" alt="image" width="849" height="194" border="0"/></a></p>
<p>Click Add – and enter some details for your user (I have used ‘joe’ with a password of ‘joe’)</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image62.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb62.png?w=585&#038;h=239" alt="image" width="585" height="239" border="0"/></a></p>
<p>Note the option to assign an X509 cert here – this can be used for crypto operations and mutual SSL – <em>which are topics for a later post</em>.</p>
<p>Notice also the attributes tab, click this and add an attribute</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image63.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb63.png?w=587&#038;h=317" alt="image" width="587" height="317" border="0"/></a></p>
<p>I’m going to set an age attribute with a value of 30</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image64.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb64.png?w=598&#038;h=247" alt="image" width="598" height="247" border="0"/></a></p>
<p>Add a couple more if you feel like experimenting – just the one will serve for the purpose of this post – remember – pretty much everything is CASE SENSITIVE by default.</p>
<p>Click OK and now you have your user “joe” in the built in user store</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image65.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb65.png?w=336&#038;h=83" alt="image" width="336" height="83" border="0"/></a></p>
<p>2. Adding authentication to the policy</p>
<p>Now we have a user to work with, lets put some authentication requirements on our Hello World policy – starting with http basic. Navigate to the Hello world policy (select the policies section on the left hand navigation panel and click on the policy in the tree node, or if it is already there select it from the list of tabs in the design panel (central panel by default).</p>
<p>Type “authentication” into the filter text box at the top of the pallet – you should be getting used to where things are by now… and expand the Authentication category.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image66.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb66.png?w=143&#038;h=494" alt="image" width="143" height="494" align="left" border="0"/></a></p>
<p>In the authentication category you will see many options for providing authentication to services – some of which enable out of the box integration with third party IdM products &#8211;  we won’t be looking at these in the blog but feel free to submit a comment if you need assistance with something specific like Tivoli, RSA, CA, ADFS etc…</p>
<p>Remember that each of the filters here will have a context based dialogue that allows you to enter the parameters required to integrate – NO CODE REQUIRED.</p>
<p>For those of you not familiar with how  Mutual SSL authentication (or Client certificate authentication) don’t expect to be able to use this just yet, as we haven’t set up an https interface … so it’s not possible just yet …. have patience</p>
<p>Anyone wanting to play with kerberos – feel free but I’m not a big fan so won’t be covering it here unless someone forces me too <img class="wlEmoticon wlEmoticon-smile" style="border-style:none;" src="https://enterprisegateway.files.wordpress.com/2011/06/wlemoticon-smile.png?w=640" alt="Smile"/></p>
<p>Left click, hold and drag the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image67.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb67.png?w=145&#038;h=23" alt="image" width="145" height="23" border="0"/></a> filter onto the design canvas – it is best to drop it on to an “empty” part of the canvas – dropping filters on top of each other or directly on to connectors has a different effect which we will cover later.</p>
<p>Configure the filter with the following settings:</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image68.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb68.png?w=531&#038;h=395" alt="image" width="531" height="395" border="0"/></a></p>
<p>and click Finish – you should have something like this.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image69.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb69.png?w=391&#038;h=236" alt="image" width="391" height="236" align="left" border="0"/></a></p>
<p>Remember any filter that is not the start filter, and is not connected to it by a downstream path is not part of the policy.</p>
<p>Obviously it makes sense here for http basic authentication to be the first step we perform in the policy – it may seem trivial right now, but we don’t want to waste processing power performing tasks for an un-authenticated user!</p>
<p>There are a couple of ways of achieving this, and it’s basically down to personal preference – either set the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image70.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb70.png?w=145&#038;h=23" alt="image" width="145" height="23" border="0"/></a> filter as the start filter (right click – set as start) and then join the others, or use the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image71.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb71.png?w=142&#038;h=26" alt="image" width="142" height="26" border="0"/></a> to link the http basic filter to the set message filter… then set it as start – I typically do the later.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image72.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb72.png?w=383&#038;h=201" alt="image" width="383" height="201" border="0"/></a>   <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image73.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb73.png?w=244&#038;h=215" alt="image" width="244" height="215" border="0"/></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image74.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb74.png?w=342&#038;h=190" alt="image" width="342" height="190" align="left" border="0"/></a></p>
<p>There are no RED warnings – so all attribute requirements are satisfied – all that remains to be done is deploy the update policy to the gateway</p>
<blockquote><p>to deploy the configuration hit the F6 function key, or click the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image75.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb75.png?w=37&#038;h=33" alt="image" width="37" height="33" border="0"/></a> deploy icon – changes to policy do not affect the running [active] gateway until they are deployed.</p></blockquote>
<p>In a browser of your choice – load up your hello world uri</p>
<p><a rel="nofollow" target="_blank" href="http://localhost:8080/blog/tutorial01/helloworld">http://localhost:8080/blog/tutorial01/helloworld</a></p>
<p>&#8211; you should be challenged for a user name and password</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image76.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb76.png?w=244&#038;h=154" alt="image" width="244" height="154" align="left" border="0"/></a></p>
<p>Enter the credentials for the user you added in the first step of this tutorial – in my case – ‘joe’ and ‘joe’</p>
<p>and you should be granted access to the hello world page</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image77.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb77.png?w=645&#038;h=114" alt="image" width="645" height="114" border="0"/></a></p>
<p>** There are a couple of things to keep in mind when it comes to using browsers as a test client; they tend to cache authorisation headers – so if you got your username and password wrong here then to try again you may have to shut down ALL browser sessions before you can try again – or even clear your browsing history – ultimately it is better to use a testing tool like Vordel SOAP Box that will all0w you to send a variety of requests at the gateway (including http GETs) without the browser functionality getting in the way of you testing – we’ll take a look at SOAP Box in the next couple of blogs – and its a free download with no “pro-version” limitations **</p>
<p>So we have layered  http basic authentication over the hello world service – now that we have a user identity established as part of the policy we can add some personalisation – let’s start by changing the welcome message.</p>
<p>Go back to the hello world policy and double click on the set message filter &#8211;</p>
<p>edit the text to say Hello $</p>
<p>Notice that as soon as you press the ‘$’ key a scrollable list of attributes is presented for auto insertion – continue to type “authentication” and then select the “authentication.subject.id” attribute and hit enter. Your message text should now look like this.</p>
<blockquote><p>Hello ${authentication.subject.id}</p></blockquote>
<p>Click finish.</p>
<p>This is the general syntax for attribute insertion (or substitution) – the <strong><em>authentication.subject.id </em></strong>attribute is populated by way of the http basic authentication filter we inserted earlier. You can see what attributes are generated, required and consumed by right clicking on the design canvas and selecting the “show all attributes” menu item.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image78.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb78.png?w=390&#038;h=456" alt="image" width="390" height="456" align="left" border="0"/></a></p>
<p>There are other attributes available (populated by default as part of handling an http request – http.request.uri and http.client.addr for example that are not shown in this list – all the attributes are documented in detail in the gateway documentation. available at <a rel="nofollow" target="_blank" href="http://localhost:8090/docs/">http://localhost:8090/docs/</a></p>
<p><strong>Deploy</strong> [F6 function key, or click the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image79.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb79.png?w=37&#038;h=33" alt="image" width="37" height="33" border="0"/></a> deploy] your updated policy and browse to the url <a rel="nofollow" target="_blank" href="http://localhost:8080/blog/tutorial01/helloworld">http://localhost:8080/blog/tutorial01/helloworld</a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image80.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb80.png?w=625&#038;h=126" alt="image" width="625" height="126" border="0"/></a></p>
<p>for fun you could then try setting your message to something like this.</p>
<blockquote><p>Hello ${authentication.subject.id}<br />
You are on ip address ${http.request.clientaddr}<br />
and accessing the relative path ${http.request.uri}<br />
via the HTTP method: ${http.request.verb}</p></blockquote>
<p>Next we will look at retrieving joe’s age from the user store.</p>
<p>In the filter textbox on the pallet – type attributes and expand the attributes section</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image81.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb81.png?w=153&#038;h=420" alt="image" width="153" height="420" align="left" border="0"/></a></p>
<p>Again there is a wealth of functionality that deals with attributes of all kinds, shapes and sizes – scrolling down you will find the filter we need for this example</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image82.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb82.png?w=137&#038;h=36" alt="image" width="137" height="36" border="0"/></a></p>
<p>Remember you can customise the filters that are shown or hidden, and add your most frequently used filters to the Favourites (Favorites for you folks in the US) category.</p>
<p>If you fancy a change and don’t want to drag and drop then you could right click on the canvas and select add filter, then select the retrieve from user store filter.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image83.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb83.png?w=182&#038;h=244" alt="image" width="182" height="244" align="left" border="0"/></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image84.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb84.png?w=453&#038;h=240" alt="image" width="453" height="240" border="0"/></a></p>
<p>Configure the filter to use the authentication.subject.id as the User ID, – the authentication.subject.id will be used to uniquely identify the user whose attributes we wish to retrieve. – you can add individual attributes to selectively retrieve, or leave the attribute list empty to return ALL attributes for the user from the built in store</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image85.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb85.png?w=453&#038;h=359" alt="image" width="453" height="359" border="0"/></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image86.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb86.png?w=272&#038;h=242" alt="image" width="272" height="242" align="left" border="0"/></a></p>
<p>Now wire in the retrieve from user store filter. Logically it would not make sense to retrieve attributes before we have identified the user – so you should be able to figure out where this one should go – again there are different ways to rewire the policy – by preference I connect the filter I have just added using the success connector <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image87.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb87.png?w=142&#038;h=26" alt="image" width="142" height="26" border="0"/></a> to the filter that should follow it, then move the end of the path that should connect above it like this.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image88.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb88.png?w=244&#038;h=110" alt="image" width="244" height="110" border="0"/></a></p>
<p>Connect the retrieve from user store filter to the set message filter</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image89.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;margin:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb89.png?w=244&#038;h=115" alt="image" width="244" height="115" border="0"/></a></p>
<p>click the success path joining the http basic filter and the set message filter then drag the arrow end to the retrieve from user store filter</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image90.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb90.png?w=223&#038;h=119" alt="image" width="223" height="119" border="0"/></a>             <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image91.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb91.png?w=179&#038;h=110" alt="image" width="179" height="110" border="0"/></a></p>
<p>click the arrow head and drag it onto the retrieve from user store filter and release</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image92.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb92.png?w=440&#038;h=209" alt="image" width="440" height="209" border="0"/></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image93.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb93.png?w=321&#038;h=247" alt="image" width="321" height="247" align="left" border="0"/></a></p>
<p>Now we have a nice visual representation of the flow &#8211;<br />
1. authenticate<br />
2. get attributes from user store<br />
3. set the personalised message<br />
4. return the message to the requestor</p>
<p>we just need to update the message to include our ‘age’ attribute</p>
<p>change the message text in the set message filter to</p>
<blockquote><p>Hello ${authentication.subject.id} you are <strong>${user.age}</strong> years old</p></blockquote>
<p>Notice that the age attribute is prefixed with “user.” this is because the attribute belongs to the user, and NOT the message – distinguishing between user attributes and message attributes becomes more important later when inserting SAML assertions amongst other things.</p>
<p><strong>Deploy</strong> the updated policy and check it out….</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image94.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb94.png?w=431&#038;h=98" alt="image" width="431" height="98" border="0"/></a></p>
<p>You can change “joe’s age” by modifying the age attribute value for joe in the user store – remember to re-deploy before you test again.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image95.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border:0;" title="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb95.png?w=244&#038;h=200" alt="image" width="244" height="200" align="left" border="0"/></a></p>
<p>Notice that the Set Message filter is now RED – warning that one or more required attributes may not be available at run-time – this is because we used the retrieve filter to return ALL the values – therefore the GUI cannot confirm with any certainty that the “age” attribute will ALWAYS be available. If you show all attributes you will see it is the user.age attribute that is the cause for concern.</p>
<h1></h1>
<h1>What you should have learnt</h1>
<ul>
<li>How to add a user (with attributes) to the local user repository</li>
<li>How to configure http basic authentication against the local user repository</li>
<li>How to insert a filter (rather than just add) into an existing circuit</li>
<li>How to retrieve user attributes from the local user repository</li>
<li>How to substitute retrieved attributes using the wildcard syntax into the set message filter</li>
<li>Where to access the list of available attributes (in the product docs!!)</li>
<li>How to detect attribute dependencies in policies</li>
<li>How to navigate between the different configuration sections – policies, services, users</li>
</ul>
<h1></h1>
<h1>Fundamentals</h1>
<ul>
<li>User attributes are prefixed with “user.”</li>
<li>selecting a success or failure “arrow” allows the arrow head to be dragged and reconnected to change the flow of the policy</li>
<li>ALL changes need to be deployed – even updating user attributes</li>
<li>Changing the starting filter affects the whole policy – there is more than one way to achieve the desired flow through the policy / filter circuit</li>
</ul>
<h1></h1>
<h1>Up next….</h1>
<p>Fault handling and policy shortcuts… a short introduction on how to create re-usable policies that can be invoked from multiple “parent” policies, and how this helps to keep a clean and clear visual representation of gateway policies; and how to create policies that handle errors and failures.</p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/enterprisegateway.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/enterprisegateway.wordpress.com/261/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&#038;blog=19210851&#038;post=261&#038;subd=enterprisegateway&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="https://2.gravatar.com/avatar/8eedbd2a7bdde61712e21423c21c1622?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">hsramnai</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb58.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb59.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb60.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb61.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb62.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb63.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb64.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb65.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb66.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/wlemoticon-smile.png">
            <media:title type="html">Smile</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb67.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb68.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb69.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb70.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb71.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb72.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb73.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb74.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb75.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb76.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb77.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb78.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb79.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb80.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb81.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb82.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb83.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb84.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb85.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb86.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb87.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb88.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb89.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb90.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb91.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb92.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb93.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb94.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb95.png">
            <media:title type="html">image</media:title>
         </media:content>
      </item>
      <item>
         <title>Hello World</title>
         <link>https://enterprisegateway.wordpress.com/2011/06/07/hello-world/</link>
         <description>I find it easier to get to grips with products when I use them, tool tips and “tip of the day” splash screens bug me, I actually prefer meaningful error messages when I mess things up. With that in mind &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://enterprisegateway.wordpress.com/2011/06/07/hello-world/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&amp;#038;blog=19210851&amp;#038;post=59&amp;#038;subd=enterprisegateway&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://enterprisegateway.wordpress.com/?p=59</guid>
         <pubDate>Tue, 07 Jun 2011 18:59:56 +0000</pubDate>
         <content:encoded><![CDATA[<p>I find it easier to get to grips with products when I use them, tool tips and “tip of the day” splash screens bug me, I actually prefer meaningful error messages when I mess things up. With that in mind I’m not going to go through each and every facet of what you can see in the design tool you just fired up I’m just going to walk through a simple example… which will educate as well as stimulate some questions…..</p>
<p>Having said that, it is helpful to know which end of the proverbial oar to use before starting to paddle so here is the express tour of the main Policy Studio design window.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/ps_services.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ps_Services" border="0" alt="ps_Services" src="https://enterprisegateway.files.wordpress.com/2011/06/ps_services_thumb.png?w=608&#038;h=329" width="608" height="329"></a></p>
<p>The main policy studio window has two sections – the section on the left is for configuration navigation and is split into 5 separate viewing perspectives</p>
<ul>
<li>Services – For configuring inbound channels e.g. http listeners, jms and pop3 consumers
<li>Policies – Viewing and managing policies – we will explore this in more detail later
<li>External Connections – external databases and repositories, AuthN and AuthZ / IdM Provider integration, SMTP, JMS etc…
<li>Users – A built in user repository that can be used to apply AuthN and AuthZ without requiring a 3rd Party User Repository or IdM product
<li>Certificates – self explanatory – contains functionality for managing certificates and keys</li>
</ul>
<p>Selecting the different sections on the bottom left hand container changes the explorer tree node view.</p>
<p>&nbsp;</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/ps_services1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ps_Services" border="0" alt="ps_Services" src="https://enterprisegateway.files.wordpress.com/2011/06/ps_services_thumb1.png?w=629&#038;h=340" width="629" height="340"></a></p>
<p>left clicking on any of the node items changes the contents of the tabbed central panel to a context sensitive display</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/ps_users.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ps_users" border="0" alt="ps_users" src="https://enterprisegateway.files.wordpress.com/2011/06/ps_users_thumb.png?w=627&#038;h=339" width="627" height="339"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/ps_policies.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ps_policies" border="0" alt="ps_policies" src="https://enterprisegateway.files.wordpress.com/2011/06/ps_policies_thumb.png?w=621&#038;h=338" width="621" height="338"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/ps_certs.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="ps_certs" border="0" alt="ps_certs" src="https://enterprisegateway.files.wordpress.com/2011/06/ps_certs_thumb.png?w=627&#038;h=300" width="627" height="300"></a></p>
<p>If you are anything like me then you’ll probably have tried clicking, double clicking and right clicking on just about everything that looks clickable by now (I’m every IT trainers worst nightmare). Hopefully you managed to cancel out out of everything you weren’t sure of and tried deleting anything you thought you understood to get back to ground zero…. if you didn’t then don’t worry about it simply close the top level gateway configuration tab, choose to discard your changes and then click “edit active configuration again” and <em>phew…you’re back!…</em></p>
<p>
<hr /> First things first check you have the gateway running on port 8080 (this can be changed no problem but will be covered in a separate post) **TODO** link to changing ports post
<p>Next fire up your browser and navigate to <a rel="nofollow" target="_blank" href="http://localhost:8080/healthcheck">http://localhost:8080/healthcheck</a> – you should get a little message back saying “OK” – depending on your browser it may or may not be rendered as XML</p>
<blockquote><p>Use your browsers view source facility to take a look at what is actually sent back by the gateway</p>
</blockquote>
<blockquote><p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb.png?w=666&#038;h=147" width="666" height="147"></a></p>
</blockquote>
<blockquote><p><strong>the gateway URIs are case sensative <em><a rel="nofollow" target="_blank" href="http://localhost:8080/HealthCheck">http://localhost:8080/HealthCheck</a> will give you a totally different result (again this can be overridden but is out of the scope of this post)</em></strong></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb1.png?w=334&#038;h=114" width="334" height="114"></a></p>
</blockquote>
<p>If you haven’t already fired it up and had a look around already then check out the traffic monitor and real time monitoring tools at <a rel="nofollow" target="_blank" href="http://localhost:8090/">http://localhost:8090/</a></p>
<p>the traffic monitor is a really useful tool for development and diagnostics…. and shows policy execution, trace and payload information, we will take a look as part of the first policy exercise.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image23.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb23.png?w=547&#038;h=371" width="547" height="371"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image24.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb24.png?w=619&#038;h=94" width="619" height="94"></a></p>
<p>So now we have the basics in place, and we can navigate the different configuration sections we can go right ahead and develop our first policy. </p>
<p>The gateway is often used in the context of a reverse proxy for web, xml and ReST services, in the case of Web Services we can use an import wizard to load up a WSDL and auto-generate a policy framework that virtualises the service. Ironically this makes more sense when you know more about how the gateway actually works. So instead of plumping for the standard StockQuote Service (which I promise to cover in a later post) I’m going to take a step back and work through setting up an “echo” style service on the gateway – no SOAP, no WSDL, no XSD just an http request and response.</p>
<p>Start by creating a new <em>Policy Container </em>under the Policies node in the node tree on the left hand configuration explorer pane</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image25.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb25.png?w=329&#038;h=160" width="329" height="160"></a></p>
<p>You can also add a sub container if you like, containers are essentially just folders that help you keep your policies organised – this is particularly important for separation of concerns and for re-usable “utility policies”.</p>
<p>Once you have the containers configured as you want them then add a <em>policy </em>to the appropriate container.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image26.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb26.png?w=936&#038;h=184" width="936" height="184"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image27.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb27.png?w=244&#038;h=147" width="244" height="147"></a></p>
<p>Policies appear in alpha numeric order (so as a tip – start with at least one leading zero <span class='wp-smiley wp-emoji wp-emoji-smile' title=':-)'>:-)</span> &#8211; you can rename them later if you need to.</p>
<p>When you click ‘OK’ the blank design canvas will load up into the central tabbed panel along with the filter pallet on the right hand side</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image28.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb28.png?w=739&#038;h=427" width="739" height="427"></a></p>
<blockquote><p>Remember to use the text lookup box at the top to help you find the filter components you need to build the policy – You can also customize the pallet to show and hide individual filters and categories</p>
</blockquote>
<p>Under the “Conversion” section you will see the “Set Message” filter – we are going to use it to build our “Hello World” message that will be sent to the calling client.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image29.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb29.png?w=175&#038;h=590" width="175" height="590"></a></p>
<p>&nbsp;</p>
<p>The “Conversion” category contains a whole bunch of filters that are used to manipulate messages; XML, SOAP, Attachments, text, binary, pretty much anything.</p>
<p>The “Set Message” filter can be used to create a template message of a particular mime-type which can then be populated with information drawn from other sources – SAML Assertions, LDAP repositories, Databases, message headers or protocol information.</p>
<p>Learning what each of the filters does, and how to combine them is the essence of good policy design – if you are resorting to using the scripting and extensibility features of the design environment then the chances are you haven’t thoroughly explored what’s available or not thought through what exactly is involved in achieving the desired result; as with all “development” there is no real substitute for a good design document and a few flow / sequence diagrams to help you get it right.</p>
<p>I would start by adding the “set message” filter to my favourites though.</p>
<p>&nbsp;</p>
<p>Left click on the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image30.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb30.png?w=132&#038;h=24" width="132" height="24"></a> filter in the categories list and DRAG it onto the design canvas for your hello world policy – then let go. You will be prompted with a dialogue to configure the set message filter …. do something like this…</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image31.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb31.png?w=405&#038;h=348" width="405" height="348"></a></p>
<p>&nbsp;</p>
<p>Notice that the content-type has been set to text/plain – this means we don’t have to go writing html or xml and the message will render ok in a browser without issue – if you want to put some XML or HTML then feel free to give it a go, just be sure to use the appropriate content type (text/xml or text/html as appropriate)</p>
<p>&nbsp;</p>
<p>Notice the “Next” button at the bottom – pretty much every configuration dialogue has one of these and it opens up the logging options for each filter – again feel free to take a look, but I’ll cover this off in a different post.</p>
<p>Click finish</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image32.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb32.png?w=381&#038;h=205" width="381" height="205"></a></p>
<p>Now you have a “greyed” out set message filter on your canvas.</p>
<blockquote><p><strong>Every policy must have at least ONE filter and ONE START; A Policy MAY have just ONE filter that IS the START</strong></p>
</blockquote>
<p>As it is our policy doesn’t have a start point, we just dragged on a filter and configured it. To set our set message filter to be the start filter we need to </p>
<p>Right click on the filter on the design canvas and chose “set as start”.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image33.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb33.png?w=323&#038;h=270" width="323" height="270"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image34.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb34.png?w=299&#038;h=169" width="299" height="169"></a></p>
<p>The filter now shows as both Start and End</p>
<p>&nbsp;</p>
<p>So far so good…. but we need to “bounce” or “reflect” this back to the calling client – for http/https requests we use the “reflect” filter from the utilities section to do this.</p>
<p>type reflect in the pallet lookup text box and expand the “Utility” Section</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image35.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb35.png?w=148&#038;h=203" width="148" height="203"></a></p>
<p>Click and drag the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image36.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb36.png?w=135&#038;h=27" width="135" height="27"></a> filter onto the canvas and click Finish</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image37.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb37.png?w=507&#038;h=287" width="507" height="287"></a></p>
<p>You will see that the reflect message filter is not joined to the set message filter which is our starting filter – and so at the moment it is <strong><em>inactive </em></strong>to make it part of the policy we need to connect it with one of the connectors.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image38.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb38.png?w=373&#038;h=172" width="373" height="172"></a></p>
<p>Almost every filter in the pallet has two possible outcomes SUCCESS <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image39.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb39.png?w=139&#038;h=28" width="139" height="28"></a> and obviously <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image40.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb40.png?w=143&#038;h=28" width="143" height="28"></a>&nbsp;</p>
<p>Policies are constructed by building logical trees (Binary decision trees) of filter execution – so in “pseudo-speak”… when the message has been set <em>successfully </em>we want to reflect the result. </p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image41.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb41.png?w=151&#038;h=94" width="151" height="94"></a></p>
<p>To link our Set Message filter to the newly added reflect filter click on the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image42.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb42.png?w=139&#038;h=28" width="139" height="28"></a> in the pallet on the right hand side – this puts the mouse into “success connector mode” </p>
<p>Left click *and release* on the set message filter – then left click on the Reflect filter </p>
<p>Note: success and failure paths <strong>are not </strong>dragged from the pallet. </p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image43.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb43.png?w=268&#038;h=120" width="268" height="120"></a><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image44.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb44.png?w=244&#038;h=121" width="244" height="121"></a></p>
<p>To exit “Connector” mode either hit the escape key or click on the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image45.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb45.png?w=137&#038;h=27" width="137" height="27"></a> component in the pallet.</p>
<p>The reflect message filter SHOULD turn <font color="#ff0000">RED </font><font color="#333333">this is to warn us that the filter may not have enough information to execute properly – to see what the problem is hover over the filter</font></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image46.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb46.png?w=150&#038;h=132" width="150" height="132"></a></p>
<p>To execute properly the reflect filter needs http headers (i.e. it needs to be part of an http request response pair – the http headers will be provided by an incoming request to the gateway that invokes our hello world policy – So all that is left for us to do is wire the policy up to a suitable URI to expose our hello world service.</p>
<p>Select the services category <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image47.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb47.png?w=244&#038;h=37" width="244" height="37"></a> on the left hand configuration explorer panel and expand the nodes down to the “default services” node.</p>
<p align="left"><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image48.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="left" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb48.png?w=244&#038;h=110" width="244" height="110"></a></p>
<p>Right clicking on the Defualt Services node gives us an option to add a “relative path” – or you can do this by selecting the “Default Services” node and using the link in the design panel</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image49.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb49.png?w=523&#038;h=145" width="523" height="145"></a></p>
<p>Chose a meaningful path &#8211;&nbsp; /blog/tutorial01/helloworld</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image50.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb50.png?w=422&#038;h=34" width="422" height="34"></a></p>
<p>and then select the hello world policy as the “Path Specific Policy”</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image51.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb51.png?w=333&#038;h=193" width="333" height="193"></a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image52.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb52.png?w=490&#038;h=310" width="490" height="310"></a></p>
<p>Again, the audit settings aren’t what this post is about, but feel free to have a look around -</p>
<p>click Ok and navigate back to your hello world policy (use the tab at the top of the central pane or the <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image53.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb53.png?w=94&#038;h=32" width="94" height="32"></a> “browser back” button from the toolbar menu at the top left.</p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image54.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb54.png?w=299&#038;h=217" width="299" height="217"></a></p>
<p>The reflect message filter now has the required http.headers attribute (that will be populated by the http request) so there are no “red” warnings.</p>
<p>To deploy your configuration (as we haven’t actually made any changes to our gateway yet) hit the F6 (function key) or click the Deploy icon <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image55.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb55.png?w=34&#038;h=29" width="34" height="29"></a> in the toolbar menu at the top.</p>
<p>** Notice the status bar at the bottom **&nbsp;&nbsp;&nbsp; <a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image56.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;margin:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb56.png?w=244&#038;h=26" width="244" height="26"></a></p>
<p>Now we can test our policy using the browser &#8211; </p>
<blockquote><p>The default http listener that we added our relative path to was on port 8080 – so to test our policy we combine the protocol (http) the host name (localhost) the port number (8080) and the relative path (/blog/turorial01/helloworld) to give us our uri.</p>
</blockquote>
<p><a rel="nofollow" target="_blank" href="http://localhost:8080/blog/tutorial01/helloworld">http://localhost:8080/blog/tutorial01/helloworld</a></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/image57.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb57.png?w=706&#038;h=212" width="706" height="212"></a></p>
<h1>What you should have learnt ….</h1>
<ul>
<li>How to start up the gateway and connect policy studio
<li>How to navigate the primary sections of policy studio
<li>How to create containers to organise your policies
<li>How to use the filter lookup text box to search for the filters you need
<li>How to create a basic policy using the drag and drop filter components
<li>How to link filters with the success connector
<li>How to add a relative path to a service node and map it to a policy
<li>How to deploy your configuration to your gateway
<li>How to detect when a filter doesn’t have enough information available to execute</li>
</ul>
<h1>Fundamentals</h1>
<h3>A policy must have at least one filter, and at least one of the filters must be set as the start point for the policy.</h3>
<h3>A policy that has only one filter which is set as the start filter can be valid</h3>
<h3>Any filter not linked directly or indirectly downstream of the start filter will be inactive – inactive filters are shown greyed out</h3>
<h1>Up Next</h1>
<h3>Hello Joe – the hello world policy gets a little more personal as we explore some basic authentication, failure paths and using “attributes”.</h3><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/enterprisegateway.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/enterprisegateway.wordpress.com/59/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&#038;blog=19210851&#038;post=59&#038;subd=enterprisegateway&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="https://2.gravatar.com/avatar/8eedbd2a7bdde61712e21423c21c1622?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">hsramnai</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/ps_services_thumb.png">
            <media:title type="html">ps_Services</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/ps_services_thumb1.png">
            <media:title type="html">ps_Services</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/ps_users_thumb.png">
            <media:title type="html">ps_users</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/ps_policies_thumb.png">
            <media:title type="html">ps_policies</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/ps_certs_thumb.png">
            <media:title type="html">ps_certs</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb1.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb23.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb24.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb25.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb26.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb27.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb28.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb29.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb30.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb31.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb32.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb33.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb34.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb35.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb36.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb37.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb38.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb39.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb40.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb41.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb42.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb43.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb44.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb45.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb46.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb47.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb48.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb49.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb50.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb51.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb52.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb53.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb54.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb55.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb56.png">
            <media:title type="html">image</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/image_thumb57.png">
            <media:title type="html">image</media:title>
         </media:content>
      </item>
      <item>
         <title>Starting at the beginning</title>
         <link>https://enterprisegateway.wordpress.com/2011/06/01/starting-at-the-beginning/</link>
         <description>When we are sure that we are on the right road there is no need to plan our journey too far ahead. No need to burden ourselves with doubts and fears as to the obstacles that may bar our progress. &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://enterprisegateway.wordpress.com/2011/06/01/starting-at-the-beginning/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&amp;#038;blog=19210851&amp;#038;post=31&amp;#038;subd=enterprisegateway&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://enterprisegateway.wordpress.com/?p=31</guid>
         <pubDate>Wed, 01 Jun 2011 14:35:28 +0000</pubDate>
         <content:encoded><![CDATA[<blockquote><p style="text-align:left;"><strong><span style="color:#003366;">When we are sure that we are on the right road there is no need to plan our journey too far ahead. No need to burden ourselves with doubts and fears as to the obstacles that may bar our progress. We cannot take more than one step at a time.<br /></span></strong><strong><br /><span style="font-family:arial, helvetica, sans-serif;color:#000000;font-weight:normal;">Orison Swett Marden (1850-1924)</span></strong></p>
</blockquote>
<h3>What you will need:<br /></h3>
<p><font face="Arial">Apart from coffee, and a machine (Win/Linux/Solaris &#8230; oh and Mac too if you can run a VM), you will need<br /></font><strong><br /><font face="Arial">Vordel Gateway &#8211; available for OS as above and Virtual Image<br /></font><strong><font face="Arial">Vordel Policy Studio &#8211; design tool for the gateway<br /></font></strong></strong><strong><font face="Arial">Vordel SOAPBox &#8211; neat service testing tool &#8211; all the usual stuff supported (http/s SOAP XML attachments encryption etc&#8230;)<br />Probably a good idea to have a browser with the latest flash plugin installed</font></strong>
<p><font face="Arial">Later I might dip into centralised management for distributed gateways provided by <strong>Vordel Director</strong> and the various reports,&nbsp; and stats that can be extracted with <strong>Vordel Reporter</strong>&#8230; so you may as well get those while you&#8217;re at it&#8230;</font></p>
<p><font face="Arial">If you can&#8217;t download and install then it is possible you&#8217;d be better suited to a career in sales&#8230; but seriously&#8230;.contact me via this blog or the guys at vordel &#8230; </font><a rel="nofollow" target="_blank" href="mailto:sales@vordel.com"><font face="Arial">sales@vordel.com</font></a><font face="Arial">, and just tell them I sent you <img alt="" src="https://i0.wp.com/www.blog.co.uk/image/smileys/08wink.gif"></font></p>
<p><font face="Arial">Once you&#8217;ve installed, then your good to go &#8230; you could even design your first policy on the train&#8230;</font></p>
<p><span style="color:#000000;"><span style="font-weight:normal;">
<p><span style="font-weight:normal;"><span style="color:#000000;"><font size="3">So let&#8217;s start at the very beginning, and the first thing to do is get everything fired up and connected. For the purposes of this blog I&#8217;ll be using the Windows 7 version of the Vordel Gateway and Policy Studio if you need info or assistance with different a different OS then either contact me directly or post a comment on the blog.</font></span></span></p>
<p><span style="color:#000000;"><span style="font-weight:normal;">
<p><span style="color:#000000;"><span style="font-weight:normal;"><font size="3" face="Arial">I could just say RTM, but if you&#8217;re anything like me that will be one of the last things you want to do&#8230;. far easier if someone just showed you right? My gravestone will probably read &#8220;Here lies Ian&#8230;. who should have read the manual&#8221;. So if you can&#8217;t find the manual, or the dog ate it, this is how we get started &#8230; assuming you managed to run the installer (or extract the tar.gz) and that you have a valid </font></span><font face="Arial"><font size="3">licence<span style="font-weight:normal;"> &#8230;. if you don&#8217;t have a licence or aren&#8217;t sure what to do with the one you have STOP and see this separate post on getting a licence </span></font></font></span></p>
<p></span></span></span></span>
<p><span style="color:#000000;"><span style="font-weight:normal;">Step 1: </span>Start the Vordel Gateway</span></p>
<p><span style="color:#000000;"><span style="font-weight:normal;">Open a command prompt (no really you can do this without a picture)</span></span></p>
<p><span style="color:#000000;"><span style="font-weight:normal;">
<p><span style="color:#000000;"><span style="font-weight:normal;">Change to the bin directory </span>cd C:&#92;<em>gateway_install</em>&#92;Win32&#92;bin</span></p>
<p></span></span>
<p><span style="color:#000000;"><span style="font-weight:normal;">run the command </span>vordelgateway.bat</span></p>
<p><span style="color:#000000;"></span><br />
<h1 style="font-size:12px;margin:0;"><span style="color:#000000;"><br /></span></h1>
<h1 style="font-family:arial, sans-serif;color:#003399;font-size:12px;margin:0;"><span style="font-weight:normal;"><span style="font-size:8px;"><span style="font-size:10px;"><span style="color:#000000;">n.b. if you have installed as a windows service &#8211; you can use the program files menu to start / stop the gateway. the advantage of running in a command or terminal window is that you can see the gateway trace without having to tail or open the trace file. You can just double click the .bat file in an explorer window, but if there is a problem (like you forgot to get and install a licence key) the window will terminate without giving you any clue as to what happened. </span></span></span></span></h1>
<h1 style="text-align:center;font-size:12px;margin:0;"><span style="font-weight:normal;"></p>
<p></span></h1>
<p><span style="font-weight:normal;"><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/start_gateway1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="start_gateway1" border="0" alt="start_gateway1" src="https://enterprisegateway.files.wordpress.com/2011/06/start_gateway1_thumb.png?w=485&#038;h=477" width="485" height="477"></a></span></p>
<p><span style="font-weight:normal;"></span>
<p><span style="font-weight:normal;"><span style="color:#000000;">Notice that the gateway by default starts up using 2 different ports &#8211; 8080 and 8090. You can browse to <a rel="nofollow" target="_blank" href="http://localhost:8080/healthcheck">http://localhost:8080/healthcheck</a> to see if your gateway is behaving as it should.</span></span></p>
<p><span style="font-weight:normal;"><span style="color:#000000;">
<p><span style="font-weight:normal;"><span style="color:#000000;"></span>You should also open up <a rel="nofollow" target="_blank" href="http://localhost:8090/">http://localhost:8090/</a> and login to see the gateway &#8220;home page&#8221; that gives you access to trace files, real-time monitoring and other cool stuff that we will play with later. The user name and password defaults are </span><em>admin </em><span style="font-weight:normal;">and </span><em>changeme</em></p>
<p></span></span>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/gateway-home-page.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="gateway home page" border="0" alt="gateway home page" src="https://enterprisegateway.files.wordpress.com/2011/06/gateway-home-page_thumb.png?w=472&#038;h=318" width="472" height="318"></a></p>
<p><span style="font-weight:normal;"></span><span style="font-weight:normal;">
<p><span style="font-weight:normal;"><font color="#000000">Step 2: </font></span><font color="#000000">Starting Vordel Policy Studio</font></p>
<p></span>
<p><font color="#000000"><span style="font-weight:normal;">For windows users this is easy &#8211; either use the start menu, programs, vordel, policy studio link or</span></font></p>
<p><font color="#000000"><span style="font-weight:normal;">
<p><font color="#000000"><span style="font-weight:normal;"></span><span style="font-weight:normal;">double click the policystudio.exe in the installation folder (you could of course do this from the command line too if you like)&#8230; either way you should see something like this</span></font></p>
<p></span></font><font color="#000000"><span style="font-weight:normal;"></span></font>&nbsp;
<p><font color="#000000"><span style="font-weight:normal;"><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/start_policystudio.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="start_policystudio" border="0" alt="start_policystudio" src="https://enterprisegateway.files.wordpress.com/2011/06/start_policystudio_thumb.png?w=592&#038;h=386" width="592" height="386"></a></span></font></p>
<p><span style="font-weight:normal;"><font color="#000000"></font></span>&nbsp;
<p><font color="#000000"><span style="font-weight:normal;">Assuming you haven&#8217;t messed with anything you should be able to go right ahead and click on the link to &#8220;Gateway &#8211; localhost&#8221;</span></font></p>
<p><font color="#000000"></font>
<p><span style="font-weight:normal;">The user name and password defaults again are </span><em>admin </em><span style="font-weight:normal;">and </span><em>changeme </em><span style="font-weight:normal;"><em></em>and you&#8217;re in</span></p>
<p><span style="font-weight:normal;"></span>&nbsp;
<p><span style="font-weight:normal;"><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/edit-active-config.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="edit active config" border="0" alt="edit active config" src="https://enterprisegateway.files.wordpress.com/2011/06/edit-active-config_thumb.png?w=640&#038;h=361" width="640" height="361"></a></span></p>
<p><span style="font-weight:normal;"></span>&nbsp;
<p><span style="font-weight:normal;">Hit the shortcut to edit active configuration or double click on the Vordel Gateway in the process list and you can take a look at the gateway configuration as it comes out of the box.</span></p>
<p><span style="font-weight:normal;">When you are prompted for a “passphrase” just click ok.</span></p>
<p><a rel="nofollow" target="_blank" href="https://enterprisegateway.files.wordpress.com/2011/06/gateway-config-1.png"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="gateway config 1" border="0" alt="gateway config 1" src="https://enterprisegateway.files.wordpress.com/2011/06/gateway-config-1_thumb.png?w=653&#038;h=480" width="653" height="480"></a></p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/enterprisegateway.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/enterprisegateway.wordpress.com/31/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&#038;blog=19210851&#038;post=31&#038;subd=enterprisegateway&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="https://2.gravatar.com/avatar/8eedbd2a7bdde61712e21423c21c1622?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">hsramnai</media:title>
         </media:content>
         <media:content medium="image" url="http://www.blog.co.uk/image/smileys/08wink.gif"/>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/start_gateway1_thumb.png">
            <media:title type="html">start_gateway1</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/gateway-home-page_thumb.png">
            <media:title type="html">gateway home page</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/start_policystudio_thumb.png">
            <media:title type="html">start_policystudio</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/edit-active-config_thumb.png">
            <media:title type="html">edit active config</media:title>
         </media:content>
         <media:content medium="image" url="https://enterprisegateway.files.wordpress.com/2011/06/gateway-config-1_thumb.png">
            <media:title type="html">gateway config 1</media:title>
         </media:content>
      </item>
      <item>
         <title>Introduction</title>
         <link>https://enterprisegateway.wordpress.com/2011/01/24/introduction/</link>
         <description>One question that I am often asked is &amp;#8220;So what does a gateway do anyway?&amp;#8221; Many think of it just as a piece of security infrastructure that &amp;#8220;secures web services and XML traffic&amp;#8221;, and yes it does that (too). Others &amp;#8230; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://enterprisegateway.wordpress.com/2011/01/24/introduction/&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&amp;#038;blog=19210851&amp;#038;post=7&amp;#038;subd=enterprisegateway&amp;#038;ref=&amp;#038;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot;/&gt;</description>
         <guid isPermaLink="false">http://enterprisegateway.wordpress.com/?p=7</guid>
         <pubDate>Mon, 24 Jan 2011 16:14:16 +0000</pubDate>
         <content:encoded><![CDATA[<p>One question that I am often asked is</p>
<blockquote><p>&#8220;So what does a gateway do anyway?&#8221;</p></blockquote>
<p>Many think of it just as a piece of security infrastructure that &#8220;secures web services and XML traffic&#8221;, and yes it does that (too). Others perceive it as a transformation engine converting between disparate data formats and protocols, they too would be correct. There are a few SOA fanatics that recognise a gateway as providing a point of enterprise wide control, monitoring and reporting &#8211; and as a key architectural component for both design time and runtime governance. In fact the <a rel="nofollow" title="Vordel" target="_blank" href="http://www.vordel.com">Vordel Gateway</a> provides all of these features and more.</p>
<p>I have been involved in countless gateway implementations across all market verticals and whilst I have seen similarities in designs and some common requirements for gateway functionality, I can honestly say that no two implementations are the same. One of the greatest strengths of the gateway is flexibility. It could and often is considered a network Swiss Army knife, the real challenge being to know which blades to use for what.</p>
<p>The purpose of this and future posts is to share a little of what I know the gateway can do, and perhaps draw attention to some of those that require a little lateral thinking, a few &#8220;How Tos&#8221; and &#8220;Why Tos&#8221; and hopefully comments from readers that will prompt a little health debate.</p>
<p>I&#8217;ve listed a few topics that I intend to cover below, but I&#8217;m happy to go &#8216;off road&#8217; and take a steer on what ground to cover from any comments that are posted.</p>
<ul>
<li>Pop3 to SOAP/ReST API</li>
<li>Controlling services at runtime</li>
<li>Selective Tracing (runtime debugging)</li>
<li>Service throttling &#8211; in-line and abstracted</li>
<li>ReST [style] Façade for Services &#8211; no code required!</li>
<li>Why SSL May Not Be Enough &#8211; data at rest and message level encryption</li>
<li>Detecting Client Certificate Expiry [before the event]</li>
<li>Using Active Directory Group membership for Authorisation</li>
<li>Service/Operation based User, Rate and Quota Provisioning &#8211; with database integration.</li>
</ul>
<p>In addition to the above list I&#8217;ll be covering high availability and gateway scaling in general. If what is here isn&#8217;t enough, there is a whole host of valuable information, tips and tricks, videos and more from CEO Mark O&#8217;Neill <a rel="nofollow" target="_blank" href="http://www.soatothecloud.com/">http://www.soatothecloud.com/</a> and also various contributions from the Vordel Solution Architecture Team at <a rel="nofollow" target="_blank" href="http://xmlgateway.blogspot.com/">http://xmlgateway.blogspot.com</a></p><br />  <a rel="nofollow" target="_blank" href="http://feeds.wordpress.com/1.0/gocomments/enterprisegateway.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/enterprisegateway.wordpress.com/7/"/></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=enterprisegateway.wordpress.com&#038;blog=19210851&#038;post=7&#038;subd=enterprisegateway&#038;ref=&#038;feed=1" width="1" height="1"/>]]></content:encoded>
         <media:content medium="image" url="https://2.gravatar.com/avatar/8eedbd2a7bdde61712e21423c21c1622?s=96&amp;amp;d=identicon&amp;amp;r=G">
            <media:title type="html">hsramnai</media:title>
         </media:content>
      </item>
      <item>
         <title>The Unbundling of Banking - Will banks be &quot;Twilio-ed&quot; ?</title>
         <link>http://www.soatothecloud.com/2015/09/the-unbundling-of-banking-will-banks-be.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://1.bp.blogspot.com/--jD2OYg91IY/VgEUR5IyROI/AAAAAAAAI8o/T0mBFyPngTQ/s320/API-Days.png&quot; width=&quot;306&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This week is &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://bankingapis.com/&quot;&gt;API Days Open Banking and Fintech&lt;/a&gt;, appropriately taking place in London which is &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.independent.co.uk/news/business/news/will-the-big-banks-be-engulfed-by-the-new-wave-in-london-10507064.html&quot;&gt;fast establishing itself as the financial technology capital of the world&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm privileged to be speaking on the keynote on Weds 23 on the topic of &quot;Innovating at the Speed of Customer Expectation – Laying the Digital Foundation for Financial Services&quot;, and then taking part in a panel with Lloyds, Erste Bank, and BBVA about Banking API Strategies.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One thing I'm sure which will be discussed at the conference is the so-called “unbundling of banking”. Banks are now competing with specialized fintech companies who generally do one thing, and do it well - e.g. rick analysis, or bitcoin blockchain services. Often they have an API into that service and operate as an &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2015/04/the-api-first-manifesto.html&quot;&gt;API First&lt;/a&gt;&quot; company.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Where has this happened before? The answer is telecoms. In the telecoms world, there is the example of Twilio, a classic &quot;API First&quot; company whose SMS API is very widely used. Just look at apps created at any hackathon, and you'll see how popular the Twilio API is (you'll often also see someone from Twilio there, which shows their investment in the API community). Telecoms operators have thus been disrupted by Twilio, and indeed some have launched their own SMS APIs in response.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is there a danger that banks will also be &quot;Twilio-ed&quot;? Or is this a opportunity for banks to move, in the words of an architect I spoke to at a US bank recently, from a “Banking Products and Assets focus” to being a “Micro-service aggregator and networked value creator”. Can banks embrace these pure-play fintech services by aggregating and using them in their own &quot;full-stack banking&quot;? We see some brand new banks doing this - e.g. how &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.coindesk.com/kraken-partners-fidor-bank-offer-bitcoin-trading-services/&quot;&gt;Fidor includes now Bitcoin support through using the Kraken API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://thefinancialbrand.com/&quot;&gt;TheFinancialBrand.com&lt;/a&gt;, Ron Shevlin argues for this, suggesting that the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://thefinancialbrand.com/53975/full-stack-banking-how-fintech-will-fuel-api-based-competition/&quot;&gt;real value for banks is to create a “full stack”&lt;/a&gt;, which can include this aggregation of “single-stack” API-First fintech services. He makes the point that aggregating these services into a full-stack is easier than before:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;i&gt;Consumers need a full stack solution. But up until now, the only way to deliver that full stack was with proprietary service offerings and formal relationships between firms that determined who was or wasn’t in the service stack. Revenue-share agreements will make it easier for fintech startups to participate in full stack banks’ solutions, enabling a more open banking environment. &lt;/i&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://thefinancialbrand.com/53975/full-stack-banking-how-fintech-will-fuel-api-based-competition/&quot;&gt;&lt;i&gt;http://thefinancialbrand.com/53975/full-stack-banking-how-fintech-will-fuel-api-based-competition/&lt;/i&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;This echoes the Harvard Business Review piece by Bala Iyer and&amp;nbsp;Mohan Subramaniam that &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://hbr.org/2015/06/corporate-alliances-matter-less-thanks-to-apis&quot;&gt;Corporate Alliances Matter Less Thanks to APIs&lt;/a&gt;&quot;, that APIs make it much more easy for these types of business relationships to happen (and indeed the HBR piece uses Twilio as a key example).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;With banks bringing dedicated fintech services into their &quot;full stack&quot;, through APIs, it leads to the question: Is the value in the aggregation, or in the service? Are banks at risk of becoming just “dumb pipes” (echoing what Martin Fowler describes in his Microservices vision: the real “smarts” are in the services). Are banks at risk of being Twilio-ed? Will there be specialists (e.g. for payments) and then aggregators can create a “virtual bank” by aggregating these specialists? Is Fidor leading the way?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I look forward to discussing all of these questions, and more, at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://bankingapis.com/&quot;&gt;API Days Banking and Fintech &lt;/a&gt;this week.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-4256042510249558701</guid>
         <pubDate>Tue, 22 Sep 2015 08:42:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/--jD2OYg91IY/VgEUR5IyROI/AAAAAAAAI8o/T0mBFyPngTQ/s72-c/API-Days.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Solving the Digital Business Puzzle Using APIs and Microservices - Axway and Forrester</title>
         <link>http://www.soatothecloud.com/2015/09/when-organizations-make-choice-to-put.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;45&quot; src=&quot;http://2.bp.blogspot.com/-Kuyr1cx7dio/VfrzPzjRCbI/AAAAAAAAI5o/zdtPbUa6cZ4/s320/forrester-banner.png&quot; width=&quot;320&quot;/&gt;&lt;/div&gt;&lt;br /&gt;When organizations make the choice to put a digital platform in place, a discussion on MicroServices is never far behind. By putting a MicroServices layer in place, an organization creates the springboard to launch into the digital future, whether that involves apps, rich Web clients, or IoT devices such as in-store beacons. Individual MicroServices, or orchestrated groups of MicroServices, serve as the foundation for this innovation. The data being passed to and from MicroServices also serves as the basis for behavioral analytics and Big Data, allowing organizations to tailor their digital services based on their users. But what are MicroServices and how are they used?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To answer this question, I'm pleased to say that next week we're running a webinar with Randy Heffner from Forrester, who is an expert on how APIs and MicroServices are used to deliver digital business.&lt;/div&gt;&lt;div&gt;&lt;img alt=&quot;&quot; class=&quot;left&quot; height=&quot;100&quot; src=&quot;https://media.licdn.com/mpr/mpr/AAEAAQAAAAAAAAXUAAAAJGNhZjVkYWY0LTc5NjMtNDM3Ni05OTZlLWFhNTk2ZjM5YzMxZA.jpg&quot; style=&quot;float:left;height:auto;margin-bottom:30px;margin-right:30px;margin-top:30px;max-width:100%;&quot; width=&quot;100&quot;/&gt;Randy Heffner is&amp;nbsp;VP &amp;amp; Principal Analyst at&amp;nbsp;Forrester Research. He's a&amp;nbsp;leading expert on designing business applications and software architectures that are secure and resilient in the face of continuous business and technology change, Randy has for the past 30-plus years, and across multiple industry sectors, led solution architects in using technology to delight customers and to continuously improve business outcomes. He is the author of some&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.forrester.com/Randy-Heffner&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;excellent papers on API Design and usage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;amp;referrer=&amp;amp;eventid=1030767&amp;amp;sessionid=1&amp;amp;key=157CBDE54BD2F3CA9B76032AABBDD6C6&amp;amp;regTag=&amp;amp;sourcepage=register&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;catch the webinar next Tuesday, September 22, at 11am Pacific, 2pm Eastern by registering here.&lt;/a&gt;&amp;nbsp;We already have a large number of people signed up, and it promises to be a lively session with a lot of Q&amp;amp;A.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For people in Europe and the Asia-Pacific region, we're re-running&amp;nbsp;the&amp;nbsp;session on Thursday October 8 at 9am UK/Ireland, 10am Paris/Madrid/Berlin, 4pm Singapore &amp;amp; Chinese Standard Time. You can&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://event.on24.com/wcc/r/1030770/8047ED5B712D78E1C5422A6A49F0FD34&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;sign up for this October 8 session here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;What's old is new again&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;In many ways, MicroServices are not new, since they bring established principles to bear on integration.&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://martinfowler.com/articles/microservices.html&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;Martin Fowler has written extensively on Microservices&lt;/a&gt;, including componentization and services – topics which will be familiar to any architect deploying infrastructure over the last 15+ years. He writes about the centrality of events in a Microservices architecture, where MicroServices can subscribe to events from other Microservices. This event model brings to mind established best practice integration patterns. At Axway, we’ve also seen this trend with our customers, who leverage the inbuilt message queue in our&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;API Gateway&lt;/a&gt;&amp;nbsp;for such a publish/subscribe pattern between their services.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MicroServices also borrow from the worlds of SOA, DevOps, and Operations. Martin Fowler famously speculated that MicroServices may be&amp;nbsp;&lt;em&gt;“service orientation done right”&lt;/em&gt;. We see&amp;nbsp;how MicroServices leverage SOA principles of separation of concerns, encapsulation, and loose coupling. From the world of DevOps they bring agility advantages including distributed development, automated testing, and continuous delivery. From the Operations world they bring the advantages of independently deployable components, load distribution, and parallel processing.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;MicroService Aggregation&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;One way in which MicroServices diverge from SOA is in their implementation technologies. SOA was associated with a raft of WS-* standards. There was also, in the words of Martin Fowler, “the tendency to hide complexity away in ESB's”. Digital platforms are designed to avoid these pitfalls, by using REST and&amp;nbsp;&lt;em&gt;MicroService aggregation&lt;/em&gt;&amp;nbsp;instead of an ESB. This is often&amp;nbsp;described as &quot;smart endpoints and dumb pipes&quot;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another aspect of MicroServices management is Operational Intelligence. The data flowing to MicrosSrvices, and being produced and consumed by their event model, can provide valuable behavioral analytics. This Operational Intelligence allows organizations to anticipate future trends and be agile to their customers’ needs. The data also allows bottlenecks to be detected and addressed.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I look forward to some great insight from Randy Heffner on the webinar -&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://event.on24.com/eventRegistration/EventLobbyServlet?target=reg20.jsp&amp;amp;referrer=&amp;amp;eventid=1030767&amp;amp;sessionid=1&amp;amp;key=157CBDE54BD2F3CA9B76032AABBDD6C6&amp;amp;regTag=&amp;amp;sourcepage=register&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;sign up and see you then!&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-2372872646354283310</guid>
         <pubDate>Thu, 17 Sep 2015 17:07:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-Kuyr1cx7dio/VfrzPzjRCbI/AAAAAAAAI5o/zdtPbUa6cZ4/s72-c/forrester-banner.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Taking API Firewalling to the Next Level</title>
         <link>http://www.soatothecloud.com/2015/09/taking-api-firewalling-to-next-level.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-Ckq_qOtMoRU/VfohAW1Vv0I/AAAAAAAAI5Y/p7em3FCqEV4/s1600/API-Firewall.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;85&quot; src=&quot;http://2.bp.blogspot.com/-Ckq_qOtMoRU/VfohAW1Vv0I/AAAAAAAAI5Y/p7em3FCqEV4/s320/API-Firewall.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of the chief functions of an&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway#tablist1-tab1&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;API Gateway&lt;/a&gt;&amp;nbsp;is to act as an API Firewall. Many people are familiar with a Web Application Firewall (WAF), but may not be familiar with the concept of the API Firewall. You can think of an API Firewall as a &quot;WAF++&quot;, because as well as blocking Web&amp;nbsp;Application&amp;nbsp;attacks such as SQL Injection, it must also block API-level attacks such as API Key replay attacks, or (for older style XML Web Services) the&amp;nbsp;infamous&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2015/08/return-of-xml-bomb.html&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;XML Bomb&lt;/a&gt;. When I wrote my&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.com/Web-Services-Security-Mark-ONeill/dp/0072224711&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;Web Services Security book&lt;/a&gt;&amp;nbsp;back in the early 2000s, I didn't now that, today, attacks such as the XML Bomb would still be a concern.&lt;br /&gt;&lt;br /&gt;In 2015, API Security is vital because APIs are the foundation of so much of the digital world.&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2015/06/apis-weak-security-link-in-iot-home.html&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;Randy Westergren has shown how APIs can be a weak link in Internet of Things (home automation systems in that case).&lt;/a&gt;&amp;nbsp; Troy Hunt has shown that&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.troyhunt.com/2014/10/find-crazy-stuff-in-mobile-app.html&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;APIs also are often the point of security weakness for mobile apps.&lt;/a&gt;&amp;nbsp;Because API Security is an important topic, it's vital to drive awareness. With noted expert Gunnar Peterson, we've been publicizing&amp;nbsp;API Security: you can view the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/webinar/rest-and-api-security-top-10&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;Top 10 API Security Issues video&lt;/a&gt;, and read the associated&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/gate/1390&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;White Paper on API Security here&lt;/a&gt;.&amp;nbsp;  We're also pleased to announce new&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.businesswire.com/news/home/20150915007058/en/Axway-Innovates-API-Security-Blocks-Threats-Digital#.VfoU0xFVhBc&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;API Firewalling features in our API Gateway&lt;/a&gt;. We had a&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.businesswire.com/news/home/20150915007058/en/Axway-Innovates-API-Security-Blocks-Threats-Digital#.VfoU0xFVhBc&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;major announcement&lt;/a&gt;&amp;nbsp;about these features this week. The new API Firewalling features include: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Built-in rules to implement best practices for protecting against common threats such as the OWASP Top 10 Attacks.&lt;/li&gt;&lt;li&gt;Support for ModSecurity-based rule sets to allow companies to leverage all free or commercial rules sets built by one of the largest communities of threat protection experts in the world. Companies can also implement their own ModSecurity-based rule sets.&lt;/li&gt;&lt;li&gt;Black- and white-listing rules to combine the best of both types of threat protection.&lt;/li&gt;&lt;/ul&gt;Adding support for ModSecurity is a big deal because it means that Axway customers can leverage the ecosystem of existing ModSecurity rules. As Alexei Balaganski of the analyst firm Kuppinger Cole notes in the release announcement,&amp;nbsp;&lt;em&gt;&quot;By adding API Firewalling capabilities that can leverage existing rulesets from the Open Source ModSecurity project, Axway has further expanded the scope of API security and threat protection of their offering.&quot;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt; To further highlight the importance of API Firewalling, last week we&amp;nbsp;did a joint webinar with Smartbear where we demonstrated API Firewalling in action (showing a vulnerable API being protected). You can v&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www2.smartbear.com/outbound-Ready-API-Axway-Security-Webinar-Replay-Registration.html&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;iew the recording of the webinar here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We're also proud that&amp;nbsp;Axway earned the distinction of “Leader” in KuppingerCole’s “Leadership Compass for API Security Management” analysis report (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/gate/1934&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;you can download&amp;nbsp;a free copy of the report&amp;nbsp;from the Axway Website&lt;/a&gt;). The report examined various vendors’ capabilities within the API security management market and Axway was positioned among the Leaders within all four API security management leadership categories.&lt;br /&gt;&lt;br /&gt;There have been many API Security issues recently (including&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.programmableweb.com/news/anatomy-real-world-api-security-breach/analysis/2015/06/10&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;Buffer&amp;nbsp;&lt;/a&gt;and the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.thoughtsoncloud.com/2015/09/api-security-key-takeaways-from-recent-breaches/&quot; style=&quot;color:#8c68cb;text-decoration:none;&quot;&gt;IRS&lt;/a&gt;). An API Firewall protects against these threats, which is&amp;nbsp;so&amp;nbsp;important in the new Digital age, when mobile apps and IoT depend on APIs. I look forward to more and more awareness of API Firewalling in the future.  &lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-5845350528939217017</guid>
         <pubDate>Thu, 17 Sep 2015 02:09:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-Ckq_qOtMoRU/VfohAW1Vv0I/AAAAAAAAI5Y/p7em3FCqEV4/s72-c/API-Firewall.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Mobile + IoT Summit next Thursday, with Oracle, Appian, Red Hat, Axway, and Cisco</title>
         <link>http://www.soatothecloud.com/2015/09/mobile-iot-summit-next-thursday-with.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Next Thursday, 24 September, I'm taking part in the online &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.idevnews.com/registration?event_id=350&amp;amp;code=axway&quot;&gt;Mobile + IoT Summit&lt;/a&gt; with&amp;nbsp;Oracle, Appian, Red Hat, and Cisco. I'll be talking about where mobile and IoT fit in a digital platform, combining digital engagement with a digital foundation. These events always have great question-and-answer sessions - hope to see you there!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.idevnews.com/registration?event_id=350&amp;amp;code=axway&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;104&quot; src=&quot;http://3.bp.blogspot.com/-eGXjoaHYgtE/VfoIDx0UyCI/AAAAAAAAI4w/CR8sVc77G8A/s320/mobile-iot-summit-banner.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-8596121469912290182</guid>
         <pubDate>Thu, 17 Sep 2015 00:31:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-eGXjoaHYgtE/VfoIDx0UyCI/AAAAAAAAI4w/CR8sVc77G8A/s72-c/mobile-iot-summit-banner.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Axway API Management expert required by Cognizant</title>
         <link>http://www.soatothecloud.com/2015/09/axway-api-management-expert-required-by.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Readers of this blog might be interested in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://neuvoo.com/view/?id=jn9a77r65h&quot;&gt;this full-time position with Cognizant in Bridgewater, New Jersey&lt;/a&gt;, which lists hands-on experience with the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;Axway API Gateway&lt;/a&gt;&amp;nbsp;as required.&lt;br /&gt;&lt;br /&gt;As well as the Axway API Gateway, the skills required include:&lt;br /&gt;&lt;br /&gt;&lt;ul style=&quot;text-align:left;&quot;&gt;&lt;li&gt;&lt;i&gt;Candidates will be integral part of API Management practice. You will have an opportunity to develop intellectual property, white papers, internal and external webinars, business development education materials and much more.&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Sounds like a great position for Axway API Management experts interested in working on exciting API projects. Good luck!&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-2021010560986117452</guid>
         <pubDate>Thu, 03 Sep 2015 12:55:00 +0000</pubDate>
      </item>
      <item>
         <title>Test and Protect your APIs - Smartbear and Axway webinar on Sept 10</title>
         <link>http://www.soatothecloud.com/2015/08/test-and-protect-your-apis-smartbear.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www2.smartbear.com/outbound-ready-api-axway-security-webinar.html&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;158&quot; src=&quot;http://3.bp.blogspot.com/-V0ZdXZmLnNg/VeBqTbFV_dI/AAAAAAAAIvQ/nrHIHdA3vGs/s320/smartbear-axway-webinar.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This week, Axway released our plug-in for the Smartbear Ready!API testing tool. The plug-in provides integration between Ready!API and Axway's API Management solution.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;As part of the launch, we're also running&amp;nbsp;a&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www2.smartbear.com/outbound-ready-api-axway-security-webinar.html&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;joint webinar on September 10th, where we will discuss the two sides of API Security - testing and protection&lt;/a&gt;. The webinar includes a demonstration of API Security in action: both the testing (Smartbear Ready!API Secure) and the protection (Axway API Gateway). We're&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www2.smartbear.com/outbound-ready-api-axway-security-webinar.html&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;running the webinar twice on the day&lt;/a&gt;, to accommodate different timezones.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Here are some of my thoughts before the webinar:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Is API Security new?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;The API Economy has taken off in recent years, and it is tempting to think that API Security is a new thing. But it has a long history. Security of SOAP APIs has, of course, an infamous history involving many WS-* standards (some of us&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.com/Web-Services-Security-Mark-ONeill/dp/0072224711/&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;wrote whole books on these&lt;/a&gt;&amp;nbsp;:) ).&amp;nbsp;SOAP/XML attacks like the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2015/08/return-of-xml-bomb.html&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;XML Bomb keep coming back to haunt developers&lt;/a&gt;.&amp;nbsp;However,&amp;nbsp;REST has a longer history than people realize. Way back in 2003,&amp;nbsp;Jeff Barr in Amazon, famously&amp;nbsp;pointed out that only 15% of Amazon Web Services traffic is SOAP based, and [here comes the pun] the rest is REST. Both types of APIs&amp;nbsp;had to be&amp;nbsp;secured.&lt;br /&gt;&lt;br /&gt;At the RSA Conference in 2006 (almost 10 years ago, yikes!), I gave a talk on REST Security, when much of the discussion was about &quot;pure&quot; versus &quot;practical&quot; REST. Mobile then became a driving factor in how APIs are used, creating facts-on-the-ground that moved us on from much of the theoretical discussion. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How important is API Security?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;API Security is &lt;i&gt;very&lt;/i&gt; important. Everyday users may think &quot;I never call APIs, only developers do that&quot;, but the reality is that mobile apps and IoT devices call APIs regularly. And this is where API security issues manifest. Let's look at what two researchers have found with API Security for mobile and IoT:&lt;br /&gt;&lt;br /&gt;On the mobile front, Troy Hunt's influential&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.troyhunt.com/2014/09/hack-your-api-first-learn-how-to.html&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;&quot;Hack Your API First&quot;&lt;/a&gt;&amp;nbsp;article and training makes&amp;nbsp;it clear that much of mobile security is actually really API Security. As Troy explains, if&amp;nbsp;you want to probe an app's vulnerabilities, a good way to start is to see how it calls APIs. If you have your app&amp;nbsp;use a proxy (simply by changing your phone's connection settings), and then by running a tool like&amp;nbsp;Fiddler, you can often see very obvious security vulnerabilities.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;On the IoT front, Randy Westergren has&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://randywestergren.com/attacking-z-way-controlled-home-automation-devices/&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;shown how IoT devices can call APIs in insecure ways&lt;/a&gt;. These APIs calls become the vulnerability. In this case, a security layer was needed in front of the APIs to protect them. An&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;API Gateway&lt;/a&gt;&amp;nbsp;fits the bill. My colleague Rob Meyer has talked about &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/blog/2015/08/deming-meets-devops-how-automated-testing-pulls-andon-cord&quot;&gt;how Just-In-Time principles can be applied to DevOps testing&lt;/a&gt;,&amp;nbsp;remarking that &quot;Testing is the Andon cord of DevOps&quot; (don't know what &quot;Andon cord&quot; is? I highly recommend checking the article).&amp;nbsp;&lt;br /&gt;&lt;br /&gt;So, on the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www2.smartbear.com/outbound-ready-api-axway-security-webinar.html&quot; style=&quot;font-family:inherit;font-stretch:inherit;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;margin:0px;outline:0px;padding:0px;text-decoration:none;vertical-align:baseline;&quot;&gt;API Security webinar on September 10&lt;/a&gt;, I'm looking forward to a great discussion about the two sides of API Security - testing and probing for vulnerabilities (the &quot;sword&quot;) and protection (the &quot;shield&quot;). See you there!&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-4865275070835016978</guid>
         <pubDate>Fri, 28 Aug 2015 14:06:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-V0ZdXZmLnNg/VeBqTbFV_dI/AAAAAAAAIvQ/nrHIHdA3vGs/s72-c/smartbear-axway-webinar.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Is an API Portal a Wiki of APIs?</title>
         <link>http://www.soatothecloud.com/2015/08/is-api-portal-wiki-of-apis.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Last week I spoke at the Integration Developer News SOA &amp;amp; API Summit on the topic of &quot;How APIs are Driving Digital Transformation&quot;. You can still view the recording (as well as the talks by IBM, Oracle, Red Hat, and Neuron ESB) on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.idevnews.com/registration?event_id=347&amp;amp;code=axway&quot;&gt;SOA &amp;amp; API Summit event page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One of the questions which came up, from a view at a large system integrator, asked is an API Portal &quot;more of Wiki of all the APIs?&quot;. This is one of the questions where the answer is &quot;Yes, and....&quot;. So, let me answer it in this blog post.&lt;br /&gt;&lt;br /&gt;An &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-portal&quot;&gt;API Portal&lt;/a&gt; is the place where developers go in order to get all the information they need to use an API. Developers using the API can contribute to the content (usually through a wiki or forum or blog), as can the developers of the API itself. The actual API itself is shown at the API Portal using what is often called &quot;active documentation&quot;, where developers can drill into the API definition in a Swagger interface, and perform &quot;Test in place&quot; testing to ensure they are using the API correctly.&lt;br /&gt;&lt;br /&gt;To show this in action, here's some screenshots of the Axway API Portal. Of course, when customers deploy the API Portal, it is re-skinned (think &quot;Acme API Portal&quot;), but here is it in its Axway-branded incarnation. In the screenshot below, we see active documentation of a SOAP API (yes! the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-portal&quot;&gt;Axway API Portal&lt;/a&gt; can be used for SOAP as well as REST).&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-WTsQ4O9ce6I/VdxoNKRLNSI/AAAAAAAAItc/IZTYWJV8s1A/s1600/portal-1.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;176&quot; src=&quot;http://3.bp.blogspot.com/-WTsQ4O9ce6I/VdxoNKRLNSI/AAAAAAAAItc/IZTYWJV8s1A/s320/portal-1.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Here's a REST API below, shown in the API Portal. Notice the &quot;Try it out!&quot; button at the bottom, to try out the API. You can also see all the information needed to call the API (the model schema on the right):&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-6rMy5j9IRMw/VdxoOvx4ZMI/AAAAAAAAItk/2dIzUNgld50/s1600/portal-2.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://1.bp.blogspot.com/-6rMy5j9IRMw/VdxoOvx4ZMI/AAAAAAAAItk/2dIzUNgld50/s320/portal-2.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;For those who prefer it, API documentation is also a provided at the API Portal in PDF format, including SDK information and info on how to access the API from Android or iOS:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-DxVrguYUoRo/VdxoQGd8EEI/AAAAAAAAIts/2erSDzYXOTA/s1600/portal-3.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;171&quot; src=&quot;http://2.bp.blogspot.com/-DxVrguYUoRo/VdxoQGd8EEI/AAAAAAAAIts/2erSDzYXOTA/s320/portal-3.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Finally, many APIs have a monetization model, as explained by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.slideshare.net/jmusser/j-musser-apibizmodels2013&quot;&gt;this seminal presentation by John Musser&lt;/a&gt;. As well as learning how an API is used, it's important that the developer using the API also understands the costs of the API. This monetization is supported by the API Portal as pricing plans. We see some of these shown below.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-VH_BkdR9Xow/VdxoR1oMQ7I/AAAAAAAAIt0/VZIkt17iWRg/s1600/portal-4.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;216&quot; src=&quot;http://2.bp.blogspot.com/-VH_BkdR9Xow/VdxoR1oMQ7I/AAAAAAAAIt0/VZIkt17iWRg/s320/portal-4.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;So, in answer to the question from the SOA &amp;amp; API Summit, an API Portal is more than just a wiki for an API. It includes active documentation, forums and blogs, in-place testing, and monetization info.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;Thanks for the question - and keep them coming!&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-6450812589950435853</guid>
         <pubDate>Tue, 25 Aug 2015 13:29:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-WTsQ4O9ce6I/VdxoNKRLNSI/AAAAAAAAItc/IZTYWJV8s1A/s72-c/portal-1.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>SOA &amp; API Summit online this Thursday - with Axway, IBM, Oracle, Red Hat, Neuron ESB</title>
         <link>http://www.soatothecloud.com/2015/08/soa-api-summit-online-this-thursday.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;This Thursday, August 20, I'm participating in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.idevnews.com/registration?event_id=347&amp;amp;code=axway&quot;&gt;SOA &amp;amp; API Summit&lt;/a&gt;&amp;nbsp;which is a online event run by Integration Developer News. I'm talking about how APIs are driving digital transformation. I always recommend this event because it mixes a lot of viewpoints, with speakers coming from the new API world, mixed with speakers coming from the older ESB world. It also features a lot of Q&amp;amp;A related to digital themes, driven by Vance McCarthy who always has insightful comments and questions, as well as questions from attendees. You can &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.idevnews.com/registration?event_id=347&amp;amp;code=axway&quot;&gt;still register online&lt;/a&gt; - hope to see you there!&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.idevnews.com/registration?event_id=347&amp;amp;code=axway&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;http://3.bp.blogspot.com/-inn35G7fkFU/VdM0SAeepAI/AAAAAAAAIpo/zeh96NiBm7g/s320/SOA-API.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-2563250981600389106</guid>
         <pubDate>Tue, 18 Aug 2015 13:41:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://3.bp.blogspot.com/-inn35G7fkFU/VdM0SAeepAI/AAAAAAAAIpo/zeh96NiBm7g/s72-c/SOA-API.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Identity Bridge - How to use an API Gateway to bridge between X.509 Certificates, SAML, JWT, and OAuth Access Tokens</title>
         <link>http://www.soatothecloud.com/2015/08/identity-bridge-how-to-use-api-gateway.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;When integrating systems together, identity mediation can be just as vital as protocol mediation. Consider a situation where a user is authenticating with an X.509 certificate. The X.509 certificate could be an iOS certificate stored on an iPhone, or could come from a CAC/PIV card issued to a US Government employee. When the user is accessing a system that requires a SAML Assertion, how can that X.509 certificate be converted to a SAML Assertion?&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;196&quot; src=&quot;http://2.bp.blogspot.com/-hQvQixf0ifk/Vc3MacQuLpI/AAAAAAAAIlY/E44wuulo_x0/s320/Bridge1.png&quot; width=&quot;320&quot;/&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;The answer is an &lt;i&gt;Identity Bridge&lt;/i&gt;. This term, originally coined by Mark Diodati who is now a Gartner analyst, is used to describe a service which converts identity tokens between domains, enabling seamless access. An &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt;&amp;nbsp;such as Axway's is an ideal tool to use as an Identity Bridge, because of the fact that it supports a wide variety of identity tokens.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;193&quot; src=&quot;http://4.bp.blogspot.com/-GWVP3A9a0cY/Vc3MeZcEyuI/AAAAAAAAIlg/z2gUzTd2gp4/s320/Bridge2.png&quot; width=&quot;320&quot;/&gt;&lt;/div&gt;&lt;br /&gt;With my colleague Daniel Wille, I've put together a video which shows the Identity Bridge scenario whereby a user is authenticated via one token type (in this case an X.509 Certificate) and then the API Gateway bridges to other tokens, specifically:&lt;br /&gt;&lt;br /&gt;&lt;ul style=&quot;text-align:left;&quot;&gt;&lt;li&gt;How to convert to an OAuth JWT&lt;/li&gt;&lt;li&gt;How to convert to an OAuth Access Token Token&lt;/li&gt;&lt;li&gt;How to convert to a SAML Assertion (containing attribute statements)&lt;/li&gt;&lt;/ul&gt;A REST API at the API Gateway is used to do the identity bridging (e.g. requesting an OAuth Token based on the initial X.509 token).&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;For more information, and to get a copy of the API Gateway to perform your own Identity Bridging, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;check out the Axway site&lt;/a&gt;.&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-6795933888945750063</guid>
         <pubDate>Fri, 14 Aug 2015 11:23:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-hQvQixf0ifk/Vc3MacQuLpI/AAAAAAAAIlY/E44wuulo_x0/s72-c/Bridge1.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Return of the XML Bomb</title>
         <link>http://www.soatothecloud.com/2015/08/return-of-xml-bomb.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;The XML Bomb is an attack which has &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2009/08/old-xml-attack-resurfaces-and-is.html&quot;&gt;a long history, which I've documented back in 2009&lt;/a&gt;. Today in 2015 it continues to be a cause of concern. As with many security vulnerabilities, perhaps the evocative name helps. I'm happy to say that our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt; blocks the attack, and has done for many years.&lt;br /&gt;&lt;br /&gt;So how does the XML Bomb work? It's a clever attack and well worth examining:&lt;br /&gt;&lt;br /&gt;Older types of APIs use XML, which can be defined using a Document Type Declaration (DTD). DTDs are an old technology now (actually originating in SGML) and largely superseded by newer technologies (XML Schema, JSON Schema).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;The issue is that DTD implementations can be vulnerable to recursion attacks. The SOAP specification states “A SOAP message MUST NOT contain a Document Type Declaration” (http://www.w3.org/TR/SOAP/ Section 3). However, some XML applications process DTDs, and therefore products which protect XML applications must block DTDs.&lt;br /&gt;The following DTD contains a recursively defined entity “&amp;amp;x100;” which would be expanded into the huge amount (2^100) repetitions of the string “hello” by any XML 1.0 standard compliant parser. This would cause excessive memory usage and/or excessive CPU usage:&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE foobar [&lt;br /&gt;&amp;lt;!ENTITY x0 “hello”&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY x1 “&amp;amp;x0;&amp;amp;x0;”&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY x2 “&amp;amp;x1;&amp;amp;x1;”&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY x3 “&amp;amp;x2;&amp;amp;x2;”&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY x4 “&amp;amp;x3;&amp;amp;x3;”&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;!ENTITY x98 “&amp;amp;x97;&amp;amp;x97;”&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY x99 “&amp;amp;x98;&amp;amp;x98;”&amp;gt;&lt;br /&gt;&amp;lt;!ENTITY x100 “&amp;amp;x99;&amp;amp;x99;”&amp;gt;&lt;br /&gt;]&amp;gt;&lt;br /&gt;&amp;lt;foobar&amp;gt;&amp;amp;x100;&amp;lt;/foobar&amp;gt;&lt;br /&gt;&lt;br /&gt;It's important to ensure that your APIs are not vulnerable to this attack. An &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt; is a great way to achieve this.&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-7043885048158249037</guid>
         <pubDate>Wed, 05 Aug 2015 07:51:00 +0000</pubDate>
      </item>
      <item>
         <title>&quot;Beyond the OWASP Top Ten&quot; - watch the session recording by Smartbear and Axway</title>
         <link>http://www.soatothecloud.com/2015/08/beyond-owasp-top-ten-watch-session.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;The recording of the &quot;Beyond the OWASP Top Ten&quot; session at API Craft Boston with Smartbear and Axway is up on LiveStream. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://livestream.com/smartbearsoftware/api-craft-boston-6-18&quot;&gt;Fast forward to minute 42 for Lorinda Brandon of Smartbear kicking off proceedings&lt;/a&gt;. Mike Giller gives a lot of examples such as the XML Bomb, and other clever attacks on APIs.&lt;br /&gt;&lt;br /&gt;We got some great questions also - lots of interest in the topic of API Security.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-6246371415481088670</guid>
         <pubDate>Tue, 04 Aug 2015 06:18:00 +0000</pubDate>
      </item>
      <item>
         <title>Axway (Vordel) API Gateway skills required in Raleigh, North Carolina</title>
         <link>http://www.soatothecloud.com/2015/07/axway-vordel-api-gateway-skills.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Readers of this blog might be interested in this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://jobs.gttit.com/candidates/myjobs/openjob_outside.jsp?a=5cjdnwenzpqejkgxijtvgahld0va90009c0e3c8jutidwbg0unjxodtsm81az828&amp;amp;from=COMP&amp;amp;id=8671644&amp;amp;StatesString=&amp;amp;jobseq=0&amp;amp;rowsperpage=30&amp;amp;divisions=&amp;amp;divisions2=&quot;&gt;position in Raleigh, North Carolina, for a Network Security Engineer (API Gateway)&lt;/a&gt;. Responsibilities include to &quot;&lt;i&gt;Manage and Design highly complex firewall and network environments for security of Fidelity's critical resources and enablement of revenue producing services&quot;&lt;/i&gt;. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt; skills are required, with Vordel (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2014/02/axway-and-vordel-when-good-acquisitions.html&quot;&gt;Vordel was acquired by Axway in 2012&lt;/a&gt;) specifically mentioned.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Good luck!&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-6640614877770646104</guid>
         <pubDate>Wed, 01 Jul 2015 13:20:00 +0000</pubDate>
      </item>
      <item>
         <title>API First, beyond &quot;portal first&quot;, for Electronic Health Records</title>
         <link>http://www.soatothecloud.com/2015/06/api-first-beyond-portal-first-for.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;This week, ProgrammableWeb has a very interesting article by Martin Brennan about how &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.programmableweb.com/news/how-apis-and-mashups-could-replace-patient-portals/elsewhere-web/2015/05/24&quot;&gt;Electronic Health Record (EHR) portals are moving to use APIs&lt;/a&gt;. He quotes a Health Data Management story which says that:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&quot;If the proposed Stage 3 Meaningful Use rule is finalized in its current form, application programming interfaces (APIs) could supplant portals as the preferred method adopted by providers to enable patients to “view, download and transmit” their health information.&quot;&lt;/i&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.itnews.com.au/CXOChallenge/404377,apis-rivets-for-the-composable-enterprise.aspx/0&quot;&gt;&lt;i&gt;http://www.itnews.com.au/CXOChallenge/404377,apis-rivets-for-the-composable-enterprise.aspx/0&lt;/i&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;This can be seen as part of the overall movement to an &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/campaign-axway-api-first&quot;&gt;API First&lt;/a&gt;&quot; orientation. EHR began by being &quot;Portal First&quot;. But, as Martin Brennan explains, an API First approach enables more innovation by empowering developers to use the patient data.&lt;br /&gt;&lt;br /&gt;Of course, security and privacy are never far from mind in this discussion. Once EHR data is enabled via APIs, it's important to ensure that only authorized clients can see their own data. Sophisticated &quot;dynamic authorization&quot; rules can be applied, such as &quot;only the patient can access their own data, unless they are under 18 in which case their parents or guardians can also access the data&quot;. An &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt; is ideally suited to enforcing these types of dynamic authorization policies.&lt;br /&gt;&lt;br /&gt;In APAC for example, the Axway API Gateway technology has been deployed as part of a personally-controlled EHR architecture. This is smart since it allows security to be applied at the API layer. Brant DeBow at Mobile Surge explains the security benefits of &quot;API First&quot; well:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&quot;...focusing on APIs bring additional security benefits. With an API, you are separating different layers of your app. There’s a whole host of security issues that can sneak in when the UI is directly coupled back to core functionality.&quot;&lt;/i&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://themobilesurge.com/post/102891669120/why-ctos-need-to-think-about-apis-before-websites&quot;&gt;&lt;i&gt;http://themobilesurge.com/post/102891669120/why-ctos-need-to-think-about-apis-before-websites&lt;/i&gt;&lt;/a&gt;&lt;/blockquote&gt;So it is with EHR portals. By focusing on the API, you not only enable innovation, but you also have a point to apply security. I look forward to EHR moving more and more to being truly &quot;API First&quot;.&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-6263160946905105845</guid>
         <pubDate>Tue, 30 Jun 2015 19:42:00 +0000</pubDate>
      </item>
      <item>
         <title>APIs - the weak security link in IoT / Home Automation - How an API Gateway can help</title>
         <link>http://www.soatothecloud.com/2015/06/apis-weak-security-link-in-iot-home.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;ProgrammableWeb recently had a story about how &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.programmableweb.com/news/z-wave-home-controller-api-leaves-door-open-to-hackers/elsewhere-web/2015/06/11&quot;&gt;Randy&amp;nbsp;Westergren detected that the API into his home controller system was insecure&lt;/a&gt;. As he mentions, the response was &lt;i&gt;&quot;No, there is no authentication, your local network is supposed to be safe environment and protected from outside world using Wi-Fi passwords and firewalls&quot; &lt;/i&gt;and a recommendation to use a proxy for security.&lt;br /&gt;&lt;br /&gt;So this is obviously a bad thing, right? But wait... From a security point of view, it can often be a good thing to deploy a proxy to enforce security. A proxy, or Gateway, acts as a security enforcement point and means that the developers of the API can focus on building the API itself. The API Gateway is specifically designed for security. Last night at the Boston API Craft meetup, I used this slide which explains the API Gateway pattern (adapting a slide from my colleague Daniel Wille - thanks Dan!):&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;163&quot; src=&quot;http://2.bp.blogspot.com/-iNcffVpE2VA/VYQgHlZzdLI/AAAAAAAAH_A/UycCEhmof4Y/s320/API-Gateway-Definition.png&quot; width=&quot;320&quot;/&gt;&lt;/div&gt;&lt;br /&gt;An API Gateway like Axway's&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt;&amp;nbsp;implements standards such as&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2014/06/prebuilt-oauth-connectors-for.html&quot;&gt;OAuth&amp;nbsp;&lt;/a&gt;and&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2015/05/openid-connect-oidc-on-axway-api-gateway.html&quot;&gt;OpenID Connect&lt;/a&gt;. This saves the developers from this trouble. It also implements API threat detection, checking for attacks like SQL Injection or (for older style APIs) XML based attacks like the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2009/08/old-xml-attack-resurfaces-and-is.html&quot;&gt;XML Bomb&lt;/a&gt;. An API Gateway also does quota management and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2012/10/throttling-api-traffic-based-on-client.html&quot;&gt;API usage throttling&lt;/a&gt;, plus orchestration of APIs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Product APIs&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can think of APIs into home automation systems as an example of &quot;Product APIs&quot;. Randy Heffner of Forrester often talks about the important of &amp;nbsp;Product APIs as a class of APIs, which are sometimes overlooked. In his recent report &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.forrester.com/A+Developers+Guide+To+Forresters+Strategies+For+API+Success/fulltext/-/E-res122957&quot;&gt;A Developer’s Guide To Strategies For API Success&lt;/a&gt;&quot;, Randy says:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&quot;...you must start by understanding the four major categories of APIs: open Web, B2B, internal, and product APIs. The first three of these are commonly discussed in the industry, sometimes using the monikers public, partner, and private APIs. The fourth category, product APIs, is not often discussed, but is critical as an alternate perspective into brainstorming possible APIs and business ecosystems.&quot;&lt;/i&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.forrester.com/A+Developers+Guide+To+Forresters+Strategies+For+API+Success/fulltext/-/E-res122957&quot;&gt;https://www.forrester.com/A+Developers+Guide+To+Forresters+Strategies+For+API+Success/fulltext/-/E-res122957&lt;/a&gt;&lt;/blockquote&gt;Product APIs can be too fine-grained for external consumption, and indeed they may just &quot;do what they need to do&quot; from a functional standpoint, purposefully leaving security up to a proxy or Gateway. It sounds like this was true in the case of the home automation APIs which Randy Westergren mentions. As well as security, the Gateway provides more value for Product APIs, by orchestrating them into more high-level APIs which are more suitable to high-level consumption.&lt;br /&gt;&lt;br /&gt;So next time you hear of a Product API like a home automation API not having security built in, think of how an API Gateway can help.&amp;nbsp;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-2785420470491415923</guid>
         <pubDate>Fri, 19 Jun 2015 14:56:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-iNcffVpE2VA/VYQgHlZzdLI/AAAAAAAAH_A/UycCEhmof4Y/s72-c/API-Gateway-Definition.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>API Security - protecting yourself from being the next breach - Boston API Craft Meetup</title>
         <link>http://www.soatothecloud.com/2015/06/api-security-protecting-yourself-from.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Over on ProgrammableWeb, Jennifer Wiggins has written a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.programmableweb.com/news/anatomy-real-world-api-security-breach/analysis/2015/06/10&quot;&gt;great round-up of discussion about the Buffer API security breach&lt;/a&gt;. Although it happened back in 2013, it continues to be a widely-cited API security issue. As Jennifer mentions, one of the recommendations is to use standards, such as OAuth. Ironically, the implementation of those standards themselves has to be secure.&lt;br /&gt;&lt;br /&gt;Another good practice is to take advantage of two essential approaches: (a) API Security Testing to proactively probe for vulnerabilities, and (b) an API Gateway&amp;nbsp;to&amp;nbsp;provide protection.&lt;br /&gt;&lt;br /&gt;API Security testing is an emerging category, and it's one which I'd argue is distinct from its cousin, Web Application Security. API Security testing has been a big interest of mine for a long time - I recall presenting about REST security at OWASP back in (yikes) 2005. Fast forward to today, and Smartbear is a vendor which provides API Security testing products (see this great blog post on the topic from them: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.smartbear.com/readyapi/api-security-testing-think-like-a-bad-guy/&quot;&gt;API Security Testing: Think like a bad guy&lt;/a&gt;). This, alongside the fact that they are spread between Boston and Ireland, means they are a vendor after my own heart :). API Security testing complements &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateways&lt;/a&gt; very well, as the yin and yang of security - testing and protection.&lt;br /&gt;&lt;br /&gt;Next Thursday, June 18, I'm speaking alongside Mike Giller from Smartbear on the topic of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.meetup.com/API-Craft-Boston/events/222869689/&quot;&gt;&quot;Beyond the OWASP Top Ten – protecting your API from new threats&quot;&lt;/a&gt;. It's at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.meetup.com/API-Craft-Boston/events/222869689/&quot;&gt;Boston API Craft meetup,&lt;/a&gt; at 6.30pm at the Smartbear offices in Somerville. Come along if you're interested in API Security (and in not being the next big API Security publicized breach...)&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-oqVVGUhv428/VXrsEN9OyRI/AAAAAAAAH40/YsPMB6ZSJxM/s1600/smartbear-axway.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;78&quot; src=&quot;http://2.bp.blogspot.com/-oqVVGUhv428/VXrsEN9OyRI/AAAAAAAAH40/YsPMB6ZSJxM/s320/smartbear-axway.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-7337768129073261021</guid>
         <pubDate>Fri, 12 Jun 2015 14:31:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-oqVVGUhv428/VXrsEN9OyRI/AAAAAAAAH40/YsPMB6ZSJxM/s72-c/smartbear-axway.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Linking B2B with APIs</title>
         <link>http://www.soatothecloud.com/2015/05/linking-b2b-with-apis.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Bill Doerrfeld at Nordic APIs has written today about &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/apis-are-evolving-the-b2b-landscape-2/&quot;&gt;how APIs are evolving the B2B landscape&lt;/a&gt;. This is a particularly interesting article for me, because my personal background is working for an EDI provider, where I linked EDI processes from the private network to the Internet, over 15 years ago. Vordel was founded to allow new Web Services APIs to be used for B2B. Axway, a B2B software company, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2014/02/axway-and-vordel-when-good-acquisitions.html&quot;&gt;acquired Vordel in 2012&lt;/a&gt; to link B2B with Web APIs. This caused a domino effect, with other API Management vendors being acquired shortly afterwards. However, none of the acquirers of the other startups had the B2B depth of Axway.&lt;br /&gt;&lt;br /&gt;And since the acquisition we have been executing on that plan. In last month's&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.gartner.com/technology/reprints.do?id=1-2BE7BDH&amp;amp;ct=150309&amp;amp;st=sb&quot;&gt;Gartner MQ for Application Services Governance&lt;/a&gt;, in which Axway is classed as a &quot;leader&quot;, Gartner reports that: &lt;i&gt;“Axway acquired Vordel in November 2012 to mix integration, governance and cloud functions in a B2B infrastructure offering with API management capabilities, and it has been executing that plan since.”&lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;APIs compliment B2B in many ways. In this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/developing-the-api-mindset-private-partner-and-public-apis/&quot;&gt;white paper by Mark Boyd&lt;/a&gt;, I list some of them:&lt;br /&gt;&lt;blockquote&gt;Often there are clear interfaces that make sense with APIs: price catalogs, order status lookups and shipment lookups, for example. B2B will require ways to go in and look at these interfaces, so they are good candidates to have available to partners as an API. &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/developing-the-api-mindset-private-partner-and-public-apis/&quot;&gt;http://nordicapis.com/developing-the-api-mindset-private-partner-and-public-apis/&lt;/a&gt;&lt;/blockquote&gt;It's very exciting to see the ongoing usage of APIs for B2B, and for Axway to be at the center of this. &amp;nbsp;&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-228151925273450426</guid>
         <pubDate>Tue, 26 May 2015 22:39:00 +0000</pubDate>
      </item>
      <item>
         <title>Service Control Gateway</title>
         <link>http://www.soatothecloud.com/2015/05/service-control-gateway.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;I'm back from a week in London, where one of the highlights was Gartner AADI. This year, I had the privilege of presenting alongside Oliver Cronk from Three UK, and our talk was entitled &lt;i&gt;&quot;How APIs are driving Digital Transformation at Three&quot;. &lt;/i&gt;A key part of that digital transformation is the role of the Service Control Gateway pattern.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;In the morning before our talk, Gartner's Anne Thomas explained how the &quot;Service Control Gateway&quot; pattern applies SDA (Software Defined Architecture) to Application Services, creating SDAS (Software-Defined Application Services). Anne's session was full to capacity, indicating the level of interest in this area. In the photo below, we see the role of the Service Control Gateway, in between consumers and application services. On the right of the photo, you can see the capabilities provided by the Service Control Gateway. Coming from an API Management vendor, I could not help noticing that these closely align to an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway&quot;&gt;API Gateway&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-CoEGvkbAjDc/VWO3B7wAcfI/AAAAAAAAHtg/vUTg5uM3N2Q/s1600/annet.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;177&quot; src=&quot;http://2.bp.blogspot.com/-CoEGvkbAjDc/VWO3B7wAcfI/AAAAAAAAHtg/vUTg5uM3N2Q/s320/annet.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In our session, Oliver Cronk showed this pattern in action at Three. Here you can see the Service Control Gateway in between consumers (including, for example, ATMs for mobile topups) and underlying infrastructure such as an ESB.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-JgH3FrZvygI/VWO3IPZopRI/AAAAAAAAHto/T2iuycLzWwo/s1600/olliec.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;175&quot; src=&quot;http://2.bp.blogspot.com/-JgH3FrZvygI/VWO3IPZopRI/AAAAAAAAHto/T2iuycLzWwo/s320/olliec.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Overall, this was a great conference. The highlight was the recognition of the role of the Service Control Gateway, and it was fantastic to be a part of telling the story of how an innovative organization such as Three UK has been at the forefront of taking advantage of this new pattern.&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-3237202223374318584</guid>
         <pubDate>Tue, 26 May 2015 00:14:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-CoEGvkbAjDc/VWO3B7wAcfI/AAAAAAAAHtg/vUTg5uM3N2Q/s72-c/annet.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>OpenID Connect (OIDC) on the Axway API Gateway</title>
         <link>http://www.soatothecloud.com/2015/05/openid-connect-oidc-on-axway-api-gateway.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;One of the great features on the latest release of the Axway &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway#tablist1-tab1&quot;&gt;API Gateway&lt;/a&gt;, and our API Management solution in general, is fully support for OpenID Connect (OIDC). &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://openid.net/connect/&quot;&gt;OpenID Connect&lt;/a&gt; is a new specification which builds on top of OAuth 2.0, and it enables important &quot;Social Login&quot; use cases, among others.&amp;nbsp;The OpenID Connect process follows the OAuth 2.0 three-legged authorization code flow, but with the additional concepts of an ID token and a UserInfo endpoint.&lt;br /&gt;&lt;br /&gt;You can see in Policy Studio, there is the ability now to create an OpenID Connect Token, and associate it with claims:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/-Drhg3C4NSUw/VV7H6L4u7tI/AAAAAAAAHm0/sSF-NNBw3Qg/s1600/OIDC.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://2.bp.blogspot.com/-Drhg3C4NSUw/VV7H6L4u7tI/AAAAAAAAHm0/sSF-NNBw3Qg/s320/OIDC.png&quot; width=&quot;248&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;We include prebuilt support for Google's OIDC implmentation, in an example flow documented below. You can see, at the bottom of the flow, that the &quot;user_info&quot; endpoint is called, to get info about the user (e.g. attributes). The &quot;user_info&quot; endpoint is one of the new features which OIDC builds on top of OAuth 2.0 itself:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-7A2PJM7ytfo/VV7IOW3J6uI/AAAAAAAAHm8/obKWFXrP8tA/s1600/OIDC-Flow.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;215&quot; src=&quot;http://1.bp.blogspot.com/-7A2PJM7ytfo/VV7IOW3J6uI/AAAAAAAAHm8/obKWFXrP8tA/s320/OIDC-Flow.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here's an example of the output from this user_info endpoint:&lt;br /&gt;&lt;blockquote&gt;{ &quot;kind&quot;: &quot;APIManagementOpenIdConnect&quot;, &quot;gender&quot;: &quot;female&quot;, &quot;sub&quot;: &quot;sampleuser&quot;, &quot;name&quot;: &quot;Sample User&quot;, &quot;given_name&quot;: &quot;Sample&quot;, &quot;family_name&quot;: &quot;${User}&quot;, &quot;picture&quot;: &quot;https://URL.TO.IMAGE/&quot;, &quot;email&quot;: &quot;sampleuser@axway&quot;, &quot;email_verified&quot;: &quot;true&quot;, &quot;locale&quot;: &quot;en&quot; }  &lt;/blockquote&gt;This is all implemented in prebuilt samples, so you can see it in action in the API Gateway. See below &quot;Use OpenID Connect&quot; to sign in with Google (where Google is the IpD - Identity Provider) or sign in with the Axway API Gateway.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/-yTqQPwypLkg/VV7JXGCAoyI/AAAAAAAAHnI/Q47nFAbBmZ8/s1600/oidc-demo.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;148&quot; src=&quot;http://3.bp.blogspot.com/-yTqQPwypLkg/VV7JXGCAoyI/AAAAAAAAHnI/Q47nFAbBmZ8/s320/oidc-demo.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The fact that the Axway solution allows our customersto act as your their IdP is important, since it enables many so-called &quot;Identity as a Service&quot; (IDaaS) use cases. It means you yourself can implement &quot;Sign in with My Company&quot; of your own.&lt;br /&gt;&lt;br /&gt;You can get your copy of the API Gateway, part of our API Management solution as a whole, over at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.axway.com/&quot;&gt;www.axway.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-4711002589720513763</guid>
         <pubDate>Fri, 22 May 2015 06:22:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-Drhg3C4NSUw/VV7H6L4u7tI/AAAAAAAAHm0/sSF-NNBw3Qg/s72-c/OIDC.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>API Workshop tomorrow May 15 at Nordic APIs Seattle</title>
         <link>http://www.soatothecloud.com/2015/05/api-workshop-tomorrow-may-15-at-nordic.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;First, that's not a typo. Nordic APIs is indeed in Seattle this year. Perhaps next year we'll see &quot;Pacific Northwest APIs&quot; in Stockholm :-).&lt;br /&gt;&lt;br /&gt;The Seattle&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/tour/nordic-apis-world-tour-2015/&quot;&gt;line-up for Nordic APIs&lt;/a&gt; looks great, with Microsoft, APIMetrics, and Splunk speaking [I'm giving a talk about the &quot;API First&quot; approach]. The event kicks off at 11.30am. But, you can warm up for the event at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/api-first-workshop-transforming-your-business-apis&quot;&gt;API Workshop&lt;/a&gt; taking place that morning at the same venue (Seattle's South Lake Union Discovery Center). At the API workshop, we get down and dirty with APIs, including:&lt;br /&gt;&lt;br /&gt;* Building a mobile app consuming APIs, with REST and API Keys&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- What are the security considerations?&lt;br /&gt;* Understanding REST API Security with OAuth and OpenID Connect&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- How to secure REST APIs: Where do OAuth 2.0 and API Keys fit in?&lt;br /&gt;* How to enable Single Sign-On with Cloud Identity Providers (IdPs) like Google?&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- Mapping Cloud identity to enterprise identity&lt;br /&gt;* Beyond REST: HTML5 WebSockets for API access&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- Full duplex streaming of data, for next-generation Web APIs&lt;br /&gt;* SalesForce API Access: Session management, caching, orchestration&lt;br /&gt;* Cloud-to-Ground interoperability in a hybrid world&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- How to safely connect Cloud services like Office 365 or Google Apps to your organization&lt;br /&gt;* How to on-board and enable a partner developer community&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- API Developer Portal tips and tricks&lt;br /&gt;&lt;br /&gt;It's &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/api-first-workshop-transforming-your-business-apis&quot;&gt;free to register for the API Workshop&lt;/a&gt;, and we do provide coffee and giveaways. Come along to get in the API mood for NordicAPIs!&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-AypbvMdjS6g/VVS1Lor51lI/AAAAAAAAHac/NlHcAI3v1w0/s1600/nordic-apis.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-AypbvMdjS6g/VVS1Lor51lI/AAAAAAAAHac/NlHcAI3v1w0/s1600/nordic-apis.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-2306366523921032854</guid>
         <pubDate>Thu, 14 May 2015 14:46:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/-AypbvMdjS6g/VVS1Lor51lI/AAAAAAAAHac/NlHcAI3v1w0/s72-c/nordic-apis.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>A tale of two electric car smartwatch API strategies</title>
         <link>http://www.soatothecloud.com/2015/05/a-tale-of-two-electric-car-smartwatch.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Nikki Gordon-Bloomfield has written a piece in Transport Evolved this week about some&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://transportevolved.com/2015/05/05/third-party-apple-watch-remote-control-app-for-tesla-model-s-on-its-way/&quot;&gt; third-party smartwatch apps developed using Tesla's unofficial API&lt;/a&gt;. These follow on from the original unofficial Tesla Apple Watch app developed by Elek. While it's definitely possible to see merit in &quot;letting a thousand flowers bloom&quot; of unofficial apps, it is understandably worrying for security people to think about &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.blogger.com/&quot;&gt;&lt;span id=&quot;goog_1678907727&quot;&gt;&lt;/span&gt;car apps calling an unofficial reverse-engineered API.&lt;span id=&quot;goog_1678907728&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another approach is what BMW has done for smartwatch (and smartphone) apps for their BMWi electric cars. These apps make use of the ConnectedDrive API. In this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/webinar/connected-car-ultimate-mobile-device&quot;&gt;Axway video about the BMWi apps, with our implementation partner IC-Consult&lt;/a&gt;, you can learn about how this API makes use of OAuth and other security technologies, through an Axway&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/enterprise-solutions/api-gateway#tablist1-tab1&quot;&gt;API Gateway&lt;/a&gt;.This ensures security of the API itself, as well as enabling end-users to choose which aspects of the car they want the app to control (mapped via OAuth scopes, as explained in the video).&lt;br /&gt;&lt;br /&gt;Here is a still from the video which shows the various apps, including a smartwatch app:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/webinar/connected-car-ultimate-mobile-device&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;184&quot; src=&quot;http://1.bp.blogspot.com/-ZFqL3VOX9RU/VUy9fZkvZ0I/AAAAAAAAHYU/L0lAIl5BPwY/s320/BMW1.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The API Gateway layer applies security, between the apps and the ConnectedDrive infrastruture:&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/webinar/connected-car-ultimate-mobile-device&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;188&quot; src=&quot;http://1.bp.blogspot.com/-Pm2UbXYcR7s/VUy9g1WfMmI/AAAAAAAAHYc/RO6YLM0Hwjk/s320/BMW2.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:left;&quot;&gt;And here's a double-click down on the architecture, showing the smartwatch and smartphone iRemote apps (on the left), with the API Gateway implementing OAuth (in the center), in front of the ConnectedDrive infrastructure (on the right). Click on the image to see the full video, including the OAuth flow (this piece is approx minute 17 onwards):&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/webinar/connected-car-ultimate-mobile-device&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;179&quot; src=&quot;http://3.bp.blogspot.com/-BZ-nZVp0NrM/VUy9kavAE0I/AAAAAAAAHYk/HUGJy9EhvyU/s320/BMW3.png&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;The era of smartwatch apps connecting to cars is upon us. API security has a key role to play.&amp;nbsp;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-4986277813347668751</guid>
         <pubDate>Fri, 08 May 2015 14:03:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/-ZFqL3VOX9RU/VUy9fZkvZ0I/AAAAAAAAHYU/L0lAIl5BPwY/s72-c/BMW1.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>May is global API-palooza at Axway - 11 great API-related events in one month</title>
         <link>http://www.soatothecloud.com/2015/05/may-is-global-api-palooza-at-axway-11.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;With all of the API-related conferences today, I'm surprised there is not one called API-palooza. Maybe we're all waiting for Perry Farrell to organize it. But, here at Axway, our May schedule is like an API-palooza all of its own: a worldwide tour of API evangelism. Come along to any of the events and you can pick up one of our sought-after &quot;API First&quot; t-shirts, and hear all about API strategy best practices.&lt;br /&gt;&lt;br /&gt;Here's the May calendar in full:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;May 5: Innovation Forum Philadelphia - with Accenture and Bristol Myers Squibb&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;First up, next Tuesday, is the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.soatothecloud.com/2015/04/accenture-and-bristol-myers-squibb.html&quot;&gt;Innovation Forum&lt;/a&gt;&amp;nbsp;in Philadelphia: a free event organized by Axway where you can hear experts from Accenture and Bristol Myers Squibb share API best practice. I will be speaking about Digital Transformation in the morning. Kevin Kohut from Accenture will be speaking about &quot;API First&quot;, while Janette Bubinak and Ron Zhang from Bristol-Myers Squibb will be speaking about self-service API access. We also are running an API Workshop in the afternoon of the event, where we will walk you throught the soup-to-nuts process of creating a mobile app based on open APIs - think of it like a mini-hackathon. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-philadelphia&quot;&gt;Sign-up for free for the Innovation Forum in Philadelphia here, there is still time.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-a6wDmH-Dk8M/VUN3lUiMz7I/AAAAAAAAHSI/cHmRqoAvjbc/s1600/acc.jpg&quot; height=&quot;139&quot; width=&quot;320&quot;/&gt;&amp;nbsp;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-nQhweUvJmtE/VUN3h8xYyqI/AAAAAAAAHSA/nWzEMAgjO_Q/s1600/bristol-myers-squibb.jpeg&quot; height=&quot;150&quot; width=&quot;200&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;May 6-7: API Days Mediterranea - Barcelona&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Fresh from sponsoring API Days Berlin last month, and API Days Sydney back in January, Axway is once again a sponsor of API Days - this time it's &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://mediterranea.apidays.io/&quot;&gt;API Days Mediterranea in Barcelona&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I recommend catching Axway's Ross Garrett speaking on the Hypermedia track at 10.30am on May 6. Hypermedia talk titles can never be accused of not being obtuse, and Ross's talk title doesn't disappoint: &quot;A Babel fish from the swamp of POX&quot;. Here's Ross's talk abstract:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;One of the foundational aspects of the Web is the concept that, even if the client (browser) and the server have 'never met’ they should be able to understand each other. They should be able to interact successfully. This was one of key problems Tim Berners-Lee and Robert Cailliau wanted to solve when they proposed hypertext to &quot;link and access information of various kinds as a web of nodes in which the user can browse at will”. Today’s programmable Web has perhaps started to move away from this universal and browsable foundation, and in this session we’ll think about the language of Web APIs and how developers and clients must learn to understand them. &lt;/i&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://mediterranea.apidays.io/&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-ZmOio65LdLw/VUN7ANSktPI/AAAAAAAAHSU/ln-EgNIowMQ/s1600/apidays-SAFA_bw.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;May 11: Nordic APIs Spring Tour - Denmark&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This year Nordic APIs is going global. In fact the only spring Nordic APIs event which is actually in the Nordics is the first one: Nordic APIs Denmark, taking place in Copenhagen on May 11.&lt;br /&gt;&lt;br /&gt;Axway's Philipp Schöne is speaking at 1pm on &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/?post_type=sessions&amp;amp;p=3244&quot;&gt;Delivering API First: Is your API a first class citizen?&lt;/a&gt;&quot;.&lt;br /&gt;&lt;br /&gt;Here is the abstract for Philipp's talk:  &lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;What does it mean to be “API First”? In this session, we answer that question using case studies where organizations have treated their API as a first-class citizen of their enterprise architecture. By treating their API as a first-class citizen, they avoid the temptation of simply creating ad-hoc APIs simply as “plumbing” for mobile apps. By taking the API First approach, these organizations also design their API security up-front, including the usage of OAuth, API Firewalling, and securely managed API Keys. We also examine the alternatives to API First, such as “Mobile first” development. Using an API First approach, we’ll see how enterprises with legacy applications, complex SOA environments and strict governance structures can embrace the API wave and architect for the future. &amp;nbsp;&lt;/i&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/?post_type=sessions&amp;amp;p=3244&quot;&gt;http://nordicapis.com/?post_type=sessions&amp;amp;p=3244&lt;/a&gt;&lt;/blockquote&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/tour/nordic-apis-world-tour-2015/&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-93QvYzxG3H8/VUOAb8Tx1yI/AAAAAAAAHSk/Ngc0AWLXhdc/s1600/nordic-apis.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;May 12: Nordic APIs Spring Tour - Germany&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;In Munich on May 12, there is another chance to hear Philippe&amp;nbsp;Schöne&amp;nbsp;speak on &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/?post_type=sessions&amp;amp;p=3245&quot;&gt;Delivering API First: Is your API a first class citizen?&lt;/a&gt;&quot;, at 1pm. This looks like a fantastic event, with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/speakers/stefan-weiss/&quot;&gt;Stefan Weiss&lt;/a&gt; from Fidor TecS speaking later that afternoon on &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/?post_type=sessions&amp;amp;p=3312&quot;&gt;Distripting Banking with an API&lt;/a&gt;&quot; - a very hot topic for many Axway API Management customers in the financial services area.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/tour/nordic-apis-world-tour-2015/&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-93QvYzxG3H8/VUOAb8Tx1yI/AAAAAAAAHSk/Ngc0AWLXhdc/s1600/nordic-apis.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;May 12: Innovation Forum Chicago - with Accenture and Dun &amp;amp; Bradstreet&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;While Philipp is speaking at Nordic APIs Germany, I'm in Chicago speaking at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-chicago&quot;&gt;Innovation Forum Chicago&lt;/a&gt; event organized by Axway.&lt;br /&gt;&lt;br /&gt;I'll be speaking on digital transformation, and we also have Accenture and Dun &amp;amp; Bradstreet speaking about APIs. Kevin Kohut from Accenture will be speaking on &quot;API First&quot; (can you see an &quot;API First&quot; theme here? :-) ). Dun and Bradstreet will be speaking about their very successful &quot;D&amp;amp;B Direct&quot; API, in a talk entitled &quot;&lt;i&gt;Liberating &amp;amp; Modernizing Data Delivery with API’s: The D&amp;amp;B Direct Story&lt;/i&gt;&quot;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-bSO-9bZepVE/VUOJC9Z2TtI/AAAAAAAAHTE/r_P_FVlaZVA/s1600/dnb-logo.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-bSO-9bZepVE/VUOJC9Z2TtI/AAAAAAAAHTE/r_P_FVlaZVA/s1600/dnb-logo.png&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/-a6wDmH-Dk8M/VUN3lUiMz7I/AAAAAAAAHSI/cHmRqoAvjbc/s1600/acc.jpg&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-a6wDmH-Dk8M/VUN3lUiMz7I/AAAAAAAAHSI/cHmRqoAvjbc/s1600/acc.jpg&quot; height=&quot;86&quot; width=&quot;200&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-chicago&quot;&gt;Registration for Innovation Forum Chicago is free&lt;/a&gt;, and a great opporunity to meet and mingle with some leading API practitioners.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;May 13: Nordic APIs Spring Tour - London&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;The Nordic APIs tour rolls into London on May 13, and once again Philipp&amp;nbsp;Schöne&amp;nbsp;from Axway is speaking, this time at 12.40pm, on &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/?post_type=sessions&amp;amp;p=3246&quot;&gt;Delivering API First: Is your API a first class citizen&lt;/a&gt;?&quot;. Catch Philipp, as well as the Axway UK team, there.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/tour/nordic-apis-world-tour-2015/&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-93QvYzxG3H8/VUOAb8Tx1yI/AAAAAAAAHSk/Ngc0AWLXhdc/s1600/nordic-apis.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;May 15: API Workshop, Seattle (co-located with Nordic APIs Seattle)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;On the morning of May 15, just before Nordic APIs Seattle kicks off, I'm leading an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/api-first-workshop-transforming-your-business-apis&quot;&gt;API Workshop&lt;/a&gt; where we cover API security, mobile API usage, WebSockets, and other API-related topics in a hands-on environment. It's at the same location as Nordic APIs Seattle, the&amp;nbsp;South Lake Union Discovery Center, from 8.30am to 11am. Coffee will be provided :-). &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/api-first-workshop-transforming-your-business-apis&quot;&gt;Sign up is free for this API Workshop&lt;/a&gt; (and, indeed, Nordic APIs Seattle is also free - so there is no excuse to not go to both events!)&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;May 15:&amp;nbsp;&lt;/b&gt;&lt;b&gt;Nordic APIs Spring Tour - Seattle&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Nordic APIs comes stateside for the first time, sponsored by Axway and Microsoft. I'm &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/?post_type=sessions&amp;amp;p=3285&quot;&gt;speaking at 12.40pm on the topic of (you guessed it!) API First.&lt;/a&gt;&amp;nbsp;I'm particularly looking forward to this event, which includes, as well as Microsoft and Axway, APIMetrics, Splunk, and Pearson Media in the lineup. Arrive at 8.30am and you can catch the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/api-first-workshop-transforming-your-business-apis&quot;&gt;free API Workshop&lt;/a&gt; before the event kicks off at 11am.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nordicapis.com/tour/nordic-apis-world-tour-2015/&quot; style=&quot;margin-left:1em;margin-right:1em;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-93QvYzxG3H8/VUOAb8Tx1yI/AAAAAAAAHSk/Ngc0AWLXhdc/s1600/nordic-apis.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;May 18-19: Gartner AADI, London - with Three&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Axway is again a Platinum Sponsor for Gartner AADI. I'm speaking at the event alongside Oliver Cronk, Enterprise Architect at Three (a large UK mobile telco). Our talk is entitled &quot;How APIs are driving Digital Transformation at Three&quot;. We're looking forward to a great session, discussing the &quot;Service Control Gateway&quot; pattern, and how APIs drive new services.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-ufCKOt8sE0g/VUOkI9vwZZI/AAAAAAAAHTg/EWeDQSiwJqE/s1600/three-uk.jpg&quot;/&gt;&lt;/div&gt;Axway will also have a booth at Gartner AADI London, so come along and say Hi if you're at the event.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;May 19: Innovation Forum San Francisco - with Accenture, Dun &amp;amp; Bradstreet, and Roche&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-san-francisco&quot;&gt;Innovation Forum tour rolls into San Francisco on May 19&lt;/a&gt;, and we have some great speakers lined up from Accenture, Dun &amp;amp; Bradstreet, and Roche. Roche are presenting on &quot;Mobile and Cloud Integration to Serve a Global Community&quot;. Accenture are presenting on API First strategy, and Dun and Bradstreet are speaking about Data-as-a-Service (DaaS) to liberate data via APIs. This is a great opportunity to meet with some top API practitioners in what is probably the home of APIs - San Francisco. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-san-francisco&quot;&gt;As with all the Innovation Forums, registration is free.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-a6wDmH-Dk8M/VUN3lUiMz7I/AAAAAAAAHSI/cHmRqoAvjbc/s1600/acc.jpg&quot; height=&quot;86&quot; width=&quot;200&quot;/&gt;&amp;nbsp;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-bSO-9bZepVE/VUOJC9Z2TtI/AAAAAAAAHTE/r_P_FVlaZVA/s1600/dnb-logo.png&quot;/&gt;&amp;nbsp;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-0YtweGz3lyk/VUOnUXRfhMI/AAAAAAAAHTs/RjO6AvDCDuM/s1600/roche.png&quot; height=&quot;103&quot; width=&quot;200&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;May 20: API Workshop - Sweden&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Finally, rounding out the month (and giving time for a week of rest before June!), there is the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/api-workshop-tech-lab-sweden-20-may-2015&quot;&gt;Axway API Workshop event in Stockholm, Sweden&lt;/a&gt;. Like the API Workshop the previous week in Seattle, this is an opportunity to get hands-on with APIs and walk through scenarios like connecting to the SalesForce API, learn about API Keys and OAuth, and about APIs in general.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;And that wraps up the API-palooza that is May! Come along to any of the events, and grab your API First shirt :-)&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-eJJEV7jgHBE/VUOrl1n4leI/AAAAAAAAHUI/Q7bWC0PqEEY/s1600/shirt.jpg&quot; height=&quot;278&quot; width=&quot;320&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-4718479334111973711</guid>
         <pubDate>Fri, 01 May 2015 16:40:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://1.bp.blogspot.com/-a6wDmH-Dk8M/VUN3lUiMz7I/AAAAAAAAHSI/cHmRqoAvjbc/s72-c/acc.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Catch Philipp Schöne at API Days / APIStrat Berlin this Friday</title>
         <link>http://www.soatothecloud.com/2015/04/catch-philipp-schone-at-api-days.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Unfortunately I won't be at API Days / APIStrat Berlin 2015 later this week. But if you're there, check out my colleague &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://apidaysberlin2015.apistrat.com/sessions/apis-data-intelligence/&quot;&gt;Philipp Schöne's talk on the &quot;APIs, Data &amp;amp; Intelligence&quot; track&lt;/a&gt;. Details are:&lt;br /&gt;&lt;br /&gt;LOCATION: Room: Caroline &amp;amp; Wilhelm v. Humboldt&lt;br /&gt;DATE: April 24, 2015&lt;br /&gt;TIME: 10:50 am - 12:30 pm&lt;br /&gt;&lt;br /&gt;I know Philipp has a great presentation lined up, and the format of the event ensures a lot of great discussion. Sad to miss it (and to miss the opportunity for some great German beer afterwards too!)&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://apidaysberlin2015.apistrat.com/sessions/apis-data-intelligence/&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-kMSAldPGijI/VTVkCTiz-5I/AAAAAAAAG58/lAF1mMrYCKc/s1600/apistrat-apidays-logo2.png&quot; height=&quot;74&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-4454318245915833772</guid>
         <pubDate>Mon, 20 Apr 2015 20:40:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-kMSAldPGijI/VTVkCTiz-5I/AAAAAAAAG58/lAF1mMrYCKc/s72-c/apistrat-apidays-logo2.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Accenture and Bristol Myers Squibb speaking about APIs at Axway Innovation Forum - Philadelphia May 5</title>
         <link>http://www.soatothecloud.com/2015/04/accenture-and-bristol-myers-squibb.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;On May 5 in Philadephia, Axway is running an &quot;Innovation Forum&quot; focusing on integration technologies including APIs. It's a free event which you can &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-philadelphia&quot;&gt;sign up for online&lt;/a&gt;, and we've some great speakers lined up. I'll be down in Philly for the event, and I'm really looking forward to it.&lt;br /&gt;&lt;br /&gt;So what is an Innovation Forum? It's a way to get practitioners together to share best practices, network, and discuss the latest technologies. Expect to hear much discussion on microservices, on the latest API security breaches (and how to avoid them), and on Internet of Things.&lt;br /&gt;&lt;br /&gt;On the API front, we have some great speakers lined up:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bristol Myers Squibb:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Janette Bubinak and Ron Zhang of Bristol Myers Squibb (BMS) will be speaking on &quot;API Management: Bridging to the Business&quot;. BMS have done some very innovative things around API management, especially relating to enabling self-service for business users, so I highly recommend this session.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-muYRUU2fjXc/VTVd_5vElRI/AAAAAAAAG5k/SXyB6JzbbGs/s1600/bristol-myers-squibb.jpeg&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Accenture:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Anyone who has seen Accenture's Kevin Kohut speak about &quot;API First&quot; knows that he is the leading expert in the field. And I really mean &quot;in the field&quot;, because Kevin has assisted organizations as far away as Australia in architecting and deploying their APIs. We're very privileged in having Kevin speak at the Innovation Forum in Philadelphia, and I'm very much looking forward to his session.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-P1OFnS8u3ns/VTVgVXMLa8I/AAAAAAAAG5w/I9gKzRKFtjM/s1600/acc.jpg&quot; height=&quot;139&quot; width=&quot;320&quot;/&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.axway.com/en/event/axway-innovation-forum-philadelphia&quot;&gt;Sign-up is free - see you there!&amp;nbsp;&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-7379130658118028366</guid>
         <pubDate>Mon, 20 Apr 2015 20:27:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-muYRUU2fjXc/VTVd_5vElRI/AAAAAAAAG5k/SXyB6JzbbGs/s72-c/bristol-myers-squibb.jpeg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>The API First Manifesto</title>
         <link>http://www.soatothecloud.com/2015/04/the-api-first-manifesto.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;With the UK elections coming up, and the US 2016 election gaining momentum, manifestos are in the news. In the API world, we also see the API First approach similarly gathering momentum. I recently had a good discussion with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cbronline.com/news/cybersecurity/physical/device-makers-put-your-faith-in-architecture-4528932&quot;&gt;Alex Sword of CBR about what &quot;API First&quot; means. It's part of a larger article about security and devices.&lt;/a&gt; Here are the three recommendations I picked out in the article about API First:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Treat&amp;nbsp;your API like a first-class citizen of your architecture&lt;/b&gt;&lt;br /&gt;This is something which Accenture's Kevin Kohut has spoken about at Axway's API Workshop events and at our US Connections customer event. Kevin recommended treating an API like a product, with a name, a roadmap, and a designated product manager. Having someone whose responsibility it is to manage the API is important, because it reduces the risks that the API will be changed in a way which breaks existing client usage.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Build the API first, not as an afterthought as part of a mobile app project&lt;/b&gt;&lt;br /&gt;API First means literally building the API first. All too often, ad hoc APIs are built just to get data to and from a mobile app, which is built first (&quot;mobile first&quot;). These ad hoc APIs can multiply and become a nightmare to manage. If you built the API first, and manage it as a product (see Recommendation 1 above), then when your mobile app developers need to access data then they can be directed to use the API.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Don't tie your API only to mobile&lt;/b&gt;&lt;br /&gt;Another way API First is different from &quot;mobile first&quot; is that when you design your API first, you can design it in a client-neutral manner. This means that it's not only for mobile clients. APIs have traditionally been associated with mobile, but now we're seeing other types of clients, such sensors and wearable devices, come to the fore. By all means, you can design &quot;Experience APIs&quot; in front of the core API layer, to tailor the API UX to specific types of clients (e.g. adding pagination for mobile clients). But, the underlying API is designed first: another example of &quot;API First&quot;.&lt;br /&gt;&lt;br /&gt;Check out the whole article here:&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cbronline.com/news/cybersecurity/physical/device-makers-put-your-faith-in-architecture-4528932&quot;&gt;http://www.cbronline.com/news/cybersecurity/physical/device-makers-put-your-faith-in-architecture-4528932&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;mailto:info@axway.com&quot;&gt;contact Axway&lt;/a&gt; if you'd like an API First shirt :-)&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;mailto:info@axway.com&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-jOovA6cdXKU/VSwGfpGscKI/AAAAAAAAGfM/byRBiW43rPE/s1600/shirt.jpg&quot; height=&quot;278&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-5910132478180180722</guid>
         <pubDate>Mon, 13 Apr 2015 18:11:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://2.bp.blogspot.com/-jOovA6cdXKU/VSwGfpGscKI/AAAAAAAAGfM/byRBiW43rPE/s72-c/shirt.jpg" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Top 10 API Security Considerations - Gunnar Peterson White Paper now available</title>
         <link>http://www.soatothecloud.com/2015/04/top-10-api-security-considerations.html</link>
         <description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align:left;&quot;&gt;Last year I co-presented a webinar with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1raindrop.typepad.com/&quot;&gt;Gunnar Peterson&lt;/a&gt;&amp;nbsp;on the Top Ten API Security Considerations (you can view the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.axway.com/en/webinar/rest-and-api-security-top-10&quot;&gt;API Security webinar recording here&lt;/a&gt;). Gunnar has now written a follow-up &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.axway.com/en/gate/1390&quot;&gt;API Security White Paper&lt;/a&gt; which you can now download from the Axway website.&lt;br /&gt;&lt;br /&gt;Gunnar has written a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1raindrop.typepad.com/1_raindrop/2015/03/top-.html&quot;&gt;blog post about the API Security White Paper&lt;/a&gt; in which he notes &quot;&lt;i&gt;I see a lot of people rolling out APIs without a ton of thought given to the security fundamentals&lt;/i&gt;&quot;, and I agree. He explains that: &quot;&lt;i&gt;This paper is designed to help you build a model that works to protect your APIs.&lt;/i&gt;&quot; Click the image below to get the White Paper (short registration required):&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.axway.com/en/gate/1390&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/-uN7L3NMHDUQ/VSKBkw--W0I/AAAAAAAAGVk/uoYoWb7aVzQ/s1600/gunnar-wp.png&quot; height=&quot;303&quot; width=&quot;320&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Mark O'Neill)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-5066603456638955842.post-324083659180834556</guid>
         <pubDate>Mon, 06 Apr 2015 12:56:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://4.bp.blogspot.com/-uN7L3NMHDUQ/VSKBkw--W0I/AAAAAAAAGVk/uoYoWb7aVzQ/s72-c/gunnar-wp.png" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
   </channel>
</rss>
<!-- fe7.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 22:52:29 UTC 2015 -->
