Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Fejlett Programozási Technikák 2. 15/13. Fejlett Programozási Technológiák 2. 2 Web szolgáltatások Mik a web szolgáltatások?  URL-címekkel elérhető.

Hasonló előadás


Az előadások a következő témára: "1 Fejlett Programozási Technikák 2. 15/13. Fejlett Programozási Technológiák 2. 2 Web szolgáltatások Mik a web szolgáltatások?  URL-címekkel elérhető."— Előadás másolata:

1 1 Fejlett Programozási Technikák 2. 15/13

2 Fejlett Programozási Technológiák 2. 2 Web szolgáltatások Mik a web szolgáltatások?  URL-címekkel elérhető hálózaton meghirdetett funkciók Internet technológia alapúak Építő elemek A jövő elosztott alkalmazásainak alapkövei

3 Fejlett Programozási Technológiák 2. 3 Szolgáltatás Orientált Architektúra Szolgáltatás Bróker Szolgáltatás Nyújtó Szolgáltatás Fogyasztó PublikálKeres Köt

4 Fejlett Programozási Technológiák 2. 4 Web szolgáltatás architektúra áttekintése UDDI (Web Szolgáltatás Bróker) Web szolgáltatás nyújtó Web szolgáltatás felhasználó PublikálKeres Köt Internet

5 Fejlett Programozási Technológiák 2. 5 Web szolgáltatás szolgáltató Például:  Web szerverek .NET Common Language Runtime

6 Fejlett Programozási Technológiák 2. 6 Web szolgáltatás fogyasztó Minimális funkcionalitás Szolgáltatás keresés Proxi-k Aszinkron hívások

7 Fejlett Programozási Technológiák 2. 7 Web szolgáltatás bróker Együttműködés a brókerek és a szolgáltatók között Együttműködés a brókerek és a fogyasztók között UDDI tárlolók

8 Fejlett Programozási Technológiák 2. 8 A web szolgáltatás programozói modell Web protokollok Állapotmentes Lazán csatolt Univerzális adatformátum

9 Fejlett Programozási Technológiák 2. 9 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

10 Fejlett Programozási Technológiák 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ó)

11 Fejlett Programozási Technológiák 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)

12 Fejlett Programozási Technológiák Példa

13 Fejlett Programozási Technológiák Példa

14 Fejlett Programozási Technológiák Példa

15 Fejlett Programozási Technológiák A.NET keretrendszer áttekintése A.NET keretrendszer Common Language Runtime A.NET keretrendszer osztálykönyvtára ADO.NET: Adat és XML Web szolgáltatások

16 Fejlett Programozási Technológiák A.NET keretrendszer Win32 MessageQueuingCOM+ (Transactions, Partitions, Object Pooling) IISWMI Common Language Runtime.NET Framework Class Library ADO.NET: Data and XML Web Services User Interface VBC++C# ASP.NET PerlPython…

17 Fejlett Programozási Technológiák Common Language Runtime.NET Framework Class Library Support Thread Support COM Marshaler Type Checker Exception Manager MSIL to Native CompilersCodeManagerGarbageCollection Security Engine Debugger Class Loader

18 Fejlett Programozási Technológiák A.NET osztálykönyvtár Átfogja a használható programozási nyelveket  Nyelvközi öröklődést és hibakeresést tesz lehetőve  Jól integrálódik az eszközökkel Objektum orientált és konzisztens  Növeli a produktivitást mert csökkenti a megtanulandó API-k számát A közös típus rendszeren készült Bővíthető  Egyszerűen módosíthatjuk a keretrendszer tulajdonságait Biztonságos  Biztonságos alkalmazásokat írhatunk

19 Fejlett Programozási Technológiák ADO.NET: Adat és XML ADO.NET: Data and XML OleDbSqlClient CommonSQLTypes System.Data XSLSerialization XPath System.Xml

20 Fejlett Programozási Technológiák ASP.NET Web űrlapok és szolgáltatások System.Web Configuration SessionState Caching Security Services Description Discovery Protocols UI HtmlControls WebControls

21 Fejlett Programozási Technológiák Névterek System Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text Security Runtime ServiceProcess

22 Fejlett Programozási Technológiák NET keretrendszer fontosabb megoldásai Windows Forms Web Forms XML Web Services

23 Fejlett Programozási Technológiák Menedzselt futtatás Class Loader JIT Compiler with optional verification Execution Security Checks EXE/DLL (MSIL and metadata) Class Libraries (MSIL and metadata) Trusted, pre-JITed code only Call to an uncompiled method Runtime Engine Managed Native Code Compiler Source Code

24 Fejlett Programozási Technológiák Meta adat Fordításkor minden fontos információt megtart Minden.NET fájl és szerelvény tartalmazza Lehetővé teszi a futtató környezet számára:  Kód megtalálását és betöltését  Kód biztonság növelését  Gépközeli kód generálását  Reflexiót

25 Fejlett Programozási Technológiák Microsoft Köztes Nyelv MSIL Minden támogatott fordító erre fordít JIT fordítók fordítják gépközeli nyelvre

