星期二, 8月 23, 2011

一半科學。一半藝術。Code Gen。

Programming。一半科學。一半藝術。
科學的部份有可能code gen。
藝術的部份要如何code gen。
只認同原則的reuse。觀念的reuse。
不認同programming是可以完完全全的reuse。

之所以對code gen還存有一絲絲的希望是畢竟其中還有科學的部份。
這部份是可以量化的。

之所以沒辦法蔚為風潮。實實在在的成功是因為難以量化藝術的部份。
這部份code gen何以可成。

標籤:

星期四, 9月 11, 2008

Re-design 機制的起動

設計有時。實作有方。
發之於設計。形之於實作。
實作之頓挫。回饋於設計。
有時有方。勿令間斷。
上下一氣。可思進取。

標籤:

星期四, 7月 24, 2008

系統 vs 企業

站在一個系統的角度來說。希望系統內各個 component 能夠正確無誤的 cowork 以符合系統的需求。不論是系統操作流程或 function 上的需要。當一個 change request 或 new function 進來。系統的各個 component 要能夠輕易迅速的做修改以迎合這些變動。而且 component 與 component 之間要有良好的 design 及佈局。不論彼此間的連繫。message 或 data 的傳遞。都要能順暢無誤。再者各個 component 或 library 要盡可能的能被 reuse。如此在 support requirement 或 function 的更動時。能在 impact 最小的情形下利用現有的資源來達成目的。

站在一個企業的角度來說。希望企業內各個系統能夠正確無誤的 cowork 以符合企業的需求。不論是企業運作流程或業務上的需要。當一個運作流程的更動或業務的需求進來。企業的各個系統要能夠輕易迅速的做修改以迎合這些變動。而且系統與系統之間要有良好的 design 及佈局。不論彼此間的連繫。message 或 data 的傳遞。都要能順暢無誤。再者各個系統要盡可能的能被 reuse。如此在 support 運作流程或業務需求的更動時。能在 impact 最小的情形下利用現有的資源來達成目的。

標籤:

企業的本質

企業的本質就是錢,就是要賺錢、要獲利。任何公益、口號、或者技術的創新,不管表面是如何的包裝,其背後最終的考量還是錢。

標籤:

星期三, 7月 16, 2008

轉貼 - Google Android平台先打到的是Java而非Linux?

雖然自己並不是程式開發者,不過在Google發佈了Android手機平台之後,因為相當受到矚目,所以一直都有在看相關的文章,本來一開始以為最先會 影響到的,會是目前其他一些同樣也是嵌入式Linux平台,像是OpenMoko、Access的Linux Platform,或是Monta Vista之類的嵌入式Linux平台開發商(為此還前去請教了Jserv大大)。


不過國外的stefano在自己部落格當中提到, 針對目前Android提供SDK,發現了一些狀況而提出看法,當中說明了Google Android平台,為了能避開Sun在java上的版權限制及規格控制,而採取的繞行動作,為了考慮到對於手機平台中,軟硬體開發商還是會出現一些無法 公開原始碼的使用狀況(例如影音codec之類),所以採用較符合商用限制的Apache版權,藉此來繞過GPL2的回饋性質,而Google採用的解決 方案是,實做出Dalvik這個虛擬機,把產生出來的Java bytecode再轉入自己格式的bytecode,而Dalvik本身並未宣稱是Java虛擬機,除了當中使用Java語法之外,所用的java SE class library也並非來自Sun,而是來自於Apache Harmony專案,而Google本身為了確保Android平台,不致同樣與Java在行動市場上面臨到分裂的問題,所以要求使用該平台的成員,必須同意它的一份反分裂協議,確保將來的相容性。

而Google為何要採用這樣的繞行措施,就查詢相關資料當中了解的部份,是由於雖然目前Sun的Java已經採用了GPL2開放,但是開放的部份,是目前已經在實做的Java當中的原始碼,對於Java SE和Java ME的規範,事實上還是綁在強烈存在於Sun陰影下的JCP組織當中,這部份一直以來,大概以IBM為首有最強烈的反對,因為事實上Java的規範,實質掌控還是在Sun的手中。

再 來則是J2ME的行動開發的部份,其實因為本身針對不同手機平台調整過,後來就造成了某種分散性,因為針對了手機各種功能不同做了調適,而導致Java語 言原先要做到寫一次跑全部的原則遭到挑戰,Sun自己也知道這個問題,所以在今年JavaOne大會,就力推JavaFX,在另外一個Java相關的部落 格城市胡同的文章當中提到,JavaFX 本身要將桌上型使用的Java SE標準帶入移動平台的企圖,說到這裡,和上面Android所釋出的SDK分析做個對照,就可以知道,Google已經搶了Sun一步在做類似的事情, 並且透過推出完整的平台跟聯盟,已經先搶了Sun在吸引開發者到JavaFX上的優勢,更何況還推出了獎金活動,比起相對在JavaFX上,尚未確知有哪些廠商採納來說,哪邊的吸引力比較大已經是不用多說了。(不過當然以JavaFX本身來說, Sun的技術還是有領先之處的,但是就是被搶了先機)

而 雖然目前Android當中完整的嵌入式Linux平台尚未公開,不過對於開發資源的磁吸效應似乎也已經產生,最近可以看到Access,他們當初買下了 palmsource,希望藉由Palm OS的相容性以及延續性,來作為自己的Linux平台產品特色,但是現在Access也出現了動作,在昨天宣佈將PalmOS的模擬層,在另一個Linux嵌入裝置Nokia Tablet當中推出,只要是Nokia N810,N800,N700的使用者,都可以免費下載下來使用,如此就可以使用到過去Palm OS上的應用軟體資源。

不 過目前也不確定其他的行動Linux平台是否要緊張,因為如果Android平台真的如Google所願,能維持成一個開放且互通的平台的話,那麼假如其 他嵌入式Linux能在GPL與Apache授權相容的情況下,移植Andoird當中的Dalvik虛擬機來使用,如此也就能受惠於Android平台 的開發資源,因為可以接收過去在行動裝置平台上,J2ME的開發者們前來創建出的開發社群,那麼對於嵌入式Linux平台來說,也許就會是一劑增加應用的 強心針而非分裂的毒藥了,希望自己這樣的想法不會太過於天真才好。

標籤:

Apache License vs GPL

第一、GPL 要求程式碼在重新散佈或修改時,必須提供原始程式碼(source code),並且也要基於 GPL 條款進行授權。因此,我們無法由原始授權者取得 GPL 軟體後,就無法再做「再授權」的動作。Apache License 則不然。如果軟體是基於 Apache License 授權,我們在重新散佈或進行程式碼修改時,就不會被要求必須要提供原始程式碼;同時,Apache License 授權也允許他人對軟體做「再授權」的動作。

第二、若是程式包含專利技術,使用 Apache License 時,表示授權者願意將程式的專利技術授權出來(Patent License)。但是,GPL 授權則不允許專利授權,因此在某些情況下,使用 GPL 授權的軟體可能會有侵害專利權的問題。

標籤:

轉貼 - 善用加密技術,讓網路更為安全

數位憑證是網路上的個人身分證明,由憑證管理中心經過身分的驗證程序後,發給你的一個數位的身分證明。數位憑證也是一種用來驗證使用者或使用服務的身分的技術,利用PKI技術來提供身分識別的能力,以保護網路上資料存取的正確性、保密性等。


Certificate
憑證,也稱為數位憑證(Digital Certificate),是一種驗證的技術,也是網路上的身分證明

我們在登入網頁的時候常常需要輸入帳號與密碼,初次登入某個網站時,還要先註冊這些資訊才能使用。輸入帳號跟密碼最主要的目的,只是為了要作到身分的認證,也就是讓資訊系統能夠認得你是誰,進而能賦予適當的權限,以及便於事後的追蹤記錄。

數位憑證的用意也是如此,讓系統可以辨認、證明身分。簡單地說,數位憑證就是網路上的個人身分證明,由憑證管理中心經過身分的驗證程序後,發給你的一個數 位的身分證明。數位憑證也是一種用來驗證使用者或使用服務的身分的技術,利用PKI技術來提供身分識別的能力,以保護網路上資料存取的正確性、保密性等。 它不僅可以代表使用者,也可以代表電腦/設備、組織機構,甚至是程式的身分,所以才有所謂的個人憑證、伺服器憑證、認證機構憑證、軟體出版者憑證。

一般憑證有效期限為1至3年,視發行者而定,長度最低為40位元,假如要破解目前採用的1024位元RSA密鑰,在短時間內是完全不可能的,所以憑證的安全性是非常高的,但需留意私鑰的保管,這些檔案最好是不能連上網路的地方,例如儲存於磁片。

現今憑證應用的範圍很廣。例如電子郵件方面,用來保障郵件傳輸的安全,也可用來加密與人交換或需要保存的資料檔案;內部工作流程簽核或申辦表單等資料的數 位簽章,也很普遍。目前最常見的運用是在證券公司、銀行、保險等金融單位,主要因為發給客戶的數位憑證(如網路銀行憑證、網路下單憑證、網路保險憑證), 是用來下單委託或是轉帳,需要高度的正確性與保密性。而對銀行業者來說,自動化與數位化的流程,也大大減少服務人員數量,以及降低手動操作上的失誤機率。

除此之外,在網路報稅時,我們也需要搭配使用,就像臺灣政府積極推廣的自然人憑證,主要是以安全性為考量,並希望行政作業流程更為便利。

Public Key Infrastructure, PKI
公開金鑰基礎架構
簡單說,基本上它是一個服務群組,是指結合憑證管理中心,以及非對稱性密碼而形成的系統機制,用來強化網路安全,使用者可以透過網路,安全且經過驗證地與 他人交換資訊,提供一個嚴密的服務平臺。類似現實世界中,我們用簽名、密封文件的方式來保全交換的訊息,PKI主要目的是提供使用者於電子訊息交換時,確 保身份確認性、資料完整性、不可否認性、私密性。

