SlideShare ist ein Scribd-Unternehmen logo
1 von 47
IBM軟體研發技術主題分享 
-DevOps 
-GreenHat 
-Mobility 
-Cloud Development Tech. 
-BlueMix 
TommyWu,Senior Technical Consultant 
IBM Rational 
tommywu@tw.ibm.com
Cloud Development Technology Sharing 
© 2013 IBM Corporation
Agenda 
 Cloud Development with JazzHub (Orion) 
 Node.JS Development 
 Development with NOSQL Document Database :MongoDB 
 Frond-End Development Framework with AngularJS 
3
Cloud Development at JazzHub 
 IBM Teams are moving their traditional desktop applications to the Cloud 
 Collaborative Lifecycle Management (CLM) development tools from Jazz 
already have a web presence 
 Can we push that to include development? 
4
Why web based IDE? 
 It’s always there, it’s anywhere 
 No setup 
 Developers like portable efficient tools like the Swiss army knife 
 Take your personalized settings with you 
 Easy mesh-ups 
 Collaboration 
 Shared coding 
 Shared debugging 
 Shared code reviews 
5
Development tools are changing as well 
Emacs 
Eclipse 
IntelliJ 
Visual Studio 
Web based IDE 
Orion 
Cloud9
What is JazzHub? 
 JazzHub allows you to develop and collaborate on software projects in 
the cloud. 
 Fully hosted task tracking, agile planning, and integrated source control 
so you have everything you need to develop your next app, feature or 
product. 
 IBM’s premiere hosted environment for Cloud application development, 
with built-in DevOps capabilities 
 Explore and join existing projects 
7
What is Orion? 
 Eclipse “platform” project initiated 3 years ago -- Tools for the web, on 
the web 
 An evolution in tooling leveraging the impressive recent improvements in 
browser capabilities and availability of cloud services 
 Embracing the shift to web-based application delivery and enabling cross 
site collaboration of “pluggable” services 
 A community that benefits from compatibility between a common set of 
components and services to create richer cloud based tools than they 
might otherwise by themselves 
8
Orion Key Features 
 Replaces need for a desktop IDE 
9 
– Initially targeting needs of web developers (HTML, JavaScript, CSS, Ruby, Python) 
 Enable “Core” Coding Activities in a Browser 
– Code editing, navigating source, search, integration with Source Control Management 
 Speed / Responsive UI Design 
 Extensibility and Community are what sets Orion apart
Orion Technical Functions 
 Eclipse Orion is an online integrated development environment that was 
created with the goal of providing similar functionality to the Eclipse desktop IDE, 
except it runs inside the browser. 
 Orion consists of a server that is written in Java™, which you connect to 
through the browsers. 
 The browser app consists of a large amount of JavaScript code, including 
several open-source libraries, to provide for a nice IDE experience. 
 The text editor lets you edit any text file, and it includes syntax highlighting for 
several languages such as JavaScript, Cascading Style Sheets (CSS), and HTML. 
 You can build projects from scratch or use any of the pre-supplied starter 
templates. 
 The editor is also fully extensible, including a full REST-based interface, 
whereby you can create extensions that include both server-side Java code and 
client-side JavaScript code. 
10
How is Orion extensible in the browser? 
 “plugins” live right in the page 
 Agnostic to where the plugin or code came from 
11 
Plug-in 
Plug-in 
Web 
Server 
Web 
Server 
Web 
Server 
Web Client
Example of a JSBeautify (JavaScript “pretty print”) plugin 
You provide HTML, Javascript elements, from your own web site 
12
Mobile Support 
 Tablets such as the iPad, iPad mini and Android based platforms are 
fully supported by Orion 
 Add a bluetooth keyboard for a mini workstation 
13
Two sources of an Orion Server 
 Multi-user Equinox based Java Server 
 Great for reusing existing Eclipse plug-ins and exposing them REST-fully 
to an Orion client 
 Node.js based single user NPM install 
 Very portable and great performance 
 Deploy anywhere Node is installed 
14 
Also works on 
embedded 
boards like the 
Raspberry Pi
What about the Community? 
 VMWare JavaScript tooling editor named “Scripted” 
 Cloudfier.com creating Cloud based domain solutions 
 Firefox embeds Orion for the Scratchpad and Debug tools 
 e(fx)clipse leveraging JavaFX, OSGi, Eclipse and Orion 
 Maqetta leverages the Orion core and file system 
15
So we’ve got a browser-based IDE, now what? 
 Seems a little silly to run a Web server on my desktop to edit files 
 Wouldn’t it be ideal if there was a Cloud for Development where I could 
use Orion? 
– Software Configuration 
– Continuous Integration and Deployment 
– Tracking and Planning 
– Integration with Cloud runtimes… 
 Introducing JazzHub for everyone 
– Expanding our Academic experiment from 2011 to welcome all public and private projects 
16
Introducing JazzHub 
 What is JazzHub? 
