15
Government Gateway Government Gateway Experiences Experiences James Brown – Lead James Brown – Lead Developer Developer [email protected] [email protected] Solidsoft Solidsoft

Government Gateway Experiences James Brown – Lead Developer [email protected]

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Government Gateway Government Gateway ExperiencesExperiences

James Brown – Lead DeveloperJames Brown – Lead Developer

[email protected] [email protected]

SolidsoftSolidsoft

Gateway OverviewGateway Overview

Department

Local Authority

PortalApplications

PC & third party applications

Gateway

R&ER&E TxETxE

SOAP on GatewaySOAP on Gateway

Original SOAP interface went live 3 years Original SOAP interface went live 3 years agoago

14 methods Available14 methods Available Approximately 1/3 of full R&E functionalityApproximately 1/3 of full R&E functionality

Written using SOAP toolkit (VB6, C++)Written using SOAP toolkit (VB6, C++)

The busiest interface on the GatewayThe busiest interface on the Gateway

Problems with the old interfaceProblems with the old interface

Over the 3 years we learnt a lot of lessonsOver the 3 years we learnt a lot of lessons

Developed in good faith using ‘best Developed in good faith using ‘best practices’practices’

There are no correct answers, different There are no correct answers, different design patterns fit different solutions.design patterns fit different solutions.

Problems with the old interfaceProblems with the old interface

1.1. Death by optional attributesDeath by optional attributes1.1. XSD’s cannot helpXSD’s cannot help

2.2. Difficult to code againstDifficult to code against

3.3. Difficult to maintainDifficult to maintain

4.4. Difficult to documentDifficult to document

Problems with the old interfaceProblems with the old interface

Spanning multiple transactionsSpanning multiple transactions GsoRegisterAndEnrol (in multiple services)GsoRegisterAndEnrol (in multiple services) Leads to large bloated documents, input and Leads to large bloated documents, input and

outputoutput Complex business logicComplex business logic Not logicalNot logical Difficult to display sensible errorsDifficult to display sensible errors

Problems with the old interfaceProblems with the old interface

Complex documents in multiple Complex documents in multiple parametersparameters Not self describingNot self describing Difficult to writeDifficult to write Difficult to consumeDifficult to consume

Problems with the old interfaceProblems with the old interface

Home Grown securityHome Grown security We did OK!We did OK! Complex subjectComplex subject Don’t re-invent the wheelDon’t re-invent the wheel

"Anyone who creates his or her own "Anyone who creates his or her own cryptographic primitive is either a genius or cryptographic primitive is either a genius or a fool. Given the genius/fool ratio for our a fool. Given the genius/fool ratio for our species, the odds aren't very good."species, the odds aren't very good."

- Bruce Schneier- Bruce Schneier

The new SOAP interfaceThe new SOAP interface

Decided against extending the old Decided against extending the old interfaceinterface

Uses .NET Framework1.1, WSEUses .NET Framework1.1, WSE

Written in 10 weeksWritten in 10 weeks

Offers 110% of UI functionalityOffers 110% of UI functionality

The new interface…The new interface…

Documents describe a single transactionDocuments describe a single transaction Breaks down complex proceduresBreaks down complex procedures Decent error handlingDecent error handling Easier to code and understandEasier to code and understand What about performance?What about performance?

SOAPSOAP

Multiple callsMultiple calls

The new interface…The new interface…

String input, String outputString input, String output Ultimate in flexibilityUltimate in flexibility Use SOAP as the delivery mechanismUse SOAP as the delivery mechanism Tried to avoid optional attributesTried to avoid optional attributes Decided against single methodDecided against single method

The new interface…The new interface…

Self describing documentsSelf describing documents Less complexity leads to better XSD’sLess complexity leads to better XSD’s

<GsoRegisterPrincipalUserIDXmlInput><PortalIdentifier>MOSW</PortalIdentifier><CredentialName>Bob Bloggs</CredentialName><EmailAddress>[email protected]</EmailAddress><Description>This is my Gateway account</Description><RegistrationCategory>Individual</RegistrationCategory><Password>myPassword1</Password>

</GsoRegisterPrincipalUserIDXmlInput>

The new interface…The new interface…

WS-SecurityWS-Security

WS-TrustWS-Trust

WS-PolicyWS-Policy

WS-AddressingWS-Addressing All the plumbing code is taken care ofAll the plumbing code is taken care of Leaves the SOAP body cleanLeaves the SOAP body clean Future proof (hopefully…)Future proof (hopefully…)

Questions?Questions?

© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.