RSA Algorithm
RSA加密演算法
於1977年由R. Rivest、A. Shamir及L. Adleman三人所發布,取三人姓氏首字而命名,稱為RSA。這套演算法是以兩個非常巨大的質數為私鑰,兩質數的乘積為公鑰,鑰匙的長度在用戶端應使用 1024位元密鑰,認證管理中心所應用的是2048位元以上。若要強行破解則對方將進行質因數分解才行,但因為當兩質數的值越大時,則質因數分解所耗用的 時間成倍數成長。RSA密碼法在目前算是相當安全。

Public Key、Private Key
公開金鑰、私密金鑰
使用非對稱加密演算法,加密端及解密端會分別使用不同的金鑰。
這兩個金鑰一個稱之為公開金鑰(Public key),簡稱公鑰;另一個稱為私密金鑰(Private Key)簡稱私鑰。公鑰公諸大眾,私密金鑰則由擁有人自行保存。像RSA演算法就屬於非對稱加密演算法,加密時用公開金鑰,解密時須搭配私密金鑰;以私密 金鑰產生簽章,以公開金鑰驗證簽章,而這兩金鑰就是一種非對稱金鑰。

Electronic Signature
電子簽章
電子簽章類似傳統的簽名或蓋章,只是它是以電子形式存在。當簽署者在電子文件上簽章後,表示本人同意文件的內容,並留下可供識別簽署者身分的證 據。2002年以後,臺灣開始實施電子簽章法,效力已具備法律上的地位。由於近年來生物科技(指紋、聲紋、眼虹膜、DNA)等用於鑑別身分的技術,也正快 速的發展,整體而言,任何的電子技術只要能符合特定的安全需求,皆可用來製作電子簽章。

Digital Signature
數位簽章
它是電子簽章技術的一種。以公開金鑰基礎建設為基礎而製作。數位簽章在簽署時,將文件運用雜湊演算法以及私密金鑰進而產生數位簽章。而在驗證時, 使用公開金鑰驗證簽章的真實性。在簽署以電子方式傳送的文件時,確認發送對象的真實身分,防止傳送資料時遭竄改偽造,並可避免事後發生否認的情形。目前數 位簽章已廣泛用於各種電子方式交易,能夠充分保障電子商務交易安全的資訊。

Encryption、Decryption
加密、解密
指將可讀的明文資料經由特定演算方式加以處理,轉化為外人無法讀取的密文資料。依特定演算方式將密文資料轉換回原始明文資料的動作則稱為解密。由 於在網路上常見一些資訊安全問題,如竄改、竊聽、冒名傳送、否認傳送,我們需要使用加密的方式,來保護我們的資料不被竊取竄改。當然,簡單的加密模式容易 破解,重要資料的保護必須使用高安全性的加密模式處理,而不是一般的加密就可以了。

Certificate Authority,CA
憑證管理中心
簡單地說,就是一個製作數位簽章及提供電子認證服務的機構。它是一個具公信力的第三方單位,他們可以對個人及機關團體提供認證及憑證簽發管理等服 務,例如利用憑證管理資訊系統(憑證管理系統、註冊管理系統、目錄伺服器),嚴密管理憑證作業流程,並提供申請者註冊、憑證的簽發、廢止、管理、產生稽核 記錄等服務,來建立具有機密性、識別性、完整性、不可否認性的資訊安全環境。

Secure Sockets Layer,SSL
SSL網路安全傳輸協定
它是一個為保障網路上資訊傳輸安全的安全協定,用來提供用戶端和伺服器端的資料加密和認證。SSL使用公開金鑰加密方式作安全認證,而傳遞資料使 用對稱式密碼加密。目前最新版本為SSL v3,國際標準組織將它稍微修改並重新命名為Transport Layer Security(TLS v1.0)。由於兩者相差無幾,故多半沿襲舊稱SSL。現今SSL已成為國際標準,大多數網站要求身分認證的網站都會使用SSL加密技術。

X.509
X.509數位認證標準
X.509標準是由國際電信聯盟(ITU-T)制定的數位認證標準,以公開金鑰基礎架構與電子簽章為基礎而建立。標準中含公開金鑰和使用者的名稱 及資訊,定義了數位憑證的結構,以及利用數位憑證作認證的協定。最新使用的版本為X.509 v3,目前電子商務的安全電子交易(SET)協議就是基於X.509 v3。X.509標準在公共金鑰的密碼格式方面已被廣為接受。

標籤:

塑模。看得懂。被量化。貼近現實。

塑模 Modeling 要能夠被看得懂、要能夠被量化、要能夠貼近現實。從流程、結構、資料、及部署等不同面向的角度下去思考。

如同建築有結構、水電、裝潢、安全性等不同的設計圖的道理是一樣的。

標籤:

星期二, 6月 03, 2008

多層次。圖。2D 平面。原始碼。

經由不同切入點的圖來描述同一事物。可表現出其多層次的觀點。
單就原始碼。多層次觀點混雜在同一個 2D 平面空間中。
縱使再多 refactoring。依然有其理解上的困難存在。

標籤:

星期三, 5月 14, 2008

轉貼 - Bluetooth vs Wi-Fi 一山能否容二虎

一位正趕往國外簽署一宗大生意的老闆,到達國際機場時,忽然想起遺漏了一份非常重要的合約在辦公室。於是秘書拿出PDA立刻上網,該份合約竟然就出現在螢幕上 ─ 秘書的法寶就是最新的無線區域網絡WiFi技術。

科技已把電話線去掉,變成幾乎必備的移動電話,下一步將無線通訊技術應用在個人或商業電腦上,也就變得一點也不稀奇了。在無線通訊領域,由於各種技術及標 準都存在就不成熟或各有市場定位的不同,在全球幾乎沒有一種完全能統一的技術標準。目前最熱門的無線通訊技術,就是業者稱為WiFi的802.11b標 準。由於廣受業界支持,802.11b幾乎成了無線區域網絡(Wireless LAN)的代名詞。

無線區域網絡是以無線(無 線電)連接至區域網絡(LAN)的通訊方式。它採用的是國際電子與電機機構(IEEE)所定製的IEEE 802.11系列標準,其中包括加密技術和有線 同等隱私(Wired Equivalent Privacy,WEP)加密演算法,以確保無線區域網絡也跟有線區域網絡一樣安全。

無線區域網絡標準多
無線區域網絡並非只有一種標準,譬如IEEE 802.11家族,就有一系列不同頻道的標準,分別是:802.11、 802.11a、802.11b以及最近才批准的802.11g(甚至還有802.11i和802.11h)。所謂國有國法,家有家規,WiFi卻不能入 鄉隨俗進入歐洲,因為歐洲電訊標準機構(ETSI)批准的是另一個稱為HiperLAN的標準,而且還被分成:HiperLAN/1和 HiperLAN/2標準,因此,在歐洲使用WiFi原則上是「犯法」的。

HiperLAN/1標準是在無線電頻譜 (RF spectrum)的5GHz頻道內,速率高達20Mbps;而在同樣頻道內的HiperLAN/2標準的速率則高達54Mbps,可兼容3G無 線區域網絡系統。相比之下,另一個被稱為HomeRF的標準就緩慢了。顧名思意,HomeRF是一套家庭網絡無線電標準。它集合了WiFi和數碼優化無線 電訊(DECT)移動電話標準,可在150尺範圍內,連接多達127部電子器材,以1.6Mbps速率收發訊息。儘管HomeRF較少受到其它電子器材如 微波爐等的電波干擾,不過,由於範圍小又比WiFi昂貴,因此不久就被WiFi趕出了家庭網絡市場。

蘋果產品標新立異
向來 喜歡標新立異的蘋果(Apple)當然也有802.11b產品,可是它卻不叫WiFi,而名為AirPort。該公司在2001年11月還推出了第二版 AirPort,內置防火牆及支援128位元加密技術。AirPort的速率當然與WiFi一樣是11Mbps,卻可同時讓50名用戶共享一個互聯網戶頭 上網,不過用戶必須維持在接收站方圓150尺範圍內。至今,所有蘋果桌面型電腦和筆記型電腦都內置了AirPort天線與插卡槽,甚至預裝了插卡。 WiFi稱霸全球市場 無線區域網絡於1999年在美國開始流行,加上全球網絡通訊業者「遺棄」略為過時的HiperLAN和HomeRF標準,而大 力支持WiFi標準,導致市場上幾乎90%都是由後者霸佔。至今,亞太區市場也很快的將追上歐美,根據Frost & Sullivan的調查指 出,2000年亞太區無線區域網絡市場盈利總值1億4270萬美元。目前全球共有超過100種來自40家廠商的受認證WiFi產品。

日本是整個亞太區無線區域網絡應用率最高的國家,安裝單位達30萬4264,把澳洲、韓國及香港、台灣等高科技國家和地區遠遠拋在後頭。印度雖然以軟件技術發展聞名,不過在無線區域網絡應用方面卻仍需努力。

無線區域網絡是一種企業網絡科技,因此應用者大都是公司或政府機構。除了企業用戶外,醫院、機場、酒店等都可以應用無線區域網絡。無線區域網絡秉持著其移 動性與隨時隨地持續連線的優勢迅速崛起,Frost & Sullivan估計在今年,整個亞太區無線區域網絡市場總值將是2億2800萬美元。 從2000年起至2007年,安裝單位每年將以39.9%增長至527萬8000單位,而市場盈利則以29.7%年度增加。由於WiFi深受眾多業界支 持,加上最近電子與電機機構又批准了802.11g標準,更是促進了2.4GHz頻率無線區域網絡的發展。儘管最近很多業者紛紛推出支持802.11a標 準的設備與服務,但是,行家估計,5.7GHz頻率波段無線區域網絡,需在2007才開始普及化。

