OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

14 okt. 2003, Arne Maus Inst. for informatikk, UiO
C++ for Java-programmerere
Datafiler og serialisering Tekstfiler Scanner-klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Uke 8 - Mer om: Objekter, klasser og pekere
NUUG.topic = Ruby.new Johannes Brodwall Takk til Dave Thomas for bruk av enkelte slides.
Polymorfi og arv, del 1 LC191D Videregående programmering Semesterplan: Høgskolen i Sør-Trøndelag, Avdeling.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Unit testing Gruppe 2: Kjartan Haugen Jon Gunnar Bjørkmo
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Tjenestebasert design med dynamiske proxyer og Spring Bjørn Vidar Bøe, JavaZone 2005.
Web Services gjennom eksempler Johannes Brodwall.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Java 12 Mer filbehandling - skrive til fil HashMap Et større eksempel Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Objektorientert programmering i PHP del 2
Java 14 Et eksempel fra bioinformatikk: analyse av biologiske sekvenser Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Eiendomregister mars 2002 Arne Maus. import java.util.*; import inf101.*; /* Klasse med main() som starter hele programmet */ class EiendomsregisterMain.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
En gang til!? .
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi.
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Kap 05 Abstrakte datastrukturer. Arv - Implementering Interface / Abstrakte klasser / Konkrete klasser Concrete classAbstract class Interface extends.
Design Patterns Iterator & Mediator. Gruppe 8 Presentasjonsgruppe:Resten av gruppen: Marianne AtesAndrè Johansen Tom Vidar LundeHege-Kristin Johansen.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
  Den perfekte julegaven til Javakoden din Johannes Brodwall Steria.
Java 11 Programmering med og uten objekter: hva er forskjellen?
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
Arv og polymorfi, del 3 Modifikatoren abstract side 2-3
Løsningsforslag til MOFScript oppgave. Metamodellen.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
02 - Java datatyper Grundlæggende om datatyper og variable.
CORBA Noen hull som må fylles: ORB Object Adapters CORBA services IDL Factory Objects.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
09 – Arv og polymorfi i java
Föreläsning 13 Programmeringsteknik och Matlab 2D1312/2D1305 Inläsning från fil Skriva till fil StringTokenizer Sortering.
INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Indledende Datalogi /kelk 1 Need to know Løkker Klasser, instanser og Objekter Hvorfor objektorientering? Scope – hvor erklæres en variabel? ”Access Modifiers”
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
INF Objektorientert programmering
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Inf1000 (Uke 10) HashMap og ArrayList
INF1000 (Uke 4) Mer om forgreninger, While-løkker
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringContainerklasser.2 Mange objekter.
IS-102 Interaksjon med objekter
BilSalg klassedatastruktur Bil klassedatastruktur
BilSalg klassedatastruktur Bil klassedatastruktur
Utskrift av presentasjonen:

OOT Seminar H-97 CORBA Praktisk del

Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger på OMG sin ”IDL to Java language mapping” fra Jun 97 n Gratis prøveversjon i 1 mnd.

”Counter” eksempel n Formål Beregne gjennomsnittstiden det tar for en klient å utføre en metode på et serverobjekt. Eksempel hentet fra Client/Server Programming with Java and CORBA Robert Orfali, Dan Harkey

Ide / Tidlig klassediagram CountServer CountClient Count > // Increment 1000 times for (int i = 0 ; i < 1000 ; i++ ) { counter.increment(); } public int increment() { sum++; return sum; }

Interface Defenition Language n Count Interfacet nedfelt i IDL module Counter { interface Count { attribute long sum; long increment(); }; }; Count > sum : long increment( ) : long

IDL til Java n Prekompilering idl2java count.idl n Produktet blir en ”Java Package” med navn Counter (navnet på modulen)

Hva generer idl2java kompilatoren n Count.java n _sk_Count.java CountImplBase.java n CountHelper.java n CountHolder.java (leverer container obj) n _st_Count.java n _tie_Count.java n CountOperations.java

Count.java package Counter; public interface Count extends org.omg.CORBA.Object { public void sum(int sum); public int sum(); public int increment(); } module Counter { interface Count { attribute long sum; long increment(); }; }; n Interface til Count objekt Count.idl Count.java

_st_Count.java n Java klasse for ”stub” kode n implementerer interface Count på klient siden n blir også kalt ”clientproxy” n denne klassen blir ikke direkte brukt av programmerere

Klassediagram Count > _sk_Count CountServer main( ) CountClient main( ) CountImpl 1 1..* 1 Server Client

Implementasjon CountImpl class CountImpl extends Counter._sk_Count implements Counter.Count { private int sum; // Constructor CountImpl(String name) { super(name); System.out.println("Count Object Created"); sum = 0; } // get sum public int sum() throws org.omg.CORBA.SystemException { return sum; } // set sum public void sum(int val) throws org.omg.CORBA.SystemException { sum = val; } // increment method public int increment() throws org.omg.CORBA.SystemException { sum++; return sum; }

Imlementasjon CountServer // CountServer.java: The Count Server main program class CountServer { static public void main(String[] args) { try { // Initialize the ORB. org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(); // Initialize the BOA. org.omg.CORBA.BOA boa = orb.BOA_init(); // Create the Count object. CountImpl count = new CountImpl("My Count"); // Export to the ORB newly created object. boa.obj_is_ready(count); // Ready to service requests. boa.impl_is_ready(); } catch(org.omg.CORBA.SystemException e) { System.err.println(e); }

Implementajson av CountClient // CountClient.java Static Client, VisiBroker for Java class CountClient { public static void main(String args[]) { try { // Initialize the ORB System.out.println("Initializing the ORB"); org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(); // Bind to the Count Object System.out.println("Binding to Count Object"); Counter.Count counter = Counter.CountHelper.bind(orb,"My Count");

// Set sum to initial value of 0 System.out.println("Setting sum to 0"); counter.sum((int)0); // Calculate Start time long startTime = System.currentTimeMillis(); // Increment 1000 times System.out.println("Incrementing"); for (int i = 0 ; i < 1000 ; i++ ) { counter.increment(); } // Calculate stop time; print out statistics long stopTime = System.currentTimeMillis(); System.out.println("Avg Ping = " + ((stopTime - startTime)/1000f) + " msecs"); System.out.println("Sum = " + counter.sum()); } catch(org.omg.CORBA.SystemException e) { System.err.println("System Exception"); System.err.println(e); }

Kjøring av eksempelet n Set CLASSPATH n Kompiler alle Java-klassene n Start: osagent (er en name service) n Start: java CountServer n Start: java CountClient

Resultat av kjøringen > java CountServer Count Object Created > java CountClient Initializing the ORB Binding to Count Object Setting sum to 0 Incrementing Avg Ping = 5.28 msecs Sum = 1000