All + All -
1. Program verzió ( PDA )
Tervezés
o Architektúra-terv
o Technológiák választása
Java:
A választott programozási nyelv a Java. A céleszközünkön futó Java Virtuális Gépről (Java
Virtual Machine, JVM) feltételezzük, hogy teljes támogatottságot biztosít a Java 1.3
használatához. A mobil eszközre való fejlesztést Az IBM Websphere Device Developer
programjával készítettem. A program lehetőséget biztosít arra, hogy különböző verziójú JVM-
ekre való kompatibilitással fordíthassuk le a fejlesztés alatt álló projektet, illetve le is
futtathatjuk egy beépített Mobile Profile emulátor segítségével.
Jini:
A jini technológia olyan szolgáltatás-orientált architektúra, amely egy programozási modellt
definiál (java technológiára alapul, és kiegészíti azt) melynek segítségével biztonságos elosztott
rendszereket építhetünk fel. Ezekben a rendszerekben jól meghatározott funkciókkal rendelkező
szolgáltatások, és a szolgáltatásokat felhasználó kliensek működnek együtt. Minden hálózat,
amely ilyen elemekből épül fel (szolgáltatások és azokat használó kliensek), menedzselhető (
felépíthető, karbantartható, illetve lebontható ) a Jini technológia felhasználásával. A
szolgáltatások lehetnek:
Alkalmazások
Operációs rendszerek
Szerverek
Eszközök
Információs rendszerek
Mobil készülékek
Adattárak
Nyomtatók és egyéb perifériák
A Jini biztosítja az infrastruktúrát annak érdekében, hogy ezek az összekötött szolgáltatások
továbbítódjanak a hálózaton, és arra, hogy a programok, amelyek felhasználják őket, egyszerű
és spontán módon kapcsolatba léphessenek egymással, függetlenül a programok a hardver-
illetve szoftver felépítésétől. Tehát leegyszerűsödik a szolgáltatás elérés, platform- és operációs
rendszer független lesz, az elérés feltétele nem függ a hálózat kiépítésének struktúrájától, a
hálózati összeköttetés fizikai távolságától, és szolgáltatást biztosító hoszt gép eszköz fizikai
mivoltától sem.
Másik nagy előny a Jini azon tulajdonsága, hogy a hálózati komunikáció részleteit teljes
mértékben elrejti a felhasználó elől. Leegyszerűsíti a hálózati architektúra fejlesztését, ugyanis
nem szükséges a hálózati protokoll minden egyes rétegét megvalósítanunk. Illetve mivel a Jini
protokoll-független, az egyes protokollok közti különbségeket nem nekünk kell lekezelni, arról a
proxy ( a részletes definíciót lásd a fejezet további részében ) gondoskodik.
Rendszerünk egyik alapvető tulajdonsága az, hogy vezeték nélküli hálózaton kommunikáló mobil
eszközök halmazából áll. Elvárt funkcionalitás az hogy ezek az eszközök szolgáltatás nyújtó
tulajdonsággal rendelkezzenek, és mint szolgáltatások, felfedezhetővé váljanak a többi kliens
számára, akik ugyancsak felfedezhetők. Ezen kívül a konferencia kivetítőjét is látniuk kell mint
szolgáltatást, hogy a prezentációhoz szükséges műveleteket intézhessenek felé. Az így kialakuló
szolgáltatás-hálózat spontán (Ad-hoc) jellegű, és időben korlátozott, az összejövetel idejére
szól. A Jini technológia mellett szól az a nagyon fontos tulajdonság, hogy ez a szolgáltatás-
felfedezés ( lookup ) és szolgáltatás regisztráció ( registration ) (ezek a kifejezések a fejezet
későbbi részében részletes kifejtésre kerülnek ) valós időben, azonnal, és teljesen
automatikusan, előzetes konfiguráció szükségessége nélkül történhet.
Jini technology delivers access to services over any network for any platform, any
operating system, any application — regardless of the network complexity, distance,
or host device. This means it provides an easy, simple, and fast way to interact with
services simply by locating them on a network, with no further action required by
the user.
Simplifies Network Design and Management
Another significant differentiator is Jini’s potential to eliminate the need to design
to each layer in a network, simplifying network design and management.
-----------------------
Jini.org
Jini™ technology is a service oriented architecture that defines a programming model which both exploits and
extends Java™ technology to enable the construction of secure, distributed systems consisting of federations of
well-behaved network services and clients. Jini technology can be used to build adaptive network systems that
are scalable, evolvable and flexible as typically required in dynamic computing environments.
Jini executive overview
The Internet is changing the way we do many things. But most importantly, it is
changing the concept of networks from multiple connected computers to connected
devices — including computers — that deliver smart Web services through the
network. Although Jini™ technology is not a Web service, it can communicate with,
or be used to build, Web services. Jini technology was developed to address an
important set of long-term problems that must be solved before generic Web services
can be transformed into the highly personalized, cross-network, intelligent services
that future systems will provide.
As the next level beyond network connectivity, Jini technology provides developers
with tools to construct systems from distributed objects over networks. It offers
a simple infrastructure for delivering services over the network and creating
spontaneous interaction between programs that use these services, regardless
of their hardware or software implementations.
Any type of network made up of services and clients of those services can be easily
assembled, disassembled, and maintained on the network using Jini technology.
Examples of services that can be utilized in this way are:
n Applications
n Operating systems
n Servers
n Devices
n Information systems
n Mobile appliances
n Storage
n Printers
Jini technology delivers access to services over any network for any platform, any
operating system, any application — regardless of the network complexity, distance,
or host device. This means it provides an easy, simple, and fast way to interact with
services simply by locating them on a network, with no further action required by
the user. Jini technology can be applied to any industry serving commercial,
government, community, and consumer markets.
Simplifies Network Design and Management
Another significant differentiator is Jini’s potential to eliminate the need to design
to each layer in a network, simplifying network design and management.
FIGURE 1 ISO Seven-Layer Model of Networks
7 Ð Applications (NFS, FTP, HTTP)
6 Ð Presentation (XDE, XML, ASCI, Java serialization)
5 Ð Session (Sun RPC, DCE RPC, IIOP, RMI)
4 Ð Transport (TCP, UDP)
3 Ð Network (IP)
2 Ð Data Link (wire formats for messages)
1 Ð Physical (wires, signaling)
Because Jini technology is protocol-independent, developers can design to the
interface, not to each protocol. Network application design doesn’t have to adjust
to changes in the protocols, because the proxies take care of that. Performance is a
factor of how efficiently the network is designed; Jini technology has no impact on it.
With Jini technology, developers can realize enormous benefits:
n Design to the interface
n Create applications and services that interact without preinstalled drivers
n Take advantage of Jini technology’s self-healing nature; no need to reconfigure
upon failure
n Clean up is automatic, so garbage collection is eliminated
n Pay only for services that are used
n Ensure that applications are always current, without downtime or upgrading
n Change vendors at any time
n Modify equipment configurations easily, including legacy hardware and software
Conclusion
Sun’s Jini technology provides open, end-to-end solutions for creating dynamically
networked products, services, and applications that scale from devices to the
enterprise. This technology enables developers, service providers, and content
creators to gain a competitive business advantage and capitalize on new revenue
streams, by rapidly and cost-effectively developing and deploying compelling new
applications and services for their customers worldwide. All of Sun’s technologies,
including Jini, are developed with industry collaboration, allowing more widespread
innovation and providing a standards-based platform.
Because Jini technology addresses problems that only some companies are
experiencing, the requirement for this technology is not always readily apparent.
For the increasing number of companies that are already hitting the problems of
scale, component integration, and ad-hoc networking, especially in the financial,
automotive, and telecommunications industries, Jini technology is the premier
solution available today.
IBM J9 VM is another mobile Java-based virtual
machine. This JVM was used as part of WebSphere
Studio Device Developer (WSDD), an IBM Integrated
Development Environment for mobile devices using
J2ME (Java 2 Micro edition). IBM J9 which supports
J2ME (CDC & CLDC, MIDP & Personal Profile), the
official cut down version of Suns Java. Unfortunately
J”ME is very limited and was again unsuitable for our
development needs.
4.3 Java for Mobile Devices
The Finesse Grid Services are developed and
deployed on Globus Toolkit (GT3.2) which is a Javabased
environment; therefore Java for mobile devices
appeared as a natural starting point for our
investigation. We tried several mobile JVMs (Java
Virtual Machine) on our IPAQ PPC looking for one
that could support a minimum set of APIs to invoke
GT3.2 Grid services. In this process, we looked at the
following JVMs for mobile devices:
EWE VM [20] is a free and open source Java-based
VM for mobile devices (mainly PDAs). It comes with
an SDK (Ewe SDK) and provides support for advanced
features such as Infra-red, Synchronisation, Swing or
applets but its API’s compatibility is limited to Java 1.1
and 1.2 as well as the discontinued Personal Java. This
compatibility issue made it impossible for us to use the
Ewe VM.
Cre-ME and CrEme are two Java-based virtual
machines from NSICOM [7]. The Cre-ME 4.0 VM is
compatible with the J2ME Connected Device
Configuration (CDC) 1.0 which is based on JDK 1.3.1;
whereas CrEme 3.25 is compliant with Sun’s Personal
Java, mainly based on JDK 1.1.8. These two virtual
machines are based on two separate subsets of Java,
neither of which supported enough of the Java API to
run a Globus client.
IBM J9 VM is another mobile Java-based virtual
machine. This JVM was used as part of WebSphere
Studio Device Developer (WSDD), an IBM Integrated
Development Environment for mobile devices using
J2ME (Java 2 Micro edition). IBM J9 which supports
J2ME (CDC & CLDC, MIDP & Personal Profile), the
official cut down version of Suns Java. Unfortunately
J”ME is very limited and was again unsuitable for our
development needs.
SuperWaba VM [6] is another Java-based VM for
mobile devices (PDAs and smart phones). It is part of
the SuperWaba open source platform which defines a
language, a virtual machine, a class file format and a
set of basic classes. It has an active community and
developers can use common Java IDEs, however it
does not implement the standard Java specification and
its API does not support Java packages. Therefore
SuperWaba could also not be used in our exercise to
develop a mobile Figs clients.
In the end none of these virtual machines could
support client APIs to invoke the FIGS directly from
our Pocket PDA because they are all running some cut
down version of the Java API. We have therefore
concluded that at the moment there is also no Javabased
OGSI implementation for mobile devices.
Table 1 summarises the compatibility specifications
for each of the JVMs.
JVM Compatibility
EWE VM Java 1.1,
Java1.2,
Personal Java
Cre-ME J2ME CDC 1.0
CeEme Personal Java,
JDK 1.1.8
SuperWaba JDK 1.1+
IBM J9 J2ME
Table 1: Mobile JVM compatibility
platformfüggetlenség
Java 1.3 kliens oldalon
Java AWT
Jini
SOA megvalósíthatóság
Automatikus valós idejű lookup és regisztration szolgáltatások számára
Az alapja az Ad-hoc szolgáltatás hálózat felépülésének
Tanszéki támogatottság
o + - A program követelmény-rendszere
Funkcionális követelmények
A konferencia résztvevői által futtatott alkalmazásnak (kliensprogram)
automatikousan, felhasználói interakció nélkül ki kell építenie a hálózati
kapcsolatot a szerverprogrammal (kivetítő oldali program)
jini alapvető tulajdonsága, fel lehet használni a jini előnyeinél )
A kliensprogramnak képesnek kell lennie saját fájrenszerén található
képállományok továbbítására a szerverprogram felé, ottani megjelenítés céljából
A kliensprogram le tudja kérdezni a kivetítőn aktuálisan megjelenített képet, és
lokálisan megjeleníteni azt
A kliensprogram segítségével rajzolni tudunk az aktuálisan kivetített képre
A helyi képünkön lévő rajzról kiszámítani a koordináta-arányokat , és
továbbítani azokat a server felé
A rajzolást valós időben kell végrehajtani
A konferencián használt "felhasználónév" megadása, és eltárolása, amely
láthatóvá válik a többi résztvevő számára
a Kliens maga is felfedezhetővé válik más kliensek által
Saját fájlrendszerből dokumentumok továbbítása a többi kliensnek
Szolgáltatások neveinek lekérdezése, és azoknak egy listában való megjelenítése
Kliens, mint "terminál" távoli fájlrendszerünk felé
Szerver követelmények
Servernek, mint szolgáltatás, felfedezhetővé kell váljon kliensek felé
A server oldali programnak tudnia kell fogadni a kliensek által küldött
képeket, és meg kell tudnia jeleníteni őket
Rajz funkció
A kliensek által küldött koordináta-arányok fogadása, illetve
átszámítása koordináta-értékekké, majd kirajzolni őket a
megjelenített képre
Kép kezelési funkciók
A kép átméretezése teljes képernyőre
Kép megjelenítése valódi méretben
Kép mozgatása : Ha a kép nagyobb, mint
a megjeleníthető méret, és eredeti méretben
van (nincs átméretezve teljes képernyősre )
Nem funkcionális követelmények
Grafikus Felhasználói Felülettel kell hogy rendelkezzen /ÁTDOLGOZNI/
Képes képeket megjeleníteni PDA fájlrendszer megadott könyvrvtárából
Könyvtár váltható
Képek kicsinyítése
A kliensnek egy PDA programként kell futnia
Tallózás a képek között
Képek sorba állítása meghatározott tulajdonságok alapján
Méret
Típus
Név
Különböző nézetek támogatása
Teljes képrnyős nézet
Miniatűrök nézet
A megjelenített képek többféle nagyságra való
skálázása
Kicsi
Közepes
Menürendszer az elérhető funkciók kezeléséhez
Menü a projektor-interakciókhoz
Menü a kliens-interakciókhoz
Menü a nézetek navigálásához
A kliensprogram megállapítja a képernyő méretet
A felhasználói felület méretét képernyő nagyságához igazítja
A könyvtárban lévő képeket a rendszer automatikusan skálázza a
megállapított mérethez viszonyítva
Program alapfunkciók ismertetése:
Proxy fogalmának ismertetése
Szolgáltatás regisztráció ismertetése ( registration ):
A szolgáltatás, ahhoz hogy elérhető ( felfedezhető ) legyen, első feladata, hogy regisztrálja magát egy
úgynevezett lookup szolgáltatással ( lookup service / service locator ), amely egy szolgáltatás nyilvántartás.
Ebben a nyilvántartásban szerepel az összes szolgáltatás, és ennek a nyilvántatásban lehet keresni
szolgáltatásokat meghatározott attribútomok alapján. Ahhoz hogy be tudjon regisztrálni, a szolgáltatásnak
először fel kell derítenie egy, a hálózaton található lookup service –t. A felderítés kétfajta módon történhet. A
közös bennük az, hogy mindkét esetben a Jini a 4160-as TCP porton keresi a szolgáltatás-nyilvántartót. Az elsőt
akkor használjuk, ha ismert a lookup service elérési helye ( IP-cím ) a hálózaton, ennek a neve: unicast
discovery. Így a server direkt TCP hívással csatlakozni tud hozzá. A másik mód a multicast discovery,
ezesetben nem szükséges, hogy tudjuk a lookup service IP címét, a rendszer többesküldéses ( multicast ) UDP
üzenet formájában küldi szét a kérést a hálózaton, és az elérhető lookup service-ek ezt megkapják, és választ
küldenek a szervernek.
1.3. Service Registration
A service will actually be an object (or set of objects) which is living within a server. The server performs
various tasks on behalf of the service. The first stage is for the server to register the service with the lookup
service/service locator. In order to peform this registration, the server must first find a lookup service. This can
be done in two ways: if the location of the lookup service is known, then the server can use unicast TCP to
connect directly to it. If the location is not known, the server will make UDP multicast requests, and lookup
services will respond to these requests. Lookup services will be listening on port 4160 for both the unicast and
multicast requests. When the lookup service gets a request on this port, it sends an object back to the server.
This object, known as a registrar, acts as a proxy to the lookup service, and runs in the service's JVM (Java
Virtual Machine). Any requests that the server needs to make of the lookup service are made through this proxy
registrar. Any suitable protocol may be used to do this, but in practice the implementations that you get of the
lookup service (e.g from Sun) will probably use RMI.
What the server does with the registrar is to register the service with the lookup service. This involves taking a
copy of the service, and storing it on the lookup:
Figure 1.2: Querying for a service locator
Figure 1.3: Registrar returned
Figure 1.4: Service uploaded
Szolgáltatások felfedezésének ismertetése ( lookup )
o A Beamer Service ismertetése
Felület bemutatása
Funkciók
Kép kivetítés
Rajzolás
o A kliens program ismertetése
Szerepkörök és kapcsolatok rövid leírása:
Nézetek
Browser
Full Screen
Drawing
Service List
Funkciók ( Illusztráció UML diagramokkal )
Send Image
Show Image In Full Screen
Draw To Image
Send Document
o Interfész-struktúra előállítása,
beillesztése, magyarázatokkal
o Objektum - modellek és folyamatábrák UML diagramjai
+ - Implementálás és tesztelés
o + - Minden alfejezethez az alfejezethez szükséges
esetleges technológiai / programozástechnikai
ismeretek leírása a fejezet elején
Alapvető programozási tudást feltételezünk,
csak az esetleges komplex,
vagy elsőre nem érthető dolgokra térünk ki
A fejlesztési folyamatot funkciók szerint
csoportosítsuk, vagy időrendi
sorrendben mutassuk be?
+ - Összegzés
o Összefoglalás
+ - Milyen környezetben ideális használni
Kis létszámú meeting környezet
Egyértelmű, hogy nem kell a biztonsággal foglalkozni, mert átlátható a
meeting, megbízható emberekből áll
Dokumentumok megosztása
Hozott dokumentumok spontán kivetítése, közben magyarázás
Esetleg rajzolás
Konklúziók
Előnyök és hibák elemzése
o Továbblépés az új verzióra
Mlyen okokból
Biztonsági alrendszer hiánya
Integrálhatóság a JGrid rendszerbe
Laptopok kis teljesítményű gépek, kis kijelzők, Wireless hálózat hátrányai