26 Fejlett Programozási Technológiák Szerelvények (Assemblies) Assembly Manifest Multiple ManagedModules andResource FilesAre Compiled toProduce an Assembly Managed Module (MSIL and Metadata) Managed Module (MSIL and Metadata) Managed Module (MSIL and Metadata) Managed Module (MSIL and Metadata).html.gif Resource Files

27 Fejlett Programozási Technológiák Alkalmazás tartományok Processz határok jelentették az alkalmazások határát A CLR-ben Alkalmazás Tartományok jelentik ezt  A kód ellenőrzés miatt sokkal kisebb költséggel menedzselhetőek  Több alkalmazás tartomány futhat egy processzben Egy alkalmazás meghibásodása nem hat a másikra

28 Fejlett Programozási Technológiák Alkalmazások telepítése Közös koncepció Egyszerű alkalmazások Komponensre bontott alkalmazások Konfiguráció és elosztás

29 Fejlett Programozási Technológiák Közös Koncepció Az osztályok és típusok:  Névterekbe vannak rendezve  PE fájlokba tárolódnak (DLL, EXE)  Teljesen dokumentáltak (Meta Data) Szerelvények (Assemblies):  Egy vagy több PE fájl tartalmaznak  Tartalmaz egy leíró fájlt mely megadja a benne szereplő fájlokat  Specifikálja az importált és expoprtált osztályokat  Az alap eleme a telepítésnek, verzió kezelésnek

30 Fejlett Programozási Technológiák Egyszerű alkalmazások.NET futtató környezete szükséges Távolról és helyi gépről is futtatható Nem készítenek Registry bejegyzéseket Nem tehet tönkre más alkalmazást  Megszűnik a DLL pokol A helyi fájlok törlésével eltávolítható

31 Fejlett Programozási Technológiák Komponensre bontott alkalmazások Saját szerelvények  Tulajdonképpen az alkalmazás Összefüggő alkalmazások szerevényei:  Közös alkönyvtárba telepítve Megosztott szerelvények  Erős név és verzió információ szükséges  A globális szerevény gyorstárba települnek

32 Fejlett Programozási Technológiák Saját szerelvények specifikálása Könyvtár megadása  Client.exe.config privatePath elem

33 Fejlett Programozási Technológiák Globális szerelvény gyorstár  Nem összetartozó programok által közösen használt szerelvényeket tartalmazza Erős nevekre van szükség  PKI használat:  Verzió és kulcs információ:  Fordítás: #if STRONG [assembly: System.Reflection.AssemblyVersion(" ")] [assembly: System.Reflection.AssemblyKeyFile("orgKey.snk")] #endif #if STRONG [assembly: System.Reflection.AssemblyVersion(" ")] [assembly: System.Reflection.AssemblyKeyFile("orgKey.snk")] #endif csc /define:STRONG /target:library /out:AReverser.dll AReverser.cs csc /define:STRONG /target:library /out:AReverser.dll AReverser.cs sn –k orgKey.snk Erős nevű szerelvény

34 Fejlett Programozási Technológiák Közös típus rendszer Common Type System Elemei OO tulajdonságok

35 Fejlett Programozási Technológiák Közös Típus Rendszer arch.

36 Fejlett Programozási Technológiák Érték típusok és Referencia típusok Érték típusok primitív vagy a felhasználó által definiált adatstruktúrák  A Stack-ben helyezkednek el  Alapértelmezésben másolatként adódnak át Referencia típusok objektumok:  A heap memóriában jönnek létre a new kulcsszóval  Referencia szerint adódnak át

37 Fejlett Programozási Technológiák A CTS elemei Primitív típusok Objektumok Konstruktorok Tulajdonságok Saját Típusok Felsorolásos típusok Interfészek