– JazzHub allows you to develop and collaborate on software 
projects in the cloud. 
– Fully hosted task tracking, agile planning, and integrated source 
control so you have everything you need to develop your next app, 
feature or product. 
– IBM’s premiere hosted environment for Cloud application 
development, with built-in DevOps capabilities 
– Free public and fee-based private projects (free during Beta) 
– Explore and join existing projects 
 Start quickly. Simply. 
– No downloads required! 
– Create your first project in minutes 
 Work the way you want to work 
– Browser-based development using integrated Eclipse Orion 
technology provided by JazzHub 
– Full support for local development with Eclipse or Visual Studio 
– Built in support for Jazz Source Control 
– Connect to your existing GitHub projects
Developing in the Cloud, for the Cloud 
 So now I can edit my code in the Cloud, in the context of a hosted RTC 
project 
– Wouldn’t it be cool if I could deploy my code right from there to a Cloud runtime?!?!? 
18
Agenda 
 Cloud Development with JazzHub (Orion) 
 Node.JS Development 
 Development with NOSQL Document Database :MongoDB 
 Frond-End Development Framework with AngularJS 
19
What is NodeJS? 
 A JavaScript runtime environment running Google Chrome’s V8 engine 
– a.k.a. a server-side solution for JS 
– Compiles JS, making it really fast 
 Runs over the command line 
 Designed for high concurrency 
– Without threads or new processes 
 Never blocks, not even for I/O 
 Uses the CommonJS framework 
– Making it a little closer to a real OO language 
http://nodejs.org/ 
Node.js® is a platform built on Chrome's JavaScript 
runtime for easily building fast, scalable network 
applications. Node.js uses an event-driven, non-blocking 
I/O model that makes it lightweight and 
efficient, perfect for data-intensive real-time applications 
that run across distributed devices.
Event Driven ,Non-Blocking I/O , CallBack Sample 
21 
var console.fs = require(‘log('Start'); 
fs’); 
fs.setTimeout(readFile(‘/function() path’, function { (err, console.file) { log('console.Trigger'); log(‘讀}, 取0); 
文件完成’) }); 
console.log(‘log('開End'); 
始讀取文件'); 
Node.js是單執行緒的。它透過事件輪詢(event loop) 
來實現並行操作,對此,我們應該要充分利用這一點— 
— 盡可能的避免Blocking操作,取而代之,多使用Non- 
Blocking操作。 
var http = require('http'); 
var s = http.createServer(function (req, res) { 
console.log("Request received."); 
res.writeHead(200, {'content-type': 'text/plain' }); 
res.end('hello worldn'); 
} 
); 
s.listen(8080); 
console.log("Server has started."); 
我們給某個方法傳遞了一個函數,這個方法在有相應事 
件發生時執行這個函數來進行回呼(callback)
Non Blocking I/O Example
可擴充性模組化(HTTP/FTP/Socket/DB/Template/I/O/Network… 
23
外掛示意圖 
24
Agenda 
 Cloud Development with JazzHub (Orion) 
 Node.JS Development 
 Development with NOSQL Document Database :MongoDB 
 Frond-End Development Framework with AngularJS 
25
26
NoSQL in data management and processing
NOSQL - Not Only SQL (Non-Rational) 
一致性 
Consistency 
擴展性 
Partition 
tolerance 
可用性、低延遲 
Availability 
Low Latency 
NOSQL 
NOSQL 
RDBMS 
? 
http://zh.wikipedia.org/wiki/NoSQL
NoSQL Database Types – Common Vendors 
Key-Value Document 
BigTable Graph
NoSQL 定義 
From www.nosql-database.org: 
Next Generation Databases mostly addressing some of the 
points: being non-relational, distributed, open-source and 
horizontal scalable. The original intention has been modern 
web-scale databases. The movement began early 2009 and is 
growing rapidly. 
Often more characteristics apply as: schema-free, easy 
replication support, simple API, eventually consistent / BASE 
(not ACID), a huge data amount, and more. 
如Google BigTable、Amazon S3的Dynamo資料 
庫,或是微軟Azure 
19 September 2014 30
+ NoSQL Distinguishing Characteristics 
Large data volumes 
–Google’s “big data” 
Scalable replication 
and distribution 
–Potentially thousands of 
machines 
–Potentially distributed 
around the world 
Queries need to return 
answers quickly 
Mostly query, few 
updates 
Asynchronous 
Inserts & Updates 
Schema-less 
ACID transaction 
properties are not 
needed – BASE 
Open source 
development 
19 September 2014
Why NoSQL 
• Handles Schema 
Changes Well (easy 
development) 
• Volume Data 
manipulation 
• Rise of JSON 
• python module: 
simplejson
33 
Mongo DB 
MongoDB (from “ humongous “) is a scalable, high-performance, 
open source, document-oriented database. 
Written in C++. 
Home: http://www.mongodb.org/ 
Support by http://www.10gen.com/ 
Production Deploy 
http://www.mongodb.org/display/DOCS/Production+Depl 
oyments
MongoDB 應用 
 MongoDB 是10gen 這家公司開發的一個NoSQL Database,屬於 
Document-Oriented Database 這一類型,希望能夠結合Relational 
Database 與Key/Value Database 雙方的優點,很適合用在Web 應用程 
式、Internet 架構的環境底下 
34 
看起來就跟JSON 一樣。_id 欄位就是Primary Key,其他都是一般的欄位
35 
Developing with MongoDB 
 MongoDB Shell : MongoDB comes with a JavaScript shell that allows 
interaction with a MongoDB instancefrom the command line. 
 插入新增資料(Insert) 
– # 插入一筆新資料到users Collection (相當於傳統SQL 裡的Table 角色) db.users.insert({ username: "fred", 
password: "12345678" }) # 含當前時間db.users.insert({ username: "fred", password: "12345678", created: 
new Timestamp() }) 
 查詢(Query): 
