CORBAservices
- stellen grundlegende Operationen für Modellierung und Speicherung von Objekten
- system level components
- Bsp.: Naming, Events, Persistence, Transaction, Security, ...
CORBAfacilities
- Sammlung von Klassen, die höherwertige Dienste zur Verfügung stellen
- application level components
- Bsp.: Druckdienste, Dokumentenmanagement, EMail, ...
CORBAdomains
- branchenspezifische Klassen (vertikales Segment)
- Bsp.: Klassen für Finanzwesen, medizinische Anwendungen, ...
Application Objects
- eigentliche Anwendungsobjekte
IDL Construct Java Construct module package interface interface, helper class, holder class constant public static final boolean boolean char, wchar char octet byte string, wstring java.lang.String short, unsigned short short long, unsigned long int long long, unsigned long long long float float double double enum, struct, union class sequence, array array exception class readonly attribute method for accessing value of attribute (getter) readwrite attribute methods for accessing and setting value of attribute (getter/setter) operation method
corbabase.idl
module corbabase {
struct Person {
string name;
string firstName;
string eMail;};
struct PersonVector {
sequence <Person> elements;
};
interface Server {
void store(in Person p);
void delete(in Person p);
PersonVector getAll();
};
};
corbabase/Person.java | Klasse für 'struct Person' |
corbabase/PersonHelper.java | Hilfsklasse für Serialisierung und Typmanipulation |
corbabase/PersonHolder.java | Support für out und inout Parameter |
corbabase/PersonVector.java | Klasse für 'struct PersonVector' |
corbabase/PersonVectorHelper.java | |
corbabase/PersonVectorHolder.java | |
corbabase/Server.java | Remote Interface 'Server' |
corbabase/ServerHelper.java | |
corbabase/ServerHolder.java | |
corbabase/_ServerStub.java | Stub |
corbabase/_ServerImplBase.java | Skeleton (Server Implementation muß hiervon ableiten) |
public class ServerImpl extends _ServerImplBase {
private Vector persons; //stores all datasets public ServerImpl() { super(); persons=new Vector(); } public synchronized void store(Person p) { //add person p to the database //if p already exists update dataset int pos=persons.indexOf(p); if (pos == -1) { persons.addElement(p); } else { persons.setElementAt(p,pos); } } public synchronized void delete(Person p) { //remove person p from the database //if p does not exist do nothing persons.removeElement(p); } public synchronized PersonVector getAll() { //return a whole copy of the database Person[] pElements=new Person[persons.size()]; for (int i=0; i<persons.size(); i++) { pElements[i]=(Person)persons.elementAt(i); } return new PersonVector(pElements); } } |
public static void main(String[] args) {
try { // create
and initialize the ORB
|
public class Client {
private Server serverRef; //remote reference to the server public Client(Server serverRef) { this.serverRef=serverRef; ... } void store(String name, String firstName, String eMail) { //create new person and store it Person p=new Person(name,firstName,eMail); serverRef.store(p); }
}
// create and initialize the ORB
// start client
|
© 1998 sven.buergel@informatik.tu-chemnitz.de |