WiFi與藍牙各有千秋
據3Com亞太區副總裁朱紹仁解釋,基本上,藍牙可簡單被視為取代電子器材電纜的無線技術,而WiFi無線區域網絡則是有線乙太網絡的取代者,不過藍牙與WiFi都不能被互相取代,因為各有千秋,可互相取長補短。

藍牙是以層次制(Session)處理通訊,這表示即使同時連接至7種器材,但是網絡只能讓一種器材佔用。譬如一部筆記型電腦可同時以藍牙連接印表機、個 人數碼助理、手機、一部電腦、多媒體投影機等,但是,用戶只能跟其中一部器材交換資訊完後,才能與另一部通訊。WiFi與藍牙共同使用24GHz波段,難 以避免有電波干擾現象,不過後果並不嚴重,通常只會減慢速率而已。

針對藍牙只限10公尺範圍內發揮作用的問題,專家認為,通常一般個人只在很小的空間內使用各種電子器材,10公尺範圍足以應付個人網絡需求。

WiFi與藍牙大比並
一直掛在電訊業者嘴邊的藍牙(Bluetooth)通訊技術,其實也是採用2.4GHz頻率波段,因此被視為WiFi干擾者。雖然其數據傳送速率最高可達 1Mbps(基本速率為721Kbps),有效範圍為10公尺,而且最多只能連接7種器材,但是卻非常適用個人區域網絡(PAN)。目前共有逾2500家 公司支持這項技術,已開發出1.1版本。在2001年,市面上至少有420萬至1500萬部具備藍牙通訊技術的器材,估計在2005年將增加至9億 5500萬至10億部左右。

亞太區用戶針對藍牙應用方面,最為關注的除了是人人擔心的安全問題外,仍然還擔心電波干擾問題。基 本上,亞太區一些發展中國家,經濟成本有限,因此也非常關注藍牙費用高低。反觀歐美國家較為注意技術支持和操作是否簡易。由此可見,要在亞太區推出藍牙產 品,必須儘量控制成本及確保器材不受電波干擾。

既然WiFi與藍牙無論在技術上與應用方面都不相上下,是否意味一山不能藏二 虎?事實上,兩者互相干擾只是理論上成立而已,現實應用中還不至於出現嚴重干擾。由於兩者有效範圍有異,可以取長補短配合起來應用。譬如用戶可憑藉 WiFi的速率,把文件下載到服務器內,然後再通過藍牙傳送至手機或PDA,而PDA也可以直接應用藍牙列印文件,避免服務器負載過重。

附:

藍牙 IEEE802.11b

WiFi

頻率波段

2.4GHz

2.4GHz

有效範圍

10米

91米

傳送速率

1Mbps

11Mbps

同時連接器材

7種

63種

應用網絡

個人區域網絡

乙太網絡

標籤:

轉貼 - Bluetooth vs Wi-Fi 來自兩個世界的美麗

目前有一種關於無線網絡技術的「流行」說法,認為藍牙(bluetooth)標準在無線網絡標準的競賽中日漸隕落,而將被Wi-Fi(802.11)標準所取代。事實果真如此嗎?其實,將Wi-Fi技術與Bluetooth技術在速度和覆蓋能力方面進行比較,就像是把蘋果和橘子放在一起比較一樣...

作為同時投資於這兩種無線技術,並擁有分別支持兩種標準的成熟產品的主流廠商的3Com公司認為,Bluetooth技術被開發出來是用於對Wi-Fi技術的補充,而不是競爭和取代。當前,Wi-Fi技術唯一能夠發揮作用的領域是在PC和掌上設備,而在用於多平台的開發方面,人們在Bluetooth技術上比Wi-Fi技術上付出了更多的努力。一個很重要的原因是:Bluetooth標準定義了一套完善的簡表系統(profile),其中對於不同的設備之間(例如蜂窩電話、掌上設備、筆記本計算機以及打印機)如何進行相互通信進行了詳細的定義。目前還沒有可支持 802.11b標準的移動電話,無線乙太網相容聯盟(WECA,Wireless Ethernet Compatibility Alliance)正在計劃相關的事務,但還需要一段時間來完成相應的開發工作。

有人認為Bluetooth技術以及相關產品的開發時間過長,但應該指出的是,為了使Wi-Fi技術成為一項被業界廣泛接受的標準已經花費了超過6年的時間。這項技術經歷多年的開發,而在其面市的時候價格非常昂貴,並且只能實現較低的1Mbps傳輸速率。當最新的標準(802.11b標準)被開發出來之後,Wi-Fi技術就被IEEE委員會推到了前台,就像Bluetooth 1.1最開始時那樣。現在,Wi-Fi技術能夠實現的傳輸速率是11Mbps,其成本也相應的進行了下調。與之相比,僅僅發展了大約3年的Bluetooth技術走過的是一條與Wi-Fi技術相類似的、然而速度卻要相對快得多的發展歷程。此外,Bluetooth SIG組織已經擁有了超過2000家的公司為其開發支持Bluetooth技術的各類產品。

