Inzicht in de kwaliteit van diensten Eisen
Hier zijn een aantal belangrijke kwaliteit van diensten eisen die specifiek zijn voor Java EE. NET interoperabele toepassingen. Het is van cruciaal belang dat architecten en ontwikkelaars te nemen aan deze eisen in hun interoperabiliteit te ontwerpen of toe te voegen aan hun evaluatiecriteria voor hun Java EE. NET interoperabiliteit producten. Veiligheid is een ander belangrijk kenmerk van de kwaliteit van diensten eisen.
Betrouwbaarheid
Betrouwbaarheid voor Java EE. NET interoperabele toepassingen service nodig verzoeken of zakelijke gegevens uit een zender (zeg, een dienst verzoeker) in te dienen bij de geadresseerde (zeg, een service provider) met succes en accuraat. De doelstelling ontvanger moet in staat zijn om de ontvangst zo nodig te erkennen. De zakelijke gegevens moet worden nauwkeurig en zonder fouten. Succesvolle overdracht kan worden bereikt door het opnieuw verzenden van de dienst verzoeken en zakelijke gegevens totdat er een ontvangst bevestiging van de ontvanger of door aanhoudende ze in een betrouwbare gegevens op te slaan, zodat de beoogde ontvanger ze kan ophalen.
Betrouwbaarheid kan worden-centric producent of de consument-centric. In de producent-centric scenario, de afzender (producent) moet ervoor zorgen dat de beoogde ontvanger (consument) krijgt de zakelijke gegevens. Anders de afzender de zakelijke gegevens tot de beoogde ontvanger te verzenden stuurt een ontvangstbevestiging. Als het doel ontvanger offline of niet beschikbaar is, de afzender is verantwoordelijk voor het opnieuw verzenden van de zakelijke gegevens, wanneer de beoogde ontvanger dienst beschikbaar komt. In de consumenten-centric scenario, de doelgroep ontvanger (de consument) is verantwoordelijk voor het ophalen van de zakelijke gegevens van de afzender (producent). Dit vereist de afzender hoogst beschikbaar voor het ophalen van informatie.
De betrouwbaarheid capaciteit kan variëren afhankelijk van de gebruikte technologie interoperabiliteit. Bijvoorbeeld, als een IIOP brug wordt gebruikt, de brug moet zorgen voor de verbinding van de Java EE of. NET applicatie moet betrouwbaar zijn. Het moet in staat zijn om alle service verzoeken of zakelijke gegevens opnieuw te verzenden en ook voor alle activiteiten aanmelden voor de accountantscontrole bestaan. Als een SOAP-webservice gebaseerd is gebruikt, kunnen betrouwbare messaging worden bereikt door gebruik te maken van opkomende technologieën zoals Enterprise Service Bus, of de uitvoering met behulp van WS-Betrouwbaarheid, omdat de levering niet opnieuw zal worden verzonden door de messaging-infrastructuur.
In essentie is betrouwbaarheid voor Java EE. NET interoperabele toepassingen verwacht in verschillende lagen of niveaus in de applicatie-architectuur, met daarin het volgende:
-
Het onderliggende communicatie-mechanisme of gegevens transportlaag voor zowel Java en. NET-toepassingen moet betrouwbaar zijn.
-
Wanneer een zender uitwisseling sommige zakelijke gegevens met een ontvanger, moet de inhoud van de zakelijke gegevens betrouwbaar kunnen worden overgedragen. Bijvoorbeeld, als de zakelijke gegevens bevatten een data type van een grote hoeveelheid wetenschappelijk (bijvoorbeeld 23.1234567891 x 10-49) of een complex data type (bijvoorbeeld een aangepaste klant gehouden met gegevens object), moet de ontvanger ze letterlijk zonder alle data type conversie-of XML-codering fouten tussen Java en. NET-toepassingen.
-
Er moet een ontvangst bevestiging capaciteit voor de Java EE of. NET-toepassingen. Een van de gemeenschappelijke ontwerp-criteria is om de time-out op het bericht of de ontvangstbevestiging staat te stellen aanvragen te voorkomen wachten voor een langere periode van tijd.
-
Elke fout of uitzondering gegooid moeten betrouwbaar worden nagedacht over de andere kant. Bijvoorbeeld, als de ontvanger aanvraag gooit een runtime-uitzondering (bijvoorbeeld de SOAPFault uitzondering), moet de afzender in staat zijn de uitzondering betrouwbaar vangst voor adequate afhandeling van fouten, in plaats van de teruggooi of negeren van de fouten.
-
Er moet een mechanisme kappen aan beide uiteinden van de Java-en. NET applicaties voor audit-trail en voor de naleving van de rapportage doel.
-
Gegarandeerde levering is niet het enige kenmerk van betrouwbaarheid. Zodra-en-slechts-een keer (ook bekend als idempotence) verplichting kan ook gelden voor de QoS-vereisten, wat betekent dat het bericht alleen kan worden geleverd een keer naar zijn bestemming.
-
Moet een bericht bestaat uit meerdere delen, kunnen de afzonderlijke delen van het bericht moet worden afgeleverd in de juiste volgorde. Alternatief moet er aggregatie logica beschikbaar aan de ontvangende kant.
-
Routering van berichten over heterogene Java EE,. NET en legacy applicaties moet vaak worden vergezeld door het bedrijf stroming orkestratie. Een Enterprise Service Bus oplossing kan worden ingezet om complexe B2B-adres scenario's.
-
Betrouwbare messaging, in gevallen zoals financiële overdracht van gegevens, vereist ook een hoog niveau van veiligheid. Daarom is het belangrijk om een uitgebreide QoS uitvoeren controleren om ervoor te zorgen dat uw architectuur adequaat adressen individuele QoS-vereisten.
Beschikbaarheid
Beschikbaarheid voor Java EE. NET interoperabele toepassingen vereisen dat de onderliggende applicatie-infrastructuur (zoals het besturingssysteem en de applicatie server container) online worden voor diensten (dat beschikbaar is) de hele tijd. De beschikbaarheid van zakelijke applicaties of diensten kan worden gemeten in een percentage over een periode van tijd (bijvoorbeeld, 99,99 procent beschikbaar gedurende 365 dagen van de operatie), of in downtime statistieken (bijvoorbeeld 53 minuten downtime gedurende de 365 dagen per jaar). Zakelijke toepassingen en diensten kunnen meestal bereiken hoge beschikbaarheid door clustering van de Java EE of. NET applicatie server containers en waardoor sessie failover van een falende toepassing.
Het bereiken van een hoge beschikbaarheid voor Java EE. NET interoperabele toepassingen is complex. Het vereist
-
Detectie van Beschikbaarheid Status Er is een mechanisme op te sporen of opzoeken of de beoogde ontvanger (Java EE of. NET applicatie) is online of niet.
-
Persistence De dienst verzoek of zakelijke gegevens kunnen worden hield later opnieuw te verzenden na de streefdatum ontvanger hervat operaties uit dienst mislukking.
-
End-to-end Beschikbaarheid voor gedistribueerde Java-en. NET interoperabele toepassingen, beschikbaarheid betekent zowel de Java-en. NET-toepassingen moeten worden online en beschikbaar voor service tegelijk. Als beide zijden offline is of niet beschikbaar, de andere kant moet exception handling routines nemen zoals aanhoudende de dienst verzoek om later opnieuw proberen.
-
Uptime Beschikbaarheid voor Java EE. NET interoperabele toepassingen telt de uptime voor beide uiteinden van de toepassingen. Het is niet de gemiddelde beschikbaarheid percentage van zowel Java en. NET applicatie servers. Bijvoorbeeld, als de afzender het uitvoeren van Java EE applicaties is 99,99 procent beschikbaar is, en de begunstigde loopt. NET applicatie is 99,91 procent beschikbaar is, kan niet eenvoudigweg worden uitgegaan dat de beschikbaarheid van Java EE. NET interoperabele toepassingen is 99,99 procent of 99,95 procent van de gemiddelde .
-
Middleware De beschikbaarheid voor Java en. NET interoperabele toepassingen met behulp van een IIOP brug of een Enterprise Service Bus zal sterk afhankelijk zijn van de beschikbaarheid van de middleware-technologie. Zo is van cruciaal belang om ervoor te zorgen dat de brug zeer beschikbaar is en heeft nuttige toepassing of self-healing functies ter ondersteuning van hoge beschikbaarheid. Sommige brug of bus middleware-technologieën gebruiken software clustering, fouttolerantie, of de toepassing herstel te zorgen voor beschikbaarheid.
Schaalbaarheid en prestaties
Individuele Java EE of. NET-toepassingen doorgaans kan worden afgestemd voor een betere schaalbaarheid en prestaties. Echter, een Java EE. NET interoperabele toepassing afhankelijk is van de schaalbaarheid ontwerp en de prestaties van zowel een Java-en een. NET applicatie. Hetzelfde ontwerp schaalbaarheid en prestaties verbeteren strategie niet noodzakelijkerwijs werk voor beide platformen.
Scalable Java EE. NET interoperabele toepassingen kunnen omgaan met een groot volume van de dienst aanvragen en zakelijke transacties of kan het genereren van hogere transactiekosten doorvoer. Schaalbaarheid Een ideaal scenario voor een Java EE. NET interoperabele toepassing is dat de prestaties moet kunnen lineair schaal. Zo is er een bestaande interoperabiliteit oplossing om met webservices aanpak. Als extra fysieke geheugen wordt toegevoegd (bijvoorbeeld 2 GB geheugen) of de hardware upgrade (misschien tot 3GHz processor van 2 GHz processor) van de bestaande Java en. NET applicatie servers, moeten zij in staat zijn te schalen tot extra SOAP berichten behandelen ( misschien wel 20 procent extra verwerking van transacties tarief) tegelijk.
In werkelijkheid zijn er verschillende schaalbaarheid en prestaties van factoren voor de Java EE. NET interoperabiliteit oplossing. Deze omvatten:
-
Geheugen Factor De Java EE. NET interoperabiliteit toepassing moet in staat zijn om de prestaties te optimaliseren door gebruik te maken van de beschikbare fysieke geheugen. . NET en veel Java applicatie servers vandaag kunnen profiteren van het fysieke geheugen met de juiste instelling van de configuratie parameters. Architecten en ontwikkelaars kunnen willen zien of de interoperabiliteit strategie heeft een cache ontwerp voor betere systeemprestaties.
-
CPU-Factor Interoperabiliteit toepassingen die intensieve IT-middelen moeten kunnen groot hefboomeffect-end CPU-vermogen voor lineaire schaalbaarheid. Bijvoorbeeld bericht encryptie en decryptie (zoals XML codering) vereisen een hoge CPU processing power. Als de interoperabiliteit IIOP toepassing maakt gebruik van een brug of een Enterprise Service Bus met XML-encryptie en decryptie, een high-end CPU-processor zal helpen om de systeemprestaties te verbeteren.
-
Interface (of I / O) Factor Sommige interoperabiliteitsoplossingen kunnen gebruik maken van een relationele of object database te volharden alle service aanvragers. In een dergelijk geval moet de interoperabiliteit toepassing in staat zijn om de onderliggende database technologie om op grote schaal te verbeteren of om input / output-prestaties hefboom, in plaats van het creëren van haar eigen schaalbaarheid uitvoering.
-
Multi-Threading Factor Ofwel de Java EE of. NET interoperabele toepassing moeten kunnen nemen om multi-threading ondersteunen in hun ontwerp, zodat ze met meerdere threads kan gebruiken om een groot volume van de dienst verzoeken proces. Niet alle applicatie design ondersteunt multi-threading standaard, zoals de applicatie ontwerp moet synchronisatie kwesties te behandelen. Een voorbeeld hiervan is dat het gebruik van asynchrone messaging strategie voor Java EE. NET interoperabiliteit kunnen meerdere threads van de aanvraag voor het verwerken van meer service verzoeken.
-
Gedistribueerde architectuur Factor De interoperabiliteit applicatie ontwerp moet meerdere exemplaren ondersteuning op dezelfde machine of over verschillende machines. Dit gedistribueerde architectuur ontwerp maakt het mogelijk meerdere exemplaren van de interoperabiliteit applicatie gelijktijdig draaien en kan opschaling horizontaal naar een groot volume van de dienst verzoeken gelijktijdig te behandelen. Bijvoorbeeld, om de asynchrone bericht strategie met behulp van Enterprise Service Bus kan toestaan meerdere exemplaren van de interoperabiliteit toepassing uit te voeren omdat de dienst verzoeken zijn ingekapseld in berichten en verwerkt kunnen worden door meerdere abonnees (dienstverleners).
Manageability
Manageability verwijst naar een Quality of Service attribuut dat een applicatie of dienst kan worden geïnstrumenteerd, gemonitord en teruggevorderd indien zij loopt in een uitzondering. Omdat Java-toepassingen kan ondersteunen JMX (Java Management Extension API's) maar. NET-applicaties niet, de beheersbaarheid voor Java EE. NET interoperabele toepassingen moet steunen op een gemeenschappelijke meet-en beheerbaarheid technologie (bijvoorbeeld het beheer van proxy) of standaard (bijvoorbeeld , WS-Management). Interoperabiliteit strategie met behulp van IIOP Bridge en Enterprise Service Bus kan een belangrijke rol spelen bij het verstrekken van beheersbaarheid, omdat ze informatie over systeembeheer uit de toepassing centraal kunnen vangen. Er zijn een paar belangrijke beheersbaarheid eisen die de interoperabiliteit oplossing moeten ondersteunen:
-
De zichtbaarheid van de Java EE. NET interoperabele toepassingen moeten in staat zijn hun werking staten bloot (bijvoorbeeld actief of fout) of management informatie (bijvoorbeeld CPU-gebruik) voor de instrumentatie en monitoring systeem. Er moet controle op vermogen in de interoperabiliteit strategie voor online status of voor service rapportage.
-
Detectie van problemen De interoperabiliteit oplossing moet kunnen detecteren of er is een dienst probleem of systeemfout in zowel de Java en. NET-toepassingen. Dit kan de interoperabiliteit oplossing voor de status van het systeem poll of de toepassing van het systeem zelf hartslag periodiek te sturen. Bijvoorbeeld, sommige Enterprise Service Bus interoperabiliteitsoplossingen ondersteuning van JMX en kunnen eventuele problemen in het verslag van ofwel de Java EE of. NET applicatie voor het beheer server (met MBean server).
-
Sanering De mogelijkheid tot terugvordering van de falende systeem of het beheer voeren corrigerende maatregelen is zeer cruciaal voor het beheer van Java EE. NET interoperabele toepassingen.
-
Aanpassingsvermogen Het management oplossing moet makkelijk uitbreidbaar zijn om extra bedrijfsapplicaties, ongeacht hun afkomst, Java EE,. NET, of erfenis. Bovendien moet beheersbaarheid worden gecontroleerd, afhankelijk van het milieu, ontwikkeling, Quality Assurance, enscenering en productie. Inschakelen of uitschakelen van bepaalde applicatie of systeem-logging niveau moeten worden uitgevoerd buiten de concrete toepassing, dat wil zeggen in de configuratie bestanden of gecentraliseerde beheerconsole.
-
Effectiviteit Er moet een evenwicht tussen de houtkap en de aanvraag staat tracing en de algehele systeemprestaties.
-
Logging Logging informatie geeft basic input voor het beheer van de integratie punten tussen een Java EE. NET samenwerken oplossing. De oplossing moet kunnen verzamelen logging informatie van individuele-en Java EE. NET service onderdelen, alsmede van de integratie punten (zoals Bridge) en correleren voor het applicatiebeheer van het interoperabele oplossing.
een artikel afkomstig van Blerick Tawman