SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
© 2014 IBM Corporation
Session INO-2739
Differentiating between
web APIs, SOA, & integration
…and why it matters
Kim Clark (kim.clark@uk.ibm.com)
Brian Petrini (petrini@us.ibm.com)
Related article
Please note that the following article has been published which covers
many of the concepts from this presentation:
http://www.ibm.com/developerworks/websphere/library/techarticles/1503_clark/1305_clark.html
1
IBM Software Group
© 2013 IBM Corporation
Evolving exposure of business function
Service Exposure
(enterprise)
Low Level APIs
(platform/package)
Application Integration
(application)
Service/API Exposure
(external known
consumers)
External API Exposure
(public)
Future?
Let’s first take a brief look at how
enterprises progressed through
basic integration to service
oriented architecture (SOA)
What was SOA originally
!   Inwardly focused, based on
understanding of core
business capabilities.
!   Often driven from business
top down exercises such as
Component Business
Modelling.
!   Focused on improving core
business processes –
organising/streamlining
people/teams processes,
audit tracking, status
tracking, MI.
3
SOA Reference Architecture
https://collaboration.opengroup.org/projects/soa-ref-arch
controlling
executing
directing
Business
Planning
Business Unit
Tracking
Sales
Management
Credit
Assessment
Reconciliation
Compliance
Staff Appraisals
Relationship
Management
Sector
Management
Product
Management
Production
Administration
Product
Fulfillment
Sales
Marketing
Campaigns
Product
Directory
Credit
Administration
Customer
Accounts
General
Ledger
Document
Management
Customer
Dialogue
Contact Routing
Staff
Administration
Business
Administration
New Business
Development
Relationship
Management
Servicing & Sales
Product
Fulfillment
Financial Control
and Accounting
Sector Planning
Portfolio
Planning
Account
Planning
Sales Planning
Fulfillment
Planning
Fulfillment
Planning
Component Business Map
IBM Software Group
© 2013 IBM Corporation
Silo Services
Composite
Services
Virtualized
Services
Dynamically
Re-Configurable
ServicesComponentizedIntegrated
Level 1 Level 4 Level 5 Level 6 Level 7Level 3Level 2
Applications
Methods
Organization
Infrastructure
Architecture
Business View
Modules Services
Process
Integration via
Services
Dynamic
Application
Assembly
ComponentsObjects
Structured
Analysis &
Design
Service
Oriented
Modeling
Service
Oriented
Modeling
Grammar
Oriented
Modeling
Component
Based
Development
Object
Oriented
Modeling
Ad hoc IT
Governance
Emerging SOA
Governance
SOA and IT
Governance
Alignment
SOA and IT
Governance
Alignment
Ad hoc IT
Governance
Ad hoc IT
Governance
SOA and IT
Governance
Alignment
Service
Oriented
Modeling
Process
Integration
via Services
Platform
Specific
Platform
Specific
Platform
Neutral
Dynamic
Sense &
Respond
Platform
Specific
Platform
Specific
Monolithic
Architecture
Emerging
SOA
Grid Enabled SOA
Dynamically Re-
Configurable
Architecture
Component
Architecture
Layered
Architecture
SOA
Platform
Specific
Function
Oriented
Service
Oriented
Service
Oriented
Service
Oriented
Function
Oriented
Function
Oriented
Service
Oriented
Open Service Integration Maturity Model (OSIMM)
https://collaboration.opengroup.org/projects/osimm
Primary focus of this presentation
IBM Software Group
© 2013 IBM Corporation
EnterpriseBoundaryDMZ
Web “1.0” – From Hub and Spoke to SOA
Browser
Web Application
Server
HTTP Server
Operational
Systems
(Applications
& Data)
Integration
Hub
Integration
Application
Database
Adapter
Service Exposure
Integration
Hub
Service
Exposure
HTML
HTTP
HTML
HTTP
JDBC
SOAP
HTTP
Hub and spoke
(SIMM 3)
Service oriented architecture
(SIMM 4)
Point to point
(SIMM 2)
SOA Firewall
Known
consumers
SOAP
HTTP
Adapter
AdapterAdapterAdapter Adapter
IBM Software Group
© 2013 IBM Corporation
Service Exposure
(internal)
Integration
The role of the Service Exposure Gateway
Operational Systems
(Applications & Data)
Consumers
Integration Hub
Service Exposure Gateway
Adapter Adapter
Service
Registry
Design time
Runtime
Service Exposure
Traffic Management
Security
Virtualisation
Visibility
Common challenges with early SOA maturity
!   Issues with SOAP and XML
•  Multiple different flavors of SOAP. Very late consolidation on Document/literal wrapped
WSDL over “RPC/encoded”, “RPC/literal” and “Document/literal”
•  No first class representation of action/verb/method. Even now you have to parse to the
SOAP body element name.
•  XML provides too many ways to represent the same thing. Attributes vs. Elements,
representations of namespace, arrays etc.
•  XML had no native language bindings. DOM trees are ugly to navigate.
•  XML Schema took the eXtensible out of XML. Rigidity of complex data typing combined
with early XML parser inflexibility made versioning complex quickly.
!   Organizational issues
•  Most services were created by projects. Services were only good for first use.
•  Funding for SOA was hard to come by, but because of immaturity SOA was expensive.
•  Metrics for re-use in the wrong place. Most re-use was happening not at the service
exposure level, but in the underlying integration layer.
•  Services were often just a façade on a set of still mis-aligned components. No re-
engineering budget.
!   Other technical issues
•  A whole new realm of security mechanisms to support, with little if any prior history. E.g.
WS-Security, SAML.
•  Tools were immature for common needs e.g. mapping, logging/auditing/monitoring
frameworks.
7
However, the tools and techniques may have been immature, but the
fundamental premise of SOA, to make functions and data available in a re-
usable way, is still essential today.
IBM Software Group
© 2013 IBM Corporation
Evolving exposure of business function
Service Exposure
(enterprise)
Low Level APIs
(platform/package)
Application Integration
(application)
Service/API Exposure
(external known
consumers)
External API Exposure
(public)
Future?
Now we need to
understand the
motivations behind
“RESTful” APIs
IBM Software Group
© 2013 IBM Corporation
EnterpriseBoundaryDMZ
Web 2.0 interaction patterns
Introducing HTTP/JSON interactions
Service
Exposure
(Internal)
Operational
Systems
(Applications
& Data)
Service
Exposure
Consumers
(internal)
Application
Server
Integration
HubIntegration
HTTP Server
Consumers
(external)
HTML/HTTP JSON/HTTP
(via Ajax)
HTML/HTTP
SOAP/HTTP
JSON/HTTP
Course grained
enterprise scoped
“web service” exposure
Fine grained
application scoped
“RESTful API” exposure
“Web 1.0” pages in
browser
Web 2.0 (rich)
browser application
Characterising the interface
Requester Provider
Interface Characteristics
Integrity
Security
Reliability
Error handling
Data
Technical interface
Interaction type
Performance
Capturing integration complexity
http://www.ibm.com/developerworks/websphere/techjournal/1112_clark/1112_clark.html
10
IBM Software Group
© 2013 IBM Corporation
Protocol comparison
SOAP web services “REST” APIs
Protocol SOAP HTTP
Transport HTTP typically
(but JMS/MQ common)
TCP/IP
Data format XML schema JSON or XML, or request
URL parameters
Interface
definition
WSDL file By inspection/
documentation
Action/operation Inferred by XML element
name
URL and HTTP verb
Response types XML and MIME
attachments
JSON, XML, and other
MIME types
Note: “REST” is NOT a formalised protocol in the same way that SOAP is.
More on this later in the presentation.
What is a RESTful interaction?
(REST = Representational State Transfer)
!   A component interaction style that ensures independence,
performance, scalability and consumability.
!   Some key constraints of a RESTful architecture
•  Uniform Interface (consumability, independence)
–  Identification of resources via unique references
–  Manipulation via these unique references
–  Self-descriptive messages
•  Cachable (performance, independence)
•  Stateless (scalability, independence)
!   HTTP 1.0/1.1 were designed using RESTful principles
!   Rejuvenated recently for “Web APIs” typically using HTTP/JSON or
HTTP/XML and using the core HTTP verbs for “(S)CRUD”
For a more formal definition of REST see here:
http://www.ics.uci.edu/~taylor/documents/2002-REST-TOIT.pdf
IBM Software Group
© 2013 IBM Corporation
“RESTful” interfaces – important observations
§  There is no official standard for RESTful interactions
– However, a set of style guidelines around how to write interfaces that play
to the strengths of HTTP’s RESTful nature have reached communal
consensus.
– These principles take advantage of HTTP’s existing infrastructure for
security, caching, resource identifiers (URI/URL), standard verbs (GET,
PUT, POST, DELETE), media type negotiations etc.
– The JSON data format is popular for payloads on RESTful interfaces due
to its simplicity and native javascript support, but XML is also common.
§  “SOAP” is not well suited to RESTful interfaces
– SOAP circumvents many of the core RESTful properties of HTTP. It plays
purely within the payload so its standard cannot reach into the transport
(URIs, HTTP headers, authentication, mime types for example).
13
15/07/2015
IBM Software Group
© 2013 IBM Corporation
Data Format differences
XML
First class namespaces but multiple representations
Rich data types, but requires a “schema”
Validation, but requires a “schema”
Code heavy to navigate DOM
Most bindings required schema
JSON
Native parsing in Javascript
Single way to represent data values
No “schema” to define the structure
Slimmer (“low fat xml”)
Unburdened by namespaces
First class representation of numbers vs text
First class representation of arrays
<?xml version="1.0" encoding="UTF-8"?>!
<order orderid=”123456” xmlns:xsi=!
"http://www.w3.org/2001/XMLSchema-instance"!
xsi:noNamespaceSchemaLocation=”order.xsd">!
<orderperson>Joe Bloggs</orderperson>!
<deliveryaddress>!
<name>Fred Smith</name>!
<address>High Street, London</address>!
</deliveryaddress>!
<itemlist>!
<item>!
<title>Romeo and Juliet</title>!
<quantity>1</quantity>!
<price>9.99</price>!
</item>!
<item>!
<title>Pride and Prejudice</title>!
<quantity>1</quantity>!
<price>10.99</price>!
</item>!
</itemlist>!
</order>!
{!
“orderid” : ”123456”,!
“orderperson” : “Joe Bloggs”,!
“deliveryaddress” : {!
“name” : “Fred Smith”,!
“address” : “High Street, London”,!
},!
“itemList” : [!
{!
“title” : “Romeo and Juliet”,!
“quantity” : 1,!
“price” : 9.99!
}!
{!
“title” : “Pride and Prejudice”,!
“quantity” : 1,!
“price” : 10.99!
}!
]!
}!
Header required
Attribute or
element for
values?
Arrays implied
Numbers are text
All tags duplicate text
Explicit arrays
Number representation
15
15/07/2015 Change Management
“Non-extensible” eXstensible Markup Language
The issues with response data structure changes
<response>
<order>
<reference>123<reference>
<quantity>2</quantity>
<productId>KI987</productId>
</order>
</response>
<response>
<order>
<reference>123</reference>
<quantity>2</quantity>
<productId>KI987</productId>
<status>SHIPPED</status>
</order>
</response>
!  Formally not backward compatible as consumer is passed unexpected data not
present in their schema
However…
•  Most common interface change due to incremental evolution of interfaces
•  Treating as non-backwardly compatible is very expensive in refactoring/versioning
•  Many (but unfortunately not all) consumers can accommodate it without any refactoring,
but can you be sure?
!  REST/JSON interfaces do not suffer from this problem.
•  JSON parsing requires no schema
•  The data is completely self defining
•  Consumers simply read the data they need
•  Can still get tripped up with deep data comparisons etc.
IBM Software Group
© 2013 IBM Corporation
Protocol – Examples
SOAP/HTTP “REST”/HTTP
POST /ordermanagement HTTP/1.1!
Host: www.example.org!
Content-Type: application/soap+xml; charset=utf-8!
Content-Length: nnn!
!
<?xml version="1.0"?>!
<soap:Envelope!
xmlns:soap="http://…"!
soap:encodingStyle="http://…”>!
<soapenv:Header>!
<wsse:Security soapenv:mustUnderstand="1"!
xmlns:wsse="http://...xsd">!
<wsse:UsernameToken>!
<wsse:Username>John</wsse:Username>!
<wsse:Password !
Type="http://…">Doe</wsse:Password>!
</wsse:UsernameToken>!
</wsse:Security>!
</soapenv:Header>!
<soap:Body xmlns:m="http://www.example.org/
ordermanagement">!
<m:AddOrderItem>!
<m:order orderid=”123456”!
<m:item>!
<m:title>Romeo and Juliet</m:title>!
<m:note>Special Edition</m:note>!
<m:quantity>1</m:quantity>!
<m:price>9.99</m:price>!
</m:item>!
</m:order>!
</m:AddOrderItem>!
</soap:Body>!
</soap:Envelope>!
With XML
POST /orders/123456/item HTTP/1.1!
Host: www.example.org!
Content-Type: application/soap+xml; charset=utf-8!
Content-Length: nnn!
Authorization: …!
<?xml version="1.0"?>!
<m:item !
xmlns:m="http://www.example.org/ordermanagement">!
<m:title>Romeo and Juliet</m:title>!
<m:note>Special Edition</m:note>!
<m:quantity>1</m:quantity>!
<m:price>9.99</m:price>!
</m:item>!
With JSON
!
POST /orders/123456/item HTTP/1.1!
Host: www.example.org!
Content-Type: application/json; charset=utf-8!
Content-Length: nnn!
Authorization: …!
!
{!
“title” : “Romeo and Juliet”,!
“note” : “Special Edition”,!
“quantity : 1,!
“price” : 9.99!
}!
A
A
A
B C D
B C D
E
E
B
C
D
E
IBM Software Group
© 2013 IBM Corporation
Protocol – Pros/cons
SOAP/HTTP “REST”/HTTP
•  Pros
•  Enables object oriented verb style
•  Support for transactionality
•  Many standards for security
•  Can use any transport, even
asynchronous messaging.
•  Flexible routing patterns
•  Can be used over any transport
•  Cons
•  Complex to get simple things done
•  Minimum structure for a request is
full SOAP envelope
•  Forcibly XML data format
•  Less natural to parse and navigate
in browser side javascript
•  Transport agnostic
•  Cannot benefit from inherent
capabilities of the underlying
transport
•  Pros
•  Simple things are simple
•  Fully leverages existing mature
HTTP infrastructure – URLs,
security, verbs, caching etc.
•  Can use any data format, though
JSON and XML most common.
•  Provides unique references to
resources.
•  Simplifies design of the service
model to (S)CRUD
•  Cons
•  Bound to HTTP. Harder to use
over other transports.
•  Can be chatty – multiple requests
to achieve one action
•  Highly “functional” operations can
be hard to represent
But ultimately, the protocol is only a small part of the story!
IBM Software Group
© 2013 IBM Corporation
Evolving exposure of business function
Service Exposure
(enterprise)
Low Level APIs
(platform/package)
Application Integration
(application)
Service/API Exposure
(external known
consumers)
External API Exposure
(public)
Future?
What happens when
we expose publically
as “Web APIs”
IBM Software Group
© 2013 IBM Corporation
EnterpriseBoundaryDMZ
EnterpriseBoundaryDMZ
Mobile device side “app” interaction styles
Formalising of API exposure
Service
Exposure
(Internal)
Operational
Systems
(Applications
& Data)
Service
Exposure
Consumers
(internal)
Mobile
Application
Application
Server
Service/API
Exposure
Integration
Hub
Integration
HTTP
Server
Service/API
Exposure
Consumers
(external)
SOA
IBM Software Group
© 2013 IBM Corporation
Application Programming Interface (API)
An old term re-invented
§  API
§  A well defined interface to enable one component to talk to another,
programmatically, without understanding it’s implementation.
§  Examples would include
§  Database drivers
–  provide an API that allows programming languages with a mechanism to talk to
databases without having to understand the details of how the communication is done
(e.g. how JDBC actually works).
§  Enterprise Java Beans – Home/Remote interfaces
–  provide remove interfaces that hide the complexities of the underlying RMI requests to
enable you to call java applications located in another server.
§  “Web APIs”
§  The new term currently used to describe HTTP/JSON, HTTP/XML APIs
that are often publicly accessible.
§  HTTP/SOAP could be used to expose a web API, but for reason we will
discuss later, typically not the preferred method.
20
15/07/2015
IBM Software Group
© 2013 IBM Corporation
EnterpriseBoundaryDMZ
Different between the internal and external service consumer
Service
Exposure
(external)
Service Exposure
(internal)
Operational Systems
(Applications & Data)
Service Exposure
(enterprise)
Service/API Exposure
(external)
Consumers
(internal)
There may be only a handful
of well understood internal
consumer applications
…and there could
be hundreds of
“experimenters”
There may 10s of external
consumer applications
IBM Software Group
© 2013 IBM Corporation
Architectural style differences
“Web Services”
§  Coarse grained
§  Function oriented
§  Optionally transactional
§  Numerous maturing security options
§  Sophisticated data format
§  Typically SOAP/HTTP
§  Best suited to
– Internal (within enterprise)
– System to system
– E.g. Business process automation
“Web APIs”
§  Fine grained/chatty
§  Resource/data oriented
§  Non-transactional
§  Limited but mature security options
§  Simple lightweight data format
§  Typically “REST” – e.g. HTTP/JSON
§  Best suited to
– Internal or external
– User interface to system
– E.g. Mobile app to multiple APIs
Note: “Web Service” and “Web API” are not formal terms with agreed definitions.
They are just two of the most common terms used to explain styles in use today.
IBM Software Group
© 2013 IBM Corporation
Service ExposureEnterprise
Boundary
DMZ
Additional requirements for external exposure
- Introducing “API management”
Service Exposure – extended for external
Traffic Management
Security
Virtualisation
Visibility
Service
Exposure
(external)
Service
Exposure
(internal)
Operational
Systems
Service Exposure
(enterprise)
Service/API
Exposure
(external)
Partner Management
Accounting
Self administration
“Internet” auth
Threat management
Service
Registry
API
Catalogue
Core conceptual differences with Web APIs
!   Your audience is different
•  Web APIs offer radically new business models. New ways of making money
takes broad innovation. Your audience are now “app developers”
–  No longer just inward looking for innovation. We are now crowd sourcing new business
ideas externally.
•  The app market is an loosely controlled sand pit.
–  Recall the pervasiveness of “unofficial” office applications?
•  Web APIs are the public persona of your organisation
–  For some, not having a Web API is like not having a web page 10 years ago.
•  Did we know where Web 1.0 was going?
–  Initially brochure-ware. Suddenly eCommerce and monetisation of the web.
!   Web APIs “look and feel” different
•  Web APIs cannot make assumptions about the types of applications that will be
created.
•  You cannot guess the usage of situational applications and mobile applications.
•  The API is “resource” based, meaning it is closely aligned with the data model.
!   Web APIs are a “product” and must be treated like one
•  Your Web APIs are fighting for survival alongside your competitors Web APIs.
•  API Management Portal needs to be attractive
•  They simply make the data as accessible and the interface as consumable as
possible.
IBM Software Group
© 2013 IBM Corporation
Dispelling some myths about Web APIs
§  Web APIs are always HTTP/JSON
– Many are HTTP/JSON, but there are a good proportion that are HTTP/XML.
– Note that one of the benefits of using raw HTTP interactions is that you can
use the in built mime type support. A response could even be pdf!
§  Web APIs are always RESTful
– Most web APIs comply with some of the tenets of RESTful interfaces, such as
being stateless. However, desirable though RESTfulness may be, few employ
all RESTful recommendations.
– Some Web APIs derive from older HTTP/SOAP web services, and are little
more than a translation of that into HTTP/JSON. Again, REST is a paradigm,
HTTP/JSON is just a protocol choice – it depends how you use it
§  Web APIs don’t use SOAP
– Using SOAP/XML doesn’t disqualify an interface from being classed as a
Web API. It might however suggest that it is less RESTful.
Thought experiments
!   Consider Web API first?
•  Why expose APIs internally at all. If they're useful, they're useful externally too
(maybe over VPN)
!   What is a “test environment” for an API based application?
•  How will we provide test environments for our API consumers. Are we really talking
about massive multi-tenancy rather than shared systems.
•  How would you provide data into those environments.
!   Do Web APIs simplify versioning?
•  Web APIs still need to be governed – they’re a product remember…
•  Neither SOAP, or REST/JSON have first class versioning mechanisms
•  REST/JSON tolerates changes in responses slightly better. Everything else is still
hard!
!   How do we manage reliability and data integrity over Web APIs?
•  Do we need to design differently to ensure web interactions over non-transactional
protocols result in safe state changes? Do we need to introduce idempotence?
•  More fine grained, so may have multiple updates.
!   How much do we expose?
•  Many SOAs initiatives stalled during over-enthusiastic top down analysis of the
organization.
•  You’re unlikely expose your entire business over APIs. Focus in on a business
domain or value stream.
IBM Software Group
© 2013 IBM Corporation
Beware!
“Web API” actually has two completely different definitions
§  Client side (an API within web browsers)
– This is NOT what we are talking about today!
– Browser side programming interfaces, typically using javascript libraries, to
enable end-user interfaces to interact more powerfully with their environment.
– For example to create safer more sandboxed browser side applications
(Google “Native Client”), or to enable browser based applications to access
device capabilities without the need for a native wrapper (Mozilla WebAPI).
§  Server side (an API used to expose services on the web)
– This IS what we are referring to in this presentation!
– Programming interfaces used to expose functionality in back end operational
systems over the internet by offering lightweight “RESTful” HTTP/JSON or
HTTP/XML interfaces.
– Google, Amazon, Facebook, Twitter all provide Web APIs to enable
applications to easily access their data from mobile and other web appliations.
More examples on http://www.programmableweb.com
IBM Software Group
© 2013 IBM Corporation
Extended reference architecture
showing some relevant IBM products
Service Exposure
(internal)
Operational Systems
(Applications & Data)
Integration
Consumers
(internal)
Business Process
Orchestration
IBM
Business Process Manager
IBM Integration Bus
In-house
Service
Exposure
(external)
Consumers
(external)
IBM API
Management
IBM DataPower
(IBM DataPower?/API Mgmt?)
WebSphere
Service
Registry &
Repository
IBM Software Group
© 2013 IBM Corporation
Evolving exposure of business function
Service Exposure
(enterprise)
Low Level APIs
(platform/package)
Application Integration
(application)
Service/API Exposure
(external known
consumers)
External API Exposure
(public)
“Event Interaction”?
(internet based)
What new models of
interaction are
currently maturing?
IBM Software Group
© 2013 IBM Corporation
EnterpriseBoundary
Mobile device event interactions – Publish/Subscribe
Service
Exposure
(Internal)
Operational
Systems
(Applications
& Data)
Service/API
Exposure
Consumers
(internal)
Mobile
Application
Application
Server
Integration
Hub
Integration
Message
Server
Consumers
(external)
2. Publish
3. Notify
1. Subscribe
Events, messages, notifications
The re-invention of asynchronous interaction!
!   New forces driving resurgence of asynchronous interaction
•  Internet of Things (IoT), mass notification requirements, disconnectable mobile
apps, Event Driven Architecture (EDA)
!   Asynchronous patterns are well established
•  e.g. Messaging, store/forward publish/subscribe etc.
!   Messaging technologies are mature
•  e.g. WebSphere MQ, IBM Integration Bus (was Broker)
!   Driving simplicity and efficiency
•  Why request information, when you could just be given it (notification)
•  Why send information to people who don’t need it (publish/subscribe)
•  Why should a system have to be present/available when you want to
communicate with it (store/forward)
!   Messaging and notification patterns are now baked into mobile application
infrastructure. Unfortunately they vary by platform and even by app, but standards
are starting to emerge.
•  Tools such as IBM Worklight provide agnosticism across these platforms whilst
the standards settle.
Note: Ajax although terms “asynchronous” is actually fully thread blocking from the
browser down. The sense in which it is asynchronous that requests are not done on
the users UI thread.
31
IBM Software Group
© 2013 IBM Corporation
Evolving exposure of business function
Service Exposure
(enterprise)
Low Level APIs
(platform/package)
Application Integration
(application)
Service/API Exposure
(external known
consumers)
External API Exposure
(public)
“Event Interaction”?
(internet based)
Evolution does NOT mean the
older techniques become
redundant. Typically they are
the bedrock that make the
newer forms possible
What did SOA ever do for us?
SOA initiatives to date have provided:
!  Rationalization of components around business functionality
!  Standardized vocabularies (data models, service models)
!  Simplified data models and functions
!  Better documentation of available interfaces
!  Support for synchronous real-time interaction
!  Feedback from consumers on ease of use
!  Innovation around what can be exposed and how it can be used
!  Improvements in integration tooling, and infrastructure. e.g.
•  E.g. Adapters, meta-data discovery, data formatting, graphical
data mapping, industry data models, registries, API
management, gateway appliances,
33
SOA was simply about good architectural principles
around a layered architecture. Web APIs are just an
example of one of the ways an SOA can mature.
Thank You
Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be incorporated
into any contract. The development, release, and timing of any future features or
functionality described for our products remains at our sole discretion.
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
35
Legal Disclaimer
•  © IBM Corporation 2014. All Rights Reserved.
•  The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in
this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject
to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of IBM software.
•  References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or
capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to
future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you
will result in any specific sales, revenue growth or other results.
•  If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete:
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
•  If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs
and performance characteristics may vary by customer.
•  Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus®
Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer
to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All
product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation.
IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines
Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
•  If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
•  If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
•  If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
•  If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:
Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and
other countries.
•  If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:
UNIX is a registered trademark of The Open Group in the United States and other countries.
•  If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
•  If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta
Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration
purposes only.
36

