Introduction to JAX-WS. Φοιτητής : ηµόπουλος Κωνσταντίνος

Σχετικά έγγραφα
JAX-RPC (Web Services) ΕΠΛ 425: Τεχνολογίες ιαδικτύου Μιχάλης Έλληνας

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

ΚΕΦΑΛΑΙΟ 17: Web Services Εισαγωγή

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 9: Web Services. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Υπηρεσίες Ιστού (Web Services) Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας Μεταπτυχιακό Πρόγραμμα Αθήνας Έτος

* Enterprise Resource Planning ** Customer Relationship Management

Γλωσσική Τεχνολογία. HTML/XML Processing HTTP Services

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Διπλωματική Εργασία. Μέλλιος Θωμάς, Πετρίδης Κοσμάς. Επιβλέπων Καθηγητής: Πρωτόγερος Νικόλαος

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Αρχιτεκτονική πελάτη-εξυπηρέτη Οι διεργασίες που εκτελούνται στο δίκτυο είναι είτε πελάτες (clients) είτε εξυπηρέτες (servers). Εξυπηρέτης: παθητικός,

Σύνθεση διαδικτυακών υπηρεσιών με χρήση τεχνικών σχεδιασμού ενεργειών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

Κατανεμημένα Συστήματα με Java. Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Η Γλώσσα WS-BPEL 2.0. Εργαστήριο Ανάλυσης Συστημάτων και Τεχνολογίας Λογισμικού. S3Laboratory

Πληροφορίες για το μάθημα

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Πύλη Φαρμακευτικών Υπηρεσιών Υπουργείου Υγείας Κύπρου. System Architecture Overview

Τεχνολογία Λογισμικού

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Remote Method Invocation (RMI)

BPMN Abstraction Tool ΠΑΡΟΥΣΙΑΣΗ ΕΡΓΑΛΕΙΟΥ ΑΦΑΙΡΕΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ

Αντικειμενοστρεφής Προγραμματισμός

Βασικές Έννοιες Web Εφαρμογών

ΑΠΟΘΕΤΗΡΙΟ ΕΦΑΡΜΟΓΩΝ ΥΠΠΕΘ ΚΑΙ ΕΠΟΠΤΕΥΟΜΕΝΩΝ ΦΟΡΕΩΝ (git.minedu.gov.gr)

Το Μέλλον για τα Συστήματα Διαχείρισης Ακτινολογικής Εικόνας (PACS)

Κεφάλαιο 1. Βασικά Στοιχεία της Java... 13

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET

Εισαγωγή στα Δίκτυα Υπηρεσιών

Πληροφορική στιςεπιχειρήσεις

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ. e-library

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. WSDLBook:

Εισαγωγή στη J2EE. Μέρος 2

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Σύστημα Ηλεκτρονικού Πρωτοκόλλου. Σχεδιασμός Υποσυστημάτων

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

Αντικειµενοστρεφής Προγραµµατισµός

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

Τεχνικός Εφαρμογών Πληροφορικής

Περίληψη ιπλωµατικής Εργασίας

Ταχύτητα, Απλότητα & Αξιοπιστία

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

ΟΝΤΟΛΟΓΙΕΣ, ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΔΙΑΚΥΒΕΡΝΗΣΗΣ

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud

Αντικειμενοστρεφής Προγραμματισμός

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

Το λειτουργικό σύστημα. Προγραμματισμός II 1

XML related standards

Κατανεμημένα Συστήματα. Javascript LCR example

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

Εργαστηριακή Άσκηση 5

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Συγκριτικά Πλεονεκτήµατα Γραµµατείας 2003 έναντι Γραµµατείας 2.5

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

ΚΕΦΑΛΑΙΟ Web Services

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Πανεπιστήµιο Μακεδονίας. Πτυχιακή εργασία.

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Προβλήµατα CGI, SSI CGI: Απόδοση Έναρξη νέας διαδικασίας για εκτέλεση (2 διαδικασιών σε περίπτωση διερµηνευόµενης γλώσσας, π.χ. perl). Κοινές διαδικασ

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Τµήµα Πληροφορικής. Υλοποίηση LRU Cache ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ - ΕΡΓΑΣΙΑ 4. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης. Γενικά περί Caching

Φορολογική Βιβλιοθήκη. Θανάσης Φώτης Προγραμματιστής Εφαρμογών

(Διαφάνειες Νίκου Βιδάκη)

ΚΑΤΑΝΕΜΗΜΕΝΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΣΥΣΚΕΥΩΝ ΑΣΗΜΑΚΟΠΟΥΛΟΣ ΣΩΤΗΡΗΣ ΑΜ : 3021

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Ειδικά Θέματα Προγραμματισμού

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΤΕΙ ΚΡΗΤΗ. Διαχείριση session σε Web Services. Εισηγητής: Μάρης Ιωάννης. Επιμελητής: Αθανάσιος Μαλάμος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Σύστημα Αναθέσεων. Σχεδιασμός Υποσυστημάτων

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Εισαγωγή στην Πληροφορική

