如火般的风马: 快速迁移本地项目到Bluemix云平台

来源:互联网 发布:控制算法工程师 编辑:程序博客网 时间:2024/05/01 01:33

傍晚办公室里柔和的灯光映衬下, Sonos里面想起了老郑悠扬的新歌《风马》。

自由的奔跑
在梦中的世界
永远不停息
……

老郑的这首《风马》不禁让笔者感慨起移动互联网快速发展下的拼搏与迷茫。 如何快速的将想法变成可以发布的项目, 确实困扰了很多的初创团队。 今天笔者就来简单的分享一下自己团队的经验的一部分,由于项目很多东西还处在保密研发阶段, 这里笔者参考国外的一些用例来给大家介绍一下。

首先,来介绍一下我们为什么要把项目迁移到云平台。 其实对于我们团队来说原因比较简单, 人少, 钱少, 资源少,所以需要抱大腿, 找个成熟, 稳定, 工具多构建简单的平台对于我们来说比较关键,同时不再需要担忧安装软件或处理虚拟机镜像或硬件等问题,还有就是安全问题等运维的各个方面。 同时还有原因是我们团队的人都是从IBM, 诺基亚等外企出来的, 所以不自觉的就会把国外的比较成熟的云平台来考虑, 同时以后我们所面向的客户会有很多来自海外的用户, 不如一步到位找个国际化的平台提供商。 综上各种原因, 最终大家选择了Bluemix云平台。这里要提的是很多人在初次用IBM Service的时候很容易被吓到, 为什么这么多选项和内容。 其实这也是专业的一种表现。:)

简单的介绍一下什么是Bluemix和Cloud Foundry(已经很了解的朋友可以跳过这一部分了)

Bluemix 是 IBM 基于 Cloud Foundry 的开放云架构实现,使您能够快速创建、部署和管理云应用程序。因为 Bluemix 基于 Cloud Foundry,所以您可利用运行时框架和服务的一个不断成长的生态系统。除了提供更多框架和服务之外,Bluemix 还提供了一个仪表板来创建、查看和管理应用程序和服务,并监视应用程序的资源使用情况。Bluemix 仪表板还提供了管理组织\空间和用户访问的能力。

Cloud Foundry 是一个开源的平台即服务 (PaaS)(这个对于笔者很重要, 因为笔者有开源情节, 没办法, 被以前老大灌输太多了),它允许您在云上快速创建和部署应用程序。由于它的开源根基,Cloud Foundry 并不是特定于供应商的,不会将您禁锢在专用软件或云基础架构中。Cloud Foundry 抽象出了运行云所需的底层基础架构,使您可以将精力集中在构建云应用程序的工作上。Cloud Foundry 的美妙之处在于它提供了选择。开发人员和组织可以选择:

开发框架:Cloud Foundry 支持 Java™ 代码、Spring、Ruby、Node.js 和自定义框架。
应用服务:Cloud Foundry 提供了对 MySQL、MongoDB、PostgreSQL、Redis、RabbitMQ 和自定义服务的支持。
:开发人员和组织可选择在公共云、私有云、VMWare 和基于 OpenStack 的云中运行 Cloud Foundry。

然后咱们再简单谈谈如何具体的构建:
今天我们这里主要会用到的是Bluemix面的Mobile Data服务。

Mobile Data 是一个简单的数据存储服务。您可以使用 Mobile Data 服务来存储需要从移动客户端创建和持久保存的对象。

Bluemix Mobile架构如下, 当然其中的很多实现并没有看上去那么简单:
这里写图片描述

准备工作:
1. 搭建自己的Android开发环境, 可以使用Eclipse+ADT或者的Android Studio。 说实在的笔者一直还是不太适应Android Studio, 但是没办法, 大势所趋, google都这么干了,所以只能适应。
2. 一个注册好的Bluemix 账号。 这里还是建议大家在使用之间对Bluemix有个大概的了解。 IBM文档是出奇的全, 所以大家可以找到很多线上线下的资源去参考。

具体的步骤
云端的setup

  1. 登陆到Bluemix云平台。

  2. 如果您是第一次登陆, 可惜先熟悉一下整个界面
    这里写图片描述

  3. 首先您如果还没有自己的Space, 需要新建一个自己的space。这样方便以后的管理

  4. 新建一个app template, 这个是一个比较友好和简单的界面, 所有步骤都有说明和指导
    这里写图片描述

  5. 然后点击MOBILE
    这里写图片描述

  6. 你可以选择Mobile或iOS8。这点点击Mobile, 其中sdk下载地址 https://www.ng.bluemix.net/docs/#starters/mobile/index.html#index
    这里写图片描述

  7. 点击Continue, 然后输入App名字
    这里写图片描述

  8. 然后这个app 模板就建好了
    这里写图片描述

