Using APIs

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.
A Case Study – SOA Software (My Keynote)
• SOA Software built its first product in 2002
• Thriving software product business
– Direct Sales to Enterprise
– On premise

• Profitable

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 2
What kept us awake
•
•
•
•

Should we build an API?
What API should we build?
How do we manage this new channel?
How do we get people to use the API?

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 3
Existing Technology Investment
• Java stack, slightly left of center
–
–
–
–

OSGi
Spring
MVC
SOAP API set

• Why?
– Robust
– Fits in with Enterprise deployment and operational models, Java is
common
– Can run on an App server as well as plain OS
– Stable resource pool

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 4
Architecture - API First
•
•
•
•
•

An API-first design
Designed with the intent of being open, public
REST-based
Supporting both XML and JSON (on Accept header)
Multi-channel

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 5
Architecture - Model
• XML Model, based on formalized schema
• Generated Java Model (JAXB) used by JAX-RS for both XML and
JSON
– Keeps things consistent and allows us to formalize change
management for a published API

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 6
Architecture – Java Integration Layer
• JAX-RS – XML and JSON bindings
• Spring
– Wiring
– Security Policies
– Publication (!)

• OSGI
–
–
–
–
–

December 19, 2013

Container
Platform independence
Modularity
Extensibility
Packaging, Upgrades, etc

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 7
Architecture – UI Framework
• Customizable, extensible server-side theme and layout
management for multi-tenancy
– Themes
– Views
– Widgets