03 Τεχνική διαχείριση έργων λογισμικού

Κλάσεις και Αντικείµενα

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: ΗΛΙΑΣ ΦΥΛΑΚΤΟΥ

Transcript:

Introduction to JAX-WS Φοιτητής : ηµόπουλος Κωνσταντίνος

οµή Παρουσίασης Introduction to JAX-WS About Web Services Πρωτόκολλα WS Περιγραφή λειτουργίας WS JAX-WS Server/Client side Τα πλεονεκτήµατα του JAX-WS Service endpoint Bασικά βήµατα για την δηµιουργία ενός web service Binding xml schemas and java classes (JAXB) Streaming API for XML (StAX) SOAP with Attachments API for Java (SAAJ) Τρόποι δηµιουργίας WS

Introduction to JAX-WS Η JAX-WS αντιστοιχεί σε Java API for XML Web Services Είναι µια τεχνολογία για την κατασκευή web services και εφαρµογές πελατών (που θα χρησιµοποιούν την υπηρεσία),όπου επικοινωνούν χρησιµοποιώντας XML Επιτρέπει στους developers να κατασκευάζουν message-oriented καθώς και RPC-oriented web services

About Web Services Σύµφωνα µε το W3 (World Wide Web Consortium), Web Service ορίζεται ένα σύστηµα λογισµικού σχεδιασµένο να υποστηρίζει διαλειτουργική αλληλεπίδραση µεταξύ συστηµάτων σε ένα δίκτυο Συχνά τα Web Services είναι απλά Web APIs (Application Programming Interfaces),στα οποία µπορουν να έχουµε πρόσβαση µέσα από ένα δίκτυο,όπως το Internet Επίσης είναι υπηρεσίες που εκτελούνται σε αποµακρυσµένο σύστηµα που «παρέχει» τις υπηρεσίες και περιµένουν αιτήσεις για τη λειτουργία τους από τους πελάτες (client-server model) Όταν χρησιµοποιούµε τον όρο Web Service θα αναφερόµαστε σε clients (πελάτες) και servers (εξυπηρετητές) που επικοινωνούν µε XML messages που ακολουθούν το SOAP standard To WSDL είναι µια περιγραφή των λειτουργιών-υπηρεσιών που προσφέρει ο server (εξυπηρετητής)

Πρωτόκολλα WS Πρωτόκολλα που χρησιµοποιούν τα WS : XML : προσφέρει ένα text-based τρόπο να περιγράφει και να εφαρµόζει µια ιεραρχική δοµή δέντρου σε πληροφορίες,στις Web Services χρησιµοποιούν την XML,διότι είναι εύκολη στη χρήση και µπορεί να χρησιµοποιηθεί από διαφορετικές πλατφόρµες SOAP : (Simple Object Access Protocol),είναι ένα πρωτόκολλο για ανταλλαγή XML-based µηνυµάτων σε δίκτυα υπολογιστών και κυρίως χρησιµοποιώντας το HTTP, HTTPs. Επίσης προσφέρει ένα απλό και ελαφρύ µηχανισµό για ανταλλαγή δοµηµένων πληροφοριών µεταξύ εφαρµογών σε ένα κατανεµηµένο περιβάλλον χρησιµοποιώντας XML. Tο SOAP προσφέρει ένα τρόπο να επικοινωνούν εφαρµογές που τρέχουν σε διαφορετικά λειτουργικά συστήµατα, τεχνολογίες και γλώσσες προγραµµατισµού

Πρωτόκολλα WS το SOAPαποτελείται από 3 µέρη, το SOAP envelope construct που ορίζει τι είναι µέσα στο message, σε ποιόν αναφέρεται,το SOAP encoding rules και το SOAP RPC WSDL : (Web Services Description Language) είναι µια XMLbased γλώσσα για να περιγράφει τα web services καθώς και το πως θα έχουν πρόσβαση σε αυτές. Aντίστοιχα πρέπει να δηµιουργείται ένα αρχείο WSDL στο οποίο θα καταγράφονται όλες οι πληροφορίες για το ίδιο το service, το πού βρίσκεται ο server (σε ποια διεύθυνση), ποιες λειτουργίες υποστηρίζει καθώς και πως δέχεται και πως επιστρέφει τα δεδοµένα για καθε λειτουργία

