Archives For IIS

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

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

 

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.

Best Regards,

Rob

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.

Best Regards,

Rob

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.

Best Regards,

Rob