– # 查詢所有username 為fred 的資料:db.users.find({ username: "fred" }) 
– # 查詢單筆: db.users.find_one({ username: "fred" }) 
 修改更新資料(Update): 
– # 更新username 為fred 的password 欄位: db.users.update({ username: "fred" }, { $set: { password: 
"87654321" }}) 
– # 完全取代username 為fred 的資料(username 和password 欄位會因此不見,只剩下email 欄位) 
db.users.update({ username: "fred" }, { email: "cfsghost@gmail.com"}) 
 刪除資料(Delete): 
– db.users.remove({ username: "fred" })
In Production 
http://36 
www.mongodb.org/about/production-deployments/
Document store vs. RDBMS 
37 
RDBMS MongoDB 
Database Database 
Table, View Collection 
Row Document (JSON, BSON) 
Column Field 
Index Index 
Join Embedded Document 
Foreign Key Reference 
Partition Shard
Cloudant NoSQL DBaaS 
App Layer / Browser / Mobile App 
REST (HTTPS) 
Multi- 
Master 
Replication 
Indexed 
JSON 
Storage 
Cloudant JSON API 
Lucene 
Search 
2D, 3D 
Geospatial 
Geo-Load Balancing 
JSON 
CRUD 
Device 
Sync 
Incremental 
MapReduce 
Security Monitoring 
IO 
Control 
Physical Storage @ IBM SoftLayer, Rackspace, Microsoft Azure, AWS
Cloudant Features 
39 
Document-Oriented 
storege 
Full Index Support 
Replication & High 
Availability 
Auto-Sharding 
Querying 
Fast In-Place Updates 
Map/Reduce 
Agile 
Scalable
Agenda 
 Cloud Development with JazzHub (Orion) 
 Node.JS Development 
 Development with NOSQL Document Database :MongoDB 
 Frond-End Development Framework with AngularJS 
40
What is AngularJS? 
 A JavaScript framework for creating dynamic web applications 
 AngularJS 的框架屬於MVC 設計模式,也將控制器(Controller) 與檢 
視(Views) 間切割的非常乾淨,Controller 和View 之間式各司其職 
 AngularJS 的優點為宣告式語法(Directives)、雙向資料繫結(Two Way 
Data-Binding)、相依性注入(Dependency Injection) 以及關注點分離等特 
性 
 直接拿HTML (DOM) 當成Template 來使用,變成可reuse的元件 
 資料binding在{{ }} 裡面 
 最適合用在CRUD類型的網站專案 
 若網站需要大量的DOM操作則不適合
AngularJS的特性 
雙向綁定 
模版 
MVC 
服務 
指令 
篩檢程式 
關注點分離 
運算式 
路由 
NG動畫
MVC 
 Model 
– The data 
 Controller 
– The behavior 
– Modifying / updating the models 
 View 
– The interface 
– How the data is presented to the user 
JavaScript 
HTML
AngularJS 應用範例 
44
Data Binding 
 Views are declarative 
– The structure of the interface 
 Controllers do not need to directly manipulate the view 
– Changes in the models / data are automatically reflected in the view 
– Updates are managed by the frameworks 
簡單來說我們利用AngularJS 來定義一個Model 
物件,而當物件值有改變時也會連動影響其他有 
用到這個物件的項目的值。我們只要負責定義, 
並且決定要在哪邊顯示這個Model 的值,其他的 
事情就交由AngularJS 來為我們處理,我們根本 
不用再寫類似這樣的程式碼: 
$("#demo1").val($("#value").val())
Views 
 Make use of special ng attributes (directives) on the HTML 
elements 
–ng-app 
Determines which part of the page will use AngularJS 
If given a value it will load that application module 
–ng-controller 
Determines which Javascript Controller should be used for that part of the page 
–ng-model 
Determines what model the value of an input field will be bound to 
Used for two-way binding
Controller 
 Function that takes at least one parameter: $scope 
–Function is a constructor 
–Ex: function MyCtrl($scope) { … } 
 $scope 
