云應(yīng)用集成的N種成功模式(Richard)_第1頁
云應(yīng)用集成的N種成功模式(Richard)_第2頁
云應(yīng)用集成的N種成功模式(Richard)_第3頁
云應(yīng)用集成的N種成功模式(Richard)_第4頁
云應(yīng)用集成的N種成功模式(Richard)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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”O(jiān)DBCAPIsandnothavetochangemuchcode

?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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論