Download - Designing and building Mule applications
All contents © MuleSoft Inc.
Designing and Building Mule Applications
It's just as important that you follow the right approach to integration, as well as using the right technology. We'll start this session by exploring MuleSoft's API-led approach to connectivity, and then use demos to bring to life the tooling in Anypoint Platform that allows you to design and build your integration applications quickly
and easily.Brett Roeder - Principal Client Architect - Office of the CTO, Americas
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Safe harbor statement
The information in this presentation is confidential and proprietary to MuleSoft and may not bedisclosed without the permission of MuleSoft. This presentation is not subject to your licenseagreement or any other service or subscription agreement with MuleSoft. MuleSoft has no obligationto pursue any course of business outlined in this document or any related presentation, or todevelop or release any functionality mentioned therein. This document, or any related presentationand MuleSoft's strategy and possible future developments, products and or platforms directions andfunctionality are all subject to change and may be changed by MuleSoft at any time for any reasonwithout notice. The information on this document is not a commitment, promise or legal obligationto deliver any material, code or functionality. This document is provided without a warranty of anykind, either express or implied, including but not limited to, the implied warranties ofmerchantability, fitness for a particular purpose, or non-infringement. This document is forinformational purposes and may not be incorporated into a contract. MuleSoft assumes noresponsibility for errors or omissions in this document, except if such damages were caused byMuleSoft intentionally or grossly negligent.
All forward-looking statements are subject to various risks and uncertainties that could cause actualresults to differ materially from expectations. Readers are cautioned not to place undue reliance onthese forward-looking statements, which speak only as of their dates, and they should not be reliedupon in making purchasing decisions.
2
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
1. Designing and building Mule applications
2. Deploying, running and managing Mule applications
– The Mule runtime
– Deployment models
– Deploying Mule applications
– Managing Mule applications
3. Governing and sharing assets
3
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
New operating model emphasizes consumption
Production
Reusable assets
Central IT / LoB IT
Consumption
Feedback and usage metrics
LoB IT, developers
Discoverable
Self-service
4
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Producing Assets
Production
Reusable assets
Central IT / LoB IT
Consumption
Feedback and usage metrics
LoB IT, developers
5
Discoverable
Self-service
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
6
1.History of Mule2.API Design3.API Implementation
–System APIs •Database, Salesforce, SAP, ServiceNow, NetSuite, …
–Process APIs
4.But Mule isn’t just about APIs–Batch–Pub/Sub–B2B
5.Extending Mule
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
7
1.History of Mule2.API Design3.API Implementation –System APIs
•Database, Salesforce, SAP, ServiceNow, NetSuite, …
–Process APIs
4.But Mule isn’t just about APIs–Batch, Pub/Sub, B2B
5.Extending Mule
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
The only single product connectivity platform
8
Anypoint Platform
ESB/SOA
- Legacy modernization- Web services
SaaS - Data synchronization- Process orchestration- Batch loading
APIs - Mobility- B2B- Internal APIs
- Microservices
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
1 IDE, 1 Run-Time, 1 Admin
9
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
SystemAPIs
Customername,
billTo-street....
New APIs are assembled using existing APIs
ProcessAPIs
ExperienceAPIs
Customer
Mobile App xAPI
Shipment
Order
Mythical Order
CustomerNAME1, STRAS
...
Mythical CustomerMythical Shipment
Shipment ShipmentOrder
opportunity.internalId, Quantity,...
OrderID, OrderDate,
QTY,...
xAPI
AccountName,
BillingStreet...
Central IT
LoB Dev/IT
Innovation Teams
Accessibility&
Ownership
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Anypoint Platformdelivers a full suite of capabilities for managing the whole API lifecycle
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
12
1.History of Mule2.API Design
3.API Implementation
–System APIs
•Database, Salesforce, SAP, ServiceNow, NetSuite, …
–Process APIs
4.But Mule isn’t just about APIs
–Batch, Pub/Sub, B2B
5.Extending Mule
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
2. API Design
13
• Define a Canonical API (Customer)• RAML
–Reusing RAML Fragments• Libraries: Address, Phone, email, …•Traits
• API Console• Mock Service
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
RESTful API Modeling Language
• Open standard• Clean, clear, powerful• 100% natural & organic• Open, vendor-neutral• Practical• Pattern-based design• JSON/XML with one RAML
Write once. Use many. Creative laziness
14
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
API Designed with CURRENT API Designer
15
• Can– leverage RAML 1.0– define APIs to
support XML & JSON from one spec
• Cannot– publish
fragments/specs to Exchange
– search for fragments
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
API Designed with NEW API Designer
16
• Can– leverage RAML 1.0– define APIs to
support XML & JSON from one spec
• Cannot– publish
fragments/specs to Exchange
– search for fragments
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Consume Fragments from Exchange
17
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Publish API Specs & Fragments to Exchange
18
• New version automaticallycreated
• Add tags
• Publish to API Manager
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
19
1.History of Mule2.API Design3.API Implementation
–System APIs
•Database, Salesforce, SAP, ServiceNow, NetSuite, …
–Process APIs 4.But Mule isn’t just about APIs
–Batch, Pub/Sub, B2B5.Extending Mule
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
3. API Implementation
20
•Implement the Customer MySQL System API•Implement the Customer Process API•Test the API with MUnit•Deploy the API•Auto register your API
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Implementing a System API
SystemAPIs
• No system talks directly to any other system
• API defined using your terminology
• Embedded governance & security
• Minimizes disruption caused by new releases
• Generate a Test Suite
Mythical Customer
CustomercustomerName,
Street...
Customername,
billTo-street....
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Test an API
With MUnit you can:● Create your Mule test by writing Mule code● Create your Mule test by writing Java code● Disable flow inbound endpoints● Disable endpoint connectors● Mock outbound endpoints● Mock message processors● Spy any message processor● Verify message processor calls● Create not only unit tests but also integration tests in a local
environment — MUnit allows you to start a local FTP/SFTP or DB server● Call the Mule client from Mule code● Assert flow exceptions● Enable or disable particular tests● See assertion/error reports with Mule stack trace● Extend the MUnit framework with plugins● Check visual coverage in Studio● Debug your tests with Studio
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Implementing System APIs
SystemAPIs
AccountName,
BillingStreet...
• No system talks directly to any other system
• API defined using your terminology
• Embedded governance & security
• Minimizes disruption caused by new releases
• Generate a Test Suite
Mythical Customer
CustomercustomerName,
Street...
Customername,
billTo-street....
CustomercustomerName,
Street...
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Implementing Additional System APIs
SystemAPIs
CustomerNAME1, STRAS
...
• No system talks directly to any other system
• API defined using your terminology
• Embedded governance & security
• Minimizes disruption caused by new releases
• Generate a Test Suite
AccountName,
BillingStreet...
Mythical Customer
CustomercustomerName,
Street...
Customername,
billTo-street....
CustomercustomerName,
Street...
CustomercustomerName,
Street...
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Simplified Process API Implementation
SystemAPIs
ProcessAPIs
Customer
Central IT
LoB Dev/IT
Accessibility&
OwnershipCustomer
NAME1, STRAS
...
AccountName,
BillingStreet...
Mythical Customer
Customername,
billTo-street....
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
26
1.History of Mule2.API Design3.API Implementation
–Review other System APIs built on common Customer API spec•Database, SAP, ServiceNow, NetSuite, …
–Review the Customer Aggregation Process
4.But Mule isn’t just about APIs–Batch, Pub/Sub, B2B
5.Extending Mule
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
B2B to API
27
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Pub/Sub to API
28
• JMS– TIBCO EMS– Sun JMS– Oracle – ...
• Websphere MQ• Active MQ• RabbitMQ• AMQP• MSMQ• and more!
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Call APIs from Batch
29
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Agenda
30
1.History of Mule2.API Design3.API Implementation 4.Review other System APIs built on common Customer API spec
–Database, SAP, ServiceNow, NetSuite, …
5.Review the Customer Aggregation Process 6.But Mule isn’t just about APIs7.Extending Mule
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Extending Mule
31
Extending Mule• Extending Components
– Transformers, filters, routers, ...
• Custom Message Processors• Creating Example Archetypes• Creating a Custom XML Namespace• Creating Module Archetypes• Creating Catalog Archetypes• Creating Project Archetypes• Creating Transports• Creating Custom Routers
DevKit (Custom Connectors)● Visual design and implementation using
Anypoint Studio with an Eclipse-based interface that simplifies and speeds up development.
● Maven support.● Connector packaging tools.● Authentication support for multiple types of
authentication, including OAuth and username and password authentication.
● DataSense support to acquire remote metadata.
● Extensive testing capability.● Examples, training, and support to simplify
development startup.● Batch, Query Pagination, and DataSense Query
Language support.
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Don’t forget
32
•docs.MuleSoft.com•MuleSoft.com/resources•Champions.MuleSoft.com•forums.MuleSoft.com•blogs.MuleSoft.com•MuleSoft.U for free Essentials training & certification•Next Session:–2:30pm Running and Managing Mule Applications–Location BREAKOUT ROOM 1 - YERBA BUENA 1-3
As of April 20th, 2017 and subject to change at MuleSoft's exclusive discretion.
All contents © MuleSoft Inc.
Thank you
All contents © MuleSoft Inc.
Manual Deployment
34
All contents © MuleSoft Inc.
1. Check-out project
2. Import to Studio
3. Develop
4. Create tests
5. Create build wrapper
6. Check-in project
Continuous Integration & Deployment
UAT
DEV
PROD
Developer
Run
Mock Tests
Run
Unit Tests
Run
Mock Tests
Run
Unit Tests
Create and Run Tests
1 2
3
4
56
1087
35
Functional
Tests
Create
Mocked Tests
Create
Unit Tests
7. Trigger CI
8. Build & deploy
9. Run test
10. Push to repo
11. Open tkt in SNOW
12. Deploy
13. Repeat test in UAT
14. Update tkt in SNOW
911
13 14
15. Deploy
16. Update tkt in SNOW
QA
16
12
15