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

<channel>
	<title>Layer 7 - Blogs</title>
	<atom:link href="http://www.layer7tech.com/blogs/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.layer7tech.com/blogs</link>
	<description>API Management &#124; SOA Governance &#124; Cloud Integration</description>
	<lastBuildDate>Wed, 19 Jun 2013 23:44:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>When Good API Design is a Waste of Time</title>
		<link>http://www.layer7tech.com/blogs/index.php/when-good-api-design-is-a-waste-of-time/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/when-good-api-design-is-a-waste-of-time/#comments</comments>
		<pubDate>Wed, 19 Jun 2013 23:00:32 +0000</pubDate>
		<dc:creator>Ronnie Mitra</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web API]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=3809</guid>
		<description><![CDATA[The idea that good design is essential to building great products and services has become a truism in our industry.  Most of us intuitively understand the idea that expending effort on the design of our code, system architecture and APIs will payoff after implementation.  I&#8217;m certainly a big believer in the power of good design [...]]]></description>
			<content:encoded><![CDATA[<p>The idea that go<a href="http://www.layer7tech.com/blogs/wp-content/uploads/2013/02/to-nowhere.jpg"><img class="alignleft size-medium wp-image-4478" style="margin-right: 20px; margin-bottom: 20px;" title="to-nowhere" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/02/to-nowhere-300x174.jpg" alt="" width="300" height="174" /></a>od design is essential to building great products and services has become a truism in our industry.  Most of us intuitively understand the idea that expending effort on the design of our code, system architecture and APIs will payoff after implementation.  I&#8217;m certainly a big believer in the power of good design for the API space, but I wanted to explore a situation where a design focus might not be necessary.</p>
<p>Consider the case of a small business offering a cloud-based service product for a niche market.  If this business chose to invest in a well-designed, developer-centric API, at a minimum they could expect:</p>
<ul>
<li>A reduced learning curve for developers consuming the interface</li>
<li>A reduction in troubleshooting time</li>
<li>Increased interest from their developer community</li>
</ul>
<p>For most audiences, these are goals worth achieving.  Indeed, this is why we emphasize good design for APIs in the first place &#8211; the benefits fit remarkably well with the main reasons for embarking on an API strategy: reduced cost and increased adoption.</p>
<p>But, in my conversations with connectivity professionals from larger organizations, it is apparent that not all service vendors see the value in investing in this type of design effort.  Developers and architects are bursting with  tales of forced integration with service providers who have simply thrown an ugly or barely functioning interface on top of  core component.  It is in these scenarios that we hear about laughable attempts at implement whichever API styles and features are in fashion.  &#8217;REST&#8217; and &#8216;security&#8217; become sales-worthy buzzwords that don&#8217;t live up to their promise when developers get their hands on the actual interface when real project work commences.</p>
<p>In the majority of these cases, technical teams have very little say during the procurement process of outsourced and cloud-based services.  In effect, these API providers don&#8217;t need to design for their developer audience because they aren&#8217;t critical to succeeding.  For many years a sound strategy for selling cloud-based products has been to sidestep technical teams and engage directly with the business.  It&#8217;s frustrating that technology teams are often still left with the responsibility for reducing integration costs regardless of the lack of sophistication in the APIs that they are tasked with connecting to.</p>
<p>Thankfully, the wealth of knowledge and connectivity products in the enterprise space allows these teams to reduce the impact of bad design on the overall project and organization.  Components such as <a href="http://www.layer7tech.com/products/api-proxy">API proxies</a> can be used not only to build a facade for APIs that are being exposed, but also to provide abstraction for services that are being consumed.  In essence, the design burden can shift from the service provider, to the enterprise developer who wraps a poorly designed interface in a more consumable, developer-friendly API for the rest of the organization to use.</p>
<p>As a whole, the scenario makes sense.  Well designed products are based in part a designer&#8217;s empathy for their users.  Good design involves perceiving a product from a user&#8217;s view point along with an understanding of the impact that design decisions will have on the user base.  However, an organization that builds an API as an afterthought for developers, who are only viewed as a means to an end, will likely produce a poor API.</p>
<p>Ultimately, building a technology business based on developer apathy is a bad idea.  The industry shift towards API product based integration is empowering technology teams at all levels and services that continue to ignore the needs of their developers will eventually be ousted from the market.  In short, good design is only a waste of time when you don&#8217;t care about your users.  If  in fact you <em>do</em> care about the developers who will be using your API product, then you need to invest in <a href="http://www.apiacademy.co/">designing your API</a> with their point of view in mind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/when-good-api-design-is-a-waste-of-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The WADL is Not Enough &#8211; Why API Documentation Matters</title>
		<link>http://www.layer7tech.com/blogs/index.php/the-wadl-is-not-enough-why-api-documentation-matters/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/the-wadl-is-not-enough-why-api-documentation-matters/#comments</comments>
		<pubDate>Mon, 10 Jun 2013 21:00:40 +0000</pubDate>
		<dc:creator>Ronnie Mitra</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Developers & Development]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4048</guid>
		<description><![CDATA[As I&#8217;ve talked about before, in our API documentation tutorial, documenting your API effectively is critical if you care at all about getting the maximum return from your design investment. It doesn&#8217;t matter if you are building a private API for a few selected partners or trying to build a company around a public API [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/library/videos/api-academy-api-documentation-overview/2924" target="_blank"><img class="alignleft size-full wp-image-4452" style="margin: 5px 10px;" title="The WADL is Not Enough" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/06/The-WADL-is-Not-Enough-300x3001.jpg" alt="The WADL is Not Enough" width="300" height="300" /></a>As I&#8217;ve talked about before, in our<a href="http://www.layer7tech.com/library/videos/api-academy-api-documentation-overview/2924" target="_blank"> API documentation tutorial</a>, documenting your API effectively is critical if you care at all about getting the maximum return from your design investment. It doesn&#8217;t matter if you are building a private API for a few selected partners or trying to build a company around a public API &#8211; poor documentation is going to sink your endeavor every time.</p>
<p>The challenge is that it&#8217;s really difficult to find people who are as great at documenting systems as they are at designing them. As a convenient shortcut, many API designers use tooling to auto-generate documentation. This often means exporting machine-readable interface description files like WSDLs and WADLs based on some type of configuration data entered into a development or testing tool. <a href="http://www.layer7tech.com/library/tech-talks/tech-talk-tuesday-swagger-wadl-api-%E2%80%98scriptions/2494" target="_blank">Assets like these</a> are great for driving programmatic components on both the client and server side but they have limited value otherwise.</p>
<p>WSDL files, in particular, are popular in the <a href="http://www.layer7tech.com/library/solution-briefs/layer-7-for-soa-governance/1896" target="_blank">SOA</a> space because they allow client developers to auto-build proxy classes that can be invoked in the RPC style that is prevalent for SOAP-based integration. This advantage is diminished in the HTTP API world as we have moved away from this document binding style of interface to less structured forms of integration. But even putting this distinction aside, WSDLs have never provided an effective means of documenting SOAP systems and WADLs are no better.</p>
<p>Effective documentation implies effective communication. In the vast majority of situations, a standards-based XML description of your interface is not going to cut it. <a href="http://www.layer7tech.com/solutions/developer-access-solutions-overview" target="_blank">Application developers</a> need to understand much more than the names and parameters of your API if they hope to build real applications in reasonable time-frames. This means you need to create documentation fit for developers – in other words, documentation built for humans.</p>
<p>Your documentation will act as a navigation system through the complexities of your API. Simply providing a WADL is the equivalent of providing a set of GPS coordinates to a tourist in your city. With the right tools, they may get there eventually but a human-readable map would provide a much richer and simpler experience. If you care about the developer experience for your API, you&#8217;ll spend some time and effort writing documentation that works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/the-wadl-is-not-enough-why-api-documentation-matters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IoT Tech Talk Follow-Up</title>
		<link>http://www.layer7tech.com/blogs/index.php/iot-tech-talk-follow-up/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/iot-tech-talk-follow-up/#comments</comments>
		<pubDate>Fri, 07 Jun 2013 21:00:39 +0000</pubDate>
		<dc:creator>Holger Reinhardt</dc:creator>
				<category><![CDATA[API Management]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[M2M]]></category>
		<category><![CDATA[Tech Talks]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4433</guid>
		<description><![CDATA[Last week, I had the opportunity to answer questions about the Internet of Things (IoT) when I took part in Layer 7’s monthly API Tech Talk. We had a tremendous response, with lots of questions and a very active online discussion. You can find a replay of the Tech Talk here. I’d like to take [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/library/tech-talks/api-tech-talk-the-internet-of-things/3068" target="_blank"><img class="alignleft size-full wp-image-4437" style="margin: 10px;" title="IoT Tech Talk Follow Up" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/06/IoT-Tech-Talk-Follow-Up-v2.jpg" alt="IoT Tech Talk Follow Up" width="300" height="231" /></a>Last week, I had the opportunity to answer questions about the Internet of Things (IoT) when I took part in Layer 7’s monthly API Tech Talk. We had a tremendous response, with lots of questions and a very active online discussion. You can <a href="http://www.layer7tech.com/library/tech-talks/api-tech-talk-the-internet-of-things/3068" target="_blank">find a replay of the Tech Talk here</a>. I’d like to take this opportunity to answer a few of the questions we received during the webcast but didn’t have time to answer on the day.</p>
<p><strong>How does Layer 7 help me manage a range of devices across IoT?</strong><br />
IoT is an opportunity for CA and Layer 7 to bring together identity, access and <a href="http://www.layer7tech.com/library/solution-briefs/layer-7-for-api-management/2109" target="_blank">API Management</a>.  To paraphrase a comment on <a href="http://gigaom.com/2013/05/03/how-will-we-measure-the-internet-of-things/" target="_blank">a recent Gigaom article</a>: Everything with an identity will have an API and everything with an API will have an identity.</p>
<p><strong>With so many “things” potentially accessing APIs, what are some strategies for securing these APIs across such a breadth of consumers?</strong><br />
Identify, authenticate and authorize using standards. API for IoT means managing identity for many devices at Internet scale.</p>
<p><strong>How will API discoverability work with the vast number of things, especially if we see REST as the primary communication style?</strong><br />
I reached out to my colleague <a href="http://www.layer7tech.com/blogs/index.php/author/rmitra/" target="_blank">Ronnie Mitra</a> for this answer. Ronnie pointed out that, in the past, standards like UDDI and WSRR promised to provide service registries but that didn’t really work out. Nowadays, we see lots of independent human-oriented API registries and marketplaces that might have more chance of surviving. There are even some runtime discovery solutions like Google’s discovery interface for APIs and the use of HTTP OPTION to learn about APIs. At the moment, lots of people are trying lots of things, unsure of where it will all end up. It would be interesting to dive deeper into why we need discoverability to power IoT and when that discoverability has to take place.</p>
<p><strong>How can API security get easier when API demand grows exponentially? There&#8217;s a big disconnect.</strong><br />
It doesn&#8217;t get easier. Transport-level security is reasonably well understood but endpoint identity and trust will be challenging.<strong></strong></p>
<p><strong>Where will the intelligence be in IoT? Will there be some form of on-site intelligence, so that core functionality continues even if the connection is lost? Or will all intelligence be cloud-based?</strong><br />
It depends on whether you design for centralized “hub and spoke” or decentralized “domains of concern”. The former is responsible for correlating data and events within the domain whereas the latter is responsible for communicating with other domains (I owe this concept to <a href="http://mholdmann.wordpress.com/2013/05/11/iot-is-better-discribed-as-the-internet-of-nodes/" target="_blank">Michael Holdmann’s blog</a>). “Domains of concern” design communicates with different domains for different purposes –  in an apartment for home automation, in an apartment building for HVAC, in a city block for energy generation/consumption, in a city for utility grid etc. Emergencies or out-of-bound signals are handled like exceptions and are bubbling up through the domains until intercepted. But most things will serve an inherent purpose and that purpose will not be affected by the absence of any connectivity. There will be intelligence within the core of each domain as well as at the edges/intersections with other domains.</p>
<p><strong>What is the best way to overcome fear of exposing data via APIs in an enterprise?</strong><br />
You need to identify a business opportunity. Unless you know what business impact you are trying to archive and how you will measure it, you should not do it.</p>
<p><strong>Does IoT require a strong network or big data or both?</strong><br />
Not a strong network but ubiquitous connectivity. Not big data but <a href="http://www.layer7tech.com/library/solution-briefs/building-data-lenses-using-layer-7/2981" target="_blank">sharing/correlating data horizontally between distinct vertical silos</a>.</p>
<p><strong>What significance (benefits/drawbacks) do the various REST levels have with respect to the Internet of Things (connecting, monetizing etc.)?</strong><br />
I had never heard of levels of REST and had to <a href="http://martinfowler.com/articles/richardsonMaturityModel.html" target="_blank">look it up</a>. Turns out the levels are: resources, verbs and hypermedia. Hypermedia would allow you to embed long-lived clients, which could adapt to changes in API design. But it is actually the data or service behind the API which is monetizable, not the API itself. The API is just the means to an end.<strong></strong></p>
<p><strong>How will IoT evolve? And more importantly how can enterprises solve the security and privacy issues that will arise as IoT evolves?</strong><br />
Culturally, the European regulators will try to put privacy regulations in place sooner rather than later whereas the North Amercian market will initially remain largely unregulated until some abuse prompts the regulator to step in. In Germany, the federal regulator tries to stay ahead of the market and recently published <a href="https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/SmartMeter/PP-SmartMeter.pdf?blob=publicationFile" target="_blank">a security profile for smart meters</a>. Personally I would look at designing M2M and IoT applications assuming that endpoint data is inherently unreliable and that I can not necessarily trust the source. But that is very broad guidance and may or may not be applicable to a specific use case.</p>
<p><strong>As we create API frameworks that interact with sensors and control objects in the IoT what/who are the best organizations to follow to learn about new protocols that we should be preparing to handle, such as CoAP etc?</strong><br />
Here are some suggestions:</p>
<ul>
<li><a href="http://www.ipso-alliance.org/" target="_blank">IPSO Alliance</a></li>
<li><a href="http://www.etsi.org/website/technologies/m2m.aspx" target="_blank">ETSI M2M</a></li>
<li><a href="http://www.itu.int/en/ITU-T/focusgroups/m2m/Pages/default.aspx" target="_blank">ITU M2M</a></li>
<li><a href="http://www.onem2m.org/index.cfm" target="_blank">oneM2M</a></li>
<li><a href="http://m2m.eclipse.org/" target="_blank">Eclipse M2M</a></li>
</ul>
<p><strong>How close are we to having a unified platform for IoT application developers and who is likely to be the winner among the competing platforms?</strong><br />
Chances are there won&#8217;t be a winner at all. You have companies like Axeda, Exosite, Gemalto, Digi, Paraimpu, BugLabs, ThingWorx, SensiNode, deviceWISE and more. You have industry working groups like <a href="http://m2m.eclipse.org/" target="_blank">Eclipse M2M</a> and various research efforts like <a href="http://spitfire-project.eu/" target="_blank">SPITFIRE project</a>, <a href="http://www.fokus.fraunhofer.de/en/fokus/index.html" target="_blank">Fraunhofer FOKUS</a>, <a href="http://www.cc.gatech.edu/~rama/ubiq-presence/dfuse/DFuse.html#architecture" target="_blank">DFuse</a> and many others. The Eclipse M2M framework is probably a good choice to start with.</p>
<p><strong>Even assuming ubiquitous and common networking (e.g. IPv6 on the public Internet) – how will the IoT identify peers, hierarchy and relationships?  </strong><br />
I think there is a huge opportunity for identity companies like CA to figure this out. Take a look at <a href="https://dev.evrythng.com/documentation/start" target="_blank">EVRYTHNG</a> as one of the few startups in that space. Meanwhile, the folks over at <a href="http://paraimpu.crs4.it/" target="_blank">Paraimpu</a> are trying to tackle this challenge by combining aspects of a social network with IoT.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/iot-tech-talk-follow-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hypermedia Workflow Questions</title>
		<link>http://www.layer7tech.com/blogs/index.php/hypermedia-workflow-questions/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/hypermedia-workflow-questions/#comments</comments>
		<pubDate>Fri, 07 Jun 2013 16:45:50 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[Hypermedia]]></category>
		<category><![CDATA[Tech Talks]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4402</guid>
		<description><![CDATA[I fairly often get emails following up on the workshops, articles, webinars and online tutorials I take part in. I can&#8217;t always answer these questions directly and sometimes deal with them in blog posts or online articles. Following my recent API Tech Talk on hypermedia, I got some questions from Abiel Woldu on how to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/library/tech-talks/tech-talk-tuesday-hypermedia-apis/2595" target="_blank"><img class="alignleft size-full wp-image-4407" style="margin: 5px 0px;" title="Hypermedia Workflow" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/06/Tech-Talk-Question-v3.jpg" alt="Hypermedia Workflow" width="300" height="178" /></a>I fairly often get emails following up on the <a href="http://www.layer7tech.com/workshops/" target="_blank">workshops</a>, <a href="http://www.apiacademy.co/read" target="_blank">articles</a>, <a href="http://www.layer7tech.com/library/archived-webinars/be-my-api-how-to-implement-an-api-strategy-everyone-will-love/2909" target="_blank">webinars</a> and <a href="http://www.apiacademy.co/watch/tutorials" target="_blank">online tutorials</a> I take part in. I can&#8217;t always answer these questions directly and sometimes deal with them in blog posts or online articles. Following <a href="http://www.layer7tech.com/library/tech-talks/tech-talk-tuesday-hypermedia-apis/2595" target="_blank">my recent API Tech Talk on hypermedia</a>, I got some questions from Abiel Woldu on how to handle hypermedia support when the same backend operation is called from different workflows. Here&#8217;s part of the Abiel’s email:</p>
<p style="padding-left: 30px;"><em>“Say you have an end point for validating address; call it /validateAddress. Now this endpoint is called from two work flows.</em></p>
<ol style="padding-left: 30px;">
<li><em> When a user updates his account settings (changes a new address)</em></li>
<li><em> When a user tries to buy a product and enters the shipment address</em></li>
</ol>
<p style="padding-left: 30px;"><em>In both cases the /validateAddress should give different set of links and forms as part of the response of validation (next step affordances) because the flow is different. In this case what is the set of the next links and forms returned from the endpoint? Is it the union of the two workflows and the client knows how to get what it needs? Or does the client send information of which flow it is in and the server uses the information to figure out what response to give it?”</em></p>
<p><strong>Decoupling Backend Processes from Public URIs</strong><br />
This kind of question comes up frequently. Essentially, there are a couple assumptions here that are worth exploring. The first is the idea that a backend operation (e.g. “validateAddress()”) is exposed over HTTP as a single endpoint, no matter the calling context. This is not a requirement. In fact, it is advantageous to decouple public addresses (URI) from private operations on the server. HTTP (whether using HTTP-CRUD, Hypermedia-REST or some other model) offers the advantage of using multiple public URIs to point to the same backend operation. For example, it is perfectly correct to publish both /validateExistingAddress and /validateNewAddress URIs each of which points to the same  “validateAddress()” operation on the server.</p>
<p><strong>Not Everything Needs a URI</strong><br />
Just because the backend server has an operation such as “validateAddress()” does not mean there has to be a URI associated with that operation. For example, the “user updates his account settings” workflow need not have a direct URI call to “validateAddress()”. Instead, there could be an account settings resource (/account-settings/) that supports the HTTP.PUT method and accepts a body containing (among other things) a modified address. Executing this client-side operation (PUT /account-settings/) passes data to the server and – along with other operations – the server calls the “validateAddress()” operation itself and reports the results to the client.</p>
<p>The same can be done in the case of “user tries to buy a product and enters the shipment address”. This address validation could be a small part of the server-side operation and processing of an HTTP.POST to a /check-out/ resource.</p>
<p><strong>Mapping Actions to URI &amp; Method</strong><br />
In the HTTP-CRUD model, the focus is on using URIs to identify entities and/or operations and using the protocol methods to perform actions. For example, an /addresses/ resource that supports adding (POST), modifying (PUT), removing (DELETE) and retrieving (GET) addresses associated with a context (logged in user, check-out processing etc.) In this case, POSTing or PUTing a resource body to the server allows the server to call the “validateAddress()” operation (among other things) and report results to the client.</p>
<p><strong>Mapping Actions to Hypermedia Controls</strong><br />
In the hypermedia model, actions are described using a hypermedia control such as a link or form. The URI is not important in this model. Instead the control has an identifier (e.g. “validate“), indicates a protocol action (“POST“) and lists state data to include in the payload.</p>
<p>In <a href="https://github.com/kevinswiber/siren" target="_blank">Siren</a> it might look like this:</p>
<pre style="padding-left: 30px;">"actions": [
 {
     "name": "validate",
     "title": "Validate an Address",
     "method": "POST",
     "href": "...",
     "type": "application/x-www-form-urlencoded",
     "fields": [
           { "name" : "Street", "type" : "text", "value" : "123 Main Street" },
           { "name" : "City",   "type" : "text", "value" : "Byteville"},
           { "name" : "State",  "type" : "text", "value" : "MD" },
           { "name" : "ZIP",    "type" : "text", "value" : "12345"}
     ]
     }
 ]</pre>
<p>Note that I didn&#8217;t bother to enter a value for the href in this example. It could be any valid URL; I just left it out.</p>
<p><strong>Tracking Workflow Progress Within Messages</strong><br />
Here&#8217;s another question from Abiel Woldu&#8217;s email:</p>
<p style="padding-left: 30px;"><em>“The concept of which work flow the client is going through – is it code that should reside in the API code itself or it&#8217;s something that sits outside in some other gateway or something?”</em></p>
<p>When implementing processes over HTTP, it&#8217;s wise not to rely on stateful multi-request chains. In other words, don&#8217;t expect either the client or server to keep track of where some request belongs in a workflow. Instead, include that information in the request and response bodies themselves. This pattern of including all the important context information with each request and response not only assures that the request can be handled independently (e.g. in a load-balanced cluster), it also helps clients and servers to do work within varying time-spans (e.g. a clients can cache the last request to disk and pick things up a day later). In the REST model, Fielding described this as making messages <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_3" target="_blank">“self-descriptive”</a>.</p>
<p>For example, there might be a use case that prompts human users to provide quite a lot of information (across various UI tabs) before finally submitting this completed set of work to the server for final validation and processing. One way to support this over HTTP is to allow clients to store “work-in-progress” (WIP) records on the server. As each “tab” (or other UI affordance) is completed, the client app is free to execute a POST or PUT operation with the payload to a URI supplied by the server. The stored data would include a value that indicates how far along in the workflow the user has progressed. This same client app could also recall stored WIP records, inspect the workflow indicator and prompt the user to pick up where she left off. Once all the required elements were supplied, the work could be forwarded for final validation and processing.</p>
<p><strong>Dynamic Workflow via Hypermedia</strong><br />
Finally, in some cases, the series of steps in a workflow might vary greatly at runtime. For example, a service might support a multi-tenant model where each instance of “supply all the details for this work” has different steps or the same steps appear in differing order. The “next step” need not be memorized by the client code. Instead, hypermedia servers can inspect the current server-side configuration, check the current progress by the user and then supply the correct “next step” for this particular instance.</p>
<p>In this way, the client app can support a wide range of workflow details without needing custom code ahead of time (or even downloaded code-on-demand). Instead, the client app only needs to be able to recognize the “next step” link and navigate to that resource.</p>
<p><strong>In Summary</strong><br />
In general, when using HTTP:</p>
<ol>
<li>There is no rule that you <em>must</em> expose internal methods as public URIs</li>
<li>You <em>may</em> use more than one URI for the same backend operation</li>
<li>In the HTTP-CRUD model, you usually map operations by linking URIs and methods</li>
<li>In the hypermedia model, you usually map operations by linking controls and state variables</li>
<li>It is best to use “self-descriptive” messages to track workflow progress statelessly</li>
<li>The hypermedia model supports dynamic workflow progress using the “next step” link pattern</li>
</ol>
<p>Thanks to Abiel for his questions and his generous permission for me to use his email and name in this blog post. If you&#8217;ve got a question that I haven’t answered online before, feel free to ping me via twitter (<a href="http://twitter.com/mamund" target="_blank">@mamund</a>) and fire away.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/hypermedia-workflow-questions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It’s Official… Layer 7 Joins CA Technologies</title>
		<link>http://www.layer7tech.com/blogs/index.php/its-official-layer-7-joins-ca-technologies/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/its-official-layer-7-joins-ca-technologies/#comments</comments>
		<pubDate>Thu, 06 Jun 2013 20:30:20 +0000</pubDate>
		<dc:creator>Dimitri Sirota</dc:creator>
				<category><![CDATA[API Management]]></category>
		<category><![CDATA[API Security]]></category>
		<category><![CDATA[Company Announcements]]></category>
		<category><![CDATA[Identity]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4385</guid>
		<description><![CDATA[This week, CA Technologies officially closed its acquisition of Layer 7. As a Layer 7 co-founder, this represents the culmination of a decade&#8217;s worth of hard work. Equally important, it represents the opening of a new chapter for the company and an opportunity to amplify the vision we have been promoting. Since our founding, we [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ca.com/us/content/Integration/Layer-7-Technologies.aspx" target="_blank"><img class="alignleft size-full wp-image-4387" style="margin: 10px;" title="Layer 7 and CA" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/06/Layer-7-CA-v2.jpg" alt="Layer 7 and CA" width="300" height="149" /></a>This week, <a href="http://www.ca.com/us/news/Press-Releases/na/2013/CA-Technologies-Completes-Layer-7-Acquisition.aspx" target="_blank">CA Technologies officially closed its acquisition of Layer 7</a>. As a Layer 7 co-founder, this represents the culmination of a decade&#8217;s worth of hard work. Equally important, it represents the opening of a new chapter for the company and an opportunity to amplify the vision we have been promoting.</p>
<p>Since our founding, we have preached the vision that enterprises can open their data and application assets programmatically in a secure way. When we started off, the primary driver for opening up was tighter <a href="http://www.layer7tech.com/solutions/partner-access-solutions-overview" target="_blank">business integration with partners</a>. Today however, the demand for opening up data and application assets has exploded alongside the growth of <a href="http://www.layer7tech.com/solutions/mobile-access-solutions-overview" target="_blank">mobile</a>, <a href="http://www.layer7tech.com/solutions/cloud-solutions-overview" target="_blank">cloud</a>, <a href="http://www.layer7tech.com/solutions/big-data-analytics" target="_blank">Big Data</a> and the <a href="http://www.layer7tech.com/library/tech-talks/api-tech-talk-the-internet-of-things/3068" target="_blank">Internet of Things (IoT)</a>.</p>
<p>The idea of organizations as walled-off castles is gone. Mobile is forcing organizations to deliver new business apps to customers and employees beyond the enterprise perimeter. Cloud is redefining how applications are consumed and delivered across a hybridized, extended organization. IoT will upend our notions of outside connectivity and data processing. APIs play a central role in making all this happen. Layer 7 gives customers the confidence to open up via APIs, without compromising security or operational integrity.</p>
<p>For us at Layer 7, security has always been a paramount consideration because our customers are enterprises and enterprises care about security. The CA Technologies acquisition reflects a common point of view on how to deliver new business value in mobility, cloud etc. while protecting the data and applications that are the lifeblood of a today’s enterprise.</p>
<p>CA and Layer 7 both appreciate that the old enterprise security perimeter is disappearing and that the only way to effectively enable online business while protecting information assets is to make identity the new perimeter. We need to focus on managing who gets access to what and what they can do with data once they have that access. Put another way, we need to focus on the identity, data and access that drives modern initiatives around Web, mobile, cloud, social and IoT. Together CA Technologies and Layer 7 Technologies offer enterprises the first truly multi-channel approach to enabling the business while securing its information assets.</p>
<p>Looking into the future, one clearly sees the scope for APIs will increase. IoT will make every formerly detached device connected – all through APIs. Where networking used to be about discrete routers and switches, it is now being transformed, via SDN, into something that is programmable and agile – again, this will be brought to you by APIs. And as for the server and storage infrastructure that underpins the data that drives the Web and mobile, Amazon Web Services has given us a glimpse of the future. As the “Web Services” part of that name suggests, APIs will play a significant role in provisioning in management of the cloud.</p>
<p>As we join CA Technologies, we now have the necessary reach and breadth to make Layer 7 the unassailable leader in the API security and management space. For customers, this means more of what they liked plus the ability to accelerate delivery of our original vision. We&#8217;re here to help organizations open up via APIs. And we&#8217;re open for business.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/its-official-layer-7-joins-ca-technologies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Banking on APIs</title>
		<link>http://www.layer7tech.com/blogs/index.php/banking-on-apis/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/banking-on-apis/#comments</comments>
		<pubDate>Fri, 31 May 2013 21:00:25 +0000</pubDate>
		<dc:creator>Ronnie Mitra</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4365</guid>
		<description><![CDATA[Something has changed in the world of banking technology. Over the last few months, the architects who shape IT strategy for banks have started talking about API programs with an enthusiasm and energy that was barely at surface level in 2012. I can&#8217;t put my finger on exactly what has changed but IT leaders in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.apiacademy.co/" target="_blank"><img class="alignleft size-full wp-image-4370" style="margin: 10px;" title="Banking APIs" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/Banking-APIs-v1.jpg" alt="Banking APIs" width="300" height="276" /></a>Something has changed in the world of banking technology. Over the last few months, the architects who shape IT strategy for banks have started talking about API programs with an enthusiasm and energy that was barely at surface level in 2012. I can&#8217;t put my finger on exactly what has changed but IT leaders in the financial services world are moving towards implementing API strategies as a legitimate method for supporting a wide array of business drivers.</p>
<p>We know that connectivity and message-based integration are not new concepts for the financial industry. Enterprise architects in the banking world are masters in the art of connecting old systems with new facades and exposing backend resources through multiple channels. But up until now, a conversation with these professionals would be dominated by concerns rooted in the Services Oriented Architecture world: &#8220;How do we prevent service proliferation?&#8221;, &#8220;How do we secure SOAP conversations?&#8221;  In fact, it wasn&#8217;t too long ago that the mere mention of an API as a strategic initiative would leave these enterprise architects scratching their heads.</p>
<p>Fast forward to today and many banking technologists are explicitly asking for <a href="http://www.layer7tech.com/solutions/api-management-solutions-for-mobile-and-web" target="_blank">API Management solutions</a>.  They know the terminology of the space, they know what they want to achieve and they know the pitfalls they wish to avoid. In addition, I&#8217;ve been amazed at the depth of knowledge that has emerged among these teams, as enterprise developers have invested their own time to learn from relevant <a href="http://www.apiacademy.co/watch/tutorials" target="_blank">tutorials</a> , <a href="http://www.apiacademy.co/read" target="_blank">articles</a> and – of course – blogs posts. The caricature of the enterprise developer as a SOA dinosaur struggling to understand the &#8220;new stuff&#8221; is fast becoming a myth.</p>
<p>To be fair, there is still great hesitation within the industry when it comes to opening up data and losing control of the user experience but that isn&#8217;t stopping banks from applying good API design practice internally. As we&#8217;ve said <a href="http://www.layer7tech.com/blogs/index.php/behind-closed-doors-the-world-of-private-apis/" target="_blank">before</a>, APIs are not simply about reaching  anonymous third-party developers. Indeed, organizations can gain great benefits by applying API Management to the interactions that take place in private for their own apps and partners.  But I&#8217;ve been astounded by the handful of architects in the banking world I&#8217;ve met who are actively experimenting with public API releases.  It seems that the fear of losing control over data, services and products is beginning to lose out to the perceived value of growing the business through a new channel.</p>
<p>Banks provide a great indicator for the direction of enterprise technology and it certainly seems that the &#8220;API thing&#8221; has legs within this space. If you are in the enterprise world, make sure you have considered how launching an API program might help your business – because it&#8217;s increasingly likely your competitors are already doing so.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/banking-on-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Nuts &amp; Bolts of the Internet of Things</title>
		<link>http://www.layer7tech.com/blogs/index.php/the-nuts-bolts-of-iot/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/the-nuts-bolts-of-iot/#comments</comments>
		<pubDate>Mon, 27 May 2013 16:15:09 +0000</pubDate>
		<dc:creator>Holger Reinhardt</dc:creator>
				<category><![CDATA[IoT]]></category>
		<category><![CDATA[M2M]]></category>
		<category><![CDATA[Tech Talks]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4343</guid>
		<description><![CDATA[A few days ago, I talked with Brian Proffitt of ReadWrite about the Internet of Things (IoT) and I’d like to take this opportunity to share some of his questions. One of Brian’s first questions was about the difference between M2M and IoT. The best answer I could give him was actually one I had [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/library/solution-briefs/building-data-lenses-using-layer-7/2981" target="_blank"><img class="alignleft size-full wp-image-4346" style="margin: 0px 10px;" title="The Nuts and Bolts of IoT" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/nuts-and-bolts-v3.jpg" alt="The Nuts and Bolts of IoT" width="300" height="247" /></a>A few days ago, I talked with <a href="http://readwrite.com/2013/04/24/api-gold-rush" target="_blank">Brian Proffitt of ReadWrite</a> about the <a href="http://www.layer7tech.com/blogs/index.php/category/iot/" target="_blank">Internet of Things (IoT)</a> and I’d like to take this opportunity to share some of his questions.</p>
<p>One of Brian’s first questions was about the difference between M2M and IoT. The best answer I could give him was actually one I had found through an M2M group on LinkedIn: “I see M2M platforms as mainly enabling vertical integration, as they have historically, of a single capability; where I see IoT as more about horizontal integration of multiple capabilities and resources into a larger system. M2M is about communication, IoT is about integration and interoperability.”</p>
<p>So, whereas M2M feeds data into existing vertical silos, IoT is layered on top horizontally, correlating and integrating data from different silos. A good illustration of this vertical–versus-horizontal distinction was provided in <a href="http://www.more-with-mobile.com/2013/04/iot-business-models.html" target="_blank">a recent More with Mobile article</a>. The realization that the commercial potential of IoT first and foremost requires a new model of data sharing inspired us to create the <a href="http://www.layer7tech.com/library/solution-briefs/building-data-lenses-using-layer-7/2981" target="_blank">Layer 7 Data Lens Solution</a>.</p>
<p>Another question that Brian posed was about the protocols and standards underpinning the M2M/IoT ecosystem. Here is my short list of key protocols (in no particular order):</p>
<ul>
<li><a href="http://mqtt.org/" target="_blank">IBM MQTT</a></li>
<li><a href="http://blogs.rti.com/2013/05/08/mqtt-dds-m2m-protocol-internet-of-things/" target="_blank">OMG&#8217;s DDS based on AMQP</a></li>
<li>RESTful HTTP</li>
<li><a href="http://xmpp.org/" target="_blank">XMPP</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-core-coap-16" target="_blank">CoAP</a></li>
<li><a href="http://www.cwc.oulu.fi/nanoip/" target="_blank">NanoIP</a></li>
<li><a href="http://en.wikipedia.org/wiki/Simple_Sensor_Interface_protocol" target="_blank">SSI</a></li>
</ul>
<p>I’d certainly be interested to hear if you had any additions to the list. You’ll find background information about IoT protocols <a href="http://www.telit.com/en/discover/market-intelligence/telit-m2m-column/archive.php?p_id=359&amp;id_to_show=14" target="_blank">on Telit’s M2M blog</a> and <a href="http://mholdmann.wordpress.com/2013/05/17/the-choice-of-protocol-for-iot-and-m2m-will-dictate-the-emergence-and-success-of-the-market/" target="_blank">Michael Holdman&#8217;s blog</a>. Also, Michael Koster published <a href="http://iot-datamodels.blogspot.de/2013/05/event-models-for-restful-apis.html" target="_blank">a very interesting blog post</a> about adding event-driven processing to REST APIs, trying to bridge the necessity of supporting event-driven patterns in IoT within a RESTful API approach.</p>
<p>I’ll be discussing IoT in more detail myself when I take part in <a href="http://www.layer7tech.com/blogs/index.php/join-our-live-internet-of-things-iot-discussion-win-a-t-shirt/" target="_blank">Layer 7’s latest API Tech Talk</a>, on Wednesday May 29 at 12pm EDT/9am PDT. If I answer your IoT-related question live during the Tech Talk, Layer 7 will send you a free T-shirt. <a href="http://www.layer7tech.com/live/" target="_blank">See you on Wednesday!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/the-nuts-bolts-of-iot/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Join Our Live Internet of Things (IoT) Discussion &#8211; Win a T-Shirt</title>
		<link>http://www.layer7tech.com/blogs/index.php/join-our-live-internet-of-things-iot-discussion-win-a-t-shirt/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/join-our-live-internet-of-things-iot-discussion-win-a-t-shirt/#comments</comments>
		<pubDate>Thu, 23 May 2013 22:30:08 +0000</pubDate>
		<dc:creator>Steven Tait</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[M2M]]></category>
		<category><![CDATA[Tech Talks]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4307</guid>
		<description><![CDATA[We&#8217;ll be discussing the Internet of Things (IoT) during our latest API Tech Talk next Wednesday, May 29 at 9am PDT. Our special guest – Layer 7 Product Architect and IoT expert Holger Reinhardt – will be taking your questions live throughout the stream. And we&#8217;ll be sending every single person who gets an IoT-related [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/live/" target="_blank"><img class="alignleft size-full wp-image-4319" style="margin: 0px 10px;" title="IoT-Shirt" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/IoT-shirt-v3.jpg" alt="IoT-Shirt" width="300" height="273" /></a>We&#8217;ll be discussing the Internet of Things (IoT) during our latest <a href="http://www.layer7tech.com/live/" target="_blank">API Tech Talk</a> next Wednesday, May 29 at 9am PDT. Our special guest – Layer 7 Product Architect and IoT expert Holger Reinhardt – will be taking your questions live throughout the stream. And we&#8217;ll be sending every single person who gets an IoT-related question answered by Holger one of our nifty new IoT-shirts, for free! You can ask questions through <a href="http://www.layer7tech.com/live/" target="_blank">the Livestream chat</a>, using the Twitter hashtag <a href="https://twitter.com/intent/tweet?text=Join%20me%20at%20upcoming%20%40Layer7%20tech%20talk%20all%20about%20the%20Internet%20of%20Things%20May%2029%209am%20PDT%20http%3A%2F%2Fwww.layer7.com%2Flive%20%23layer7live&amp;source=webclient" target="_blank">#layer7live</a> or by emailing <a title="Intel Buys Mashery! Is it Because the Cloud Will Have an API Inside?" href="mailto:techtalk@layer7.com" target="_blank">techtalk@layer7.com</a>.</p>
<p><a href="http://www.layer7tech.com/blogs/index.php/managing-the-internet-of-things/" target="_blank">The Internet of Things</a> is a simple concept: objects being connected to the Internet. What&#8217;s not so simple is managing the enormous, almost sublime amount of data these connected &#8220;things&#8221; (vehicles, appliances&#8230;) generate. There&#8217;s also the question of how you give people within your organization secure-but-seamless access to specific subsets of data they can actually make use of.  Well, our man Holger knows how it&#8217;s done, so start getting your questions together and <a href="http://www.layer7tech.com/live/" target="_blank">join our live Q&amp;A</a> on May 29.</p>
<p><a href="http://s1226.t.en25.com/e/er?s=1226&amp;lid=1020&amp;elq=5c1dd1425b524ecabf936674574e46c3" target="_blank"><strong>Click here</strong></a> to get the full event details and a reminder in your calendar. On the day of the event, join us at:</p>
<ul>
<li>  <a href="http://www.layer7tech.com/live/" target="_blank"><strong>layer7.com/live</strong></a></li>
</ul>
<p>And don&#8217;t forget, you can ask questions throughout the stream by <a href="http://www.layer7tech.com/live/" target="_blank">chatting</a> or <a href="https://twitter.com/intent/tweet?text=Join%20me%20at%20upcoming%20%40Layer7%20tech%20talk%20all%20about%20the%20Internet%20of%20Things%20May%2029%209am%20PDT%20http%3A%2F%2Fwww.layer7.com%2Flive%20%23layer7live&amp;source=webclient" target="_blank">tweeting</a>. Alternatively, you can <a href="mailto:techtalk@layer7.com" target="_blank">email your questions</a> in advance and Holger will give you an in-depth answer on the day. IoT is a pretty hot topic right now, so this is bound to be a lively discussion. See you next Wednesday!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/join-our-live-internet-of-things-iot-discussion-win-a-t-shirt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are APIs Making the Biz Dev Role Obsolete?</title>
		<link>http://www.layer7tech.com/blogs/index.php/are-apis-making-the-biz-dev-role-obsolete/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/are-apis-making-the-biz-dev-role-obsolete/#comments</comments>
		<pubDate>Thu, 16 May 2013 21:00:31 +0000</pubDate>
		<dc:creator>Alex Gaber</dc:creator>
				<category><![CDATA[API Management]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Developers & Development]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4298</guid>
		<description><![CDATA[The role of the business developer has traditionally been to initiate partnerships and follow through by ensuring some sort of integration is implemented.  As enterprises become more software-driven, integration itself increasingly comes through APIs.  This may mean that the implementation of API-driven “partner portals” is replacing traditional business development practices.  A recent article from Wired [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/products/layer-7-api-portal" target="_blank"><img class="alignleft size-full wp-image-4300" style="margin: 10px;" title="Business Development Android" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/Android-Logo-Wearing-a-Business-Tie-v2.jpg" alt="Business Development Android" width="254" height="300" /></a>The role of the business developer has traditionally been to initiate partnerships and follow through by ensuring some sort of integration is implemented.  As enterprises become more software-driven, integration itself increasingly comes through APIs.  This may mean that the implementation of API-driven “<a href="http://www.layer7tech.com/products/layer-7-api-portal" target="_blank">partner portals</a>” is replacing traditional business development practices.  <a href="http://www.wired.com/gadgetlab/2012/12/ff-robots-will-take-our-jobs/all/" target="_blank">A recent article from Wired </a>claimed that 70% of all jobs will be replaced by robots by the end of this century. Are APIs and partner portals the robots that will replace manual business development processes?</p>
<p>Here’s an example of how a business partnership might come about these days. Interaction with an online API partner portal will act as the initial “conversation” that leads to the partnership. If you want to integrate with Salesforce.com, you go to the Salesforce partner portal, figure out the relevant SDK/API, build an app and then submit it to <a href="https://appexchange.salesforce.com/" target="_blank">the Salesforce AppExchange</a>.  You don&#8217;t ever need to actually talk with anyone at Salesforce to become a business partner with the company.</p>
<p>Another example is the way many companies now enable access to their Web sites via Facebook Connect, Google+ Login or Twitter Login. This represents the first step towards establishing a business partnership with Facebook, Google or Twitter. It’s not new in the Web world and <a href="http://apievangelist.com/2010/10/07/biz-dev-2-0/" target="_blank">has been discussed for years</a>. What makes it relevant to this discussion is the way it’s being applied to out-dated business processes and practices.</p>
<p>Great platform companies have realized this, “robotized” their business development processes and rationalized their business development teams. As robots are to manufacturing, APIs are to business development. Better technology means that we can focus our human resources on more valuable activities, since handshakes are now being made over <a href="http://www.layer7tech.com/products/oauth-toolkit" target="_blank">OAuth</a> instead of costly dinners and drinks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/are-apis-making-the-biz-dev-role-obsolete/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Government Data “Easy to Find, Accessible &amp; Usable&#8221;</title>
		<link>http://www.layer7tech.com/blogs/index.php/making-government-data-easy-to-find-accessible-usable/</link>
		<comments>http://www.layer7tech.com/blogs/index.php/making-government-data-easy-to-find-accessible-usable/#comments</comments>
		<pubDate>Fri, 10 May 2013 21:00:16 +0000</pubDate>
		<dc:creator>Mike Amundsen</dc:creator>
				<category><![CDATA[API Academy]]></category>
		<category><![CDATA[API Design & Optimization]]></category>
		<category><![CDATA[API Management]]></category>
		<category><![CDATA[Government]]></category>

		<guid isPermaLink="false">http://www.layer7tech.com/blogs/?p=4274</guid>
		<description><![CDATA[On May 9, 2013 the White House released an executive order with the title Making Open &#38; Machine Readable the New Default for Government Information. My favorite line in the entire document is: “Government information shall be managed as an asset throughout its life cycle to promote interoperability and openness, and, wherever possible and legally [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/whitehouse.gif"><img class="alignleft size-medium wp-image-4295" style="margin-left: 1px; margin-right: 6px;" title="whitehouse" src="http://www.layer7tech.com/blogs/wp-content/uploads/2013/05/whitehouse-300x200.gif" alt="" width="300" height="200" /></a>On May 9, 2013 the White House released an executive order with the title <a href="http://www.whitehouse.gov/the-press-office/2013/05/09/executive-order-making-open-and-machine-readable-new-default-government-" target="_blank">Making Open &amp; Machine Readable the New Default for Government Information</a>. My favorite line in the entire document is:</p>
<p>“Government information shall be managed as an asset throughout its life cycle to promote interoperability and openness, and, wherever possible and legally permissible, to ensure that data are released to the public in ways that make the data <strong>easy to find, accessible, and usable</strong>” (emphasis mine).</p>
<p><strong>No Dumping</strong><br />
The usual approach to this type of work is to simply publish raw data in a directory or repository and then create some fencing around the data that helps track usage and distribution. Essentially, making government data “open” becomes a <a href="http://www.google.com/url?q=https%3A%2F%2Fdevelopers.google.com%2Ffreebase%2Fdata" target="_blank">data dumping </a>operation. This practice fails on all of President Obama’s three key points. First, data dumps make finding valuable information not at all easy. Second, even though the content might appear in a standard format like XML, CSV or JSON, it is hardly accessible (except for to geeks, who love this kind of stuff). And finally, raw data is hardly ever usable. Instead, it’s a mind-numbing pile of characters and quote marks that must be massaged and re-interpreted before it comes close to usability.</p>
<p>So, while this new directive offers an opportunity to make available a vast amount of the data the government collects on our behalf, the devil is in the details. And the details are in the interface – the API. As with poorly-designed kitchen appliances and cryptic entertainment center remote controls, when it takes extensive documentation to explain how to use something, the design has failed. There&#8217;s a simple principle here. Poor API design results in unusable data.</p>
<p><strong>Affordable Data</strong><br />
It doesn&#8217;t have to be this way, of course. Government departments have the opportunity to <a href="http://www.drdobbs.com/architecture-and-design/making-apis-attractive-to-developers/240153548" target="_blank">implement designs</a> that meet the goals set forth in the executive order. They can make it easy for people to find, access and use the data. They can publish not just data but APIs that <a href="http://www.layer7tech.com/blogs/index.php/if-they-have-to-ask-you-didnt-afford-it/" target="_blank">afford</a> searching, filtering and exploring the data in a meaningful and helpful manner; APIs that empower both users and developers to successfully interact with the data, without resorting to <a href="https://explore.data.gov/catalog/raw" target="_blank">a dashboard featuring dozens of options</a> or <a href="https://explore.data.gov/profile/Data-gov-Program-Management-Office/e8ug-wzay" target="_blank">mind-numbing explanations</a>.</p>
<p>In the (likely) event that the initial open data release consists of mere data, companies and individuals would be well advised to resist the temptation to build a multitude of “one-off” applications, each of which solves a single problem or answers a narrow set of questions for some subset of the data. Instead, work should be put into converting the raw data into usable API formats such as Atom, OData, HAL, Collection+JSON and HTML (to name just a few). APIs should be designed with the same care that would be given to any <a href="http://www.layer7tech.com/blogs/index.php/api-design-tutorial-the-interaction-model/" target="_blank">interactive experience</a>.  Investment in <a href="http://www.layer7tech.com/" target="_blank">tools and technologies</a> that can properly represent the data in multiple formats while supporting various use cases and access requirements will yield great results.</p>
<p><strong>Open Data APIs</strong><br />
In the end, organizations that know the importance of a good interface, the power of choice and the freedom of flexible representations will be able to convert raw data into valuable information, which can be consumed by a wide range of users, platforms and devices. These considerations are essential to building and supporting open data APIs.</p>
<p>Because – ultimately – data isn’t open, unless it’s “easy to find, accessible, and usable”.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.layer7tech.com/blogs/index.php/making-government-data-easy-to-find-accessible-usable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
