云应用集成的N种成功模式(Richard)_第1页
云应用集成的N种成功模式(Richard)_第2页
云应用集成的N种成功模式(Richard)_第3页
云应用集成的N种成功模式(Richard)_第4页
云应用集成的N种成功模式(Richard)_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1

Thanksforhavingme…

Forme…someinterestingcloudintegrationsuitestoinvestigatefurther…

/what

-

we

-

do/integration

-

platform/snapcenter.php

/UsageScenarios/ApplicationIntegration/CloudIntegrat

ion.aspx

/resources/whitepapers

2

WhoIam…

3

[Wherearewe]

•Increasedpopularitytowardsusingpackagedsoftwareasaserviceorbuildingappsincloudplatforms

•Morethan95percentoforganizationsexpecttomaintainorincreasetheirinvestmentsinsoftwareasaservice(SaaS)andmorethanone-thirdhavemigrationprojectsunderwayfromon-premisestoSaaS,accordingtoasurveybyGartner,Inc.

•Currently,communications(52percent),utilities(51percent),andbankingandsecurities(49percent)industriesrankhighestwithrespecttoSaaSdeployedacrossthehorizontalandvertical-specificcategoriessampled.In2012,thoseindustriesrankinghighestwithrespecttotheirplanstouseSaaSincludefederalgovernment(33percent),bankingandsecurities(22percent)andwholesaletrade(20percent).Beyond2012,topindustriesconsideringSaaSaremanufacturingandnaturalresources(37percent),wholesaletradeandretail(each29percent).

4

[What’stheproblem?]

•SaaSnotreallybuiltwithdataexchangeinmind

•InformationWeeksurvey(

/news/cloud

-

computing/software/231002362?queryText=SaaS+Integration

)ofSaaSsatisfactionareasshowed“easeofdeployment”#1andintegrationlast

•Easytoseetheseas“offsite”andeitherdolimitedintegration,or,irregularbatchloads

•Threescenarios:on-premisetocloud,cloudtoon-premise,andcloudtocloud

•Eachhaveuniquechallenges,buteacharevaluableandnecessaryscenarios

5

[wheredowewanttobe?]

•Therearetriedandtrueintegrationstylesforsharingdata/processesbetweensystems

•We’retakingthatreliablechassisandapplyingittonewtechnologies

6

[howdowegetthere?]

AseminalbookonthetopicistheEIPbookbyHohpeandWoolf

Discussesahandfulofcommunicationstylesandintegrationpatterns.We’llfocusonthreethatarecalledoutthere:

•Shareddatabase

•Remoteprocedureinvocation

•Messaging/async

Foreachpattern…

•Defineit

•Whenitmakessense

•Constraints

•Cloudconsiderations

•Cloudtechnologies

•Demo

7

Whenitmakessense…

•SharingviaETLorfileisn’ttimely

•Whatifyouneedthelatestdata?

•Couldbeforreporting,referencedataortransactions

•Usewhenyouhavecommondata(and/orstructure)butdifferentCONSUMINGinterfaces

•Thinkofmulti-tenantappswhereyoushareaDB,butpartitionbyuser

•CouldbeanODSordatamartwhereyouwantcommonschemausedbyothers

•Getasingleviewofthedata(noneedtoforceeachendtodefineadataformat)

•Alldependentsystemsareconsistentatthesametime

•Singledataaccessstrategy(SQLsyntax)

8

Challenges

•**Design**

•Toughtoagreeonformats(forODS,mart,transactionalrecords)

•Unifiedschemathatsatisfieseveryone?Commodityonly,or,strongleadershiptoformastandard(orextensibility)

•**Contention/Performance**

•Lesslikelytousewhenhavemultipleappsmanipulatingsametransactionaldata

•Couldhavedatarecordsdefinedwhereyoucouldchangepartsofonerecordwhilesomeonechangespartsofothers

•Maygetfewerinconsistencies,butstillhaveissuesofsimultaneousupdates

•Cantrytohandlewithtransactions,buttransactionsareoftentheenemyofscalability

/~cs223/papers/cidr07p15.pdf

•Trytoavoidupdates/conflictsbetweenapplicationssharingthedata

•Newrowsonly,orreadonly(reportingscenario,orreferencedata)

•Avoiddeadlocks

•CouldgetpoorperformanceifappsaredistributedandallaccessingoverWAN

•**COTSsupport**

•Packagedappsrarelyacceptanexternaldatabaseasitssource

•Oppositeof“Sharednothing”wherenodesareselfsufficient

/wiki/Shared_nothing_architecture

•Maymeansharding

/database

-

sharding/

9

CloudConsiderations

•**Accessprotocols**

•CloudprovideseitherDBorwebprotocolaccess

•Havechoicesastohowtoaccess

•Ifremediatingexistingapps,maywanttheoptionofusing“standard”ODBCAPIsandnothavetochangemuchcode

•Fornewer(orrebuilt)apps,manyservicesprovideaRESTfulAPIfordataaccess

•**Identity**

•Identityproviders

•Ifshared,howdoyouapplygranularaccess?

•**Performance**

•Mayhavegoodperformance

•Shardingbuiltintomostofthese(splitbasedondomains/groups)

•Insomecaseshaveeventualconsistentreads,butSimpleDBsupportsoption

tohaveconsistentreads

/articles/3572?_encoding=UTF8&jiveRedirect=1

•ConditionalPUTandDELETEwithexpectedvalues(topreventoverwritingfresherdata)

•CanstilldoeventuallyconsistentreadandtrusttheConditionalstoenforceconsistency

•CoulduseversionortimestampvalueaspartofConditional

9

•**DifferentDBstorageoptions**

•CouldusecloudRDMSifyoudon’thavemassivescaleneeds

•Canuseaschema-lessproductlikeSimpleDB

•**Providerlimits**

•WritesarethrottledtoSimpleDB,socanuseshardeddomainsifexpectmorethanXYZputs/second(dobatch)

/post/712653349/simpledb

-

essentials

-

for

-

high

-

performance

-

users

-

part

-

1

•Mayhavelimitedtransactions

•Acrosstables/entitiesforschema-lesslikeAzuretables

•**Options**

•DBs

•StructuredRDMS

•AmazonRDS

•SQLAzure

•D

•DatabasehostedonIaaSplatformlikeAWS

•Schema-less

•SimpleDB

•AzureTables

•GoogleAppEngineDataStore

/appengine/docs/python/datastore/overview.

html

•Optimisticconcurrency

•Distributesdatawhennecessary

•Limitsinnumberofcallsperminute

•Blobs

•S3

•AzureBlobStorage

10

Demo

•Slideshows“beforeandafter”

•Demostart…

•ShowdbvaluesfromVS2010;ShowIAMandcredentialsspecifictoauseraccount

•.NETapp

•Retrieveitems;Openappanddon’tputcustomerIDin;thenputjustthe

30010accountin

•CloudFoundry

•RubyappwhereIquerythedatabaseviaRESTafterbuildingsignedstring

http://seroter

-

/lookup/30010

http://seroter

-

/lookup/30014

•ShowRubyclass;VMCtoshowrunningappinstances

•SFDC

•CustomcodethatlooksatsharedDB

/apex/InteractionHistory?id=003A0000001YN

Pe

(30010)

/apex/InteractionHistory?id=003A0000001Yy

cD

(30014)

•ShowSFDCcode

•.NETapp

•Addnewitem;RefreshSDFCandCloudFoundryapps

11

CanviewmyAmazonWebServices(AWS)SimpleDBcontentviaVisualStudio2010plugin.NoticethatIhavefourrowsofdatafortwodifferentcustomers.

12

Icanalsodogranularrole-basedpermissionsinAWSandrestrictwhocan

create/update/readdata

13

IbuiltaclientapplicationthatpullsalltheinteractionsfromAWSSimpleDBforagivenuser

14

I’vealsobuiltaRubywebapplicationhostedinVMWare’spublic/privatecloudcalledCloudFoundry

15

MyCloudFoundryRubycodeconsumestheAWSSimpleDBdataviawebservices

16

YoucanseehowmanyinstancesofmywebapparedeployedintheVMWarecloud

17

Withonecommand,I*instantly*jumptotwoinstances.Immediatelyloadbalanced.

18

Icanthen*instantly*movebacktoasingleinstance.

19

I’mnowinmySaccountwhereIbuiltacustompagetopullSimpleDBdata

20

Byclickingthebuttononmypage,Iretrievedalltheinteractionsforthis

Scustomer

21

MycodeshowthatIconsumetheAWSSimpleDBserviceinaverysimilarwaytoCloudFoundryapp

22

Withinmyon-premisesapp,IaddedanewrecordtomySimpleDBdatabase

23

ThatrowisnowimmediatelyvisibleinS

24

…andwithinmyCloudFoundryapp!

25

Whenitmakessense…

•Havemultipleapps,builtindependentlyanddata/processesneedtobeshared

•Justsharingdatanotalwaysenough;processes,workflowstoo

•Datastayswithit’ssource

•SOA–businessservicesthatinitiateactionbasedoninvocation

•Encapsulationthathidesinternals

•Hideunderlyingchanges

•Canberesponsivetonecessarychangesvs.gettingeveryoneonboardwith(shared)databasechanges

•Abstractiongivesyoucoarsefunctionsinsteadofgranularfunctioncalls

•Interoperability

•RelyonHTTPandXML/JSON

•Reusability

•Veryfamiliarpatternfordevelopers(request/response)

•Goodforfinegrainedfunctionsandmashupservices

•Wantdatabeforemovingtonextstep

•Oftendon’tneedguaranteeddeliveryorabrokersinceyoucanjustretrytherequest

26

Challenges

•**Coupling**

•Notasbadasusingashareddatabase

•Stillhaverelativelytightcoupling

•Hardtochangeonepiece

•**Security/Capabilitygaps**

•Havetosupportawidervarietyofcapabilitiesbyserviceproviders

•Lackofuniformsecuritystrategies,inconsistentsupportfortransactions

•Dependsonprotocolsthatcanbeconsumed

•**Locking**

•Blockingcallforthesender

•Receiverprocessesexceptions(proandcon)

•**Maybetransientdata**

•Ifastraightlookupwithoutpersistence…notavailableforreports,workflowsetc

•**COTSsupport**

•ManyCOTSsystemsdon’tnativelyexposetheircapabilitiesasservices

•Somehavegottenbetter,butyoustillseehyper-granularorabstractservicesexposedbyleadingvendors

27

CloudConsiderations

•**Security**

•Howdoyouconsumeonsiteservices?

•Howfederatewhendoingcloud-to-cloud

•**Latency**

•Mayrequiredoublehopifwefirstgetatokenandthenmakeactualrequest

•Giventhatthisisablockingcall,mayneedtouseAJAXdesign

•**Access**

•Mayrequirespecificprotocols(HTTP)

•NotgoingtoseebroadsupportforDB-specificprotocols

•**Option**

•Cloudtoon-premises

•Coulduseinternetfacingproxyservicethatforwardsrequesttoback-endsystem/DB

•CoulduseVPNbetweencallerandtargetsystem

•ReliesoncloudappthatsupportsVPN

•AmazonVPC,GoogleDataConnector,AzureConnect

•CoulduseWindowsAzureAppFabricforcloudbasedrelayservice(notdurable)

•Cloudtocloud

•Leveragewebservicesonbothsides;Uwithcloudintegrationprovider

28

Demo

•Showonpremiseservice

•RESTcontract

•Implementation

•Showwhatmakesit“cloudy”

•Cloudbindings

•Startservice

•Showinregistry

/apex/DiscountLookup?id=001A000000YBX3C

•ShowSFDCcall(withtokenforsecurity)

•Callservice

•CallservicefromaccountwithdifferentID

29

I’vebuiltacustomWCFservicethatusesaRESTful(vs.SOAP)webservicestrategy

30

TheimplementationofthisservicesimplysaysiftheuserIDis200,thediscountis10%.Otherwise,5%.

31

ThisserviceconnectstoWindowsAzureAppFabricviathisconfiguration.Whatthisdoesiscreateasecure,two-waytunneltotheMicrosoftcloud.

Messagessentto/DiscountServicewillget“relayed”tomyon-premiseswebservice!

32

Istartupmyon-premisesservice,whichinitiatesthebindingtothecloud

33

Icanseemyon-premisesserviceexposedinmycloudregistry

34

BecauseIhaveturnedoffcallersecurity,Icantestmyserviceusinganybrowser.

35

NotethatIgetadifferentvaluewhenIuseacustomerIDbesides200

36

WithinS,Ihaveacustompagewhichconsumesthecloudrelayserviceandexecutesmyon-premisebusinesslogicinrealtime!

37

ForadifferentaccountID(besides200),adifferentdiscountrateisreturned

38

Behindthescenes,thiscodeconnectstotherelayserviceandoptionallypassesinasecuritytoken.

39

Whenitmakessense…

•Sharedatabetweensystemsinaresponsiveandscalableway

•Callerdoesn’thavetowait

•Thinkofsendinganemail;itdoesn’tblockOutlookuntilyourrecipientgetsit

•Wanttodobroadcast(pub/sub)ormulticast(definedrecipients)

•Callerdoesn’tneedtocarewhereitgoes

•Supportsdisconnectedapplications(notonlineatthesametime)

•Havemultiplereplicableunits(busscenario)

40

Challenges

•**Notrealtimesynchronization**

•Inherentlyincludeseventualconsistency

•Nosimultaneousorinstantupdates

•**Mayneeddurability/reliability**

•Withoutdurabilityinthemiddle,standthechancetolosedata

•Aroutercanbeusedifyouwanttodirectthemessagestoplacesunknowntothecaller

•Routercanalsodoactivitieslikedatatransformation,protocolbridging,orworkflow

•Idempotenceneededinmanycases

•Datasharedmytellreceivingsystemtogogetdata(handledupesok)

•**Appsupportforreceivingorsendingasyncmessages**

•Fewapplicationsnativelysharedataasynchronously

41

CloudConsiderations

•**Appsupport**

•Seemsevenfewercloudappsshareorreceiveasync

•**Security**

•Maystillneedtopokeaholeinthefirewall

•**Providerlimits**

•Cloudvendorlimitsonpolling(e.g.SFDC)

•Maywanttoputlotsintoqueueand“peek”toretrieve/deleteonlycertainones

•Distributednatureofcloudarchcouldresultinunexpected(lack)ofdata

•Distributedqueuesmaynotreturnallitemsoneachpoll(machinesampleviaAmazon)

•**Options**

•SomeSaaSplatformsbakeinasyncpush(e.g.)

•Couldleverageacloudqueuethateveryonetalksto

•Orothercloudbroker(DB,messagerouter)

•Couldworkforbot

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论