前言
在今日的企業運算環境中,企業本身所需要的發展,是在於如何拓展其影響範圍、降低企業的運作成本,同時又能夠對客戶群、企業夥伴、內部成員以及供應商給予一個容易存取的操作環境,以減少處理回應的時間,進而提高運作的效率。一般來說,在這種運作環境下所提供的服務,一方面要能夠和既有的企業資訊系統(Enterprise Information System, EIS)做結合,同時又能提供新的商業服務,以提供廣大的客戶群使用。本期所要介紹的就是在這樣的需求為前提之下,企業本身應該如何應用目前科技所提供的優勢,來提升企業整體的效能與競爭力。而這樣的科技整合,就形成了所謂的企業應用伺服架構(Enterprise Application Service Architecture)。@大標:什麼是企業應用服務架構?
所謂的企業應用伺服架構,就是指藉著目前的科技優勢,整合原有的企業運算環境,以形成一個更緊密結合的應用服務架構。在這樣的架構下,企業所提供的服務,必須具有以下的特點:
1.高度的可利用性,也就是說,這些服務必須要符合能夠被廣為存取的特性需求。
2.適當的安全性,要能夠提供使用者私密的特性,同時也能夠整合企業本身的資料。
3.具可信賴性以及可擴展性,以確保所有的商業交易都能夠被正確且快速的處理。
在大多數的情形下,這些服務都是以多階層式(multi-tier)的應用形態存在,而其中所謂的中間階層(middle-tier)通常是負責絕大部分的應用程式邏輯,也就是說,大部分的應用程式開發工作是落在此處。此外,中間階層所實作出來的服務,也會具有整合目前企業資訊系統以及新的服務之間所具有的商業資料及功能等等的責任。最後,中間階層的服務也具有為客戶端所擁有的商業複雜度分離出來,同時也可以使用目前成熟的網際網路所提供的技術優勢,如此一來便可以有效的減少使用者所需的管理與訓練等等。
就以上所描述的情形,我們可以清楚的知道,若有一種開發環境,能夠有效的減少開發多階式服務的複雜度以及成本的話,對整體企業而言,將會是再好也不過的事情。且這樣的環境,也能提供企業快速開發以及提升服務品質的優勢,以因應日益增加的商業競爭能力。
企業應用程式模型
企業應用程式主要的目的,是實作出針對客戶群、內部成員、供應商、企業夥伴的需要的企業服務。而為了更容易控制以及管理這些服務,這類商業性的應用最好是以中間階層的形態來實作。而這所謂的中間階層服務,主要就像是企業中的資訊提供部門所扮演的控制角色一般,而且這些服務通常都只運作在專屬的伺服硬體上,並具有存取企業中其他服務的權力。(圖一)說明了二階層式應用程式模型與多階層式應用程式模型的異同。
《圖一 二階層式應用程式模型與多階層式應用程式模型的異同》 |
|
企業應用程式通常會依賴企業資訊系統階層來儲存相關的企業商業資料,而這企業資訊系統階層和其所管理的資料共同組成了企業內部最主要的核心部份。
二階層式的主從式模型雖然最初是為了解決擴展性與功能性的問題而設計,但是在目前企業資訊系統所需要的複雜服務環境下已不再適用,特別是使用者與管理問題上,更難去處理商業邏輯的部份,間接造成了主要的發展限制。這些在二階式模型上所會出現的限制,隨著多階層式模型的出現,使得在實作企業服務上得以解決問題。
由於開發多階層式服務是項既困難且複雜的工作,不單是要開發服務本身的商業運算邏輯,同時也要照顧到基本的系統功能。再者,每一個多階層式的伺服產品都有自己獨立的應用程式模型,間接造成了雇用以及開發團隊的困難。最後,當服務的項目增加之後,通常會發生需要調整整個多階式基礎架構的問題,導致形成了主要移植上的成本與時間上的延遲。
對標準的企業應用程式模型來說,本身會定義用來實作多階層式應用程式的架構,同時也避免了上述的幾個問題,進而提供了擴展性、可存取性,以及所需要的管理便利性。這樣的模型將整個服務工作切割成可依多階層式服務來實作的成份,其中主要分成二大部份:商業邏輯以及介面展示的部份,由系統開發者來實作,而基本的系統服務則由企業應用伺服模型來提供。系統開發者則可以透過這些基本的服務來實作中間階層較困難的進階服務。這樣的標準模式會大大的降低系統開發者所需要的基本訓練,同時也提供了企業在選擇企業應用程式模型上更大的彈性與空間。這樣的應用模型,不單能夠達到降低企業成本的目的,同時也使得建構多階式應用服務的複雜性大為減少。
企業應用伺服架構和Java的關係
就中間層應用服務的開發角度來看,Java的出現可以直接引入可攜性以及擴展性的優勢。由同時於Java具有「Write Once, Run Anywhere」的特性,使得在應用程式架構開發上的限制大為降低,同時也藉著和硬體平台分離的考量,為企業界在成本考量上具有更多樣性的選擇。昇陽公司最近所提出的Java 2 Enterprise Edition(J2EE),基本上就是因應企業服務架構的需求,開發出以Java技術為基礎的企業應用伺服模型。由於有了J2EE的出現,使得企業界在開發相關應用的同時有了強而有力的輔助,同時也可以透過Java所提供的特性,更輕易去建構出具全球性的大型企業應用伺服架構。
在討論J2EE模型之前,我們必須先了解到,這是一個以Java技術為基礎的應用模型,所以所有的開發都會以Java程式語言以及Java虛擬機器為基礎來進行。而Java所提供的可攜性、安全性,和開發效率,正好為J2EE模型提供了強而有力的支援。除了這些基礎之外,J2EE模型也包含了JavaBeans元件模型。JavaBeans元件可以讓常用的功能以元件化的形式存在,提供更具模組化的開發特性。以下我們就Java技術基礎部份做一個概觀的介紹。
Java技術基礎
安全性
由於在Java平台下的實作應用程式,都可以不去考慮實作安全功能所引來的複雜度,因為Java平台可以將應用程式所需使用的安全模型清楚地區隔開來。也正因為如此,應用程式可以輕易地移植到不同的安全性實作上。在J2EE中定義了標準的存取控制規則,而應用程式部份則由程式設計師來定義,最後才可以將這些部份組合並放置在企業平台上以供運作。J2EE也需要企業平台提供標準的登入方法,以避免應用程式因為自身需要而將其加入自己的應用程式邏輯之中。這樣一來,同樣的程式便可以在不需任何更改的情況下,在各種不同安全性環境下運作。
中間階層部份
J2EE應用程式模型所著重的主要是在於中間階層的部份。中間階層的商業運算功能,主要是透過實作Enterprise Java Bean(EJB)元件來完成,如(圖二)所示。EJB的元件允許服務開發者將心力集中在商業邏輯的實作上,並且讓EJB伺服器能夠處理遞送可靠服務的功能。
在圖二,JavaServer Pages 技術以及Servlet共同組成了對客戶端展現中間階層商業運算功能的部份,其採取的方法為簡易的網際網路存取模式。其中avaServer Pages(JSP)模組可以允許網際網路使用者的介面開發以更簡易的形式運作,同時也可以達到透過瀏覽器展示動態網頁內容的效果。而Servlet則可以提供更強大的Java運作能力,讓開發者可以實作出更新的商業運算功能,以產出更具動態特性的資料呈現。
客戶端
在這個部份,J2EE支援了許多種不同型態的客戶端。大部分J2EE中的服務,都是針對Web瀏覽器客戶端所設計的。而這些服務的運作,主要是透過動態產生的HTML網頁及表格來和客戶端進行互動。大多數複雜的服務項目多是和客戶端進行直接的商業資料交換,而在此JSP和Servlet便可以用來將這樣的資料進行格式化,以便利J2EE客戶端的運作。這些客戶端可以是在瀏覽器中運作的Java applet,也可以是用Java為基礎所開發出來的應用程式。在這些運作模式中,有一個重要的部份,就是安全性的考量,這對於多階層式的服務而言尤其重要。在J2EE平台中,安全性的問題大多是由平台本身來進行處理,或是由平台的管理者來決定。而在絕大部分的情況下,服務的本身及其客戶端都不需要去顧慮安全邏輯的設計及開發。以下就是這幾種不同型態客戶端的介紹。
以HTML網頁為基礎的客戶端
一個服務可以透過動態產生的HTML網頁在客戶端的Web瀏覽器中呈現,以達到直接和客戶端互動的目的。而在此JSP技術則是一個簡單的應用方法,JSP主要是結合了HTML以及以Java為基礎的程式碼,共同以大家所熟悉的程式描述(Script)形式來完成,其相互之間的關係請參考(圖三)。在某些特定的情況下,一個服務可能會需要比較複雜的程式碼,若是在這樣的情況下,我們便可以透過撰寫JavaBean元件程式,並經由JSP的呼叫來完成。而另一種形式,則是由Servlet直接撰寫Java程式來完成該項服務。
以HTML內容為基礎的客戶端
在某些情形下,直接在客戶端提供一定的功能,可以幫助使用者用服務的資訊來進行組織以及互動。在這樣的情況下,服務和其客戶端之間所進行的是原始內容的資料交換,而非HTML網頁。像這樣的原始內容,通常是以XML文件最為常見,而且這些XML文件可以透過HTTP協定在客戶端以及服務端之間進行交換。在這樣的模式下,XML內容是由客戶端中所執行的applet內含的JavaBean元件來進行處理,而applet則是由服務端下載至客戶端來執行,詳細運作請參考(圖四)。而J2EE為了避免因為舊版本或是非標準版本的Java執行環境所造成的相容性問題,還提供了自動下載並安裝Java外掛模組的特別服務。而這些原始內容,不但可以經由applet配合JavaBean元件來進行處理,同時也可以透過由Java所實作出來的應用程式,擔任J2EE的客戶端,來進行處理。
企業內部網路客戶端
所有以HTML網頁為基礎的服務,和以HTTP內容為基礎的服務,不但可以運用在網際網路的環境下,同時也可以有效的運用在企業內部網路的環境中。除此之外,企業內部網路的環境還具有其他的優勢,這個優勢就是企業內部網路環境提供了額外的基礎運作架構,允許Java程式能夠直接存取內部網域中的EJB元件。這樣一來,不但運作模式得以簡化,同時運作的效率上也可以得到有效的提升。
其他型態的客戶端
由於J2EE的服務是透過標準的HTTP、HTML,以及XML標準,這使得大多數的客戶端都可以輕易地存取這些服務,其中甚至包括微軟公司的各種客戶端,如Visual Basic及Office 2000等等。除此之外,由於EJB所定的目標包括定義出RMI-IIOP的標準來和CORBA環境進行相互操作,所以任何J2EE的服務也可以送到CORBA的客戶端中。這部份的工作目前已經完成了大部分的進度,只剩下少數的項目仍在趕工中。而當這些進行中的部份完成之後,J2EE將可以把這些部份的交互運作能力加入平台之中。而在此當時,J2EE只支援部份標準功能。
J2EE應用程式的組織與佈署
一個J2EE應用程式是由數個標準的單元所組織而成。這樣的組織可以佈署在任何J2EE具相容性的平台上。在每一個標準的單元中,都包含了一個所謂的佈署描述(deployment descriptor),這個描述包含了單元本身的內容,同時也包含了和J2EE相關的宣告,而這樣的宣告則是由程式開發人員與組織人員所共同完成的。除了這個部署描述之外,一個J2EE的單元包含各種用來形成J2EE應用程式的元件。而一旦一個J2EE單元形成之後,它就可以被佈署在J2EE的平台中,如(圖五)所示。
所有的佈署工作,通常包括使用J2EE平台的佈署工具來指定特定資訊的所在,如存取的使用者名單,以及所有資料庫的名稱。一旦佈署完畢之後,該應用程式便處於準備完成的階段了。
結語
在目前網路潮流的推動下,企業本身主要的競爭力似乎慢慢都將焦點轉到企業本身的資訊系統上,也就是所謂的企業資訊系統(EIS),而EIS所反應出來的現象,則是對外所提供的服務是否完整。而在服務的開發效率上,則在近年來成為大家所關切的核心問題。這樣的需求,不但造成了企業應用伺服架構的標準化,同時也促使企業更注意資訊的加工與流動,也就是服務的品質與效率問題。這些重點,不但攸關企業發展的興衰,同時也主導了企業之間競爭優勢的主要因素之一,身為企業的領航者,實在不可不察。
(網際先鋒雜誌2000.3月號70期)