This page intentionally left blank E C C NTERPRISE LOUD OMPUTING Technology, Architecture, Applications Cloud computing promises to revolutionize IT and business by making computing available as a utility over the internet. This book is intended pri- marily for practicing 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 tech- nologies,anddiscusseshowthesewillchangethewayenterpriseapplications shouldbearchitectedforclouddeployment. Gautam Shroff provides a technical description of cloud computing tech- nologies, covering cloud infrastructure and platform services, programming paradigmssuchasMapReduce,aswellas‘do-it-yourself’hosteddevelopment tools. He also describes emerging technologies critical to cloud computing. Thebookalsocoversthefundamentalsofenterprisecomputing,includinga technicalintroductiontoenterprisearchitecture,soitwillinterestprogram- mers aspiring to become software architects and serve as a reference for a graduate-levelcourseinsoftwarearchitectureorsoftwareengineering. GautamShroffheadsTCS’InnovationLabinDelhi,acorporateR&Dlabthat conductsappliedresearchinsoftwarearchitecture,naturallanguageprocess- ing, data mining, multimedia, graphics and computer vision. Additionally he is responsible for TCS’ Global Co-Innovation Network (COIN), which works with venture-backed emerging technology companies to create and taketomarketsolutionsthathavedisruptiveinnovationpotential.Further,as amemberofTCS’CorporateTechnologyBoard,heispartoftheprocessofrec- ommending directions to existing R&D efforts, spawning new R&D efforts, sponsoring external research and proliferating the resulting technology and intellectualpropertyacrossTCS’businesses. E C NTERPRISE LOUD C OMPUTING T A ECHNOLOGY, RCHITECTURE, A PPLICATIONS G S AUTAM HROFF CAMBRIDGEUNIVERSITYPRESS Cambridge,NewYork,Melbourne,Madrid,CapeTown,Singapore, SãoPaulo,Delhi,Dubai,Tokyo,MexicoCity CambridgeUniversityPress TheEdinburghBuilding,CambridgeCB28RU,UK PublishedintheUnitedStatesofAmericabyCambridgeUniversityPress,NewYork www.cambridge.org Informationonthistitle:www.cambridge.org/9780521760959 ©G.Shroff2010 Thispublicationisincopyright.Subjecttostatutoryexception andtotheprovisionsofrelevantcollectivelicensingagreements, noreproductionofanypartmaytakeplacewithoutthewritten permissionofCambridgeUniversityPress. Firstpublished2010 PrintedintheUnitedKingdomattheUniversityPress,Cambridge AcatalogrecordforthispublicationisavailablefromtheBritishLibrary ISBN978-0-521-76095-9Hardback ISBN978-0-521-13735-5Paperback CambridgeUniversityPresshasnoresponsibilityforthepersistenceor accuracyofURLsforexternalorthird-partyinternetwebsitesreferredtoin thispublication,anddoesnotguaranteethatanycontentonsuchwebsitesis, orwillremain,accurateorappropriate. Contents Preface page xi List of abbreviations xiv Part I Computing platforms 1 Chapter1 Enterprise computing: a retrospective 3 1.1 Introduction 3 1.2 Mainframearchitecture 5 1.3 Client-serverarchitecture 7 1.4 3-tierarchitectureswithTPmonitors 10 Chapter2 The internet as a platform 16 2.1 Internettechnologyandweb-enabledapplications 16 2.2 Webapplicationservers 19 2.3 Internetofservices 22 Chapter3 Software as a service and cloud computing 27 3.1 Emergenceofsoftwareasaservice 27 3.2 SuccessfulSaaSarchitectures 29 v vi CONTENTS 3.3 Dev2.0platforms 31 3.4 Cloudcomputing 32 3.5 Dev2.0inthecloudforenterprises 36 Chapter4 Enterprise architecture: role and evolution 39 4.1 Enterprisedataandprocesses 40 4.2 Enterprisecomponents 40 4.3 ApplicationintegrationandSOA 42 4.4 Enterprisetechnicalarchitecture 44 4.5 Datacenterinfrastructure:copingwithcomplexity 47 Part II Cloud platforms 49 Chapter5 Cloud computing platforms 51 5.1 Infrastructureasaservice:AmazonEC2 51 5.2 Platformasaservice:GoogleAppEngine 56 5.3 MicrosoftAzure 60 Chapter6 Cloud computing economics 64 6.1 Iscloudinfrastructurecheaper? 64 6.2 Economicsofprivateclouds 67 6.3 Softwareproductivityinthecloud 71 6.4 Economiesofscale:publicvs.privateclouds 73 Part III Cloud technologies 75 Chapter7 Web services, AJAX and mashups 77 7.1 Webservices:SOAPandREST 77 7.2 SOAPversusREST 83 7.3 AJAX:asynchronous‘rich’interfaces 85 7.4 Mashups:userinterfaceservices 87 CONTENTS vii Chapter8 Virtualization technology 89 8.1 Virtualmachinetechnology 89 8.2 Virtualizationapplicationsinenterprises 95 8.3 Pitfallsofvirtualization 103 Chapter9 Multi-tenant software 104 9.1 Multi-entitysupport 105 9.2 Multi-schemaapproach 107 9.3 Multi-tenancyusingclouddatastores 109 9.4 Dataaccesscontrolforenterpriseapplications 111 Part IV Cloud development 115 Chapter10 Data in the cloud 117 10.1Relationaldatabases 118 10.2Cloudfilesystems:GFSandHDFS 121 10.3BigTable,HBaseandDynamo 123 10.4Clouddatastores:DatastoreandSimpleDB 128 Chapter11 MapReduce and extensions 131 11.1Parallelcomputing 131 11.2TheMapReducemodel 134 11.3ParallelefficiencyofMapReduce 137 11.4RelationaloperationsusingMapReduce 139 11.5EnterprisebatchprocessingusingMapReduce 142 Chapter12 Dev 2.0 platforms 144 12.1Salesforce.com’sForce.complatform 145 12.2TCSInstantAppsonAmazoncloud 148 viii CONTENTS 12.3MoreDev2.0platformsandrelatedefforts 153 12.4Advantages,applicabilityandlimitsofDev2.0 154 Part V Software architecture 159 Chapter13 Enterprise software: ERP, SCM, CRM 161 13.1Anatomyofalargeenterprise 161 13.2Partners:peopleandorganizations 164 13.3Products 167 13.4Orders:salesandpurchases 168 13.5Execution:trackingwork 170 13.6Billing 172 13.7Accounting 174 13.8Enterpriseprocesses,buildvs.buyandSaaS 176 Chapter14 Custom enterprise applications and Dev 2.0 178 14.1Softwarearchitectureforenterprisecomponents 178 14.2Userinterfacepatternsandbasictransactions 180 14.3Businesslogicandrule-basedcomputing 188 14.4InsideDev2.0:modeldriveninterpreters 194 14.5Security,errorhandling,transactionsandworkflow 198 Chapter15 Workflow and business processes 203 15.1Implementingworkflowinanapplication 203 15.2Workflowmeta-modelusingECArules 205 15.3ECAworkflowengine 207 15.4Usinganexternalworkflowengine 210 15.5ProcessmodelingandBPMN 211 15.6Workflowinthecloud 216
Description: