姚仁祿 設計、品牌與行銷課程筆記 – 第二堂課

設計要從謙卑開始,如果無法謙卑設計完全沒法開始

沒有「謙卑」,就沒有創意
沒有「無私」,就沒有遠見
沒有創意與遠見就無法改變世界

無法改變世界的設計就沒有附加價值
概念一
謙悲的向自然學習AskNature.org
概念二
真正有夢想的人,不一定會看到夢想實現
設計不是為自己而做,而是為別人而做
思考:沒有無思加值的設計有何特徵
概念三
無私加值
改變世界的觀念,使用地球需要使用手冊(尤其是想要改變世界的人)
看動植物怎麼使用地球,大自然就是我們的使用手冊
worldchanging
以設計改變世界,是設計最大的附加價值
思考不用什麼成本,那只需要用心
很多東西為什麼說的到做不到,可能是缺
1.毅力
2.知識
所有的藝術有很多並非個人的部份
設計可以增加慾望(20世紀)也能解決問題

廣告

姚仁祿 設計、品牌與行銷課程筆記 – 第一堂課

設計
設計就是個改善的過程

設計如果視角放的太低,你會越來越不喜歡自己

請先思考
你要說的試什麼故事
你的內心是什麼浪漫
沒有浪慢就沒有熱忱,更無須談設計

品牌
品牌定位不能吊以輕心
否則要花很多的成本才能轉變
品牌是做出來的結果
品牌是你所做的事情在別人眼中的評價
品牌不是一個logo
品牌更不是一個產品
按:可以有規格說明的,可以被量化檢驗的是品質
TRIBES
blog:A Beautiful Mess
品牌的理性比較容易達到
品牌的感性比較難達到
部落領導,創造品牌的部落
品牌就是有人愛你。因為,你是部落首領
要知道自己的品牌是什麼
做設計的人一定要知道你做的設計要怎麼變成是可以行銷的東西 ,別人要能看的出來你做的東西是什麼,別人才有可能去使用,才能做出能造福人群的產品

行銷
極度的自信才有辦法微笑
要讓行銷有用:花時間、錢、技術與完整的故事且可以傳播
行銷就是說服大家跳到另一個魚缸
行銷就是把問題先問完,我們做設計時如果可以把該問的問題先問完,不但設計做的好也更能說服別人

Java Servlet安全性

Security分成四類
驗證(Authentication) – 使我們能檢驗的身份
授權(Authorization) – 限制只有特定的使用者或程式才能存取資源
保密(Confidentiality) – 確保只有參與者才能解讀通訊內容
完整性(Integrity) – 使我們能確認通訊內容在傳輸過程中未遭到竄改
以上四者全由數位憑證(digital certificate)寄術連結在一起,Java內建數位憑證的支援

一、HTTP身份驗證
1. Http基本驗證 – 採Base64編碼
2. 摘要驗證(digest authentication) – 以多個變因採帳號、密碼、URI、HTTP request method
、亂數值(nonce)

角色式驗證(Role-based authentication)
利用web.xml佈署描述檔裡的標簽,可以依據使用者是否持有特定的資格證明,來決定他們是否有權存取web應用系統裡的某些特定網頁(role屬性)

二、表單式驗證
每當伺服器收到requset,其存取對象是受保護的資源時,伺服器會檢查該使用者是否已經登入,也就是說,伺服器會在該使用者的HttpSession物件裡,尋找是否存在一個Principal物件,如果有則進一步檢查Principal的角色是否有權存取受保護資源的角色,則伺服器可將使用者再導引到該資源
缺點:和HTTP驗證法一樣,密碼是以明文形式傳送、不支援任何標準的登出機制

三、自定驗證

四、數位憑證
數位憑證技術關鍵在於public key cryptography,假設Jason想傳送一段密文給Willy,Jason首先得先找出Willy的public key,用它對訊息加密成密文。Willy收到密文之後,可用自己的private key解出原本的訊息,公鑰加密解決了私密性的問題