Πρωτόκολλα WS UDDI : (Universal Description, Discovery and Intergration) αποτελεί ένα πρωτόκολλο καταχώρησης για web services. Στην ουσία είναι ένα πρωτόκολλο για δηµοσίευση και ανακάλυψη web services,δηλαδή επιτρέπει σε εφαρµογές να αναζητούν τις web services είτε κατά τη συγγραφή τους, είτε κατά την λειτουργία τους. Κάθε καταχώρηση περιέχει το WSDL αρχείο και τη διεύθυνση που λειτουργεί η υπηρεσία στο Internet. Επιπλέον σε κάθε καταχώρηση υπάρχουν και διάφορες άλλες πληροφορίες για την υπηρεσία που σχετίζονται µε τον ιδιοκτήτη της, την πολιτική του κτλ.

Περιγραφή λειτουργίας WS Ο Service Requester αναζητά για κάποιο Web Service στο UDDI,που στην ουσία είναι ένα interface που περιέχει πληροφορίες όλων των καταχωρηµένων Web Services και επιστρέφει τα αποτελέσµατα σε αυτόν Η αναζήτηση και εύρεση των Web Services από το UDDI γίνεται µε τη βοήθεία της WSDL, η οποία είναι ένας τρόπος για να περιγράφουν τα Web Services τις υπηρεσίες-λειτουργίες που προσφέρουν

Περιγραφή λειτουργίας WS Αν ο Service Requester θελήσει να χρησιµοποιήσει κάποια λειτουργία-υπηρεσία ενός Web Service επικοινωνεί µε τον Service Provider µέσω του πρωτοκόλλου SOAP, το οποίο σκοπός του είναι να στέλνει το αίτηµα στον Service Provider µε µια συγκεκριµένη µορφή (message envelope format).τέλος ο Service Provider µόλις δεχτεί το αίτηµα θα απαντήσει πάλι µέσω του SOAP και µε την ίδια µορφή στον Service Requester

Περιγραφή λειτουργίας WS Λειτουργία Web Service

JAX-WS Στην JAX-WS, ένα web service operation invocation αναπαρίσταται από ένα XML-based πρωτόκολλο,όπως το SOAP Το SOAP specification ορίζει την envelope structure, encoding rules, and conventions για την αναπαράσταση των κλήσεων και των απαντήσεων των web services (calls and responses) Αυτά τα calls και τα responses αποστέλλονται µέσω SOAP µηνυµάτων (XML files) over HTTP

JAX-WS (server/client side) Server side Ο developer καθορίζει τις λειτουργίες του web service,ορίζοντας µεθόδους σε ένα interface γραµµένο σε Java Επίσης ο developer µπορεί να γράψει µια ή περισσότερες κλάσεις που υλοποιούν αυτές τις µεθόδους Client side Ένας client δηµιουργεί ένα proxy (a local object που αναπαριστά την υπηρεσία) και στη συνέχεια απλά καλεί µεθόδους στο proxy Με την JAX-WS, ο developer δεν δηµιουργεί ούτε κάνει parse σε SOAP messages. Το JAX-WS runtime system αναλαµβάνει να µετατρέψει τα API calls και responses σε και από SOAP messages.

Τα πλεονεκτήµατα της JAX-WS Με την JAX-WS, οι clients και τα web services είναι ανεξάρτητα του συστήµατος (platform independence) εξαιτίας της Java Επίσης η JAX-WS δεν είναι restrictive, δηλαδή ένας JAX-WS client µπορεί να έχει πρόσβαση σε ένα web service,το οποίο δεν τρέχει σε Java platform, και αντίστροφα Η ευελιξία αυτή έγκειται στο γεγονός ότι η JAX-WS χρησιµοποιεί τεχνολογίες που ορίζονται από το World Wide Web Consortium (W3C) όπως : HTTP, SOAP, WSDL Επειδή τα SOAP messages είναι πολύπλοκα, η JAX-WS API αποκρύπτει την πολυπλοκότητα από τον developer και δίνει τη δυνατότητα στον developer να ασχοληθεί µε την λειτουργικότητα του web service

Service endpoint Η αρχή για την ανάπτυξη µιας JAX-WS web service είναι η Java κλάση javax.jws.webservice.ο @WebService σχολιασµός ορίζει την κλάση σαν ένα web service endpoint Ένα service endpoint interface ή µια service endpoint implementation (SEI) είναι µια Java interface ή κλάση αντίστοιχα, που δηλώνει τις µεθόδους τις οποίες ο πελάτης µπορεί να καλέσει στην υπηρεσία. Το interface δεν είναι αναγκαίο όταν δηµιουργούµε ένα JAX-WS endpoint. Η web service implementation class έµµεσα ορίζει ένα SEI Επικοινωνία µεταξύ ενός JAX-WS Web Service και ενός πελάτη

Βασικά βήµατα δηµιουργίας WS Τα βασικά βήµατα για την δηµιουργία ενός web service και client είναι : 1.Code the implementation class 2.Compile the implementation class. 3.Use wsgen to generate the artifacts required to deploy the service 4.Package the files into a WAR file 5.Deploy the WAR file. The web service artifacts (which are used to communicate with clients) are generated by the Application Server during deployment 6.Code the client class 7.Use wsimport to generate and compile the web service artifacts needed to connect to the service 8.Compile the client class 9.Run the client

