Weitere ähnliche Inhalte
Ähnlich wie Using APIs (20)
Kürzlich hochgeladen (20)
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 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
- 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 - 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
- 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 – 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
- 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 *
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 – 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
- 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 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
- 14. 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
- 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 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
- 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
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