win307. edi message bus database web service flat files custom systems erp crm how does enterprise...

40
Wrap a Mobile API around Your Enterprise and Take Data Offline with NoSQL via Universal Apps for Windows Phones and Tablets Rob Tiffany WIN307

Upload: bennett-simpson

Post on 04-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Wrap a Mobile API around Your Enterprise and Take Data Offline with NoSQL via Universal Apps for Windows Phones and Tablets

Rob Tiffany WIN307

Page 2: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

What are the Ingredients of Enterprise Mobility?CIOs must to move data from any backend system out to any mobile device to empower their employeesIntegration of diverse, proprietary APIs across myriad backend systems if often necessaryPerformance and scalability must be brought to backend systems that aren’t designed for web scaleREST APIs must be created to expose backend systems to mobile devices via a Mobile Access GatewayApps running on devices must interact with API data and continue working in an offline state

Page 3: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

EDI

MessageBusDatabase

WebService

FlatFiles

CustomSystems ERP

CRM

How does enterprise data get from here

To here?

Page 4: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

“ Some vertically integrated backend systems are designed to communicate with mobile devices directly, but others will need your help”

Page 5: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

So How do you Mashup Disparate Systems?This isn’t the same as REST service mashups you’ve done with consumer appsDon’t try to speak the language of each backend system by writing unmaintainable, system-specific code Utilize pre-built, enterprise application integration (EAI) adapters like those found in SQL Server Integration Services (SSIS) to interface with each systemVisually connect data sources and destinations to move, transform, aggregate and cache composite data in SQL Server staging tables

Page 6: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

EDI

MessageBusDatabase

WebService

FlatFiles

CustomSystems ERP

CRM

SSISAdapters

SQL ServerStagingTables

EAI EAIEAI

EAIEAI

EAIEAI

ODBC

OLEDB

ADO.NET

SQL Server Compact

ADABAS

Lotus Notes

LDAP IMS VSAM

Ingres

FoxPro

AccessPostgreSQL InformixMySQL

Sybase

Teradata

DB2

Oracle

SAP

Siebel

Salesforce

Hyperion

Dynamics

SharePointCustom

MSMQMQ Series

Tibco Rendezvous

SMTP

EDI

Flat Files

XML

WebSphere

webMethods

SeeBeyond

Web Services

FTPHTTP

2 Terabytes per hour2 Terabytes per hour

Page 7: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

“ Use SQL Server 2014 as a Server Façade in front of your backend systems. Prepare it for high performance operations by moving data off spinning or solid state disks and into RAM”

Page 8: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Feel the Need for Speed in SQL Server 2014BenefitsIn-memory execution means low-latency data retrieval vs. disk-bound I/OEliminate contention (locks, latches, spinlocks) from concurrent data Inserts and Updates due to optimistic concurrency controlDisk I/O reduction or elimination depending selected data durability Expect a 5x – 25x performance improvement + throughput equivalent to 5 – 10 scaled-out servers

Page 9: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

A Memory Optimized DatabaseCreate a new databaseAdd Memory Optimized Data Filegroup to ensure data durabilityAdd a FILESTREAM Data file type with Unlimited Autogrowth/Maxsize

Page 10: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Memory Optimized TablesCreate new TablesRight-click on the Tables folder and select New | Memory Optimized Table… to get a starter SQL scriptCreate and execute scripts to create one or more tables where MEMORY_OPTIMIZED=ONSet DURABILITY=SCHEMA_ONLY for staging tables to prevent transaction logging and checkpoint I/OSet DURABILITY=SCHEMA_AND_DATA for standard tables

Page 11: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Memory Optimized Customer TableUSE TechEDNZ2014GO

CREATE TABLE [dbo].[Customer] ([Id] uniqueidentifier NOT NULL PRIMARY KEY NONCLUSTERED

HASH WITH (BUCKET_COUNT=1000000) DEFAULT (NEWID()),

[FirstName] nvarchar(50),[LastName] nvarchar(50)

) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)GO

Page 12: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Memory Optimized Product TableUSE TechEDNZ2014GO

CREATE TABLE [dbo].[Product] ([Id] uniqueidentifier NOT NULL PRIMARY KEY NONCLUSTERED

HASH WITH (BUCKET_COUNT=1000000) DEFAULT (NEWID()),

[Name] nvarchar(50)) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)GO

Page 13: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Memory Optimized Order TableUSE TechEDNZ2014GO

CREATE TABLE [dbo].[Order] ([Id] uniqueidentifier NOT NULL PRIMARY KEY NONCLUSTERED

HASH WITH (BUCKET_COUNT=1000000) DEFAULT (NEWID()),

[CustomerId] uniqueidentifier,[ProductId] uniqueidentifier,[Quantity] int,[DateCreated] datetime

) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)GO

Page 14: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Natively Compiled Stored ProceduresBenefitsCompiles to C DLLs to minimize code execution time to boost performance and scalabilitySignificantly reduces CPU usage due to the need for fewer instructions

Page 15: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Customer Native Stored ProcedureUSE TechEDNZ2014GO

create procedure [dbo].[CustomerSelect]with native_compilation, schemabinding, execute as owneras begin atomic with( transaction isolation level = snapshot, language = N'English') SELECT [Id], [FirstName], [LastName] FROM [dbo].[Customer];endGO

Page 16: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Product Native Stored ProcedureUSE TechEDNZ2014GO

create procedure [dbo].[ProductSelect]with native_compilation, schemabinding, execute as owneras begin atomic with( transaction isolation level = snapshot, language = N'English') SELECT [Id], [Name] FROM [dbo].[Product];endGO

Page 17: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Order Native Stored ProcedureUSE TechEDNZ2014GO

create procedure [dbo].[OrderInsert]( @CustomerId uniqueidentifier, @ProductId uniqueidentifier, @Quantity integer, @DateCreated datetime)with native_compilation, schemabinding, execute as owneras begin atomic with( transaction isolation level = snapshot, language = N'English') INSERT INTO [dbo].[Order] (CustomerId, ProductId, Quantity, DateCreated) VALUES (@CustomerId, @ProductId, @Quantity, @DateCreated);endgo

Page 18: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

“ Welcome to the API economy”

Page 19: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

APIsUse Multichannel Transports and Data FormatsREST is how the mobile Internet communicatesJSON is how the mobile Internet serializes dataGZip/Deflate is how the mobile Internet compresses data

Build an API TierConvert proprietary APIs and wire protocols to mobile-friendly APIs using the ASP.NET Web APIRetrieve Data from backend systems to hydrate your Business ObjectsSerialize coarse-grained collections of business objects as JSONPre-fetch data instead of making frequent, fine-grained API calls

Performance + Scalability + AvailabilityCache frequently used data via the MemoryCache class, Azure Cache, or AppFabric Caching Load-balance API servers (IIS, Web Roles and IaaS VMs)Use Traffic Manager in Azure to load-balance across cloud data centers

Page 20: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Modelspublic class Customer{ public string Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; }}

Page 21: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Services public class OrderRepository { public void PostOrder(Models.Order value) { using (var connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["FastConnection"].ConnectionString)) { using (var command = connection.CreateCommand()) { connection.Open();

command.CommandType = System.Data.CommandType.StoredProcedure; command.CommandText = "dbo.OrderInsert"; command.Parameters.Add("@CustomerId", System.Data.SqlDbType.UniqueIdentifier); command.Parameters.Add("@ProductId", System.Data.SqlDbType.UniqueIdentifier); command.Parameters.Add("@Quantity", System.Data.SqlDbType.Int); command.Parameters.Add("@DateCreated", System.Data.SqlDbType.DateTime);

command.Parameters["@CustomerId"].Value = value.CustomerId; command.Parameters["@ProductId"].Value = value.ProductId; command.Parameters["@Quantity"].Value = value.Quantity; command.Parameters["@DateCreated"].Value = value.DateCreated; command.ExecuteNonQuery(); } } } }}

Page 22: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Web APICreate ControllerRight click on the Controllers folder of your Web API project and add a Web API 2 Controller with read/write actionsName the controller based on the model class you’re referencingYou cannot sync until you do this for every model class

Page 23: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Controllerspublic class CustomerController : ApiController{ private CustomerRepository repository;

public CustomerController() { this.repository = new CustomerRepository(); }

// GET api/customers public IEnumerable<Models.Customer> Get() { return repository.GetAllCustomers(); }}

Page 24: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

Cache Cache Cache Cache

SQL ServerStagingTables

Page 25: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Demo

Build APIs

Page 26: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

“ Data trapped inside the corporate network is about as useful as a phone without a data plan”

Page 27: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Mobile Access GatewayUnless you’re in Azure, you need to publish on-premise APIs from your corporate network out to the InternetWeb Application ProxyA new Remote Access server role in Windows Server 2012 R2Sits in the DMZ between front and back firewalls with inbound and outbound network interface cardsWorks with an AD FS server to securely publish services that use claims-based auth or KerberosA reverse proxy routes requests from external URLs to internal URLs

Page 28: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

APIServer

Front Firewall

Back Firewall

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

VirtualIP

VirtualIP

Mobile Access Gateway

Mobile Access Gateway

NLB Cluster

NLB Cluster

Page 29: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

“ Data is the new oil, APIs are the new drills, and mobile devices are the new smart cars fueled by context and meaning”

Page 30: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Consume APIsThe WinRT HttpClient is your new best friendAsynchronously call RESTful APIsSupport automatic decompression via GZip and DeflateDownload JSON data results and de-serialize into object collectionsSerialize newly created data on your device as JSON and upload

Page 31: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Front Firewall

Back FirewallVirtual

IPMobile Access Gateway

Mobile Access Gateway

NLB Cluster

NoSQLNoSQL

NoSQLNoSQL NoSQL

NoSQL

Page 32: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Demo

Consume API data from a Universal App

Page 33: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Work Offline with NoSQLUtilize NoSQL tables to implement offline data capabilitiesKeep your customers working in the absence of network connectivityCreate Tables and use LINQ to query in-memory object collectionsExecute SQL operations like SELECT, INSERT, UPDATE, and DELETEPerform multi-table JOINsMost of all…save data locally so you don’t lose it

Page 34: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Demo

Perform CRUD operations on a Universal App

Page 35: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

APIServer

Front Firewall

Back Firewall

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

APIServer

VirtualIP

VirtualIP

Mobile Access Gateway

Mobile Access Gateway

EDI

MessageBusDatabase

WebService

FlatFiles

CustomSystems ERP

CRM

SSISAdapters

SQL ServerStagingTables

NLB Cluster

NLB Cluster

EAI EAIEAI

EAIEAI

EAIEAI

Cache Cache Cache Cache

NoSQLNoSQL

NoSQLNoSQL NoSQL

NoSQL

Page 36: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

We’re done.

Page 37: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Related contentBreakout Sessions

WIN309 Windows 8.1 and Windows Phone 8.1 App Developers Networking Survival KitWIN311 Intelligent Systems Service - Concept, Code and DemoDBI319 Document DB, Azure Search and Polyglot Persistence in Microsoft Azure

Find me Later at Hub Happy Hour

Page 38: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Resources

TechNet & MSDN FlashSubscribe to our fortnightly newsletter

http://aka.ms/technetnz http://aka.ms/msdnnz

TechNet Virtual LabsFree Virtual Hands-on Labs

http://aka.ms/ch9nz

Microsoft Virtual AcademyFree Online Learning

http://aka.ms/mva http://aka.ms/technetlabs

Sessions on Demand

Page 39: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

Complete your session evaluation now and win!

Page 40: WIN307. EDI Message Bus Database Web Service Flat Files Custom Systems ERP CRM How does enterprise data get from here To here?

© 2014 Microsoft Corporation. All rights reserved.Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.