Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.