數位簽章(digital signature)則解決身份驗證的問題
數位簽章的關鍵在於key皆是非對稱的,Jason先用自己的private key對訊息加密,再用Willy的public key做第二次加密,Willy收到之後,先用自己的private key解密一次,再用Jason的public key做第二次解密以取得訊息

五、SSL
SSL協定使用公鑰加密技術來讓client server交換訊息,整個秘密通訊過程的所有細節都是由SSL負責,詳細運作原理可參考網路文件,或Java Servlet程式設計ch8

XML 基本觀念

XML1.0

XML對件內的元素(element)和內容(content)限制很少。XML把重心放在文件的結構(structure)上:元素必須有起始和結束、每個屬性(attribute)只能有一個值…等等。文件的內容以及文件中要使用的元素和屬性完全留給你自行決定。

XML文件可以分為兩個基本部份:標頭(header)和內容(content)。標頭提供資訊給XML分析器和XML應用軟體,只出該如何處理這份文件,而內容就是XML資料本身。

根元素

  • 根元素(root element)是XML文件中最高層次的元素,而且其起始標籤一定是文件內部地一個起始標籤,而其結束標籤一定是文件內部最後一個結束標籤
  • XML規範只出同一份文件中只能有一個根元素
  • 將根元素定義為標準的XML元素,而且無需特殊的屬性或行為,可以確表文件在引入其它文件火被其它文件引入時不會出錯

元素

  • 元素可由任何的名稱表示,而且名稱一定要用角括號(<>)圍起來才行
  • 元素的名稱有分大小寫
  • 元素名稱的開頭字元必須是字母或是底線字元,在來可以是任何數量的自母、數字、底線字元、連字號或點號
  • 元素名稱中不能有空格
  • 每個有起始的元素一定要按次序結束

<!– 標準的元素起始標籤>

<contents>

<!– 元素帶屬性 –>

<chapter title="Nuts and Bolts" number="2″>

<!– 元素中含有文字資料 –>

<title ora:series="Java">Java and XML</title>

<!– 空元素 –>

<sectionBreak/>

<!– 標準的元素結束標籤 –>

</contents>

實體參考

  • &lt; is <
  • &gt; is >
  • &amp; is &
  • &quot; is “
  • &apos; is ‘

不分析的資料

當你有一段不少的資料必須交給應用軟體而不希望XML分析器分析時,就可以用CDATA section,例如:

<unparsed-data>

<![CDATA[Diagram:

<Step 1> …

]]>

</unparsed=data>

名稱空間

XML名稱空間(XML namespace)是一種把XML文件中的元素分配給某個特定URI的方式。這等於元素的全名必需由其名稱及其名稱空間URI(namespace URI)組成。

XML名稱空間解決了名稱空間碰撞(namespace collision)的問題

XML Schema

XML Schema如同DTD一樣是負責定義和描述XML文檔的結構和內容模式。它可以定義XML文檔中存在哪些元素和元素之間的關系,并且可以定義元素和屬性 的數據類型。XML Schema本身是一個XML文件,它符合XML語法結構,可以用一般的XML解析器解析它

為什麼要使用 Schema?

DTD缺陷:

  1. DTD是基於正規表示式,描述能力有限
  2. DTD沒有資料型別的概念,在大多數應用環境下能力不足
  3. DTD的約束定義能力不足,無法對XML實例文件作出更細致的語義限制
  4. DTD的結構不夠結構化,重用的代價相對較高
  5. DTD並非使用XML作為描述手段,而DTD的構建和訪問並沒有標準的編程接口,無法使用標准的編程方式進行DTD維護

XML Schema正是針對這些DTD的缺點而設計的,XML Schema的優點:

  1. XML Schema基於XML,沒有專門的語法
  2. XML可以像其他XML文件一樣解析和處理
  3. XML Schema支持一系列的資料型別(int、float、Boolean、date等)
  4. XML Schema提供可擴充的資料型別
  5. XML Schema支持綜合命名空間
  6. XML Schema支持屬性組

