人物專訪

三慧科技股份有限公司研發部經理 羅鍾靈先生

 

三慧科技股份有限公司是一間網際網路/中介軟體專業廠商,成立於民國817月,自成立以來,致力於研發異質性資料庫中界軟體。所開發的OpenPathTM產品系列,針對網際網路上資料之存取,提供快速、有效的解決方案。為達成技術永遠領先之目標,三慧科技除投入大量的研發人力外,更積極參與國內外各項合作計劃。如與經濟部、工業局、資策會等的專案開發,和國際間各大學和企業的學術交流等。一則吸收最新科技,再則貢獻三慧之技術與經驗。

除此之外,透過各地的銷售網,三慧科技之產品,已廣為國內外公民營機構所採用,並且深得好評。在遍及歐美亞各地的經銷商和台灣、日本、馬來西亞、及美國的分公司的努力下,三慧更為全球的客戶提供了完善的技術支援。其主要之服務項目有:

目前,三慧科技將重心集中在資料交換網路的研發。以技術、產品、及經驗,協助國內外各企業建置企業資訊聯網系統。另外在美國、中南美洲、歐洲、日本、東南亞各國,三慧科技的產品也都十分暢銷,廣為全球知名公司,如AT&TToshiba Information System Corporation等的使用。有鑑於此,我們很榮幸能夠有這個機會訪問三慧科技研發部經理羅鍾靈先生,對於身為一個programmer應有的共識與對未來資訊世界的走向提出其見解。

羅鍾靈先生於1986年在台大資訊工程學系畢業後,前往美國伊利諾大學攻讀研究所,之後回到台灣,先後曾於中華電訊公司、榮電公司、雅訊公司及台灣天石科技等處服務,現任三慧科技股份有限公司研發部經理。在其漫長的資訊生涯當中,羅先生對於Career as a programmer 有如下的看法:

一、Teamwork

在資訊生涯當中,teamwork不容置疑地是一個很重要的觀念。現今一個很重要的相關課題,便是創造一個『開放的環境』(Open Environment),使得團體裡所有的成員都可以自由地分享知識與資源,也可以自由地討論。舉一個很不好的例子,如果在一個團體中的某些成員,為了保持其在團體中的地位與重要性,就自己保留了一些設計上的細節以及其他的know-hows,這樣就會嚴重地傷害了一個團體的和諧完整,也會嚴重地阻礙了團體的發展,自然地,也傷害了他們自己。所以一個Open Environment是很重要的!

另外,很多的technical staff對於所謂Open Environment並不熟悉,因此有一些人對不情願將他們的想法表達出來,並不是因為對彼此懷有敵意或怨恨,而是因為沒有這樣的習慣,這樣也會對團體造成傷害!因此發展自然且明白地表達自己想法的習慣,客觀地傾聽與評價別人的意見,並且樂於接受別人的批評,對每一個programmer而言都是很重要的requirements

二、Training

對於一個project是否能成功,Teamwork固然很重要,但是團體中的每一個成員的能力更是會嚴重地影響project的品質。因此為了能保持高的品質,也為了能使整個team能有效率地工作,訓練員工(Training)也是很重要的課題。

而所謂的training並不只是侷限於去『obtaining new technologies』,另外還有一類是一樣重要卻常常被疏忽的,便是要訓練員工能夠『making the best use of what one knows』。 相對於Knowing而言,Using it反而是更難的課題,一個好的Programmer應該要能夠『makes the best use of what he/she knows』。除此之外,一個好的technical leader應該扮演著可以隨時給予其他programmers適當的指導與刺激,讓他們能夠『using their knowledge to perfect the art of design and programming』。

三、Design

Design 是一種 art form 因此一個好的 design 應該是優美、簡單、而且是具有彈性的。一個完整而嚴謹的Design要比實際的Implementation重要的多,但卻常常被忽視,在程式開發過程中經常是一個不存在的獲釋簡單而草率的步驟。但是對於開發一個複雜的大型計畫而言,Design應該是需要被獨立劃分出來的。一個好的Design應該包含所有技術的細節以及如何解決所有技術上的問題,因為在implementationtesting的時候,一個設計上的疏失往往會發上許多的時間與精力。

另外一個重要的課題便是design documentationDesign documentation可以保存design ideas,而且對於implement的過程、產品的維持與保存、以及新進人員的接手都是很重要的依據。

四、Testing

