220 likes | 312 Views
.NET web szolgáltatások. WSE 2. 0 BPEL Beadandó feladat A félév áttekintése Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv. MCP vizsga lehetőség. http://www.microsoft.com/learning/mcp/mcp/ Javasolt vizsga:
E N D
.NET web szolgáltatások WSE 2.0 BPEL Beadandó feladat A félév áttekintése Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv
MCP vizsga lehetőség • http://www.microsoft.com/learning/mcp/mcp/ • Javasolt vizsga: • Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET • http://www.microsoft.com/learning/exams/70-315.asp • Email: bilickiv….
Az előadás tartalma • WSE 2.0 • Újdonságok • WS-Security • UsernameToken • KerberosToken • X509Token • WS-Policy • BPEL • Beadandó feladat • Határidő • Minta • UDDI – telepítés, definiálás,... • Keresés UDDI-ben • Visual Studio UDDI támogatása • A szerver • Minta kliens • A speckoll. összefoglalója
WSE 2.0 • Az újabb WS-* elemeket támogató Microsoft keretrendszer • A WSE 1.0 bővítése • WS-Routing -> WS-Addressing • WS-Policy • WS-Security – titkosítás, tartalom védelem • TCP, processzek közötti kommunikáció használata • TTL követelmények • Hozzávalók egy személyre: • Web Services Enhancements 2.0 (http://www.microsoft.com/downloads/details.aspx?FamilyId=FC5F06C5-821F-41D3-A4FE-6C7B56423841&displaylang=en) • UDDI használatához • Windows SDK Core
WSE 2.0 • Micorosoft.Web.Services2 névtér (Microsoft.Web.Services2.dll) • Regisztrálni kell a web.config fájlban
WS-Security • Azonosítás • UserNameToken • ClearText (ez kell a windows-nak) • Digest • KerberosV5 • X509 • ...
UserNameToken using System; using Microsoft.Web.Services2; using Microsoft.Web.Services2.Security.Tokens; namespace BasicWSEClient { class BasicWSE2ConsoleApp { static void Main() { string name = Console.ReadLine(); Console.WriteLine("Enter password: "); string password = Console.ReadLine(); BasicWSEService.Service1Wse proxy = new BasicWSEService.Service1Wse(); proxy.Url = "https://myserver/basicWSE/Service1.asmx"; proxy.RequestSoapContext.Security.Tokens.Add( new UsernameToken(name, password, PasswordOption.SendPlainText)); Console.WriteLine(proxy.Hello(name)); } } }
Szerver oldal [WebMethod] public string Hello(string name) { SoapContext ctxt = RequestSoapContext.Current; foreach (SecurityToken tok in ctxt.Security.Tokens) if (tok is UsernameToken) { UsernameToken user = (UsernameToken)tok; if (user.Username == name) { if (user.Principal.IsInRole( System.Net.Dns.GetHostName() + @"\Kings")) return "Hello, King " + name; return "Hello, " + name; } } return "Hello, Liar"; }
Saját felh. kötés public class MySecurityTokenManager : UsernameTokenManager { protected override string AuthenticateToken(UsernameToken token) { string pwd; switch(token.Username) { case "Simon": pwd = token.Username+"-pwd"; token.Principal = new GenericPrincipal( new GenericIdentity(token.Username), new string[] {"SomeRole","SomeOtherRole"} ); break; case "Guest": pwd = token.Username+"-pwd"; token.Principal = new GenericPrincipal( new GenericIdentity(token.Username), new string[] {"SomeRole"} ); break; default: pwd = base.AuthenticateToken(token); break; } return pwd; } }
WS-Policy • A WS-Policy segítségével egyszerűvé teszi a követelmények specifikálását • Kódba rögzíteni a jogosultságokat nem nyerő • Policy fájl • Mappings • endpoint • Operation • Request • Response • fault • Default operation • Policies
Példa Policy • <mappings> • <endpoint uri="http://www.develop.com/someapp/someservice.asmx"> • <operation requestAction="http://www.develop.com/someapp/someservice/someop"> • <request policy="#policy1" /> • <response policy="#policy2"/> • <fault policy="#policy3"/> • </operation> • <defaultOperation> • <request policy="#policy4" /> • <response policy="#policy5" /> • <request fault="#policy6" /> • </defaultOperation> • </endpoint> • </mappings>
Példa Policy • <policies xmlns:wsu= "http://docs.oasis-open.org/wss/ 2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy"> • <wsp:Policy wsu:Id="policy1"> • <SecurityToken wsp:Usage="wsp:Required" xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext"> • <TokenType>http://docs.oasis-open.org/wss/2004/01/ oasis-200401-wss-username-token-profile-1.0#UsernameToken</TokenType> • </SecurityToken> • </wsp:Policy> • <wsp:Policy wsu:Id="policy2"> <!-- Policy assertions go here --> </wsp:Policy> • <policies>
BPEL4WS • XML nyelv • Elődei: • IBM • WSFL • Microsoft • XLANG • Üzleti folyamatok definiálása • Web szolgáltatások összekapcsolása • Üzleti folyamat • Egy új web szolgálatatást hoz létre egy adott web szolgáltatás halmazon értelmezett végrehajtási sorrend segítségével • Kivétel kezelés • Hosszú tranzakciók kezelése • Hogyan használja fel a web szolgáltatásokat • Hogyan nyújt web szolgáltatásokat
Hol, hogyan használhatjuk? • Bpel szerverek • Microsoft BizTalk 2004 • Oracle BPEL Process Manager • IBM BPEL4WS Editor and Java Run-Time • OpenStorm Service Orchestrator • ... • Szolgáltatásai: • Vezérlés (elágazás, hurok, ...) • Aszinkron kommunikáció (join, source, target) • Nem determinisztikság pick, onAlarm • Hosszú tranzakciók (kompenzáció)
Folyamatot definiál • Activity • Egyszerű • Invoke • Receive • Reply • Wait • Assign • Throw • Terminate • Empty • Komplex • Sequence • Switch • While • Pick • Flow • Partnerek • Olyan szolgáltatás melyet meghív - portType1 • Olyan szolgáltatás mely meghívja - portType2 • A kettő kombinációja – serviceLink (szerepkörök)
A beadandó feladat • Határidő 2005.január.10 • A honlapon fenn lesz a helyszín valószínűleg irnyi 227, de. 10 óra
Beadandó feladat • Szerver • Adatbázis • Szolgáltatások: • Register • Remove • Update • Weboldal • Kliens • Adatbázis • Szolgáltatások: • Tipp • Eredmeny • Weboldal • Bemutatkozás • Regisztráció (UDDI keresés, dinamikus) • Az algoritms leírása • Statisztika
A félév áttekintése • SOA alapok • .NET architektúra • C# alapok • ADO.NET • ASP.NET • XML • XPATH • XSL • XSD • WSDL • SOAP • WSE 1.0 • WSE 2.0 • BPEL
Utolsó fólia Köszönöm a félévnyi kitartó figyelmet