Electronic Joint Business

Solution for E-Business

azure

基于 Azure 的物联网应用 — 宠物追踪器

本文介绍如何用 Azure 来实现一个 IoT 应用 — 宠物追踪器。这里是线上演示

根据统计每年大概有1千万只宠物走失。所以这篇文章将配合 IoT 和 Azure 等相关技术,帮你轻松地定位走失的宠物。1 ;当然本文所使用的硬件目前只适合用于产品原型或者实验目的,现实中应该根据宠物的大小来选择小而轻的元件和芯片来构建,因为没有人希望狗狗背个沉甸甸的东西。这里用到的硬件有:

  • Arduino
  • GSM/GPRS 扩展卡
  • GPS 扩展卡
  • 可充电电池套件

除了上述 IoT 设备,主要用到的技术还包括:

  • Azure Worker Role – TCP 监听器
  • Azure 网站,用来显示追踪宠物的地图

背景
如果你对 Arduino 不熟悉,请先阅读一下相关背景知识:Arduino 基础 GPRS 扩展卡基础

图1-1 是个简化框图,显示了这个应用是如何工作的。

>>> 阅读全文

 

, ,

基于物联网和 Azure 云的 “Gilt” 网站产品分析

本文的设计构想源自一次自我挑战:我想利用物联网和 Azure 平台做点有趣的东西。该设计的出发点之一,就是充分利用当前的成熟技术如 Azure 云,并以解耦的方式实现物联。稍后你将看到,本文所构建的模型的整体实现都是是以高度松耦合的组件来设计的。1

该设计围绕着 Gilt 电商平台,该站点以优惠价销售包括男装、女装、童装等各类产品。它还提供了开发者 API ,当然少不了要注册帐号以获得应用授权。由于 Gilt 提供了简单优雅的 REST API,可以很容易地创建应用以获得各种产品信息,进而实现产品分析。

相关技术
该设计基于微软的 Azure 云技术,这里列出了所用到的 Azure 服务。

  • Azure Scheduler: 针对每个产品目录都会创建一个 Azure Scheduler,以触发对当天产品的分析.
  • Azure Worker: 用以处理长时间运行的任务以收集 Gilt 产品信息
  • Azure 移动服务平台或 Website:基于 Azure 的移动服务或 website,用以按目录或时间显示所有的产品。它包含两个主要的 Azure worker ,一个用以处理 Event Hub 消息,另一个从服务总线队列(Service Bus Queue)接受消息,并将 Gilt 产品信息导入到 Azure 表存储(Azure table storage)中。
  • Pusher: 用来推送通知,如用户设定的某价格区间内的产品。我们将使用 Pusher 客户端,它可以订阅 Azure Scheduler 发布的频道和事件。
  • 机器学习:我们将借助机器学习来分析不同目录的产品信息
  • MongoDB: Azure 市场服务现在也提供 MongoLabs 的 MongoDB,我们用它来处理数据分类汇总
  • 事件集线器和服务总线队列:我们用到了 Azure 的事件集线器和服务总线队列,因此在模型 2 中 Raspberry PI 上运行的 Gilt 应用收集 Gilt 产品信息并将分类汇总的 Gilt 产品信息提交给事件集线器。从而 Azure worker 针对事件集线器的消息进行处理并将处理过的消息发送给服务总线队列。

在模型 2中我们用到了事件集线器,这与我建立的第一个模型有所不同。稍后你可通过例子了解它是如何工作的。

物联网
这里用到的组件有 Raspberry PI、Arduino 和 GSM Modem。Raspberry PI 和 Arduino 之间通过 USB 转串口的接口互相连接。我们还用到了 GSM 板卡 SIM900,该板卡可以组装在 Arduino 上。

>>> 阅读全文

 

, , , ,

创建推荐引擎: 基于 Azure, Hadoop 和 Mahout 的机器学习

喜欢帮助别人的感觉吗?

我们将根据 Stack Exchange 用户回答问题的历史,向他提供一些“建议回答”的问题。这与亚马逊上根据购物记录来推荐商品的经验十分相似。如果你不知道 Stack Exchange 是个什么?建议你登录一下Stack OverFlow

通过本文,你可以了解如何根据对用户的历史“答案”的分析,来预测他可能可以回答的问题。也许 Stack Exchange 现在的推荐系统比我们实现的要更棒,但这不妨碍我们本着学习的目的来重复造一个轮子。1

我们将要完成以下任务:

  • 从 Stack Exchange 数据集中提取所需的信息
  • 利用得到的信息来构建推荐系统

让我们从最基础的开始。如果你对 Apache Hadoop 以及在 Azure 上部署 Hadoop 完全陌生,我建议你试读一些介绍文章。2

>>> 阅读全文

 

, , , ,

使用Azure和CloundDrive运行MongoDB

Running MongoDb on Microsoft Windows Azure with CloudDrive
I’ve been playing around with the whole CQRS approach and think MongoDb works really well for the query side of things. I also figured it was time I tried Azure so I had a look round the web to see if there we’re instructions on how to run MongoDb on Microsoft’s Azure cloud. It turned out there were only a few mentions of it or a general approach that should work but no detailed instructions on how to do it. So, I figured I’d give it a go and for a total-Azure-newbie it didn’t turn out to be too difficult.

Obviously you’ll need an Azure account which you may get with MSDN or you can sign-up for their ‘free’ account which has a limited number of hours included before you have to start paying. One thing to be REALLY careful of though – just deploying an app to Azure starts the clock running and leaving it deployed but turned off counts as hours so be sure to delete any experimental deployments you make after trying things out!!