Weitere ähnliche Inhalte

Was ist angesagt?

Convergence of Integration and Application Development
Convergence of Integration and Application DevelopmentConvergence of Integration and Application Development
Convergence of Integration and Application DevelopmentKim Clark
 
Agile Integration Architecture: A Containerized and Decentralized Approach to...
Agile Integration Architecture: A Containerized and Decentralized Approach to...Agile Integration Architecture: A Containerized and Decentralized Approach to...
Agile Integration Architecture: A Containerized and Decentralized Approach to...Kim Clark
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018Kim Clark
 
Hybrid integration reference architecture
Hybrid integration reference architectureHybrid integration reference architecture
Hybrid integration reference architectureKim Clark
 
Interface characteristics - Kim Clark and Brian Petrini
Interface characteristics - Kim Clark and Brian PetriniInterface characteristics - Kim Clark and Brian Petrini
Interface characteristics - Kim Clark and Brian PetriniKim Clark
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration TechnologiesPeter R. Egli
 
HAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
HAM 1032 Combining the Power of IBM API Management and IBM Integration BusHAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
HAM 1032 Combining the Power of IBM API Management and IBM Integration BusKaren Broughton-Mabbitt
 
20180123 loq hybrid integration vision
20180123 loq hybrid integration vision20180123 loq hybrid integration vision
20180123 loq hybrid integration visionVincent Verstraete
 
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationBizTalk360
 
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...Kai Wähner
 
ESB vs API management
ESB vs API managementESB vs API management
ESB vs API managementAdroitLogic
 
A Decade of Microservices
A Decade of MicroservicesA Decade of Microservices
A Decade of MicroservicesRuman Khan
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationKasun Indrasiri
 
Need Of Enterprise Integration
Need Of Enterprise IntegrationNeed Of Enterprise Integration
Need Of Enterprise Integrationkumar gaurav
 
Cloud Enterprise Integration
Cloud Enterprise IntegrationCloud Enterprise Integration
Cloud Enterprise IntegrationOliver Koeth
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Kai Wähner
 
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Kai Wähner
 
Microservices Best Practices
Microservices Best PracticesMicroservices Best Practices
Microservices Best PracticesAliasgar Muchhala
 

Was ist angesagt? (20)

Convergence of Integration and Application Development
Convergence of Integration and Application DevelopmentConvergence of Integration and Application Development
Convergence of Integration and Application Development
 
Agile Integration Architecture: A Containerized and Decentralized Approach to...
Agile Integration Architecture: A Containerized and Decentralized Approach to...Agile Integration Architecture: A Containerized and Decentralized Approach to...
Agile Integration Architecture: A Containerized and Decentralized Approach to...
 
Agile Integration eBook from 2018
Agile Integration eBook from 2018Agile Integration eBook from 2018
Agile Integration eBook from 2018
 
Hybrid integration reference architecture
Hybrid integration reference architectureHybrid integration reference architecture
Hybrid integration reference architecture
 
Interface characteristics - Kim Clark and Brian Petrini
Interface characteristics - Kim Clark and Brian PetriniInterface characteristics - Kim Clark and Brian Petrini
Interface characteristics - Kim Clark and Brian Petrini
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
 
HAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
HAM 1032 Combining the Power of IBM API Management and IBM Integration BusHAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
HAM 1032 Combining the Power of IBM API Management and IBM Integration Bus
 
20180123 loq hybrid integration vision
20180123 loq hybrid integration vision20180123 loq hybrid integration vision
20180123 loq hybrid integration vision
 
7 eai-patterns
7 eai-patterns7 eai-patterns
7 eai-patterns
 
Microservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of IntegrationMicroservices and the Cloud-Based Future of Integration
Microservices and the Cloud-Based Future of Integration
 
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
Systems Integration in the Cloud Era - API vs. Integration Framework vs. Ente...
 
ESB vs API management
ESB vs API managementESB vs API management
ESB vs API management
 
A Decade of Microservices
A Decade of MicroservicesA Decade of Microservices
A Decade of Microservices
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
 
Need Of Enterprise Integration
Need Of Enterprise IntegrationNeed Of Enterprise Integration
Need Of Enterprise Integration
 
Cloud Enterprise Integration
Cloud Enterprise IntegrationCloud Enterprise Integration
Cloud Enterprise Integration
 
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
Spoilt for Choice: How to Choose the Right Enterprise Service Bus (ESB)?
 
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
Systems Integration in the Cloud Era with Apache Camel @ ApacheCon Europe 2012
 
Microservices Best Practices
Microservices Best PracticesMicroservices Best Practices
Microservices Best Practices
 
Azure serverless computing
Azure serverless computingAzure serverless computing
Azure serverless computing
 

Andere mochten auch

The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftMuleSoft
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesApcera
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?Akana
 
Application Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftApplication Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftMuleSoft
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOADiego Suarez
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration PatternsJohan Aludden
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration PatternsSergey Podolsky
 
Integration Patterns for Microservices Architectures
Integration Patterns for Microservices ArchitecturesIntegration Patterns for Microservices Architectures
Integration Patterns for Microservices ArchitecturesApcera
 
Future of Integration | MuleSoft
Future of Integration | MuleSoftFuture of Integration | MuleSoft
Future of Integration | MuleSoftMuleSoft
 
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)Kai Wähner
 
Mule ESB - Integration Simplified
Mule ESB - Integration SimplifiedMule ESB - Integration Simplified
Mule ESB - Integration SimplifiedRich Software
 
