Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
De största fördelarna med Orleans är:
- Utvecklarproduktivitet: Även för programmerare som inte är experter.
- Transparent skalbarhet som standard: Kräver ingen särskild ansträngning från utvecklaren.
Utvecklarnas produktivitet
Programmeringsmodellen Orleans ökar produktiviteten, oavsett kompetensnivå, genom att tillhandahålla följande viktiga abstraktioner, garantier och systemtjänster.
Välbekanta objektorienterade programmeringsparadigm (OOP)
Korn är .NET-klasser som implementerar deklarerade .NET-korngränssnitt med asynkrona metoder. Korn visas som fjärrobjekt vars metoder kan anropas direkt. Detta ger det välbekanta OOP-paradigmet genom att omvandla metodanrop till meddelanden, dirigera dem till rätt slutpunkter, anropa målenhetens metoder och transparent hantera fel och hörnfall.
Entrådad körning av korn
Körningen garanterar att ett korn aldrig körs på fler än en tråd i taget. Tillsammans med isolering från andra korn möter utvecklare aldrig samtidighet på kornnivå och behöver aldrig lås eller andra synkroniseringsmekanismer för att kontrollera åtkomsten till delade data. Enbart den här funktionen gör det lätt att utveckla distribuerade program, även för programmerare som inte är experter.
Transparent aktivering
Körmiljön aktiverar endast ett kornobjekt när det finns ett meddelande som det ska bearbeta. Detta separerar rent skapandet av en kornreferens (styrs av programkod) och fysisk aktivering av kornet i minnet (transparent för programmet). Detta liknar virtuellt minne där operativsystemet bestämmer när sidor ska tas till minne och när sidor ska tas bort från minnet. På samma sätt bestämmer körningen i Orleansnär du ska aktivera ett korn (föra in det i minnet) och när du ska inaktivera ett korn (avlägsna det från minnet). Programmet har oavbruten åtkomst till det fullständiga "minnesutrymmet" för logiskt skapade korn, oavsett om de finns i fysiskt minne vid en viss tidpunkt.
Transparent aktivering möjliggör dynamisk, anpassningsbar belastningsutjämning via placering och migrering av korn i poolen med maskinvaruresurser. Den här funktionen förbättrar avsevärt den traditionella aktörsmodellen, där aktörens livslängd är programhanterad.
Platstransparens
En kornreferens (proxyobjekt) som används för att anropa ett korns metoder eller skicka till andra komponenter innehåller endast kornets logiska identitet. Programkörningstiden Orleans hanterar transparent översättning av kornets logiska identitet till dess fysiska plats och dirigerar meddelanden i enlighet därmed.
Programkoden kommunicerar med korn utan att känna till deras fysiska plats. Den här lokaliseringen kan ändras över tid på grund av fel, resurshantering eller eftersom en process inaktiveras när den anropas.
Transparent integrering med ett beständigt lager
Orleans tillåter deklarativ mappning av ett korns minnesinterna tillstånd till ett beständigt lager. Den synkroniserar uppdateringar och garanterar öppet att anropare får resultat först efter att det beständiga tillståndet har uppdaterats. Det är enkelt att utöka och/eller anpassa uppsättningen befintliga beständiga lagringsproviders.
Automatisk spridning av fel
Körtiden vidarebefordrar automatiskt ohanterade fel uppför anropningskedjan med semantiken av asynkrona och distribuerade try/catch-mekanismer. Det innebär att fel inte går förlorade i ett program. Detta gör det möjligt att placera felhanteringslogik på lämpliga platser utan det omständliga arbetet med att manuellt sprida fel på varje nivå.
Transparent skalbarhet som standard
Programmeringsmodellen Orleans vägleder utvecklare mot att framgångsrikt skala program eller tjänster genom flera storleksordningar. Detta uppnås genom att använda beprövade metodtips och mönster och tillhandahålla en effektiv implementering av systemfunktioner på lägre nivå.
Här är några viktiga faktorer som möjliggör skalbarhet och prestanda:
Implicit detaljerad partitionering av programtillstånd
Användning av korn som direkt adresserbara entiteter delar implicit upp programmets övergripande tillstånd. Orleans Programmeringsmodellen föreskriver inte kornstorlek, men i de flesta fall är det rimligt att ha ett relativt stort antal korn (miljoner eller mer), där var och en representerar en naturlig programentitet, till exempel ett användarkonto eller en inköpsorder.
Med korn som är individuellt adresserbara och vars fysiska plats är abstraherad av körningsmiljön, har Orleans enorm flexibilitet att balansera belastning och hantera hot spots på ett transparent och generiskt sätt, utan att programutvecklaren behöver tänka på det.
Anpassningsbar resurshantering
Korn antar inte de andra kornens lokalitet när de interagerar. På grund av platsoberoendet kan körtiden dynamiskt hantera och justera tilldelningen av tillgängliga maskinvaruresurser. Körmiljön uppnår detta genom att fatta finfördelade beslut om att placera och migrera komponenter över beräkningsklustret i reaktion på belastnings- och kommunikationsmönster — utan att misslyckas med att hantera inkommande begäranden. Genom att skapa flera repliker av en specifik komponent kan körmiljön öka genomströmningen utan att ändra programkoden.
Multiplexerad kommunikation
Korn i Orleans har logiska slutpunkter, och meddelanden bland dem multiplexeras över en fast uppsättning fysiska anslutningar (TCP-socketar). Detta möjliggör att körmiljön kan vara värd för miljontals adresserbara entiteter med låg OS-omkostnad per aktör. Dessutom medför aktivering och inaktivering av ett korn inte kostnaden för att registrera/avregistrera en fysisk slutpunkt (t.ex. en TCP-port eller HTTP-URL) eller ens stänga en TCP-anslutning.
Effektiv schemaläggning
Körningen schemalägger körningen av många enkeltrådade korn med hjälp av .NET-trådpoolen, som är mycket optimerad för prestanda. När grain-kod skrivs i icke-blockerande stil baserad på fortsättningar (ett krav i programmeringsmodellen Orleans ) körs applikationskoden mycket effektivt på ett "samarbetsbaserat" flervägstrådat sätt utan tävlan. Detta gör att systemet kan uppnå högt dataflöde och köras med mycket hög CPU-användning (upp till 90%+) med stor stabilitet.
Det faktum att tillväxt i antalet korn och ökad belastning inte leder till ytterligare trådar eller andra OPERATIVSYSTEM-primitiver hjälper skalbarheten för enskilda noder och hela systemet.
Explicit asynkron
Programmeringsmodellen Orleans gör de distribuerade programmens asynkrona karaktär explicit och hjälper utvecklare att skriva icke-blockerande asynkron kod. I kombination med asynkrona meddelanden och effektiv schemaläggning möjliggör detta en stor grad av distribuerad parallellitet och övergripande dataflöde utan att det krävs explicit multitrådning.