將Wi-Fi技術與 Bluetooth技術在速度和覆蓋能力方面進行比較就像是把蘋果和橘子進行比較一樣。Bluetooth技術不是一項被設計用來進行長距離或進行高速數據傳輸的技術,它並不能取代乙太網的功能。3Com公司和其他一些公司都將其視為一項在功能上可以與乙太網絡進行互補、共用的技術,這也就是為什麼 3Com公司既生產Wi-Fi產品,也生產Bluetooth產品的原因。Bluetooth是一項為短距離的個人區域網絡(Personal Area Network,PAN)應用而設計的標準。在一個PAN當中,考慮到一般所傳輸的數據量都會比較小的因素,數據傳輸的速率因此變得不是非常重要了。 Bluetooth技術是為用戶提供輕巧、簡單的聯網,使用戶實現不再需要任何線路就可以完成數據傳輸的夢想。更值得一提的是,Bluetooth技術的傳輸速率和傳輸範圍都在持續得到改善,這一不斷改進的過程與Wi-Fi技術剛剛面市時在傳輸速率與距離方面的提高過程非常相似。

移動聯網的專業人士迫切需要在沒有現成的模擬電話線的條件下也能夠隨時完成撥號聯網,任何一位差旅專家都可以證明當出差在外的時候要想找到一條撥號線路是多麼的困難。利用一部Bluetooth電話和一台筆記本計算機進行撥號聯網的應用現在已經在歐洲地區實現(例如,支持Bluetooth技術的Ericsson T-39移動電話可以在GSM網絡上利用GPRS技術來進行數據傳輸)。當前,在歐洲利用Bluetooth技術來進行數據傳輸的速率為30-45k, 3Com公司相信這將是一項理想的應用,並且會受到移動辦公專家的高度青睞,尤其是隨著越來越多的產品開始進入市場,並且這些產品的價格也隨之下降的時候,而這一過程也與Wi-Fi所走過的歷程頗為相似。現在,這些移動(無線)撥號產品還都需要專用纜線。

市場本身已經證明了通過一部掌上設備與桌面系統之間無線的進行數據同步或數據交換為用戶所帶來的價值和好處。沒有哪一個用戶,尤其是那些移動辦公專家們,會不喜歡利用熱同步插座輕鬆愉快地進行數據的複製或交換。Palm(具備紅外能力的)的「紅外傳輸」(Beaming)能力可能能夠支持這樣的功能。此外,任何消費者都沒有理由不希望能享受到Wi-Fi標準和Bluetooth標準所帶來的各種好處。

Bluetooth技術更加適用於移動電話和掌上設備。Wi-Fi芯片組比Bluetooth芯片組需要消耗更多的電能,佔據更多的空間。對於那些僅依賴電池能量就可以工作的小型的掌上設備來說,應用Wi-Fi技術不能具備任何商業意義。所以對於那些非常依賴這些掌上設備來進行工作、並且希望不必為頻繁更換電池而煩擾的移動辦公人員來說,Bluetooth當然是首選的技術:Wi-Fi技術需要兩組芯片組,而Bluetooth技術只需要一組芯片組。

Bluetooth 1.1克服了早期版本的技術缺陷
想像一下無線聯網帶給您的好處:讓您與同事之間方便、輕鬆地交換電子名片、文件或其他任何信息;通過將您的PC與掌上設備、移動電話、打印機、掃瞄儀、傳真機以及複印機等外設相聯,來幫助您建立屬於您自己的個人區域網絡(PAN)。現在,新的Bluetooth 1.1技術規範可以承諾幫助您將如此廉價的無線聯網夢想變成現實。

由於沒有考慮到設備互操作性速特的問題,Bluetooth 1.0b規範(Bluetooth Version 1.0b)沒有能夠將這一承諾完全變為現實。Bluetooth 1.0b技術規範對不同的特定功能進行了定義,但是卻沒有指明對這些特定功能的實施標準,從而使得對規範中的這一關鍵部分內容存在著許多不同的解釋。這一問題的後果便是互操作性問題產生並阻礙了標準的廣泛實施。當設備廠商A的某一部Bluetooth蜂窩電話無法與來自設備廠商B的Bluetooth PC卡協同工作時,用戶從設備廠商C處購買一台Bluetooth打印機的消費念頭便會被打消。所幸的是,Bluetooth 1.1規範解決了這些互操作性的問題。

在1.1版的Bluetooth規範中,用戶認證方面的變化是其最為顯著的一項變化。出於安全性方面的考慮,Bluetooth設備之間的通信是經過加密的。當兩台Bluetooth設備之間嘗試著建立起一條通信鏈路的時候,它們所做的第一件事情便是互相交換用以確認身份的口令,如果口令不匹配,這兩台設備便不會相互通信。而在Bluetooth 1.0b規範中,在建立初始連接的協商過程之中,這兩台設備會陷入一種無法調和的競爭態勢。這些設備會執行一個生成口令的算法,但是每一台設備都會生成一個不同的口令。這一問題便會陷入一個死循環當中。

