• 沒有找到結果。

總結本論文的系統架構,此系統使網頁容器 (Container) 更具模組化,並使 其成為一個提供網頁表達的網路服務。也因為經由網頁表達服務的提供,能夠 達到將重要的後端服務被隱藏,對於企業內部的整合或是與外部的合作都將能 提供另一個選擇的方案。此外,經由這樣的分散式架構,網頁開發的工程可以 被分散,且因為部份的網頁開發責任被交予後端服務的特定領域的開發者,可 以達到更適當的分工,提昇網頁的開發效率。而這些分散的網頁表達服務,就 跟後端服務一樣,經由以 XML 為基礎的溝通協定為介面來互相合作,最後把 完成的網頁內容傳送給網頁瀏覽器。

除了達到良好的分工之外,文中並提出了為了達到本論文的目標而需要應付 的議題。藉由提供這樣的網頁表達服務,可造就出表達層的商業市場,而可將後 端的服務包裝隱藏起來。

未來仍會在效能的考量上著手,在服務間的溝通上求取最佳化,並實作更多 的應用實例。並且將本論文的網頁表達架構能跟其他技術,如 JSP,Struts 等達 成整合,採用現有不同的樣版語言和熟悉的 MVC 開發架構,以利用已存在且被 普遍使用的技術與資源。

參 考 文 獻

[1] JSF. Java Server Faces. Sun corp. http://java.sun.com/j2ee/javaserverfaces/

[2] The Apache Software Foundation http://www.apache.org [3] W3C (World Wide Web Consortium) http://www.w3c.org

[4] Struts, The Apache Software Foundation http://jakarta.apache.org/struts/

[5] MVC (Model-View-Controller). J2EE Patterns. Java BluePrints. Sun corp.

http://java.sun.com/blueprints/patterns/MVC-detailed.html

[6] Chuck Cavaness. Programming Jakarta Struts O'Reilly November 1, 2002 [7] Cocoon, The Apache Cocoon Project. The Apache Software Foundation

http://cocoon.apache.org/

[8] Jakarta Velocity, The Apache Jakarta Project. The Apache Software Foundation http://jakarta.apache.org/velocity/index.html

[9] Jakarta Turbine, The Apache Jakarta Project. The Apache Software Foundation http://jakarta.apache.org/turbine/index.html

[10] Jakarta Tomcat, The Apache Jakarta Project. The Apache Software Foundation http://jakarta.apache.org/tomcat/

[11] JetSpeed, Apache Portals Project. The Apache Software Foundation http://www.xml.com/lpt/a/2000/05/15/jetspeed/index.html

[12] Portal. IBM WebSphere Application Server http://www-306.ibm.com/software/webservers/

[13] Style Sheet, World Wide Web Consortium http://www.w3.org/Style/

[14] Web Services, World Wide Web Consortium http://www.w3.org/2002/ws/

[15] Saimi, A.; Syomura, T.; Suganuma, H.; Ishida, I.; “Presentation Layer

Framework of web application systems with Server-side Java technology”, Computer Software and Applications Conference, IEEE 2000, pp 473 - 478

[16] Qingshan, L.; “Study of a Content Oriented Web architecture Model”, Computer Networks and Mobile Computing, International Conference, IEEE 2001. pp 3 – 7.

[17] Betsy Beier, Misha W. Vaughan “The Bull’s-Eye: a framework for Web Application User Interface Design Guidelines”, Proceedings of the conference on Human factors in computing systems. ACM press 2003. pp.489 – 496.

[18] Fernando Bellas. A Flexible Framework for Engineering “My” Portals, International World Wide Web Conference. Proceedings of the 13th conference on World Wide Web. ACM press 2004. pp.234 - 243

[19] Alan W. Brown. Large-scale, component-based development .Prentice Hall PTR May 30, 2000

[20] Ezra Ebner. “The Five-Module Framework for Internet Application

Development”, ACM Computing Surveys (CSUR) Volume 32 , Issue 1es. Article No.

40.

[21] Liu Chao, He Keqing, Liu Jie, Ying Shi. “Some Domain Patterns in Web Application Framework”, (27th Annual International Computer Software and Applications Conference). IEEE 2003. p674-678.

[22] Gustavo Rossi, Daniel Schwabe, Robson. “Designing Personalized Web Applications” WWW10th, ACM 2001. pp275 – 284.

[23] Udi Manber, Ash Patel, and John Robinson. “Experience with Personalization on YAHOO!”. Communications of the ACM. Volume 43 , Issue 8, 2000. pp35 - 39 [24] The JavaServer Pages Specification. Sun corp. http://java.sun.com/products/jsp [25] The Java Servlets Specification. Sun corp. http://java.sun.com/products/servlet [26] Tidwell, J. UI Patterns and Techniques: About Patterns. May, 2002. Available at:

http://time-tripper.com/uipatterns/about-patterns.html

[27] Douglas K. van Duyne, James A. Landay, Jason I. Hong, The Design of Sites, Addison Wesely, 1st edition (July 22, 2002)

[28] Sun ONE Application Server 7 Server Architecture Overview. Sun corp.

http://docs.sun.com/

附 錄 一

實作股票持有表網頁範例的改寫頁內容

<page type="rewrite">

<cntx name="user" default="dummyUser"/>

<next name="link1"/>

<service host="localhost" name="symbol"

path="symboltable" port ="1119"/>

<rule>

<if>

<symboltable>

<rw:var name="symbol"/>

<rw:list name="symbols"/>

</symboltable>

</if>

<table border="1">

<tr>

<th>Symbol</th>

<th>Name</th>

<th>#Shares</th>

<th>Cost</th>

</tr>

<rw:rw>

<tablerow>

<rw:var name="symbol"/>

</tablerow>

</rw:rw>

<rw:rw>

<tablerows>

<rw:list name="symbols"/>

</tablerows>

</rw:rw>

</table>

</rule>

<rule>

附 錄 二

Servlet 和表達服務的配置與介面範例 Configuration

Servlet:

<web-app>

<display-name> War name</display-name>

<description> War description </description>

<mappings>

<mapping name="portfolioServlet" url="/portfolioServlet"/>

<mapping name="chartServlet" url="/chartServlet"/>

<mapping name="testServlet" url="/testServlet"/>

</mappings>

<servlet>

<servlet-name>portfolioServlet </servlet-name>

<description>PM Service PageServlet </description>

<servlet-class> pm.PageServlet </servlet-class>

<init-param name="host" value="ares.cis.nctu.edu.tw" />

<init-param name="port" value="8080"/>

<init-param name="uri" value="pm/portfolioServlet"/>

<init-param name="hostCfg" value="webapps/pm/config/pm/portfolio.conf"/>

<init-param name="pmPath" value="pm"/>

</servlet>

<servlet>

<servlet-name>chartServlet</servlet-name>

<description> PM Service PageServlet </description>

<servlet-class> pm.PageServlet </servlet-class>

<init-param name="host" value="ares.cis.nctu.edu.tw"/>

<init-param name="port" value="8080"/>

<init-param name="uri" value="pm/chartServlet"/>

<init-param name="hostCfg" value="webapps/pm/config/pm/chart.conf"/>

<init-param name="pmPath" value="pm"/>

</servlet>

<servlet>

<servlet-name>testServlet</servlet-name>

<description> PM Service PageServlet </description>

<servlet-class> pm.PageServlet</servlet-class>

<init-param name="host" value="ares.cis.nctu.edu.tw"/>

<init-param name="port" value="8080"/>

<init-param name="uri" value="pm/chartServlet"/>

<init-param name="hostCfg" value="webapps/pm/config/pm/portfolio.conf"/>

<init-param name="pmPath" value="pm2"/>

</servlet>

</web-app>

PageSpaceModule:

<config>

<pagebase path="D://home/work/pm/portfolio/pagebase"/>

<db root="D://home/tomcat/Tomcat 5.0/webapps/ROOT/portfolio/db"

rootURL="http://ares.cis.nctu.edu.tw:8080/portfolio/db"/>

</config>

Interface

between Presentation Services:

z get Page Xml Content (Embedding)

„ query:

<getPageContent path="a/b/c"/>

z get Required Page Context (Linking)

„ query:

<getRequiredCntx path="a/b"/>

z import remote Presentation Service

„ query:

</dir>

</pagebase>

for GUI:

z get accompanied File (HTML, XSL files)

„ query:

<page type="html" path="abc" name="abc"/>

<page type="image" path="abc" name="abc"/>

<dir name="a">

<newPage path="a/b" type="composite"/> or <newPage path="a/b"

type="html" file="abc.htm"/>

„ return:

<newPageSuccess path="a/b"/> or <PageExists/>

<savePageOK/> or <savePageError/>

z save the file

„ query:

<saveFile path="a/b">

<![CDATA[ (File Content) ]]>

</saveFile>

„ return:

<saveFileOK/> or <saveFileError/>

z new a Dir

„ query:

<newDir path="c/d"/>

„ return:

<newDirOK/> or <DirExists/>

z delete a Page

„ query:

<deletePage path="c/d"/>

„ return:

<delete state="true"/> or <delete state="false"/>

z import

„ query:

<import host="localhost" port="1121" path="pm" destPath="a/b/c"/>

„ return:

<importOK/>

相關文件