SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
设计开发实效 Web2.0 应用程序

朱可 (@shawnzhu)
软件工程师
IBM 中国开发实验室新兴技术中心
内容概况

从实际出发看 Web2.0 应用程序开发
• 趋势和主题
• 从核心问题入手
• 实用主义观点
• 工具和技能




                       2
Web2.0: 2010
• 社会网络与社会化游戏
• 在线Web应用程序商店
• 微博客
• 在线商店和在线支付
• 基于位置和地理信息的应用
• 互联网电视、在线电影和视频




         Copyright 2010 © IBM Corporation
                                                3
Web2.0 开发的核心问题

•   更多的用户数量
•   更多的在线任务
•   越来越多的相互联系的数据
•   安全威胁与隐私保护
•   新的客户端平台




                       4
Web2.0 开发新主题


基于Web的开放编程接口

  大规模数据分析

    云计算

   移劢Web


                  5
Web 应用程序之实用主义观点

•   用户体验 (User experience)
•   成本 (Costs)
•   系统复杂度 (System complexity)
•   可测试的系统 (Testable system)
•   行劢敏捷 (Do things agile)




                                6
用户体验




       7
“It's the Customer, Stupid!”
        • 简单易用的用户体验设计
        • 清晰的信息架构
        • 多重访问渠道
                • 浏览器                                     移劢设备同步应用                       API 访问
                                                                                      (如 OpenSocial)




                                                                                                                            8
