View
216
Download
0
Tags:
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…)
© 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.