2004/07/30

JSF Course Materials

01-JSF-Intro.pdf
02-Page-Navigation.pdf
03-Managed-Beans.pdf
04-HTML-Library.pdf
05-Validation.pdf
06-Expression-Language.pdf
07-JSF-and-JSTL.pdf

http://courses.coreservlets.com/Course-Materials/pdf/jsf/


2004/07/21

e-book: Core JavaServer Faces

 
This web site contains a sneak preview of the upcoming Sun Microsystems Press book Core JavaServer Faces.

http://horstmann.com/corejsf/



2004/07/20

Put JSF to work

Build a real-world Web application with JavaServer Faces, the Spring Framework, and Hibernate
Summary-->
SummaryBuilding a real-world Web application using JavaServer Faces is not a trivial task. This article shows you how to integrate JSF, the Spring Framework, and Hibernate, and describes best practices and design guidelines for building a real-world Web application using these technologies. (4,800 words; July 19, 2004)
 
http://www.javaworld.com/javaworld/jw-07-2004/jw-0719-jsf.html

2004/07/19

Cewolf

Introduction

Cewolf can be used inside a Servlet/JSP based web application to embed complex graphical charts of all kinds (e.g. line, pie, bar chart, plots, etc.) into a web page. Therefore it provides a full featured tag library to define all properties of the chart (colors, strokes, legend, etc.). Thus the JSP which embedds the chart is not polluted with any java code. Everything is described with XML conform tags.
Cewolf is based on JFreeChart and uses it's rendering engine to render the final chart image into the clients response stream. No files are created on server side. Everything is based on lightweight session objects and dynamic data analysis. Cewolf consists of one servlet which handles the chart rendering and a taglibrary which translates the chart definition included in the JSP into an HTML img tag which consults the rendering servlet for retrieval of the appropriate chart.

link: http://cewolf.sourceforge.net/





2004/07/15

JDBC 入門

http://sun.cis.scu.edu.tw/~nms9115/articles/
java/WebAppTutor/JDBC/JDBC.htm

SCDJWS研習重點

Quote from Evelyn Cartagena

WS-I Basic Profile
Web Services Interoperability Organization:
Basic Profile 1.0a, Final Specification, August 8, 2003.

XML

World Wide Web Consortium:
Extensible Markup Language (XML) 1.0 (Second Edition), W3C Recommendation, October 6, 2000.
Namespaces in XML, W3C Recommendation, 1999.
XML Schema Part 0: Primer, W3C Recommendation, May 2, 2001.
XML Schema Part 1: Structures, W3C Recommendation, May 2, 2001.
XML Schema Part 2: Datatypes, W3C Recommendation, May 2, 2001.
XPointer xpointer() Scheme, Working Draft, December 19, 2002.


SOAP

World Wide Web Consortium:
Simple Object Access Protocol (SOAP) 1.1, W3C Note, May 8, 2000.
SOAP Messages with Attachments, W3C Note, December 11, 2000.
SOAP Security Extensions: Digital Signature, W3C Note, February 2001.


WSDL

World Wide Web Consortium:
Web Services Description Language (WSDL) 1.1, W3C Note, March 15, 2001.


UDDI

Organization for the Advancement of Structured Information Standards:
Providing a Taxonomy for Use in UDDI version 2, 2002.
UDDI Version 2.04 API Specification, 2002.
UDDI Core tModels: Taxonomy and Identifier Systems, 2001.


J2EE

Java 2 Platform, Enterprise Edition, version 1.4, Final Release, November 23, 2003.
Java Servlet, version 2.4, Final Release, November 24, 2003.
Enterprise JavaBeans, version 2.1, Final Release, November 24, 2003.
Implementing Enterprise Web Services, version 1.1, Maintenance Final Release, January 23, 2004.


Java Web Services

Java API for XML-Based RPC, version 1.1, Final Release 2, Octover 28, 2003.
Java API for XML Processing, version 1.2, Final Release 2, September 10, 2002.
Java API for XML Registries, version 1.0, June 11, 2002.
SOAP with Attachments API for Java, version 1.2, Final Release 2, October 21, 2003.
Java Architecture for XML Binding, Version 1.0, March 4, 2003.

2004/07/14

Struts 1.2.1 (Beta) Released

The Struts team announces the release of Struts 1.2.1, currently ranked at Beta quality.

This release removes many features deprecated in prior releases (Struts 1.1 and Struts 1.0.2) and also provides several new features. Fixes to known problems have been applied. More detail is available at

* http://struts.apache.org/userGuide/release-notes.html

The binary, source, and library distributions are available at

* http://cvs.apache.org/dist/struts/v1.2.1/


2004/07/11

Exclusive JBuilder 11 Sneak Preview

底下是JBuilder 11的demo
環繞在開發JSF的便利性,看起來真的是蠻方便
看他icon旁邊寫著mavericks,不知道有啥涵義,不知道為啥要叫小牛?


Exclusive JBuilder 11 Sneak Preview

2004/07/10

J2EE Development with free and open source tools

http://chariotsolutions.com/slides/open-source-delaware.ppt

這份文件整理的非常好,幾乎把所有open source的東西都列上去了,如
Database: PostgreSQL, MySQL, SAP DB, HyperSonic / HSQL, McKoi, Xindice
Persistence Tier Framework: EJB CMP, OJB, Hibernate, Castor, Torque, JORM
Web Container: Tomcat, Jetty
AP Server: JBoss, Apache Geronimo, JOnAS, OpenEJB, OpenJMS, JORAM, JOTM
Web Frameworks: Struts, Cocoon, Turbine, Velocity, Tapestry, WebWork, Spring

等等等等

2004/07/09

Middlegen

http://boss.bekk.no/boss/middlegen/

Are you tired of the headaches involved with editing deployment descriptors and entity bean source code? Middlegen is a free general-purpose database-driven code generation engine based on JDBC, Velocity, Ant and XDoclet. If you already have a database, you can use Middlegen to generate...
•Persistance layer with EJB (CMP 2.0)
•Persistance layer with JDO
•Persistance layer with Hibernate
•Persistance layer with Torque
•Database GUI with JSP/Struts

Developping database-driven applications with Middlegen is easy:
1.Create the database with your preferred database modeler tool
2.Configure Middlegen to access the database and read the database schema
3.Run Middlegen from Ant, and (optional) with the GUI tool, rename tables and columns, tune relationships and type-mappings
4.Generate your source code with Middlegen
5.Run XDoclet to generate the additional files like EJB homes and interfaces, and deployment descriptors
6.Compile and deploy your application

Hibernate开发指南

Document: http://www.cjsdn.net/user/download/
99083/Hibernate%20%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97.pdf


Official Site: http://hibernate.bluemars.net/

2004/07/08

Example for Struts+Session Bean+Entity Bean+Log4j

Environment:Win XP Pro
App Server: Oracle 9i AS
DataBase: Oracle 9i
IDE Tool: JDeveloper 10g
使用PropertiesEditor來編輯ApplicationResources.properties

Struts: http://jakarta.apache.org/struts/
Session Bean, Entity Beam: http://java.sun.com/products/ejb/
Log4j: http://logging.apache.org/log4j/docs/

API:http://home.so-net.net.tw/albertguo/SampleCode/PMS_API.zip
Sample Code: http://home.pchome.com.tw/happy/junyuo/SampleCode/PMS.zip

Architect的專業與角色

作者:金興昇先生
簡歷:為Sun Microsystems教育訓練中心特約講師, 已取得Sun在Java方面的最高級認證 - SCAJ (Sun Certified Architect for J2EE Technology)。目前他負責教授進階J2EE的相關課程(J2EE應用架構與設計, J2EE Design Patterns等)


●一直以來,資訊技術(IT)領域存在著一大隱憂,不論是所謂的企業內 (In house)或是軟體公司(Software house)的IT團隊,大多數都缺乏 架構設計師(Architect)的編制。架構規劃的工作大都由專案經理、系 統分析師與程式設計師兼任或分攤了,導致普遍輕忽軟體架構專業人 才的培養與任用。再不然就是常常將架構設計師(architect)職位作為 留住項尖開發人員所用的升級獎勵。其實架構設計師與系統分析師、 程式設計師的專業領域與角色並不相同,接下來我還會進一步點出其 中的根本差異。

上述情形在以往系統架構並不複雜的狀態下,還不至 於發生太大的問題。但在分散式架構到處可見的現在,系統本身涉及 的實體層面愈來愈複雜,再加上系統服務的範圍與重要性在e化的潮 流下與日俱增,遂使諸如安全性(Security)、可用性(Availability) 、可靠性(Reliability)、延展性(Scalability)、效能(Performance) …等系統層次的非功能性需求(Non-Functional requirement)日益重要。

●請看以下兩則最近才發生的新聞:

「財政部表示,如果納稅人不願所得資料上網,在四月二十日以前,仍可以透過網際網路提出申請。不過,財政部的報稅網站(http://tax.nat.gov.tw)最近因為湧入大量瀏覽人次,經常塞車,甚至爆掉,許多納稅人等待二、三個小時仍無法連上網路。」

-----4/16聯合報 (申請報稅資料免上網 一團亂)


「刑事局針對資料隱碼攻擊手法可能對國內網站的危害分析後,發現國內八成以上的電子商務網站與各級政府網站,普遍有這種安全漏洞,會被駭客乘隙而入。更驚人的是,某些電子商務網站已經安裝防火牆與防毒軟體系統,並使用網路交易安全機制,確認網路交易的身分認證權限,但是資料隱碼攻擊者還是可以輕易找到漏洞,破壞交易安全的認證制度。」

-----4/23聯合報 (資料隱碼攻擊 八成網站躲不過)
急於在最後期限之前申請個人所得資料不上網造成報稅網站大塞車, 曝露網站系統在可用性、延展性、效能等等系統層次的問題。資料隱 碼(SQL Injection)模式的駭客攻擊,顯示安全性始終是資訊系統 最重要的考量。在這些一連串新聞背後都是資訊系統架構層次的問題 。因此國外有專家戲稱開發系統若不妥善規劃處理這類非功能性需求 ,就容易發生所謂的「CNN時刻」 (當資訊系統發生重大問題而造成 CNN頭條新聞的時刻)。

也就是說在媒體發達的今日,軟體功能的完善與否固然重要,但是系統架構層次(亦即非功能性需求所對應的層次)一旦出現問題,馬上就有可能成為媒體競相報導的題材,造成企業形象無可彌補的損失。因此開發團隊若沒有職司因應架構層次需求的架構設計專業人員,由於相關技術人員責任不清、角色不明,對於目前愈來愈複雜的分散式架構,難免就會發生捉襟見肘,難以支應的狀況。這種情況就好比要蓋一棟現代化大樓的建築公司缺乏建築技師一樣,這在建築業是不可思議的事,可是在軟體業卻是司空見慣。

之前為了準備這篇短文用「Architect」上網搜尋相關資訊,無意間 看到網友談到這個英文字的中文翻譯與意涵:

「由於 Engineer 聽起來太過死板, 所以就算在電腦的世界中有人會 覺得稱他們自己為 Architect 比較有設計/創造者的意味在裡頭, 基 本上英文是非常活的語言, 如果你頭腦夠活, 你高興用 Software Director/Designer/Artist/Architect 都無所謂... 」 -----tw.bbs.lang.english
(Re: "Architect"一詞除作"建築師"之外尚有何翻譯?)

在Marc Sewell 與 Laura Sewell去年出版的「The Software Architect's
Profession: An Introduction」一書中,曾很俏皮的在該書前言中引 用牛津英文字典對「Architect」的解釋(一般字典都將其視為建築師、 或其它諸如造船工業等技術領域作解釋),並加入以下一段注釋突顯在 軟體領域上的解釋:
「c In full software architect. A designer of software based
technology, who prepares plans, and superintends construction. 」

這句話指出「Architect」主要就是準備計劃並監督建構過程的軟體技 術設計人員,這也就是我會用「架構設計師」作為其譯文的原因。其 實一個好的架構設計師不只是位受到尊敬的資深技術人員,通常也是 策略制定、組織協調高手、稱職的顧問與領導者。這是因為軟體架構 規劃與設計主要就是以巨觀(Macro View)的角度切入系統架構,一般 所謂的設計(Design)則是以微觀(Micro View)的角度切入。比如一般 設計師通常考慮的層次是一個使用者按下按鈕時所發生的狀況,而架 構設計師考慮的則是成千上萬個使用者按下按鈕時所發生的狀況。架 構設計師規劃系統的角度主要都是從Top-Down方式著手,而一般設計 師則是多半從Bottom-Up的方式著手。另外,就以大家耳熟能詳的設計 模式(Design Pattern)為例,其實它也被稱為微架構模式(Micro Architecture Pattern),而諸如Model-Control-View (MVC)等涉及架 構層次的Pattern則被稱為架構模式(Architecture Pattern)。這種 巨觀/微觀的角度分野,在其它學科也常看見,如總體經濟學與個體 經濟學,大歷史觀與微歷史觀等等。這種巨觀角度的本質,就是架構 設計師專業領域與其它軟體開發人員最根本的不同之處。 從巨觀的角度,舉凡架構規格與決策、排定架構審閱時程、解決所有 架構相關的問題、所有主要技術決策的核可、維護架構規格等等都是 架構設計的主要工作。

●一位好的架構設計師通常具有以下專業領域的技術素養:

企業需求
硬體與軟體架構
分析、設計與開發
產品支援
效能、安全性、容量規劃(capacity planning)、網路
通常在專案的一開始,需求與初始分析等工作流程會產生規劃的企業 流程與預期系統完成的功能。有了這些資訊,架構設計師就能研擬最 初的高階架構藍圖(blueprint)並列出影響架構可能因素的清單。另外 ,架構設計師也要擔負估算專案成本的職責。這通常是經由審慎評估 這些將會付諸實施的專案計劃對系統既有基礎結構(infrastructure) 與架構的衝擊,以及計算可能付出的成本與所帶來的效益而訂定。

除了上述任務以外,檢查初期架構規劃設計、影響因素與成本,維持 與企業架構決策的一致性也是架構設計師的重要職責之一。這通常要 找出制定專案的架構決策與其優先順序的判斷基準、定義問題領域 (Problem Domain)、決定可能解決方案的制約條件、確認有關可能解 決作法的假設狀況以及辨識模組重用的可能性。架構設計師也必須負 責確保需求的達成,以及硬體、軟體、基礎結構、效能、安全性、容 量、可用性和系統運作、管理與維護等等屬於系統層次相關技術之間 的協調與平衡。在某些關鍵時刻,他也要做出系統與架構在協調、妥 協與平衡上種種必須當機立斷但又很困難判斷的決策。

架構設計師必須設法降低可能的技術風險(technical risk)對系統的 衝擊。在規劃初期,技術風險對一般人來說通常都是不可知、不可驗 證也不可測的。風險大多與系統層次的需求有關,有時也會與企業需 求有關。不論任何風險的類型,有經驗的架構設計師都可在專案的先 期也就是構建架構時期,預先列出這些可能的風險,然後在後續的開 發時期配合開發人員予以適當地處理與解決。另外,架構設計師也必 須領導開發團隊,保持與其它成員的良好互動,確保開發人員是根據 架構藍圖來構建系統。

就如我之前所說,一個好的架構設計師通常也是策略制定、組織協調 高手、稱職的顧問與領導者。他主要的任務就在規劃與系統架構層次 相關的事務,評估可能的風險與成本,並有效運用有限的人力、物力 資源達成系統層次的需求。這樣的專業人員在很難預知何時湧入大量 瀏覽使用者,廣泛運用諸如多層(Multi-tier)、叢集式(clustering) 等複雜分散式架構,系統效能、安全性、可靠性動輒成為媒體報導焦 點的e化潮流下,更加突顯其無可替代的重要性。

「一個具有架構設計師的開發團隊未必就一定能妥善處理系統層次的 需求,但一個不具有架構設計師的開發團隊則肯定沒有人會專責處理 系統層次的需求。」

參考書籍:

“Software Architect's Profession, An Introduction”
by Marc Sewell, Laura Sewell Prentice Hall 2001


"Sun Certified Enterprise Architect for J2EE Technology Study Guide"
by Mark Cade, Simon Roberts Prentice Hall 2002