38 Fejlett Programozási Technológiák Tulajdonságok Hozzáférés mezőkhöz (CORBA attribute) Get/Set public float Start { get { return start; } set { if (start >= 0) start = value; } public float Start { get { return start; } set { if (start >= 0) start = value; }

39 Fejlett Programozási Technológiák Saját típusok A System.ValueType-ből származnak A struct kulcsszóval definiáljuk (C#) Nem származtatható struct Employee { public string Name; public ushort Age; public DateTime HireDate; public float Tenure() { TimeSpan ts = DateTime.Now – HireDate; return ts.Days/(float)365; } struct Employee { public string Name; public ushort Age; public DateTime HireDate; public float Tenure() { TimeSpan ts = DateTime.Now – HireDate; return ts.Days/(float)365; }

40 Fejlett Programozási Technológiák Felsorolások.NET keretrendszer felsorolások  A System.Enum-ból származnak  Az enum kulcsszóval enum SeatPreference : ushort { Window, //Assigned value 0 Center, //Assigned value 1 Aisle //Assigned value 2 } enum SeatPreference : ushort { Window, //Assigned value 0 Center, //Assigned value 1 Aisle //Assigned value 2 }

41 Fejlett Programozási Technológiák Polimorfizmus Sealed Abstract New Virtual Override

42 Fejlett Programozási Technológiák Eseménykezelés Függvény mutatók használata  Delegate  Event C# t public delegate void ButtonEventHandler(); class TestButton { public event ButtonEventHandler OnClick; public void Click() { OnClick(); } } TestButton mb = new TestButton(); mb.OnClick += new ButtonEventHandler(TestHandler); mb.OnClick += delegate { System.Console.WriteLine("Hello, World!"); }; mb.Click();

43 Fejlett Programozási Technológiák Meta adatok Hordozható kód (reflexió) CORBA IDL Java bájtkód

44 Fejlett Programozási Technológiák Attribútumok Az attribútumok:  Olyan elemek melyek a futtató környezet számára biztosítanak információkat  A meta adatok között vannak tárolva.NET –ben előre definiált attribútumokat is használhatunk  A futtató környezet az attribútumoknak megfelelően viselkedik [attribute(positional_parameters,named_parameter=value,...)] element [attribute(positional_parameters,named_parameter=value,...)] element

45 Fejlett Programozási Technológiák Használható attribútumok class MyClass { [Conditional ("DEBUGGING")] public static void MyMethod( ) {... } class MyClass { [Conditional ("DEBUGGING")] public static void MyMethod( ) {... } [DllImport("MyDLL.dll", EntryPoint=“MyFunction")] public static extern int MyFunction(string param1); public class MyClass( ) {... int result = MyFunction("Hello Unmanaged Code");... } [DllImport("MyDLL.dll", EntryPoint=“MyFunction")] public static extern int MyFunction(string param1); public class MyClass( ) {... int result = MyFunction("Hello Unmanaged Code");... } using EnterpriseServices;... [Transaction(TransactionOption.Required)] public class MyTransactionalComponent : ServicedComponent {... } using EnterpriseServices;... [Transaction(TransactionOption.Required)] public class MyTransactionalComponent : ServicedComponent {... }

46 Fejlett Programozási Technológiák Saját attribútumok Hatókör specifikálása AttributeUsage [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class MyAttribute: System.Attribute {... } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class MyAttribute: System.Attribute {... } [AttributeUsage(AttributeTargets.Method)] public class MyAttribute: System.Attribute {... } [AttributeUsage(AttributeTargets.Method)] public class MyAttribute: System.Attribute {... }

47 Fejlett Programozási Technológiák Példa [SPEPPAttribute("Way", FieldType=FType.Enum, FieldValues = "MessageDirection")] public string Way { get { return this._way; } set { this._way = value; } }

48 Fejlett Programozási Technológiák A.NET típusok memória menedzsmentje Az érték típusok a vermet használják  A memória foglalás és felszabadítás automatikus és biztonságos Menedzselt objektumok a halomba tárolódnak (heap)  New operátor  Szemét gyűjtő takarít

49 Fejlett Programozási Technológiák Egyszerű szemét gyűjtés Egyszerű szemét gyűjtő algoritmus  Addig vár míg a menedzselt kód szálai várakozó állapotba nem kerülnek  Az elérhető objektumokból gráfot készít  Átmozgatja az elérhető objektumokat a tömörített halomba - Az elérhetetlen objektumok területe felszabadul  Frissíti az átmozgatott objektumok referenciáit Körkörös referencia hivatkozások automatikusan kezelve vannak

50 Fejlett Programozási Technológiák Finalizáció A Befejező kódot a GC hívja meg C#-ban destruktor class Foo { private System.IO.FileStream fs; //... public Foo() { fs = new System.IO.FileStream( "bar", FileMode.CreateNew); } ~Foo() { fs.Close(); } } class Foo { private System.IO.FileStream fs; //... public Foo() { fs = new System.IO.FileStream( "bar", FileMode.CreateNew); } ~Foo() { fs.Close(); } }

51 Fejlett Programozási Technológiák GC befejezés A futtató környezet rendelkezik egy listával azokról az objektumokról melyek befejezést igényelnek  Várakozó sor Az elérhetetlen befejezésre váró objektumok:  A referenciák hozzáadódnak az freachable sorhoz  Az objektumok így elérhetőek és nem szemetek A többi szokás szerint…

52 Fejlett Programozási Technológiák Befejzés Finalize szál fut  Végrehajtja az objektumok Finalize metódusát  A referenciákat eltávolítja a sorból  Ha nem lettek feltámasztva akkor szemétté lesznek nyilvánítva  GC…

53 Fejlett Programozási Technológiák Köszönöm az egész féléven át tartó töretlen lelkesedést és figyelmet! Sikeres vizsgaidőszakot, jó nyaralást!


Letölteni ppt "1 Fejlett Programozási Technikák 2. 15/13. Fejlett Programozási Technológiák 2. 2 Web szolgáltatások Mik a web szolgáltatások?  URL-címekkel elérhető."

Hasonló előadás


Google Hirdetések