Testing也是一個重要卻經常被忽略的階段。每一個軟體產品都應該具備一個 automated, script-driven (或者其他類似的自動提供new test cases )test engine。如此可以透過自動程序來確認產品的系統相容性以及預防bug的產生。而Multiple processes coordination 以及user input emulation將是設計這樣一個test engine中兩大主要的難題。

談到羅先生目前的工作方向,羅先生表示,目前他的工作著重在『WEB Authering Tool』上,也就是藉由internet,將資料PUSH 到客戶端的電腦,做所謂的『DATA PUSH』。整個計畫為『DATA X』,以 JAVA 這個擁有跨平台特性的程式工具發展,可藉由 internet做鬆散式程式整合系統(Loosely Coupled Application Integration)。這裡,羅先生做了以下的說明。一般而言,程式整合分為兩種模式,Tightly Coupled Loosely Coupled Application Integration

  1. tightly coupled 為兩種不同的AP發展一個整合的系統,將兩相異的AP包含在其中,並統合兩AP的資料型態與API於此系統中,並以此系統取代原先兩相異且獨立的AP,以達到程式整合的目的。
  2. loosely coupled 為兩種不同的AP 發展相互間溝通的管道(tunnel),此管道必須隱藏兩相異AP各使用的資料型態與介面,也就是能轉換與翻譯兩程式的資料型態,使這兩個程式能藉此管道做資料的交換與溝通。優點是容易發展,且彈性較大;但所要克服的問題在於如何使兩程式的同步能達最佳化。

至於DATA PUSH,也就是依客戶要求,藉網路將客戶所需的資料定期或不定期的傳送到客戶端的電腦中,可應用於股市資訊、金融交易等。目前金融機構之間的交易,大多是透過EDIElectronic Data Interchange)標準資料交換介面。一般而言,大多是架在加值網路(value-added-network)上,也就是以專屬的網路達成彼此的資料交換。透過此方式,可確保資料交換的速度、準確與安全,但另一方面,昂貴的代價卻也是其缺點之一,光是每筆資料的交換皆需計費而言,一般的使用者(end-user)難免轉而找尋其他的資料交換方式。而目前的趨勢,是透過internet達成資料交換,優點是便宜、方便(internet is everywhere),但為確保資料交換的安全,在加密、保全與資料同步上必須花上相當的功夫去達成。

最後,羅先生提到了他對資訊界未來的展望。他認為,未來的軟體工程將走向元件化(component)。所謂的Component並不一定是一個可以獨立執行的AP,它可以只是一個物件(object),並擁有許多的函式(method)運用。所有的componets再建築在一個內部架構(infrastructure)之上,所有的components藉此架構作彼此的溝通與交流。

舉例說明,假設使用者買一套非常強大的編輯軟體,擁有除了單純的編輯外,還增添許多強大的功能,如試算表、繪圖、各式的樣式庫等。但是,往往一整個package灌下來,要耗上百來MEGA,而真正使用者會去用到的,說不定只是其中的一、兩個功能而已。如果,現在使用者只要去購買最基本編輯功能的package,再依自己的需要添購其他的component,如繪圖功能等,這樣既不會浪費資源,也不會增加使用者的負擔。這就是將程式元件化的好處。

當然,真正的元件化擁有一項更大的優點,就是資源分享。將一個component放在server端,每個使用者有需要呼叫其component時,再經由本地端電腦連到server上去叫用component的功能。現在最流行的CORBACommon Object Request Broker Architecture)便是以元件觀念築成的架構。所謂CORBA,就是一種client-server的架構:將某種函示集或功能集包成物件形式,並將此物件與IDL所產生的程式碼共同編譯後放在server端。使用者則需一擁有此物件之proxy的程式。每當使用者必須呼叫此物件的某一函式時,此程式會透過proxy連結至server端上的物件,等待此物件在server端上處理完畢後,將結果傳回;使用者會以為此物件在自己的電腦上,其實是透過了網路以遠端執行。而更好的是,整個網路只要有一份物件在server端上就夠了;不管有多少的使用者,都可以使用同一份物件。這樣大大的增加了程式的利用性。羅先生認為,未來每一種client-server architecture 將會走向component architecture

正如羅先生所言,如今有許多的跡象都可證明軟體工程正逐步走向所謂的『元件化』(component),這種新趨勢與新展望正是我們所需要多加瞭解與學習的,相信它將為軟體工業帶來無窮的新希望。