前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Bluemix,NoSQL DB和Watson创建云应用程序

使用Bluemix,NoSQL DB和Watson创建云应用程序

作者头像
老人雨何
发布2018-01-05 16:46:16
1.8K0
发布2018-01-05 16:46:16

大家好,自从我上次写文章已经很久了。事实上,这几年,我总是忙于工作。我现在是IBM的Bluemix平台的云架构师。我在Tomcat服务器上用Web应用程序编写了一个在Bluemix上运行的示例应用程序,该应用程序网页由JavaScript编写和用于后端Java编写的的网页。我使用DBaaS - Cloudant数据库。我也使用Watson语言翻译服务。

我上面做的应用是为了解决像下面的问题:

世界知名厨师Gabriel是这个地球上最有名的厨师之一。他的食谱受到来自世界各地的每个人的高度追捧。

人们对于他惊人的食谱的需求是非常高的,因此,他希望能够与地球上,不管说什么语言的每个人分享。此外,当他有新想法时,他不断地改变和更新他的食谱,然后联系IBM寻求解决方案。

建议的解决方案

IBM架构师Gabriel建议厨师Gabriel可以使用Cloudant(一个NoSQL DB)将所有食谱存储在SoftLayer Cloud中(数据库的确切细节不会与厨师共享,因此厨师不需要理解技术术语)。

厨师Gabriel的网站也可以在Bluemix(SoftLayer)中进行托管。该网站将连接到数据库,其中包含他所有的食谱。由于来他网站的访问者使用不同的语言,我们将使用Watson语言翻译服务。这将使所有访问者能够选择语言来查看他们想要的食谱。网站应用程序会从数据库中检索语言,然后将文本翻译成访问者选择的语言。网站的访问者可以用他们首选的语言查看食谱。

架构图

chefg_architecture
chefg_architecture

序列图

chefg_seq
chefg_seq

Web应用程序将从Watson语言翻译器中检索语言列表以及在Cloudant DB中存储的食谱列表。这将出现在屏幕上,访问者可以选择他们想要的配方和语言。Web应用程序将检索该配方,然后将其翻译成相关语言。

我的最终结果是一个存储食谱的网站。只要该语言由Watson Language Translator提供,您就可以用您选择的语言访问一个食谱。

有一个工作还需要去做的,我不得不强调。Cloudant DB似乎不允许通过Java SDK为数据库中的文档编写id。它只允许他们自动生成。因此,我必须检索所有配方文件才能得到特定食谱的名称。这将是处理器密集型过程并影响大规模系统的性能。幸运的是,这是一个演示。不过请注意,我意识到这个方面。

我使用的技术是:

  • 基于REST的HTTP / HTTPS调用
  • JQuery-用于网页
  • Gson的JSON
  • 样式表的CSS
  • Java的后端
  • 用于数据库的Cloudant NoSQL
  • 沃森语言翻译的语言翻译

我将包含一个显示RecipeRequest和Recipe以及Language对象之间关系的UML图(Unified Modeling Language 又称统一建模语言或标准建模语言)。注意RecipeRequest实际上是一个将食谱连接到要翻译的语言的关联类。这是因为食谱不能具有语言的属性。食谱纯粹是一种方法。从理论上讲,甚至是图片也可能是一个食谱。语言本身就是一个概念。因此,我使用关联RecipeRequest将食谱连接到语言。

chefg_architecture
chefg_architecture

该网站的网址是https://gabrieljcampbell.mybluemix.net/。请尝试一下。代码放在我的GitHub上。您可以克隆存储库。请记住,您需要使用Cloud Foundry命令部署到Bluemix运行时。以下是网站的截图。

屏幕截图:

chefg_screenshot
chefg_screenshot

当我们改变语言,食谱就会被翻译了:

chefg_screenshot
chefg_screenshot

以上就是我的文章,你也可以在这里找到

祝您编码愉快!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 建议的解决方案
  • 架构图
  • 序列图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档