How to Use Hybrid Integration Platforms Effectively
How to Use Hybrid Integration Platforms EffectivelyHow to Use Hybrid Integration Platforms Effectively
How to Use Hybrid Integration Platforms EffectivelyMuleSoft
 
Practiv Soa Presentation
Practiv   Soa PresentationPractiv   Soa Presentation
Practiv Soa PresentationTony Wilson
 
Applying Performance Engineering Principles Throughout the SOA Lifecycle
Applying Performance Engineering Principles Throughout the SOA LifecycleApplying Performance Engineering Principles Throughout the SOA Lifecycle
Applying Performance Engineering Principles Throughout the SOA LifecycleRich Larrabee
 
[Infographic] Cloud Integration Drivers and Requirements in 2015
[Infographic] Cloud Integration Drivers and Requirements in 2015[Infographic] Cloud Integration Drivers and Requirements in 2015
[Infographic] Cloud Integration Drivers and Requirements in 2015SnapLogic
 
Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...
Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...
Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...SnapLogic
 
SOA and API Convergence
SOA and API Convergence SOA and API Convergence
SOA and API Convergence WSO2
 

Andere mochten auch (20)

The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoft
 
Integration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices ArchitecturesIntegration Patterns and Anti-Patterns for Microservices Architectures
Integration Patterns and Anti-Patterns for Microservices Architectures
 
API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?API and SOA: Two Sides of the Same Coin?
API and SOA: Two Sides of the Same Coin?
 
Application Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoftApplication Architecture: The Next Wave | MuleSoft
Application Architecture: The Next Wave | MuleSoft
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOA
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Integration Patterns for Microservices Architectures
Integration Patterns for Microservices ArchitecturesIntegration Patterns for Microservices Architectures
Integration Patterns for Microservices Architectures
 
Future of Integration | MuleSoft
Future of Integration | MuleSoftFuture of Integration | MuleSoft
Future of Integration | MuleSoft
 
Mule ESB Fundamentals
Mule ESB FundamentalsMule ESB Fundamentals
Mule ESB Fundamentals
 
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
Microservices - Death of the Enterprise Service Bus (ESB)? (Update 2016)
 
Mule ESB - Integration Simplified
Mule ESB - Integration SimplifiedMule ESB - Integration Simplified
Mule ESB - Integration Simplified
 
How to Use Hybrid Integration Platforms Effectively
How to Use Hybrid Integration Platforms EffectivelyHow to Use Hybrid Integration Platforms Effectively
How to Use Hybrid Integration Platforms Effectively
 
Soa 101
Soa 101Soa 101
Soa 101
 
Practiv Soa Presentation
Practiv   Soa PresentationPractiv   Soa Presentation
Practiv Soa Presentation
 
Applying Performance Engineering Principles Throughout the SOA Lifecycle
Applying Performance Engineering Principles Throughout the SOA LifecycleApplying Performance Engineering Principles Throughout the SOA Lifecycle
Applying Performance Engineering Principles Throughout the SOA Lifecycle
 
[Infographic] Cloud Integration Drivers and Requirements in 2015
[Infographic] Cloud Integration Drivers and Requirements in 2015[Infographic] Cloud Integration Drivers and Requirements in 2015
[Infographic] Cloud Integration Drivers and Requirements in 2015
 
Practical Guide to Hybrid Cloud Computing
Practical Guide to Hybrid Cloud ComputingPractical Guide to Hybrid Cloud Computing
Practical Guide to Hybrid Cloud Computing
 
Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...
Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...
Webinar: It's the 21st Century - Why Isn't Your Data Integration Loosely Coup...
 
SOA and API Convergence
SOA and API Convergence SOA and API Convergence
SOA and API Convergence
 

Ähnlich wie Differentiating between web APIs, SOA, & integration …and why it matters

Pentesting With Web Services in 2012
Pentesting With Web Services in 2012Pentesting With Web Services in 2012
Pentesting With Web Services in 2012Ishan Girdhar
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation TechnologiesPankaj Saharan
 
Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014Lukas Smith
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
Soa session 1 part 1(2)
Soa session 1 part 1(2)Soa session 1 part 1(2)
Soa session 1 part 1(2)Shilpi Jain
 
The Middleware technology that connects the enterprise
The Middleware technology that connects the enterpriseThe Middleware technology that connects the enterprise
The Middleware technology that connects the enterprise Kasun Indrasiri
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to findDan Diephouse
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture Prabhat gangwar
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 Worldoslc
 
Introduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureIntroduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureDATA Inc.
 

Ähnlich wie Differentiating between web APIs, SOA, & integration …and why it matters (20)

Soa limitations
Soa limitationsSoa limitations
Soa limitations
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
Pentesting With Web Services in 2012
Pentesting With Web Services in 2012Pentesting With Web Services in 2012
Pentesting With Web Services in 2012
 
Web Services Foundation Technologies
Web Services Foundation TechnologiesWeb Services Foundation Technologies
Web Services Foundation Technologies
 
Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014
 
CSG 2012
CSG 2012CSG 2012
CSG 2012
 
Soa web pres new
Soa web pres newSoa web pres new
Soa web pres new
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Soa Grundlagen
Soa GrundlagenSoa Grundlagen
Soa Grundlagen
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
 
Soa session 1 part 1(2)
Soa session 1 part 1(2)Soa session 1 part 1(2)
Soa session 1 part 1(2)
 
The Middleware technology that connects the enterprise
The Middleware technology that connects the enterpriseThe Middleware technology that connects the enterprise
The Middleware technology that connects the enterprise
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to find
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 World
 
RIA And SOA
RIA And SOARIA And SOA
RIA And SOA
 
Introduction to Service Oriented Architecture
Introduction to Service Oriented ArchitectureIntroduction to Service Oriented Architecture
Introduction to Service Oriented Architecture
 

Mehr von Kim Clark

Cloud native defined
Cloud native definedCloud native defined
Cloud native definedKim Clark
 
2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdfKim Clark
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationKim Clark
 
Automating agile integration
Automating agile integrationAutomating agile integration
Automating agile integrationKim Clark
 
Cloud native integration
Cloud native integrationCloud native integration
Cloud native integrationKim Clark
 
Scaling Integration
Scaling IntegrationScaling Integration
Scaling IntegrationKim Clark
 
The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019Kim Clark
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architectureKim Clark
 
3298 microservices and how they relate to esb api and messaging - inter con...
3298   microservices and how they relate to esb api and messaging - inter con...3298   microservices and how they relate to esb api and messaging - inter con...
3298 microservices and how they relate to esb api and messaging - inter con...Kim Clark
 

Mehr von Kim Clark (9)

Cloud native defined
Cloud native definedCloud native defined
Cloud native defined
 
2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf2008-2014 Integration Design - Course Summary for slideshare.pdf
2008-2014 Integration Design - Course Summary for slideshare.pdf
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
 
Automating agile integration
Automating agile integrationAutomating agile integration
Automating agile integration
 
Cloud native integration
Cloud native integrationCloud native integration
Cloud native integration
 
Scaling Integration
Scaling IntegrationScaling Integration
Scaling Integration
 
The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019
 
Multi-cloud integration architecture
Multi-cloud integration architectureMulti-cloud integration architecture
Multi-cloud integration architecture
 
3298 microservices and how they relate to esb api and messaging - inter con...
3298   microservices and how they relate to esb api and messaging - inter con...3298   microservices and how they relate to esb api and messaging - inter con...
3298 microservices and how they relate to esb api and messaging - inter con...
 

Kürzlich hochgeladen

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Kürzlich hochgeladen (20)

Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

