Cloud computing promises to revolutionize IT and business by making computing available as a utility over the internet. This book is intended primarily for practising software architects who need to assess the impact of such a transformation. It explains the evolution of the internet into a cloud computing platform, describes emerging development paradigms and technologies, and discusses how these will change the way enterprise applications should be architected for cloud deployment. Gautam Shroff provides a technical description of cloud computing technologies, covering cloud infrastructure and platform services, programming paradigms such as MapReduce, as well as 'do-it-yourself' hosted development tools. He also describes emerging technologies critical to cloud computing. The book also covers the fundamentals of enterprise computing, including a technical introduction to enterprise architecture, so it will interest programmers aspiring to become software architects and serve as a reference for a graduate-level course in software architecture or software engineering.
Author(s): Gautam Shroff
Edition: 1
Publisher: Cambridge University Press
Year: 2010
Language: English
Pages: 291
Tags: Библиотека;Компьютерная литература;Облачные вычисления и сервисы;
Cover......Page 1
Half-title......Page 3
Title......Page 5
Copyright......Page 6
Contents......Page 7
Preface......Page 13
Abbreivations......Page 16
Part I: Computing platforms......Page 19
1.1 INTRODUCTION......Page 21
1.2 MAINFRAME ARCHITECTURE......Page 23
1.3 CLIENT-SERVER ARCHITECTURE......Page 25
1.4 3-TIER ARCHITECTURES WITH TP MONITORS......Page 28
2.1 INTERNET TECHNOLOGY AND WEB-ENABLED APPLICATIONS......Page 34
2.2 WEB APPLICATION SERVERS......Page 37
2.3 INTERNET OF SERVICES......Page 40
3.1 EMERGENCE OF SOFTWARE AS A SERVICE......Page 45
3.2 SUCCESSFUL SAAS ARCHITECTURES......Page 47
3.3 DEV 2.0 PLATFORMS......Page 49
3.4 CLOUD COMPUTING......Page 50
3.5 DEV 2.0 IN THE CLOUD FOR ENTERPRISES......Page 54
CHAPTER 4 Enterprise architecture: role and evolution......Page 57
4.2 ENTERPRISE COMPONENTS......Page 58
4.3 APPLICATION INTEGRATION AND SOA......Page 60
4.4.1 Unformity or best of breed......Page 62
4.4.2 Network and data security......Page 63
4.4.3 Implementation architectures and quick-wins......Page 64
4.5 DATA CENTER INFRASTRUCTURE: COPING WITH COMPLEXITY......Page 65
Part II: Cloud platforms......Page 67
5.1 INFRASTRUCTURE AS A SERVICE: AMAZON EC2......Page 69
5.2 PLATFORM AS A SERVICE: GOOGLE APP ENGINE......Page 74
5.2.1 Google Datastore......Page 75
5.3 MICROSOFT AZURE......Page 78
6.1 IS CLOUD INFRASTRUCTURE CHEAPER?......Page 82
6.1.1 IaaS economics......Page 83
6.2 ECONOMICS OF PRIVATE CLOUDS......Page 85
6.2.1 Economics of PaaS vs. IaaS......Page 88
6.3 SOFTWARE PRODUCTIVITY IN THE CLOUD......Page 89
6.4 ECONOMIES OF SCALE: PUBLIC VS. PRIVATE CLOUDS......Page 91
Part III: Cloud technologies......Page 93
7.1 WEB SERVICES: SOAP AND REST......Page 95
7.1.1 SOAP/WSDL Web services......Page 96
7.1.2 REST web services......Page 98
7.2 SOAP VERSUS REST......Page 101
7.3 AJAX: ASYNCHRONOUS `RICH' INTERFACES......Page 103
7.4 MASHUPS: USER INTERFACE SERVICES......Page 105
8.1 VIRTUAL MACHINE TECHNOLOGY......Page 107
8.1.1 System virtual machines......Page 109
8.1.2 Virtual machines and elastic computing......Page 111
8.1.3 Virtual machine migration......Page 112
8.2.1 Security through virtualization......Page 113
8.2.2 Desktop virtualization and application streaming......Page 114
8.2.3 Server consolidation......Page 116
8.2.4 Automating infrastructure management......Page 118
8.3 PITFALLS OF VIRTUALIZATION......Page 121
CHAPTER 9 Multi-tenant software......Page 122
9.1 MULTI-ENTITY SUPPORT......Page 123
9.2 MULTI-SCHEMA APPROACH......Page 125
9.3 MULTI-TENANCY USING CLOUD DATA STORES......Page 127
9.4 DATA ACCESS CONTROL FOR ENTERPRISE APPLICATIONS......Page 129
Part IV: Cloud development......Page 133
CHAPTER 10 Data in the cloud......Page 135
10.1 RELATIONAL DATABASES......Page 136
10.2 CLOUD FILE SYSTEMS: GFS AND HDFS......Page 139
10.3 BIGTABLE, HBASE AND DYNAMO......Page 141
10.4 CLOUD DATA STORES: DATASTORE AND SIMPLEDB......Page 146
11.1 PARALLEL COMPUTING......Page 149
11.2 THE MAPREDUCE MODEL......Page 152
11.3 PARALLEL EFFICIENCY OF MAPREDUCE......Page 155
11.4 RELATIONAL OPERATIONS USING MAPREDUCE......Page 157
11.5 ENTERPRISE BATCH PROCESSING USING MAPREDUCE......Page 160
CHAPTER 12 Dev 2.0 platforms......Page 162
12.1 SALESFORCE.COM'S FORCE.COM PLATFORM......Page 163
12.2 TCS INSTANTAPPS ON AMAZON CLOUD......Page 166
12.3 MORE DEV 2.0 PLATFORMS AND RELATED EFFORTS......Page 171
12.4 ADVANTAGES, APPLICABILITY AND LIMITS OF DEV 2.0......Page 172
Part V: Software architecture......Page 177
13.1 ANATOMY OF A LARGE ENTERPRISE......Page 179
13.2 PARTNERS: PEOPLE AND ORGANIZATIONS......Page 182
13.3 PRODUCTS......Page 185
13.4 ORDERS: SALES AND PURCHASES......Page 186
13.5 EXECUTION: TRACKING WORK......Page 188
13.6 BILLING......Page 190
13.7 ACCOUNTING......Page 192
13.8 ENTERPRISE PROCESSES, BUILD VS. BUY AND SAAS......Page 194
14.1 SOFTWARE ARCHITECTURE FOR ENTERPRISE COMPONENTS......Page 196
14.2.1 Layered MVC and the AJAX Paradigm......Page 198
14.2.2 Common UI patterns......Page 200
14.2.3 Formal models and frameworks......Page 202
14.3.1 What does business logic do?......Page 206
14.3.2 Rule-based computing......Page 208
14.3.3 Modeling business logic using MapReduce......Page 210
14.4 INSIDE DEV 2.0: MODEL DRIVEN INTERPRETERS......Page 212
14.4.1 Multi-tenant Dev 2.0: application virtualization......Page 215
14.5 SECURITY, ERROR HANDLING, TRANSACTIONS AND WORKFLOW......Page 216
14.5.1 Application security......Page 217
14.5.2 Error handling......Page 218
14.5.3 Transaction management......Page 219
15.1 IMPLEMENTING WORKFLOW IN AN APPLICATION......Page 221
15.2 WORKFLOW META-MODEL USING ECA RULES......Page 223
15.3 ECA WORKFLOW ENGINE......Page 225
15.4 USING AN EXTERNAL WORKFLOW ENGINE......Page 228
15.5 PROCESS MODELING AND BPMN......Page 229
15.6 WORKFLOW IN THE CLOUD......Page 234
CHAPTER 16 Enterprise analytics and search......Page 235
16.1 ENTERPRISE KNOWLEDGE: GOALS AND APPROACHES......Page 236
16.2.1 Data warehousing......Page 237
16.2.2 OLAP on a star schema......Page 239
16.2.3 OLAP using MapReduce......Page 241
16.3 TEXT AND DATA MINING......Page 243
16.3.1 Data classification......Page 245
16.3.2 Computing the SVD using MapReduce......Page 249
16.3.3 Clustering data......Page 251
16.3.4 Anomaly detection......Page 252
16.4.1 Enterprise search......Page 253
16.4.2 Indexing and search using MapReduce......Page 254
16.4.3 Latent semantic indexing......Page 255
16.4.4 Searching structured data......Page 256
Part VI: Enterprise cloud computing......Page 259
CHAPTER 17 Enterprise cloud computing ecosystem......Page 261
17.1 PUBLIC CLOUD PROVIDERS......Page 262
17.2 CLOUD MANAGEMENT PLATFORMS AND TOOLS......Page 264
17.3 TOOLS FOR BUILDING PRIVATE CLOUDS......Page 265
17.3.1 IaaS using Eucalyptus......Page 266
17.3.2 PaaS on IaaS: AppScale......Page 269
CHAPTER 18 Roadmap for enterprise cloud computing......Page 271
18.1.1 Development and testing......Page 272
18.1.4 Low/Variable volume 24×7 portals......Page 273
18.1.6 Mobile enterprise applications......Page 274
18.2 FUTURE OF ENTERPRISE CLOUD COMPUTING......Page 275
18.2.1 Commoditization of the data center......Page 276
18.2.2 Inter-operating Virtualized Data Centers......Page 277
18.2.3 Convergence of private and public clouds......Page 278
18.2.4 Generalized ‘cloud’ services......Page 279
References......Page 282
Index......Page 287