加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 云应用集成的N种成功模式(Richard)

云应用集成的N种成功模式(Richard).pdf

云应用集成的N种成功模式(Richard)

zjznet
2011-10-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《云应用集成的N种成功模式(Richard)pdf》,可适用于IT/计算机领域

Thanksforhavingme…Forme…someinterestingcloudintegrationsuitestoinvestigatefurther…http:wwwsnaplogiccomwhatwedointegrationplatformsnapcenterphphttp:integrationpervasivecomUsageScenariosApplicationIntegrationCloudIntegrationaspxhttp:wwwboomicomresourceswhitepapersWhoIam…Wherearewe•Increasedpopularitytowardsusingpackagedsoftwareasaserviceorbuildingappsincloudplatforms•Morethanpercentoforganizationsexpecttomaintainorincreasetheirinvestmentsinsoftwareasaservice(SaaS)andmorethanonethirdhavemigrationprojectsunderwayfromonpremisestoSaaS,accordingtoasurveybyGartner,Inc•Currently,communications(percent),utilities(percent),andbankingandsecurities(percent)industriesrankhighestwithrespecttoSaaSdeployedacrossthehorizontalandverticalspecificcategoriessampledIn,thoseindustriesrankinghighestwithrespecttotheirplanstouseSaaSincludefederalgovernment(percent),bankingandsecurities(percent)andwholesaletrade(percent)Beyond,topindustriesconsideringSaaSaremanufacturingandnaturalresources(percent),wholesaletradeandretail(eachpercent)What’stheproblem•SaaSnotreallybuiltwithdataexchangeinmind•InformationWeeksurvey(http:wwwinformationweekcomnewscloudcomputingsoftwarequeryText=SaaSIntegration)ofSaaSsatisfactionareasshowed“easeofdeployment”#andintegrationlast•Easytoseetheseas“offsite”andeitherdolimitedintegration,or,irregularbatchloads•Threescenarios:onpremisetocloud,cloudtoonpremise,andcloudtocloud•Eachhaveuniquechallenges,buteacharevaluableandnecessaryscenarioswheredowewanttobe•Therearetriedandtrueintegrationstylesforsharingdataprocessesbetweensystems•We’retakingthatreliablechassisandapplyingittonewtechnologieshowdowegetthereAseminalbookonthetopicistheEIPbookbyHohpeandWoolfDiscussesahandfulofcommunicationstylesandintegrationpatternsWe’llfocusonthreethatarecalledoutthere:•Shareddatabase•Remoteprocedureinvocation•MessagingasyncForeachpattern…•Defineit•Whenitmakessense•Constraints•Cloudconsiderations•Cloudtechnologies•DemoWhenitmakessense…•SharingviaETLorfileisn’ttimely•Whatifyouneedthelatestdata•Couldbeforreporting,referencedataortransactions•Usewhenyouhavecommondata(andorstructure)butdifferentCONSUMINGinterfaces•ThinkofmultitenantappswhereyoushareaDB,butpartitionbyuser•CouldbeanODSordatamartwhereyouwantcommonschemausedbyothers•Getasingleviewofthedata(noneedtoforceeachendtodefineadataformat)•Alldependentsystemsareconsistentatthesametime•Singledataaccessstrategy(SQLsyntax)Challenges•**Design**•Toughtoagreeonformats(forODS,mart,transactionalrecords)•UnifiedschemathatsatisfieseveryoneCommodityonly,or,strongleadershiptoformastandard(orextensibility)•**ContentionPerformance**•Lesslikelytousewhenhavemultipleappsmanipulatingsametransactionaldata•Couldhavedatarecordsdefinedwhereyoucouldchangepartsofonerecordwhilesomeonechangespartsofothers•Maygetfewerinconsistencies,butstillhaveissuesofsimultaneousupdates•Cantrytohandlewithtransactions,buttransactionsareoftentheenemyofscalability•http:wwwicsuciedu~cspaperscidrppdf•Trytoavoidupdatesconflictsbetweenapplicationssharingthedata•Newrowsonly,orreadonly(reportingscenario,orreferencedata)•Avoiddeadlocks•CouldgetpoorperformanceifappsaredistributedandallaccessingoverWAN•**COTSsupport**•Packagedappsrarelyacceptanexternaldatabaseasitssource•Oppositeof“Sharednothing”wherenodesareselfsufficienthttp:enwikipediaorgwikiSharednothingarchitecture•Maymeanshardinghttp:wwwcodefuturescomdatabaseshardingCloudConsiderations•**Accessprotocols**•CloudprovideseitherDBorwebprotocolaccess•Havechoicesastohowtoaccess•Ifremediatingexistingapps,maywanttheoptionofusing“standard”ODBCAPIsandnothavetochangemuchcode•Fornewer(orrebuilt)apps,manyservicesprovideaRESTfulAPIfordataaccess•**Identity**•Identityproviders•Ifshared,howdoyouapplygranularaccess•**Performance**•Mayhavegoodperformance•Shardingbuiltintomostofthese(splitbasedondomainsgroups)•Insomecaseshaveeventualconsistentreads,butSimpleDBsupportsoptiontohaveconsistentreadshttp:awsamazoncomarticlesencoding=jiveRedirect=•ConditionalPUTandDELETEwithexpectedvalues(topreventoverwritingfresherdata)•CanstilldoeventuallyconsistentreadandtrusttheConditionalstoenforceconsistency•CoulduseversionortimestampvalueaspartofConditional•**DifferentDBstorageoptions**•CouldusecloudRDMSifyoudon’thavemassivescaleneeds•CanuseaschemalessproductlikeSimpleDB•**Providerlimits**•WritesarethrottledtoSimpleDB,socanuseshardeddomainsifexpectmorethanXYZputssecond(dobatch)•http:practicalcloudcomputingcompostsimpledbessentialsforhighperformanceuserspart•Mayhavelimitedtransactions•AcrosstablesentitiesforschemalesslikeAzuretables•**Options**•DBs•StructuredRDMS•AmazonRDS•SQLAzure•Databasecom•DatabasehostedonIaaSplatformlikeAWS•Schemaless•SimpleDB•AzureTables•GoogleAppEngineDataStorehttp:codegooglecomappenginedocspythondatastoreoverviewhtml•Optimisticconcurrency•Distributesdatawhennecessary•Limitsinnumberofcallsperminute•Blobs•S•AzureBlobStorageDemo•Slideshows“beforeandafter”•Demostart…•ShowdbvaluesfromVSShowIAMandcredentialsspecifictoauseraccount•NETapp•RetrieveitemsOpenappanddon’tputcustomerIDinthenputjusttheaccountin•CloudFoundry•RubyappwhereIquerythedatabaseviaRESTafterbuildingsignedstring•http:serotercloudintegrationcloudfoundrycomlookup•http:serotercloudintegrationcloudfoundrycomlookup•ShowRubyclassVMCtoshowrunningappinstances•SFDC•CustomcodethatlooksatsharedDB•https:cnavisualforcecomapexInteractionHistoryid=AYNPe()•https:cnavisualforcecomapexInteractionHistoryid=AYycD()•ShowSFDCcode•NETapp•AddnewitemRefreshSDFCandCloudFoundryappsCanviewmyAmazonWebServices(AWS)SimpleDBcontentviaVisualStudiopluginNoticethatIhavefourrowsofdatafortwodifferentcustomersIcanalsodogranularrolebasedpermissionsinAWSandrestrictwhocancreateupdatereaddataIbuiltaclientapplicationthatpullsalltheinteractionsfromAWSSimpleDBforagivenuserI’vealsobuiltaRubywebapplicationhostedinVMWare’spublicprivatecloudcalledCloudFoundryMyCloudFoundryRubycodeconsumestheAWSSimpleDBdataviawebservicesYoucanseehowmanyinstancesofmywebapparedeployedintheVMWarecloudWithonecommand,I*instantly*jumptotwoinstancesImmediatelyloadbalancedIcanthen*instantly*movebacktoasingleinstanceI’mnowinmySalesforcecomaccountwhereIbuiltacustompagetopullSimpleDBdataByclickingthebuttononmypage,IretrievedalltheinteractionsforthisSalesforcecomcustomerMycodeshowthatIconsumetheAWSSimpleDBserviceinaverysimilarwaytoCloudFoundryappWithinmyonpremisesapp,IaddedanewrecordtomySimpleDBdatabaseThatrowisnowimmediatelyvisibleinSalesforcecom…andwithinmyCloudFoundryapp!Whenitmakessense…•Havemultipleapps,builtindependentlyanddataprocessesneedtobeshared•Justsharingdatanotalwaysenoughprocesses,workflowstoo•Datastayswithit’ssource•SOA–businessservicesthatinitiateactionbasedoninvocation•Encapsulationthathidesinternals•Hideunderlyingchanges•Canberesponsivetonecessarychangesvsgettingeveryoneonboardwith(shared)databasechanges•Abstractiongivesyoucoarsefunctionsinsteadofgranularfunctioncalls•Interoperability•RelyonHTTPandXMLJSON•Reusability•Veryfamiliarpatternfordevelopers(requestresponse)•Goodforfinegrainedfunctionsandmashupservices•Wantdatabeforemovingtonextstep•Oftendon’tneedguaranteeddeliveryorabrokersinceyoucanjustretrytherequestChallenges•**Coupling**•Notasbadasusingashareddatabase•Stillhaverelativelytightcoupling•Hardtochangeonepiece•**SecurityCapabilitygaps**•Havetosupportawidervarietyofcapabilitiesbyserviceproviders•Lackofuniformsecuritystrategies,inconsistentsupportfortransactions•Dependsonprotocolsthatcanbeconsumed•**Locking**•Blockingcallforthesender•Receiverprocessesexceptions(proandcon)•**Maybetransientdata**•Ifastraightlookupwithoutpersistence…notavailableforreports,workflowsetc•**COTSsupport**•ManyCOTSsystemsdon’tnativelyexposetheircapabilitiesasservices•Somehavegottenbetter,butyoustillseehypergranularorabstractservicesexposedbyleadingvendorsCloudConsiderations•**Security**•Howdoyouconsumeonsiteservices•Howfederatewhendoingcloudtocloud•**Latency**•Mayrequiredoublehopifwefirstgetatokenandthenmakeactualrequest•Giventhatthisisablockingcall,mayneedtouseAJAXdesign•**Access**•Mayrequirespecificprotocols(HTTP)•NotgoingtoseebroadsupportforDBspecificprotocols•**Option**•Cloudtoonpremises•CoulduseinternetfacingproxyservicethatforwardsrequesttobackendsystemDB•CoulduseVPNbetweencallerandtargetsystem•ReliesoncloudappthatsupportsVPN•AmazonVPC,GoogleDataConnector,AzureConnect•CoulduseWindowsAzureAppFabricforcloudbasedrelayservice(notdurable)•Cloudtocloud•LeveragewebservicesonbothsidesUwithcloudintegrationproviderDemo•Showonpremiseservice•RESTcontract•Implementation•Showwhatmakesit“cloudy”•Cloudbindings•Startservice•Showinregistry•http:richardseroterservicebuswindowsnet•https:cnavisualforcecomapexDiscountLookupid=AYBXC•ShowSFDCcall(withtokenforsecurity)•Callservice•CallservicefromaccountwithdifferentIDI’vebuiltacustomWCFservicethatusesaRESTful(vsSOAP)webservicestrategyTheimplementationofthisservicesimplysaysiftheuserIDis,thediscountisOtherwise,ThisserviceconnectstoWindowsAzureAppFabricviathisconfigurationWhatthisdoesiscreateasecure,twowaytunneltotheMicrosoftcloudMessagessenttohttp:richardseroterservicebuswindowsnetDiscountServicewillget“relayed”tomyonpremiseswebservice!Istartupmyonpremisesservice,whichinitiatesthebindingtothecloudIcanseemyonpremisesserviceexposedinmycloudregistryBecauseIhaveturnedoffcallersecurity,IcantestmyserviceusinganybrowserNotethatIgetadifferentvaluewhenIuseacustomerIDbesidesWithinSalesforcecom,Ihaveacustompagewhichconsumesthecloudrelayserviceandexecutesmyonpremisebusinesslogicinrealtime!ForadifferentaccountID(besides),adifferentdiscountrateisreturnedBehindthescenes,thiscodeconnectstotherelayserviceandoptionallypassesinasecuritytokenWhenitmakessense…•Sharedatabetweensystemsinaresponsiveandscalableway•Callerdoesn’thavetowait•Thinkofsendinganemailitdoesn’tblockOutlookuntilyourrecipientgetsit•Wanttodobroadcast(pubsub)ormulticast(definedrecipients)•Callerdoesn’tneedtocarewhereitgoes•Supportsdisconnectedapplications(notonlineatthesametime)•Havemultiplereplicableunits(busscenario)Challenges•**Notrealtimesynchronization**•Inherentlyincludeseventualconsistency•Nosimultaneousorinstantupdates•**Mayneeddurabilityreliability**•Withoutdurabilityinthemiddle,standthechancetolosedata•Aroutercanbeusedifyouwanttodirectthemessagestoplacesunknowntothecaller•Routercanalsodoactivitieslikedatatransformation,protocolbridging,orworkflow•Idempotenceneededinmanycases•Datasharedmytellreceivingsystemtogogetdata(handledupesok)•**Appsupportforreceivingorsendingasyncmessages**•FewapplicationsnativelysharedataasynchronouslyCloudConsiderations•**Appsupport**•Seemsevenfewercloudappsshareorreceiveasync•**Security**•Maystillneedtopokeaholeinthefirewall•**Providerlimits**•Cloudvendorlimitsonpolling(egSFDC)•Maywanttoputlotsintoqueueand“peek”toretrievedeleteonlycertainones•Distributednatureofcloudarchcouldresultinunexpected(lack)ofdata•Distributedqueuesmaynotreturnallitemsoneachpoll(machinesampleviaAmazon)•**Options**•SomeSaaSplatformsbakeinasyncpush(egsalesforcecom)•Couldleverageacloudqueuethateveryonetalksto•Orothercloudbroker(DB,messagerouter)•Couldworkforbothcloudtocloudorbetweencloudandonpremises(bothways)Demo•ShowqueueonAWSconsole•ShowCFcallthatputsstuffintoqueue•ShowqueueinAWSconsole•CallPullfromonpremisesclient•Doretrieveplusdelete•NowemptyifyoulookatAWSconsole•GotoSFDC•Havecodethatcancall“poller”everyhourandupdateSFDCbycreatinga“case”•Showpollerinterface•https:cnavisualforcecomapexCaseView•Canalsotriggermanuallyandcheckqueueandcreate“case”•SeeAWSqueueisnowemptyIhaveanAWSSimpleQueueService(SQS)queuecreatedWithinmyCloudFoundryapp,IbuildupmyrequesttoSQSandaddamessagetothequeueInthisCloudFoundryapp,Isend“feedback”messagesfromwebsitestoaqueuewhereeitheranonpremisesapplication,orothercloudapp,canreadthemAmessagehasbeenaddedtothequeueIcanseethatmyqueuehasamessageinitWithinmyonpremisesapp,Icanretrieveandthendeletethatmessage(sothatotherqueuereadersdon’tgetit)MyqueueisnowemptyIsentanothermessageforadifferentcustomerMyqueuenowhasonemessageWithinSalesforcecom,Ihaveacustompagewhichqueriesthequeue,andifitfindsanything,itcreatesanew“case”inthesystemIcanalsoschedulethis“queuequery”torunonscheduledintervalsforamorerealtimedataexchangeInsteadofdoingbulkintegrationeveryday,wecouldsendmessagestothequeueandhavethemloadedintoSalesforcecomeveryhourorsoHereismyjobscheduledtoruneveryhourSinceI’mimpatient,IcanalsoclickthebuttonthepagetolookforqueuemessagesHere,themessagewesentfromCloudFoundryshowsupasacaseinSalesforcecomThequeueisnowempty

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

云应用集成的N种成功模式(Richard)

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利