Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer.
Using APIs
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 3
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?
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 5
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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 7
Architecture – Java Integration Layer
• JAX-RS – XML and JSON bindings
• Spring
– Wiring
– Security Policies
– Publication (!)
• OSGI
– Container
– Platform independence
– Modularity
– Extensibility
– Packaging, Upgrades, etc
April 23, 2015
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
• Customizable, extensible server-side theme and layout
management for multi-tenancy
– Themes
– Views
– Widgets
• Backbone.js model
• Handlebars.js view
• JQuery *
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 9
Architecture – UI Framework
April 23, 2015
{"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"
}
…..
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 104/23/2015
Platform Architecture
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 13
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?
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 14
API Management protects your
APIs and helps ensure their
performance
API Management
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 16
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?
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 18
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
April 23, 2015
Copyright © 2001-2012 SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 19
Thanks
• Alistair Farquharson, CTO, SOA Software
• ajf@soa.com
• @afarqu
• @atmos_phe_re
• @SOASoftwareInc
April 23, 2015

Using APIs

  • 1.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Using APIs
  • 2.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 April 23, 2015
  • 3.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 3 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? April 23, 2015
  • 4.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 April 23, 2015
  • 5.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 5 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 April 23, 2015
  • 6.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 April 23, 2015
  • 7.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 7 Architecture – Java Integration Layer • JAX-RS – XML and JSON bindings • Spring – Wiring – Security Policies – Publication (!) • OSGI – Container – Platform independence – Modularity – Extensibility – Packaging, Upgrades, etc April 23, 2015
  • 8.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 8 Architecture – UI Framework • Customizable, extensible server-side theme and layout management for multi-tenancy – Themes – Views – Widgets • Backbone.js model • Handlebars.js view • JQuery * April 23, 2015
  • 9.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 9 Architecture – UI Framework April 23, 2015 {"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" } …..
  • 10.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 104/23/2015 Platform Architecture
  • 11.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 April 23, 2015
  • 12.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 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 April 23, 2015
  • 13.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 13 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? April 23, 2015
  • 14.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 14 API Management protects your APIs and helps ensure their performance API Management
  • 15.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 15 API Management - Capabilities Security Monitoring Provisioning QoS Management
  • 16.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 16 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? April 23, 2015
  • 17.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 17 Community Capabilities Social Interaction Forums Support Collaboration
  • 18.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 18 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 April 23, 2015
  • 19.
    Copyright © 2001-2012SOA Software, Inc. All Rights Reserved. All content subject to confidentiality agreement between SOA Software and Customer. Slide 19 Thanks • Alistair Farquharson, CTO, SOA Software • ajf@soa.com • @afarqu • @atmos_phe_re • @SOASoftwareInc April 23, 2015