(http://thepcsecurity.com/use-multiple-browsers-to-ensure-internet-security/)   (http://en.wikipedia.org/wiki/OpenSocial)
简单易用的用户体验设计
保持一致的 UI 模型
• Yahoo! Design library
• Dijit from Dojo toolkit
• jQuery widget                                                    (http://developer.yahoo.com/ypatterns/selection/autocomplete.html)


提供反馈信息
保持简洁




                                                                                                                              9
    (http://ajaxian.com/archives/dissecting -dijit-dojo-widgets)
用户体验设计之 IBM OneUI

<link rel="stylesheet" href="/static/css/core.css" type="text/css"/>
<link rel="stylesheet" href="/static/css/defaultTheme.css" type= "text/css"/>
…
<body class="lotusui">
…
描述 CSS 和 HTML 结构
• 通用布局
• UI 组件
• 主题



                                                                         10
清晰的信息架构设计
Logo                  Category

 Title         Navigation tab




              Tips & wizard

Filters


                   Common links
Footer


                                11
信息架构设计之HTML文档参考
<body>
  <header><nav><!-- navigation --></nav></header>
  <aside><!-– filters in tag cloud --></aside>
  <div>
  <section><!-– tips --></section>
  <section><!–- content list --></section>
  <!–- other sections -->
  </div>
  <footer><!-- declaration --></footer>
</body>

                                                 12
通过良好的架构管理系统复杂
 度,控制运营成本




            13
实效Web2.0应用程序架构

• 应用设计原则分离关注点
 – 会话(session)信息的保存      负载平衡器

 – 事务与数据一致性检查
 – 可用性               Web应用    Web应用

 – 规模化               Web容器    Web容器

 – 数据存储            缓存

 – 可管理性
                       主数据库   从数据库


                    典型Web2.0应用程序架构参考
                                       14
使用云计算基础设施部署 Web 应用

• 弹性基础设施                          Public
                                 Network
 •   按需支付
 •   高可伸缩性
                    Amazon Elastic
 •   海量数据存储         Load Balancing

 •   管理与监视能力
                   WebSphere sMash          Amazon S3
                    On Amazon EC2          (Elastic CDN)




               Amazon RDB    Amazon SimpleDB

               WebSphere sMash + Amazon Web Services
                                                 15
在云计算平台上开发 Web 应用

使用方便但选择有限
• Google AppEngine: Python or Java
• Sina AppEngine: PHP




             按使用率付费                  16
可测试的系统

“Test when possible.”



                        17
测试 Web2.0 应用程序
“Test twice, write once.”
普及单元测试
• JUnit, Ruby ‘test/unit’, Python ‘unittest’, PHPT
功能测试
• django.test.client.Client
• curl
• java.net.URLConnection
性能测试
• Apache JMeter, LoadRunner
集成测试
• Selenium
                                                 18
工具和技能

•   新兴编程语言
•   云计算技术
•   新兴数据库技术
•   可复用的组件服务
    • OpenID, Online Map, Google search, 在线
      相册, 在线文件分享,即时通信服务(XMPP,
      Wave)



                                              19
选择数据库

• 关系型数据库
  • 最为常用,面向结构化数据的查询和编辑
• 非关系型数据库(NoSQL)
  • 列数据库: HBase, Cassandra
  • 键值对数据库: CouchDB, MongoDB, AWS
    SimpleDB
  • 内容数据库: JCR, AWS S3

提示:
只有在 SQL 数据库无法满足功能性需要时,再选择 NoSQL 数据库
                                    20
行劢敏捷




       21
敏捷风格的开发过程

原则
• 尽早、经常地交付可用的软件
• 保持简单
方法论
• DRY – Don’t repeat your self
• 尽可能多地测试
• 代码重构与设计重构
• 从错误和失败中学习

                                 22
Web2.0 应用程序的安全

提防安全漏洞保护 Web 应用
• XSS (跨站脚本)
• CSRF (跨站请求伪造)
使用开放安全协议保护用户隐私
• 使用 SSL 加密通信传输
• 使用 OpenID 管理用户身份信息
• 使用 OAuth 与第三方服务交换数据


                         23
小结
• 简单易用的用户体验设计
• 通过良好的架构管理系统复杂度,控制运营成本
• 构建可测试的系统
• 把握敏捷行劢的原则和方法
• 注重应用程序安全和用户隐私




                           24
参考信息
• Yahoo! Design Library
• Amazon Web Services
• IBM OneUI
• Dojo toolkit
• Projectzero 开发社区
• NoSQL




                             25
© IBM Corporation 2010. All Rights Reserved.
The workshops, sessions and materials have been prepared by IBM or the session speakers and ref lect their own views. They are provided f or
inf ormational purposes only, and are neither intended to, nor shall have the ef f ect of being, legal or other guidance or advi ce to any participant. While
ef f orts were made to verif y the completeness and accuracy of the inf ormation contained in this presentation, it is provided A S IS without warranty of
any kind, express or implied. IBM shall not be responsible f or any damages arising out of the use of , or otherwise related to , this presentation or any
other materials. Nothing contained in this presentation is intended to, nor shall have the ef f ect of, creating any warranties or representations f rom IBM
or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM sof tware.
Ref erences in this presentation to IBM products, programs, or services do not imply that they will be available in all countr ies in which IBM operates.
Product release dates and/or capabilities ref erenced in this presentation may change at any time at IBM’s sole discretion bas ed on market
opportunities or other f actors, and are not intended to be a commitment to f uture product or f eature availability in any way. Nothing contained in these
materials is intended to, nor shall have the ef f ect of, stating or implying that any activities undertaken by you will result in any specif ic sales, revenue
growth or other results.
Perf ormance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual th roughput or
perf ormance that any user will experience will vary depending upon many f actors, including considerations such as the amount of multiprogramming
in the user's job stream, the I/O conf iguration, the storage conf iguration, and the workload processed. Theref ore, no assurance can be given that an
individual user will achieve results similar to those stated here.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have
achieved.
Actual environmental costs and perf ormance characteristics may vary by customer.
The f ollowing are trademarks of the International Business Machines Corporation in the United States and/or other countries:
ibm.com/legal/copytrade.shtml AIX, CICS, CICSPlex, DataPower, DB2, DB2 Universal Database, i5/OS, IBM, the IBM logo, IMS/ESA, Power
Systems, Lotus, OMEGAMON, OS/390, Parallel Sysplex, pureXML, Rational, Redbooks, Sametime, SMART SOA, System z , Tivoli, WebS phere,
and z/OS.
A current list of IBM trademarks is available on the Web at “Copyright and trademark inf ormation” at ibm.com/legal/copytrade. shtml.
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems In corporated in the
United States, and/or other countries.
IT Inf rastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part o f the Of f ice of
Government Commerce
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Microsof t and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
ITIL is a registered trademark, and a registered community trademark of the Of f ice of Government Commerce, and is registered in the U.S. Patent
and Trademark Of f ice
Intel and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and o ther countries.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
                                                                                                                                                         26

Contenu connexe

En vedette

Visita estudo 26_junho_2014
Visita estudo 26_junho_2014Visita estudo 26_junho_2014
Visita estudo 26_junho_2014Alexandra Santos
 
VietRees_Newsletter_28_Tuan4_Thang04
VietRees_Newsletter_28_Tuan4_Thang04VietRees_Newsletter_28_Tuan4_Thang04
VietRees_Newsletter_28_Tuan4_Thang04internationalvr
 
Teams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, Australia
Teams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, AustraliaTeams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, Australia
Teams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, AustraliaBernd Schiffer
 
Jardines 16908
Jardines 16908Jardines 16908
Jardines 16908Marinesita
 
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...Bernd Schiffer
 
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens Coldewey
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens ColdeweyPecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens Coldewey
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens ColdeweyBernd Schiffer
 
VietRees_Newsletter_36_Week3_Month06_Year08
VietRees_Newsletter_36_Week3_Month06_Year08VietRees_Newsletter_36_Week3_Month06_Year08
VietRees_Newsletter_36_Week3_Month06_Year08internationalvr
 
Simplified Web2.0 application development with Project Zero
Simplified Web2.0 application development with Project ZeroSimplified Web2.0 application development with Project Zero
Simplified Web2.0 application development with Project ZeroShawn Zhu
 
sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)Michael H. Oshita
 
Concrete Experimentation in Scrum at Scrum Australia 2014
Concrete Experimentation in Scrum at Scrum Australia 2014Concrete Experimentation in Scrum at Scrum Australia 2014
Concrete Experimentation in Scrum at Scrum Australia 2014Bernd Schiffer
 
Diktatoren, Twitteraccounts und SOLIDes Design
Diktatoren, Twitteraccounts und SOLIDes DesignDiktatoren, Twitteraccounts und SOLIDes Design
Diktatoren, Twitteraccounts und SOLIDes DesignBernd Schiffer
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2Michael H. Oshita
 
Net Promoter System for Agile Environments @ Agile 2013 in Nashville, Tennessee
Net Promoter System for Agile Environments @ Agile 2013 in Nashville, TennesseeNet Promoter System for Agile Environments @ Agile 2013 in Nashville, Tennessee
Net Promoter System for Agile Environments @ Agile 2013 in Nashville, TennesseeBernd Schiffer
 
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning Wolf
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning WolfPecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning Wolf
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning WolfBernd Schiffer
 
Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011
Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011
Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011Bernd Schiffer
 
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa Adkins
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa AdkinsPecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa Adkins
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa AdkinsBernd Schiffer
 

En vedette (20)

Visita estudo 26_junho_2014
Visita estudo 26_junho_2014Visita estudo 26_junho_2014
Visita estudo 26_junho_2014
 
VietRees_Newsletter_28_Tuan4_Thang04
VietRees_Newsletter_28_Tuan4_Thang04VietRees_Newsletter_28_Tuan4_Thang04
VietRees_Newsletter_28_Tuan4_Thang04
 
Teams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, Australia
Teams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, AustraliaTeams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, Australia
Teams! Make War, Not (Only) Love! at LAST Conf 2016 in Melbourne, Australia
 
Jardines 16908
Jardines 16908Jardines 16908
Jardines 16908
 
Doubrava julia m
Doubrava julia mDoubrava julia m
Doubrava julia m
 
004
004004
004
 
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Martin Heider and Bernd...
 
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens Coldewey
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens ColdeweyPecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens Coldewey
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Jens Coldewey
 
VietRees_Newsletter_36_Week3_Month06_Year08
VietRees_Newsletter_36_Week3_Month06_Year08VietRees_Newsletter_36_Week3_Month06_Year08
VietRees_Newsletter_36_Week3_Month06_Year08
 
Simplified Web2.0 application development with Project Zero
Simplified Web2.0 application development with Project ZeroSimplified Web2.0 application development with Project Zero
Simplified Web2.0 application development with Project Zero
 
sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)sinsai.infoの裏側(インフラ偏)
sinsai.infoの裏側(インフラ偏)
 
Design Logo
Design  LogoDesign  Logo
Design Logo
 
Concrete Experimentation in Scrum at Scrum Australia 2014
Concrete Experimentation in Scrum at Scrum Australia 2014Concrete Experimentation in Scrum at Scrum Australia 2014
Concrete Experimentation in Scrum at Scrum Australia 2014
 
Diktatoren, Twitteraccounts und SOLIDes Design
Diktatoren, Twitteraccounts und SOLIDes DesignDiktatoren, Twitteraccounts und SOLIDes Design
Diktatoren, Twitteraccounts und SOLIDes Design
 
HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2HAProxyでMySQL HA on Amazon EC2
HAProxyでMySQL HA on Amazon EC2
 
La Ultima Clase
La Ultima ClaseLa Ultima Clase
La Ultima Clase
 
Net Promoter System for Agile Environments @ Agile 2013 in Nashville, Tennessee
Net Promoter System for Agile Environments @ Agile 2013 in Nashville, TennesseeNet Promoter System for Agile Environments @ Agile 2013 in Nashville, Tennessee
Net Promoter System for Agile Environments @ Agile 2013 in Nashville, Tennessee
 
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning Wolf
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning WolfPecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning Wolf
Pecha-Kucha-Session WJAX 2009 "Mein Agiler Koffer" von Henning Wolf
 
Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011
Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011
Scrum, Kanban und (r)evolutionäre Veränderungen - SEACON 2011
 
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa Adkins
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa AdkinsPecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa Adkins
Pecha Kucha Session Agile 2011 "My Agile Suitcase" by Lyssa Adkins
 

Similaire à 设计开发实效 Web2.0 应用程序

Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on BluemixRam Vennam
 
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...Michael Elder
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Phil Estes
 
Enabling a hardware accelerated deep learning data science experience for Apa...
Enabling a hardware accelerated deep learning data science experience for Apa...Enabling a hardware accelerated deep learning data science experience for Apa...
Enabling a hardware accelerated deep learning data science experience for Apa...Indrajit Poddar
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk IntroductionIoana Baldini
 
LIVO Presentation by ENO
LIVO Presentation by ENOLIVO Presentation by ENO
LIVO Presentation by ENOTamer Taşdelen
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudGoogleTecTalks
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsChris Bailey
 
在小學有效運用雲端電腦以促進電子學習(第一節筆記)
在小學有效運用雲端電腦以促進電子學習(第一節筆記)在小學有效運用雲端電腦以促進電子學習(第一節筆記)
在小學有效運用雲端電腦以促進電子學習(第一節筆記)Tsz Wing Chu
 
3298 microservices and how they relate to esb api and messaging - inter con...
3298   microservices and how they relate to esb api and messaging - inter con...3298   microservices and how they relate to esb api and messaging - inter con...
3298 microservices and how they relate to esb api and messaging - inter con...Kim Clark
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioInho Kang
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클Oracle Korea
 
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...NRB
 
IBM Multicloud Management on the OpenShift Container Platform
IBM Multicloud Management on theOpenShift Container PlatformIBM Multicloud Management on theOpenShift Container Platform
IBM Multicloud Management on the OpenShift Container PlatformMichael Elder
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsKhalid Ahmed
 
z Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for zz Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for znick_garrod
 
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...
Powering the digital economy with CICS and z/OS connect - at the "z Systems...DevOps for Enterprise Systems
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsnick_garrod
 
Conduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminarConduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminarSyed Shaaf
 

Similaire à 设计开发实效 Web2.0 应用程序 (20)

Java Development on Bluemix
Java Development on BluemixJava Development on Bluemix
Java Development on Bluemix
 
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
Elevate Your Continuous Delivery Strategy Above the Rolling Clouds (Interconn...
 
Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?Containerize, PaaS, or Go Serverless!?
Containerize, PaaS, or Go Serverless!?
 
Enabling a hardware accelerated deep learning data science experience for Apa...
Enabling a hardware accelerated deep learning data science experience for Apa...Enabling a hardware accelerated deep learning data science experience for Apa...
Enabling a hardware accelerated deep learning data science experience for Apa...
 
OpenWhisk Introduction
OpenWhisk IntroductionOpenWhisk Introduction
OpenWhisk Introduction
 
LIVO Presentation by ENO
LIVO Presentation by ENOLIVO Presentation by ENO
LIVO Presentation by ENO
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java Tools
 
在小學有效運用雲端電腦以促進電子學習(第一節筆記)
在小學有效運用雲端電腦以促進電子學習(第一節筆記)在小學有效運用雲端電腦以促進電子學習(第一節筆記)
在小學有效運用雲端電腦以促進電子學習(第一節筆記)
 
3298 microservices and how they relate to esb api and messaging - inter con...
3298   microservices and how they relate to esb api and messaging - inter con...3298   microservices and how they relate to esb api and messaging - inter con...
3298 microservices and how they relate to esb api and messaging - inter con...
 
The elegant way of implementing microservices with istio
The elegant way of implementing microservices with istioThe elegant way of implementing microservices with istio
The elegant way of implementing microservices with istio
 
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
12월 16일 Meetup [Deep Dive] Microservice 트래픽 관리를 위한 Istio 알아보기 | 강인호 컨설턴트, 오라클
 
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
The NRB Group mainframe day 2021 - Containerisation on Z - Paul Pilotto - Seb...
 
IBM Multicloud Management on the OpenShift Container Platform
IBM Multicloud Management on theOpenShift Container PlatformIBM Multicloud Management on theOpenShift Container Platform
IBM Multicloud Management on the OpenShift Container Platform
 
Containers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen AppsContainers as Infrastructure for New Gen Apps
Containers as Infrastructure for New Gen Apps
 
z Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for zz Technical Summit Track 3 Session 4 Developing mobilefirst app for z
z Technical Summit Track 3 Session 4 Developing mobilefirst app for z
 
CloudDesignPatterns
CloudDesignPatternsCloudDesignPatterns
CloudDesignPatterns
 
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...Powering the digital economy with CICS and z/OS connect  -  at the "z Systems...
Powering the digital economy with CICS and z/OS connect - at the "z Systems...
 
IBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid appsIBM Impact Session 2351 hybrid apps
IBM Impact Session 2351 hybrid apps
 
Conduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminarConduct JBoss EAP 6 seminar
Conduct JBoss EAP 6 seminar
 

Dernier

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 

Dernier (20)

Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 

设计开发实效 Web2.0 应用程序

  • 1. 设计开发实效 Web2.0 应用程序 朱可 (@shawnzhu) 软件工程师 IBM 中国开发实验室新兴技术中心
  • 2. 内容概况 从实际出发看 Web2.0 应用程序开发 • 趋势和主题 • 从核心问题入手 • 实用主义观点 • 工具和技能 2
  • 3. Web2.0: 2010 • 社会网络与社会化游戏 • 在线Web应用程序商店 • 微博客 • 在线商店和在线支付 • 基于位置和地理信息的应用 • 互联网电视、在线电影和视频 Copyright 2010 © IBM Corporation 3
  • 4. Web2.0 开发的核心问题 • 更多的用户数量 • 更多的在线任务 • 越来越多的相互联系的数据 • 安全威胁与隐私保护 • 新的客户端平台 4
  • 5. Web2.0 开发新主题 基于Web的开放编程接口 大规模数据分析 云计算 移劢Web 5
  • 6. Web 应用程序之实用主义观点 • 用户体验 (User experience) • 成本 (Costs) • 系统复杂度 (System complexity) • 可测试的系统 (Testable system) • 行劢敏捷 (Do things agile) 6
  • 8. “It's the Customer, Stupid!” • 简单易用的用户体验设计 • 清晰的信息架构 • 多重访问渠道 • 浏览器 移劢设备同步应用 API 访问 (如 OpenSocial) 8 (http://thepcsecurity.com/use-multiple-browsers-to-ensure-internet-security/) (http://en.wikipedia.org/wiki/OpenSocial)
  • 9. 简单易用的用户体验设计 保持一致的 UI 模型 • Yahoo! Design library • Dijit from Dojo toolkit • jQuery widget (http://developer.yahoo.com/ypatterns/selection/autocomplete.html) 提供反馈信息 保持简洁 9 (http://ajaxian.com/archives/dissecting -dijit-dojo-widgets)
  • 10. 用户体验设计之 IBM OneUI <link rel="stylesheet" href="/static/css/core.css" type="text/css"/> <link rel="stylesheet" href="/static/css/defaultTheme.css" type= "text/css"/> … <body class="lotusui"> … 描述 CSS 和 HTML 结构 • 通用布局 • UI 组件 • 主题 10
  • 11. 清晰的信息架构设计 Logo Category Title Navigation tab Tips & wizard Filters Common links Footer 11
  • 12. 信息架构设计之HTML文档参考 <body> <header><nav><!-- navigation --></nav></header> <aside><!-– filters in tag cloud --></aside> <div> <section><!-– tips --></section> <section><!–- content list --></section> <!–- other sections --> </div> <footer><!-- declaration --></footer> </body> 12
  • 14. 实效Web2.0应用程序架构 • 应用设计原则分离关注点 – 会话(session)信息的保存 负载平衡器 – 事务与数据一致性检查 – 可用性 Web应用 Web应用 – 规模化 Web容器 Web容器 – 数据存储 缓存 – 可管理性 主数据库 从数据库 典型Web2.0应用程序架构参考 14
  • 15. 使用云计算基础设施部署 Web 应用 • 弹性基础设施 Public Network • 按需支付 • 高可伸缩性 Amazon Elastic • 海量数据存储 Load Balancing • 管理与监视能力 WebSphere sMash Amazon S3 On Amazon EC2 (Elastic CDN) Amazon RDB Amazon SimpleDB WebSphere sMash + Amazon Web Services 15
  • 16. 在云计算平台上开发 Web 应用 使用方便但选择有限 • Google AppEngine: Python or Java • Sina AppEngine: PHP 按使用率付费 16
  • 18. 测试 Web2.0 应用程序 “Test twice, write once.” 普及单元测试 • JUnit, Ruby ‘test/unit’, Python ‘unittest’, PHPT 功能测试 • django.test.client.Client • curl • java.net.URLConnection 性能测试 • Apache JMeter, LoadRunner 集成测试 • Selenium 18
  • 19. 工具和技能 • 新兴编程语言 • 云计算技术 • 新兴数据库技术 • 可复用的组件服务 • OpenID, Online Map, Google search, 在线 相册, 在线文件分享,即时通信服务(XMPP, Wave) 19
  • 20. 选择数据库 • 关系型数据库 • 最为常用,面向结构化数据的查询和编辑 • 非关系型数据库(NoSQL) • 列数据库: HBase, Cassandra • 键值对数据库: CouchDB, MongoDB, AWS SimpleDB • 内容数据库: JCR, AWS S3 提示: 只有在 SQL 数据库无法满足功能性需要时,再选择 NoSQL 数据库 20
  • 22. 敏捷风格的开发过程 原则 • 尽早、经常地交付可用的软件 • 保持简单 方法论 • DRY – Don’t repeat your self • 尽可能多地测试 • 代码重构与设计重构 • 从错误和失败中学习 22
  • 23. Web2.0 应用程序的安全 提防安全漏洞保护 Web 应用 • XSS (跨站脚本) • CSRF (跨站请求伪造) 使用开放安全协议保护用户隐私 • 使用 SSL 加密通信传输 • 使用 OpenID 管理用户身份信息 • 使用 OAuth 与第三方服务交换数据 23
  • 24. 小结 • 简单易用的用户体验设计 • 通过良好的架构管理系统复杂度,控制运营成本 • 构建可测试的系统 • 把握敏捷行劢的原则和方法 • 注重应用程序安全和用户隐私 24
  • 25. 参考信息 • Yahoo! Design Library • Amazon Web Services • IBM OneUI • Dojo toolkit • Projectzero 开发社区 • NoSQL 25
  • 26. © IBM Corporation 2010. All Rights Reserved. The workshops, sessions and materials have been prepared by IBM or the session speakers and ref lect their own views. They are provided f or inf ormational purposes only, and are neither intended to, nor shall have the ef f ect of being, legal or other guidance or advi ce to any participant. While ef f orts were made to verif y the completeness and accuracy of the inf ormation contained in this presentation, it is provided A S IS without warranty of any kind, express or implied. IBM shall not be responsible f or any damages arising out of the use of , or otherwise related to , this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the ef f ect of, creating any warranties or representations f rom IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM sof tware. Ref erences in this presentation to IBM products, programs, or services do not imply that they will be available in all countr ies in which IBM operates. Product release dates and/or capabilities ref erenced in this presentation may change at any time at IBM’s sole discretion bas ed on market opportunities or other f actors, and are not intended to be a commitment to f uture product or f eature availability in any way. Nothing contained in these materials is intended to, nor shall have the ef f ect of, stating or implying that any activities undertaken by you will result in any specif ic sales, revenue growth or other results. Perf ormance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual th roughput or perf ormance that any user will experience will vary depending upon many f actors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O conf iguration, the storage conf iguration, and the workload processed. Theref ore, no assurance can be given that an individual user will achieve results similar to those stated here. All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and perf ormance characteristics may vary by customer. The f ollowing are trademarks of the International Business Machines Corporation in the United States and/or other countries: ibm.com/legal/copytrade.shtml AIX, CICS, CICSPlex, DataPower, DB2, DB2 Universal Database, i5/OS, IBM, the IBM logo, IMS/ESA, Power Systems, Lotus, OMEGAMON, OS/390, Parallel Sysplex, pureXML, Rational, Redbooks, Sametime, SMART SOA, System z , Tivoli, WebS phere, and z/OS. A current list of IBM trademarks is available on the Web at “Copyright and trademark inf ormation” at ibm.com/legal/copytrade. shtml. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems In corporated in the United States, and/or other countries. IT Inf rastructure Library is a registered trademark of the Central Computer and Telecommunications Agency which is now part o f the Of f ice of Government Commerce Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsof t and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. ITIL is a registered trademark, and a registered community trademark of the Of f ice of Government Commerce, and is registered in the U.S. Patent and Trademark Of f ice Intel and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and o ther countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. 26