Johan.Sall.2535 Thomas.Wahlsten Distribuerade System HT 2002
|
|
- Olof Sundqvist
- för 5 år sedan
- Visningar:
Transkript
1 Johan.Sall.2535 Thomas.Wahlsten.1711 Distribuerade System HT 2002
2 Sammanfattning Vår uppgift har varit att skriva en rapport om CORBA, en av de tidigaste och mest använda arkitekturerna för distribuerade objekt. Rapporten tar upp allmänna delar om CORBA så som dess tillkomst, utformning av CORBA, användningsområden. Detta följs av en teknisk beskrivning av CORBA, vad är ORB, ORB i jämförelse med RPC, IDL:er, vilket protokoll används för kommunikation mellan ORB:ar osv. I rapporten finns även små kod-exempel för att belysa vissa elementära grunder med CORBA.
3 Innehållsförteckning 1. Introduktion Vad är CORBA? Vad är middleware? Användningsområden OMG (Object Management Group) Tekniska detaljer om CORBA Object Request Broker (ORB) Vad är skillnaden mot RPC? Transparens och kommunikation Följande mål har tagit hänsyn till vid utveckling av GIOP: Argument och marshalling Interface Definition Language (IDL) Erhålla objektreferens: Klientmodell för skapande av objekt: Exeptions: Statiskt eller dynamiskt metodanrop? CORBA Statiskt metodanrop Översikt av statiskt metodanrop CORBA Dynamiskt metodanrop Referenser... 12
4 1. Introduktion 1.1 Vad är CORBA? CORBA är en förkortning för Common Object Request Broker Architecture, framtaget av OMG (Object Management Group) för att kunna möta det behov som finns för att det enorma antal mjukvaror och hårdvaror som finns på marknaden skall kunna kommunicera sinsemellan. Tanken är alltså att CORBA ska möjliggöra kommunikation mellan olika applikationer över ett nätverk, oavsett programspråk och dataplattform. Med hjälp av CORBA kan metoder exekveras på en annan maskin, men även ren dataåtkomst möjliggörs, dvs. åtkomst av objekt över ett nätverk. CORBA är ett exempel på en middleware - en programvara som fogar samman andra programvaror - och fungerar som brygga mellan dessa. [OMG01] 1.2 Vad är middleware? Inom dataindustrin är middleware en generell beskrivning av all slags programmering som siktar till att limma samman eller medla mellan två separata och ofta redan existerande program. En vanlig tillämpning med middleware är att tillåta program skrivna för att accessa en viss databas att kunna få access även till andra databaser. Vanligtvis tillhandahåller middleware program meddelandetjänster så att olika applikationer kan kommunicera. Det systematiska sammanbindandet av olika applikationer, oftast genom användning av middleware, benämns som EAI(Enterprise Application Integration). Det skall påpekas att det naturligtvis krävs att gränssnittet mellan middleware och de komponenter som finns runt om den är tydligt specificerade för att det hela skall kunna fungera väl. 1.3 Användningsområden Möjligheterna med CORBA är nästan obegränsade, och det finns en uppsjö med exempel på tillämpningar som använder sig av CORBA. Några exempel är e-handelslösningar, webbservrar och fönsterhanteraren gnome, men CORBA är även populärt inom finansvärlden för banktjänster, aktiehandel m.m. Till exempel använder Handelsbanken CORBA tillsammans med sitt aktiesystem för att kontinuerligt hålla sig uppdaterade med de senaste aktiekurserna. CORBA lämnar möjligheterna öppna för framtida utbyggnader och plattformar. [OMG02]
5 1.4 OMG (Object Management Group) Object Management Group (OMG) grundades i april 1989 av elva företag, bestående av 3Com Corporation, American Airlines, Canon, Inc., Data General, Hewlett-Packard, Philips Telecommunications N.V., Sun Microsystems and Unisys Corporation. OMG:s huvudkontor finns i Needham, Massachussets i USA och mindre kontor i ett 10 tal länder runtom i världen. I oktober 1989 på började OMG sitt oberoende arbete som ett non-profit företag. Företaget uppstod i en tid när många mjukvarutillverkare såg ett enormt behov av att kunna kunna ta fram gemensamma specifikationer för samexistens mellan olika mjukvaror. OMG: s uppgift är alltså att vara ett oberoende organ som lägger upp och håller i specifikationerna för CORBA. Tack vare sitt målmedvetna utvecklingsarbete och det faktum att specifikation och implementation är åtskilda har gjort att OMG idag har över 1000 medlemmar världen över. [OMG01] 2. Tekniska detaljer om CORBA 2.1 Object Request Broker (ORB) ORB, Object Request Broker, är en distribuerad service som implementerar förfrågning till fjärrobjektet. ORB har till uppgift att lokalisera fjärrobjektet, skicka förfrågan till fjärrobjektet och invänta svar samt skicka svaret tillbaka till klienten. ORB implementerar lokaliserings transpararens, vilket innebär att samma förfrågningsmekanism används oberoende om objektet är lokaliserat lokalt eller som fjärrobjekt. ORB, erbjuder programmeraren stor flexibilitet såsom att fritt välja bästa lämpliga: Operationsystem, programspråk för varje komponent. Men viktigast av allt är att ORB möjliggör integration av existerande komponenter. Språkkopplingar finns definierade för alla populära programspråk. Specifikationen för detta definieras i IDL:en, Interface Definition Language. [Sun01] 2.2 Vad är skillnaden mot RPC?
6 RPC och ORB är ganska nära besläktade, men det finns några viktiga skillnader. Den stora skillnaden är att ORB är objektorienterat vilket RPC inte är. Med RPC anropar en specifik funktion medan man med ORB:en anropar en metod inom ett specifikt objekt. En av fördelarna med objektorientering är att man kan få olika objektklasser att uppträda annorlunda med samma metodanrop genom så kallads polymorfism. Eftersom varje objekt har hand om sina egna privata data, så blir metoden implementerad på just dessa specifika data. I ORB ligger objektet instansierat hos servern och klienten har en referens till objektet, medan i RPC ligger data hos klienten och servern använder sig bara av inskickade argument. CORBA erbjuder objektabstraktioner och dynamisk invokation, vilket inte RPC erbjuder. Dessutom kan man ärva interface i CORBA. 2.3 Transparens och kommunikation Som vi tidigare nämnt så implementerar ORB lokaliserings transpararens. Vilket betyder att exekveringen är den samma om objektet exekveras lokalt på användarens maskin eller på en fjärrmaskin. Som användare märker man ingen skillnad förutom att det eventuellt tar längre tid att exekvera fjärrobjektet. Transpararensen kan man uppnå genom att man implementerar ett interface mellan ORB:n och klienten/servern, ett så kallat stubbe och skelett. Client Object Client Object Stub Skel Stub Skel ORB 1 IIOP ORB 2 Protkoll ORB till ORB kommunikation Protokoll för att kommunicera och sköta felhantering sker generellt med GIOP, General Inter-ORB Protocol. Protokollet har åtta definierade meddelanden: Request, Reply, CancelRequest, LocateRequest, LocateReply, CloseConnection, MessageError, Fragment. GIOP kan mappas för till de flesta anslutningsorienterade transportprotokoll bara de följer ett mindre antal förutsättningar. Specifiering av GIOP som körs direkt över TCP/IP kallas IIOP, Internet Inter-ORB Protocol.
7 Följande mål har tagit hänsyn till vid utveckling av GIOP: Största möjliga användbarhet GIOP och IIOP är baserat på TCP/IP och definierar ett minimalt extra protokollager som är nödvändiga för att överföra CORBA förfrågningar mellan ORB:er. Enkelhet Målsättningen är att GIOP ska vara så enkelt som möjligt, vilket är bästa målet för att säkerställa en mängd olika oberoende och kompatibla implementationer. Skalbarhet - GIOP och IIOP ska stödja ORB:er och nätverk med bryggade ORB:er, till storleken av dagens och framtidens Internet. Låg kostnad Att lägga till stöd för GIOP och IIOP till en existerande eller ny ORB design ska kräva små tekniska investeringar. Generellitet Medan IIOP är definierad för TCP/IP, Så är GIOP:s designat för att användas med alla transport lager som uppfyller ett minimalt antal förutsättningar. Arkitektisk neutralitet GIOP specifikationen gör ett minimalt antal antaganden om hur arkitekturen måste vara uppbyggd för att det ska fungera. [Sun01], [STD01], [OMG01] 2.4 Argument och marshalling Vid en förfrågan så läses först argumenten för förfrågan in vid stubben. Sedan anpassas de där enligt CDR, Common Data Representation, och processen kallas marshalling. Efter detta skickas förfrågan vidare till fjärrobjektets skelett. I skelettet sker en återanpassning, så kallad unmarshalling, av argumenten så de passar objektet. Klienten och objektet kan ha olika programspråk och man är vidare fri att utveckla klient och objekt i de flesta programspråk. Följande argument stöds av CORBA: Grundläggande datatyper som long, short, string, float osv., konstruerade datatyper som struct, union, enum, sequence, objektreferenser (objekt-id), any-typen, som är ett dynamiskt typat värde. Man kan t ex inte använda sig av pekare som argument! 2.5. Interface Definition Language (IDL) CORBA bygger på ett väl definierat gränssnitt som komponenterna måste följa. Detta görs med IDL, Interface Definition Language. Ett objektinterface indikerar vilka operationer som objektet stödjer, men inte hur de implementeras. Implementationen av CORBA objekt stöds av objektorienterade språk såsom Java eller C++. IDL interfacen är programneutrala. IDL definierar språkbindningar till många olika programspråk. Detta innebär att man kan välja lämplikt språk för objektet samt har valfrihet att utveckla klienten i det mest lämpliga språket. OMG har standardiserat bindningar till C, C++, Java, Ada, COBOL, Smalltalk, Objetive C och Lisp.
8 Erhålla objektreferens: Det finns som kanske bekant tre olika sätt att få ett stycke kod att erhålla objektreferens: Det kan bli sänt till sig som en parameter Det kan returneras som resultat från en förfrågan. Det kan erhållas genom konvertering av en sträng till en objektreferens Klientmodell för skapande av objekt: Ibland vill man kanske ge det distribuerade objektsystemet möjlighet att skapa objekt. Detta kan göras genom att man definierar en factory för objektet. Factories är inget annat än distribuerade objekt som skapar andra distribuerade objekt. Det finns inget standard interface för en factory. Nedan ges ett exempel på hur det kan gå till. interface StockFactory { Stock create_stock( in string symbol, in string description ); }; För att skapa ett objekt av typen Stock så gör klienten en förfrågan på StockFactory. [Sun01] Exeptions: Undantag, exeptions, i CORBA är mycket likt undantag i Java. När man använder undantag i CORBA så måste man använda try och catch precis som i Java. Det finns två typer av CORBA undantag, system- och användarundantag. Exempel: StockFactory factory =... Stock thestock =... try { thestock = factory.create( "GII", "Global Industries Inc."); } catch (Throwable e) { } [Sun01] 2.6 Statiskt eller dynamiskt metodanrop? Med CORBA kan man göra statiskt eller dynamiska metodanrop. Fördelen med det statiska är att det är enkelt, typsäkert och effektivt. Det dynamiska är då av naturliga skäl mer komplicerat och mindre typsäkert. Fördelen är dock att man kan anropa operationer på objekt som inte är kända vid kompileringen.
9 CORBA Statiskt metodanrop 1. Definiera serverinterfacen i Interface Definition Language (IDL). IDL-filen innehåller de operationer på objekten som finns tillgängliga för potentiella klienter, och hur de kan anropas. IDL-definitionen innehåller typer för objekt, deras attribut, vilka metoder de exporterar och metodparametrar med tillhörande typer. 2. Kör IDL-filen genom en precompiler. Detta skapar språkskelett för implementation av server klasser. 3. Lägg till impementationskoden, som skapades vid förkompileringen, till skeletten. 4. Kompilera koden. Detta görs med den vanliga kompilatorn. CORBA kompilatorn kan generera fyra typer av filer. Import filer beskriver objekt för Interface Repository. Klientstubbar Anropas av klientprogrammet. Serverstubbar Anropar metoder på servern. Kod som implementerar serverklasserna. 5. Bind interfacedefinitionerna till Interface Repository. 6. Instansiera objekten på servern. Object Adapter kan instansiera serverobjekt som tjänstgör vid metodanrop på fjärrobjekt. 7. Registrera run-time-objekten hos Implementation Repository. Object Adapter registrerar objektreferens och vilken objekttyp som den instansierar på servern. Registreringen sker i Interface Repository. 8. Implementera klientkoden. Klienten lägger till CORBA-anrop, som är språkberoende, i koden. Stubbarna tar hand om marshalling och unmarshalling. 9. Kompilera klientkoden. Detta görs med den vanliga kompilatorn. [SMI01]
10 Översikt av statiskt metodanrop Figur 1: En översikt av statiskt metodanrop, jmf bilden med den steg för steg beskrivning som ges i kapitel
11 CORBA Dynamiskt metodanrop Med Dynamic Skeleton Interface kan man göra dynamiska metodanrop. Interfacet finns istället för stubben men utåt sett så märks ingen skillnad. 1. Erhåll metodbeskrivning från Interface Repository. CORBA anrop lokaliserar och beskriver objekt i Interface Repository. 2. Skapa en argumentationslista. Datastruktur för att skicka parametrar (NamedValueList). 3. Skapa ett tomt requestobjekt. Specificerar objektreferens, metodnamn och argumentationslista. 4. Anropa requestobjektet. 5. Frigör requestobjektet. [DMI01]
12 3. Referenser [OMG01] OMG: Hemsida för CORBA [OMG02] En översikt av CORBA [OMG03] OMG: OMG's CORBA FAQ [Sun01] Kort om Corba på Suns hemsida [STD01] CORBA specification [SMI01] Statiskt metodanrop, steg för steg [DMI01] Dynamiskt metodanrop, steg för steg
Förra föreläsningen: Olika nivåer av meddelanden. Från oblockad sändning till. RPC: Parameterpassning, registrering, felhantering, säkerhet, kompilering ONC RPC: XDR, portmapper Brandväggar, dynamisk brandväggskonfigurering,
Läs merObjektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo
Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till
Läs merDistribuerad programmering med CORBA Föreläsning CORBA: vad, varför, hur?
Distribuerad programmering med Föreläsning 16 16 : vad, varför, hur? Innehåll Datornätverk Behov och krav Historik, principer, arkitektur och beståndsdelar Exempel i Java Läs också den utmärkta och konkreta
Läs mer%M UQ(LGHUElFN 1. Internetprogrammering 1999, 2D4334-föreläsning10a. Nätverk av datorer. CORBA: vad, varför, hur? Internetprogrammering F 10a
previous : vad, varför, hur? Innehåll next Datornätverk Behov och krav Internetprogrammering F 10a Historik, principer, arkitektur och beståndsdelar Exempel i Java Läs också den utmärkta och konkreta tutorialen
Läs merClasses och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Läs merRepetition DK2 Middleware, P2P, Multimediatransport. Stefan Alfredsson 18 Mars 2005
Repetition DK2 Middleware, P2P, Multimediatransport Stefan Alfredsson 18 Mars 2005 Några definitioner på middleware Klistret som gör det möjligt för en klient att få betjäning av en server / i klient/server
Läs merStatic vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs merKopiering av objekt i Java
1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom
Läs merClasses och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Läs merFÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Läs merStatic vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =
Läs merDistribuerade affärssystem
Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska
Läs merInledande programmering med C# (1DV402) Introduktion till C#
Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i
Läs merStatic vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018
Static vs Dynamic binding Override vs Overload Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018 Quiz: Gissa typen? Object o = new Square(100,100); Polygon p =
Läs merObjektorienterad programmering. Grundläggande begrepp
Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller
Läs merObjektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim
Objektorienterad programmering Föreläsning 12 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till Arv Superklasser och Subklasser Dolda medlemmar (new och base) Statisk
Läs merTDA550 Objektorienterad programmering, fortsättningskurs. Föreläsning 1. Introduktion Variabler och typer
TDA550 Objektorienterad programmering, fortsättningskurs Föreläsning 1 Introduktion Variabler och typer Objektorienterad programmering fk 1 Föreläsning 1 Olika nivåer av programdesign Det är användbart
Läs merIntroduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
Läs merPM 01 En jämförelse av två analysmodeller för val av komponentteknik
MÄLARDALENS HÖGSKOLA Institutionen för Ekonomi och Informatik v PM 01 En jämförelse av två analysmodeller för val av komponentteknik Eskilstuna, 2002-12-12 EI0230 Komponentbaserad applikationsutveckling
Läs merObjektorienterad middleware. OO-Middleware. Några centrala begrepp. Komponent vs objekt
Objektorienterad middleware OO-Middleware Datakom 2 DAVC03 Stefan Alfredsson material inspirerat av Annika Wennström, Sören Torstensson) Utökad mekanism för objekt Objekt består av data tillstånd) och
Läs merOO-Middleware. Objektorienterad middleware
OO-Middleware Datakom 2 DAVC03 Stefan Alfredsson (material inspirerat av Annika Wennström, Sören Torstensson) Objektorienterad middleware Utökad mekanism för objekt Objekt består av data (tillstånd) och
Läs mer2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Läs merObjekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15
DAVA15 Objekt, klasser Vad är det? Vad är sambandet mellan dem? Vad är skillnaden mellan dem? Tillstånd Signatur Kommunikation Typ Fält, parametrar och lokala variabler Likheter och skillnader Räckvidd
Läs merEnterprise Java Beans Assignment 1
Enterprise Java Beans Assignment 1 Distribuerade System HT 02 Fredrik Lundgren Andreas Nyberg fredrikbjurefors@hotmail.com goca8363@student.uu.se frlu4469@student.uu.se andreas.nyberg@hushmail.com Innehållsförteckning
Läs merTentamen ID1004 Objektorienterad programmering May 29, 2012
Omtentamen för ID1004 Objektorienterad programmering HT11, 29 maj 2012, 09-13 Denna tentamen examinerar 3 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av 12 frågor. Varje fråga
Läs merObjektorienterad programmering
Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad
Läs merWeb Services. Cognitude 1
Web Services 1 Web Services Hur ska tillämpningar integreras? Hur ska tillämpningar integreras (via nätet ) för att erbjuda tjänster åtkomliga på nätet? SVAR: Web Services (Enligt Microsoft, Sun, IBM etc.)
Läs merObjektorienterad programmering, allmänt
Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara
Läs merViktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?
Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet
Läs merKurskatalog 2010 INNEHÅLLSFÖRTECKNING
SFÖRTECKNING 1. RFID-Kurser... 2 1.1. RFID Grundkurs... 2 1.2. RFID Fortsättningskurs... 3 1.3. RFID dator programmering... 4 1.4. RFID Systemadministration... 5 1.5. RFID Aktiv Systemadministration...
Läs merProgramutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document
Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se
Läs merObjektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
Läs merKärnfunktionalitet. Middleware. Samverkande system. Service Oriented Architecture. Kommunikationsmekanismer. Tjänsteorienterade arkitekturer
Samverkande system Tjänsteorienterade arkitekturer Hur får vi mjukvarukomponenter som är distribuerade över internet att enkelt upptäcka, utnyttja, och interagera med, varandra? Vi vill ha Komponenter
Läs merImperativ programmering. Föreläsning 4
Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering
Läs merKlient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.
Klient/server Översikt Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Lektion 1: Webbtekniker från Microsoft Microsoft webbtekniker. ASP.NET. Klientsidan. Internet Information Server.
Läs merSyfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?
Jonas Kvarnström jonkv@ida.liu.se 2013 Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Rena OO-språk (allt är objekt) Scala, Smalltalk, Eiffel, Ruby,
Läs merDistribuerade System, HT03
UMEÅ UNIVERSITET 21 oktober 2003 Institutionen för Datavetenskap Laborationsrapport Laboration Middleware Distribuerade System, HT03 Jini Namn: Anders Holm, c00asm@cs.umu.se Kjell Johansson, c00kjn@cs.umu.se
Läs merInnehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och
Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merPolymorfi. Objektorienterad och komponentbaserad programmering
Polymorfi Objektorienterad och komponentbaserad programmering Polymorfi, mångtydighet Polymorfi innebär att en viss konstruktion kan exekveras på olika sätt Överlagring av metoder ger ett polymorft beteende
Läs merProgrammering = modellering
Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,
Läs merArv innebär att man skapar en ny klass (subklass) utifrån en redan existerande klass (superklass, basklass).
3 Arv och gränssnitt 3.1 Vad innebär arv? Ett objektorienterat språk bygger på att programmeraren ges möjligheten att modellera verkligheten med hjälp av objekt. Objekt låter sig definieras i form av klasser.
Läs merSammansatta datatyper Generics: Parametrisk polymorfism
jonas.kvarnstrom@liu.se 2017 Sammansatta datatyper Generics: Parametrisk polymorfism Listor och arrayer 2 Enligt TDDD73: Många språk har både listor och arrayer även Java och Python! Exakta definitioner
Läs merDet här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.
Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av
Läs merIdag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
Läs merProgrammering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Läs merLunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer
Läs merIntroduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?
Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se
Läs merIntroduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder
Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merInnehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser
Föreläsning 1 Innehåll Introduktion till objektorientering OOP (objektorienterad programmering) Objekt, instanser, klasser C++ OO i C++ Standardbibliotek Utökningar från C (syntaktiskt socker) Introduktion
Läs merPROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Läs merKursplanering Objektorienterad programmering
Kursplanering Objektorienterad programmering Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-OOP Klass Systemutvecklare.NET 2 Syfte och koppling till yrkesrollen Syftet är att få en stabil grund
Läs merMer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML
Målet Mer OOP Mer om klasser Några exempel UML Modularitet Språkligt modulära enheter Få gränssnitt Små gränssnitt Tydliga gränssnitt Dold information Återanvändbarhet Variation i typer Variation i datastrukturer
Läs merParameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Läs merArv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Läs merObjektorienterad Programkonstruktion. Föreläsning jan 2016
Objektorienterad Programkonstruktion Föreläsning 13 19 jan 2016 Tentamen Del I, E del Flervalsfrågor 20/25 krävs för godkänt, ger betyg E Upp till 7 möjliga bonuspoäng Del II, Högrebetygsdel Problemfrågor
Läs merObjektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.
Objektorienterad programmering E Telefonboken, än en gång Föreläsning 5 Wrapper classes Exempel, histogram. Inldening om undantag. Mer om klassen Påminnelse Vår senaste version bestod av två klasser, bägge
Läs merFöreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Läs merHögskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin
Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 Hjälpmedel: Inga hjälpmedel är tillåtna
Läs merLäs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).
1 (11) TENTAMEN: Objektorienterade applikationer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att
Läs merIntroduktion till programmering. Programspråk och paradigmer
Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly
Läs merTesttentamen i kursen TDTS04 Datornät och distribuerade system vt 2009
LiTH, Tekniska högskolan vid Linköpings universitet (6) IDA, Institutionen för datavetenskap Juha Takkinen 009-03- Testtentamen i kursen TDTS04 Datornät och distribuerade system vt 009 Lokal Valfri. Tillåtna
Läs merUML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.
Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language
Läs merTDTS04: Ett chattsystem i java baserat på corba
18 January 2010 TDTS04: Ett chattsystem i java baserat på corba Juha Takkinen, Ph.D. IDA, Institutionen för datavetenskap 1.0 Översikt Labb 3 består av att utforma, implementera, testa och demonstrera
Läs merTestning av program. Verklig modell för programutveckling
Fel i program När man skriver program uppkommer alltid fel. Felen kan indelas i följande kategorier: Under kompileringen upptäcker kompilatorn fel som handlar om att man använt konstruktionerna i programspråket
Läs merLÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Läs merTentamen ID1004 Objektorienterad programmering October 29, 2013
Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
Läs merWebservice & ERP-Integration Rapport
Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...
Läs merITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Läs merKort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Läs merDagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Läs merDistribuerade system. CORBA eller RMI
Distribuerade system Java XII - 1 CORBA eller RMI Java XII - 2 Några motiv till distribuerade system kan vara att: Utjämna belastningen mellan olika maskiner i ett nätverk Utnyttja kapaciteten i en större
Läs merIdag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Läs merObjektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merPROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Läs mer1 Klasser och objektorientering Vad är objektorientering?
1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det
Läs mer(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
Läs merIntroduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Läs merTDDD78 Objektorientering i Java, del 2
TDDD78 Objektorientering i Java, del 2 Objektvariabler är pekare vad är det? Hur används pekare för att sätta samman objekt (composition)? Hur används hierarkier för att modellera nära relaterade typer?
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merElisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.
Administrera din SAS miljö med SAS Metadata Server och SAS Management Console. Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved. SAS Intelligence Value Chain
Läs merOOP Objekt-orienterad programmering
OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym
Läs merFördjupande uppsats i datalogi
Fördjupande uppsats i datalogi Design Patterns: Elements of Reusable Object-Oriented Software Inledning Jag har läst boken Design Patterns: Elements of Reusable Object-Oriented Software. Boken, som myntade
Läs merUML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.
Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel
Läs merLaboration 2: Designmönster
Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om
Läs merTjoho. Applikationsutvecklarens handledning. Maj 2003
Tjoho Applikationsutvecklarens handledning Maj 2003 Uppdragsgivare: Ylva Dalén, KI Starthus Projektmedlemmar: Sophia Demnert, Elina Eriksson, Kamilla Johansson Per-Jonny Käck, Ingela Linered, Åsa Moum,
Läs merIdag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Läs merObjektorienterad programmering med Java, Generics
Generics i Java Generic: allmän, genersisk. På menyn på en asiatisk restaurang: Denna rätt serveras med valfritt kött, fisk eller skalddjur Bakgrund Generics i Java ger oss att skriva kod, klasser och
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Läs merWebbtjänster med API er
Webbtjänster med API er Mål med lektionen! Titta på hur service:ar fungerar och hur vi programmerar dem. Vad lektionen omfattar WCF Service WCF Services Vad är en WCF service? En WCF Service är ett program
Läs merObs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).
LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, Tomas Johansson, 491000 Resultatet anslås senast 08-05-16 i A-huset. Tillåtna
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merDagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning
1 Dagens föreläsning Programmering i Lisp - Block, räckvidd - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merKlassen javax.swing.timer
Klassen javax.swing.timer I Swing finns en klass Timer som man kan använda för att upprepa en vis kodsekvens med jämna tidsmellanrum. Ett objekt av klassen Timer exekveras som en egen tråd. Ett objekt
Läs merSKOLFS. beslutade den -- maj 2015.
SKOLFS Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan och inom kommunal vuxenutbildning på gymnasial nivå; beslutade den -- maj
Läs mer