能否生成正確的口令取決於哪一台設備(主設備)發起會話以及響應設備(輻設備)對於主設備發起的會話過程的響應速度。如果輻設備處理信息的速度高於主設備的話,隨之而來的競爭態勢會使兩台設備都得出自己是通信主設備的計算結果。由於這一漏洞,兩台設備將無法生成匹配的口令。通過更加詳細地定義設備的身份認證所要進行的每個步驟,Bluetooth 1.1規範對這一問題進行瞭解決。特別是通過設備之間進行協商和/或聲明以確定哪一台設備發起了會話,1.1版本的Bluetooth技術規範要求會話中的每一台設備都需要確認其在主設備/輻設備關係中所扮演的角色。

通訊頻率的匹配是一個更為基本的互操作性問題。 Bluetooth技術將2.4-GHz的頻帶劃分為79個子頻段。由於採用一種被稱之為跳頻(frequency-hopping)的技術進行頻譜延展以傳輸數據,主設備與輻設備必須使它們在2.4-GHz的頻帶上上下的頻譜移動保持同步來保持它們的連接。如果它們不能夠同時到達同一子頻段的話,設備之間便不能夠進行通訊。一些國家,如法國、日本、西班牙,將2.4-GHz的頻帶用於非商業用途,如軍用通訊等。為了適應這些國家的特殊情況, Bluetooth 1.0b定義了另一套子頻段劃分標準,將整個頻帶劃分為23個子頻段,以避免使用2.4-GHz頻段中指定的區域。這造成了使用79個子頻段的設備與那些設計為使用23個子頻段的設備之間互不兼容。

為瞭解決這一問題,藍牙技術聯盟(Bluetooth Special Interest Group,Bluetooth SIG)經過與使用23子頻段標準的國家進行協商,使得79頻段的設備被允許在這些國家中使用,這使得Bluetooth 1.1標準可以取消23子頻段的副標準。所有的Bluetooth 1.1設備都將使用79個子頻段在2.4-GHz的頻譜範圍之內進行相互的通信。

互不兼容的數據格式也會引發Bluetooth 1.0b設備之間的互操作性問題。Bluetooth可以支持最多每數據包5個slots的數據格式,以達到其每信道720K bit/sec的最大數據傳輸速率。然而,並不是所有的Bluetooth設備都支持包含5個slot的數據包格式。當一台主設備試圖發送所包含的 slots數超出了輻設備能夠支持的範圍的數據包時,通訊過程便會失敗。在Bluetooth 1.0b規範中,輻設備不能告訴主設備在整個通訊過程當中有多少slots可以被使用。Bluetooth 1.1規範修正了這個問題,允許輻設備主動與主設備進行通信並告知主設備有關包尺寸方面的信息。在1.1版本的Bluetooth規範之中,輻設備可以在必要的時候通知主設備發送包含較少(或較多)slots的數據包。

Bluetooth 1.1規範最終在今年的早些時候被確定了下來,而設備供應廠商們也已經開始發售支持Bluetooth 1.1標準的產品了。

標籤:

星期三, 11月 21, 2007

轉貼 - 30年後仍適用的軟體專案管理概念

在人月神話中,工作完成所需的月數,會因人員的增加而遞減,然而由於軟體專案是交互關係複雜的工作,需要大量的溝通成本,因此人數的增加,容易因溝通問題,反而無法達到預期的效果。


The Mythical Man-Month
人月神話,探究工時與人力無耗損互換的迷思

人月神話》出版至今已經超過三十年,一直被視為是軟體專案管理的聖經。《人月神話》之所以能歷久不衰,一方面是作者Frederick P. Brooks, Jr.本身曾擔任IBM System/360與OS/360這類大型軟體系統專案的專案經理,因此能從實務中提取出具體意見。另一方面,即使IT產業在這三十年中飛快成長,然而 《人月神話》對於軟體專案提出的看法與建議,至今仍有參考價值。

所謂的人月(man-month)是用來衡量工作量的單位,也就是一個人在一個月內所能完成的工作量,例如有個專案預估需要12個人月,那麼如果 派了4個人來處理這項專案,理論上只要三個月就能達成。Brooks之所以將這個換算的機制稱為神話,是因為軟體專案在本質上,人力與工時是無法互換的, 換言之,當專案進度落後時,光靠加派人力到該專案中,並不會增加產能,反而有可能讓情況更加失控。

Brooks認為,軟體專案在本質上是系統性的工作,在過程中必須處理複雜的交互關係,在溝通上必須花費不少的成本。

因此Brooks認為,在專案的人員配置上,最好是有如外科手術團隊,利用支援性的角色,協助操刀的外科醫師,讓開刀過程可以更流暢,而不是讓整 個開刀床旁圍滿了一堆外科醫師。另外書中也針對軟體專案的問題,像是架構與實作的分野、溝通的方式、軟案時程預估、預防失敗等多種面向,提出理論與實務兼 俱的立論,希望藉此讓陷入困境的專案能順利走出焦油坑。文⊙黃天賜

Tar Pit
焦油坑

焦油坑是因石油揮發而成的黏稠瀝青,表面會因日照而反射出光亮,而讓野獸誤以為是水池而走近,最後陷在其中無法逃脫。

Brooks以焦油坑作比喻,形容他觀察到的大型系統的軟體開發。雖然系統最後總能釋出、運作,但是開發團隊往往無法達到既定的目標、時程或預算上的要求,因此被種種問題困住的開發團隊,就好像跳不出焦油坑的巨獸一樣。

Tractable Medium
易操控介質

在論及寫程式的樂趣時,Brooks舉出數個原因,包含創造的樂趣、有益於他人、可目睹成果動起來、持續學習的樂趣,以及最後的原因便是易於操控的介質。

在介質這一點,Brooks將程式設計師與詩人相提並論,只要動動腦筋,兩者就可以創造出美妙的事物,而更甚於詩人的是,程式設計的結果,能具體讓人感受到它的運作。一些問題也伴隨容易操控的特性而來,軟體工程便是在解決這些問題。

Aristocracy
貴族政體、菁英份子

軟體系統在設計時,至關重要的一點是保持概念的整體性(conceptual integrity),Brooks認為寧可丟棄某些新奇或更好的特色,以反映出同一組設計理念。

為了達到這樣的目的,在設計系統時,必須採用少數人決定的方式,類似於貴族統治的方式,由架構設計師這類角色,決定系統整體的規格。雖然在開發團隊中採用民主方式,可以廣納意見與創意,卻會破壞概念整體性。

Tower of Babel
巴別塔

巴別塔是聖經上的知名故事,人們想要合作搭建通天的高塔,上帝於是將人類的語言分成多種言語,彼此即無法溝通,高塔的任務即告失敗。

Brooks用這個故事來聚焦軟體開發過程中溝通的重要性,他指出許多問題都源自左手不知道右手在做什麼的情況,因此開發團隊成員應該應用各種方式,包含非正式方法、會議與工作手冊進行溝通。

Document Hypothesis
文件假說

「在成堆的書面資料中,有一小部分關鍵性文件記錄著任何專案管理的核心工作,而這些文件是身為管理者最重要的工具。」這是Brooks提出的假說,而他透過與其他產業運用文件的情況,驗證這個假說的真實性。

紙上作業經常被視為繁瑣、無趣,但Brooks認為對管理者而言,文件能讓團隊的思考與討論更集中,也能作為監督和預警的機制,因此對軟體工程的文件作業和其他產業一樣重要。

Silver Bullet
銀彈

在傳說中,銀彈是殺死狼人的致命武器,因此如果將軟體專案比喻為狼人,那麼能讓狼人一槍斃命的銀彈會是什麼呢?Brooks懷疑這種銀彈並不存在,這和軟體工程的本質有關。

他認為軟體工程的本質是架構許多抽象概念,並進一步制定規格、設計與測試,這造成它的高度複雜性,易變性、隱匿性等特質,因此軟體工程,這些難度不會因為軟體技術進步(像高階語言、整合開發環境)而帶來根本性改變。

Catastrophe
大災難

軟體專案釀成不可收拾的大災難究竟是如何造成的?Brooks認為大災難其實就是每天一點一點地的延誤中造成的。

因此日常的監控機制便相當重要,像是建立明確描述、可量測的里程碑(milestone),或是利用計畫評核圖來監控與應變進度狀況。
另外,成立計畫監控小組,擔任進度的守門員,進而提醒團隊容易疏忽掉的落後時程,對於專案有相當大的幫助。

Auxiliary Program
輔助程式

開發軟體系統,測試與除錯是相當重要的一環,因此建立良好的測試方案就至關重要。Brooks介紹了數種測試方案中應該包含的項目,而在介紹建立充份的測試鷹架(scaffolding)這個項目時,他介紹三種鷹架形式:傀儡組件、迷你檔案和輔助程式。

輔助程式是用來產生測試資料、列印特定分析結果與分析交互參考的表格的工具程式,提升除錯工作的效益。

Surgical Team
外科手術團隊

Brooks認為太多人參與專案開發,往往會增加溝通的成本,容易因為傳達不清形成不良影響。然而面對大系統,精簡的人力又往往增加時間成本。

兩難之中權衡,他認為開發團隊應該像外科手術團隊,不需要每個人都要實際操刀,而是應該安排像隨侍在外科醫生旁邊的支援性角色,增加操刀者的效率與生產力。換句話說,可以適時地加入行政助理、祕書、程式助理等人員。

標籤:

星期二, 11月 20, 2007

IT's Rule

Rule 1:
Readable 才是王道。


Rule 2:
Simple is Power

Rule 3:
以好 maintain 、省人力為最高指導原則。

標籤:

星期二, 9月 04, 2007

Anti-pattern:Nested Template Method

Template Method 中的 Template Method,即 nested 的 Template Method。
亦或者是交錯式的 Template Method 只會讓 code 更複雜。
此似乎為一 anti-pattern。

標籤:

星期二, 10月 18, 2005

Readable 才是王道

Readable 才是王道。沒有 readable。就等於被廢了武功。只能在黑暗中摸索。

標籤: