win307. edi message bus database web service flat files custom systems erp crm how does enterprise...
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/1.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/2.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/3.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/4.jpg)
“ 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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/5.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/6.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/7.jpg)
“ 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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/8.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/9.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/10.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/11.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/12.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/13.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/14.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/15.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/16.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/17.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/18.jpg)
“ 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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/19.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/20.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/21.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/22.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/23.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/24.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/25.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/26.jpg)
“ 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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/27.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/28.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/29.jpg)
“ 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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/30.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/31.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/32.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/33.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/34.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/35.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/36.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/37.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/38.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/39.jpg)
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?](https://reader035.vdocuments.net/reader035/viewer/2022070400/56649f155503460f94c2a059/html5/thumbnails/40.jpg)
© 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.