SOAP

  1. SOAP以XML為基礎,因此它與程式語研、平台和硬體無關
  2. SOAP屬於第二代的XML協定
  3. XML-RPC使用HTTP做為底層的傳輸協定

SOAP應該做些什麼

  1. SOAP是普遍的XML分散式計算基礎建設的規格;XML代表第二代XML協定,SOAP立基於XML1.0,XML DTD與XML namespace
  2. SOAP的目標在於低階分散式系統的開發者,而不是應用程式、商業邏輯的開發者,在加入瞭解SOAP的Web Service引擎後即可使用SOAP

實際上,SOAP是什麼

  1. 定義通訊單元的機制。在SOAP中,所有資訊被包裹在一個定義清楚的SOAP訊息之內。這是由SOAP封包封入其他所有訊息所完成。一個訊息可具有一個主體,基本上其內容為所有可能的XML。它同時可以有任意數目的標頭,內含主體之外的資訊
  2. 一個錯誤處理的機制。它可以找出錯誤的來源與原因,允許錯誤診斷資訊於參與的成員間交換。這一點是利用SOAP fault來達成
  3. 一個延展性機制讓改進不會變成阻礙。XML,schema和namespace在這部份十分稱職,延展的兩個關鍵需求是可以獨立於其它延展,且可以引入和始用而不透過集中式的註冊或協調。通常,擴充是經由SOAP標頭來達成,它們可用於在SOAP上建立更複雜的協定
  4. 一個使資料呈現有彈性的機制。讓已經以某種格式(純文字、XML等)序列化的資料和像程式語言的資料型態般的抽象資料結構一樣樣得以XML格式交換
  5. 一個將遠端呼叫程序(RPC)以及回傳值呈現為SOAP訊息的慣例,因為RPC是最普遍的分散式計算交互運作型態,也因為它與程序式語言結構間良好的對映關係
  6. 一個以文件為中心的方式以反應更多商業活動的自然文件交換模型。這對RPC導致太細碎和易破壞的介面是必要的支援
  7. 一個連結SOAP訊息與HTTP的機制,因為HTTP是網際網路上最普遍的通訊協定

Web Service層次

provider與requester將服務視為Java API,呼叫Web Service需要一或多個Java method invocation,實作一個Web Service需要實作一個Java後端(如:class或EJB)。而Web Service的觀點則是其中一個SOAP訊息在requester與provider間交換,這些都是邏輯上的觀點,因為這不是requester與provider通訊的方式,唯一「真實」的觀點是連線這一層的觀點,在上面內含sOAP訊息的HTTP封包在requester的應用程式和provider的Web Service間交換

SOAP信封骨架

SOAP封包可以包含一個選擇性的Header元素與一個必要的Body元素,任何數目的其它XML元素可跟在Body元素之後

SOAP標頭

  1. Header如果出現的話,必須是SOAP Envelope元素的第一個子元素
  2. SOAP訊息可以包含任何數目的標頭

SOAP中的跨媒體處理

  1. 你如何將訊息傳送給跨媒體(Intermediary)處理
  2. 你如何辨別誰該處理該訊息
  3. 由跨媒體處理的資訊會如何

SOAP的錯誤處理

發生異常時,失敗的相關訊息會出現在SOAP的Falt元素裡

SOAP的資料編碼

SOAP的編碼規則利用SOAP envelope namespace的encodingStyle屬性來達成,此屬性在SOAP Schema中預設為全域,它可以出現在任何元素中,允許不同的編碼方式混合在一個SOAP訊息裡

SOAP陣列

陣列型態必須以SOAP-ENC:Array或由此衍生的型態來呈現,這些型態都有SOAP-ENC:arrayType屬性