Download - Using APIs
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
{"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 105/24/2012
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
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 7, 2023
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• [email protected]• @afarqu• @atmos_phe_re • @SOASoftwareInc
April 7, 2023