Binding xml schemas & java classes Σύνδεση XML Schemas µε Java Classes Η αρχιτεκτονική της JavaTM για XML Binding (JAXB) προσφέρει ένα γρήγορο και εύκολο τρόπο να κάνεις σύνδεση µεταξύ XML schemas και Java representations, κάνοντας εύκολο στους Java developers να ενσωµατώσουν XML data και processing functions σε εφαρµογές Java. Ως ένα µέρος της διεργασίας η JAXB διαθέτει µεθόδους µετατροπή XML instance documents σε Java content trees και στη συνέχεια για µετατροπή τωνjava content trees πάλι σε XML instance documents. Η JAXB επίσης διαθέτει ένα τρόπο για τη δηµιουργία XML schema από Java objects

Binding xml schemas & java classes JAXB Architectural Overview The JAXB Binding Process

Streaming API for XML Streaming API for XML (StAX), a streaming Java-based, eventdriven, pull-parsing API for reading and writing XML documents. Το StAX επιτρέπει την δηµιουργία bidrectional XML parsers,οι οποίοι είναι γρήγοροι,σχετικά εύκολοι να προγραµµατιστούν και έχουν light memory footprint Το StAX είναι το τελευταίο API στην JAXP οικογένεια και προσφέρει µια εναλλακτική σε SAX, DOM, TrAX και DOM για developers που αναζητούν high-performance stream filtering, processing και modificationσυγκεκριµένα µε µικρή µνήµη και limited extensibility requirements Το StAX πρσφέρει ένα standard, bidirectional pull parser interface για streaming XML processing, προσφέροντας ένα πιο απλό προγραµµατιστικό µοντέλο από το SAX και πιο αποδοτική διαχείριση µνήµης από το DOM. Το StAX επιτρέπει στους developers να parse και να modify XML streams as events

SOAP with Attachments API for Java SOAP with Attachments API for Java : (SAAJ) κυρίως χρησιµοποιείται για τα SOAP messaging που υπάρχουν πίσω από τους JAX-WS handlers και JAXR implementations. Επίσης είναι ένα API όπου οι developers µπορούν να χρησιµοποιήσουν όταν επιλέγουν να γράφουν SOAP messaging applications απευθείας,χωρίς να χρησιµοποιούν JAX-WS. Το SAAJ API επιτρέπει να κάνεις XML messaging από µια Java platform: απλά δηµιουργώντας κλήσεις µεθόδων χρησιµοποιώντας SAAJ API, µπορείς να διαβάζεις και να γράφεις SOAP-based XML messages και µπορείς να στέλνεις και να λαµβάνεις τέτοια µηνύµατα µέσω του Internet

Τρόποι δηµιουργίας WS Ξεκινώντας από ένα WSDL file (top-down approach) ηµιουργία κλάσεων χρησιµοποιώντας wsimport WS interface WS implementation skeleton class Build,deploy and test Ξεκινώντας από Plain Old Java Objects (POJO) (bottom-up approach) Annotate POJO Build and deploy Αυτόµατη δηµιουργία WSDL αρχείου

Server-side programming model Ξεκινώντας από POJO 1. Συγγραφή POJO implementation για την υπηρεσία 2. Προσθήκη @WebService annotation σε αυτό 3. Προαιρετικά βγάλε WebServiceContext 4. Ανάπτυξη εφαρµογής 5. είξε στους πελάτες το WSDL π.χ http://myserver/myapp/myservice?wsdl

Servlet-Based Endpoint @WebService public class Calculator { } public int add(int a, int b) { return a+b; } @WebService annotation : όλες οι public methods γίνονται web service λειτουργίες WSDL/Schema δηµιουργούνται αυτόµατα µε default τιµές

Client-Side programming 1. είξε στο WSDL για την υπηρεσία π.χ wsimport http://example.org/calculator.wsdl 2. ηµιουργία annotated κλάσεων και interfaces 3. Κλήση new στην service class 4. Χρήση ενός proxy χρησιµοποιώντας την get <ServiceName> Port µέθοδο 5. Κλήση οποιασδήποτε αποµακρυσµένης λειτουργίας

Java SE-based Client CalculatorService svc = new CalculatorService(); Calculator proxy = svc.getcalculatorport(); int answer = proxy.add(35, 7); H xml είναι εντελώς κρυµµένη από τον προγραµµατιστή Ο κώδικας είναι πλήρως portable

Αναφορές The Java EE tutorial (http://java.sun.com/javaee/5/docs/tutorial/doc/bnayn.html)

Τέλος Παρουσίασης Σας ευχαριστώ πολύ