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

Fejlett Programozási Technikák 2.

Hasonló előadás


Az előadások a következő témára: "Fejlett Programozási Technikák 2."— Előadás másolata:

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

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 Szolgáltatás Orientált Architektúra
Szolgáltatás Bróker Szolgáltatás Nyújtó Szolgáltatás Fogyasztó Publikál Keres Köt

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ál Keres Köt Internet

5 Web szolgáltatás szolgáltató
Például: Web szerverek .NET Common Language Runtime

6 Web szolgáltatás fogyasztó
Minimális funkcionalitás Szolgáltatás keresés Proxi-k Aszinkron hívások

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 A web szolgáltatás programozói modell
Web protokollok Állapotmentes Lazán csatolt Univerzális adatformátum

9 BPEL4WS XML nyelv Elődei: Üzleti folyamatok definiálása
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 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 Folyamatot definiál Activity Partnerek Egyszerű Komplex
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 Példa

13 Példa

14 Példa

15 A .NET keretrendszer áttekintése
Common Language Runtime A .NET keretrendszer osztálykönyvtára ADO.NET: Adat és XML Web szolgáltatások

16 .NET Framework Class Library Common Language Runtime
A .NET keretrendszer VB C++ C# Perl Python Web Services User Interface ASP.NET ADO.NET: Data and XML .NET Framework Class Library Common Language Runtime Message Queuing COM+ (Transactions, Partitions, Object Pooling) IIS WMI Win32

17 Common Language Runtime
.NET Framework Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debugger MSIL to Native Compilers Code Manager Garbage Collection Class Loader

18 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 ADO.NET: Adat és XML ADO.NET: Data and XML OleDb SqlClient Common
SQLTypes System.Data XSL Serialization XPath System.Xml

20 Web űrlapok és szolgáltatások
ASP.NET System.Web Services UI Description HtmlControls Discovery WebControls Protocols Caching Security Configuration SessionState

21 Névterek System Collections IO Security Runtime Configuration Net
ServiceProcess Diagnostics Reflection Text Globalization Resources Threading

22 .NET keretrendszer fontosabb megoldásai
Windows Forms Web Forms XML Web Services

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

24 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 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 Szerelvények (Assemblies)
Managed Module (MSIL and Metadata) Managed Module (MSIL and Metadata) Assembly Manifest .html .gif Multiple Managed Modules and Resource Files Are Compiled to Produce an Assembly Resource Files

27 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 Alkalmazások telepítése
Közös koncepció Egyszerű alkalmazások Komponensre bontott alkalmazások Konfiguráció és elosztás

29 Közös Koncepció Az osztályok és típusok: Szerelvények (Assemblies):
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 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 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 Saját szerelvények specifikálása
Könyvtár megadása Client.exe.config privatePath elem <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath=“MyStringer"/> </assemblyBinding> </runtime> </configuration>

33 Erős nevű szerelvény 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: sn –k orgKey.snk #if STRONG [assembly: System.Reflection.AssemblyVersion(" ")] [assembly: System.Reflection.AssemblyKeyFile("orgKey.snk")] #endif csc /define:STRONG /target:library /out:AReverser.dll AReverser.cs

34 Közös típus rendszer Common Type System Elemei OO tulajdonságok

35 Közös Típus Rendszer arch.

36 É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 A CTS elemei Primitív típusok Objektumok Konstruktorok Tulajdonságok
Saját Típusok Felsorolásos típusok Interfészek

38 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;

39 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; }

40 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 }

41 Polimorfizmus Sealed Abstract New Virtual Override

42 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 Meta adatok Hordozható kód (reflexió) CORBA IDL Java bájtkód

44 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

45 Használható attribútumok
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"); } using EnterpriseServices; ... [Transaction(TransactionOption.Required)] public class MyTransactionalComponent : ServicedComponent { }

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

47 Példa [SPEPPAttribute("Way", FieldType=FType.Enum, FieldValues = "MessageDirection")] public string Way { get { return this._way; } set { this._way = value; } }

48 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 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 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(); }

51 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 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 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 "Fejlett Programozási Technikák 2."

Hasonló előadás


Google Hirdetések