Looking to the Future of Cross-Platform Mobile Data Sync with SQL Server

Zumero

If you’ve used Merge Replication to sync SQL Server Compact data on mobile devices with SQL Server in the past and you’re looking for a cross-platform solution to take you into the future, take a look at Zumero.

As many of you know, I spent most of the first decade of the 21st century building massive-scale mobile enterprise solutions for the world’s largest companies. The backbone of many of those architectures was based on the Merge Replication technology built into SQL Server that allowed mobile devices running the embedded SQL Server Compact database to sync data and take it offline for use with mobile apps. This was a great solution that took care of all the bi-directional, mobile-to-server data movement, conflict resolution and filtering without writing any code allowing development teams to focus on their apps. Unfortunately, the journey for this Microsoft technology arrived at the end of the road with SQL Server 2012 and SQL Server Compact 3.5 SP2. It’s no longer supported on the more recent versions of those products.

For those of you who need to keep synchronizing mobile data with SQL Server, the folks over at Zumero have a solution you should investigate. They smartly took a dependency on SQLite as the mobile database since it already runs on iOS, Android and Windows. The Zumero server runs on an Internet Information Server (IIS) to broker communications between devices and your SQL Server database. This architecture should look familiar to those of you who have built mobile Merge Replication infrastructures in the past.

Zumero Architecture

They’ve even gone so far to provide you with a migration document that will help move you from SQL Server Compact and Merge Replication to their Zumero offering. If this solution matches the scenario you’re targeting, I would encourage you to perform your own due diligence and see if Zumero meets your needs.

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Building Microsoft MEAP: Introduction

MEAP

After years of showing you how to integrate the principles of Gartner MEAP into your organization’s mobile strategy, it’s now time for me to show you how to roll up your sleeves and actually build the Microsoft Mobile Enterprise Application Platform.

I’ve travelled all over the world assisting Chief Information Officers in the development of their end-to-end mobile strategies.  Time and again, these CIOs inform me that pushing corporate data from their backend systems out to the wireless devices used by their employees is a top priority.  This makes perfect sense because of the productivity and efficiency gains an organization accrues when employees are allowed to work anytime from anywhere. That timely information from backend systems empower employees to make better decisions at the point of activity.  Of course, this works in two directions.  Employees capture data at that same point of activity and it flows from the field to those backend systems.  When data is allowed to flow bi-directionally in real-time, this speeds up the cadence of decision-making and gives the organization a competitive advantage.  We saw this years ago with mobile email.  When you combine wireless data networks, mobile devices, and a mechanism to seamless move critical data, you’ve created the most powerful weapon in business.

The Real-Time Enterprise.  This is where a Mobile Enterprise Application Platform comes into play.

Just in case you’re unfamiliar with MEAP, it represents software and services that allow IT organizations to extend corporate apps and data out to mobile employees and business partners.  This is most often accomplished via reusable mobile middleware components capable of supporting multiple mobile apps, multiple mobile operating systems, and multiple backend systems to maximize your ROI vs. tactical point solutions.  Think of this as a server façade in front of your backend systems and databases.  You might consider using a MEAP solution if your organization doesn’t have a mature SOA infrastructure or if your backend systems aren’t vertically-integrated to provide mobile client apps and connectivity.  Gartner has a technology checklist of critical capabilities that a given MEAP solution must match up with in order to be considered.  Since this series of articles is all about building the Microsoft MEAP solution, I’ll provide you with some guidance as to how Microsoft aligns with each of the critical capabilities:

  • Integrated Development  Environment:
    • Gartner Definition: Dedicated environment or plug-in for composing backend server & client side logic, including UI.
    • Microsoft Offering: Visual Studio
    • Value Proposition:  As the world’s most widely-used commercial IDE, you’re more likely to find plenty of proficient developers than with any other MEAP offering.  Additionally, developers are more productive since they don’t have to use different or specialized tools to target laptops, tablets, smartphones, servers, or the cloud.  Competing MEAP vendors have unfamiliar native and hybrid SDKs or 4GLs while Microsoft has millions of seasoned developers.
  • Application Client Runtime: 
    • Gartner Definition: The client runtime logic for the application, either in native format or packaged within a container.
    • Microsoft Offering:  WinRT, .NET / Silverlight for thick clients and Internet Explorer for thin clients.
    • Value Proposition:  WinRT is supported across Windows 8, Windows RT, and Windows Phone 8.  .NET/Silverlight are supported across Windows, Windows Phone 7.5, Macintosh, Windows Mobile, Windows Embedded, and Symbian S60.  Internet Explorer 10 brings hardware-accelerated HTML5 and JIT-compiled JavaScript to Windows 7/8, Windows RT, and Windows Phone 8.  The only thick client runtime that’s competitive with Microsoft offerings is Java.  The thin client competition takes the form of fragmented WebKit-based browsers.
  • Enterprise Application Integration Tools:
    • Gartner Definition:  Tools for integration of mobile server with back end systems, both bespoke & purchased apps or application suites.
    • Microsoft Offering: Visual Studio SQL Server Data Tools.
    • Value Proposition:  Developers visually compose connections, actions, events and data movement rather than writing separate sets of integration code.  Adapters provide consistent connectivity to dozens of backend systems and data sources.  Microsoft is providing unrivaled, easy to use, drag and drop tools to connect ETL adapters with backend systems and databases.
  • Packaged Mobile Apps or Components:
    • Gartner Definition:  Self standing mobile applications or components.
    • Microsoft Offering:  Cross-platform offerings include Office, Internet Explorer, Bing, Lync, Skype, Tag, .NET Portable Class Libraries, and Exchange ActiveSync (EAS).
    • Value Proposition:  Same business productivity apps available across Windows, Windows Phone, the Web and the Mac.  Corporate and consumer communications are available across all platforms.  Portable class libraries allow developers to reuse code across phones, tablets, laptops, and the web.  The EAS client found in every major smartphone and tablet gives more people around the world access to Microsoft email, calendaring, contacts and device management than any other technology from any other competitor.
  • Multichannel Tools or Servers:
    • Gartner Definition:  Tools that allow for “write once, run anywhere” thick or rich mobile clients, cross compilers or environments or platforms that allow business logic to be supported across thin, thick, and rich mobile architectures.
    • Microsoft Offering:  Tools like Visual Studio allow development of cross-platform thick and thin apps.  Multi-channel transports like HTTP/SOAP/REST/EAS/XML/JSON, OData, and the Sync Framework support communication with any mobile client. Server technologies like Unified Access Gateway (UAG) and Azure securely publish services to any device.
    • Value Proposition:  Microsoft provides more tools, transports, and servers to securely enable any device than all competitors combined.  There’s a strong chance that your organization already owns these technologies.
  • Management Tools:
    • Gartner Definition:  Tools to provision, support, debug, update or decommission mobile apps.
    • Microsoft Offering:  System Center Configuration Manager (SCCM), Windows Intune, Exchange Server, Windows Store.
    • Value Proposition:  Exchange Server is a great BYOD solution that provides policy enforcement to every device that support EAS.  SCCM 2012 and Windows Intune support software distribution + device management of Windows, Windows Mobile, Windows Phone, Symbian, iOS, and Android devices.  Yes, this is the same SCCM product that has been around since the early 1990’s and already manages hundreds of millions of desktops, servers, and laptops with its enterprise-proven capabilities.  If you haven’t bought an MDM package yet, don’t panic.  The Exchange Server that most of the world’s organizations use for email will provide you with a solid baseline of policy enforcement and security to keep you covered.
  • Security:
    • Gartner Definition:  Secure enterprise data on device, while moving through wired & wireless networks, peripherals, & with backend systems & integration packages.
    • Microsoft Offering:  Policy enforced login, AES encryption for data at rest on the device and SSL for data in transit.  Apps tested, digitally signed & securely delivered via Windows Store or privately within enterprise.  Data at rest in client and middleware databases is encrypted.  SSIS integration packages are encrypted and signed.  Perimeter protection is accomplished in the DMZ via Unified Access Gateway with deep packet inspection.  Data leakage is mitigated via Microsoft’s Information Rights Management Server to lock down and/or expire emails and documents.
    • Value Proposition:  Microsoft technologies provide end-to-end security at every tier.  All bases are covered including data at rest, data in transit, perimeter protection, and data leakage prevention.
  • Hosting:
    • Gartner Definition:  The ability to host all development, provisioning, management functions, and optionally corporate data in the cloud.
    • Microsoft Offering:  Windows Intune, Windows Store, Windows Azure, Office 365, Team Foundation Service.
    • Value Proposition:  All Windows 8 and Windows Phone 8 apps are provisioned from the cloud.  Seamless location-based services and push notifications are provided to apps and live tiles from the cloud.  A wide range of mobile clients can access Azure services and storage via interoperable protocols like SOAP, REST, OData, XML, and JSON.  Azure Mobile Services provides rapid cloud development, storage, authentication, and push notifications across multiple mobile platforms.  No other MEAP vendor even comes close to providing this deep level of PAAS, SAAS, and IAAS capabilities as Microsoft’s cloud.

A visual representation of many of these critical capabilities is shown below:MEAP

Looking at the picture above, you see a thin line going across horizontally.  Everything below the line represents client capabilities whereas everything above the line lives in your data center or in the cloud.  On the left side you see both the client and server elements of device management and your integrated development environment illustrated in blue.  Staying below the line you see green blocks that represent thick and thin client runtimes as well as offline storage.  You might be wondering why I included native and web-based offline storage when they aren’t listed as critical capabilities.  In a world where there’s no such thing as a ubiquitous wireless network, you must be able to pre-fetch and store data offline so that your employees can keep working in the absence of connectivity.  Moving above the line, you see that all clients connect to your server infrastructure via a multichannel access gateway.  This is an edge server that provides reverse-proxy and/or VPN services.  Above that you have mobile middleware components that handle data integration, web communication, auth/security, caching, and potential data aggregation.

Now let’s move away from the generic view of a MEAP infrastructure and zoom into why organizations think this stuff is important.  It’s the tidal wave of devices!MEAP2

The use of corporate-liable wireless devices combined with the BYOD phenomenon has made “Mobile” the largest megatrend in the world of enterprise technology.  It’s already the largest megatrend with consumers.  Nothing else even comes close.  Now while I’d prefer that you use Windows Phones, tablets, and laptops, I want to make it easy for you to use your existing Microsoft server stack to support any mobile endpoint.  I realize that there is one large, and many small MEAP vendors in the marketplace.  In fact, the largest of those vendors is making a concerted effort to corner the enterprise mobile market via a number of MDM and MEAP acquisitions.  You should realize that there’s limited value in dropping potentially millions of dollars on unfamiliar server infrastructures and development technologies that aren’t nearly as easy to configure and work with as it says on the sales brochure or in the marketing demo.

Pragmatically speaking, you should use the Microsoft server stack you already own to provide your organization’s MEAP solution.

In the forthcoming articles I’ll be writing, I’ll bring your CIO’s top priority to life:

  • I’ll show you how to configure your own Mobile Middleware that integrates multiple data sources and acts as a server façade.  Microsoft SQL Server forms the core of your system where SQL Server Integration Services (SSIS) adapters connect to dozens of data sources and backend packages.  SQL Server aggregates, caches, and secures the composite data retrieved from those systems to boost client performance while reducing the load on backend systems.
  • I’ll show you how to easily expose this composite data via Web Services in a format consumable by any device.  Business entities built using .NET will model the schema created by the aggregated data.  Internet Information Services (IIS) and the ASP.NET Web API will expose those business entities to mobile clients.
  • I’ll describe how you can horizontally scale out your data tier in your Private Cloud while also providing geo-replication to additional data centers using SQL Server Transactional Replication.  This will be combined with the scaling-out of your web service tier via load-balancing.  If that’s not enough, you can take this high-level of scalability and performance to the next level using Microsoft AppFabric Caching to provide an in-memory distributed cache.
  • A Multi-channel Access Gateway is used to securely publish this data out to the Internet.  I’ll discuss how this task can be carried out by Microsoft Forefront Unified Access Gateway via the same mechanism you’re already using to provide email from your Exchange Servers to mobile devices.
  • Last but not least, I’ll show you how to consume these web services from a Windows 8 tablet app so your employees can work with data and perform transactions offline.  All along the way, you’ll see how I use a single IDE, Visual Studio, to bring every tier of your solution to life whether it be server logic, integration with backend systems, client logic, or UX.

Remember, the infrastructure folks in your IT department already know how to build, configure, and maintain the servers needed to build Microsoft MEAP.  At the same time, your developers get to leverage the .NET and web service skills they’ve been perfecting for the last decade.  The top priority for CIOs is to extend their organization’s critical data from their backend systems out to mobile devices.  I’m going to show you how to build it using the skills your IT folks already have, and the software and servers you already own, with support from the world’s largest software company.

– Rob

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

SQL Server Compact 3.5 Service Pack 2 Cumulative Update Package 7 RTW

SQL Server Compact

Hey folks, just wanted to let you know that cumulative update package 7 for SQL Server Compact 3.5 Service Pack 2 has been released to the web.

You can download the new bits over at http://support.microsoft.com/kb/2665342.

This is a hotfix for an incorrect sort order for a subscriber in SQL Server Compact 3.5 SP2 that synchronizes with a publisher in SQL Server.  For instance, you may have a column with an ASC index on SQL Server, but during sync, the sort order may not be specified.  The problem occurs due to an incorrect index creation statement in the .OUT file in the virtual directory on IIS.  Therefore, only the Server Tools need to be updated.  Both x86 and x64 versions of the update are available to download.

Keep in mind that cumulative updates 6 and above will allow your Windows tablets, laptops and Windows Embedded Handheld devices to sync with SQL Server 2012.

Go get things sorted out,

-Rob

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

Consumerization of IT Collides with MEAP: Android > Cloud

In my ‘Consumerization of IT Collides with MEAP’ article last week, I described how to connect Android smartphones and tablets to Microsoft’s On-Premise infrastructure.

In this week’s scenario, I’ll use the picture below to illustrate how Android utilizes many of Gartner’s Mobile Enterprise Application Platform Critical Capabilities to connect to Microsoft’s Cloud services in Azure:

image

As you can see from the picture above:

  1. For the Management Tools Critical Capability, there is no Cloud-based device management solution, policy-enforcement, or software distribution solution from Microsoft for Android. As I mentioned in last week’s post, consumer software distribution comes from the Android Market and the enterprise equivalent is facilitated via internal web servers and user-clickable URLs. Since Android is a wide-open system, competing markets and app stores are on the rise from Amazon and others.
  2. For both the Client and Server Integrated Development Environment (IDE) and Multichannel Tool Critical Capability, Android uses Visual Studio. Endpoint development consists of HTML5, ECMAScript 5, and CSS3 delivered by ASP.NET via Web Roles. WCF REST + JSON Web services can also be created and consumed via Ajax calls from the browser. On the Cloud side of things, the Windows Azure SDK plugs into Visual Studio and provides Android developers with everything they need to build Cloud applications. It includes a Cloud emulator to simulate all aspects of Windows Azure and AppFabric on their development computer. In scenarios where native development is required by the customers, the Windows Azure Toolkit for Android can be used to allow Java via Eclipse to securely communicate with the Microsoft cloud.
  3. For the cross-platform Application Client Runtime Critical Capability, Android uses the WebKit browser called Chrome to provide HTML5 + CSS3 + ECMAScript5 capabilities. Offline storage is important to keep potentially disconnected Android smartphones and tablets working and this is facilitated by Web Storage which is accessible via JavaScript.
  4. For the Security Critical Capability, Android 3.0 and higher provides hardware encryption based on the user’s device passcode for data-at-rest. Data-in-transit is secured via SSL and VPN. LDAP API support allows it to access corporate directory services. Auth in the Microsoft cloud is handled via the Windows Azure AppFabric Access Control Service (ACS).
  5. For the Enterprise Application Integration Tools Critical Capability, Android can reach out to servers directly via Web Services or indirectly through the Cloud via the Windows Azure AppFabric Service Bus to connect to other enterprise packages.
  6. The Multichannel Server Critical Capability to support any open protocol is handled automatically by Windows Azure. Cross-Platform wire protocols riding on top of HTTP are exposed by Windows Communication Foundation (WCF) and include SOAP, REST and Atompub. Cross-Platform data serialization is also provided by WCF including XML, JSON, and OData. These Multichannel capabilities support thick clients making web service calls as well as thin web clients making Ajax calls. Distributed caching to dramatically boost the performance of any client is provided by Windows Azure AppFabric Caching.
  7. As you might imagine, the Hosting Critical Capability is handled by Windows Azure. Beyond providing the most complete solution of any Cloud provider, Windows Azure Connect provides an IPSec-protected connection with your On-Premises network and SQL Azure Data Sync can be used to move data between SQL Server and SQL Azure. This gives you the Hybrid Cloud solution you might be looking for.
  8. For the Packaged Mobile Apps or Components Critical Capability, Android runs cross-platform mobile apps including Skype, Bing, MSN, Tag, Hotmail, and of course the critical ActiveSync component that makes push emails, contacts, calendars, and device management policies possible.

Samsung-Galaxy-Nexus-UK

While Android 3.0 and higher meets many of Gartner’s Critical Capabilities, it doesn’t fare very well when it comes to cloud-based device management.  While other mobile device platforms also come up short in this department, I’m sure this will change in the coming year.  The tidal wave of CoIT means that device management in the future will look very different from how it did 5 years ago.  Expect a clear separation between corporate apps/data and personal apps/data to be managed.

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

 

Consumerization of IT Collides with MEAP: Android > On-Premises

In my last ‘Consumerization of IT Collides with MEAP’ article, I described how to connect iPhones and iPads to Microsoft’s Cloud servers in Azure.

In this week’s scenario, I’ll use the picture below to illustrate how Android devices can utilize many of Gartner’s Critical Capabilities to connect to Microsoft’s On-Premise infrastructure:

image

As you can see from the picture above:

  1. For the Management Tools Critical Capability, Android uses Microsoft Exchange for On-Premise policy enforcement via Exchange ActiveSync (EAS) but has no private software distribution equivalent to System Center Configuration Manager 2007 from Microsoft today. Instead, in-house apps are hosted and APKs distributed via a web server over wireless by having a user click on a URL or through a variety of app stores. In the future, System Center Configuration Manager 2012 will be able to better manage Android devices.
  2. For both the Client and Server Integrated Development Environment (IDE) and Multichannel Tool Critical Capability, Android uses Visual Studio. While the Server/EAI development functionality is the same as every other platform, endpoint development will consist of HTML5, ECMAScript 5, and CSS3 delivered by ASP.NET. WCF REST + JSON Web services can also be created and consumed via Ajax calls from the browser.
  3. For the cross-platform Application Client Runtime Critical Capability, we will rely on Android’s WebKit browser to provide HTML5 + CSS3 + ECMAScript5 capabilities. Offline storage is important to keep potentially disconnected Android working and this is facilitated by Web Storage which is accessible via JavaScript.
  4. For the Security Critical Capability, Android 3.0 and higher provides hardware encryption based on the user’s device passcode for data-at-rest. Data-in-transit is secured via SSL and VPN. LDAP API support allows it to access corporate directory services.
  5. For the Enterprise Application Integration Tools Critical Capability, Android can reach out to servers directly via Web Services or indirectly via SQL Server (JDBC) or BizTalk using SSIS/Adapters to connect to other enterprise packages.
  6. The Multichannel Server Critical Capability to support any open protocol directly, via Reverse Proxy, or VPN is facilitated by ISA/TMG/UAG/IIS. Cross-Platform wire protocols riding on top of HTTP are exposed by Windows Communication Foundation (WCF) and include SOAP, REST and Atompub. Cross-Platform data serialization is also provided by WCF including XML, JSON, and OData. These Multichannel capabilities support thick clients making web service calls as well as thin web clients making Ajax calls. Distributed caching to dramatically boost the performance of any client is provided by Windows Server AppFabric Caching.
  7. While the Hosting Critical Capability may not be as relevant in an on-premises scenario, Windows Azure Connect provides an IPSec-protected connection to the Cloud and SQL Azure Data Sync can be used to move data between SQL Server and SQL Azure.
  8. For the Packaged Mobile Apps or Components Critical Capability, Android runs cross-platform mobile apps including SkypeBing, MSNTag, Hotmail, and of course the critical ActiveSync component that makes push emails, contacts, calendars, and device management policies possible.

Newer versions of Android (3.x/4.0) are beginning to meet more of Gartner’s Critical Capabilities. It’s really improved in the last year in areas of encryption, but device fragmentation makes this improvement uneven.  The app story is still the ‘Wild West’ since the Android Market is an un-vetted free-for-all. This big ‘red flag’ has given rise to curated app stores like the one from Amazon.  As you can see from the picture, the big gap is with the client application runtime critical capability. Native development via Java/Eclipse is where Google wants to steer you and Microsoft doesn’t make native tools, runtimes or languages for this platform. You can definitely perform your own due diligence on Mono for Android from our friend Miguel de Icaza and his colleagues in order to reuse your existing .NET and C# skills. From a Microsoft perspective though, you’re definitely looking at HTML5 delivered via ASP.NET.

Next week, I’ll cover how Android connects to the Cloud.

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

 

Consumerization of IT Collides with MEAP: iPhone + iPad > On-Premises

In my last ‘Consumerization of IT Collides with MEAP’ article, I described how to connect a Windows Phone device to Microsoft’s Cloud servers in Azure.

By now you’re probably thinking, “It’s easy to talk about Microsoft endpoints talking to Microsoft servers.” So in this week’s scenario, I’ll use the picture below to illustrate how iOS devices like the iPhone and iPad can utilize many of Gartner’s Critical Capabilities to connect to Microsoft’s On-Premise infrastructure:

image

As you can see from the picture above:

  1. For the Management Tools Critical Capability, iOS uses Microsoft Exchange for On-Premise policy enforcement via Exchange ActiveSync (EAS) but has no private software distribution equivalent to System Center Configuration Manager 2007 from Microsoft today. Instead, in-house apps are hosted and distributed via a web server over wireless by having a user click on a URL.  In the future, System Center Configuration Manager 2012 will be able to better manage iOS devices.
  2. For both the Client and Server Integrated Development Environment (IDE) and Multichannel Tool Critical Capability, iOS uses Visual Studio. While the Server/EAI development functionality is the same as every other platform, endpoint development will consist of HTML5, ECMAScript 5, and CSS3 delivered by ASP.NET.  WCF REST + JSON Web services can also be created and consumed via Ajax calls from the browser.
  3. For the cross-platform Application Client Runtime Critical Capability, we will rely on iOS’s WebKit browser called Safari to provide HTML5 + CSS3 + ECMAScript5 capabilities. Offline storage is important to keep potentially disconnected iPhones and iPads working and this is facilitated by Web Storage which is accessible via JavaScript.
  4. For the Security Critical Capability, iOS provides AES 256 hardware encryption as well as Data Protection based on the user’s device passcode for data-at-rest. Data-in-transit is secured via SSL, VPN, and 802.1X.  Built-in LDAP support allows it to access corporate directory services.
  5. For the Enterprise Application Integration Tools Critical Capability, iOS can reach out to servers directly via Web Services or indirectly via SQL Server or BizTalk using SSIS/Adapters to connect to other enterprise packages.
  6. The Multichannel Server Critical Capability to support any open protocol directly, via Reverse Proxy, or VPN is facilitated by ISA/TMG/UAG/IIS. Crosss-Platform wire protocols riding on top of HTTP are exposed by Windows Communication Foundation (WCF) and include SOAP, REST and Atompub. Cross-Platform data serialization is also provided by WCF including XML, JSON, and OData. These Multichannel capabilities support thick clients making web service calls as well as thin web clients making Ajax calls. Distributed caching to dramatically boost the performance of any client is provided by Windows Server AppFabric Caching.
  7. While the Hosting Critical Capability may not be as relevant in an on-premises scenario, Windows Azure Connect provides an IPSec-protected connection to the Cloud and SQL Azure Data Sync can be used to move data between SQL Server and SQL Azure.
  8. For the Packaged Mobile Apps or Components Critical Capability, iOS runs cross-platform mobile apps including OneNote, Bing, Tag, and of course the critical ActiveSync component that makes push emails, contacts, calendars, and device management policies possible.

As you can see, iOS meets many of Gartner’s Critical Capabilities.  It’s really improved over the years in areas of security and device management.  As you can see from the picture, the big gap is with the client application runtime critical capability.  Native development via Xcode/Objective-C is where Apple wants to steer you and Microsoft doesn’t make native tools, runtimes or languages for this platform.  You can certainly kick the tires and perform your own due diligence on MonoTouch from our friend Miguel de Icaza and his colleagues in order to reuse your existing .NET and C# skills.  From a Microsoft perspective though, you’re definitely looking at HTML5 delivered via ASP.NET.

Next week, I’ll cover how iOS connects to the Cloud.

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

 

Consumerization of IT Collides with MEAP: Windows > Cloud

In my Consumerization of IT Collides with MEAP article last week, I described how to connect a Windows 7 device to Microsoft’s On-Premises servers.

Whether you’re talking about a Windows 7 tablet or laptop, I showed that you can follow the Garter MEAP Critical Capabilities to integrate with our stack in a consistent manner.  Remember, the ability to support multiple mobile apps across multiple mobile platforms, using the same software stack is a key tenant to MEAP.  It’s all about avoiding point solutions.

If you need a refresher on the Gartner MEAP Critical Capabilities, check out: http://robtiffany.com/meap/consumerization-of-it-collides-with-meap-windows-on-premises

In this week’s scenario, I’ll use the picture below to illustrate how Mobile versions of Windows 7 in the form of slates, laptops, and tablets utilize some or all of Gartner’s Critical Capabilities to connect to Microsoft’s Cloud infrastructure:

image

As you can see from the picture above:

  1. For the Management Tools Critical Capability, Windows 7 uses Windows Intune for Cloud-based device management and software distribution.
  2. For both the Client and Server Integrated Development Environment (IDE) and Multichannel Tool Critical Capability, Windows 7 uses Visual Studio. The Windows Azure SDK plugs into Visual Studio and provides developers with everything they need to build Cloud applications.  It even includes a Cloud emulator to simulate all aspects of Windows Azure on their development computer.
  3. For the cross-platform Application Client Runtime Critical Capability, Windows 7 uses .NET (Silverlight/WPF/WinForms) for thick clients. For thin clients, it uses Internet Explorer 9 to provide HTML5 + CSS3 + ECMAScript5 capabilities. Offline storage is important to keep potentially disconnected mobile clients working and this is facilitated by SQL Server Compact + Isolated Storage for thick clients and Web Storage for thin clients.
  4. For the Security Critical Capability, Windows 7 provides security for data at rest via Bitlocker, data in transit via SSL, & Authorization/Authentication via the Windows Azure AppFabric Access Control Serivce (ACS).
  5. For the Enterprise Application Integration Tools Critical Capability, Windows 7 can reach out to servers directly via Web Services or indirectly through the Cloud via the Windows Azure AppFabric Service Bus to connect to other enterprise packages.
  6. The Multichannel Server Critical Capability to support any open protocol is handled automatically by Windows Azure. Crosss-Platform wire protocols riding on top of HTTP are exposed by Windows Communication Foundation (WCF) and include SOAP, REST and Atompub. Cross-Platform data serialization is also provided by WCF including XML, JSON, and OData. Cross-Platform data synchronization if provided by the Sync Framework. These Multichannel capabilities support thick clients making web service calls as well as thin web clients making Ajax calls. Distributed caching to dramatically boost the performance of any client is provided by Windows Azure AppFabric Caching.
  7. As you might imagine, the Hosting Critical Capability is knocked out of the park with Windows Azure.  Beyond providing the most complete solution of any Cloud provider, Windows Azure Connect provides an IPSec-protected connection with your On-Premises network and SQL Azure Data Sync can be used to move data between SQL Server and SQL Azure.  This gives you the Hybrid Cloud solution you might be looking for.
  8. For the Packaged Mobile Apps or Components Critical Capability, Windows 7 runs cross-platform mobile apps include Office/Lync/IE/Outlook/Bing.

As you can see from this and last week’s article, Windows 7 meets all of Gartner’s Critical Capabilities whether it’s connecting to Microsoft’s On-Premises or Cloud servers and infrastructure.  They great takeaway from the picture above, is Windows 7 only needs to know how to integrate its apps with WCF in the exact same way as is does in the On-Premises scenario.  Windows developers can focus on Windows without having to concern themselves with the various options provided by Windows Azure.  Cloud developers just need to provide a WCF interface to the mobile clients.

When an employee walks in the door with a wireless Windows 7 Slate device, you can rest assured that you can make them productive via Windows Azure without sacrificing any of the Gartner Critical Capabilities.

Next week, I’ll cover how Windows Phone connects to an On-Premises Microsoft infrastructure.

Rob

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

Consumerization of IT Collides with MEAP: Windows > On-Premises

The Consumerization of IT is an unstoppable force where employees are bringing every kind of mobile device imaginable into the office expecting to be productive.

Over the course of the next 20 articles, I’ll describe how IT professionals can use the principles of Gartner MEAP to connect any type of mobile device to Microsoft’s On-Premises and Cloud servers.

Gartner specifies the following Critical Capabilities that must be addressed in order for a given product or stack of products to be considered a Mobile Enterprise Application Platform (MEAP):

  • Integrated Development Environment

    A dedicated environment or plug-in for composing backend server and client side logic, including UI and UX

  • Application Client Runtime

    The client runtime logic for the application, either in native format or packaged within a container.

  • Enterprise Application Integration Tools

    Tools for integration of mobile server with back end systems, both bespoke and purchased apps or application suites.

  • Packaged Mobile Apps or Components

    Self standing mobile applications or components.

  • Multichannel Tools or Servers

    Tools that allow for “write once, run anywhere” thick or rich mobile clients, cross compilers or environments or platforms that allow business logic to be supported across thin, thick, and rich mobile architectures.

  • Management Tools

    Tools for provisioning, supporting, debugging, updating or decommissioning mobile applications.

  • Security 

    Tools for ensuring the security and privacy of enterprise data on board the device, while transiting through wired or wireless networks, through peripherals, and with backend systems and integration packages.

  • Hosting

    The ability to host all development, provisioning, management functions, and optionally corporate data.

    In this first scenario, I’ll use the picture below to illustrate how Mobile versions of Windows 7 in the form of slates, laptops, and tablets utilize some or all of Gartner’s Critical Capabilities to connect to an On-Premise Microsoft infrastructure:

image

As you can see from the picture above, Windows 7:

  1. For the Management Tools Critical Capability, Windows 7 uses System Center Configuration Manager (SCCM) 2007 for on-premises device management and software distribution.
  2. For both the Client and Server Integrated Development Environment (IDE) and Multichannel Tool Critical Capability, Windows 7 uses Visual Studio.
  3. For the cross-platform Application Client Runtime Critical Capability, Windows 7 uses .NET (Silverlight/WPF/WinForms) for thick clients.  For thin clients, it uses Internet Explorer 9 to provide HTML5 + CSS3 + ECMAScript5 capabilities.  Offline storage is important to keep potentially disconnected mobile clients working and this is facilitated by SQL Server Compact + Isolated Storage for thick clients and Web Storage for thin clients.
  4. For the Security Critical Capability, Windows 7 provides security for data at rest via Bitlocker, data in transit via SSL+VPN, data in the database via RSA/AES, & Authorization/Authentication via Active Directory.
  5. For the Enterprise Application Integration Tools Critical Capability, Windows 7 can reach out to servers directly via Web Services or indirectly via SQL Server or BizTalk using SSIS/Adapters/Sync to connect to other enterprise packages.
  6. The Multichannel Server Critical Capability to support any open protocol directly, via Reverse Proxy, or VPN is facilitated by ISA/TMG/UAG/IIS.  Crosss-Platform wire protocols riding on top of HTTP are exposed by Windows Communication Foundation (WCF) and include SOAP, REST and Atompub. Cross-Platform data serialization is also provided by WCF including XML, JSON, and OData. Cross-Platform data synchronization if provided by the Sync Framework.  These Multichannel capabilities support thick clients making web service calls as well as thin web clients making Ajax calls.  Distributed caching to dramatically boost the performance of any client is provided by Windows Server AppFabric Caching.
  7. While the Hosting Critical Capability may not be as relevant in an on-premises scenario, Windows Azure Connect provide an IPSec-protected connection to the Cloud and SQL Azure Data Sync can be used to move data between SQL Server and SQL Azure.
  8. For the Packaged Mobile Apps or Components Critical Capability, Windows 7 runs cross-platform mobile apps include Office/Lync/IE/Outlook/Bing.

It should come as no surprise that Windows 7 has a compelling and complete MEAP story to address the issues surrounding the Consumerization of IT (CoIT) when an employee walks in the door with a wireless Windows 7 Slate device.

Next week, I’ll cover how Windows 7 connects to the Cloud.

Rob

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

The Important User Experience (UX) You Can’t See

Cellular Tower

Whenever I hear the term, “UX,” I immediately think of graphic designers, artists and folks who focus on making the UI of your application beautiful.

Nine times out of ten, this is the appropriate connection to make.  Great UX folks at Microsoft came together to make Windows Phone 7 the most visually-appealing smartphone on the market and that’s a good thing.  Lucky for me, great UX folks come to my rescue all the time because while I can build functional and usable client applications that solve users problems, my stuff isn’t that pretty.  Gotta love Expression Blend and the people who can use it to transform your app!

There’s lots of folks out there that think they don’t have an actual connection to the end user because they develop on-premise and cloud server APIs.  You know who I’m talking about.  Server developers who are building Web Services using WCF to expose functionality to be consumed by clients.  Web developers that are creating dynamic ASP.NET web pages that make AJAX requests.  Well, I’m one of those people too.

Just because you don’t build client UI’s that people can see and touch, doesn’t mean you don’t have an important impact on UX.

Once a user gets past the “skin-deep” beauty of the UI you typically think of, they’re often more concerned about accomplishing the task that the mobile app was designed for.  If a user taps on a button and has to wait over a minute to retrieve and display the data they’re requesting, it’s fair to say that they just had a poor user experience.

Cellular Tower

In our new world where wirelessly-connected smartphones and tablets rule the day, a number of factors that you may not have thought of, come into play that impact user experience.  After the user clicks the button, and before data is retrieved, quite a few steps are taken through a very long path:

  1. Your Request is transmitted from the device to the nearest cell tower while competing for bandwidth with hundreds or thousands of other nearby mobile devices all doing the same thing.  Oh, and those 3G and psuedo-4G speeds you read about are only achieved in perfect conditions with a limited number of wireless devices connected at any given time.
  2. Your Request travels down the tower to the base station.
  3. Your Request travels from base station to the mobile operator’s backhaul network where it competes with millions of other requests for bandwidth across fiber and other types of circuits.  Keep in mind that despite providing fast wireless speeds in perfect conditions, the amount of bandwidth in the various mobile operators backhaul networks varies widely.
  4. Your Request jumps on to the public Internet and starts hopping through routers.
  5. Your Request hits the outer firewall of the Domain you’re trying to reach.
  6. Your Request might hit a reverse proxy.
  7. Your Request might go through a back firewall as it leaves the DMZ to enter a corporate network.
  8. Your Request finally gets to the intended server, and depending on the amount of traffic it’s experiencing, it will wait in an invisible queue created by the server operating system until it gets processed.
  9. Your Response travels back through all those same hoops to get back to your wireless, mobile device.

Wow, I’m already tired just thinking about that!

So it should be clear that despite the great convenience provided by wireless data networks, there are a lot of hoops built into the system that work against you to diminish the user experience.  Doctors take an oath to “do no harm,” and I think server developers should take that oath to heart.  You have a lot of options to consider to make this wireless journey as fast as possible in order to put a smile on the user’s face.  Besides fast servers, lots of processor cores, fast SANs, caching, queuing, scaling out, data sharding, using the best SQL query plan, using faster code algorithms and such, I want you to optimize the stuff that’s actually going over the wireless network.  I want to make sure you “do no harm,” and that means not using fat, slow transports and wire protocols to move your data between devices and servers.

If you’ve been to my Tech Ed sessions or read past blog posts from me, you know that speed and efficiency mean a lot to me.  In the past, I’ve demonstrated 4 different ways to return a list of 8 delivery drivers from SQL Azure.  Depending on the choice the server developer made, the resulting user experience could be bad or good.

  1. Worst:  Using OData with all it’s helpful metadata, the list of drivers used 8.54 kb of data.
  2. Not as bad:  Using SOAP + DataSets, the list of drivers used 3 kb of data.
  3. Much better:  Using REST + XML, the list shrank to 1.24 kb of data.
  4. Best:  Using REST + JSON, the list dropped all the way down to 639 bytes.

Each one of the examples above returned the data my user was asking for, but they diverged in how much bandwidth they ate along the way.  Guess what happens if you take advantage of the built-in gzip + deflate compression capabilities found in IIS 7?  Through the use of the URL Rewrite Module, tweaks to your web.config file, and specifying an Accept-Encoding header like Nick Randolph figured out, you can shrink the 639 bytes to a fraction of that size.  Now we’re talking great user experience here!

Now you’re on the right track with efficient, compressed, REST + JSON Web Services, so let’s move on to the mobile web.

Those giant, flashy websites you’ve been building since the 90’s aren’t going to cut it on mobile devices.  It doesn’t matter that your iPhone or Windows Phone 7 browser can render the Wall Street Journal in all its glory.  It’s not a good user experience.  Have you ever heard the phrase, “just because you can do something, doesn’t mean you should do that thing?”  Just because my mobile browser can flawlessly render the New York Times, doesn’t mean my user is interested in waiting till the next ice age of it to download and fully render.  Oh, and then you have to pinch and zoom to actually find anything that your eyes can read.  Do your users a favor and view my Tech Ed Europe session on the mobile web and download the mobile web best practices cards to build web sites for small screens and slow wireless networks with lots of latency.

Mobile web sites should be displayed in a single column, heavy on text, light on pictures and graphics, and weigh-in at under 20 kb in size.  Yes, I just said under 20 kb.  Just in case you’ve heard otherwise, the secret to a successful mobile web site is not HTML 5.  Remember, the mobile web is all about reaching as many users as possible with your site or web application.  I’ll have more to say about this in my forthcoming book on the subject.

So what’s the big takeaway here?

Cloud and on-premise server developers have a big role to play in UX even if you can’t always see what they’re doing!

Keep coding,

-Rob

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]

SQL Server Compact 4.0 Lands on the Web

SQL Server

A decade has passed since I first started using SQL CE on my Compaq iPAQ.  What started as a great upgrade to Pocket Access turned into the ultimate embedded database for Windows CE, the Pocket PC, Windows Mobile and Windows Phones.  The one-two punch of Outlook Mobile synchronizing email with Exchange and SQL Server Compact synchronizing data with SQL Server helped set the mobile enterprise on fire.  In 2005, version 3.0 supported Windows Tablets and progressive enhancements to the code base led to full Windows support on both x86 and x64 platforms.  With the new version 4.0, the little-database-that-could has grown up into a powerful server database ready to take on the web.

We’ve come a long way and you’re probably wondering what qualifies this new embedded database to take on the Internet:

  • Native support for x64 Windows Servers
  • Virtual memory usage has been optimized to ensure the database can support up to 256 open connections – (Are you actually using 256 pooled connections with your “Big” database today?)
  • Supports databases up to 4 GB in size – (Feel free to implement your own data sharding schemeSQL Server Compact)
  • Developed, stress-tested, and tuned to support ASP.NET web applications
  • Avoids the interprocess communications performance hit by running in-process with your web application
  • Row-level locking to boost concurrency
  • Step up to Government + Military grade security SHA2 algorithm to secure data with FIPS compliance
  • Enhanced data reliability via true atomicity, consistency, isolation, and durability (ACID) support
  • Transaction support to commit and roll back grouped changes
  • Full referential integrity with cascading deletes and updates
  • Support ADO.NET Entity Framework 4 – (Do I hear WCF Data Services?)
  • Paging queries are supported via T-SQL syntax to only return the data you actually need

Wow, that’s quite a list!  SQL Server Compact 4.0 databases are easily developed using the new WebMatrix IDE or through Visual Studio 2010 SP1.  I’m loving the new ASP.NET Web Pages.  It reminds me of the good old days of building web applications with Classic ASP back in the 90’s with Visual InterDev and Homesite.

What about Mobility?

Since SQL Server Compact owes its heritage to mobile and embedded versions of Windows, you might be wanting to know what our story is there.  The good news is that you can build and deploy v4.0 databases on Windows XP, Windows Vista, and Windows 7.  If you want to implement an occasionally-connected solution that utilizes the Sync Framework, Remote Data Access (RDA), or Merge Replication, you’ll need to stick with SQL Server Compact 3.5 SP2.  Time and resource-constraints prevented the Compact team from enabling these features.  Luckily, single-user WPF/WinForms database applications running on Windows Slates, laptops and Windows Embedded Handheld devices will work just fine with the v3.5 SP2 runtime.  Get a jumpstart with this by pickup up “Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL Server Compact 3.5 Mobile Merge Replication” at   http://www.amazon.com/Enterprise-Synchronization-Microsoft-Compact-Replication/dp/0979891213/ref=sr_1_1?s=books&ie=UTF8&qid=1281715114&sr=1-1 to start building those MEAP solutions.

With the tidal wave of Windows Slates hitting the market, a secure, powerful mobile database that allows users to work offline and syncs with SQL Server is definitely going to be a hot item!

So run, don’t walk to the Microsoft Download site to download the Next-Gen database for the web:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2

If you need to support occasionally-connected mobile applications with sync capabilities on muliple Windows platforms, download SQL Server Compact 3.5 SP2:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e497988a-c93a-404c-b161-3a0b323dce24

Keep Syncing,

Rob

Sharing my knowledge and helping others never stops, so connect with me on my blog at http://robtiffany.com , follow me on Twitter at https://twitter.com/RobTiffany and on LinkedIn at https://www.linkedin.com/in/robtiffany

Sign Up for my Newsletter and get a FREE Chapter of “Mobile Strategies for Business!”

[mc4wp_form id=”5975″]