2010年11月4日 星期四

初學Google Map API 的開發成果!

到昨天為止為期三天學習完成的一些小功能,不過嵌入網誌會有問題,接下來要進行資料庫連結測試!


  • 左上角為比例尺縮放控制項可以進行比例縮放和四方移動
  • 左下角為地圖搜索控制項(可以用關鍵字查詢地標)和比例尺顯示圖例
  • 右上角為地圖類型切換控制項(一共有五種模式),以及自訂的地圖中心取得顯示和重新設定按鈕
  • 右下角為全景小視窗控制項可以大範圍移動地圖顯示區域
  • 最下方紅色文字為滑鼠點擊所顯示的經緯度坐標值
  • 點擊地標圖示會出現多重資訊視窗可以顯示多個屬性欄位

按滑鼠右鍵出現自定義選單!
  • 放大/縮小功能可以用目前地圖中心進行縮放
  • 從此處放大/從此處縮小功能可以用滑鼠所在位置進行縮放
  • 從此處為顯示中心功能可以用滑鼠所在位置設地圖顯示中心
  • 回到縣政府功能可以讓使用者不論如何移動或變更地圖顯示中心,都能回到縣政府

用"地政局"為關鍵字查詢重要地標出現駕車指南可以用Google Map進行導航!

按下右上角的<地球>按鈕可以改成Google Earth模式
運用左上角的控制項可以用任意角度俯視地圖並旋轉地圖
下方縣政府的角度已經變更過了

2010年10月26日 星期二

軟體發展與品質提昇的重要關鍵--CMMI

       過往美國在軟體產業的積極發展,建立了許多國際知名的軟體品牌,然而近二三十年印度在軟體代工產業快速的崛起,讓人刮目相看,中國更是積極投入軟體產業,大陸各地的軟件園區如雨後春筍般的快速掘起,物聯網更是納入了國家重點的發展產業,近十年許多國家開始意識到軟體開發不僅在於是否使用新技術,更在於對軟體品質與管理流程的控管與改善,而一個新的名詞在近十年來獲得了許多國家和企業的重視,那就是所謂的軟體能力成熟度模式(Capability Maturity Model;CMM) ,後來更發展出軟體能力成熟度整合模式(Capability Maturity Model -- Integration : CMMI),CMMI比CMM主要是增加系統工程、風險管理與量測流程三個部分,CMMI是由「軟體能力成熟度模式」、「系統工程能力模式」、 「整合產品開發能力成熟度模式」與「供應商供應」等個別模式演化而來的一個整合性模式,此一標準已蔚然成為軟體品質管理和國際接軌的重要保證,更有許多印度和大陸的軟體業者不斷投入發展以取得CMMI認證。

       在CMMI成熟度層級一共分為五級:

成熟等級
特徵
Level 1 初始級 (Initial)
流程難以預測,無法管制和溝通
Level 2 管理層 (Managed)
運用經驗進行管理和追蹤
Level 3 定義層(Defined)
清楚定義流程進行制度化的定性管理
Level4     量化管理層(Quantitatively Managed)
流程可以被有效量度評量並進行一系列量化管理
Level 5 最佳化層(Optimizing)
流程改善具有可持續性並能從事最佳化管理



       在CMMI成熟度層級的相關流程領域:

成熟度階層
關鍵流程領域(KPA
1初始層(Initial
2重覆層(Repeatable
軟體專案計畫
軟體副合約管理
軟體品質保證
軟體構型管理
需求管理
3定義層(Defined
組織流程特徵
組織流程定義
同等審查
訓練課程
整合軟體管理
軟體工程
群體間協調
4管理層(Managed
定量流程管理
軟體品質管理
5最佳層Optimizing
缺陷預防
技術變更管理
流程變更管理


         第二層級有人稱為管理層或重覆層,指的就是運用過往的專案管理和技術經驗進行流程管理,過往的專案管理也多半是運用可重覆的經驗去評估專案進行的各個環節,在每個專案中重覆的導入過去經驗以實施專案管理。
        企業導入CMMI可以有效提升專案管理能力,運用制度化的專案管控流程,準確針對每個流程進行度量分析,可以讓專案管理人員更有效的針對專案的品質、進度、風險與成本進行一系統的管控作業,從而建立一套可以被切實準確執行的流程,使得專案成員能夠以制度化的方式,妥善的運用工程技術來從事專案開發,進而不斷累積開發經驗與管理能力,從而持續性的改善流程,除了能使有效落實流程管控作業以外,也可以促進軟體產值的提昇,進而降低營運成本,希以最低成本完成預算目標,運用最有效的流程管理改善專案品質和進度目標,讓軟體開發能力達到符合國際水準之要求。
       CMMI是一個可以幫助企業提升軟體開發的品質管理,並進而改善開發流程的一套方法論,其整合了軟體工程和系統工程的流程,建立了流程改進框架,並從而發展出一種新的模型,而台灣的企業在軟體發展一向落後美中印等國,直到近兩年來雲端運算和物聯網產業的提出,許多歐美品牌大廠紛紛關注到台灣電子硬體廠商在軟體資源的配置上是否足夠因應未來雲端運算的發展,國內的廣達林百里和鴻海郭台銘才紛紛注意到台灣軟體產業的薄弱,乃積極投入資源建立未來雲端運算的軟體儲備人才,當然就像1990年初期網際網路開始發展的過程一樣,沒有人知道未來網路會發展到什麼地步,中間也歷經兩千年的網路泡沫,但是網路科技終將融入人類的生活,現在同樣沒有人知道雲端運算和物聯網的未來,有人說只是一場炒作,但是它終會像當年的網際網路起起伏伏一般,還是會有人找出獲利模式成為其中的佼佼者,就像當年的馬雲一心想在北京打造中國資訊高速公路,後來黯然回到杭州後,還向員工借錢發薪水,在被人罵是騙子與員工不斷爭執的指責聲中,硬生生的發展出中國電子商務的第一品牌<<阿里巴巴>>,成為中國電子商務的指標性龍頭企業。
       台灣沒有龐大的軟體市場做為支撐,造成許多軟體業者都做不大,只能以短線的心態發展本土軟體市場,專案開發個人色彩濃厚,只靠少數優秀的技術人才支持專案的開發,團隊合作的默契沒有運用一套方法論來有效管理和改進專案管理的開發流程,對於開發成果的測試及投用過程更是非常粗糙,軟體能力成熟度始終停留在初始化的階段。而目前看到的產業曙光是這些國際性的台灣電子代工大廠,因應未來雲端運算時代的來臨,必須投入更多資源發展軟體,這不僅是國際品牌大廠對台廠配置充沛軟體團隊的積極要求,更是這些企業在硬體設備過度製造的現況下,所要做出的必要調整,企盼台灣的科技產業將來能夠軟硬兼顧,發展出台灣軟體產業的一片天空,當然軟體能力成熟度模式已被視為國際性的標準,須要業者不斷自我提昇才行,目前國內已有部份廠商取得Level3和Level5的認證,但是台灣不像中國有著龐大內需市場做為產業發展的搖籃,台灣軟體產業要趕上國際化的水準仍有一條漫長的路要走。

2010年10月23日 星期六

空間資訊管理系統之3S科技

    空間資訊管理系統的基礎其實就是大家所熟悉的地理資訊系統(Geographic Information System -- GIS) ,GIS與一般使用者最親和的介面就是我們常見的電子地圖,電子地圖就是GIS資料呈現的展示成果。GIS近幾年更結合了先進的遙感探測(Remote Sensing -- RS)和全球衛星定位(Global Position Systems -- GPS)形成了所謂的3S (RS/GPS/GIS)技術,逐漸的被科技業廣泛應用。

    首先我們先將3S科技逐項介紹:
1.  全球衛星定位(Global Position Systems -- GPS) : GPS是一個以軍事導航衛星為基礎的系統﹐為美軍所設計﹐供美軍所使用。目前免費提供給民間使用其定位訊號,這套系統是由美國國防部(Depart of DefenseDOD)所發展及控制﹐但所有權屬於美國交通部。在概念上﹐GPS代表著整個系統﹐包括衛星、地面控制站及GPS接收機。不過一般而言﹐GPS即意指一個GPS接收機﹐這是因為我們在使用上多半只會接觸GPS接收機的緣故。GPS系統共有24顆定位衛星﹐分6個軌道面﹐每個軌道面分佈4顆衛星﹐其中3顆衛星待命備用在距離地球表面約20,000 公里的太空軌道中運行﹐軌道面傾斜角為55度﹐提供全球全天候﹐每秒一次 ﹐持續不斷的定位訊號﹐目前一共有25顆定位衛星可供使用。這些衛星就像是月球一樣不停地繞著地球旋轉﹐每12小時繞行地球一週﹐等於一天約繞過我們的頭頂2次。
簡而言之GPS是利用基本的三角測量原理﹐而達到定位目的。每個SV 在運行時﹐每個時間點都有一個座標值﹐這個座標值是已知的﹐GPS接收機所在位置的座標是未知值。而由SV所發送的衛星訊號要獲得二度空間定位(經緯座標)﹐至少要同時接收到3顆衛星的訊號﹐但若要獲得三度空間定位(經緯座標及高度)﹐則最少要同時接收到4顆衛星的訊號。GPS接收機與它所接收到訊號的衛星所構成的角度,會影響到定位的精準度﹐角度過小﹐或者接收到的衛星太過聚集﹐都會降低定位的精準度。

2.  遙感探測(Remote Sensing -- RS) : 遙感探測是60年代發展起來的新興綜合科學技術,為環境調查與資源探勘方面有利的工具;它是一種遠距離不直接接觸物體而取得其訊息的探測技術。其意義可由狹義、廣義兩方面來探討。
l  狹義遙感探測─主要是空對地的遙感。即離開地面的平台(包括衛星、飛機、氣球、高塔等)上裝上遙感儀器,以電磁波為媒介,對地面進行探測。
l  廣義遙感探測─包括空對地、地對空、空對空遙感;不僅把整個地球作為研究對象,還把範圍擴大到地球以外的日地空間。
遙感探測攝取影像的原理是基於發覺與紀錄地面物體反射及放射的電磁輻射能量;地面景物或地物均有自己獨特的波譜反射和輻射特性,而相同的物質具有相同的電磁波譜特徵,因而可以根據遙感儀器所接收到的電磁波譜特徵的差異來識別不同的物體─這就是遙感的基本出發點。
遙測影像依載具可分為空載、衛載和無人飛行載具三類:
(1) 空載-利用飛機從空中進行探測,攝影機只能拍攝可見光的波段,具有比衛星更好的靈活機動性,雖然拍攝的範圍比衛星影像小,但卻擁有衛星影像所無法比擬的高解析度(遙感探測理論與分析實務,2000),但其屬於任務性拍攝工作,雖機動性高可以補充衛星的不足,但卻無法應付突發情況。
(2) 衛載-利用人造衛星載具進行拍攝,可以感測不同波段的電磁波。因位置高,涵蓋面也就很廣,可以快速收集大範圍地區的地理資料,也因其週期性環繞地球,可以拍攝同一地區不同時期的影像,更便於科學家們針對同一地區進行長期的觀測和分析,進行環境變遷的分析。福爾摩沙衛星影像即是此種影像類別。
(3) 無人飛行載具(Unmanned Aerial VehicleUAV)-利用無人小飛機進行遙控拍攝,所拍攝之相片由於航高低(多為數百公尺以下),因此能提供相當高解析度之遙測資料,但相對的拍攝涵蓋面也就相對小,而且有時因為飛機姿態控制不易,導致幾何校正困難;但其最大的優點是機動力強、可提供最即時的影像、較寬鬆天氣條件即可操作的優點,而且不需有跑道就能起降,下圖2為無人載具所拍攝的高空間解像力林區照片。

3.   地理資訊系統(Geographic Information System -- GIS) : GIS是一個將空間物件的座標與相關特徵屬性用特殊的格式進行儲存和加密,並儲存成電子資料,我們可以針對這些地理資料進行資料收集、資料處理、搜尋檢索、統計分析和資料呈現等一系列作業,地理資訊管理系統涉及了軟、硬體和人員、組織等組成要素。一般通過衛星影像、航空測量與地面測量所產生出來的資料會先經過資料處理,通過資料的有效收集與萃取分類再進行數位化工作,產生點、線、面等一系列的空間資料(Spatial Data),並記錄其相關的屬性資料(Attributes Data),再進一步處理空間物件彼此間的關聯性(空間拓樸關係),稱之為位相關係(Topology),我們常更進一步保留記錄空間物件的事件異動時間,使我們可以運用GIS軟體系統操作空間資料庫,進行空間資料和關聯屬性的編修處理、萃取分類、整合應用和統計分析等作業。
     一般空間資料初步會分為兩大格式,一種是向量式資料,另一種就是網格式資料。其中向量式資料又以三種格式進行儲存,就是點、線、面這三種格式,向量式資料記錄這些空間物件的座標系統、投影方式、座標位置、物件形狀與彼此間的位相關係,網格式資料記錄的是影像資料的像素資料和控制點座標,這些不同格式的空間資料往往使用圖層(Layer)方式進行分類儲存,當然也有些特殊的系統不是用圖層方式儲存,比如加拿大海事局所採用的CARIS系統是用特徵碼(Feature Code)的方式進行分類。而近年來另一種三維資料模式也開始推廣應用,不過由於需要大量拍攝建物各角度的外觀以進行3D建模,龐大的資料建置經費與資料維護費用讓許多單位望之卻步,只能局部區域性的進行示範應用。
     整個GIS包含了電腦繪圖、資料庫管理、電腦輔助設計、遙感探測、全球衛星定位、網路服務與軟體系統整合等相關技術領域,而其中快速資料收集的部份就牽涉到兩個部份,一個是全球衛星定位針對空間物件座標的動態即時更新,是目前向量式座標資料最快速有效的收集技術之一,另一個就是遙感探測針對大範圍區域的空間資料進行快速有效的收集更新,這是目前網格式影像資料最有效的大面積收集技術,這兩項資料收集技術讓地理資訊系統的加值應用能有效的解決資料的更新時效問題,這些優勢推動了近幾年來3S技術整合的快速發展。

所謂3S技術是將地理資訊、感測器、衛星定位、遙感探測、導航派遣、計算機和行動通訊技術相互结合,把多項先進科技高度整合的現代化資訊技術,此項科技並將成為物聯網產業的空間資訊整合應用提供更多的發展空間,是一項不可或缺的資訊技術,如果再進一步發展成空間知識管理系統(Spatial Knowledge Management System) 可以讓物聯網的空間資訊決策功能更加的完善,在智慧地球的決策支援上扮演重要的角色

物聯網與泛在網的發展趨勢

       早在1999年,野村綜研前任理事長村上輝康就提出了泛在網的概念,從此被譽為“泛在網之父”。泛在網的雛形在日本是2001年出現的,泛在網即廣泛存在的網絡。它以“無所不在”、“無所不包”、“無所不能”為基本特徵,以實現在任何時間、任何地點、任何人都能順暢地開展訊息通信為目標。
        日本真正的泛在網試驗從2003年就開始了,但未能形成產業化發展的根本原因,是由於日本的體制決定的。日本管理泛在網發展的機構有3個:分別是管技術的總務省、管頻率和網路資源的文部省、負責產業化的經濟產業省,由於三個部門多頭管理,結果在技術推廣時得不到文部省批的頻率資源,只能停留在試驗階段,局限在試驗區應用。泛在網也是把雙刃劍,在為人們提供良好服務的同時,也會涉及到人們的個人隱私。在日本,許多人非常重視所謂的個人隱私和自由,他們不願意時時刻刻都被監控,為此人們爭論不休,這也是影響泛在網在日本全面鋪開的原因之一。中國政府擁有強有力的執行力,可以避免出現日本所面臨的問題,中國將為泛在網發展提供了更好的發展環境。

       在關於物聯網的討論中,一些人對傳感網、物聯網、泛在網的概念爭論不休,如果從粗線條的框架來看,感測器網、物聯網、泛在網之間應該是一個由小及大的包容關係。而泛在與物聯網產業將分別在三個層面呈現“三合”趨勢,即:
一.   泛在網路融合
二.   平台資源整合
三.   應用知識聚合
泛在網與物聯網產業鏈則呈現更加立體化、多元化及複雜化的特徵。

       2010年是物聯網發展的重要里程碑,但希望爆炸式的發展是不現實的,現在有點浮躁和炒作的嫌疑。儘管目前物聯網非常火熱,但“大規模的商業應用是遙遠的,至少是在2015年之後”,物聯網未來發展有三大重要趨勢:
一.   互聯互通設備數量的急劇增加以及設備體積的極度縮小。
二.   物體通過移動網路連接,永久性地使用者所攜帶以及可被定性。
三.   系統以及物體在互聯互通過程中異質性和複雜性在現有和未來的應用裡變得極強。

       在產業的推動上,物聯網將從三個層面推動產業發展的進化,將為產業發展掀起更大的改革浪潮:
一.   製造業的服務化:
        在知識密集、商業模式改變的情況下,製造業面臨轉型的危機,製造業廠商必須朝「微笑曲線」的兩端邁進,專注於研發能力、並提供高附加價值的服務能力,發展「製造業服務化」,用IT強化製造能力,將產品服務化,並把服務網路化。
二.   服務業的知識化:
       面對服務業的蓬勃發展,將服務業在地化、生活化、專業化和知識化可以有效提升服務業的競爭力,透過知識管理強化企業管理,將服務業從勞動密集型產業提升為具有專業性知識和技術的一個高附加價值行業,向消費者提供以知識為基礎的中間產品或服務,以提高服務業的生產力。
三.   知識業的智慧化:
        任何企業通過知識管理可以為組織提供商業智慧決策支援(BIS)的基礎,這些知識累積的成果最終將會形成該組織的智慧資本(Intellectual Capital),讓組織管理流程標準化、規範化,並讓風險管理常態化,最後形成組織的價值鏈,讓商業決策變得智慧化。

中國IBM提出的八層物聯網參考架構

    從層次的維度理解,這八層架構之間大部分情況下有一定的依賴關係,從域的維度理解,由於資訊在他們之間有時並不是需要依次通過他們之間進行傳遞和處理,因此他們也可以是網狀關係,所以叫做域的概念。
一、感測器/執行器層(域)
物聯網中任何一個物體都要通過感知設備獲取相關資訊以及傳遞感應到的資訊給所有需要的設備或系統。感測器/執行器層是最直接與周圍物體接觸的域。感測器除了傳統的傳感功能外,還要具備一些基本的本地處理能力,使得所傳遞的資訊是系統最需要的,從而使傳遞網路的使用更加優化。
二、傳感網層(域)
這是感測器之間形成的網路。這些網路有可能根據公開協定,比如IP位址,也有可能基於一些私有協議。而目的就是為了使感測器之間可以互聯互通以及傳遞感應資訊。
三、傳感閘道層(域)
由於物聯網世界裡的物件是我們身邊的每一個物理存在的實體,因此感知到的信息量將會是巨大的,五花八門的。如果感測器將這些資訊直接傳遞給所需要的系統,那麼將會對網路造成巨大的壓力和不必要的資源浪費。因此最好的方法是通過某種程度的閘道將資訊進行過濾,協定轉換,資訊壓縮加密等等,使得資訊更優化和安全的在公共網路上傳遞。
四、廣域網路絡層(域)
在這一層中主要是為了將感知層的資訊傳遞到需要資訊處理或者業務應用的系統中。可以採用IPv4或者IPv6的協議。
五、應用閘道層(域)
在傳輸過程中為了更好地利用網路資源以及優化資訊處理過程,設置局部或者區域性的應用閘道。目的有兩個,第一是資訊匯總與分發;第二是進行一些簡單資訊處理與業務應用的執行,最大限度的利用IT與通訊資源,提高資訊的傳輸和處理能力,提高可靠性和持續性。
六、服務平台層(域)
服務平台層是為了使不同的服務提供模式得以實施,同時把物聯網世界中的資訊處理方面的共性功能集中優化的進行,緩解傳統應用系統或者應用系統整合平台的壓力。這樣使得應用系統無需因為物聯網的出現而作大的修改,能夠更充分的利用已有業務應用系統,支援物聯網的應用。
七、應用層(域)
應用層包括了各種不同業務或者服務所需要的應用處理系統。這些系統利用傳感的資訊進行處理、分析、執行不同的業務,並把處理的資訊再回饋給感測器進行更新,刷怪你想服務以及對終端使用者提供服務,使得整個物聯網的每個環節都更加連續和智慧。這些業務應用系統一般都是在企業內部、外部被託管或者共用的IT應用系統。
八、分析與優化層(域)
在物聯網世界中,從資訊的業務價值和IT資訊處理的角度看,它與互聯網最大的不同就是資訊和信息量。物聯網的資訊來源廣闊,資訊是海量的,在這種情況下如何利用資訊更好地為我們服務,就是基於資訊分析和優化的基礎之上。傳統的商業智慧也是對資訊進行分析以及進行業務決策,但是在物聯網中,基於傳統的商業智慧和資料分析又是遠遠不夠的,因此需要更智慧化的分析能力,基於數學和統計學的模型進行分析、類比和預測。資訊越多就越需要更好的優化才能夠帶來價值。

2010年10月8日 星期五

手機網頁的開發簡介 -- 認識WAP

       在網頁開發程式簡介中,漏掉了非常重要的手機上網這個區塊,傳統手機上網的標準主要是以WAP ( Wireless Application Protocol ) 無線應用軟體協定為主,當然此一標準也可被應用在其它的無線終端設備中,這也就是我們過去常聽到的WAP手機所採用之技術標準。完整的WAP系統包含了兩個部份,一個是WML( Wireless Markup Language ) 無線標籤式語言,還有一個是伺服端的WAP 閘道代理器(WAP Gateway / Proxy)
        WML和個人電腦瀏覽器的HTML語言非常相似,都是結構化標籤語言,是一種以XML為基礎的所發展出來的結構化標籤語言,然而一般傳統手機的網頁瀏覽器只能處理二進位元WML ( Binary WML ) ,而非結構化的純文字檔。所以,需要透過伺服端的WAP Gateway / Proxy中介軟體負責進行編譯轉換,這主要是因為傳統手機的運算與緩存功能大多不強,而且傳統GSM和GPRS網路的速度頻寬都不大,為了減少網路傳輸的流量和降低使用者的上網費用,必須降低手機上網應用對終端行動裝置的系統要求以普及應用,所以,採用二進位檔進行傳輸可以有效的壓縮資料量,並加快網路傳輸速度,同時減少在手機上編譯的運行時間,WAP Forum 的組織成員為了促使大多數行動裝置都能支持手機上網的應用,才提出了這套無線通訊的上網標準,這套標準也是全球手機上網的主流規格,然而隨著3G網路和智慧型手機的的逐步普及,網路頻寬流量與手機的運算和緩存能力不斷提升,以及雲端運算和物聯網科技的需求增溫,未來必定還會有許多新的無線通訊標準將浮上檯面。

網頁開發語言簡介(伺服端)

        上一篇講述的是跟使用者息息相關的客戶端軟體技術,而在網路另一頭提供網路服務的伺服器往往替我們處理了大量的資料和訊息,並傳回我們所要的結果,它替我們的客戶端機器分擔了大量的處理工作,並提供給我們各式各樣的應用服務,而這些散佈在網路上的伺服器群集成了一個個散落的系統池,將這些巨大的系統池彼此互相連結在一起進行協同運算,就可以將網路上巨大的系統資源進行整合運用,使得網路資源的協同運作與資訊共享能力產生極大化的實質效益,並為整個科技業帶來更為龐大的商機,形成所謂的雲計算(Cloud computing)服務產業,而這些伺服端應用服務所採用的各項技術也是所謂雲計算概念的重要發展基礎,接下來我們將針對部份常見的網路技術做進一步的介紹。
        早期伺服器中常見的服務程式當以傳統的共用閘道介面(Common Gateway Interface -- CGI)為主,是一種完全獨立於不同程式語言的標準,它可以使用任何語言來撰寫,像Perl、Unix shell scripts,、PHP、Java、C/C++ 和Visual Basic等都可以用來撰寫CGI語言,但因其執行過程中都需要產生一個行程,所以,客戶端每請求一次,伺服器都要耗費很多系統資源,早期如果網站伺服器的能力不夠,很容易造成系統崩潰當機。所以,後來各家科技大廠便陸續推出了一些伺服端動態網頁程式語言標準以解決這個問題,而在伺服端運行常見的動態網頁技術主要有以下幾種 :
  1. Java Servlet : 在客戶端的開發技術有提到Java Applet,而所謂Servlet就是Server Applet的簡稱,是昇陽在Java程式語言所提供的一項技術,在互動式網頁技術中,客戶端使用者介面有Applet,在伺服端可以用Servlet程式來回應客戶端的請求 ,用Servlet開發的程式在第一次啟動後即可以被載入初始化並啟動其行程(Instance) ,以類似於服務(Service)的形式常駐系統的記憶體中,隨時等待回應客戶端所提出的請求,並將響應的結果傳回客戶端,一般情況下,除非應用伺服器的系統重啟或關機,或者執行記憶體回收,才可能結束該行程,由於Servlet可以常駐服務並共享,生命週期較長,所以其系統負載平衡的能力會比傳統CGI程式還要優異,但是其常駐於記憶體,若閒置週期過長,也容易佔用記憶體空間,如果程式在釋放系統資源的工作沒有做好,就會增加系統的負擔,如果不想在軟體的系統資源優化方面下功夫,就必須加大記憶體的空間容量。
  2. JSP(JavaServer Pages) : JSP是由HttpServlet所擴展出來的,其運作也是架構在Servlet的基礎服務之上,因為JSP執行時會被JSP編譯器編譯成Java Servlets,以Servlet的方式來執行。一般我們用HTML開發出靜態網頁後,可以在HTML裏面嵌入帶有JSP標籤的JAVA語言,當使用者向伺服器請求網頁時,伺服器會透過JSP編譯器針對該JSP網頁內容進行預處理,JSP編譯器會把帶有JSP標籤的JAVA語言編譯成Java Servlets,再由JAVA編譯器將之編譯成機械碼,最後把程式處理的結果放在回傳的網頁裏,將HTML結果呈現給終端使用者。
  3. ASP(Active Server Pages) : ASP的開發方式與JSP相當類似,所不同的是ASP是由微軟開發,只能在Windows的Web伺服器Internet Information Services (IIS)中運作,它可以架構在微軟的元件物件模型(Component Object Model -- COM)或ActiveX元件技術上進行開發。在客戶端網頁開發技術中提到在客戶端網頁中可以使用微軟VBScript和JScript等嵌入式語言,這部份我們將之稱為Client-side script,而在伺服端一樣可以使用VBScript和JScript,在伺服端的部份則稱之為Server-side script,只要在HTML網頁中嵌入帶有ASP標籤的Server-side Script程式就可以制作ASP網頁,我們可以直接操作COM元件或ActiveX元件,甚至呼叫底層的Windows API,ASP網頁經過支援ASP架構的IIS伺服器進行解析後,最後只會傳回HTML結果給終端主機,使用者只能看得到Client-side script,完全看不到Server-side Script的部份。
  4. ASP.NET : ASP.NET是源自於ASP技術,所不同的是它採用微軟新的.NET Framework架構平台,它基本上是.NET Framework平台所提供的一網頁開發平台,它可以直接使用.NET Framework架構所提供的VB.NET、C#、J#等多種語言,操作各種不同的.NET元件,這項技術被整合在Visual Web Developer 和Visual Studio等視覺化開發工具中,比起傳統的Visual InterDev開發工具還要具有親和力和可開發性,大大加快了互動式動態網頁的開發週期。        
  5.  PHP (Hypertext Preprocessor) : PHP和ASP的概念基本相近,其語法參考了Perl、C語言,同樣可以被嵌入在HTML之中,通過伺服器的PHP編譯器處理後將HTML結果回傳給客戶端。今年Facebook推出HipHop編譯器,HipHop把PHP原始碼編譯成C++,以提高速度;Facebook內部測試過,HipHop的性能比原本的PHP版本高,可以讓CPU負載減少達50%。目前網路上很多開發網站的模板軟體工具都是使用PHP所開發出來的,主要是因為其自由軟體的開放路線,與Tomcat和MySQL等免費的伺服器軟體結合,再加上它可以在很多作業系統上運行,而且完全免費,大大降低了開發費用,所以,才能被廣泛的運用在網際網路上。
  6. 其它

2010年10月7日 星期四

網頁開發語言簡介(客戶端)

       網際網路的蓬勃發展帶給人們許多的便利,也給很多政府機構、企業和個人提供了一個開放的平台,我們可以透過網路取得更多的服務應用,當然每個人在網路可以是平台架構者、服務提供者和終端消費者等等不同的角色,你可以是「貢獻者」,也可以是「被服務者」的角色,現在很多人都會上網寫寫部落格,運用部落格的模板工具,做出自己的特色網站,然而這些網頁的背後到底使用了什麼程式語言,許多人卻不甚知悉,以筆者多年開發軟體與系統整合的經驗,試著將自己曾經使用過的一些常見技術進行初步的介紹,現在就讓我們開始來進入主題,談談網頁程式開發語言到底有那些。

        我們常見的網頁大部份都是以超文件標籤語言(HyperText Markup Language  -- HTML)為基礎所發展出來的,它是一種結構化的標籤語言,瀏覽器會解析HTML 的結構化內容,再依該其標籤(TAG)將文字、圖片和影音等內容呈現給一般的終端使用者。而現在的結構化標籤語言當以可自行定義標籤的可擴展標籤語言(Extensible Markup Language -- XML)標準為主流,此一技術也被廣泛的應用到網路異質平台的訊息交換上,很多政府單位與商業服務平台的數位訊息交換也都大量的採用了此一技術規格來制定不同的交換格式,建立了新的電子文件交換(Electronic data interchange --EDI)與數據交換的標準,達成了資料共享的目標。


       目前網際網路的開發程式語言裏面,在客戶端網頁瀏覽器中執行的嵌入式語言主要有:
  1. JAVAScript :是由Netscape的LiveScript發展出来的語言,其語言是由JAVA所演變出來的一種嵌入式語言,早期網路傳輸速度緩慢,為了加快客戶端網頁的處理速度,提供更流暢的瀏覽效果,減少服務器在資料驗證的處理時間,當時Netscape的瀏覽器Navigator就率先加入了Javascript,增加了資料驗證的基本功能。
  2. JScript : 微軟有鑑於JAVAScript的技術優勢,就在自己的瀏覽器Internet Explorer3.0中推出了JScript以迎戰當初的Netscape,後來程式設計人員在微軟IE瀏覽器中所用的JAVAScript,其實就是JScript。
  3. VBScript : VBScript是微軟跳脫JAVA程式語言框架,自行開發的一種網頁嵌入式語言,微軟把既有的VB程式語言經過簡化所產生的一種版本,更為其後伺服器端的ASP動態網頁程式提供了一個重要的基礎。
       在客戶端程式裡面還有一種嵌入式元件的技術,常用來製作一些複雜的互動網頁程式,例如影音、線上地圖、網路遊戲....等,以目前最常見的技術有:
  1. Java Applet : 以Java程式語言開發的客戶端元件,需要下載Java執行環境(Java RunTime Environment JRE)才能執行,可以在不同的作業系統平台上運作。
  2. ActiveX Control : 以微軟ActiveX技術標準開發出來的一種互動式元件,稱為ActiveX控制項,它具有比Java Applet 更多的系統操作與存取的權力,但也因此其安全性的風險相對較高,容易遭受到攻擊,因為他需要呼叫一些底層的Windows API,所以,只能在微軟的Windows作業系統環境中使用。 
  3. Flash : 早期是專門用來制作影音動畫,現在有越來越多的在網頁上執行的網路遊戲與互動程式開始大量採用此項技術,但它需要下載Flash Player播放器才能使用。
        在Web 2.0 服務裡最著名的網頁開發技術當屬AJAX(Asynchronous JavaScript and XML),也就是非同步化JavaScript和XML,它是一種建立互動式網頁應用的開發技術,這項技術综合了Javascript與XML的相關技術(XML和XMLHTTP),也集成了DHTML(Dynamic HTML)動態網頁技術,進一步整合文件物件模型(Document Object Model -- DOM)串接樣式表(Cascading Style Sheets -- CSS)等網頁技術,早於兩千年就被提出來,後因Web 2.0概念的推出而被廣泛用來建立Web 2.0網站,著名的Google Maps就是採用了AJAX這項互動網頁技術。這項技術可以讓使用者減少了點擊和等待的時間,達到所思即所見(What you see is what you mean --WYSIWYM)的目的,然而這項技術頻繁的與伺服器互動,也可能造成伺服端機器負荷加重,必須衡量其中的利弊得失,考量系統的負載能力,如果伺服器性能不夠,就要適度的採用此項技術,或早日進行系統升級,以免伺服端系統在尖峰時段頻頻超載。

2010年10月6日 星期三

金門網路服務的主流類型

金門地區的主流網路服務分成以下幾種類型:
一.官方網站:
    1.政府單位入口網站
       a.金門縣政府資訊網
       b.金門國家公園管理處全球資訊網
       c.其它
    2.公營事業入口網站

       a.金門日報社
       b.金門酒廠
       c.金門車船管理處

       d.其它
    3.便民服務網站
        a.地理資訊系統GIS入口網站
        b.公共管線便民系統
        c.金門觀光文化網
        d.其它
二.學術教育網站:
     1.國立金門大學入口網站
     2.金門社區大學入口網站
     3.各級中小學入口網站
     4.其它
三.民間網站:
    1.政治與公共事務論壇
       a.金門論壇-金門亂彈  
       b.烈嶼鄉公共事務論壇
       c.其它
    2.金門縣政留言板
    3.商業網站:
       a.金門無線島入口網站
       b.B2C商業網站
四.部落格網誌:
        金門的網誌的體量較大,如陳福海的金門蛻變夢想實現、胡偉生的珍愛金門等部落格,還有世代之眼部落格,以及許多民宿和文化采風的相關部落格,林林總總最少有數十個部落格以上,為金門地區各界人士及一般民眾參與Web 2.0應用領域的主要方式,個人網誌所蒐集的資料與撰寫的文章,體量也相當大,內容相當豐富多元,可以說是金門地區網路創作部份最為發達的一部份。


評析:
        民間網路的發展可以看出一個地方的開放度與現代化社會的活力,更可以充份體現出該縣民間企業和個人的資訊競爭力,而目前金門民間最活絡最有人氣的網站,還是以金門縣政留言板這個反應民生民情的網路平台,該平台的技術水準並不高,但是卻能有效凝聚人氣,這當中最重要的因素應當是在其平台的開放性,與其臧否時政的鮮明定位,成為金門縣內網民最喜歡的網站,傳統流水式循序發言的方式可以讓人隨性自由發揮,宣洩日常生活種種的不滿情緒。
       在官方網站的部份,金門日報社每日的線上新聞除了提供每日最新的報導以外,也提供了新聞搜索引擎的功能,龐大的新聞資料庫可以讓民眾檢索自己所要的新聞。這幾年金門房地產的不斷加溫,房仲業如雨後春筍般的在街頭林立起來,許多從業人員以及對土地不動產有興趣的民眾也常使用地理資訊系統GIS入口網站,再配合上GOOGLE MAP的衛星影像,可以充分掌握自己所要的地理訊息,當然GOOGLE MAP本來就一直是廣大遊客喜愛的電子地圖網站。