–JavaScript object 
–Contains data (i.e. models) and methods (i.e. functions) 
–Can add own properties 
$scope.<my new property> = <value>;

Weitere ähnliche Inhalte

Was ist angesagt?

Launch of HUAWEI CLOUD EI Development Tools
Launch of HUAWEI CLOUD EI Development ToolsLaunch of HUAWEI CLOUD EI Development Tools
Launch of HUAWEI CLOUD EI Development ToolsHuawei Technologies
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudAlvaro Viebrantz
 
IBM TW InterConnection - Humix Introduction
IBM TW InterConnection - Humix IntroductionIBM TW InterConnection - Humix Introduction
IBM TW InterConnection - Humix IntroductionJeffrey Liu
 
Microsoft vision and platform, cloud first-mobile first
Microsoft vision and platform, cloud first-mobile firstMicrosoft vision and platform, cloud first-mobile first
Microsoft vision and platform, cloud first-mobile firstGeneXus
 
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Codemotion
 
Edge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesEdge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesVirtualTech Japan Inc.
 
Open Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - OverviewOpen Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - OverviewKrishna-Kumar
 
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.Krishna-Kumar
 
KINX Global Network Service
KINX Global Network ServiceKINX Global Network Service
KINX Global Network ServiceKINX
 
Verizon Media: Entertainment, XR + 5G
Verizon Media: Entertainment, XR + 5GVerizon Media: Entertainment, XR + 5G
Verizon Media: Entertainment, XR + 5GAugmentedWorldExpo
 
UShareSoft-ow2-conference-nov10
UShareSoft-ow2-conference-nov10UShareSoft-ow2-conference-nov10
UShareSoft-ow2-conference-nov10UShareSoft
 
Ai, io t, and voice as a natural interface
Ai, io t, and voice as a natural interfaceAi, io t, and voice as a natural interface
Ai, io t, and voice as a natural interfaceIntel® Software
 
Cloud, AI and Quantum in Mobility - IBM Thorsten Schroeer
Cloud, AI and Quantum in Mobility - IBM Thorsten SchroeerCloud, AI and Quantum in Mobility - IBM Thorsten Schroeer
Cloud, AI and Quantum in Mobility - IBM Thorsten SchroeerThorsten Schroeer
 
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptxPDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptxLuis Beltran
 
The Cloud for Modern Business
The Cloud for Modern BusinessThe Cloud for Modern Business
The Cloud for Modern BusinessBizTalk360
 
The integration of joomla with the internet of things concept
The integration of joomla with the  internet of things conceptThe integration of joomla with the  internet of things concept
The integration of joomla with the internet of things conceptJoomlaDay Australia
 
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT ApplicationsInterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applicationsgjuljo
 
Avner allgom IGT-DLD International event
Avner allgom IGT-DLD International eventAvner allgom IGT-DLD International event
Avner allgom IGT-DLD International eventAvner Algom
 

Was ist angesagt? (19)

Launch of HUAWEI CLOUD EI Development Tools
Launch of HUAWEI CLOUD EI Development ToolsLaunch of HUAWEI CLOUD EI Development Tools
Launch of HUAWEI CLOUD EI Development Tools
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google Cloud
 
IBM TW InterConnection - Humix Introduction
IBM TW InterConnection - Humix IntroductionIBM TW InterConnection - Humix Introduction
IBM TW InterConnection - Humix Introduction
 
Microsoft vision and platform, cloud first-mobile first
Microsoft vision and platform, cloud first-mobile firstMicrosoft vision and platform, cloud first-mobile first
Microsoft vision and platform, cloud first-mobile first
 
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
Keynote Microsoft: The new Microsoft in a cloud-first, mobile-first open worl...
 
Edge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesEdge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and Kubernetes
 
Open Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - OverviewOpen Source Edge Computing Platforms - Overview
Open Source Edge Computing Platforms - Overview
 
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
IoTShow.in Bangalore 2019 - a Recap on 'IoT and Edge' Talk.
 
KINX Global Network Service
KINX Global Network ServiceKINX Global Network Service
KINX Global Network Service
 
Verizon Media: Entertainment, XR + 5G
Verizon Media: Entertainment, XR + 5GVerizon Media: Entertainment, XR + 5G
Verizon Media: Entertainment, XR + 5G
 
UShareSoft-ow2-conference-nov10
UShareSoft-ow2-conference-nov10UShareSoft-ow2-conference-nov10
UShareSoft-ow2-conference-nov10
 
Ai, io t, and voice as a natural interface
Ai, io t, and voice as a natural interfaceAi, io t, and voice as a natural interface
Ai, io t, and voice as a natural interface
 
Cloud, AI and Quantum in Mobility - IBM Thorsten Schroeer
Cloud, AI and Quantum in Mobility - IBM Thorsten SchroeerCloud, AI and Quantum in Mobility - IBM Thorsten Schroeer
Cloud, AI and Quantum in Mobility - IBM Thorsten Schroeer
 
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptxPDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
PDCConf2021 - Serverless WhatsApp Chatbot with Azure AI.pptx
 
The Cloud for Modern Business
The Cloud for Modern BusinessThe Cloud for Modern Business
The Cloud for Modern Business
 
The integration of joomla with the internet of things concept
The integration of joomla with the  internet of things conceptThe integration of joomla with the  internet of things concept
The integration of joomla with the internet of things concept
 
KidoZen紹介資料
KidoZen紹介資料KidoZen紹介資料
KidoZen紹介資料
 
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT ApplicationsInterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
 
Avner allgom IGT-DLD International event
Avner allgom IGT-DLD International eventAvner allgom IGT-DLD International event
Avner allgom IGT-DLD International event
 

Ähnlich wie Cloud development technology sharing (BlueMix premier)

Integrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineIntegrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineRichard Irving
 
Cloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken WalkerCloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken Walkerjaxconf
 
Best software development tools in 2021
Best software development tools in 2021Best software development tools in 2021
Best software development tools in 2021Samaritan InfoTech
 
Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Netizens Technologies
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020Katy Slemon
 
Node.js Development Tools
 Node.js Development Tools Node.js Development Tools
Node.js Development ToolsSofiaCarter4
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018Krishna-Kumar
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx75waytechnologies
 
Nodejs framework for app development.pdf
Nodejs framework for app development.pdfNodejs framework for app development.pdf
Nodejs framework for app development.pdfSufalam Technologies
 
Node.js Web Development .pdf
Node.js Web Development .pdfNode.js Web Development .pdf
Node.js Web Development .pdfAbanti Aazmin
 
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) Animesh Singh
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node jsHabilelabs
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesAjayMishra302670
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1NAILBITER
 

Ähnlich wie Cloud development technology sharing (BlueMix premier) (20)

Integrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipelineIntegrating BlueMix into a DevOps pipeline
Integrating BlueMix into a DevOps pipeline
 
Cloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken WalkerCloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken Walker
 
Best software development tools in 2021
Best software development tools in 2021Best software development tools in 2021
Best software development tools in 2021
 
Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023Important Backend Frameworks To Remember For Businesses In 2023
Important Backend Frameworks To Remember For Businesses In 2023
 
Top 11 Front-End Web Development Tools To Consider in 2020
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
 
NodeJs Frameworks.pdf
NodeJs Frameworks.pdfNodeJs Frameworks.pdf
NodeJs Frameworks.pdf
 
IDS and Bluemix
IDS and BluemixIDS and Bluemix
IDS and Bluemix
 
Node.js Development Tools
 Node.js Development Tools Node.js Development Tools
Node.js Development Tools
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
8 Node.js Frameworks Every Developer Should Know [UPDATED].pptx
 
Nodejs framework for app development.pdf
Nodejs framework for app development.pdfNodejs framework for app development.pdf
Nodejs framework for app development.pdf
 
Node.js Web Development .pdf
Node.js Web Development .pdfNode.js Web Development .pdf
Node.js Web Development .pdf
 
Tech Stack - Angular
Tech Stack - AngularTech Stack - Angular
Tech Stack - Angular
 
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry) IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
IBM BlueMix Architecture and Deep Dive (Powered by CloudFoundry)
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development Technologies
 
IBM Z for the Digital Enterprise - Zowe overview
IBM Z for the Digital Enterprise - Zowe overviewIBM Z for the Digital Enterprise - Zowe overview
IBM Z for the Digital Enterprise - Zowe overview
 
Html5 workshop part 1
Html5 workshop part 1Html5 workshop part 1
Html5 workshop part 1
 

Mehr von 湯米吳 Tommy Wu

Metaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdfMetaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdf湯米吳 Tommy Wu
 
Project AI-Care for COVID-19 prevention
Project AI-Care for COVID-19 preventionProject AI-Care for COVID-19 prevention
Project AI-Care for COVID-19 prevention湯米吳 Tommy Wu
 
Deep reinforcement learning&Robotics
Deep reinforcement learning&RoboticsDeep reinforcement learning&Robotics
Deep reinforcement learning&Robotics湯米吳 Tommy Wu
 
AIoT and edge computing solutions
AIoT and edge computing solutionsAIoT and edge computing solutions
AIoT and edge computing solutions湯米吳 Tommy Wu
 
Tj bot 0317實作坊 組裝篇
Tj bot 0317實作坊 組裝篇Tj bot 0317實作坊 組裝篇
Tj bot 0317實作坊 組裝篇湯米吳 Tommy Wu
 
聊天機器人實作展示與解密 Tommy wut克邦
聊天機器人實作展示與解密 Tommy wut克邦聊天機器人實作展示與解密 Tommy wut克邦
聊天機器人實作展示與解密 Tommy wut克邦湯米吳 Tommy Wu
 
How to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watsonHow to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watson湯米吳 Tommy Wu
 