Differentiating between web APIs, SOA, & integration …and why it matters

  • 1. © 2014 IBM Corporation Session INO-2739 Differentiating between web APIs, SOA, & integration …and why it matters Kim Clark (kim.clark@uk.ibm.com) Brian Petrini (petrini@us.ibm.com)
  • 2. Related article Please note that the following article has been published which covers many of the concepts from this presentation: http://www.ibm.com/developerworks/websphere/library/techarticles/1503_clark/1305_clark.html 1
  • 3. IBM Software Group © 2013 IBM Corporation Evolving exposure of business function Service Exposure (enterprise) Low Level APIs (platform/package) Application Integration (application) Service/API Exposure (external known consumers) External API Exposure (public) Future? Let’s first take a brief look at how enterprises progressed through basic integration to service oriented architecture (SOA)
  • 4. What was SOA originally !   Inwardly focused, based on understanding of core business capabilities. !   Often driven from business top down exercises such as Component Business Modelling. !   Focused on improving core business processes – organising/streamlining people/teams processes, audit tracking, status tracking, MI. 3 SOA Reference Architecture https://collaboration.opengroup.org/projects/soa-ref-arch controlling executing directing Business Planning Business Unit Tracking Sales Management Credit Assessment Reconciliation Compliance Staff Appraisals Relationship Management Sector Management Product Management Production Administration Product Fulfillment Sales Marketing Campaigns Product Directory Credit Administration Customer Accounts General Ledger Document Management Customer Dialogue Contact Routing Staff Administration Business Administration New Business Development Relationship Management Servicing & Sales Product Fulfillment Financial Control and Accounting Sector Planning Portfolio Planning Account Planning Sales Planning Fulfillment Planning Fulfillment Planning Component Business Map
  • 5. IBM Software Group © 2013 IBM Corporation Silo Services Composite Services Virtualized Services Dynamically Re-Configurable ServicesComponentizedIntegrated Level 1 Level 4 Level 5 Level 6 Level 7Level 3Level 2 Applications Methods Organization Infrastructure Architecture Business View Modules Services Process Integration via Services Dynamic Application Assembly ComponentsObjects Structured Analysis & Design Service Oriented Modeling Service Oriented Modeling Grammar Oriented Modeling Component Based Development Object Oriented Modeling Ad hoc IT Governance Emerging SOA Governance SOA and IT Governance Alignment SOA and IT Governance Alignment Ad hoc IT Governance Ad hoc IT Governance SOA and IT Governance Alignment Service Oriented Modeling Process Integration via Services Platform Specific Platform Specific Platform Neutral Dynamic Sense & Respond Platform Specific Platform Specific Monolithic Architecture Emerging SOA Grid Enabled SOA Dynamically Re- Configurable Architecture Component Architecture Layered Architecture SOA Platform Specific Function Oriented Service Oriented Service Oriented Service Oriented Function Oriented Function Oriented Service Oriented Open Service Integration Maturity Model (OSIMM) https://collaboration.opengroup.org/projects/osimm Primary focus of this presentation
  • 6. IBM Software Group © 2013 IBM Corporation EnterpriseBoundaryDMZ Web “1.0” – From Hub and Spoke to SOA Browser Web Application Server HTTP Server Operational Systems (Applications & Data) Integration Hub Integration Application Database Adapter Service Exposure Integration Hub Service Exposure HTML HTTP HTML HTTP JDBC SOAP HTTP Hub and spoke (SIMM 3) Service oriented architecture (SIMM 4) Point to point (SIMM 2) SOA Firewall Known consumers SOAP HTTP Adapter AdapterAdapterAdapter Adapter
  • 7. IBM Software Group © 2013 IBM Corporation Service Exposure (internal) Integration The role of the Service Exposure Gateway Operational Systems (Applications & Data) Consumers Integration Hub Service Exposure Gateway Adapter Adapter Service Registry Design time Runtime Service Exposure Traffic Management Security Virtualisation Visibility
  • 8. Common challenges with early SOA maturity !   Issues with SOAP and XML •  Multiple different flavors of SOAP. Very late consolidation on Document/literal wrapped WSDL over “RPC/encoded”, “RPC/literal” and “Document/literal” •  No first class representation of action/verb/method. Even now you have to parse to the SOAP body element name. •  XML provides too many ways to represent the same thing. Attributes vs. Elements, representations of namespace, arrays etc. •  XML had no native language bindings. DOM trees are ugly to navigate. •  XML Schema took the eXtensible out of XML. Rigidity of complex data typing combined with early XML parser inflexibility made versioning complex quickly. !   Organizational issues •  Most services were created by projects. Services were only good for first use. •  Funding for SOA was hard to come by, but because of immaturity SOA was expensive. •  Metrics for re-use in the wrong place. Most re-use was happening not at the service exposure level, but in the underlying integration layer. •  Services were often just a façade on a set of still mis-aligned components. No re- engineering budget. !   Other technical issues •  A whole new realm of security mechanisms to support, with little if any prior history. E.g. WS-Security, SAML. •  Tools were immature for common needs e.g. mapping, logging/auditing/monitoring frameworks. 7 However, the tools and techniques may have been immature, but the fundamental premise of SOA, to make functions and data available in a re- usable way, is still essential today.
  • 9. IBM Software Group © 2013 IBM Corporation Evolving exposure of business function Service Exposure (enterprise) Low Level APIs (platform/package) Application Integration (application) Service/API Exposure (external known consumers) External API Exposure (public) Future? Now we need to understand the motivations behind “RESTful” APIs
  • 10. IBM Software Group © 2013 IBM Corporation EnterpriseBoundaryDMZ Web 2.0 interaction patterns Introducing HTTP/JSON interactions Service Exposure (Internal) Operational Systems (Applications & Data) Service Exposure Consumers (internal) Application Server Integration HubIntegration HTTP Server Consumers (external) HTML/HTTP JSON/HTTP (via Ajax) HTML/HTTP SOAP/HTTP JSON/HTTP Course grained enterprise scoped “web service” exposure Fine grained application scoped “RESTful API” exposure “Web 1.0” pages in browser Web 2.0 (rich) browser application
  • 11. Characterising the interface Requester Provider Interface Characteristics Integrity Security Reliability Error handling Data Technical interface Interaction type Performance Capturing integration complexity http://www.ibm.com/developerworks/websphere/techjournal/1112_clark/1112_clark.html 10
  • 12. IBM Software Group © 2013 IBM Corporation Protocol comparison SOAP web services “REST” APIs Protocol SOAP HTTP Transport HTTP typically (but JMS/MQ common) TCP/IP Data format XML schema JSON or XML, or request URL parameters Interface definition WSDL file By inspection/ documentation Action/operation Inferred by XML element name URL and HTTP verb Response types XML and MIME attachments JSON, XML, and other MIME types Note: “REST” is NOT a formalised protocol in the same way that SOAP is. More on this later in the presentation.
  • 13. What is a RESTful interaction? (REST = Representational State Transfer) !   A component interaction style that ensures independence, performance, scalability and consumability. !   Some key constraints of a RESTful architecture •  Uniform Interface (consumability, independence) –  Identification of resources via unique references –  Manipulation via these unique references –  Self-descriptive messages •  Cachable (performance, independence) •  Stateless (scalability, independence) !   HTTP 1.0/1.1 were designed using RESTful principles !   Rejuvenated recently for “Web APIs” typically using HTTP/JSON or HTTP/XML and using the core HTTP verbs for “(S)CRUD” For a more formal definition of REST see here: http://www.ics.uci.edu/~taylor/documents/2002-REST-TOIT.pdf
  • 14. IBM Software Group © 2013 IBM Corporation “RESTful” interfaces – important observations §  There is no official standard for RESTful interactions – However, a set of style guidelines around how to write interfaces that play to the strengths of HTTP’s RESTful nature have reached communal consensus. – These principles take advantage of HTTP’s existing infrastructure for security, caching, resource identifiers (URI/URL), standard verbs (GET, PUT, POST, DELETE), media type negotiations etc. – The JSON data format is popular for payloads on RESTful interfaces due to its simplicity and native javascript support, but XML is also common. §  “SOAP” is not well suited to RESTful interfaces – SOAP circumvents many of the core RESTful properties of HTTP. It plays purely within the payload so its standard cannot reach into the transport (URIs, HTTP headers, authentication, mime types for example). 13 15/07/2015
  • 15. IBM Software Group © 2013 IBM Corporation Data Format differences XML First class namespaces but multiple representations Rich data types, but requires a “schema” Validation, but requires a “schema” Code heavy to navigate DOM Most bindings required schema JSON Native parsing in Javascript Single way to represent data values No “schema” to define the structure Slimmer (“low fat xml”) Unburdened by namespaces First class representation of numbers vs text First class representation of arrays <?xml version="1.0" encoding="UTF-8"?>! <order orderid=”123456” xmlns:xsi=! "http://www.w3.org/2001/XMLSchema-instance"! xsi:noNamespaceSchemaLocation=”order.xsd">! <orderperson>Joe Bloggs</orderperson>! <deliveryaddress>! <name>Fred Smith</name>! <address>High Street, London</address>! </deliveryaddress>! <itemlist>! <item>! <title>Romeo and Juliet</title>! <quantity>1</quantity>! <price>9.99</price>! </item>! <item>! <title>Pride and Prejudice</title>! <quantity>1</quantity>! <price>10.99</price>! </item>! </itemlist>! </order>! {! “orderid” : ”123456”,! “orderperson” : “Joe Bloggs”,! “deliveryaddress” : {! “name” : “Fred Smith”,! “address” : “High Street, London”,! },! “itemList” : [! {! “title” : “Romeo and Juliet”,! “quantity” : 1,! “price” : 9.99! }! {! “title” : “Pride and Prejudice”,! “quantity” : 1,! “price” : 10.99! }! ]! }! Header required Attribute or element for values? Arrays implied Numbers are text All tags duplicate text Explicit arrays Number representation
  • 16. 15 15/07/2015 Change Management “Non-extensible” eXstensible Markup Language The issues with response data structure changes <response> <order> <reference>123<reference> <quantity>2</quantity> <productId>KI987</productId> </order> </response> <response> <order> <reference>123</reference> <quantity>2</quantity> <productId>KI987</productId> <status>SHIPPED</status> </order> </response> !  Formally not backward compatible as consumer is passed unexpected data not present in their schema However… •  Most common interface change due to incremental evolution of interfaces •  Treating as non-backwardly compatible is very expensive in refactoring/versioning •  Many (but unfortunately not all) consumers can accommodate it without any refactoring, but can you be sure? !  REST/JSON interfaces do not suffer from this problem. •  JSON parsing requires no schema •  The data is completely self defining •  Consumers simply read the data they need •  Can still get tripped up with deep data comparisons etc.
  • 17. IBM Software Group © 2013 IBM Corporation Protocol – Examples SOAP/HTTP “REST”/HTTP POST /ordermanagement HTTP/1.1! Host: www.example.org! Content-Type: application/soap+xml; charset=utf-8! Content-Length: nnn! ! <?xml version="1.0"?>! <soap:Envelope! xmlns:soap="http://…"! soap:encodingStyle="http://…”>! <soapenv:Header>! <wsse:Security soapenv:mustUnderstand="1"! xmlns:wsse="http://...xsd">! <wsse:UsernameToken>! <wsse:Username>John</wsse:Username>! <wsse:Password ! Type="http://…">Doe</wsse:Password>! </wsse:UsernameToken>! </wsse:Security>! </soapenv:Header>! <soap:Body xmlns:m="http://www.example.org/ ordermanagement">! <m:AddOrderItem>! <m:order orderid=”123456”! <m:item>! <m:title>Romeo and Juliet</m:title>! <m:note>Special Edition</m:note>! <m:quantity>1</m:quantity>! <m:price>9.99</m:price>! </m:item>! </m:order>! </m:AddOrderItem>! </soap:Body>! </soap:Envelope>! With XML POST /orders/123456/item HTTP/1.1! Host: www.example.org! Content-Type: application/soap+xml; charset=utf-8! Content-Length: nnn! Authorization: …! <?xml version="1.0"?>! <m:item ! xmlns:m="http://www.example.org/ordermanagement">! <m:title>Romeo and Juliet</m:title>! <m:note>Special Edition</m:note>! <m:quantity>1</m:quantity>! <m:price>9.99</m:price>! </m:item>! With JSON ! POST /orders/123456/item HTTP/1.1! Host: www.example.org! Content-Type: application/json; charset=utf-8! Content-Length: nnn! Authorization: …! ! {! “title” : “Romeo and Juliet”,! “note” : “Special Edition”,! “quantity : 1,! “price” : 9.99! }! A A A B C D B C D E E B C D E
  • 18. IBM Software Group © 2013 IBM Corporation Protocol – Pros/cons SOAP/HTTP “REST”/HTTP •  Pros •  Enables object oriented verb style •  Support for transactionality •  Many standards for security •  Can use any transport, even asynchronous messaging. •  Flexible routing patterns •  Can be used over any transport •  Cons •  Complex to get simple things done •  Minimum structure for a request is full SOAP envelope •  Forcibly XML data format •  Less natural to parse and navigate in browser side javascript •  Transport agnostic •  Cannot benefit from inherent capabilities of the underlying transport •  Pros •  Simple things are simple •  Fully leverages existing mature HTTP infrastructure – URLs, security, verbs, caching etc. •  Can use any data format, though JSON and XML most common. •  Provides unique references to resources. •  Simplifies design of the service model to (S)CRUD •  Cons •  Bound to HTTP. Harder to use over other transports. •  Can be chatty – multiple requests to achieve one action •  Highly “functional” operations can be hard to represent But ultimately, the protocol is only a small part of the story!
  • 19. IBM Software Group © 2013 IBM Corporation Evolving exposure of business function Service Exposure (enterprise) Low Level APIs (platform/package) Application Integration (application) Service/API Exposure (external known consumers) External API Exposure (public) Future? What happens when we expose publically as “Web APIs”
  • 20. IBM Software Group © 2013 IBM Corporation EnterpriseBoundaryDMZ EnterpriseBoundaryDMZ Mobile device side “app” interaction styles Formalising of API exposure Service Exposure (Internal) Operational Systems (Applications & Data) Service Exposure Consumers (internal) Mobile Application Application Server Service/API Exposure Integration Hub Integration HTTP Server Service/API Exposure Consumers (external) SOA
  • 21. IBM Software Group © 2013 IBM Corporation Application Programming Interface (API) An old term re-invented §  API §  A well defined interface to enable one component to talk to another, programmatically, without understanding it’s implementation. §  Examples would include §  Database drivers –  provide an API that allows programming languages with a mechanism to talk to databases without having to understand the details of how the communication is done (e.g. how JDBC actually works). §  Enterprise Java Beans – Home/Remote interfaces –  provide remove interfaces that hide the complexities of the underlying RMI requests to enable you to call java applications located in another server. §  “Web APIs” §  The new term currently used to describe HTTP/JSON, HTTP/XML APIs that are often publicly accessible. §  HTTP/SOAP could be used to expose a web API, but for reason we will discuss later, typically not the preferred method. 20 15/07/2015
  • 22. IBM Software Group © 2013 IBM Corporation EnterpriseBoundaryDMZ Different between the internal and external service consumer Service Exposure (external) Service Exposure (internal) Operational Systems (Applications & Data) Service Exposure (enterprise) Service/API Exposure (external) Consumers (internal) There may be only a handful of well understood internal consumer applications …and there could be hundreds of “experimenters” There may 10s of external consumer applications
  • 23. IBM Software Group © 2013 IBM Corporation Architectural style differences “Web Services” §  Coarse grained §  Function oriented §  Optionally transactional §  Numerous maturing security options §  Sophisticated data format §  Typically SOAP/HTTP §  Best suited to – Internal (within enterprise) – System to system – E.g. Business process automation “Web APIs” §  Fine grained/chatty §  Resource/data oriented §  Non-transactional §  Limited but mature security options §  Simple lightweight data format §  Typically “REST” – e.g. HTTP/JSON §  Best suited to – Internal or external – User interface to system – E.g. Mobile app to multiple APIs Note: “Web Service” and “Web API” are not formal terms with agreed definitions. They are just two of the most common terms used to explain styles in use today.
  • 24. IBM Software Group © 2013 IBM Corporation Service ExposureEnterprise Boundary DMZ Additional requirements for external exposure - Introducing “API management” Service Exposure – extended for external Traffic Management Security Virtualisation Visibility Service Exposure (external) Service Exposure (internal) Operational Systems Service Exposure (enterprise) Service/API Exposure (external) Partner Management Accounting Self administration “Internet” auth Threat management Service Registry API Catalogue
  • 25. Core conceptual differences with Web APIs !   Your audience is different •  Web APIs offer radically new business models. New ways of making money takes broad innovation. Your audience are now “app developers” –  No longer just inward looking for innovation. We are now crowd sourcing new business ideas externally. •  The app market is an loosely controlled sand pit. –  Recall the pervasiveness of “unofficial” office applications? •  Web APIs are the public persona of your organisation –  For some, not having a Web API is like not having a web page 10 years ago. •  Did we know where Web 1.0 was going? –  Initially brochure-ware. Suddenly eCommerce and monetisation of the web. !   Web APIs “look and feel” different •  Web APIs cannot make assumptions about the types of applications that will be created. •  You cannot guess the usage of situational applications and mobile applications. •  The API is “resource” based, meaning it is closely aligned with the data model. !   Web APIs are a “product” and must be treated like one •  Your Web APIs are fighting for survival alongside your competitors Web APIs. •  API Management Portal needs to be attractive •  They simply make the data as accessible and the interface as consumable as possible.
  • 26. IBM Software Group © 2013 IBM Corporation Dispelling some myths about Web APIs §  Web APIs are always HTTP/JSON – Many are HTTP/JSON, but there are a good proportion that are HTTP/XML. – Note that one of the benefits of using raw HTTP interactions is that you can use the in built mime type support. A response could even be pdf! §  Web APIs are always RESTful – Most web APIs comply with some of the tenets of RESTful interfaces, such as being stateless. However, desirable though RESTfulness may be, few employ all RESTful recommendations. – Some Web APIs derive from older HTTP/SOAP web services, and are little more than a translation of that into HTTP/JSON. Again, REST is a paradigm, HTTP/JSON is just a protocol choice – it depends how you use it §  Web APIs don’t use SOAP – Using SOAP/XML doesn’t disqualify an interface from being classed as a Web API. It might however suggest that it is less RESTful.
  • 27. Thought experiments !   Consider Web API first? •  Why expose APIs internally at all. If they're useful, they're useful externally too (maybe over VPN) !   What is a “test environment” for an API based application? •  How will we provide test environments for our API consumers. Are we really talking about massive multi-tenancy rather than shared systems. •  How would you provide data into those environments. !   Do Web APIs simplify versioning? •  Web APIs still need to be governed – they’re a product remember… •  Neither SOAP, or REST/JSON have first class versioning mechanisms •  REST/JSON tolerates changes in responses slightly better. Everything else is still hard! !   How do we manage reliability and data integrity over Web APIs? •  Do we need to design differently to ensure web interactions over non-transactional protocols result in safe state changes? Do we need to introduce idempotence? •  More fine grained, so may have multiple updates. !   How much do we expose? •  Many SOAs initiatives stalled during over-enthusiastic top down analysis of the organization. •  You’re unlikely expose your entire business over APIs. Focus in on a business domain or value stream.
  • 28. IBM Software Group © 2013 IBM Corporation Beware! “Web API” actually has two completely different definitions §  Client side (an API within web browsers) – This is NOT what we are talking about today! – Browser side programming interfaces, typically using javascript libraries, to enable end-user interfaces to interact more powerfully with their environment. – For example to create safer more sandboxed browser side applications (Google “Native Client”), or to enable browser based applications to access device capabilities without the need for a native wrapper (Mozilla WebAPI). §  Server side (an API used to expose services on the web) – This IS what we are referring to in this presentation! – Programming interfaces used to expose functionality in back end operational systems over the internet by offering lightweight “RESTful” HTTP/JSON or HTTP/XML interfaces. – Google, Amazon, Facebook, Twitter all provide Web APIs to enable applications to easily access their data from mobile and other web appliations. More examples on http://www.programmableweb.com
  • 29. IBM Software Group © 2013 IBM Corporation Extended reference architecture showing some relevant IBM products Service Exposure (internal) Operational Systems (Applications & Data) Integration Consumers (internal) Business Process Orchestration IBM Business Process Manager IBM Integration Bus In-house Service Exposure (external) Consumers (external) IBM API Management IBM DataPower (IBM DataPower?/API Mgmt?) WebSphere Service Registry & Repository
  • 30. IBM Software Group © 2013 IBM Corporation Evolving exposure of business function Service Exposure (enterprise) Low Level APIs (platform/package) Application Integration (application) Service/API Exposure (external known consumers) External API Exposure (public) “Event Interaction”? (internet based) What new models of interaction are currently maturing?
  • 31. IBM Software Group © 2013 IBM Corporation EnterpriseBoundary Mobile device event interactions – Publish/Subscribe Service Exposure (Internal) Operational Systems (Applications & Data) Service/API Exposure Consumers (internal) Mobile Application Application Server Integration Hub Integration Message Server Consumers (external) 2. Publish 3. Notify 1. Subscribe
  • 32. Events, messages, notifications The re-invention of asynchronous interaction! !   New forces driving resurgence of asynchronous interaction •  Internet of Things (IoT), mass notification requirements, disconnectable mobile apps, Event Driven Architecture (EDA) !   Asynchronous patterns are well established •  e.g. Messaging, store/forward publish/subscribe etc. !   Messaging technologies are mature •  e.g. WebSphere MQ, IBM Integration Bus (was Broker) !   Driving simplicity and efficiency •  Why request information, when you could just be given it (notification) •  Why send information to people who don’t need it (publish/subscribe) •  Why should a system have to be present/available when you want to communicate with it (store/forward) !   Messaging and notification patterns are now baked into mobile application infrastructure. Unfortunately they vary by platform and even by app, but standards are starting to emerge. •  Tools such as IBM Worklight provide agnosticism across these platforms whilst the standards settle. Note: Ajax although terms “asynchronous” is actually fully thread blocking from the browser down. The sense in which it is asynchronous that requests are not done on the users UI thread. 31
  • 33. IBM Software Group © 2013 IBM Corporation Evolving exposure of business function Service Exposure (enterprise) Low Level APIs (platform/package) Application Integration (application) Service/API Exposure (external known consumers) External API Exposure (public) “Event Interaction”? (internet based) Evolution does NOT mean the older techniques become redundant. Typically they are the bedrock that make the newer forms possible
  • 34. What did SOA ever do for us? SOA initiatives to date have provided: !  Rationalization of components around business functionality !  Standardized vocabularies (data models, service models) !  Simplified data models and functions !  Better documentation of available interfaces !  Support for synchronous real-time interaction !  Feedback from consumers on ease of use !  Innovation around what can be exposed and how it can be used !  Improvements in integration tooling, and infrastructure. e.g. •  E.g. Adapters, meta-data discovery, data formatting, graphical data mapping, industry data models, registries, API management, gateway appliances, 33 SOA was simply about good architectural principles around a layered architecture. Web APIs are just an example of one of the ways an SOA can mature.
  • 36. Please Note IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. 35
  • 37. Legal Disclaimer •  © IBM Corporation 2014. All Rights Reserved. •  The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. •  References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. •  If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete: Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. •  If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete: All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer. •  Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both. •  If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete: Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. •  If you reference Java™ in the text, please mark the first use and include the following; otherwise delete: Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. •  If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete: Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. •  If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete: Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. •  If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete: UNIX is a registered trademark of The Open Group in the United States and other countries. •  If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete: Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. •  If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only. 36