• Backbone.js model
• Handlebars.js view
• JQuery *

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 8
Architecture – UI Framework
{"tenantId": "atmosphere",
"theme": "default",
"widgetMetadata": {
"widget.api.addmodifygroup": {
"widget": "widget.api.addmodifygroup",
"styleResources": [ ],
"scriptResources": ["widgets/ApiAddModifyGroupWidget/ApiAddModifyGroupWidget.js"]
},
"widget.signup": {
"widget": "widget.signup",
"styleResources": ["widgets/UserWidgets/Signup/signup.css"],
"scriptResources": ["widgets/UserWidgets/Signup/SignupWidget.js"]
}
},
"layoutStructure": [
{
"objType": "user",
""layout": [
{
"widgetInstance": "Main",
"widget": "widget.horiz.tiling",
"priority": "100"
},
{
"widgetInstance": "Header",
"widget": "widget.header",
"parentWidgetInstance": "Main",
"parent": "widget.horiz.tiling",
"priority": "1000"
}
…..
December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 9
Platform Architecture

12/19/2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 10
A digression - Build & Test
• Agile Development Process
• Continuous Build - Jenkins
• Automated Deploy and Test to the cloud
– ServiceMesh Agility provides the management infrastructure
– Jenkins invokes ServiceMesh Agility APIs to spin up VM images in
EC2
– Entire installation, configuration, integration process is scripted
– Test harnesses are executed
– Environment is torn down
– Test results posted back via Jenkins as build state
– Approx every hour

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 11
A digression - Agile Ops
• Multiple datacenters, SaaS and Managed Service, to meet
different customer requirements
• EC2 and Terremark
• Single point of management via ServiceMesh Agility
• Deployment is done from a tag in Jenkins and automated
• Once parallel environment is installed, it is switched over
manually
• Old environment is torn down after a day

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 12
What kept us awake
• Should we build an API? – yes, we could create a new UI and an
entire channel strategy without throwing away our existing
technology
• What API should we build? – a REST/JSON API to fully support
our UI, mobile devices, etc.
• How do we manage/secure/monitor this new channel?
• How do we get people to use the API? How do we promote it?

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 13
API Management
API Management protects your
APIs and helps ensure their
performance

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 14
API Management - Capabilities

Security
Monitoring
Provisioning
QoS Management
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 15
What kept us awake
• Should we build an API? – yes, we could create a new UI and an
entire channel strategy without throwing away our existing
technology
• What API should we build? – a REST/JSON API to fully support
our UI, mobile devices, etc.
• How do we manage/secure/monitor this new channel? – use the
API Management capabilities within our own product
• How do we get people to use the API? How do we promote it?

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 16
Community Capabilities

Social Interaction
Forums
Support
Collaboration
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 17
What kept us awake
• Should we build an API? – yes, we could create a new UI and an
entire channel strategy without throwing away our existing
technology
• What API should we build? – a REST/JSON API to fully support
our UI, mobile devices, etc.
• How do we manage/secure/monitor this new channel? – use the
API Management capabilities within our own product
• How do we get people to use the API? How do we promote it? –
use the Community Management capabilities within our own
product

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 18
Thanks
•
•
•
•
•

Alistair Farquharson, CTO, SOA Software
ajf@soa.com
@afarqu
@atmos_phe_re
@SOASoftwareInc

December 19, 2013

Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.

Slide 19

Using APIs

  • 1.
    Using APIs Copyright ©2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.
  • 2.
    A Case Study– SOA Software (My Keynote) • SOA Software built its first product in 2002 • Thriving software product business – Direct Sales to Enterprise – On premise • Profitable December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 2
  • 3.
    What kept usawake • • • • Should we build an API? What API should we build? How do we manage this new channel? How do we get people to use the API? December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 3
  • 4.
    Existing Technology Investment •Java stack, slightly left of center – – – – OSGi Spring MVC SOAP API set • Why? – Robust – Fits in with Enterprise deployment and operational models, Java is common – Can run on an App server as well as plain OS – Stable resource pool December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 4
  • 5.
    Architecture - APIFirst • • • • • An API-first design Designed with the intent of being open, public REST-based Supporting both XML and JSON (on Accept header) Multi-channel December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 5
  • 6.
    Architecture - Model •XML Model, based on formalized schema • Generated Java Model (JAXB) used by JAX-RS for both XML and JSON – Keeps things consistent and allows us to formalize change management for a published API December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 6
  • 7.
    Architecture – JavaIntegration Layer • JAX-RS – XML and JSON bindings • Spring – Wiring – Security Policies – Publication (!) • OSGI – – – – – December 19, 2013 Container Platform independence Modularity Extensibility Packaging, Upgrades, etc Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 7
  • 8.
    Architecture – UIFramework • Customizable, extensible server-side theme and layout management for multi-tenancy – Themes – Views – Widgets • Backbone.js model • Handlebars.js view • JQuery * December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 8
  • 9.
    Architecture – UIFramework {"tenantId": "atmosphere", "theme": "default", "widgetMetadata": { "widget.api.addmodifygroup": { "widget": "widget.api.addmodifygroup", "styleResources": [ ], "scriptResources": ["widgets/ApiAddModifyGroupWidget/ApiAddModifyGroupWidget.js"] }, "widget.signup": { "widget": "widget.signup", "styleResources": ["widgets/UserWidgets/Signup/signup.css"], "scriptResources": ["widgets/UserWidgets/Signup/SignupWidget.js"] } }, "layoutStructure": [ { "objType": "user", ""layout": [ { "widgetInstance": "Main", "widget": "widget.horiz.tiling", "priority": "100" }, { "widgetInstance": "Header", "widget": "widget.header", "parentWidgetInstance": "Main", "parent": "widget.horiz.tiling", "priority": "1000" } ….. December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 9
  • 10.
    Platform Architecture 12/19/2013 Copyright ©2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 10
  • 11.
    A digression -Build & Test • Agile Development Process • Continuous Build - Jenkins • Automated Deploy and Test to the cloud – ServiceMesh Agility provides the management infrastructure – Jenkins invokes ServiceMesh Agility APIs to spin up VM images in EC2 – Entire installation, configuration, integration process is scripted – Test harnesses are executed – Environment is torn down – Test results posted back via Jenkins as build state – Approx every hour December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 11
  • 12.
    A digression -Agile Ops • Multiple datacenters, SaaS and Managed Service, to meet different customer requirements • EC2 and Terremark • Single point of management via ServiceMesh Agility • Deployment is done from a tag in Jenkins and automated • Once parallel environment is installed, it is switched over manually • Old environment is torn down after a day December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 12
  • 13.
    What kept usawake • Should we build an API? – yes, we could create a new UI and an entire channel strategy without throwing away our existing technology • What API should we build? – a REST/JSON API to fully support our UI, mobile devices, etc. • How do we manage/secure/monitor this new channel? • How do we get people to use the API? How do we promote it? December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 13
  • 14.
    API Management API Managementprotects your APIs and helps ensure their performance Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 14
  • 15.
    API Management -Capabilities Security Monitoring Provisioning QoS Management Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 15
  • 16.
    What kept usawake • Should we build an API? – yes, we could create a new UI and an entire channel strategy without throwing away our existing technology • What API should we build? – a REST/JSON API to fully support our UI, mobile devices, etc. • How do we manage/secure/monitor this new channel? – use the API Management capabilities within our own product • How do we get people to use the API? How do we promote it? December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 16
  • 17.
    Community Capabilities Social Interaction Forums Support Collaboration Copyright© 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 17
  • 18.
    What kept usawake • Should we build an API? – yes, we could create a new UI and an entire channel strategy without throwing away our existing technology • What API should we build? – a REST/JSON API to fully support our UI, mobile devices, etc. • How do we manage/secure/monitor this new channel? – use the API Management capabilities within our own product • How do we get people to use the API? How do we promote it? – use the Community Management capabilities within our own product December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 18
  • 19.
    Thanks • • • • • Alistair Farquharson, CTO,SOA Software ajf@soa.com @afarqu @atmos_phe_re @SOASoftwareInc December 19, 2013 Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 19