Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - linia de studiu maghiară
Limba de predare: Maghiară

SYLLABUS

I. Általános adatok
Kód	Tantárgy neve	
MID0012	Osztott rendszerek programozása – Java platformok
(Programare distribuită - platforme Java)	

Félév	Órák: C+S+L+P	Kategória	Típus	
5	2+0+1+0	szaktárgy	opcionális	

II. Főállásban az Egyetem oktatói
Név	Tudományos	Oktatói	Tanszék	Tevékenység	
	fokozat	státus		E	Sz	L	
SIMON Károly	Dr. 	Lect.	Limbaje şi Metode de Programare	*			

Társult oktatók
Név	Tudományos	Intézmény	Állás	Tevékenység 	
	fokozat		típusa	E	Sz	L	

III. A tantárgy célkitűzései
•	a Java programozási nyelvvel és standard Java platformmal kapcsolatos ismeretek felfrissítése, bizonyos kapcsolódó fogalmak részletesebb tárgyalása, kiegészítő témakörök bemutatása, az ismeretanyag elmélyítése
•	osztott vállalati rendszerekkel kapcsolatos bevezető témakörök, használt technológiák bemutatása
•	a Java webprogramozási technológiák alapjainak elsajátítása
•	osztott rendszerek megvalósításának lehetőségei, távoli objektumok elérése, távoli metódushívások, kapcsolódó API-k és standardok megismerésre
•	néhány hálózati programozással és osztott rendszerekkel kapcsolatos modern keretrendszer bemutatása
•	mobileszközökön működő alkalmazások fejlesztésének lehetőségei Java-ban	

IV. A tantárgy tartalma
•	A Java programozással kapcsolatos ismeretek átismétlése, kiegészítése, elmélyítése
•	Adatbázisok elérése Java-ban, kapcsolódó API-k és minták (JDBC, Abstract DAO Factory, stb.)
•	XML állományok feldolgozása Java-ban, osztott rendszerekkel kapcsolatos felhasználási lehetőségek (konfiguráció, building, kommunikáció), kapcsolódó eszközök (pl. Ant), protokollok (pl. SOAP)
•	Java webprogramozási technológiák alapjai (servlet, JSP)
•	Osztott rendszerek, távoli metódushívások (CORBA, RMI)
•	Webszolgáltatások
•	Hálózati programozással, osztott rendszerekkel kapcsolatos keretrendszerek (pl. Apache Mina, Struts, stb.)
•	Mobileszközökön működő alkalmazások fejlesztése (Java ME, Android) 	

V. Könyvészet
1.	Arnold K., Gosling J., Holmes D., The Java Programming Language, 4th edition, Addison-Wesley Professional, 2005.
2.	Bill Burke, Richard Monson-Haefel, Enterprise JavaBeans 3.0, 5th edition, O'Reilly, 2006
3.	Antal Margit, Java alapú webtechnológiák (Java Web Programming), Cluj-Napoca, Scientia, 2009, http://www.ms.sapientia.ro/~manyi/teaching/java/java_web_technologiak.pdf
4.	Ruff Laura, Web programozás, http://www.cs.ubbcluj.ro/~laura/webprg09-10/foliak.htm
5.	***, CORBA/IIOP Specifications, OMG, http://www.omg.org/technology/documents/corba_spec_catalog.htm
6.	***, Apache MINA Tutorial, Apache Software Foundation, http://mina.apache.org/quick-start-guide.html
7.	***, RMI Tutorial, Sun Microsystems, 2008.
http://java.sun.com/docs/books/tutorial/rmi/index.html
8.	***, JDBC Tutorial, Sun Microsystems, 2008.
http://java.sun.com/docs/books/tutorial/jdbc/index.html
9.	***, Java Servlet Technology Documentation, Sun Microsystems, http://java.sun.com/products/servlet/docs.html
10.	***, JavaServer Pages Technology Documentation, Sun Microsystems, http://java.sun.com/products/jsp/docs.html
11.	***, Java EE 6 Tutorial, Sun Microsystems, 
http://download.oracle.com/javaee/6/tutorial/doc/
12.	***, Java ME – Technical Documentation, Sun Microsystems, http://download-llnw.oracle.com/javame/
13.	***, Android – Developer's Guide, Android Developers, http://developer.android.com/guide/index.html

