首頁‎ > ‎電子期刊‎ > ‎

校園資訊系統整合模式-資訊契約服務架構的制定(下)

摘要

  • 文章編號:2005005
  • 投稿日期:2005/04/24
  • 作者:尤黎明、尤弘志、張騉翔
  • 備註:


3.3簡單文件定義語言

簡單文件定義語言(Simple Document Definition Language,是一種描述XML(eXtensible Markup Language)結構的語言,就如同DTD與XML Schema的角色般;然而其設計目的與DTD與XML Schema不同的是,SDDL是用來簡化描述XML結構的工作,讓使用者不需懂DTD與XML Schema繁瑣的語法,即可輕易對XML文件結構進行描述,SDDL核心的價值在於「溝通」,讓系統開發者易於閱讀及使用SDDL,進而發揮XML的好 處,雖然目前有許多的工具可協助使用者編輯XML Schema,並用圖形的方式來表達,然而XML Schema本身的規格及運用其產出的文件是需要花較多的時間才能去理解去意義;我們運用簡單文件定義語來描述系統間整合的合約為何,底下為SDDL與 XML Schema之特性說明:

表 1. SDDL特性

SDDL

設計目的

易於使用XML進行溝通

語法格式

採用類似數學函數定義方式

簡單範例

A=B


表2.XML Schema特性

XML Schema

設計目的

完整清楚的定義XML結構

語法格式

XML-Based

簡單範例

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema&quot;>

<xs:element name="A">

<xs:complexType>

<xs:sequence>

<xs:element name="B">

<xs:complexType>

<xs:complexContent>

<xs:restriction base="xs:anyType"/>

</xs:complexContent>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>


底下再舉一個學生學習檔案的範例來說明SDDL與XML Schema的差異:

表 1. SDDL與XML Schema範例

SDDL範例:

學生學習檔案=(姓名,科目成績,修課課程)

科目成績=(國文,英文,數學)

修課課程={課程}

 

XML Schema範例:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema&quot;>

<xs:element name="學生學習檔案">

<xs:complexType>

<xs:sequence>

<xs:element name="姓名">

<xs:complexType>

<xs:complexContent>

<xs:restriction base="xs:anyType"/>

</xs:complexContent>

</xs:complexType>

</xs:element>

<xs:element name="科目成績">

<xs:complexType>

<xs:sequence>

<xs:element name="國文">

<xs:complexType>

<xs:complexContent>

<xs:restriction base="xs:anyType"/>

</xs:complexContent>

</xs:complexType>

</xs:element>

<xs:element name="英文">

<xs:complexType>

<xs:complexContent>

<xs:restriction base="xs:anyType"/>

</xs:complexContent>

</xs:complexType>

</xs:element>

<xs:element name="數學">

<xs:complexType>

<xs:complexContent>

<xs:restriction base="xs:anyType"/>

</xs:complexContent>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="修課課程">

<xs:complexType>

<xs:sequence>

<xs:element name="課程" maxOccurs="unbounded">

<xs:complexType>

<xs:complexContent>

<xs:restriction base="xs:anyType"/>

</xs:complexContent>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

 

XML結果:

<學生學習檔案>

<姓名/>

<科目成績>

<國文/>

<英文/>

<數學/>

</科目成績>

<修課課程>

<!-- Iteration {課程:1..n} -->

<課程/>

<!-- End of Iteration {課程:1..n} -->

</修課課程>

</學生學習檔案>


從上面的範例應該能直接感受到SDDL的優點,同樣的XML結構,用SDDL只需簡單幾行即描述完成,但是使用XML Schema則需冗長的定義,並且其語法較難理解;相對的,即使我們尚未針對SDDL的語法進行詳細的說明,但也可以猜到其含意:這份XML文件最上層的 節點是學生學習檔案,在學生學習檔案下面有姓名、科目成績、修課課程這些子節點,科目成績又有國文、英文、數學這些子節點……。

SDDL被設計的一個進階目的,則是將XML做為資料傳輸的工具,進階提升到系統分析設計的層次;系統分析的過程中有許多的組織文件需求會產生,藉由SDDL易於描述XML結構的特性,可以輕易、精確的捕捉到系統中對於資料的需求。

底下為SDDL語法的定義:

Syntax

  • Element = Expression
  • (Structure Definition Statement)
  • Element : Type
  • (Type Definition Statement)
  • @Attribute : Type

Expression

  1. Element
  2. @Attribute
  3. (Expr1,Expr2,…)
  4. <Expr1|Expr2|Expr3…Exprn:m..n>
  5. {Expr1:m..n}
  6. [Expr1]

上面為SDDL的定義,在以上的定義當中分為兩塊,第一塊Syntax是SDDL語法,第二塊Expression是對於Expression的定 義,SDDL的語法最主要由三個元素所組成,分別是Element、Attribute及Expression,其中Element及Attribute 就是XML所定義的Element及Attribute,而Expression是SDDL所獨特定義的,故瞭解Expression的定義為瞭解 SDDL的關鍵。

首先看到Syntax部份的,其中第一句Element = Expression,表示在Element底下可以有一Expression,Expression的型式可以是如上SDDL定義所列的六種 (Element、@Attribute…);而第二句(Element : Type)及第三句(@Attribute : Type)則可以定義Element及Attribute的型態,例如可以是文字、數字…。

底下把重心放在對於Expression的解釋,目前Expression定義共有六種,分為基本型及結構型,基本型的 Expression可以描述Element底下有Element及Attribute,結構型的Expression可以表達循序 (Sequence)、選擇(Choice)及重複(Iteration)這三種結構:

1. Expression=Element

SDDL範例:A=B

 
 
XML結果: 

<A>

 
  <B/>

</A>

在以上的SDDL定義當中,可以發覺符號『=』代表了節點間的父子關係,A=B代表了A為B的父節點,此為SDDL語法最基本的型式。

2. Expression=@Attribute

SDDL範例:A=@B

 
 XML結果: 

<A B=""/>

在以上的SDDL定義中,描述了屬性的寫法,先寫個『@』其後再加上此Attribute的名稱,即可定義一Attribute;Element與Attribute之間的上下關係也是用『=』來表達。

3. Expression=(Expr1,Expr2….)

SDDL範例:A=(B,C,D)

 
 XML結果: 

<A>

 
   <B/>

<C/>

<D/>

</A>

SDDL在結構描述上提供了三個最主要的描述方法,分別是循序(Sequence)、選擇(Choice)及重複(Iteration),底下我們 稱之為Sequence Expression、Choice Expression及Iteration Expression:

Sequence Expression:循序語法描述了在某個Elment底下依序要出現哪些Element。

Choice Expression:選擇語法描述了在某個Element其下可選擇出現哪些Element

Iteration Expression:重複語法描述了在某個Element其下的Element可以出現幾次。

此處先對Sequence Expression解釋,若要描述某個Element其下有多個依序的Element,用左括號『(』及右括號『)』來表達,例如上面的例子:A= (B,C,D),代表A這個Element其下有B、C、D三個Element,且C在B之後、D在C之後。另外需注意的一點是,在Sequence Expression中所包含的也可是一個Expression,所以可以用如下的表達方式:A=((B,C),(D,E))。

4.Expression=<Expr1|Expr2|Expr3…Exprn>

SDDL範例:A=<B|C|D>

 
 
XML結果: 

<A>

 
    <!-- Choice <B|C|D:1..1> -->

<B/>

<C/>

<D/>

<!-- End of Choice <B|C|D:1..1> -->

</A>

Choice Expression的表達如上,假如要在某個Element下選擇出現某個Element,可以先用左箭頭『<』與右箭頭『>』包住所有可 被選擇的項目,並用『|』來隔開這些選擇的項目,即是Choice Expression的語法,舉上面的範例而言,就是A其下的Element,可以出現A或B或C。

5. Expression={Expr1:m..n}

SDDL範例:A={B:2..4}

 
 
XML結果:


 
  <!-- Iteration {B:2..4} -->

<B/>

<B/>

<!-- End of Iteration {B:2..4} -->


</A>

Iteration Expression的表達如上,若要在某個Element下出現多個Element,可以先用左大括號『{』與右大括號『}』包住要多次出現的 Expression,並且在冒號『:』後描述此Expression要出現的次數其下界與上界,上例而言是這個Expression可以出現2到4次, 也可以只標明要出現的次數,如A={B:5},或是不標明次數如A={B},代表B可出現1到無限多次。

6. Expression=[Expr1]

SDDL範例:A={B:2..4}

 
 XML結果: 


<A>

 
  <!-- Iteration {B:2..4} -->

<B/>

<B/>

<!-- End of Iteration {B:2..4} -->
</A>

Option Expression的表達如上,假如要在某個Element下出現0到1個Expression,可以先用左中括號『[』與右中括號『]』包住此 Expression;其實Option Expression是Iteration Expression的特例,只是用比較簡單的方式來表達以下的語法:A={B:0..1}。

3.4校園資訊契約服務架構

底下運用上節所提之簡單文件定義語言來定義校園資訊契約服務架構:

  • 資訊契約

Contract=(Roles,TransactionInfo,{Service}) Service={Request,Response}

在上面的SDDL語法當中,定義一個資訊契約可為多個網路服務所組成,此網路服務可由SOAP或是DSA來實作,每個網路服務有其被呼叫的格式及傳回格式;並且每個資訊契約會包含其交易資訊以及此資訊契約可被哪些系統角色所使用。

  • 資訊契約交易資訊

TransactionInfo=(CountMode,TimeMode,ContentMode)

在交易資當中,會指明此資訊契約服務的收費模式為何,可分為計次、計時及計量三種模式。

  • 角色定義

Roles={Role}

每一個資訊契約服務的使用對象可以是多個角色,資訊契約服務藉由以角色為基礎的設計,可以清楚地定義系統的合約給誰使用。


5.結論

本文提出校園資訊契約服務架構的概念,首先我們回顧了目前資訊應用系統整合的技術及觀念,接下來我們提出了校園資訊契約服務架構的設計目標及運作構 想,並提到如何用簡單文件定義語言來設計系統間溝通的定義,以及最後運用簡單文件定義語來設計資訊契服務,此構想若能在未來被進一步實作,能支援校園各項 資訊系統的整合運作。

6.參考文獻

[1]D. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, H. F. Nielsen, S. Thatte, and

D. Winer, Simple Object Access Protocl(SOAP) 1.1., http://www.w3.org/TR/SOAP, 2000

[2]XML (Extensible Markup Language), http://www.w3c.org/XML

[3]HTTP(Hypertext Transfer Protocol) http://www.w3c.org/Protocols

[4]澔學學習系統有限公司,九年一貫整合資訊系統介紹,中學資管月刊,創刊號,2004年10月,頁6~7。

[5]台灣中等學校資訊管理人學會http://tsm.chvs.hcc.edu.tw/,2005/4/4。

[6]尤弘志,SDDL (Simple Document Definition Language)

[7]張緯良,「資訊技術之運用對組織的影響」,國立政治大學企業管理研究所博士學位論文,民國七十九年六月。

[8]吳琮璠、謝清佳,「資訊管理-理論與實務」,智勝文化事業股份有限公司,民國八十九年五月,四版。

[9]許麗玲,「資訊系統整合度下,情境變項對企業產銷互動之影響」,國立中央大學資訊管理研究所博士論文,民國八十

九年十二月。

Comments