2000/01/30

網際網路架構的新思考
分類:網路





一套系統往往要連接到後端的資料庫這是以往的 Client/Server架構,網際網路的興起帶來了新的架構,不只是3-Tier或是N-Tier,他的網狀架構,帶來了無限的創新方法。

我們舉最簡單的例子,如果我們撥號上網到某一家ISP去的時候,最簡單的帳號密碼認證系統往往連接到該ISP的資料庫去做檢查的動作,但是如果你到國外去的時候,如果你有申請ISP的國際漫游服務的話,您只要用原來的ISP帳號就可以撥上國外的ISP,並提供上網的服務,這個就是2-Tier延展成為3-Tier的一種溝通通訊模式。

如果說這種認證的類型不只是用在上網際網路的撥接服務的時候,我們上網看到某一個商品服務,想要立即購買的話,只要打入信用卡號碼或者是銀行的帳號,立刻可以扣款並且得到這些服務,這就是金流,如果我們還停留在以現鈔交換貨品或者是實體線路的思考模式,可能沒辦法達成創新的系統設計,因為網際網路把全世界打通了,安全性與可用性的落實,完完全全掌握在這些通訊協定與資料庫的同步上面。

HTTP通訊協定的CGI(Common Gateway Interface)加上超連結,我們可以把不同的資料透過網際網路來交換,以最簡單的廣告服務來說,以前的廣告公司要負責市場調查、行銷企劃、廣告設計製作、媒體購買,這些流程雖然還在,但是已經壓縮在一台廣告伺服器之後了。

HTML的超連結語言溝通了全世界電腦,往後的XML語言與種種分散式的應用程式,我們要走的路還有很長呢!

2000/01/23

從結構化到物件導向
分類:系統





幾年前,一套程式系統用的分析方式,往往脫離不了靜態的畫面顯示,動態的資料輸入,以及資料的處理運算功能,這三類問題的處理只要能夠被表列出來,就能夠架設並完成一套良好的系統,這個就是結構化的分析方式。

但是隨著需求不斷地增加,電腦速度不斷地提昇,大量競爭的商業環境,物件導向的演進,改寫了結構化的分析方式,就連最基本的電腦語言也帶入了這場革命之中,從1980年代後期,企業軟硬體委外(Outsourcing)的商業活動抵定後,這些系統整合的廠商無不想盡辦法把『重新利用』這個事當作最重要的目標之一。

結構化的分析是個良好溝通的開始,但是,他的維護成本過高,一個系統不斷地演進過程中,就要有一批人非常熟悉這一套系統,一個新進的人員,要從頭了解一套系統,除了要閱讀所有的文件之外,也要熟知所有改版的歷史過程,而物件導向解決了這個部分的困擾,只要熟知一個物件的所有溝通介面,就可以很快的抽換掉一個物件並更新他的功能,就跟PC硬體的DIY一樣,顯示卡壞了,拔掉插入好的就好了。

這其中的演進也並不完全沒有中間的過程,記得1995年起,非常興盛的Frame-Work的架構,這其中的代表是Borland的OWL,以及後來模仿的MFC,把一個程式拆成文件Document/顯示View的型式,只要依照這個模式開發,會節省非常多的開發時間,但是並非所有的系統可以適用的,所以後來出現的Delphi語言,就是以單純的物件,你知要把一些開發好的元件搭配起來,並協調使用的模式,就可以簡單的完成一個程式。

我並非推崇哪一個特別的電腦程式語言或使用工具,只是這些工具的興起開創了里程碑,所以,不要太在意您用的工具用BASIC一樣可以做到物件導向,用C++語言也可以做的非常不結構化,只要熟悉物件化的原理與結構,一樣可以朝向物件導向邁進。

下一個潮流是什麼?

2000/01/16

如何踏入程式設計的領域
分類:職場





其實,寫程式就好像寫文章一樣,有些人靈感一來文思泉湧,一下子就寫了兩三千字,甚至三天三夜不能罷休,中國古代的詩人,不也是這個樣子嗎?我們經常說李白是詩仙,喝了酒靈感就來了,但是,他之所以能成功的寫了那麼多詩詞,他的背後也有一段學習的歷程......。

經常觀摩別人的作品,我記得小時候到了作文課是我最討厭的課程,漫長的兩節課,第一節課總是寫不出任何東西,到了下課後玩了一下,第二堂開始也只寫了第一段,最後草草寫完一篇文章。這時候,我們最希望的就是能回家拿出作文範本,希望能找到題目相同,又同時祈禱老師沒看過這篇文章,抄襲的確是非常不好的行為,但是觀摩別人的作品可以有效的增加自己的功力,維護別人寫過程式是一個苦差事沒錯,但是等你看懂了,看完了幾個系統後,不知不覺得你的功力就大增了。

建立一些自己常用的proptype(原型),寫文章最重要的畫龍點睛效果,就是字詞的點綴,苦背一些成語就是這個意思,但是寫程式著重的是邏輯,所以這些常用的原型,有人習慣是用別人的黑盒子(程式庫),有人是自己土法煉鋼,不管是怎麼應用,把這些proptype用的洽當好處也是要經過時間的驗證與不斷地修改。

不斷地重複檢討系統架構,有些文章是八股文,有些是新聞稿,有些是倒敘法,每篇文章的架構不同,所以要表達的意念也不同,一個系統或是一段程式也是一樣的,常常在心理或是紙上畫出你要寫的程式的系統架構有助於對整個程式未來發展與維護的方向,當你了解程式架構的起承轉合是怎麼一回事的時候,你就成功了。

觀摩作品,建立原型,檢討架構是我認為踏入程式設計的第一步,先選擇一種語言來學習或許是一個好方法。

2000/01/09

『應用軟體供應商』是軟體公司的契機
分類:網路





應用軟體供應商的英文全名為 Application Service Provider, 也是最近三個月來在軟體業被大家炒作的名詞,很多新成立的公司發的新聞稿也是以ASP的實踐者來推銷,或是以往的EDI也拿來應用在網路上,就變成了 ASP或者是WEB EDI,這麼多的名詞,我想簡單的定義一下什麼是ASP。

ASP簡單的講,分為兩種的供應模式,一種是租賃(Hosting),另一種是委外服務(Outsourcing)。第一種的租賃模式是廠商投資購買伺服器主機及軟體系統,由ASP廠商負責企業資訊化的工作,這種模式行之有年,一家新的券商或是銀行的新系統要上線,ASP廠商往往進駐三個月到一年完成所有軟硬體系統的修改上線及教育訓練的工作,台電、政府機構等等的系統更新也是用這種模式上線的,這些傳統的ASP廠商有中華電腦、資策會、中國嘉通、凌群電腦......等等廠商,這些資訊化的案子營業額都不小。

市面上有一些大的套裝軟體,例如:會計進出貨系統,也可以視為一種小型規模租賃性質的系統,他幫助您在安裝及操作的過程能順利的使用,但是套裝軟體的服務往往不如包整套的資訊系統,因為他的服務成本過高,不容易達成客戶的特殊需求。

ASP的第二種模式應該是網際網路成熟後的變形,例如現在ISP的虛擬主機,就是簡單的委外服務,只要你付費並提供資料,您的資料就可以被全世界上網的人看到,進一步來說,以往的套裝軟體(會計系統,幼教光碟...)是否可以完全的委外呢?把所有的資訊主機放到ISP或者是ASP廠商的機房中,因為網路的通訊與伺服器設備的執行速度夠快,可以有很多公司共用一部伺服器來降低成本,而公司的MIS部門也因此可以節省很多的維護成本(就是人力)。

所以,委外服務(Outsourcing)應該是應用軟體供應商(ASP)主要的服務型態,不但可以有效的降低服務使用者的成本,也降低了ASP廠商的維護成本,在教育訓練的成本也有效降低的情況下可以說是雙贏的局面,這也是為什麼現今ISP機房雖然在虧損的情況下還一直不斷地擴充的原因吧!

軟體委外的服務可能在初期,ASP廠商要付出相當大的規劃執行人力,但是當很多很多的委外專案完成後,可元件化的服務,可節省的維護成本,可共用的資訊設備與溝通的成本都能快速的再接下一個案子,更能在創新活動上做更佳的變化。

2000/01/02

軟體開發流程的壓縮與再造
分類:管理





以往教課書教我們的軟體開發流程不外乎有市場調查→需求分析→系統架構→程式開發→測試除錯→正式發行,這一系列的開發過程長短不一,有些常的專案甚至長到二至三年,使得一個專案結不了案,或匆匆結案,造成品質不良或背離原來的市場。

西元1990年代,資料庫的興起後,把『需求分析』與『系統架構』的過程標準化了,很容易的做出一些系統雛形與客戶溝通後便可以順利地進行『程式開發』的工作,而且與當初規劃的市場並不會背離太多,但是到了現在網際網路的興起,各種軟體系統的產品生命週期大幅的縮短的情況下,一樣軟體產品的服務只要拖超過三個月,變失去了先機,要達成佔有率就是非常困難的事情。

因此,現在的軟體開發流程必須在『程式開發』到『正式發行』的流程做有效的壓縮,這一點在現在的開發工具發展已經開發到一定的程度時,特別容易達成,例如一大推的Script語言工具,不用經過編譯(Compiler)的過程立即可以做測試。再來,以往正式發行必須發行使用手冊,壓製光碟片與磁碟片,包裝散佈到各式的賣場,這些過程不斷地被壓縮,未來可能都會變成在網際網路上完成,『壓縮』並不代表說是流程的省略,而是一個產品服務團隊的配合要更加的緊密,能在更短的時間內完成所有流程。

以現今軟體開發的流程來看,市場調查的方式也引發了另一波的革命,還記得寒暑假在街頭上的工讀生在來來往往的人群中做問券訪問的畫面嗎?或者經常接到電話要問您看哪一台電視台的聲音呢?這些在產品開發過程中『市場調查』的流程中未來可能會被放置在產品服務的流程中,大家可以看看一些新聞網站的例子,在每一篇的新聞最末端都有舉辦一個評分的的投票,就是一個最好的例子。

這一波的流程再造的革命中,我們要更加注重『系統架構』的設計過程,在以往的專案中,軟硬體系統經常是不用改版的,或者是很久才會做一次改版的動作,但是在網際網路上,產品的生命週期縮短後,改版變為一個必要的過程,在不斷地改版過程,我們更要注重架構的長期發展。

延伸閱讀:【流程】軟體開發過程階段性目標與相容性做法