6月 23, 2011

雲端運算 (Cloud Computing)

[ 定義雲端 ]

使用者透過網路,以用多少算多少的「隨選公用運算」模式,來取得遠端
由 IT 廠商所提供的 IT 資源、平台系統的一種服務模式。

用戶在有需求時,可以依照使用量增減服務,不論用戶身在何方,
均可透過網路存取到資源。不用真正瞭解實際運作面為何。

雲端運算,從本質上來看就是一種分散式運算的新運用。
透過網路將龐大的運算程序,自動分拆成無數個較小的子程序,
再各別交由多部伺服器運算分析之後,把處理結果回傳給使用者端。

[ 雲端的特色 ]

1. 快速伸縮性 (Rapid Elasticity)
2. 計量服務性 (Measur Service)
3. 需求式服務 (OnDemand Service)
4. 無所不在 (Ubiquitous Network Access)
5. 資源預備性 (Resource pool)

[ 三種雲端佈署模式 Delivery Models ]

1. 軟體即服務 Software as a Service, SaaS
透過Internet提供應用軟體,讓用戶隨時隨地取用或租用,操作簡單 (瀏覽器),不用管理硬體與系統軟體,依訂閱或計次付費。
透過網際網路存取雲端的應用程式 (例如:salesforce.com)。

2. 平台即服務 Platform as a Service, PaaS
提供應用平台給系統管理員、開發人員,進行程式開發與管理。供應商提供
管理一個資訊平台的環境,使用者可以在平台上開發各種資訊系統,不用費
心管理複雜作業平台。依流量、資源使用量、交易量收費。
(例如:Google App Engine)。

3. 基礎設施即服務 (Infrastructure as a Service, IaaS)
提供了核心計算資源和網路架構,服務依CPU/hr 、Storage 計費。有時亦稱公用運算意指處理器、儲存、網路以及其他資源的租用服務 (例如:Amazon 的 EC2 )。客戶不需管理底層的雲端基礎架構,但是能夠掌控作業系統、儲存、網路、所部署的應用程式,且能夠選擇網路元件(防火牆)。

[ 安全問題 ] (至少背四種)

1. 特權使用者的管理 (Privileged User Access)
特權使用者(如Windows的 Administrator或是*nix的root) 因為擁有幾乎絕對的權力,所以在使用上必須經過嚴密的管控。舉例來說,這些人員在進入公司前可能經過較為嚴格的背景調查。但是一旦將運算及資料都交付到服務供應商,這些系統的特權使用者將不再直接受公司管理,如何確保服務供應商能夠有效管理特權使用者將是一個很重要的議題。

2. 法規的遵守 (Regulatory Compliance)
雖然公司透過服務供應商的服務執行公司營運的活動,但是遵守法規的責任仍舊屬於公司本身,而不是服務供應商。因此必須確保服務供應商的作業方式能夠符合法規要求,甚至在必要時加以稽核。

3. 資料所在的位置 (Data Location)
這部分其實跟法規的遵守有關係,不過比較著重在有關資訊處理的隱私保護上。事實上,每個國家或地區對於隱私權的保護有不同的規範。所以如何確保資料處理能夠符合資料收集地點的法規以及資料處理時所在位置當地的法規,是一個必須絕對遵守的要求。有些隱私權保護的規範,甚至會限制資料在未經授權前不可傳送至其他的國家或地區。

4. 資料的隔離 (Data Segregation)
因為服務供應商同時提供服務給許多客戶,各個客戶間的資料是否已被有效的隔離,以避免資料被其他客戶看到而產生資料外洩的疑慮。

5. 回復能力(Recovery)
雖然雲端運算之一的特點就是分散式的處理,所以不會因為單一設備的問題而中斷服務。但是再怎麼強調不中斷的系統,終會有服務中斷的機會。當發生問題時,服務與資料的回復能力,也是必須加以考量的。

6. 支援調查的能力(Investigation Support)
因為服務供應商同時提供服務給許多客戶,再加上同一個客戶的服務可能在任意地方被執行,所以如果一但有法律調查上的需求時,這些可能交互混雜的使用紀錄是否能夠有效地的被取出並加以追蹤,將可能是一個複雜的問題。

7. 永續的使用性(Long-Term Viability)
即使雲端運算的系統可以提供長時間不中斷的服務,但是服務供應商本身卻不見得會永續經營。服務供應商可能退出市場、被併購或是客戶主動希望轉換平台,這個時候原先的資料是否能夠完整的取出甚至轉換到新的平台,就是一個很重要的議題。

6月 22, 2011

企業流程管理 (BPM)

[ 企業流程管理 Business process management ]

企業以流程為改善對象,使用 IT 重新設計流程、執行、並且監督。
進行流程的最佳化、自動化,相較於其他方法,具有下列特色:

1. 強調流程、IT 要相互配合,在 BPM 整個週期中都需要 IT 來輔助。
2. 企業策略決定核心流程,不具價值的流程宜委外。
3. 流程該具有高度彈性,由 IT 工具協助,可以快速重整流程。
4. BPM 講求持續改善,而 BPR 只會大改一次。

[ BPM 的生命週期 ]

1. 流程發掘
確定策略與核心流程的連結,把目標放在加值最大的流程上面。主要工作:
(a) 訂出核心流程,並且找出對企業最重要者
(b) 評估目前流程 & 理想流程,以及分析目前流程的問題

2. 流程設計
設計出一個流程改善方案,或者最佳模式,其工作包括
(a) 流程塑模:企業分析師用自動化工具,進行流程設計。
(b) 流程分析:針對新定的流程進行分析。
(c) 流程模擬:進行新流程的模擬,以取得營運績效。

3. 流程執行
將設計好的流程予以實施,而 BPM 可以透過 SOA、EAI 等架構來完成。

4. 監督流程
使用流程評估工具來衡量流程的執行結果。

5. 流程最佳化
依照監督所得到的資訊,找出改善流程的機會點,重新設計最佳流程。

[ 企業流程管理系統 ]

企業流程管理系統 (BPMS, Business Process Management System)
主要用來支援企業進行 BPM 的 IT 系統。大致分為下最幾個模組:

1. 企業流程模組:用圖形介面來建造、設計流程
2. 企業規則引擎:用來儲存流程內,各活動的執行條件。
3. 企業流程引擎:用來執行設計好的流程,為 BPMS 的核心
4. 企業流程知識庫:儲存各種與流程相關的定義、資料描述
5. 企業流程活動監控:用來評量新定流程,在執行後的成效。

優點:
1. 提升流程彈性化,透過 BPMS 可以彈性對流程塑模
2. 提升流程資源利用率,透過監督、控制可提高資源利用
3. 提升系統整合性,透過 EAI SOA 整合在各平台的檔案
4. 提升流程效率

6月 20, 2011

資料倉儲(Data Warehouse), Data Mining(資料探勘)

傳統 DB 的設計,主要用於交易資料的記錄,沒辦法支援即時性決策需求,而且跟決策有關的資訊也都散布在各 DB 之中,會有資料不一致、重複的狀況發生,加上沒有歷史資料,所以無法用來做預測分析。

Data Warehouse 因此產生,其特色:

1. 主題導向性:在 DW 中所存的資料,是以特定主題為導向(營收/銷售)
而非傳統 DB 用來支援交易流程。

2. 資料整合性:因為 DW 設計用來支援多維度的決策,需要廣度深度兼具,
所以要整合企業內外、不同時間、不同來源的各種資料。

3. 時間差異性:在 DW 中的資料會包含不同時期(5~10年)的歷史資料。
以供進行趨勢分析,但是傳統 DB 只會保存短期的交易資料。

4. 不變動性性:在 DW 中的資料,一旦存入之後,就不再更改,通常只會唯讀。
之後週期性的更新資料。

5. 資料一致性:因為資料來自不同 DB 會有格式、單位的差異,為了往後查詢
要先經過「 萃取(Extract) 轉換(Transform) 載入(Load) 」

[ 資料超市 Data Mart ]

較小的資料,從 Data Warehouse 中複製出部份集合,專門用來支援特定部門、
特定地區、使用者,Data Warehouse 可以視需求適時複製出多份 Data Mart。
像是會計用的 Mart,以某個更局部的主題為導向。
優點:導入期較短、成本也比較低,可以快速建立。

[ 線上即時分析 OLAP ]

主要架構在 Data Warehouse 上,提供多角度、多維度的分析,提供決策用途,
內建許多分析程式,在傳統的 DB 中,要提供這些分析報告,要用大量的 SQL 查詢,
而 OLAP 有 UI 可讓使用者自己決定分析維度。

1. 切片 (Slice)
將資料視為一個立方體,將三維資料切片,固定單一維度。
例如固定時間在 2011年,觀察 (通路 銷量) 二個維度。

2. 切丁 (Dice)
提供縮小範圍檢視,仍維持原有維度。

3. 下拉 (Drill Down)
從原本宏觀的角度,拉到微觀角度。

4. 上轉 (Roll Up)
從微觀拉遠變成宏觀。

5. 旋轉 (Rotation)
也稱為樞扭,不同管理者所在意的觀點不同。

[ 線上即時交易 OLTP ]

使用電腦進行交易的即時處理,在線上發生的交易資料,立刻用電腦
處理資料的輸入作業。舊有的 TPS 較偏向批次作業,而 OLTP 在此
進行改良,結合 DB/網路可以應付資料量大、交易頻繁的情境上。
交易發生的同時,就能同步更新相關資訊。特色有:

1. 基礎作業處理,支援操作階層
2. 使用者為一般職員
3. 資料即時處理

6月 19, 2011

JavaScript 例外處理

try
{
//Run some code here
}
catch(err)
{
//Handle errors here
}

6月 16, 2011

XML XQuery DOM

[ XML, eXtensible Markup Language ]

一個容易理解閱讀,同時也能讓電腦進行解析辨識的語言。

整個XML文件可以視為一個樹狀結構的文件,文件實體(document entity)視為根節點
加上其他的宣告與標籤稱之為此XML文件的物質結構(Physical Structures),其中須
注意其根節點與根標籤是不同的。

XML的前身是SGML,但是SGML是一種非常嚴謹的檔案描述法,導致過於龐大複雜,
難以理解和學習,進而影響其推廣與應用。

專家們使用SGML精簡製作,並依照HTML的發展經驗,產生出一套使用上規則嚴謹,
但是簡單的描述資料語言:XML

XML被廣泛用來作為跨平台之間互動數據的形式,主要針對數據的內容。
XML設計用來傳送及攜帶資料資訊,不用來表現或展示資料,HTML語言則用來表現資料,
所以XML用途的焦點是它說明資料是什麼,以及攜帶資料資訊。

[ XHTML, eXtensible HyperText Markup Language ]

表現方式與超本文標記語言(HTML)類似,不過語法上更加嚴格。
HTML語法要求比較鬆散,這樣對網頁編寫者較方便,但對於機器來說,語言的語
法越鬆散,處理起來就越困難。

XHTML是一個基於XML的置標語言,看起來與HTML有些相象,本質上說,
XHTML是一個過渡技術,結合了XML(有幾分)的強大功能及HTML(大多數)的簡單特性。
XHTML 就是一種XML應用。它採用XML的DTD文件格式定義

當XML越來越成為一種趨勢,就出現了這樣一個問題:
「如果我們有了XML,我們是否依然需要HTML?」

結論是:需要。因為大量的人們已經習慣使用HTML來作為他們的設計語言。
而 XHTML是一種為適應XML而重新改造的HTML。

XHTML 解決HTML語言所存在的嚴重制約其發展的問題:
HTML 發展到今天存在三個主要缺點:
1. 不能適應現下越多的網路設備和應用的需要,比如手機、PDA。
2. 由於HTML代碼不規範,瀏覽器需要足夠智能和龐大才能夠正確顯示。
3. 數據與表現混雜,這樣你的頁面要改變顯示,就必須重新製作HTML

XHTML的優點是,嚴謹:
當前網路上的 HTML 的糟糕情況讓人震驚,早期的瀏覽器接受私有的HTML標籤,
所以人們在頁面設計完畢后必須使用各種瀏覽器來檢測頁面,看是否兼容。

[ XML DOM , Document Object Models ]

XML DOM 是用於獲取、更改、添加或刪除 XML 元素的標準。
DOM 讓您以程式設計方式讀取、操作和修改 XML 文件。
XML 文檔中的每個成分都是一個節點。

[XQuery]

XQuery 相對於 XML,等同於 SQL 相對於數據庫。XQuery 被設計用來查詢 XML 數據。
XQuery 是用來從 XML 文件找尋、提取元素及屬性的語言。

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

doc("books.xml") ... 用於打開 "books.xml" 文件

XQuery 使用 XPath 來選取 XML 文檔中的節點或節點集。

下面的路徑表達式用於在 "books.xml" 文件中選取所有的 title 元素:
doc("books.xml")/bookstore/book/title ,執行結果:

<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>

在 XQuery 中提供了 FLWOR 語法,讓查詢功能更強大

FLWOR 是 "For, Let, Where, Order by, Return" 字母縮寫。

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title

for 語句把 bookstore 元素下的所有 book 元素提取到名為 $x 的變量中。
where 語句選取了 price 元素值大於 30 的 book 元素。
order by 語句定義了排序次序。將根據 title 元素進行排序。
return 語句規定返回什麼內容。在此返回的是 title 元素。
let 針對特定反覆運算的給定變數指派值 (此例中未用到)

好的程式語言評量指標

1. 可讀性:容易閱讀了解

2. 可寫性:容易建立程式

3. 可靠性:語言設計能讓使用者不易犯錯,即使犯錯也容易找出

4. 成本:學習成本、撰寫成本、編譯成本、執行程本、維護成本

6月 01, 2011

並行控制技術 (鎖定/Timestamp)

[ 並行控制技術 ]

1. 鎖定(Locking)
二元鎖定:不為可序列化、活死結、飢餓
互斥鎖定(讀寫鎖定):不為可序列化、活死結、飢餓
二階段鎖定(2PL):分一般、嚴格、保守;可序列化、死結

2. 時戳同步(Timestamp)
可序列化、沒有死結、會有飢餓。
飢餓可用 wait die / wound wait 解。

3. 樂觀同步
可序列化、假設所有交易均可順利執行,交易時
不做檢查。資料暫存在 Local Copy 交易完才檢查。

4. 多重版本
可序列化、以時間為基礎,每次進行資料修改時,
均保留原值。並行執行時,會自動選擇適當的值。

5月 27, 2011

DSSS FHSS OFDM

DSSS 直接序列展頻技術 (Direct Sequence Spread Spectrum)

利用展頻碼(Spreading Code) 將原始訊號展開成數倍頻寬的訊號,
這個展開的方法會將原來訊號的能量降低。

IEEE 802.11 DSSS 使用 11bits chipe sequence
利用10個以上的chips代表「1」或「0」位,將原本高功率、窄頻寬的位元訊號,
利用10個以上的chips代表「1」或「0」位,將原本高功率、窄頻寬的位元訊號,
透過虛擬隨機序列(Pseudo Random Sequence)和相位移轉技術(PSK),轉變成
低功率、寬頻帶(在2.4Ghz頻帶,分以13個頻道,每個頻道頻寬為5MHz)的載波
訊號,這些轉變後的載波訊號被稱為 Spreading Chips,Chips數愈多可以增加
資料安全性,愈低則增加使用者數目。普遍使用 10-20 Chips。

信號擴展在很寬的頻帶上,單位帶寬上的功率很小,即信號功率譜密度很低,
信號淹沒在Noise之中,別人難以發現信號的存在。

優點:抗干擾能力佳、資料隱密性、防竊聽
缺點:耗電較 FHSS 多一倍、區域內只能允許三部AP同時運作

FHSS

將可用頻帶切割成多個狹窄的 channel,發送者會在各頻道中跳躍,送出資料。
接收端要以當初約定好的跳躍樣式(Pattern) 去各相對頻道接收訊息。
使用 FHSS 可以達到安全性,適合短距離、速度要求度不高的網路使用。

優點:抗干擾能力強、允許較多系統同時運作
缺點:傳送速率慢

OFDM
優點:高傳送速率、抗信號衰減、免於多重路徑傳輸干擾
缺點:涵蓋範圍小、時鐘信號的不匹配較敏感

5月 09, 2011

風險管理

在風險對專案造成威脅前,針對風險來源建立一個平衡、整合的策略,

並且進行監督、控制。主要有六個階段:

1. 風險識別:找出風險來源,足以影響專案成敗的關鍵
(a) 人員風險,重要人員離職,缺乏可接任人選。
(b) 技術風險,使用錯誤或者不熟悉的技術。
(c) 市場風險,競爭對手提出新產品,新的技術。
(d) 顧額風險,客人不斷變更需求,或者是配合度不佳。
2. 風險評估:評量風險發生機率,以及風險後波及範圍。

3. 風險分級:依照風險的危害層級進行劃分,針對風險大者進行列管。

4. 風險處理:針對列管的風險,專門擬定一套措施,來消弭風險。

5. 風險減緩:使用有效方法來降低風險
(a) 風險避免:不行事可能產生風險的事情 (消極)
(b) 風險分散:將高風險的任務,交由不同單位執行 (雞蛋分籃放)
(c) 風險轉移:對於自身無力完成的工作,轉交由其他組織來進行。
6. 風險追蹤:風險會隨著專案的進行而變動,會新增消失。管理者要定期分析。

5月 06, 2011

Nexus S 2.3.4 OTA

今天 Nexus S 也收到 2.3.4 版的更新通知了,手機出廠時是 2.3.3。新版主要加入 gTalk 視訊功能。

[先記一下手機的原始資訊]
Android 版本:2.3.3
基頻版本:I9023XXKB3
核心版本:2.6.35.7-g1d030a7 , android-build@apa28#1
版本號碼:GRI54

不過這次 Google 出包很大,送出一個 12MB 大小的更新檔,完全無法成功升級。幸好手機沒有因為升級失敗而爆掉,不然一定被譙翻了。