VI. Az oktatói tevékenység heti tematikája
1.	Java ismétlés és kiegészítések – I. rész
a.	Nyelvi alapok, objektumorientált programozás Java-ban - ismétlés
b.	Kivételkezelés részletesebben – kapcsolódó minták, receptek
c.	Naplózás, naplózási keretrendszerek (Java Logging API, Log4j)
2.	Java ismétlés és kiegészítések – II. rész
a.	Grafikus felhasználói felületek – az AWT és SWING eszköztárak ismétlése
b.	Eseménykezelés általánosabban – példák
c.	Grafika és Appletek – ismétlés
d.	Properties objektumok
e.	Nemzeköziesítés és lokalizáció
f.	A sandbox mechanizmus, biztonsággal kapcsolatos megoldások
3.	Java ismétlés és kiegészítések – III. rész
a.	Végrehajtási szálak: alapfogalmak ismétlése, szinkronizálás, érvénytelenített metódusok helyettesítése
b.	Adatfolyamok: adatfolyamokkal és állománykezeléssel kapcsolatos alapfogalmak ismétlése, a Java szerializálási mechanizmusa, a pipeline mechanizmus
c.	Gyűjtemény keretrendszer és generikus típusok – ismétlés
d.	A hálózati programozás alapjai - ismétlés
4.	Adatbázisok elérése 
a.	A JDBC API
b.	Többrétegű szoftverarchitektúrák
c.	A DAO Factory tervezési minta
5.	XML feldolgozás, alkalmazás osztott rendszerek fejlesztésénél
a.	XML érvényességének vizsgálata (DTD, XSD)
b.	XML feldolgozók (DOM, SAX)
c.	XML transzformációk (XSLT)
d.	XML konfigurációs állományok
e.	Apache Ant
f.	SOAP alapok
6.	Java webprogramozási technológiák alapjai – I. rész
a.	Java EE
b.	Java web-alkalmazások
c.	A Java Servlet technológia
d.	Szessziókövetés
e.	Szűrők
7.	Java webprogramozási technológiák alapjai – II. rész
a.	Az MVC elv és a webes alkalmazások
b.	A JavaServer Pages technológia
c.	JSP elemkönyvtárak
8.	Távolsági metódushívásokon alapuló kliens-szerver alkalmazások
a.	az általános modell (egy Distributed Object Application általános modellje, távoli interfészek, objektumok, metódusok)
b.	CORBA (Common Object Request Broker Architecture)
i.	általános bevezető, OMG
ii.	CORBA összetevők (a kliens és a szerver oldal)
iii.	az IDL (Interface Definition Language), IDL-Java leképezés
iv.	CORBA alapú alkalmazások fejlesztése (példa)
c.	RMI (Remote Method Invocation)
i.	a Java RMI API
ii.	RMI alapú alkalmazások fejlesztése (a fejlesztés lépései, a szerver és kliens létrehozása)
iii.	RMI alapú alkalmazások futtatása
iv.	biztonsági mechanizmusok: class loaders, security managers, protection domains, kriptográfiai algoritmusok és a JCE (Java Criptography Extension), digitális aláírások
9.	Webszolgáltatások
a.	Alapfogalmak
b.	SOAP, WSDL
c.	JAX-WS, JAX-RS
10.	Keretrendszerek – I. rész
a.	A java.nio csomag
b.	Az Apache MINA keretrendszer
11.	Keretrendszerek – II. rész
a.	A Struts MVC
b.	A Struts keretrendszer
12.	Mobileszközökön működő Java alkalmazások készítése – I. rész
a.	A Java ME platform bemutatása
13.	Mobileszközökön működő Java alkalmazások készítése – II. rész
a.	Az Android rendszer áttekintése
b.	Az Android platform
c.	Android fejlesztések alapjai
14.	Osztott rendszerek, Java platformok és technológiák - összefoglaló

Gyakorlati tevékenységek (a laborórák feladatai):
1.	A Java programozási nyelv alapjainak ismétlésével párhuzamosan bemutatott kiegészítő témakörök elsajátítását segítő feladat
2.	A JDBC API és a DAO Factory minta alkalmazása
3.	XML feldolgozás Java-ban
4.	A Servlet és JSP technológiák alkalmazása
5.	Az RMI API alkalmazása
6.	Java webszolgáltatás
7.	Android alkalmazás

További információk: http://www.cs.ubbcluj.ro/~ksimon	

VII. Alkalmazott didaktikai módszerek
előadás, párbeszéd, gyakorlati feladatok, egyéni munka
az előadásokhoz tartozó jegyzetek kivetítése, a jegyzetek hozzáférhetővé tétele az Interneten	

VIII. Értékelés
A végső jegyet az alábbiakban leírtak szerint határozzuk meg: 
A. Labortevékenység: 40% 
B. Írásbeli vizsga: 40%
C. Gyakorlati vizsga: 20%
Az írásbeli és gyakorlati vizsgára a vizsgaidőszakban kerül sor. Az írásbeli vizsga elméleti jellegű, a gyakorlati vizsgán az anyaggal kapcsolatos egyszerű alkalmazást kell implementálni. 
A tantárgy sikeres letételéhez minden részeredmény (A, B és C) esetében átmenő osztályzatot (5) kell elérni.	

IX. Kiegészítő könyvészet
1. 	Boian F.M., Boian R.F., Tehnologii fundamentale Java pentru aplicaţii Web, Editura Albastră, Cluj, 2004
3.	Boian F.M., Ferdean C. M., Boian R.F., Dragos R.C., Programare concurentă pe platforme Unix, Windows, Editura Albastră - grupul Microinformatica, Cluj, 2002
4.	Boian F.M., Programare distribuită în Internet; metode și aplicații, Editura Albastră, Cluj, 1998 

	Dékán,						Tanszékvezető,

	Dátum,						Előadás felelőse,
	2010. okt. 1.						Lect. Dr. SIMON Károly