Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

淡江大學 - 網站開發應用技術及雲端應用技術

4,511 views

Published on

淡江大學行動應用實務課程

Published in: Technology
  • Be the first to comment

淡江大學 - 網站開發應用技術及雲端應用技術

  1. 1. 網站開發應用技術及雲端應用技術 2013.12.14 @淡江大學 Taien Wang<taien_wang@hiiir.com> 時間軸科技股份有限公司
  2. 2. 你們有想過自己想在網路上做什麼嗎?
  3. 3. 一般應用 • 留言板 • 公佈欄 • 會員系統 • 部落格 • 相簿 • 聊天室 • …
  4. 4. 基本上你有能力自己開發以上的東西 你已經不愁吃穿了
  5. 5. 進階應用 • WebMail • 論壇 • 電子商務 • 企業資源規劃 ERP • 顧客關係管理 CRM • 電子公文系統 • …
  6. 6. 有你想做的嗎?
  7. 7. 社群網站 • Facebook • Plurk • Twitter • Foursquare • …
  8. 8. 如果你還找不到一個目標 • 看一下流行趨勢 – http://www.alexa.com/topsites/category • App Store 排行榜 • 各比賽的得獎作品 • …
  9. 9. 如果,假設… 有你想做的 那我們如何開始
  10. 10. 當今網路常用技術 層次 系統 直譯程式語言 JavaScript, Node.js, Coffee Script Python, Ruby, PHP, Perl, VB 編譯程式語言 C#, VB .NET, Java, Object-C 程式語言 ASM, C/C++ 資料庫 關聯式資料庫: Microsoft SQL Server, MySQL, Orcale NoSQL: MongoDB, CouchDB, Redis, Memcahced
  11. 11. PHP • 原稱 Personal Home Page • 1997: PHP: Hypertext Preprocessor • 腳本語言(Script Language) • 伺服器端執行(Server side) • 可內嵌於HTML(HTML-embedded) • 可以 命令列(CLI)執行, 或產生圖形化(GUI)介面 • 目前最新版本為 5.5.7 – 支援 finally – foreach 支援 list – generator – constant array/string dereferencing
  12. 12. PHP vs JSP vs ASP.NET • 跨平台, 效能差 • 硬體需求高 • 微軟平台 • C語言基礎 • 要有 JAVA 基礎 • C#, VB.NET, J#.. • 硬體需求低 • 效能較好 • 功能多, 但要了解才 • 原始碼公開 • 大型平台, 軟體採用 PHP JSP 能運用 ASP.NET
  13. 13. 除了寫一般的Web應用程式也可以寫視窗
  14. 14. 介紹PHP網站與相關參考資料 • 官網: www.php.net • 參考文件 – 英文, 中文
  15. 15. 開發相簿要具備哪些技能 • 網頁設計基礎 – 表格切版, CSS切版, 前端 JavaScript 控制 • 程式基本起手式與語法 • 上傳檔案 • SQL 指令 – CRUD – 新增, 查詢 – 修改, 刪除 • 影像操作
  16. 16. 在不管架構下開發了相簿系統
  17. 17. 光鮮亮麗的外表下 • 發生了程式碼與HTML糾結不清的狀況
  18. 18. 樣板引擎 – 簡介(1/2) 資料來源: http://www.php5.idv.tw/documents/smarty20031225/
  19. 19. 樣板引擎 – 實例 (1/2)
  20. 20. 程式設計師 我徘迴在詩意的邊緣 我的熱愛可以走得更遠 節錄至: PHP 頂級框架 Zend Framework 開發實戰
  21. 21. M-V-C 一般應用(1/2) MySQL 統一處理 伺服器安全問題 SQL, 命令注入… 一有錯誤 丟出例外 Model View Controller Dispatcher Routes Web Server Browser 統一處理 客戶端安全問題 XSS, CSRF… 統一處理 錯誤
  22. 22. M-V-C 進階(1/2) MySQL Cache Data Data Object Business PHPLib’s Template/Smarty/ Savant… Model View Controller Dispatcher Routes Web Server Browser
  23. 23. PHP MVC Framework – 幾套流行框架(1/3) • Zend Framework • Pahlcon • CakePHP • Yii • Symfony • …
  24. 24. PHP MVC Framework – 建議(2/3) • 使用任何框架前先了解 – 藍圖 – 生命週期 – 特性 – … 資料來源: Zend Framework in Action
  25. 25. PHP MVC Framework – ZF 細節(3/3) 資料來源: Zend Framework in Action
  26. 26. 簡潔是智慧的靈魂 冗長是膚淺的藻飾 - 莎士比亞 KISS(Keep It Simple, Stupid)
  27. 27. 好不容易把程式與樣板分離 也建好了一個網站 現實才正要開始…
  28. 28. 現實環境
  29. 29. 網站常遇到的問題 – 問題 • 網站遇到大流量怎麼辦? • 我的資料庫似乎不給力 – 連線數不夠 – 資料太多 • 網站上傳圖圖片要當場縮圖影響前端回應 • 聊天室可以再更即時嗎 • 結合熱門服務
  30. 30. 網站常遇到的問題 – 解法(1/2) • 網站遇到大流量怎麼辦? – PHP 程式碼快取(OPCACHE, APC) – 程式碼快取 – 資料快取 – 考慮 CDN(Akamai, 网宿, Amazon S3) • 資料庫連線數不夠 – 透過快取減少資料庫連線 – 用完即關或考慮連線池 – 如果是 MySQL 考慮升級 MySQL 企業版 • 資料庫速度不夠與資料太多 – 讀寫分離 – 主從複製(Replication)與分片Sharding – 拆庫與拆表
  31. 31. 網站常遇到的問題 – 解法(2/2) • 網站上傳圖圖片要當場縮圖影響前端回應 – 批次處理 – 任務伺服器(job server: gearman…) • 聊天室可以再更即時嗎 – TCP/UDP – Websocket – Advanced Message Queuing Protocol, AMQP – …
  32. 32. 網站常遇到的問題 – 未雨綢繆 高擴展性網站的50原則(1/2) • 第1章 化簡方程 – 原則1:不要過度設計 – 原則2:設計時就考慮擴展性(DID方法) – 原則3:把方案一簡再簡 – 原則4:減少DNS查找 – 原則5:盡可能減少對象 – 原則6:使用同一品牌的網絡設備 • 共有12章 • …
  33. 33. 高擴展性網站的50原則(2/2) 資料來源: Scalability Rules: 50 Principles for Scaling Web Sites
  34. 34. 大型網路系統規劃
  35. 35. 高層次的網路架構 Demilitarized Zone (DMZ) Firewall Load Balance Devices AP Dispatcher Clusters Static File Gateway Clusters Internal Networks Compute Resource Pool (Virtualization) Systems Server Farms Management & Monitor Center Networking Component Storage Resource Pool
  36. 36. 雲端是什麼?
  37. 37. 雲深不知處?
  38. 38. 雲端本質 + TLS XML Encryption XML Signature 38
  39. 39. 雲端運作模式(1/2) 39
  40. 40. 雲端運作模式(2/2) 40
  41. 41. 大家所知道的雲端廠商?
  42. 42. 近代知名的雲端廠商 SaaS 軟體即服 務 PaaS 平台即服務 IaaS 基礎架構即服務
  43. 43. 雲端運算五大特色 • 多租戶(Multitenancy) • 巨大的擴充性(Massive scalability) • 靈活性(Elasticity) • 用多少付多少(Pay as you go) • 自我提供其他資源(Self-provisioning of resources) Multi-tenant hosting farm Services Not partitioned Partitioned services Search Company A Enterprise Metadata People Company B Business Data Connectivity InfoPath Word Services PowerPoint Word Services Authenticated sites (collaboration) Company C Company D Word Viewing Access Services Subscription Settings Service Excel Calculation Services Anonymous Internet sites (published) Company E Company C Company D Company E

×