本地Android Setup:
1.. 下载android样例, 下载地址为https://www.ng.bluemix.net/docs/starters/mobile/index.html#samples。 或者可以通过git clone:
git clone https://hub.jazz.net/git/mobilecloud/bluelist-mobiledata。 Android项目在 bluelist-mobiledata-android下

2..导入Android项目:
Eclipse:
a. 点击File > New > Project….
b. Android > Android Project from Existing Code
c. 点击浏览选择要导入的项目
d. 点击Copy projects into workspace

Android Studio:
a. 点击File > Import project.
b. 把项目放在android的root文件夹下
c. 点击ok

3.. 下面我们单从Eclipse来说, 将下载的SDK中的lib文件ibmbluemix.jar、ibmdata.jar 和 ibmfilesync.jar复制到libs里面。
这里写图片描述

4.. 然后再将 applicationID、applicationSecret 和 applicationRoute 值复制到项目的 assets 文件夹中的project.properties 文件中。

5.. 在 AndroidManifest.xml 中添加网络访问权限

<uses-permission    android:name="android.permission.INTERNET" /><uses-permission    android:name="android.permission.WAKE_LOCK" /><uses-permission    android:name="android.permission.GET_ACCOUNTS" /><uses-permission    android:name="android.permission.USE_CREDENTIALS" /><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />

6.. 初始化SDK并注册服务
a. 定义两个常量,使用它们从 bluelist.properties 文件中读取数据。
这里写图片描述
b. 在创建应用程序时,读取 bluelist.properties 文件来获取应用程序 ID。在 onCreate 方法中执行以下编辑:
这里写图片描述
c. 创建 Android 应用程序时,初始化 SDK,初始化服务,并注册 Item 规范。在 onCreate 方法中,在读取 properties 文件的代码之后执行以下编辑:
这里写图片描述

7.. 通过扩展 Mobile Data 的 IBMDataObject,并将此类标注为IBMDataObjectSpecialization,集成 IBM Mobile Data for Bluemix 服务。一定要记得添加NAME 字符串,以后会将它用作一个用来访问对象的键。
这里写图片描述

8.. 编辑 getName() 和 setName() 方法,以便使用 Mobile Data 服务的 getObject 和setObject 方法。与对象关联的值通过键来引用。您可使用 setObject(, ) 设置值,使用 getObject() 来检索它们。然后再组织导入

9.. 然后在MainActivity类中,
a. 实现 listItems 方法来从 IBM Mobile Data for Bluemix 服务读取数据项。我们将按不区分大小写的字母顺序来排序这些项。创建 listItems 作为 MainActivity 类的方法。

b.  在 onCreate 方法中设置 ArrayAdapter 后,调用 listItems() 在列表中填充已使用 IBM Mobile Data for Bluemix 服务存储的项。c.  更改 createItem 方法,以便使用一个 IBMDataObject 类实例创建新项。在该实例上调用 Mobile Data 的 save() 方法,并使用 continueWith() 方法来处理错误或加载更新的列表。d.  对 deleteItem 方法执行一些更改。它现在将在 IBMDataObject 类的一个实例上调用 Mobile Data 的 delete() 方法。delete() 方法返回一个 Bolts Task,用于检查任务是成功还是失败了。

10.. 在EditActivity中更新服务数据,finishedEdit 方法将在要更新的 IBMDataObject 的实例上调用 Mobile Data 的save() 方法。实现 continueWith() 方法来处理所有错误。
这里写图片描述

11.. 然后点击运行程序, 具体步骤这里就不赘述了。

12.. 最后去云平台上查看数据就可以了。

这里参考了IBM的很多资源, 只是给大家抛砖引玉来介绍一下啊, 知道大家在刚开始的时候肯定会像我们一样根本不知道如何操作。 我们团队现在也在不断的实践中, 希望将来大家可以使用我们的云穿戴设备。 具体的就不透漏啦, 欢迎大家多和我们一起探讨, 同时也和诸位IBM的大牛们学习。

0 0
原创粉丝点击