Bluemix 智能機器人情境展示
Bluemix 智能機器人情境展示Bluemix 智能機器人情境展示
Bluemix 智能機器人情境展示湯米吳 Tommy Wu
 

Mehr von 湯米吳 Tommy Wu (8)

Metaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdfMetaverse and Digital Twins on Enterprise-Public.pdf
Metaverse and Digital Twins on Enterprise-Public.pdf
 
Project AI-Care for COVID-19 prevention
Project AI-Care for COVID-19 preventionProject AI-Care for COVID-19 prevention
Project AI-Care for COVID-19 prevention
 
Deep reinforcement learning&Robotics
Deep reinforcement learning&RoboticsDeep reinforcement learning&Robotics
Deep reinforcement learning&Robotics
 
AIoT and edge computing solutions
AIoT and edge computing solutionsAIoT and edge computing solutions
AIoT and edge computing solutions
 
Tj bot 0317實作坊 組裝篇
Tj bot 0317實作坊 組裝篇Tj bot 0317實作坊 組裝篇
Tj bot 0317實作坊 組裝篇
 
聊天機器人實作展示與解密 Tommy wut克邦
聊天機器人實作展示與解密 Tommy wut克邦聊天機器人實作展示與解密 Tommy wut克邦
聊天機器人實作展示與解密 Tommy wut克邦
 
How to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watsonHow to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watson
 
Bluemix 智能機器人情境展示
Bluemix 智能機器人情境展示Bluemix 智能機器人情境展示
Bluemix 智能機器人情境展示
 

Kürzlich hochgeladen

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Kürzlich hochgeladen (20)

Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

Cloud development technology sharing (BlueMix premier)

  • 1. IBM軟體研發技術主題分享 -DevOps -GreenHat -Mobility -Cloud Development Tech. -BlueMix TommyWu,Senior Technical Consultant IBM Rational tommywu@tw.ibm.com
  • 2. Cloud Development Technology Sharing © 2013 IBM Corporation
  • 3. Agenda  Cloud Development with JazzHub (Orion)  Node.JS Development  Development with NOSQL Document Database :MongoDB  Frond-End Development Framework with AngularJS 3
  • 4. Cloud Development at JazzHub  IBM Teams are moving their traditional desktop applications to the Cloud  Collaborative Lifecycle Management (CLM) development tools from Jazz already have a web presence  Can we push that to include development? 4
  • 5. Why web based IDE?  It’s always there, it’s anywhere  No setup  Developers like portable efficient tools like the Swiss army knife  Take your personalized settings with you  Easy mesh-ups  Collaboration  Shared coding  Shared debugging  Shared code reviews 5
  • 6. Development tools are changing as well Emacs Eclipse IntelliJ Visual Studio Web based IDE Orion Cloud9
  • 7. What is JazzHub?  JazzHub allows you to develop and collaborate on software projects in the cloud.  Fully hosted task tracking, agile planning, and integrated source control so you have everything you need to develop your next app, feature or product.  IBM’s premiere hosted environment for Cloud application development, with built-in DevOps capabilities  Explore and join existing projects 7
  • 8. What is Orion?  Eclipse “platform” project initiated 3 years ago -- Tools for the web, on the web  An evolution in tooling leveraging the impressive recent improvements in browser capabilities and availability of cloud services  Embracing the shift to web-based application delivery and enabling cross site collaboration of “pluggable” services  A community that benefits from compatibility between a common set of components and services to create richer cloud based tools than they might otherwise by themselves 8
  • 9. Orion Key Features  Replaces need for a desktop IDE 9 – Initially targeting needs of web developers (HTML, JavaScript, CSS, Ruby, Python)  Enable “Core” Coding Activities in a Browser – Code editing, navigating source, search, integration with Source Control Management  Speed / Responsive UI Design  Extensibility and Community are what sets Orion apart
  • 10. Orion Technical Functions  Eclipse Orion is an online integrated development environment that was created with the goal of providing similar functionality to the Eclipse desktop IDE, except it runs inside the browser.  Orion consists of a server that is written in Java™, which you connect to through the browsers.  The browser app consists of a large amount of JavaScript code, including several open-source libraries, to provide for a nice IDE experience.  The text editor lets you edit any text file, and it includes syntax highlighting for several languages such as JavaScript, Cascading Style Sheets (CSS), and HTML.  You can build projects from scratch or use any of the pre-supplied starter templates.  The editor is also fully extensible, including a full REST-based interface, whereby you can create extensions that include both server-side Java code and client-side JavaScript code. 10
  • 11. How is Orion extensible in the browser?  “plugins” live right in the page  Agnostic to where the plugin or code came from 11 Plug-in Plug-in Web Server Web Server Web Server Web Client
  • 12. Example of a JSBeautify (JavaScript “pretty print”) plugin You provide HTML, Javascript elements, from your own web site 12
  • 13. Mobile Support  Tablets such as the iPad, iPad mini and Android based platforms are fully supported by Orion  Add a bluetooth keyboard for a mini workstation 13
  • 14. Two sources of an Orion Server  Multi-user Equinox based Java Server  Great for reusing existing Eclipse plug-ins and exposing them REST-fully to an Orion client  Node.js based single user NPM install  Very portable and great performance  Deploy anywhere Node is installed 14 Also works on embedded boards like the Raspberry Pi
  • 15. What about the Community?  VMWare JavaScript tooling editor named “Scripted”  Cloudfier.com creating Cloud based domain solutions  Firefox embeds Orion for the Scratchpad and Debug tools  e(fx)clipse leveraging JavaFX, OSGi, Eclipse and Orion  Maqetta leverages the Orion core and file system 15
  • 16. So we’ve got a browser-based IDE, now what?  Seems a little silly to run a Web server on my desktop to edit files  Wouldn’t it be ideal if there was a Cloud for Development where I could use Orion? – Software Configuration – Continuous Integration and Deployment – Tracking and Planning – Integration with Cloud runtimes…  Introducing JazzHub for everyone – Expanding our Academic experiment from 2011 to welcome all public and private projects 16
  • 17. Introducing JazzHub  What is JazzHub? – JazzHub allows you to develop and collaborate on software projects in the cloud. – Fully hosted task tracking, agile planning, and integrated source control so you have everything you need to develop your next app, feature or product. – IBM’s premiere hosted environment for Cloud application development, with built-in DevOps capabilities – Free public and fee-based private projects (free during Beta) – Explore and join existing projects  Start quickly. Simply. – No downloads required! – Create your first project in minutes  Work the way you want to work – Browser-based development using integrated Eclipse Orion technology provided by JazzHub – Full support for local development with Eclipse or Visual Studio – Built in support for Jazz Source Control – Connect to your existing GitHub projects
  • 18. Developing in the Cloud, for the Cloud  So now I can edit my code in the Cloud, in the context of a hosted RTC project – Wouldn’t it be cool if I could deploy my code right from there to a Cloud runtime?!?!? 18
  • 19. Agenda  Cloud Development with JazzHub (Orion)  Node.JS Development  Development with NOSQL Document Database :MongoDB  Frond-End Development Framework with AngularJS 19
  • 20. What is NodeJS?  A JavaScript runtime environment running Google Chrome’s V8 engine – a.k.a. a server-side solution for JS – Compiles JS, making it really fast  Runs over the command line  Designed for high concurrency – Without threads or new processes  Never blocks, not even for I/O  Uses the CommonJS framework – Making it a little closer to a real OO language http://nodejs.org/ Node.js® is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
  • 21. Event Driven ,Non-Blocking I/O , CallBack Sample 21 var console.fs = require(‘log('Start'); fs’); fs.setTimeout(readFile(‘/function() path’, function { (err, console.file) { log('console.Trigger'); log(‘讀}, 取0); 文件完成’) }); console.log(‘log('開End'); 始讀取文件'); Node.js是單執行緒的。它透過事件輪詢(event loop) 來實現並行操作,對此,我們應該要充分利用這一點— — 盡可能的避免Blocking操作,取而代之,多使用Non- Blocking操作。 var http = require('http'); var s = http.createServer(function (req, res) { console.log("Request received."); res.writeHead(200, {'content-type': 'text/plain' }); res.end('hello worldn'); } ); s.listen(8080); console.log("Server has started."); 我們給某個方法傳遞了一個函數,這個方法在有相應事 件發生時執行這個函數來進行回呼(callback)
  • 22. Non Blocking I/O Example
  • 25. Agenda  Cloud Development with JazzHub (Orion)  Node.JS Development  Development with NOSQL Document Database :MongoDB  Frond-End Development Framework with AngularJS 25
  • 26. 26
  • 27. NoSQL in data management and processing
  • 28. NOSQL - Not Only SQL (Non-Rational) 一致性 Consistency 擴展性 Partition tolerance 可用性、低延遲 Availability Low Latency NOSQL NOSQL RDBMS ? http://zh.wikipedia.org/wiki/NoSQL
  • 29. NoSQL Database Types – Common Vendors Key-Value Document BigTable Graph
  • 30. NoSQL 定義 From www.nosql-database.org: Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontal scalable. The original intention has been modern web-scale databases. The movement began early 2009 and is growing rapidly. Often more characteristics apply as: schema-free, easy replication support, simple API, eventually consistent / BASE (not ACID), a huge data amount, and more. 如Google BigTable、Amazon S3的Dynamo資料 庫,或是微軟Azure 19 September 2014 30
  • 31. + NoSQL Distinguishing Characteristics Large data volumes –Google’s “big data” Scalable replication and distribution –Potentially thousands of machines –Potentially distributed around the world Queries need to return answers quickly Mostly query, few updates Asynchronous Inserts & Updates Schema-less ACID transaction properties are not needed – BASE Open source development 19 September 2014
  • 32. Why NoSQL • Handles Schema Changes Well (easy development) • Volume Data manipulation • Rise of JSON • python module: simplejson
  • 33. 33 Mongo DB MongoDB (from “ humongous “) is a scalable, high-performance, open source, document-oriented database. Written in C++. Home: http://www.mongodb.org/ Support by http://www.10gen.com/ Production Deploy http://www.mongodb.org/display/DOCS/Production+Depl oyments
  • 34. MongoDB 應用  MongoDB 是10gen 這家公司開發的一個NoSQL Database,屬於 Document-Oriented Database 這一類型,希望能夠結合Relational Database 與Key/Value Database 雙方的優點,很適合用在Web 應用程 式、Internet 架構的環境底下 34 看起來就跟JSON 一樣。_id 欄位就是Primary Key,其他都是一般的欄位
  • 35. 35 Developing with MongoDB  MongoDB Shell : MongoDB comes with a JavaScript shell that allows interaction with a MongoDB instancefrom the command line.  插入新增資料(Insert) – # 插入一筆新資料到users Collection (相當於傳統SQL 裡的Table 角色) db.users.insert({ username: "fred", password: "12345678" }) # 含當前時間db.users.insert({ username: "fred", password: "12345678", created: new Timestamp() })  查詢(Query): – # 查詢所有username 為fred 的資料:db.users.find({ username: "fred" }) – # 查詢單筆: db.users.find_one({ username: "fred" })  修改更新資料(Update): – # 更新username 為fred 的password 欄位: db.users.update({ username: "fred" }, { $set: { password: "87654321" }}) – # 完全取代username 為fred 的資料(username 和password 欄位會因此不見,只剩下email 欄位) db.users.update({ username: "fred" }, { email: "cfsghost@gmail.com"})  刪除資料(Delete): – db.users.remove({ username: "fred" })
  • 36. In Production http://36 www.mongodb.org/about/production-deployments/
  • 37. Document store vs. RDBMS 37 RDBMS MongoDB Database Database Table, View Collection Row Document (JSON, BSON) Column Field Index Index Join Embedded Document Foreign Key Reference Partition Shard
  • 38. Cloudant NoSQL DBaaS App Layer / Browser / Mobile App REST (HTTPS) Multi- Master Replication Indexed JSON Storage Cloudant JSON API Lucene Search 2D, 3D Geospatial Geo-Load Balancing JSON CRUD Device Sync Incremental MapReduce Security Monitoring IO Control Physical Storage @ IBM SoftLayer, Rackspace, Microsoft Azure, AWS
  • 39. Cloudant Features 39 Document-Oriented storege Full Index Support Replication & High Availability Auto-Sharding Querying Fast In-Place Updates Map/Reduce Agile Scalable
  • 40. Agenda  Cloud Development with JazzHub (Orion)  Node.JS Development  Development with NOSQL Document Database :MongoDB  Frond-End Development Framework with AngularJS 40
  • 41. What is AngularJS?  A JavaScript framework for creating dynamic web applications  AngularJS 的框架屬於MVC 設計模式,也將控制器(Controller) 與檢 視(Views) 間切割的非常乾淨,Controller 和View 之間式各司其職  AngularJS 的優點為宣告式語法(Directives)、雙向資料繫結(Two Way Data-Binding)、相依性注入(Dependency Injection) 以及關注點分離等特 性  直接拿HTML (DOM) 當成Template 來使用,變成可reuse的元件  資料binding在{{ }} 裡面  最適合用在CRUD類型的網站專案  若網站需要大量的DOM操作則不適合
  • 42. AngularJS的特性 雙向綁定 模版 MVC 服務 指令 篩檢程式 關注點分離 運算式 路由 NG動畫
  • 43. MVC  Model – The data  Controller – The behavior – Modifying / updating the models  View – The interface – How the data is presented to the user JavaScript HTML
  • 45. Data Binding  Views are declarative – The structure of the interface  Controllers do not need to directly manipulate the view – Changes in the models / data are automatically reflected in the view – Updates are managed by the frameworks 簡單來說我們利用AngularJS 來定義一個Model 物件,而當物件值有改變時也會連動影響其他有 用到這個物件的項目的值。我們只要負責定義, 並且決定要在哪邊顯示這個Model 的值,其他的 事情就交由AngularJS 來為我們處理,我們根本 不用再寫類似這樣的程式碼: $("#demo1").val($("#value").val())
  • 46. Views  Make use of special ng attributes (directives) on the HTML elements –ng-app Determines which part of the page will use AngularJS If given a value it will load that application module –ng-controller Determines which Javascript Controller should be used for that part of the page –ng-model Determines what model the value of an input field will be bound to Used for two-way binding
  • 47. Controller  Function that takes at least one parameter: $scope –Function is a constructor –Ex: function MyCtrl($scope) { … }  $scope –JavaScript object –Contains data (i.e. models) and methods (i.e. functions) –Can add own properties $scope.<my new property> = <value>;