First of all though it’s important to understand where MongoDb would fit with Azure. Each web or worker role runs as a virtual machine which has an amount of local storage included depending on the size of the VM, currently the four pre-defined VMs are:

•Small: 1 core processor, 1.7GB RAM, 250GB hard disk
•Medium: 2 core processors, 3.5GB RAM, 500GB hard disk
•Large: 4 core processors, 7GB RAM, 1000GB hard disk
•Extra Large: 8 core processors, 15GB RAM, 2000GB hard disk
This local storage is only temporary though and while it can be used for processing by the role instance running it isn’t available to any others and when the instance is moved, upgraded or recycled then it is lost forever (as in, gone for good).

For permanent storage Azure offers SQL-type databases (which we’re not interested in), Table storage (which would be an alternative to MongoDb but harder to query and with more limitations) and Blob storage.

>>> 阅读全文

 

, ,

在Azure中运行MySQL

由于不同的原因,我手头的许多Azure应用都必须依赖于MySQL。例如,我手头的Joomla开发就完全依赖于MySQL。大部分情况下,这是因为在应用中使用了MySQL的原生驱动,而未不是设计一个数据库独立层,类似.NET中的ADO.NET或者PHP中的PDO,或者裁剪掉那些MySQL特有特性。基于上述的理由,要在Windows Azure中运行这些应用,不得不想方设法让MySQL在Azure中运行。

这其实没有想象的困难,在此过程中,我可以重用许多二进制可执行文件。

想法与建议
在深入让MySQL运行起来的技术细节之前,我想先分享一下个人对于在Azure中运行MySQL的观点,在我告诉你别这么做之前,你可以节约阅读这篇文章的时间,

现实是即使你能在Windows Azure中运行MySQL,这么做也不太实际。我的建议是把它保留做你最后的法宝或者权宜之计直到Sql Server能够支持你的应用。我这么说是有许多原因的,有些是技术方面的,有些是财务方面的。因此,本文更多是关注在Azure运行和管理MySQL的过程,而不是非要这么做。

现在,让我们来深入技术问题。在Azure中运行MySQL的方法是创建一个Worker Role,它会作为二进制文件的实际宿主。你只要拷贝出可执行文件,然后编写简单的Windows Azure相关代码来实际执行应用,并传递请求给它。事实上,任何可执行文件只要可以通过xcopy发布而且无休止运行的都可以通过这个方法来实现。这对于进行分布式计算之类的事情是相当棒的。

>>> 阅读全文

 

, , , ,

基于Azure开发和发布PHP应用

云计算是当今IT世界的头等大事。云计算(Cloud Computing)是网格计算、分布式计算、并行计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。提供资源的网络被称为“云”。

“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。

简单的说云计算简化了企业 IT 的基础架构且给企业提供了更大的可配置性和灵活性。在原有模式下如果构建一个小型的应用,你需要租用服务器、需要考虑租用服务器的安全和稳定因素等。如果构建一个中大型的应用,我们需要花巨资购买硬件来集群,然后花巨额资金购买所需的系统软件并且聘用一些人员来维护系统。

现在云平台能提供我们程序所需的硬件设备和软件设备,用户所要做的只是根据自己的需要租用这些已有的资源,上传应用程序并修改配置文件,就可以灵活扩展或收缩所占用的资源,以达到合理利用资源的目的,同时也减少了维护这些软硬件的成本。

在这篇文章中,我们将关注云平台之一 — 微软的 Windows Azure,并演示如何在此平台上部署 PHP 应用,虽然我们不打算深入去了解云技术的方方面面,但是我会尽量提供相关的信息和资源,为你今后的学习打下基础。

>>> 阅读全文

 

, , , , , , , , ,

在Azure上开发部署Tomcat Java应用

文章评价:
也许你还不知道,微软的 Windows Azure 支持多种异构平台环境,在 .NET 之外,用户还可以运行多种语言和平台,比如Java, PHP, Ruby 等等,你甚至可以使用完整的 Web 应用服务器,比如 Tomcat,关系型数据库比如 MySQL,还可以使用像Eclipse 这样的 IDE。详细信息可以参考这里

在这篇文章里,我们想介绍如何开发和部署一个简单的 Java 应用”Hello,World”到 Windows Azure 里,我们会先用Windows Azure SDK 提供的本地 Dev-Fabric 进行演示,之后会将其部署到真正的 Windows Azure 云端里。

准备工作
首先当然是需要下载 Azure SDK,Azure SDK 依赖于 IIS 服务器,在 Windows 7 上,可以在控制面板中的“程序与功能”中,点击“打开或关闭Windows功能“,在列表中选择 IIS(internet信息服务),同时需要勾选它的 ASP.NET 扩展。

此外,Azure 的 Storage Emulator 还依赖于 SQL Express,这是 Microsoft SQL Server的裁剪版,你可以在这里下载一份拷贝。

接下来我们需要准备一些工具,包括安装 JDK,Tomcat 等等,你还需要下载安装 Eclipse IDE (WTP)。注意,不要安装Tomcat的‘32-bit/64-bit Windows Service Installer’, 因为 Windows 服务是无法在 Azure 上部署的。详细安装过程略过。 Eclipse WTP 的安装直接解压即可。

>>> 阅读全文

 

, , , , , , ,