ΔΗΜΙΟΥΡΓΙΑ ΜΗΧΑΝΗΣ ΑΝΑΖΗΤΗΣΗΣ ΠΡΟΣΩΠΩΝ ΣΤΟ SOCIAL WEB

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΔΗΜΙΟΥΡΓΙΑ ΜΗΧΑΝΗΣ ΑΝΑΖΗΤΗΣΗΣ ΠΡΟΣΩΠΩΝ ΣΤΟ SOCIAL WEB"

Transcript

1 Πανεπιστήµιο Πατρών, Πολυτεχνική Σχολή Τµήµα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Διπλωµατική Εργασία: ΔΗΜΙΟΥΡΓΙΑ ΜΗΧΑΝΗΣ ΑΝΑΖΗΤΗΣΗΣ ΠΡΟΣΩΠΩΝ ΣΤΟ SOCIAL WEB Γεώργιος Καλόγηρος Α.Μ.: 3384 Επιβλέπων: Τσακαλίδης Αθανάσιος, Καθηγητής Σεπτέµβριος

2 2

3 Η παρούσα εργασία εκπονήθηκε σε συνεργασία µε το Εργαστήριο Γραφικών Πολυµέσων και Γεωγραφικών συστηµάτων του τµήµατος Μηχανικών Η/Υ και Πληροφορικής. Για την υλοποίηση της διπλωµατικής εργασίας αυτής, θεωρώ υποχρέωσή µου να ευχαριστήσω θερµά τον καθηγητή κ. Αθανάσιο Τσακαλίδη ο οποίος αφ' ενός µεν µου έδωσε αυτή την ευκαιρία και µου παρείχε τις γνώσεις για να µπορέσω να ολοκληρώσω την εργασία αυτή και αφ' ετερου, επειδή ήταν πάντα δίπλα µου σαν επιστήµων αλλά και σαν άνθρωπος. Ακόµη να ευχαριστήσω την υποψήφια διδάκτορα κ. Ευανθία Φαλιάγκα η οποία, κάθε στιγµή, κατά την υλοποίηση της διπλωµατικής µου εργασίας µε στήριξε µεταδίδοντάς µου τις γνώσεις και την επιστηµονική της εµπειρία τόσο σε θεωρητικό όσο και σε πρακτικό επίπεδο. Επίσης, θα ήθελα να ευχαριστήσω τον κ. Μανώλη Βιεννα για την άµεση ανταπόκριση και βοήθειά του κάθε φορά που τον χρειάστηκα. Τέλος, θα ήθελα να ευχαριστήσω τους γονείς µου για τη στηριξή τους όλα αυτά τα χρόνια. 3

4 4

5 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ ΕΙΣΑΓΩΓΗ DOT NET Framework Γενικά Πρωταρχικά χαρακτηριστικά σχεδιασµού Αρχιτεκτονική ASP.NET Γενικά Διαφορές ASP-ASP.NET Τρόπος Λειτουργίας ASP.NET αρχείων Επιδόσεις Η γλώσσα προγραµµατισµού C# Γενικά Λόγοι Δηµιουργίας Γενικά Χαρακτηριστικά Μειονεκτήµατα Υποστήριξη για Versioning Web Programming Σύνοψη XML (extensive Markup Language) Γενικά Ορισµός της δοµής ενός XML εγγράφου Σχεδιαστικοί στόχοι της XML Γιατί χρησιµοποιούµε XML; XML έννοιες Σύνοψη HTML Γενικά Ιστορία της HTML HTML και η εξέλιξή της XHTML XHTML 2.0 VS (X)HTML X/HTML CSS (Cascading Style Sheets) Γενικά Ιστορία CSS VS XSL Περιηγητές που υποστηρίζουν CSS Εκδόσεις CSS Πλεονεκτήµατα CSS Μειονεκτήµατα CSS Σύνοψη Microsoft SQL Server Γενικά Ιστορία Εκδόσεις Χαρακτηριστικά ΚΟΙΝΩΝΙΚΑ ΔΙΚΤΥΑ Ορισµός Κοινωνικών Δικτύων

6 2.2 Twitter Myspace FlickR BLOGS Γενικά Τύποι Ιστολογίων Κίνδυνοι RSS Feeds (Really Simple Syndication Feeds) ΑΝΑΛΥΣΗ ΕΦΑΡΜΟΓΗΣ Γενικά Εγγραφή χρήστη Σύνδεση διαχειριστή Αναζήτηση χρηστών στο social web Εµφάνιση των feeds του χρήστη Προσθήκη νέου διαχειριστή ΠΑΡΑΡΤΗΜΑ

7 ΠΡΟΛΟΓΟΣ Στη διπλωµατική εργασία αυτή υλοποιήσαµε µια µηχανή αναζήτησης προσώπων στο Social Web. Στην εφαρµογή που κατασκευάστηκε αναζητούµε άτοµα σε ιστοσελίδες κοινωνικής δικτύωσης όπως το Twitter, το Myspace και το FlickR, µε βάση το όνοµα χρήστη ή το ονοµατεπώνυµό του. Η αναζήτηση αυτή εκτείνεται και σε ιστολόγια που βρίσκονται στον παγκόσµιο ιστό. Ύστερα βρίσκουµε σε ποιές από τις παραπάνω ιστοσελίδες έχει λογαριασµό το προς αναζήτηση άτοµο και παραθέτουµε την διεύθυνση του προφίλ του. Εάν του ανήκει κάποιο ιστολόγιο ή συµµετέχει σε κάποιο άλλο αποθηκεύουµε στη βάση δεδοµένων τα feeds τα οποία έχει δηµιουργήσει. Με τον ίδιο τρόπο ενεργούµε εαν το συγκεκριµένο άτοµο έχει λογαριασµό στην ιστοσελίδα Twitter. Στη συνέχεια θα παρουσιαστούν όλες οι τεχνολογίες που χρησιµοποιήθηκαν για την υλοποίηση της εφαρµογής. Επίσης θα αναλυθεί η ταυτότητα κάθε ιστότοπου στον οποίο γίνεται η αναζήτηση χρηστών. Στο τελευταίο κεφάλαιο παρατίθεται λεπτοµερώς η λειτουργία της εφαρµογής. Τέλος, στο παράρτηµα µπορεί να βρεθεί ο κώδικας που συγγράφηκε για την υλοποίηση της εφαρµογής. Η εφαρµογή αυτή κατασκευάστηκε µε τη χρήση της πλατφόρµας.net. Οι γλώσσες προγραµµατισµού που χρησιµοποιήθηκαν είναι οι C#, HTML, CSS, Javascript και Ajax ενώ σαν βάση δεδοµένων χρησιµοποιήθηκε η SQL Server

8 8

9 1. ΕΙΣΑΓΩΓΗ 9

10 10

11 1.1 DOT NET Framework Γενικά To.NET Framework είναι µια πλατφόρµα λογισµικού η οποία εγκαθίστανται σε ηλεκτρονικούς υπολογιστές που βασίζονται στo λειτουργικό σύστηµα Windows. Το συγκεκριµένο πακέτο λογισµικού περιέχει ένα µεγάλο αριθµό προγραµµατιστικών λύσεων για τα πιο κοινά προγραµµατιστικά προβλήµατα. Παράλληλα περιέχει µια εικονική µηχανή που διαχειρίζεται ότι έχει να κάνει µε την εκτέλεση των προγραµµάτων που βασίζονται στη συγκεκριµένη πλατφόρµα. Ένα από τα µεγαλύτερα πλεονεκτήµατα του.net Framework είναι το ότι υποστηρίζει διάφορες γλώσσες προγραµµατισµού οπότε ο χρήστης µπορεί να χρησιµοποιήσει κοµµάτια(βιβλιοθήκη) του framework σε οποιαδήποτε, από τις υποστηριζόµενες γλώσσες. Η πλατφόρµα αυτή, στην οποία βασίζονται οι περισσότερες εφαρµογές που τρέχουν σε windows, έχει κατασκευαστεί από την microsoft. Η βασική βιβλιοθήκη του framework παρέχει στους προγραµµατιστές µια ευρεία γκάµα εργαλείων για τη δηµιουργία: διεπαφών χρήστη, πρόσβασης σε δεδοµένα, διασύνδεσης µε διάφορες βάσεις δεδοµένων, εφαρµογών στον παγκόσµιο ιστό, αλλά και εργαλεία που σχετίζονται µε: κρυπτογραφία, αλγόριθµους και επικοινωνία µέσω δικτύου. Οι προγραµµατιστές χρησιµοποιούν την βασική βιβλιοθήκη που παρέχει το.net Framework και συνδυάζοντας τη µε τον δικό τους κώδικα παράγουν τις εφαρµογές που θέλουν. Όλα τα προγράµµατα που έχουν κατασκευαστεί µε το.net Framework εκτελούνται σε ένα περιβάλλον λογισµικού το οποίο διαχειρίζεται τις απαιτήσεις της εκτέλεσης. Επίσης µέρος του.net Framework, το περιβάλλον αυτό είναι γνωστό ως Common Language Runtime (CLR). Το CLR παρέχει µια εικονική µηχανή έτσι ώστε οι προγραµµατιστές να µην χρειάζεται να 11

12 υπολογίζουν την αρχιτεκτονική του υπολογιστή στον οποίο εκτελούνται τα προγράµµατά τους. Παράλληλα, το CLR παρέχει άλλες πολύ σηµαντικές υπηρεσίες όπως είναι η ασφάλεια, η διαχείριση της µνήµης αλλά και ο χειρισµός λαθών. Η βιβλιοθήκη κλάσεων που παρέχει η πλατφόρµα σε συνδυασµό µε το CLR αποτελούν το.net Framework. Από την έκδοση 3.0 το.net Framework βρίσκεται ενσωµατωµένο στα λειτουργικά Windows Server 2008 και Windows Vista. Προχωρώντας, βρίσκουµε την έκδοση 3.5 στο λειτουργικό, Windows 7. Τέλος, τις 20 Μαϊου 2009, η microsoft εξέδωσε την δοκιµαστική (beta) έκδοση 4.0 της πλατφόρµας. Το φεβρουάριο του 2010, εκδόθηκε η candidate έκδοση του.net Framework 4.0 για να δωθεί τελικά από τη Microsoft, τις 12 Απριλίου 2010 η τελική και επίσηµη έκδοση 4.0 του.net Framework. H οικογένεια λογισµικών του.net Framework περιλαµβάνει επίσης 2 εκδόσεις για κινητές συσκευές και για ενσωµατωµένα υπολογιστικά συστήµατα. Για την πρώτη κατηγορία παρατηρούµε µια µειωµένη, ως προς τα χαρακτηριστικά, έκδοση της πλατφόρµας η οποία είναι το.net Compact Framework και είναι διαθέσιµο για τις πλατφόρµες Windows CE και Windows mobile που χρησιµοποιoύνται κατά κόρον σε κινητές συσκευές και έξυπνα τηλέφωνα! Για την δεύτερη κατηγορία (ενσωµατωµένα υπολογιστικά συστήµατα) η Microsoft έχει κατασκευάσει το Micro.Net Framework Πρωταρχικά χαρακτηριστικά σχεδιασµού To.NET Framework είναι µια πλατφόρµα λογισµικού η οποία εγκαθίστανται σε ηλεκτρονικούς υπολογιστές που βασίζονται στo λειτουργικό σύστηµα Windows. Το συγκεκριµένο πακέτο λογισµικού περιέχει ένα µεγάλο αριθµό προγραµµατιστικών λύσεων για τα πιο κοινά προγραµµατιστικά προβλήµατα. Παράλληλα περιέχει µια εικονική µηχανή που διαχειρίζεται ότι έχει να κάνει µε την εκτέλεση των προγραµµάτων που βασίζονται στη 12

13 συγκεκριµένη πλατφόρµα. Ένα από τα µεγαλύτερα πλεονεκτήµατα του.net framework είναι το ότι υποστηρίζει διάφορες γλώσσες προγραµµατισµού οπότε ο χρήστης µπορεί να χρησιµοποιήσει κοµµάτια(βιβλιοθήκη) του framework σε οποιαδήποτε, από τις υποστηριζόµενες γλώσσες. Η πλατφόρµα αυτή, στην οποία βασίζονται οι περισσότερες εφαρµογές που τρέχουν σε windows, έχει κατασκευαστεί από την microsoft. Διαλειτουργικότητα Επειδή είναι αναγκαία η αλληλεπίδραση µεταξύ παλαιών και νέων εφαρµογών η πλατφόρµα παρέχει τα µέσα µε τα οποία δίνεται πλήρης λειτουργικότητα για την πρόσβαση σε προγράµµατα τα οποία εκτελούνται εκτός του περιβάλλοντος της εξεταζόµενης πλατφόρµας. Η πρόσβαση στα COM (Component Object Model) συστατικά παρέχεται από τα namespaces: System.Runtime.InteropServices και System.EnterpriseServices του.net Framework. Στις υπόλοιπες περιπτώσεις χρησιµοποιούµε το χαρακτηριστικό P/Invoke (Platform Invocation Services). Μηχανή χρόνου εκτέλεσης Η CLR (Common Language Runtime) είναι η εικονική µηχανή στην οποία εκτελούνται οι εφαρµογές του.net Framework και αποτελεί κύριο συστατικό του τελευταίου. Όλα λοιπόν τα.net προγράµµατα εκτελούνται υπό την επίβλεψη της CLR, και εγγυάται συγκεκριµένες ιδιότητες και συµπεριφορές σε διαδικασίες όπως η διαχείριση της µνήµης, η ασφάλεια των εφαρµογών αλλά και ο χειρισµός λαθών. Ανεξαρτησία ως προς τη γλώσσα προγραµµατισµού Το.NET Framework εισάγει την έννοια του CTS (Common Type System). Οι προδιαγραφές του CTS περιλαµβάνουν: όλους τους δυνατούς τύπους δεδοµένων, τις προγραµµατιστικές κατασκευές που µπορούν να 13

14 υποστηριχθούν από το CLR αλλά και το πώς αυτές µπορούν ή δεν µπορούν να αλληλεπιδράσουν µεταξύ τους και να είναι προσαρµοσµένες µε τις προδιαγραφές του CLI (Common Language Infrastructure). Ως αποτέλεσµα, το.net Framework επιτρέπει και υποστηρίζει την ανταλλαγή τύπων και στιγµιοτύπων των αντικειµένων µεταξύ βιβλιοθηκών και εφαρµογών, γραµµένων σε οποιαδήποτε.net γλώσσα προγραµµατισµού. Με απλά λόγια µπορούν να χρησιµοποιηθούν τα χαρακτηριστικά του.net Framework από οποιαδήποτε.νετ γλώσσα εµείς επιλέξουµε. Οι υποστηριζόµενες γλώσσες προγραµµατισµού, από το.net Framework είναι οι εξής: APL, C++, C#, Cobol, Component Pascal, Curriculum Eiffel, Forth, Fortran, Haskell, Java Language, Microsoft JScript, Mercury, Mondrian, Oberon, Oz, Pascal, Perl, Python, RPG, Scheme, Small Talk, Standard ML, Microsoft Visual Basic Βασική Βιβλιοθήκη Κλάσεων H βασική βιβλιοθήκη κλάσεων (BCL-Base Class Library), είναι µέρος της βιβλιοθήκης κλάσεων της εξεταζόµενης πλατφόρµας και έχουν πρόσβαση σε αυτή όλες οι γλώσσες χρησιµοποιώντας το NET Framework. Η BCL παρέχει κλάσεις που ενθυλακώνουν ένα µεγάλο αριθµό συναρτήσεων όπως για διάβασµα και εγγραφή αρχείων, graphic rendering, αλληλεπίδραση µε βάσεις δεδοµένων, διαχείριση XML εγγράφων και διάφορα άλλα. Απλοποιηµένη Εκτέλεση Η.NET πλατφόρµα, συµπεριλαµβάνει σχεδιαστικά χαρακτηριστικά και εργαλεία τα οποία βοηθούν στην διαχείριση των εγκαταστάσεων λογισµικού στον ηλεκτρονικό υπολογιστή. Ως αποτέλεσµα, βεβαιώνουµε ότι δεν θα υπάρξουν επιπλοκές µεταξύ των διαφορετικών εκδόσεων ενός προγράµµατος. Με αυτό το τρόπο διασφαλίζεται η πλήρωση του κριτηρίου της ασφάλειας. 14

15 Ασφάλεια Σε περιπτώσεις κάποιων αδυναµιών του λογισµικού όπως είναι η υπερχείλιση µνήµης, υπάρχει ένα κοινό µοντέλο ασφάλειας για όλες τις εφαρµογές το οποίο παρέχεται από το.net Framework. Μεταφερσιµότητα Ο σχεδιασµός του.net Framework επιτρέπει την εκτέλεση των εφαρµογών σε οποιαδήποτε αρχιτεκτονική υπολογιστή. Με λίγα λόγια η εκτέλεση των εφαρµογών είναι δυνατή, σε διαφορετικής σύνθεσης συστήµατα. Παρ' όλο το ότι η Microsoft δεν έχει αναπτύξει πλήρως το.net Framework σε άλλο λειτουργικό εκτός από το Microsoft Windows, η πλατφόρµα αυτή έχει κατασκευαστεί έτσι ώστε να µπορεί να χρησιµοποιηθεί σε οποιοδήποτε σύστηµα. Ένα τέτοιο παράδειγµα είναι το mono project το οποίο επιτρέπει στη συγκεκριµένη πλατφόρµα να τρέχει σε περιβάλλοντα Linux και Apple Macintosh. Η Microsoft υπέβαλλε τις προδιαγραφές του CLI (Common Language Infrastructure), το οποίο περιλαµβάνει τις βασικές βιβλιοθήκες κλάσεων, το CTS (Common Type System) και το CIL (Common Intermediate Language), καθώς και τις γλώσσες προγραµµατισµού C#, C++/CLI, στους οργανισµούς ECMA και ISO, εξασφαλίζοντας έτσι την αποδοχή τους ως ανοιχτά πρότυπα. Με αυτό το τρόπο οι προγραµµατιστές µπορούν να κατασκευάσουν και να χρησιµοποιήσουν το.net Framework αλλά και τις γλώσσες προγραµµατισµού C#, C++ σε οποιαδήποτε πλατφόρµα Αρχιτεκτονική Common Language Infrastructure (CLI) Ο σκοπός του CLI, είναι να παρέχει µια, ανεξάρτητη της γλώσσας 15

16 προγραµµατισµού, πλατφόρµα για ανάπτυξη εφαρµογών αλλά και την εκτέλεσή τους. Επίσης προσφέρει ένα πλήθος συναρτήσεων οι οποίες χρησιµοποιούνται για χειρισµό λαθών, συλλογή άχρηστων δεδοµένων από τη µνήµη, ασφάλεια και διαλειτουργικότητα. Η λειτουργικότητα του CLI, χάρη στη Microsoft, είναι διαθέσιµη από ένα πλήθος γλωσσών προγραµµατισµού. Η υλοποίηση της Microsoft για το CLI φέρει το όνοµα CLR (Common Language Runtime). Οπτική περίληψη CLI Assemblies Ο όρος assemblies στο.net Framework δηλώνει βιβλιοθήκες µεταφρασµένου κώδικα µε κάποια χαρακτηριστικά που θα αναφερθούν παρακάτω. Οι βιβλιοθήκες αυτές στο λειτουργικό σύστηµα Microsoft Windows 16

17 παρουσιάζονται στις εξής 2 µορφές: process assemblies (ΕΧΕ), library assemblies (DLL). Οι βιβλιοθήκες αυτές περιέχουν τµήµατα κώδικα σε CIL (Common Intermediate Language) γλώσσα. Αυτή είναι η χαµηλοτέρου επιπέδου γλώσσα που συναντάται στο CLR και είναι κατανοήσιµη από τον άνθρωπο. Οι βιβλιοθήκες αυτές αποτελούνται από ένα η περισσότερα αρχεία και κάθε µια περιέχει κάποια metadata. Το ολοκληρωµένο όνοµα της κάθε βιβλιοθήκης (δεν ενοούµε το όνοµα που έχει στον σκληρό δίσκο) περιέχει ένα αλφαρηθµητικό όνοµα, την έκδοση της βιβλιοθήκης και ένα µοναδικό public key token το οποίο παράγεται κατά τη διάρκεια της µετάφρασης. Επίσης υπάρχει η δυνατότητα παραγωγής ενός προσωπικού κλειδιού το οποίο είναι γνωστό µόνο στο δηµιουργό της βιβλιοθήκης. Μετα-πληροφορίες (Metadata) Όλο το CIL (Common Intermediate Language) είναι αυτοπεριγραφόµενο µεσω των.net metadata. Το CLR (Common Language Runtime) ελέγχει τις µετα-πληροφορίες για να εξασφαλίσει ότι εκλήθη η σωστή µέθοδος. Οι µετα-πληροφορίες συνήθως παράγονται από τους µεταφραστές κάθε γλώσσας προγραµµατισµού της πλατφόρµας αλλά οι προγραµµατιστές µπορούν να δηµιουργήσουν τις δικές τους µετα- πληροφορίες. Αυτές οι µετα-πληροφορίες περιέχουν πληροφορίες για τις βιβλιοθήκες και επίσης χρησιµοποιούνται για την υλοποίηση κάποιων χαρακτηριστικών (reflective programming) του.net Framework. Ασφάλεια Το.NET Framework έχει ένα δικό του µηχανισµό ασφάλειας ο οποίος αποτελείται από 2 χαρακτηριστικά: την Ασφάλεια Πρόσβασης Κώδικα (CAS Code Access Security) και την επικύρωση-επαλήθευση. Το CAS είναι η λύση που έχει δώσει η Micorosoft για τον έλεγχο των βιβλιοθηκών για περιπτώσεις κακόβουλου κώδικα. Όταν φορτώνεται στο CLR (Common Language Runtime) µια βιβλιοθήκη, αυτή σηµατοδοτείται µε κάποια permissions. 17

18 Ανάλογα µε το τι permissions επιτρέπει ο διαχειριστής του συστήµατος, γίνεται και ο έλεγχος της ασφάλειας. Αν κάποια βιβλιοθήκη δεν έχει τα απαιτούµενα permissions προκύπτει λάθος. Επίσης όταν κάποια βιβλιοθήκη φορτώνεται, το CLR κάνει κάποιους ελέγχους. Δύο από αυτούς τους ελέγχους είναι η επικύρωση και η επαλήθευση. Κατά τη διάρκεια της επικύρωσης, το CLR ελέγχει ότι η βιβλιοθήκη περιέχει τις απαιτούµενες πληροφορίες, όπως το µοναδικό της όνοµα, η έκδοσή της και το παραγόµενο public key. Επίσης γίνεται έλεγχος για το αν η βιβλιοθήκη περιέχει κώδικα σε CIL (Common Intermediate Language). Στη συνέχεια περνάµε στο κοµµάτι της επαλήθευσης. Η λειτουργία αυτή δεν είναι τόσο ακριβής όσο η προηγούµενη. Ο µηχανισµός αυτός ελέγχει την βιβλιοθήκη για κώδικα που δεν είναι ασφαλής. Σε αυτό το σηµείο πρέπει να αναφέρουµε ότι ο αλγόριθµος του ελέγχου είναι πολύ αυστηρός και συνήθως µπορεί να αποκλειστεί κώδικας που είναι ασφαλής. Υπάρχει µόνο µια περίπτωση στην οποία µπορεί να εκτελεστεί ανασφαλής κώδικας και αυτή είναι µόνο όταν η βιβλιοθήκη φέρει την κατάλληλη δικαιοδοσία ( skip verification permission). Συνήθως αυτό ο κώδικας είναι ήδη εγκατεστηµένος τοπικά στον ηλεκτρονικό υπολογιστή που χρησιµοποιείται. Ένα σηµαντικό πλεονέκτηµα του.net Framework στον τοµέα της ασφάλειας είναι ο µηχανισµός Application Domains. Αυτός ο µηχανισµός αποµονώνει τµήµατα κώδικα τα οποία τρέχουν ως διεργασία. Ως αποτέλεσµα τµήµατα κώδικα µπορούν να δηµιουργούνται, φορτώνονται/αποφορτώνονται εντελώς ανεξάρτητα µεταξύ τους και µε αυτό τον τρόπο αυξάνεται κατακόρυφα η αντοχή της εφαρµογής σε σφάλµατα, καθώς σε περίπτωση που κάποιο τµήµα κώδικα αστοχήσει δεν θα επηρεαστούν τα υπόλοιπα. Κάθε AD (Application Domain) µπορεί να ρυθµιστεί µε διαφορετική δικαιοδοσία ασφάλειας (διαφορετικά permissions) µε αποτέλεσµα οι προγραµµατιστές να µπορούν να αυξήσουν το επίπεδο ασφάλειας των εφαρµογών τους αποµονώντας τον πιθανό ανασφαλή κώδικα. Εντούτοις ο προγραµµατιστής πρέπει να διαχωρίσει τον κώδικά του σε υποdomains, διαδικασία η οποία δυστυχώς δεν γίνεται από το CLR. 18

19 Βασική Βιβλιοθήκη Κλάσεων (Class Library) Το.NET Framework περιέχει µια τυπική βιβλιοθήκη κλάσεων η οποία είναι ιεραρχηµένη σε namespaces. Τα περισσότερα, ενσωµατωµένα στην πλατφόρµα, APIS είναι τµήµατα των System.* ή Microsoft.* (καθ'ενός ξεχωριστά η και των δύο µαζί) namespaces. Αυτά ενσωµατώνουν ένα µεγάλο αριθµό από συναρτήσεις, που εκτελούν συνηθισµένες διαδικασίες όπως ανάγνωση/εγγραφή αρχείων, απόδοση γραφικών, αλληλεπίδραση µε βάσεις δεδοµένων, διαχείριση αρχείων XML και άλλες χρήσιµες λειτουργίες. Οι βιβλιοθήκες αυτές, είναι διαθέσιµες σε όλες τις γλώσσες προγραµµατισµού που υποστηρίζει η πλατφόρµα και χωρίζονται σε δύο µέρη: την βασική βιβλιοθήκη κλάσεων (BCL) και την βιβλιοθήκη κλάσεων της πλατφόρµας (FCL). Αρχικά εξετάζουµε την πρώτη (BCL- Base Class Library), η οποία περιέχει ένα µικρό υποσύνολο των κλάσεων που παρέχει η βιβλιοθήκη κλάσεων της πλατφόρµας. Αυτό το σύνολο είναι ο πυρήνας του CLR (Common Language Runtime). Οι κλάσεις που περιέχονται στο mscorlib.dll και κάποιες κλάσεις των System.dll και System.core.dll θεωρείται ότι αποτελούν το BCL. Αυτές είναι διαθέσιµες στο.net Framework όπως προείπαµε αλλά και σε κάθε εναλλακτική υλοποίησή του (βλέπε mono project, Microsoft Silverlight,.NET Compact Framework). Στη συνέχεια εξετάζουµε την FCL (Framework Class Library) η οποία είναι ένα υπερσύνολο της BCL και αφορά το υπόλοιπο τµήµα των κλάσεων που έρχεται µε το.net Framework. Η FCL περιλαµβάνει ένα σύνολο βιβλιοθηκών όπως είναι οι Windows Forms, ADO.NET, ASP.NET, Language Integrated Query (γνωστή ως LINQ), Windows Presentation Foundation, Windows Communication Foundation και άλλες. Η FCL είναι είναι πολύ µεγαλύτερη βιβλιοθήκη σε σχέσεις µε τις βασικές βιβλιοθήκες που έρχονται µε τις γλώσσες C++ και Java. Στον επόµενο πίνακα µπορούµε να δούµε το σύνολο των namespaces που υπάρχουν στην βασική βιβλιοθήκη κλάσεων (BCL) 19

20 BCL Namespaces System System.CodeDom System.Collections System.Diagnostics System.Globalization System.IO System.Resources System.Text System.RegularExpressions Διαχείριση Μνήµης Το CLR απελευθερώνει τον προγραµµατιστή από το βάρος της διαχείρισης µνήµης καθώς το ίδιο είναι υπεύθυνο για αυτή τη διαδικασία. Συγκεκριµένα το CLR αναλαµβάνει το ρόλο να δεσµεύσει χώρο µνήµης όταν απαιτείται από µια διαδικασία και να τον ελευθερώνει όταν αυτή τελείωσει. Η δέσµευση µνήµης από το.net Framework γίνεται µε τη βοήθεια ενός διαχειριζόµενου, από το CLR, σωρού σε ένα µέρος της µνήµης. Για κάθε αντικείµενο που δηµιουργείται υπάρχει µια αναφορά στο σωρό αυτό. Όσο υπάρχει η αναφορά αυτή, σηµαίνει ότι το αντικείµενο είναι σε χρήση από το CLR. Όταν δεν υπάρχει η αναφορά αυτή, το αντικείµενο µετατρέπεται σε σκουπίδι. Παρ όλα αυτά, το αντικείµενο διατηρείται για λίγο χρονικό διάστηµα στη µνήµη που έχει δεσµεύσει. Σειρά τώρα έχει ο συλλέκτης σκουπιδιών (GC Garbage Collector) ο οποίος τρέχει περιοδικά σε ένα ξεχωριστό νήµα από αυτό του προγράµµατος και ψάχνει τη µνήµη για σκουπίδια. Συνεπώς, βρίσκει όλα τα άχρηστα αντικείµενα και αποδεσµεύει 20

21 το χώρο που καταλαµβάνουν στη µνήµη. Ο.NET GC λειτουργεί µη ντετερµινιστικά και τρέχει όταν χρησιµοποιείται ένα συγκεκριµένο ποσοστό µνήµης ή όταν το σύστηµα για κάποιο λόγο έχει σηµαντική ανάγκη να χρησιµοποιήσει µεγάλο µέρος της. Κάθε.NET εφαρµογή ακολουθείται από ένα σύνολο δεικτών σε αντικείµενα που βρίσκονται στον σωρό. Αυτοί περιέχουν αναφορές σε αντικείµενα που έχουν καθοριστεί ως τοπικές µεταβλητές ή ως παράµετροι σε διάφορες µεθόδους που χρησιµοποιούνται µέσα στο πρόγραµµα. Μετά τη διαγραφή κάποιων αντικειµένων από τη µνήµη, ο GC συµπιέζει τον δεσµευµένο, από το πρόγραµµα, χώρο έτσι ώστε όλα τα αντικείµενα να είναι σε γειτονικές θέσεις µνήµης και να µην υπάρχουν κενά µεταξύ τους. Σε αυτό το σηµείο, ο συλλέκτης σκουπιδιών αναλαµβάνει να ανανεώσει το σωρό µε δείκτες που υποδεικνύουν τις νέες θέσεις των αντικειµένων. Άλλο ένα σηµαντικό χαρακτηριστικό του GC είναι το ότι κατατάσσει σε γενιές τα αντικείµενα του προγράµµατος ανάλογα µε το χρόνο ζωής τους στη µνήµη. Συγκεκριµένα, τα νεοδηµιούργητα αντικείµενα ανήκουν στη γενιά-0. Τα αντικείµενα τα οποία επιβίωσαν από µια συλλογή σκουπιδιών ανήκουν στη γενιά-1. Αυτά τα αντικείµενα, αν επιβιώσουν µετά από ακόµη µια συλλογή σκουπιδιών ανήκουν πλεόν στη γενιά-2 κ.ο.κ. Τα αντικείµενα των υψηλότερων γενεών γίνονται σκουπίδια πιο σπάνια απ' ότι αυτά των χαµηλότερων γενεών. Αυτή η κατάταξη έχει πολύ µεγάλη σηµασία και βοηθά στην βελτίωση της αποδοτικότητας του συλλέκτη σκουπιδιών, καθώς τα παλαιότερα αντικείµενα τείνουν να έχουν µεγαλύτερη διάρκεια ζωής σε σχέση µε τα νεότερα. Με λίγα λόγια, µε το να αφαιρούνται παλαιότερα αντικείµενα από το σωρό, θα έχουµε λιγότερες κενές θέσεις στο χώρο της µνήµης µεαξύ γειτονικών αντικειµένων πράγµα που οδηγεί σε πιο ευκολη συµπίεση! 21

22 1.2 ASP.NET Γενικά Η ASP.NET (ή αλλιώς ASP+) είναι µια web πλατφόρµα η οποία παρέχει όλες τις λειτουργίες που απαιτούνται για τη δηµιουργία δυναµικών διαδικτυακών εφαρµογών. Η πλατφόρµα αυτή είναι βασισµένη στο.net Framework, εποµένως όλα τα χαρακτηριστικά αυτού είναι διαθέσιµα στις ASP.NET εφαρµογές. Οι εφαρµογές αυτές µπορούν να προγραµµατιστούν µε οποιαδήποτε από τις υποστηριζόµενες, από το CLR (Common Language Runtime) γλώσσες µε πιο διαδεδοµένες την Visual Basic και τη C# Διαφορές ASP-ASP.NET Η ASP.NET ήρθε να εγκαταστήσει την κλασσική ASP τεχνολογία η οποία ήταν η πρώτη προσπάθεια της Microsoft στην ανάπτυξη µιας πλατφόρµας που αφορά το διαδικτυακό προγραµµατισµό. Μερικα από τα νέα χαρακτηριστικά της ASP.NET σε σχέση µε την κλασσική ASP είναι τα εξής: Καθαρός διαχωρισµός µεταξύ εµφάνισης και κώδικα. Με την κλασσική ASP τεχνολογία ο προγραµµατισµός του server γινόταν µε αταξία µέσα στον HTML κώδικα µε αποτέλεσµα αργότερα να γίνονται πολύ δύσκολα οι αλλαγές στη σελίδα. Η ASP.NET καθόρισε ένα µοντέλο ανάπτυξης εφαρµογών το οποίο είναι πολύ πιο κοντά σε αυτό της ανάπτυξης desktop εφαρµογών. Ως αποτέλεσµα, έγινε πολύ εύκολη η εναλλαγή µεταξύ desktop και web εφαρµογών για έναν προγραµµατιστή. Ένα νέο περιβάλλον ανάπτυξης που ονοµάστηκε Visual Studio ήρθε για να βοηθήσει τους προγραµµατιστές να δηµιουργήσουν και να προγραµµατίσουν διαδικτυακές εφαρµογές µε τη βοήθεια ενός 22

23 οπτικού περιβάλλοντος προγραµµατισµού. Με χρήση της ASP.NET τεχνολογίας δώθηκε στον προγραµµατιστή η δυνατότητα να χρησιµοποιήσει αντικειµενοστραφών γλωσσών ανάµεσα από έναν προγραµµατισµού αριθµό µε πιο διαδεδοµένες τη Visual Basic.NET και τη C# Πρόσβαση σε ολόκληρο το.net Framework, γεγονός που σηµαίνει ότι για πρώτη φορά οι προγραµµατιστές διαδικτυακών εφαρµογών απέκτησαν ένα µοναδικό και εύκολο τρόπο ώστε να µπορούν να έχουν πρόσβαση σε σηµαντικά χαρακτηριστικά της πλατφόρµας για να εργάζονται µε βάσεις δεδοµένων, αρχεία, s, εργαλεία δικτύων και άλλα πολλά. Παρά το γεγονός ότι προστέθηκαν πολλά νέα χαρακτηριστικά στην ASP.NET, αυξήθηκε κατά πολύ η πολυπλοκότητά της γεγονός που κάνει τη διαδικασία εκµάθησης της τεχνολογίας πιο δύσκολη για άπειρους ή νέους προγραµµατιστές Τρόπος Λειτουργίας ASP.NET αρχείων Το αρχείο που περιέχει µια ASP.NET σελίδα έχει την κατάληξη.aspx. Αυτά τα αρχεία για να τρέξουν απαιτούν την ύπαρξη ενός ειδικού λογισµικού στον server ο οποίος ονοµάζεται web-server. Ο web-server που χρησιµοποιείται για να εκτελεστούν τα aspx αρχεία σε περιβάλλον Windows είναι ο Internet Information Server (IIS). Στον web-server υπάρχει ένα µικρό κοµµάτι λογισµικού το οποίο αναλαµβάνει να εκτελέσει τον κώδικα σε asp.net. Ένα aspx αρχείο µπορεί να περιέχει κώδικα σε HTML, CSS, Javascript, ASP αλλά και κώδικα στην γλώσσα.net την οποία έχουµε επιλέξει για να προγραµµατίσουµε την εφαρµογή στο κοµµάτι που αφορά τον server. Γενικά µπορούµε να χωρίσουµε το αρχείο αυτό σε 2 τµήµατα. Το πρώτο είναι αυτό το οποίο περιέχει τον κώδικα τον οποίο θα εκτελεστεί τοπικά στον περιηγητή. Το 23

24 δεύτερο µέρος είναι ο κώδικας ο οποίος θα εκτελεστεί στον server. Συνοπτικά η λειτουργία της ASP.NET τεχνολογίας είναι η εξής: Όταν ο περιηγητής ζητήσει ένα αρχείο HTML, ο server στέλνει το αρχείο αυτό. Όταν ο περιηγητής ζητήσει ένα ASP.NET αρχείο, ο IIS περνά την αίτηση στη µηχανή του server που επεξεργάζεται το ASP.NET κοµµάτι. Αυτή η ASP.NET µηχανή διαβάζει το αρχείο, γραµµή προς γραµµή, και εκτελεί τα scripts που περιέχονται µέσα στο αρχείο. Τέλος, το ASP.NET αρχείο επιστρέφεται στον περιηγητή ως HTML αρχείο Επιδόσεις Η ASP.NET στοχεύει σε καλύτερη επίδοση σε σχέση µε τις άλλες scripting γλώσσες προγραµµατισµού µε το να µεταγλωττίζει τον κώδικα που εκτελείται στον server σε ένα η περισσότερα dll αρχεία τα οποία αποθηκεύονται στον web-server. Η διαδικασία της µετάφρασης του serverside κώδικα γίνεται αυτόµατα την πρώτη φορά που ζητείται µια σελίδα. Αυτό το χαρακτηριστικό παρέχει την ευκολία της ανάπτυξης εφαρµογών µε scripting γλώσσες προγραµµατισµού σε συνδυασµό µε την αυξηµένη επίδοση που παρέχει µια µεταγλωττισµένη βιβλιοθήκη. Παρ' όλα αυτά θα υπάρξει µια µικρή καθυστέρηση εξαιτίας της µεταγλώττισης του κώδικα κατά την πρώτη φορά που θα ζητηθεί η σελίδα από τον web-server. Βέβαια αυτό θα προκύψει µόνο µια φορά, εκτός και εαν η σελίδα ανανεωθεί από τον προγραµµατιστή οπότε θα χρειαστεί να ξαναγίνει η διαδικασία. Μια λύση στο πρόβληµα αυτό είναι ο προγραµµατιστής να κάνει την µεταγλώττιση του κώδικα κατά τη διάρκεια της ανάπτυξης της εφαρµογής (η διαδικασία αυτή γίνεται στο Visual Studio) και στη αποθηκεύσει στον εξυπηρετητή το.dll αρχείο που προέκυψε. 24 συνέχεια να

25 1.3 Η γλώσσα προγραµµατισµού C# Γενικά H C# είναι µια αντικειµενοστρεφής γλώσσα προγραµµατισµού η οποία δηµιουργήθηκε από τη Microsoft για το.net Framework. Στη συνέχεια αναγνωρίστηκε σαν πρότυπο από τους οργανισµούς Ecma και ISO. Η C# ενθαρρύνει την αντικειµενοστρέφεια αλλά µπορεί να χρησιµοποιηθεί και για συναρτησιακό ή δοµηµένο προγραµµατισµό. Στόχος της Microsoft ήταν να φτιάξει µια γλώσσα απλή, µοντέρνα, γενικού-σκοπού και αντικειµενοστρεφής! Η οµάδα δηµιουργίας της γλώσσας οδηγούνταν από τον Anders Hejlsberg και η νεότερη έκδοσή της είναι η Λόγοι Δηµιουργίας Καθώς η Microsoft εδώ και µια δεκαετία προσθέτει συνεχώς νέα χαρακτηριστικά στο λειτουργικό της, και στις βιβλιοθήκες των Windows, οι γλώσσες Visual Basic και C++ επεκτείνονται και αυτές σε µια παράλληλη τροχιά. Αυτό είχε ως αποτέλεσµα και οι δύο γλώσσες να καταλήξουν µε πανίσχυρα χαρακτηριστικά αλλά και µε προβλήµατα που προέκυψαν από τον τρόπο µε τον οποία εξελίχθησαν. Στην περίπτωση της Visual Basic και πριν την έκδοση 6, η δύναµη της γλώσσας αντλούνταν από την απλότητα της χρήσης της. Σε βάρος της απλότητας, πολλά προγραµµατιστικά προβλήµατα που είχαν σχέση µε το Windows API και το COM component δεν ήταν εύκολο να λυθούν. Αυτό συνέβαινε γιατί η Visual Basic δεν ήταν ποτέ, πραγµατικά αντικειµενοστρεφής γλώσσα µε αποτέλεσµα όσο µεγάλωνε το µέγεθος της εφαρµογής να µειώνεται η οργάνωση του κώδικα. Παράλληλα γινόταν πολύ δύσκολη η διατήρηση της εφαρµογής. Σε συνδυασµό µε αυτά, η γλώσσα αυτή λόγω της 25

26 καταγωγής της (δεν προοριζόταν για ανάπτυξη µεγάλων εµπορικών εφαρµογών, αλλά κυρίως για εκµάθηση) διατήρησε κάποια χαρακτηριστικά της τα οποία όµως δεν την έκαναν µια ολοκληρωµένη αντικειµενοστρεφή γλώσσα προγραµµατισµού. Από την άλλη πλευρά, η C++ έχει τις ρίζες της στην Ansi C++. Βέβαια δεν είναι ακριβώς ίδιες, καθώς η Microsoft έφτιαξε πρώτα τον µεταγλωττιστή για τη C++ και στη συνέχεια έγινε επίσηµο το Ansi πρότυπο αλλά µοιάζουν σε πολλά στοιχεία. Δυστυχώς όµως αυτό οδήγησε σε δύο προβλήµατα. Αρχικά, η Ansi C++ έχει τις ρίζες της σε παλιές τεχνολογίες, και αυτό υποδηλώνει έλλειψη υποστήριξης για ένα σύνολο νέων χαρακηριστικών όπως είναι τα unicode strings και η παραγωγή XML Documentation. Επίσης κάποια χαρακτηριστικά της γλώσσας είχαν σχεδιαστεί µε βάση παλαιοτέρων µεταγλωττιστών. Κατά δεύτερον, η Microsoft προσπάθησε να εξελίξει την C++ σε µια γλώσσα προγραµµατισµού η οποία θα χρησιµοποιούνταν για την ανάπτυξη, υψηλών προδιαγραφών και υψηλής απόδοσης, λογισµικού για την πλατφόρµα των Windows. Προκειµένου να γίνει αυτό η Microsoft αναγκάστηκε να προσθέσει ένα σύνολο βιβλιοθηκών και λέξεων κλειδιών µε αποτέλεσµα η γλώσσα αυτή σε περιβάλλον Windows να είναι ένα χάος. Ένα χαρακτηριστικό παράδειγµα αυτού του γεγονόνος είναι ο µέγαλος αριθµός τύπων που υπάρχουν για τα αλφαριθµητικά (char, LPTSTR, string, Cstring, wchar_t, OLECHAR κτλπ). Τέλος, µε τον ερχοµό του.net Framework η Microsoft αναγκάστηκε να προσθέσει και άλλα χαρακτηριστικά στις δύο προαναφερόµενες γλώσσες. Συγκεκριµένα στην C++ προστέθηκαν νέες λέξεις κλειδιά και η Visual Basic άλλαξε ριζικά, προκύπτοντας η γλώσσα προγραµµατισµού Visual Basic.NET. Στη Visual Basic.NET διατηρήθηκε η σύνταξη της απλής Visual Basic αλλά ο σχεδιασµός του διέφερε εντελώς. Όλοι αυτοί οι λόγοι, συντέλεσαν στη δηµιουργία µιας νέας γλώσσας από την Μιcrosoft η οποία θα ήταν προορισµένη αποκλειστικά και µόνο για το.net Framework. Και έτσι δηµιουργήθηκε η C#. 26

27 1.3.3 Γενικά Χαρακτηριστικά Η C# είναι µια γλώσσα απλή, µοντέρνα, αντικειµενοστρεφής και έχει στοιχεία από τις C, C++ και JAVA γλώσσες προγραµµατισµού. Συντακτικά η C# µοιάζει πολύ στη C++ και στη JAVA καθώς πολλές λέξεις-κλειδιά είναι ίδιες. Επίσης µοιράζεται µε αυτές, α) τη δοµή των µπλοκ τα οποία ορίζονται µε τα σύµβολα και αλλά και β) την οριοθέτηση των εντολών µε το σύµβολο ;. Μπορεί µε την πρώτη µατιά ενός κοµµατιού κώδικα σε C# να πούµε ότι είναι εµφανής η οµοιότητα µε τις γλώσσες C++ και JAVA αλλά ή αλήθεια είναι ότι η C# είναι πιο εύκολη στην εκµάθηση από την πρώτη και παρόµοιας δυσκολίας µε την δεύτερη. Ο σχεδιασµός της είναι συνυφασµένος µε τα µοντέρνα προγραµµατιστικά πρότυπα και παράλληλα έχει υιοθετήσει την απλότητα χρήσης της Visual Basic αλλά και την υψηλή απόδοση της C++ σε θέµατα χαµηλού επιπέδου διαχείρισης της µνήµης, σε περίπτωση που χρειαστεί. Τα κύρια χαρακτηριστικά της C# είναι τα εξής: Πλήρης υποστήριξη για κλάσεις και αντικειµενοστρεφή προγραµµατισµό, η οποία περιέχει κληρονοµικότητα διεπαφής και υλοποίησης, εικονικές συναρτήσεις και υπερφόρτωση τελεστών. Ένα συνεπές και καθορισµένο µε σαφήνεια σύνολο βασικών τύπων µεταβλητών. Δεν υπάρχουν καθολικές µεταβλητές και µέθοδοι. Όλες οι µέθοδοι πρέπει να δηλώνοναι µέσα στις κλάσεις. Οι δηµόσιες (public) κλάσεις µπορούν να αντικαταστήσουν τις καθολικές µεταβλητές και τις καθολικές συναρτήσεις. Ενσωµατωµένη δυνατότητα για αυτόµατη παραγωγή XML documentation. Αυτόµατο καθάρισµα της δυναµικά δεσµευµένης µνήµης. Δυνατότητα για µαρκάρισµα κλάσεων ή µεθόδων µε κάποια συγκεκριµένα χαρακτηριστικά. Αυτό µπορεί να είναι χρήσιµο για την τεκµηρίωση της εφαρµογής αλλά 27 και στην µεταγλώττιση της

28 εφαρµογής. (για παράδειγµα µπορούµε να µαρκάρουµε κάποιες µεθόδους ώστε να µεταγλωττίζονται µόνο όταν η εφαρµογή είναι σε λειτουργία αποσφαλµάτωσης (debug mode) ). Πλήρης πρόσβαση στη βασική βιβλιοθήκη του.net Framework αλλά και εύκολη πρόσβαση στο Windows API (αν χρειαστεί). Προσπελαση της µνήµης µε δείκτες ή απ' ευθείας (αν χρειαστεί). Γενικά η γλώσσα έχει σχεδιαστεί µε τέτοιο τρόπο ώστε να µπορεί να λειτουργεί χωρίς αυτά τα χαρακτηριστικά στις περισσότερες των περιπτώσεων. Υποστήριξη για ιδιότητες (properties) και γεγονότα (events) στο στυλ της Visual Basic. Αλλάζοντας τις επιλογές του µεταγλωττιστή, δίνεται η δυνατότητα να µεταγλωττίσουµε το προγραµµά µας σε ένα εκτελέσιµο αρχείο ή µια βιβλιοθήκη η οποία θα περιέχει.net συστατικά τα οποία θα µπορούν να καλούνται από άλλα τµήµατα κώδικα σαν ActiveX controls. (COM components) Η C# µπορεί να χρησιµοποιηθεί για συγγραφή α) δυναµικών ιστοσελίδων ASP.NET αλλά και β) XML Web Services H C# υποστηρίζει έναν αυστηρό τύπο δεδοµένων για boolean µεταβλητές, τον bool. Δηλώσεις οι οποίες έχουν κάποιες καταστάσεις όπως οι βρόγχοι while και if, απαιτούν µια έκφραση της οποίας ο προκύπτον τύπος θα είναι bool. Με απλά λόγια η έκφραση να µπορεί να είναι αληθής ή ψευδής. Ενώ η C++, υποστηρίζει boolean τύπους δεδοµένων, αυτοί µπορούν εύκολα να µετατραπούν από/σε ακέραιους και εκφράσεις όπως οι if(a) απαιτούν απλά το a να µετατραπεί σε boolean τύπο, επιτρέποντας έτσι το a να είναι πχ. ακέραιος ή δείκτης. Η C# δεν επιτρέπει έναν ακέραιο να δείχνει αλήθεια ή ψεύδος οπότε αναγκάζει τους προγραµµατιστές να χρησιµοποιούν εκφράσεις οι οποίες επιστρέφουν ακριβώς boolean τύπους δεδοµένων. Ως αποτέλεσµα αυξάνεται η αποδοτικότητα και µειώνεται η πιθανότητα άσκοπων αλλά κοινών λαθών στον κώδικα. Ένα τέτοιο πρόβληµα στη C++ περιγράφεται µε το εξής παράδειγµα: 28

29 Όταν έχουµε µια έκφραση if(a=b) και χρησιµοποιούµε = αντί για ==. Σε αντίθεση µε την δοµή try...catch που χρησιµοποιούµε για χειρισµό λαθών, υπάρχει η δυνατότητα χρήσης της δοµής try...finally η οποία εγγυάται εκτέλεση του κώδικα που βρίσκεται µέσα στο finally µπλοκ. Παρέχεται πλήρης δυνατότητα για reflection programming. H C# (στην έκδοση 4.0) έχει 77 δεσµευµένες λέξεις. Τα περισσότερα από τα παραπάνω χαρακτηριστικά τα έχουν και οι γλώσσες προγραµµατισµού Visual Basic.NET και C++. Το γεγονός όµως το ότι η C# σχεδιάστηκε για χρήση των δυνατοτήτων του.net Framework την κάνει πιο πλήρη, και προσφέρεται στους προγραµµατιστές µε πιο απλή σύνταξη σε σχέση µε τις άλλες δύο Μειονεκτήµατα Πέρα από τη δύναµη C#, υπάρχουν και κάποιοι περιορισµοί οι οποίοι την κάνουν ακατάλληλη γλώσσα προγραµµατισµού για τη συγγραφή κάποιων εφαρµογών. Το κύριο µειονέκτηµά της είναι ότι δεν έχει σχεδιαστεί για τη σύγγραφη προγραµµάτων τα οποία έχουν σαν πρώτη προτεραιότητα τις ακραίες επιδόσεις. Αν λοιπόν ενδιαφέρει τον προγραµµατιστή αν ένα βρογχος θα πάρει κύκλους µηχανής αντί για 1.000, και αν κάθε δέκατο του δευτερολέπτου είναι σηµαντικό για την ανάγκη που εξυπηρετεί µια εφαρµογή τότε η καλύτερη λύση µεταξύ των low-level γλωσσών παραµένει η C++. Παρ' όλα αυτά το σύνολο των εφαρµογών που ανήκουν σε αυτή την κατηγορία είναι πολύ µικρό Υποστήριξη για Versioning Η διαδικασία ανανέωσης ενός ήδη υπάρχοντος λογισµικού είναι επίπονη και επιρρεπής σε λάθη. Οι αλλαγές στον κώδικα µιας εφαρµογής µπορεί να 29

30 αλλάξουν τον τρόπο λειτουργίας της. Η C# δίνει λύση σε αυτή τη διαδικασία καθώς περιλαµβάνει υποστήριξη για versioning. Συγκεκριµένα, παρουσιάζουν πολλές προβλήµατα εφαρµογές όταν για που κάποιο τρέχουν λόγο µια σε Windows assembly που χρησιµοποιούν αντικατασταθεί από µία νεότερη. Το πρόβληµα αυτό είναι ιδιαίτερα συχνό στο κόσµο των προγραµµατιστών και µπελάς για τον κόσµο των εταιριών καθώς αυξάνουν τα κόστη ανάπτυξης. Στο.NET Framework κάθε DLL αρχείο ή COM αντικείµενο περιέχει πληροφορία για την έκδοσή του. Ως αποτέλεσµα κάθε εφαρµογή που έχει χτιστεί πάνω στο.net Framework φορτώνει τις εκδόσεις των DLLs ή COM αντικειµένων µε τις οποίες έχει δοκιµαστεί ότι τρέχει χωρίς σφάλµατα. Με τη βοήθεια αυτού του χαρακτηριστικού, επιτρέπεται σε σύνθετα πακέτα λογισµικού να αναπτύσσονται και να εξελίσσονται σε βάθος χρόνου κάνοντας τις νεότερες εκδόσεις του πιο σταθερές Web Programming Εκείνο το χαρακτηριστικό της C# για το οποίο αξίζει να αφιερωθεί µια ενότητα είναι η πλήρης υποστήριξη που έχει για τα πιο νέα πρότυπα και πρωτόκολλα που υποστηρίζονται από τον παγκόσµιο ιστό. H C# παρέχει υποστήριξη για τη µετατροπή οποιουδήποτε τµήµατος κώδικα σε Web Service µε αποτέλεσµα, συναρτήσεις και γενικότερα πολλές απο τις λειτουργίες του προγράµµατος να µπορούν να προσπελαστούν από άλλες πλατφόρµες προγραµµατισµού. Ο τεχνικός τρόπος µε τον οποίο γίνεται αυτό είναι ο εξής: ένα XML Web Service ουσιαστικά είναι µια ASP.NET σελίδα η οποία επιστρέφει XML κώδικα στον πελάτη αντί για HTML όταν ο τελευταίος ζητήσει µια πληροφορία. Τέτοια προγράµµατα παράγουν DLL αρχεία τα οποία περιέχουν κλάσεις οι οποίες προέρχονται από την WebService κλάση του.net Framework. Για να γίνει κατανοητό το µέγεθος της σηµαντικότητας αυτού του χαρακτηριστικού απλά αναφέρουµε τα XML Web Services στηρίζονται στο HTTP πρωτόκολλο. Τα XML Web Services µπορούν να χρησιµοποιηθούν πάνω 30

31 από HTTP δίκτυα δεδοµένου το ότι είναι ένα µέσο για µετάδοση πληροφοριών. Η XML είναι µια γλώσσα αυτοπεριγραφής και µη ειδικευµένη η οποία είναι κατανοητή από όλες τις γλώσσες προγραµµατισµού. Αυτός ο λόγος δίνει τη δυνατότητα στις εταιρίες, οι οποίες χρησιµοποιούν αυτή τη τεχνολογία, να κατασκευάζουν µεγάλες εφαρµογές οι οποίες είναι ανεξάρτητες πλατφόρµας Σύνοψη Η C# είναι µια µοντέρνα αντικειµενοστρεφής γλώσσα που δινει την δυνατότητα στους προγραµµατιστές να φτιάχνουν γρήγορα και εύκολα λογισµικό για την πλατφόρµα.net. Η παρεχόµενη πλατφόρµα επιτρέπει την κατασκευή XML Web Services τα οποία είναι διαθέσιµα µέσω Internet από οποιαδήποτε εφαρµογή που τρέχει σε οποιαδήποτε πλατφόρµα. Η γλώσσα ενισχύει την παραγωγικότητα των υπευθύνων για την ανάπτυξη λογισµικού ενώ παράλληλα βοηθά τον προγραµµατιστή στην µείωση των λαθών κατά τη φάση της υλοποίησης. Με αυτό το τρόπο αποτρέπει τις αυξανόµενες δαπάνες της ανάπτυξης λογισµικού. Τέλος, η C# βοηθά τη µετάβαση των C/C++ προγραµµατιστών στην ανάπτυξη εφαρµογών για το παγκόσµιο ιστό ενώ παράλληλα διατηρεί τη δύναµη και την ευελιξία στην ανάπτυξη λογισµικού. 31

32 1.4 XML (extensive Markup Language) Γενικά Η XML είναι µια markup γλώσσα για έγγραφα τα οποία περιέχουν δοµηµένη πληροφορία, και αποτελεί σηµαντικό στοιχείο του semantic web. Η δοµηµένη πληροφορία περιέχει περιεχόµενα (λέξεις, εικόνες κτλπ) και κάποια στοιχεία για το τί αυτή αντιπροσωπεύει, και τι ρόλο παίζει. Σχεδόν όλα τα έγγραφα έχουν κάποια δοµή. Μια markup γλώσσα είναι ένας µηχανισµός ώστε να υποδηλώνεται η δοµή ενός εγγράφου. Οι προδιαγραφές της XML ορίζουν ένα τυποποιηµένο τρόπο µε τον οποίο µπορεί κάποιος να προσθέτει markup στα έγγραφα. Ένα τυπικό παράδειγµα στο οποίο µπορούµε να δούµε µια πληροφορία και το είδος το οποίο αντιπροσωπεύει είναι το εξής: <author>berners-lee</author>. Το πλεονέκτηµα της XML είναι ότι το λογισµικό µπορεί να διαβάσει συγκεκριµένες ετικέτες και να εφαρµόσει διαδικασίες όπως είναι η εξόρυξη βιβλιογραφικής πληροφορίας αλλά και άλλες χρήσιµες διαδικασίες. Η σχεδιαστικοί στόχοι της XML δίνουν έµφαση στην απλότητα, τη γενικότητα και την χρήση της στο Internet. Η γλώσσα αυτή υποστηρίζεται από όλες τις σύγχρονες γλώσσες προγραµµατισµού του κόσµου και παρ' όλο το ότι στοχεύει στη δόµηση εγγράφων, υπάρχουν πολλές περιπτώσεις στις οποίες χρησιµοποιείται για την παρουσίαση πολύπλοκων δοµών δεδοµένων όπως για παράδειγµα είναι τα XML Web Services. Τέλος, πρέπει να αναφερθεί ότι η XML είναι η βάση για ένα σύνολο άλλων γλωσσών όπως οι: RSS, Atom, SOAP, XHTML και άλλες Ορισµός της δοµής ενός XML εγγράφου Όπως αναφέρθηκε προηγουµένως, η XML είναι ένα έγγραφο µε καθορισµένη δοµή. Αυτή η δοµή όµως πως ορίζεται; Παρακάτω θα δωθούν 32

33 πληροφορίες για το XML Schema το οποίο είναι ένας τρόπος για να περιγράψουµε τη δοµή ενός αρχείου XML. Το XML Schema λοιπόν εκφράζει µε ένα κοινό λεξιλόγιο το περιεχόµενο του XML εγγράφου. Πιο συγκεκριµένα, παρέχει τα µέσα ώστε να δηλωθεί η δοµή το περιεχόµενο και τα tags ενός XML αρχείου. Αυτή η διαδικασία επικυρώνει τη σύνταξη και τη φόρµα που επιτρέπεται σε κάθε τέτοιο έγγραφο και διευκολύνει το διαµοιρασµό πληροφοριών µέσω διαδικτύου. Το XML Schema επιτρέπει το διάβασµα, την επικύρωση και την επεξεργασία XML εγγράφων από εφαρµογές λογισµικού. Αυτό παρέχει την βάση για τη σύλληψη, αναπαράσταση, ανταλλαγή και αποθήκευση πληροφοριών στις οποίες µπορούν εύκολα να έχουν πρόσβαση ευφυείς πράκτορες Σχεδιαστικοί στόχοι της XML Οι προδιαγραφές της XML ορίζουν κάποιους στόχους που πρέπει να πετύχει η γλώσσα. Αυτοί καθορίστηκαν µετά από πρόταση της W3C. Οι στόχοι περιγράφονται παρακάτω: Πρέπει να γίνεται χρήση της XML στο Internet. Οι χρήστες θα πρέπει να µπορούν να βλέπουν XML έγγραφα τόσο εύκολα, όσο βλέπουν και HTML σελίδες. Πρακτικά, αυτό είναι δυνατό µόνο όταν οι XML περιηγητές γίνουν παντού διαθέσιµοι, όπως και οι HTML περιηγητές. Αυτό µπορεί µεν να είναι δύσκολο, αλλά ο στόχος παραµένει. Η XML πρέπει να υποστηρίζει µια ποικιλία προγραµµάτων. Πρέπει να χρησιµοποιείται προς ώφελος των χρηστών σε εφαρµογές συγγραφής, περιήγησης και ανάλυσης περιεχοµένου κτλπ. Παρ' όλο το ότι αρχικά δηµιουργήθηκε για τον καθορισµό της δοµής των εγγράφων στο διαδίκτυο δε σηµαίνει ότι δεν µπορεί να χρησιµοποιηθεί για ένα πλήθος άλλων διεργασιών. Η XML θα πρέπει να είναι συµβατή µε την SGML. Οι περισσότεροι 33

34 άνθρωποι που σχετίζονται µε τη δηµιουργία της γλώσσας, έρχονται από οργανισµούς που έχουν ένα µεγάλο ποσό υλικού σε SGML. Η XML όντως, σχεδιάστηκε προκειµένου να είναι συµβατή µε ήδη υπάρχοντα πρότυπα τα οποία λύνουν το σύγχρονο πρόβληµα της αποστολής πλούσιων δοµηµένων εγγράφων στο διαδίκτυο. Θα πρέπει να είναι εύκολη η συγγραφή προγραµµάτων τα οποία επεξεργάζονται XML έγγραφα. Αυτό σηµαίνει πρακτικά ότι ένας µαθητής της επιστήµης των υπολογιστών µέσα σε 2 εβδοµάδες θα µπορεί να δηµιουργήσει ένα πρόγραµµα το οποίο θα επεξεργάζεται XML έγγραφα. Ο αριθµός των προαιρετικών χαρακτηριστικών της XML θα πρέπει να είναι απολύτως µικρός, ιδανικά µηδενικός. Τα προαιρετικά χαρακτηριστικά αυξάνουν τα προβλήµατα συµβατότητας, όταν οι χρήστες επιθυµούν να µοιραστούν έγγραφα, οδηγούν σε σύγχυση και απογοήτευση. Τα XML έγγραφα πρέπει να είναι αναγνώσιµα από ανθρώπους και απολύτως σαφή. Με απλά λόγια, ακόµη και αν δεν υπάρχει διαθέσιµος κάποιος XML περιηγητής, θα πρέπει τα έγγραφα να είναι κατανοητά ως προς τη περιγραφή και το περιεχόµενο, µε ένα από πρόγραµµα ανάγνωσης κειµένου. Ο σχεδιασµός της XML πρέπει να προετοιµαστεί ταχύτατα. Η χρήση της γλώσσας αυτής ήταν αναγκαία και θα έπρεπε να αναπτυχθεί όσο το δυνατόν πιο γρήγορα. Ο σχεδιασµός της XML θα πρέπει να είναι επίσηµος και συνοπτικός. Αυτό πρακτικά σηµαίνει ότι η XML θα πρέπει να εκφράζεται σε EBNF και θα πρέπει να είναι η συνυφασµένη η λογική της µε αυτή των µοντέρνων µεταγλωττιστικών εργαλείων και τεχνικών. Μια από τις ανάγκες για τη δηµιουργία της XML ήταν και αυτή, καθώς η γραµµατική της γλώσσας SGML, λόγω κάποιων τεχνικών προβληµάτων, δε µπορεί να εκφραστεί σε EBNF. Η συγγραφή ενός SGML parser απαιτεί τον χειρισµό µιας πλειάδας δύσκολων και σπάνιων χαρακτηριστικών ενώ η XML όχι. 34

35 Η δηµιουργία των XML εγγράφων πρέπει να είναι εύκολη. Παρ' όλο το ότι µπορεί να υπάρχουν περίπλοκες εφαρµογές επεξεργασίας τέτοιων εγγράφων, η δηµιουργία και η επεξεργασία XML περιεχοµένου θα πρέπει να γίνεται εύκολα και από έναν απλό επεξεργαστή κειµένου, από Perl scripts κτλπ Γιατί χρησιµοποιούµε XML; H XML χρησιµοποιείται σε πολλές φάσεις της ανάπτυξης λογισµικού, κυρίως για να απλοποιήσει την αποθήκευση και τον διαµοιρασµό δεδοµένων. Η XML διαχωρίζει τα δεδοµένα από την HTML. Εαν προκύψει η ανάγκη για δυναµική απεικόνιση δεδοµένων σε µια HTML σελίδα, συνήθως χρειάζεται πολύς χρόνος για την επεξεργασία της κάθε φορά που απαιτούµε µια αλλαγή. Με την XML, τα δεδοµένα µπορούν να αποθηκευτούν σε διαφορετικά XML έγγραφα. Με αυτό το τρόπο, το µόνο που απασχολεί τον προγραµµατιστή είναι να δηµιουργήσει την διεπαφή της σελίδας, να απεικονίσει τις πληροφορίες και είναι σίγουρο ότι δεν θα χρειαστεί περαιτέρω αλλαγές στον HTML κώδικα. Με λίγες γραµµές Javascript κώδικα είναι εύκολο να διαβάσεις ένα εξωτερικό XML αρχείο για την απεικόνιση των πληροφοριών. Η XML απλοποιεί το διαµοιρασµό πληροφοριών. Στον πραγµατικό κόσµο, τα συστήµατα υπολογιστών και βάσεων δεδοµένων περιέχουν πληροφορίες σε µορφές που δεν είναι γενικά συµβατές. Από την άλλη πλευρά τα XML δεδοµένα είναι αποθηκευµένα σε απλή µορφή κειµένου. Αυτό παρέχει ανεξαρτήσια από κάθε λογισµικό ή υλικό στην αποθήκευση δεδοµένων. Ως αποτέλεσµα, η δηµιουργία δεδοµένων και ο διαµοιρασµός τους µεταξύ εφαρµογών γίνεται πάρα πολύ εύκολα. 35

36 Η XML απλοποιεί τη µεταφορά δεδοµένων. Μια από τις µεγαλύτερες προκλήσεις στον κόσµο των προγραµµατιστών είναι η ανταλλαγή πληροφοριών, µεταξύ διαφορετικής σύνθεσης συστηµάτων, στον παγκόσµιο ιστό. Η ανταλλαγή πληροφοριών σε µορφή XML µειώνει την πολυπλοκότητα αυτής της διαδικασίας, καθώς τα δεδοµένα µπορούν να διαβαστούν απο συστήµατα και λογισµικό διαφορετικής φιλοσοφίας. Η XML απλοποιεί τις αλλαγές της πλατφόρµας. Η αναβάθµιση σε νέα συστήµατα (λογισµικού ή υλικού), είναι αρκετά χρονοβόρα διαδικασία. Ένας µεγάλος όγκος πληροφοριών πρέπει να µετατραπεί και συνήθως ασύµβατα, µε την πλαφόρµα, δεδοµένα χάνονται τελείως. Τα δεδοµένα που είναι αποθηκευµένα σε XML, είναι πολύ πιο εύκολο να επεκταθούν ή να αναβαθµιστούν από νέα λειτουργικά συστήµατα, νέες εφαρµογές, ή νέους περιηγητές χωρίς να χαθούν πληροφορίες λόγω κάποιας ασυµβατότητας, εξαιτίας του το ότι η πληροφορία βρίσκεται σε απλά αρχεία κειµένου. Η XML κάνει τα δεδοµένα διαθέσιµα σε µεγαλύτερο βαθµό. Διάφορες εφαρµογές µπορούν να έχουν πρόσβαση στα δεδοµένα όχι µόνο σε HTML σελίδες, αλλά επίσης από XML πηγές δεδοµένων. Με XML, τα δεδοµένα είναι διαθέσιµα σε όλους τους τύπους συστηµάτων (υπολογιστές τσέπης, feeds, µηχανές οµιλίας κτλπ.) τα οποία απαιτούν πρόσβαση σε δεδοµένα, µε αποτέλεσµα να γίνονται διαθέσιµες αυτές οι πληροφορίες, σε τυφλούς και ανθρώπους µε αναπηρίες, πολύ εύκολα! Η XML αποτέλεσε τη βάση νέων γλωσσών στο Internet. Πολλές νέες γλώσσες στο Internet δηµιουργήθηκαν µε την XML. Παραδείγµατα τέτοιων γλωσσών είναι τα εξής: 36

37 XHTML: Η νέα γενιά της HTML. WSDL: Η γλώσσα µε την οποία περιγράφονται τα Web Services. WAP, WML: markup γλώσσες για συσκευές χειρός. RSS: Γλώσσα για ροές νέων (news feeds). RDF, OWL: Γλώσσες για περιγραφή οντολογιών. SMIL: Γλώσσα για περιγραφή οπτικοακουστικού υλικού στο διαδίκτυο. Το µέλλον της γλώσσας διαγράφεται λαµπρό καθώς η τεχνολογία µπορεί να µας δώσει επεξεργαστές κειµένου, εφαρµογές λογιστικών φύλλων και βάσεις δεδοµένων των οποίων οι πληροφορίες µπορούν να ανταλλάσονται χωρίς καµία προηγούµενη µετατροπή XML έννοιες. (Unicode) Character: Από τον ορισµό της γλώσσας, είναι γνωστό ότι το έγγραφο XML είναι ένα αλφαριθµητικό το οποίο αποτελείται απο χαρακτήρες. Σχεδόν κάθε Unicode χαρακτήρας µπορεί να εµφανιστεί σε ένα XML έγγραφο. Processor and Application: Ο επεξεργαστής αναλύει το markup κοµµάτι του εγγράφου και παραχωρεί σε µια εφαρµογή τη δοµηµένη πληροφορία που λαµβάνει από αυτό. Οι προδιαγραφές τις γλώσσες ορίζουν τι πρέπει να κάνει ένας επεξεργαστής και τι όχι. Από τη σκοπιά του προγράµµατος, δεν υπάρχουν προδιαγραφές για το πως θα διαχειριστούν τα δεδοµένα. Ο επεξεργαστής συχνά αναφέρεται και ως XML parser. 37

38 Markup and Content: Οι χαρακτήρες οι οποία αποτελούν ένα XML έγγραφο είναι διαµοιρασµένοι σε markup και περιεχόµενο. Αυτά τα δύο πρέπει να διαχωρίζονται από την εφαρµογή µε κάποιους απλούς συντακτικούς κανόνες. Παραδείγµατος χάριν όλα τα αλφαριθµητικά τα οποία ανήκουν στη κατηγορία markup ξεκινάν ή τελειώνουν µε τα σύµβολα < και > αντίστοιχα. Επίσης είναι δυνατό να ξεκινούν µε το χαρακτήρα & και να τελειώνουν µε το χαρακτήρα ;. Τα αλφαριθµητικά τα οποία δεν αποτελούν markup είναι το περιεχόµενο. Ετικέτες (Tags): Ετικέτα ονοµάζεται το markup αλφαριθµητικό το οποίο ξεκινά µε τον χαρακτήρα < και τελειώνει µε το χαρακτήρα >. Τα tags αποτελούνται απο τρεις κατηγορίες. Αρχικά υπάρχουν τα start-tags (ετικέτες αρχής), πχ. <section>, στη συνέχεια έχουµε τα end-tags (ετικέτες τέλους), πχ. </section> και τέλος έχουµε τα empty-element tags, πχ. <line-break/>. Στοιχείο (Element): Το στοιχείο είναι κάθε λογικό συστατικό του εγγράφου το οποίο είτε ξεκινά µε ένα start-tag και τελειώνει µε ένα end-tag, είτε αποτελείται από ένα empty-element tag. Οι χαρακτήρες ανάµεσα από τα start-tags και end-tags, αν υπάρχουν, είναι το περιεχόµενο του στοιχείου, και πιθανώς να περιέχουν markup στοιχεία αλλά και άλλα στοιχεία τα οποία καλούνται elements-παιδιά. Για παράδειγµα το <Greeting>Hello, world.</greeting>. Ιδιότητες (Attribute): Ιδιότητα ονοµάζεται µια markup δοµή η οποία αποτελείται από ένα ζευγάρι ονόµατος-τιµής το οποίο βρίσκεται µέσα σε ένα start-tag ή emptyelement tag. Για παράδειγµα, παρακάτω το στοιχείο img έχει δύο ιδιότητες, 38

39 src και alt: <img src = ceid.jpg alt='patras University '/>. Άλλο ένα παράδειγµα θα ήταν το <step number= 3 >Connect A to B.</step> όπου το όνοµα της ιδιότητας είναι το number και ο αριθµός είναι το 3. XML δήλωση (XML Declaration): Στα XML έγγραφα πρέπει να δηλώνονται στην αρχή κάποιες πληροφορίες γύρω από αυτά. Για παράδειγµα ποια έκδοση από το πρότυπο XML χρησιµοποιούν και σε τι κωδικοποίηση είναι γραµµένα αυτά τα έγγραφα Σύνοψη Η XML είναι µια markup γλώσσα η οποία έχει δηµιουργηθεί για την ανταλλαγή πληροφοριών στο διαδίκτυο έυκολα και αποδοτικά. Το µεγάλο πλεονέκτηµά της είναι η δυνατότητα προσπέλασης των XML εγγράφων από οποιαδήποτε πλατφόρµα λογισµικού η υλικού. Παράλληλα είναι µια γλώσσα εύκολη στην κατανόηση και µπορεί να βοηθήσει στην προσπέλαση δεδοµένων από άτοµα µε ειδικές ανάγκες. Τέλος, η XML αποτελεί τη βάση δηµιουργίας µιας πλειάδας γλωσσών που χρησιµοποιούνται χρησιµοποιείται κατα κόρον στα Web Services. 39 στο Internet και

40 1.5 HTML Γενικά Τα αρχικά HTML προέρχονται από τις λέξεις HyperText Makrup Language. Η html δεν είναι γλώσσα προγραµµατισµού αλλά µια markup γλώσσα, δηλαδή ένας συγκεκριµένος δοµηµένος τρόπος µε τον οποίο γράφουµε κείµενα. Ο κάθε χρήστης ηλεκτρονικού υπολογιστή µπορεί να δηµιουργήσει ένα αρχείο HTML. Αυτό µπορεί να το πετύχει χρησιµοποιώντας έναν από επεξεργαστή κειµένου, δηµιουργώντας ένα έγγραφο µε τη δοµή που επιτρέπει η HTML. Η γλώσσα αυτή, όπως και η XML που αναφέρθηκε παραπάνω, αποτελεί ένα υποσύνολο της SGML (Standard Generalized Markup Language) που κατασκευάστηκε από την IBM προκειµένου να δώσουν λύση στο πρόβληµα της µή όµοιας απεικόνισης σε διαφορετικά υπολογιστικά συστήµατα. Ένας περιηγητής αναγνωρίζει αυτό το συγκεκριµένο τρόπο γραφής µε τον οποίο δοµείται/αποτελείται ένα HTML έγγραφο και εκτελεί της εντολές που περιέχεται σ'αυτό. Σε αυτό το σηµείο πρέπει να τονιστεί ότι η HTML είναι η πιο διαδεδοµένη γλώσσα η οποία χρησιµοποιείται για να περιγραφεί µια ιστοσελίδα στο διαδίκτυο. Παράλληλα είναι και η πρώτη γλώσσα η οποία χρησιµοποιήθηκε και είχε τη δυνατότητα για κάτι τέτοιο. Ένα HTML έγγραφο, αφού αποτελείται από markup περιεχόµενο, περιέχει διάφορες ετικέτες (tags) για τις οποίες υπάρχουν κανόνες για το πως θα τις αξιοποιήσει ένα περιηγητής. Όπως αναφέρθηκε και σε προηγούµενη ενότητα, οι ετικέτες είναι εντολές οι οποίες ορίζουν την αρχή και το τέλος µιας συγκεκριµένης λειτουργίας. Οι ετικέτες αυτές βρίσκονται πάντα ανάµεσα από τα σύµβολα < και >. οι εντολές είναι case insensitive, δηλαδή δεν έχει σηµασία εαν είναι γραµµένες µε πεζούς, ή κεφαλαίους χαρακτήρες. Τέλος, τα HTML έγγραφα έχουν κατάληξη.htm ή.html χωρίς αυτό να σηµαίνει ότι δεν µπορούµε να ενσωµατώσουµε HTML σε αρχεία α οποία δεν έχουν τέτοια κατάληξη. 40

41 1.5.2 Ιστορία της HTML Το 1980, ο φυσικός Tim Berners-Lee, ο οποίος εργαζόταν στο CERN, πρότεινε το ENQUIRE, ένα σύστηµα για τους ερευνητές του CERN οι οποίοι θα το χρησιµοποιούσαν προκειµένου να χρησιµοποιούν και να µοιράζονται έγγραφα. Το 1989, ο Berners-Lee έγραψε µια σηµείωση µε την οποία πρότεινε ένα σύστηµα υπερκειµένου που θα βασιζόταν στο διαδίκτυο. Έτσι, δηµιούργησε τη γλώσσα HTML, έναν περιηγητή ο οποίος διάβαζε τέτοια έγγραφα και ένα σύστηµα εξυπηρετητή προς το τέλος του Εκείνη τη χρονιά ο Berners-Lee σε συνεργασία µε τον Robert Cailliau ζήτησαν επιχορήγηση, αλλά το project αυτό δεν υιοθετήθηκε, τελικά, από το CERN. Η πρώτη δηµόσια περιγραφή της HTML ήταν ένα έγγραφο το οποίο ονοµάστηκε HTML Tags, το οποίο, αρχικά, αναφέρθηκε στο διαδίκτυο από τον Berners-Lee, τέλη του Αυτό περιγράφει 20 στοιχεία γύρω από το σχεδιασµό της HTML. Εκτός από την ετικέτα που αφορούσε υπερσυνδέσµους, η γλώσσα αυτή επηρεάστηκε κατα κόρον από την SGMLguid το οποίο ήταν ένα πρότυπο συγγραφής documentation στο CERN. 13 από αυτες τις ετικέττες υπάρχουν ακόµη στην HTML 4.0. Η HTML είναι µια γλώσσα η οποία χρησιµοποιείται από τους περιηγητές για να διαµορφώνει δυναµικά ιστοσελίδες που περιέχουν κείµενο και εικόνες. Πολλά από τα στοιχεία κειµένου (text elements) της HTML βρέθηκαν από την τεχνική αναφορά της οργάνωσης ISO µε ονοµασία Τεχνικές για τη χρήση της SGML η οποία περιγράφει διάφορες από τις πρώτες γλώσσες που µορφοποιούσαν κείµενο όπως και η HTML. Ο Berners-Lee θεώρησε την HTML ως µια εφαρµογή της SGML µέχρι τα µέσα του 1993 όπου δηµοσιεύτηκε µια πρόταση για τις προδιαγραφές της HTML η οποία έγινε από τον Berners-Lee και τον Dan Connolly. Σε αυτή την πρόταση συµπεριλαµβανόταν και ο ορισµός µιας γραµµατικής της HTML σε SGML Document Type Definition. Στη συνέχεια προτάθηκε η HTML+, από τον Dave Raggett, η οποία περιείχε στοιχεία όπως πίνακες και φόρµες. Μετά την HTML και την HTML+ ο οργανισµός IETF δηµιούργησε µια 41

42 οµάδα η οποία θα ασχολούνταν αποκλειστικά και µόνο µε την ανάπτυξη της HTML και ο 1995 ολοκληρώθηκε η HTML 2.0. Η έκδοση αυτή ήταν η βάση µε την οποία θα πορευόταν οι επόµενες εκδόσεις της γλώσσας γι' αυτό και ορίστηκε ως πρότυπο. Από το 1996, οι προδιαγραφές τις HTML έχουν διατηρηθεί από τον οργανισµό W3C (World Wide Web Consortium) και το 2000 η γλώσσα έγινε διεθνές πρότυπο. Οι τελευταίες προδιαγραφές της γλώσσας δηµοσιεύτηκαν από τον W3C δηµιουργώντας την έκδοση 4.0 της γλώσσας. Η δηµιουργία της έκδοσης αυτής προτάθηκε το Τέλος, η ανάπτυξη της HTML σταµάτησε και η γλώσσα XHTML γεννήθηκε HTML και η εξέλιξή της. Παρακάτω συνοψίζεται η εξέλιξη της HTML: Έκδοση Νοεµβρίου 1995: Η HTML 2.0 δηµοσιεύεται σαν πρότυπο. (RFC 1866) 25 Νοεµβρίου 1995: Προστίθεται σαν χαρακτηριστικό η φόρµα για ανέβασµα αρχείων. (RFC 1867) Μάιος 1996: Προστίθεται σαν χαρακτηριστικό οι πίνακες (tables). (RFC 1942) Αύγουστος 1996: Προστίθεται η δυνατότητα για χάρτες εικόνων στην πλευρά του client. (RFC 1980) 42

43 Ιανουάριος 1997: Προστίθονται δυνατότητες internationalization. (RFC 2070) Μετά τον Ιούνιο του 2000, όλα αυτά τα χαρακτηριστικά δηλώθηκαν ώς ξεπερασµένα και ιστορικά. (RFC 2854) Έκδοση 3.0 Ιανουάριος 1997: Η HTML 3.2 δηµοσιεύτηκε σαν πρόταση από τον οργανισµό W3C. Αυτή ήταν και η πρώτη φορά που αυτός ο οργανισµός ανέπτυξε και έθεσε ως πρότυπο τη γλώσσα. Ο οργανισµός IETF που αρχικά σχεδίαζε και ανέπτυσσε την HTML έκλεισε την οµάδα εργασίας της τον Σεπτέµβριο του Στη συνέχεια σε αυτή την έκδοση εγκαταλήφθηκαν τελείως η δυνατότητα για µαθηµατικές φόρµουλες, και υιοθετήθηκαν οι περισσότερες από τις οπτικές markup ετικέττες του περιηγητή Netscape. Τα στοιχεία blink και marquee της Netscape και της Microsoft αντίστοιχα εγκαταλήφθηκαν µετά από συµφωνία των δύο εταιριών. Έκδοση 4.0 Δεκέµβριος 1997: Η HTML 4.0 προτάθηκε από τον οργανισµό W3C. Η πρόταση αυτή περιείχε 3 παραλλαγές: Αυστηρή, στην οποία τα αποδοκιµασµένα στοιχεία ήταν απαγορευµένα. Μεταβατική, στην οποία τα αποδοκιµασµένα στοιχεία επιτρεπόταν. Frameset, στην οποία µόνο τα, σχετικά µε το πλαίσιο (frame), στοιχεία επιτρεπόταν. Η HTML 4.0 υιοθέτησε πολλούς τύπους στοιχείων και χαρακτηριστικών από διάφορους περιηγητές. Παράλληλα όµως, απέκλεισε τα οπτικά markup χαρακτηριστικά του περιηγητή Netscape για χάρη της CSS (αναλύεται στο επόµενο κεφάλαιο). Τέλος, η HTML 4.0 είναι µια εφαρµογή της SGML 43

44 σύµφωνα µε το πρότυπο ISO 8879 SGML. Απρίλιος 1998: Έγιναν κάποιες αλλαγές στη γλώσσα χωρίς να αυξηθεί ο αριθµός της έκδοσης. Δεκέµβριος 1999: Η HTML 4.01 δηµοσιεύτηκε αν µια πρόταση της W3C. Προσέφερε τις τρείς παραλλαγές της HTML 4.0 και τα τελευταία τυπογραφικά λάθη που υπήρχαν στις προηγούµενες προτάσεις δηµοσιεύτηκαν τις 12 Μαίου του Μαίος 2000: Η HTML αναγνωρίστηκε σαν διεθνές πρότυπο από τον οργανισµό ISO. Στη συνέχεια η οµάδα εργασίας του W3C σταµάτησε την ανάπτυξη της HTML και επικεντρώθηκε στην ανάπτυξη µιας γλώσσας, που βασίζεται στην XML, και θα αποτελούσε τη συνέχεια της HTML. Αυτή η γλώσσα ονοµάστηκε XHTML (extensible Hypertext Markup Language) και αναπτύχθηκε από την αρχή µέχρι τα µέσα του XHTML H XHTML είναι µια οικογένεια από xml markup γλώσσες οι οποίες επεκτείνουν ή αντικαθιστούν εκδόσεις της HTML γλώσσας. Οι γλώσσες αυτές χρησιµοποιούνται για τη δηµιουργία ιστοσελίδων. Ενώ η HTML αποτελεί υποσύνολο της SGML (Standard Generalized Markup Language), η XHTML είναι µια εφαρµογή της XML η οποία είναι µια πιο περιορισµένη εφαρµογή της SGML. Τα XHTML έγγραφα όταν γράφονται πρέπει να ικανοποιούν ένα σύνολο κανόνων. Ως αποτέλεσµα, τα έγγραφα αυτά µπορούν να διαβαστούν χρησιµοποιώντας τυποποιηµένους XML parsers. Αντίθετα, για την ανάγνωση των HTML εγγράφων, απαιτείται ένας πιο επιεικής (συγχωρεί κάποια λάθη στη 44

45 σύνταξη) parser. Η XHTML έκδοση 1.0 ήταν µια πρόταση της W3C οργάνωσης τον Ιανουάριο του Η XHTML 1.1 ήταν µια πρόταση της W3C η οποία έγινε τις 31 Μαίου του Τέλος, η XHTML 5 είναι υπό κατασκευή από το Σεπτέµβριο του 2009 και αποτελεί µέρος της HTML 5. Η XHTML 1.0 είναι µια αναδηµιουργία των τριών τύπων εγγράφων που είχε η HTML 4.0 αλλά σαν εφαρµογές XML πλέον. Για την ώρα η πρόταση για την XHTML 5.0 ακόµη αναπύσσεται. Με µια φράση η W3C οργάνωση τον Αύγουστο του 2002 είπε ότι η οικογένεια γλωσσών XHTML θα είναι το επόµενο βήµα στην επανάσταση του διαδικτύου. Με την µεταφορά σε XHTML, οι προγραµµατιστές µπορούν να µπουν στον κόσµο της XML, χρησιµοποιώντας όλα τα πλεονεκτήµατά της, και παράλληλα µπορούν να είναι σίγουροι για τη συµβατότητα στο µέλλον. Η XHTML αναπτύχθηκε, κυρίως για να κάνει την HTML περισσότερο επεκτάσιµη και διαλειτουργική µε άλλους τύπους δεδοµένων. Η HTML 4 ήταν ένα υποσύνολο της SGML. Η SGML είναι µια γλώσσα πολύπλοκη και ούτε οι περιηγητές αλλά ούτε και η HTML 4 ήταν πλήρως συνυφασµένη µε αυτή. Το πρότυπο XML, έγινε αποδεκτό το 1998, δίνοντας έτσι στους προγραµµατιστές έναν πολύ απλό τύπο δεδοµένων, παρόµοιας απλότητας µε την HTML 4. Η σκέψη ήταν η εξής: Αλλάζοντας τη φιλοσοφία της HTML σε ένα πρότυπο που βασίζεται στην XML, η πρώτη θα γινόταν συµβατή µε όλα τα εργαλεία που υπάρχουν για τη δεύτερη. Ως αποτέλεσµα, οι servers και οι proxies θα έχουν τη δυνατότητα να µετατρέπουν περιεχόµενο σε τύπους οι οποίοι µπορούν να διαβαστούν από περιορισµένες συσκευές όπως είναι τα κινητά. Επίσης, χρησιµοποιώντας XML namespaces, τα έγγραφα που είναι γραµµένα σε XHTML παρέχουν επεκτασιµότητα για άλλες γλώσσες που βασίζονται στην XML. Τυπικά παραδείγµατα είναι η Scalable Vector Graphics και η MathML. Τέλος, µε την ανανεωµένη µορφή της HTML (XHTML), είναι δυνατός ο διαχωρισµός της HTML σε επαναχρησιµοποιήσιµα συστατικά (Components). H διαδικασία αυτή ονοµάζεται XHTML Modularization και συνέβαλε στην αποµόνωση των µη αποδοτικών χαρακτηριστικών της HTML. 45

46 1.5.5 XHTML 2.0 VS (X)HTML 5.0 Παρ' όλο το ότι είχε προταθεί από την οργάνωση W3C η διακοπή της ανάπτυξης της HTML από την έκδοση 4.01 και µετά, και ενώ επίσηµη markup γλώσσα σχεδίασης ιστοσελίδων ήταν πλεον η XHTML, η οµάδα εργασίας WHATWG (Web Hypertext Application Technology Working Group), το 2004, αποφάσισε να συνεχίσει την εξέλιξη της HTML από το σηµείο που είχε σταµατήσει, τελείως ανεξάρτητα από τον W3C. Κανόνας ήταν πως η εξέλιξη αυτή δεν θα βασίζεται στην XHTML. Οι περισσότεροι κατασκευαστές περιηγητών ήταν απρόθυµοι να υλοποιήσουν τα χαρακτηριστικά των νέων προδιαγραφών της XHTML 2.0 που όρισε ο W3C. Πίστευαν πως τα χαρακτηριστικά αυτά δεν εξυπηρετούν τις ανάγκες του µοντέρνου τρόπου ανάπτυξης διαδικτυακών εφαρµογών. Έτσι, η οµάδα εργασίας WHATWG ξεκίνησε να επεξεργάζεται ένα πρότυπο το οποίο υποστήριζε ταυτόχρονα XML αλλά και µη XML τρόπο για serialization. Το πρότυπο αυτό ονοµάστηκε HTML 5 και αναπτύχθηκε παράλληλα µε το πρότυπο XHTML 2 που εισήγαγε o W3C. Το 2007, η οµάδα εργασίας του W3C που ασχολούνταν µε την HTML ψήφισε προκειµένου να αναγνωριστεί επίσηµα η HTML 5 ως, το νέας γενιάς πρότυπο HTML (κυρίως για προβλήµατα συµβατότητας παλαιών περιηγητών µε το νέο πρότυπο). Το 2009, ο οργανισµός W3C επέτρεψε τη λήξη των εργασιών της ανάπτυξης της XHTML 2.0, γνωστοποιώντας πως η HTML 5 θα είναι η επόµενη γενιά του HTML προτύπου. Όπως αναφέρθηκε και προηγουµένως, το πρότυπο αυτό θα επέτρεπε ταυτόχρονα XML (XHTML 5.0) και µη-xml (HTML 5.0) τρόπους serialization X/HTML 5.0 Η X/HTML 5.0 είναι µια υπο-ανάπυξη γλώσσα η οποία αποτελεί την εξέλιξη του HTML προτύπου. Θα χρησιµοποιείται για την αναπαράσταση και 46

47 δόµηση περιεχοµένου στον παγκόσµιο ιστό και προσφέρει ένα σύνολο σηµαντικών χαρακτηριστικών σε σχέση µε τον προκάτοχό της. Αναµένεται, οι προδιαγραφές της να έχουν καθοριστεί πλήρως εως το Αυτό που κάνει ξεχωριστή την X/HTML 5.0 είναι α) ο τρόπος ο οποίος αντιµετωπίζονται κάποια θέµατα τα οποία είχαν οδηγήσει σε ασυµβατότητες στο παρελθόν αλλά και β) δηµιουργία κάποιων νέων στοιχείων για την κατασκευή µοντέρνων ιστοσελίδων. Αρχικά αξίζει να αναφέρουµε, τον τρόπο µε τον οποίο αντιµετωπίζονται τα πράγµατα τα οποία οδήγησαν σε λάθη, στο παρελθόν. Για να µην προκύψουν θέµατα ασυµβατότητας στο µέλλον, µιας και η γλώσσα είναι υπό-κατασκευή ακόµη αλλά παρ' όλα αυτά χρησιµοποείται, οι συγγραφείς των προδιαγραφών έχουν θέσει ένα βαθµό ωριµότητας σε κάθε στοιχείο της γλώσσας. Αυτό πρακτικά σηµαίνει πως στοιχεία µε µεγάλη ωριµότητα είναι σίγουρο οτι θα περιέχονται στο επίσηµο πρότυπο της γλώσσας. Αντίθετα, τα στοιχεία που έχουν µικρή ωριµότητα σηµαίνει πως είναι ακόµη πειραµατικά άρα δεν είναι σίγουρο ότι στο µέλλον οι εταιρίες που κατασκευάζουν περιηγητές θα συνεχίσουν να τα υποστηρίζουν στις επόµενες εκδόσεις των εφαρµογών τους. Από τη σκοπιά των προγραµµατιστών, αυτό σηµαίνει πως οι στοσελίδες που χρησιµοποιούν πειραµατικά στοιχεία της X/HTML 5.0 πιθανόν στο µέλλον να µη λειτουργούν σωστά, οπότε θα πρέπει να τις ανανεώσουν. Επίσης, για κάθε στοιχείο των προδιαγραφών της γλώσσας, πρέπει να υπάρχουν δύο διαθέσιµα, άµεσα προσβάσιµα από το κοινό, παραδείγµατα που θα το υλοποιούν. Νέα χαρακτηριστικά για τη γλώσσα, δεν θα µπορούν να προταθούν, αν δεν υπάρχει τουλάχιστον µια υλοποίηση αυτών. Αυτός ο κανόνας θεσπίστηκε για να µην εισάγονται, στο πρόχειρο του προτύπου, χαρακτηριστικά χωρίς αιτιολογία όπως έγινε στην περίπτωση της XHTML 2. Μεγάλη σηµασία δίνεται στη συµβατότητα καθώς η γλώσσα σχεδιάστηκε µε τέτοιο τρόπο ώστε να επιτρέπει τη συµβατότητα µε παλαιούς περιηγητές µέσω scripts και plugins. Επίσης, η X/HTML 5.0 δεν αντιµετωπίζεται πια σαν µια γλώσσα απεικόνισης εγγράφων, όπως στο παρελθόν, αλλά σαν µια νέα γλώσσα απεικόνισης client-server εφαρµογών. Αυτό βέβαια δε σηµαίνει πως 47

48 τα έγγραφα αγνοούνται εντελώς απλά αλλάζει η οπτική γωνία µε την οποία αντιµετωπίζονται κάποια θέµατα. Ουσιαστικά, προσεγγίζει περισσότερο την ιδέα της κατασκευής µιας γλώσσας η οποία πρόκειται να χρησιµοποιηθεί για την απεικόνιση δεδοµένων στο διαδίκτυο. Ένα από τα πράγµατα που κάνουν την X/HTML 5 κατάλληλη γλώσσα για εφαρµογές του διαδικτύου είναι η δυνατότητα για offline αποθήκευση. Ένα από τα µεγαλύτερα προβλήµατα στο χώρο των εφαρµογών διαδικτύου προκύπτει όταν δεν υπάρχει δίκτυο. Πολλές από αυτές τις εφαρµογές είναι client-side, προγραµµατισµένες σε HTML και Javascript, και χρησιµοποιούν τον web-server µόνο για την αποθήκευση κάποιων εγγράφων. Αν προστεθεί και η δυνατότητα για αποθήκευση δεδοµένων τοπικά (στον client δηλαδή), τότε ο περιηγητής (browser) µετατρέπεται σε µια πλατφόρµα τοπικής εκτέλεσης εφαρµογών. Αυτό αποτελεί αντικείµενο σοβαρής συζήτησης, ανάµεσα στις οµάδες ανάπτυξης της γλώσσας για να αποφασιστεί, αν θα προκύψουν περισσότερα πλεονεκτήµατα απ' ότι µειονεκτήµατα. Το να αποθηκεύονται δεδοµένα στον client είναι µια διαδικασία πολυδιάστατη. Είναι δυνατή η διατήρηση των δεδοµένων όσο η σελίδα παραµένει ανοιχτή και η δυναµική ανανέωσή της αλλά τι γίνεται όταν ο χρήστης κλείσει το παράθυρο της σελίδας; Μια τυπική λύση γι' αυτό είναι να διατηρεί ο server τα δεδοµένα για κάποιο χρονικό διάστηµα έτσι ώστε να µπορούν να ανακτηθούν όταν ανοιχθεί πάλι η σελίδα. Άλλος ένας τρόπος είναι η διατήρηση, µικρών ποσοτήτων, δεδοµένων σε cookies. Το πρόβληµα που προκύπτει µε αυτό το τρόπο είναι ότι επειδή τα cookies στέλνονται σε κάθε επικοινωνία µε το server, το µέγεθος της πληροφορίας που διατηρείται σε αυτά θα πρέπει να είναι πολύ µικρό. Άλλο ένα πρόβληµα προκύπτει όταν τα cookies περιέχουν µοναδικά ID. Αυτό εννοεί πως η προσπέλαση της πληροφορίας από το server δεν είναι ανά πάσα στιγµή επιτρεπτή καθώς το ID αυτό αλλάζει. Τέλος, η X/HTML 5.0 προσπερνά το single-page µοντέλο, και επικεντρώνεται σε έναν διαφορετικό τρόπο συµπεριφοράς µιας διαδικτυακής συµπεριφοράς. Συγκεκριµένα, χρησιµοποιούνται sessions για την αλληλεπίδραση διαφορετικών παραθύρων της ίδιας διαδικτυακής εφαρµογής. 48

49 Ως αποτέλεσµα, υπάρχει η δυνατότητα παραθύρων του ίδιου session. 49 για επικοινωνία µεταξύ των

50 1.6 CSS (Cascading Style Sheets) Γενικά H CSS είναι µια markup γλώσσα η οποία περιγράφει τον τρόπο απεικόνισης εγγράφων που έχουν γραφεί σε markup γλώσσες όπως πχ η HTML και η XHTML. Επίσης η CSS µπορεί να χρησιµοποιηθεί σε οποιοδήποτε XML έγγραφο όπως τα SVG και XUL. Με τη γλώσσα αυτή περιγράφεται ο τρόπος εµφάνισης του εγγράφου σε οθόνες, εκτυπωτές κτλπ. Σήµερα η CSS χρησιµοποιείται σε πολύ µεγάλο βαθµό στον σχεδιασµό διαδικτυακών εφαρµογών. Συγκεκριµένα, ο οργανισµός W3C προωθεί τη χρήση style sheets στο διαδίκτυο από το 1994 για στοιχεία όπως είναι η σχεδίαση του layout της ιστοσελίδας, τα χρώµατα και το τι γραµµατοσειρές θα χρησιµοποιηθούν. Με την επισύναψη αρχείων CSS σε δοµηµένα έγγραφα (HTML, XML κτλπ) ο χρήστης ή ο αναγνώστης έχει τη δυνατότητα να τροποποιήσει την παρουσίαση του εγγράφου χωρίς να κάνει αλλαγές στη δοµή του, δηλαδή να προσθέσει κάποια ετικέττα κτλπ. Άλλος ένας σηµαντικός λόγος για τη χρήση της γλώσσας αυτής στο διαδίκτυο είναι ο διαχωρισµός του περιεχοµένου από την εµφάνιση του εγγράφου, δίνοντας έτσι ένα πλεονέκτηµα σε θέµατα που αφορούν την πρόσβαση στο περιεχόµενο, την καλύτερη δόµηση του κώδικα, θέµατα βελτιστοποίησης κτλπ. Χρησιµοποιώντας τη γλώσσα CSS στον προγραµµατισµό ιστοσελίδων µπορούµε να εφαρµόσουµε την ίδια µορφοποίηση σε πολλές σελίδες, µπορούµε να µειώσουµε την πολυπλοκότητα του HTML κώδικα ορίζοντας τη µορφοποίηση των πινάκων µέσα στο CSS έγγραφο. Επίσης, υπάρχει η δυνατότητα εµφάνισης του ίδιου εγγράφου µε πολλές µορφοποιήσεις. Αυτό είναι ένα πολύ χρήσιµο χαρακτηριστικό καθώς µπορούµε να επιλέξουµε τον τρόπο µε τον οποίο το ίδιο έγγραφο µπορεί να απεικονιστεί στην οθόνη ή 50

51 στον εκτυπωτή ή και µε φωνή σε Braille συστήµατα. Ο οργανισµός W3C στον τοµέα της απεικόνισης ιστοσελίδων πέρα από τη CSS επεξεργάζεται και µια άλλη γλώσσα η οποία λέγεται XSL Ιστορία Τα style sheets δηµιουργήθηκαν από τα πρώτα βήµατα της SGML το Αναπτύχθηκαν προκειµένου να παρέχουν πληροφορίες για την απεικόνιση των εγγράφων στο διαδίκτυο. Μετά τη διάδοση της HTML, προστέθηκαν νέες δυνατότητες στις γλώσσες συγγραφής style sheets έτσι ώσε να ικανοποιηθούν οι ανάγκες των προγραµµατιστών σε εφαρµογές διαδικτύου. Αυτή η επανάσταση, έδωσε στους σχεδιαστές ιστοσελίδων τον απόλυτο έλεγχο γύρω από θέµατα απεικόνισης του ιστότοπου. Παράλληλα όµως η πολυπλοκότητα της HTML γινόταν όλο και µεγαλύτερη. Ο Robert Cailliau ήταν ο άνθρωπος ο οποίος σκέφτηκε πως αν υπήρχε διαχωρισµός µεταξύ της εµφάνισης και της δοµής ενός εγγράφου τότε τα πράγµατα θα ήταν πιο απλά. Ο ιδανικός τρόπος για να γίνει αυτό ήταν να δώσει στον χρήστη διαφορετικές επιλογές εµφάνισης ενός εγγράφου και έτσι δηµιουργήθηκαν τρία είδη από Style Sheets: ένα για εκτύπωση εγγράφων, ένα για απεικόνιση στην οθόνη και τέλος, ένα για την επεξεργασία του εγγράφου. Για να βελτιωθεί η απεικόνιση των ιστότοπων στο διαδίκτυο, εννιά διαφορετικές γλώσσες προτάθηκαν από τον οργανισµό W3C (World Wide Web Consortium στις λίστες ηλεκτρονικού ταχυδροµείου (mailing list) που συζητούσαν αυτό το θέµα. Από αυτές τις εννιά γλώσσες, δύο ήταν αυτές που επιλέχθηκαν από τον οργανισµό: η CHSS (Cascading HTML Style Sheets) και η SSP (Stream-based Style Sheet Proposal) και από αυτές προέρχεται η CSS. Η CHSS, ήταν µια γλώσσα η οποία έχει µεγάλες οµοιότητες µε τη σηµερινή µορφή της CSS, και προτάθηκε από τον Hakom Wium Lie τον Οκτώβριο του Από την άλλη πλευρά η SSP προήλθε από τον Bert Bos ο 51

52 οποίος είχε κατασκευάσει έναν περιηγητή (browser) ο οποίος για την απεικόνιση των εγράφων χρησιµοποιούσε την SSP style sheet γλώσσα. Ο Lie και ο Yves Lafon συνεννοήθηκαν µε τον Dave Raggett για την επέκταση του περιηγητή Arena ώστε να υποστηρίζει τη CSS. Ο Lie και ο Bos εργαστήκαν µαζί προκειµένου να αναπτύξουν το πρότυπο της CSS. Σε αντίθεση µε πολλές style sheet γλώσσες όπως η DSSSl και η FOSI, η CSS επέτρεψε τη µορφοποίηση ενός εγγράφου από διαφορετικά style sheets. Ένα style sheet µπορεί να επηρεαστεί από άλλο, επιτρέποντας έτσι τη µίξη διαφόρων µορφοποιήσεων τα οποία µπορούσαν να διαχειριστούν ισότιµα από τον σχεδιαστή αλλά και από τον χρήστη. Η πρόταση του Lie παρουσιάστηκε στο συνέδριο µε τίτλο Mosaic and the Web στο Σικάγο το Εκείνη τη χρονική περίοδο µόλις είχε δηµιουργηθεί ο οργανισµός W3C και έδειξε ιδιαίτερο ενδιαφέρον για την ανάπτυξη της CSS. Ο ίδιος οργανισµός διοργάνωσε ένα workshop στο οποίο υπεύθυνος ήταν ο Steven Pemberton. Ως αποτέλεσµα, υπήρχε όλο και µεγαλύτερο ενδιαφέρον για την ανάπτυξη της CSS. o Lie και ο Bos ήταν τα πρώτα µέλη της τεχνικής επιτροπής αυτού του project µαζί µε άλλους σηµαντικούς επιστήµονες όπως ο Thomas Reardon από τη Microsoft. Τον Αύγουστο του 1996 η εταιρία Netscape Communication Corporation παρουσίασε µια εναλλακτική γλώσσα της CSS, που ονοµαζόταν JSSS (Javascript Style Sheets). Οι προδιαγραφές της ποτέ δεν τελείωσαν µε αποτέλεσµα να παρωχηθεί. Στα τέλη του 1996 η CSS έγινε επίσηµη γλώσσα για µορφοποίηση ιστοσελίδων µε την έκδοση CSS level 1 αυτής. Η ανάπτυξη της HTML, CSS και DOM έγινε από µια οµάδα εργασίας που ονοµάζεται ERB (HTML Editorial Review Board). Στη συνέχεια η οµάδα αυτή χωρίστηκε σε τρείς άλλες οµάδες εργασίας: (1) το HTML Working group προεδρευόµενο από τον Dan Connoly του οργανισµού W3C, (2) το DOM Working group, προεδρευόµενο από τον Lauren Wood της SoftQuad και (3) το CSS Working group, προεδρευόµενο από τον Chris Lilley του οργανισµού W3C. Η οµάδα εργασίας που ήταν υπεύθυνη για την ανάπτυξη της CSS ξεκίνησε να επεξεργάζεται θέµατα τα οποία δεν µπορούσαν να γίνουν µε τη 52

53 CSS level 1, µε αποτέλεσµα να δηµιουργηθεί ένα πρόχειρο της δεύτερης έκδοσης της γλώσσας το Νοέµβριο του Τελικά η CSS level 2 δηµοσιεύθηκε τον Μάιο του 1998 επίσηµα. Σήµερα βρίσκεται υπό ανάπτυξη, από το 1998, η τρίτη έκδοση της γλώσσας CSS VS XSL Γιατί εγγράφων; ο W3C Ποια προτείνει από τις δύο δύο διαφορετικές πρέπει να γλώσσες χρησιµοποιηθεί απεικόνισης από τους προγραµµατιστές; Η απάντηση µπορεί να συνοψιστεί σε µια απλή φράση: Η CSS χρησιµοποιείται όπου είναι δυνατό, και η XSL χρησιµοποείται µόνο εκεί που είναι αναγκαίο. Ο λόγος είναι το ότι η CSS είναι πολύ πιο εύκολη στην εκµάθηση, πιο απλή στη χρήση, και πιο εύκολη στο να συντηρηθεί. Υπάρχουν πολύ περισσότερα προγραµµατιστικά εργαλεία για CSS απ ότι για XSL. Η ευκολία όµως της CSS, την κάνει πολύ περιορισµένη. Υπάρχουν κάποια πράγµατα που δεν µπορούν να γίνουν µε αυτή ή µόνο µε αυτή. Όταν εµφανιστούν αυτές οι περιπτώσεις τότε η XSL δίνει τη λύση. Συνήθως οι τελευταία χρησιµοποιείται για αλλαγές στην τυπική δοµή των εγγράφων (εµφάνισης και µή). Για παράδειγµα η XSL µπορεί να χρησιµοποιηθεί όταν εµφανιστεί η ανάγκη για ταξινόµηση µιας λίστας ως προς την αλφαβητική σειρά, όταν υπάρχει η ανάγκη αντικατάστασης κάποιων λέξεων µε άλλες λέξεις ή όταν πρέπει κενά στοιχεία (empty elements) να αντικατασταθούν από κείµενο. Χρησιµοποιώντας CSS µπορούµε να κάνουµε µερική επεξεργασία κειµένου, αλλά µικρά πράγµατα. Παρακάτω φαίνεται το διάγραµµα των ρόλων που έχουν οι CSS και XSL γλώσσες στην απεικόνιση πληροφορίας σε ιστοσελίδες. Τα XML έγγραφα µπορούν να παραχθούν µε τρείς διαφορετικούς τρόπους: (1) αν το έγγραφο 53

54 δεν χρειάζεται αλλαγή στο περιεχόµενο, γίνεται χρήση της CSS, αλλιώς γίνεται χρήση της XSL-T που είναι η γλώσσα µε την οποία γίνονται οι αλλαγές αυτές και αποτελεί κοµµάτι της XSL. Η XSL-T µπορεί να χρησιµοποιηθεί µε δύο τρόπους: είτε (2) µε χρήση των XSL-FLO ιδιοτήτων, της XSL υποδεικνύοντας τη µορφοποίηση του εγγράφου, είτε (3) παράγοντας ένα νέο XML ή HTML έγγραφο επισυνάπτοντας σε αυτό ένα CSS αρχείο Περιηγητές που υποστηρίζουν CSS Στον παρακάτω πίνακα παρουσιάζεται το σύνολο των περιηγητών (browsers) που υποστηρίζουν το πρότυπο CSS. Επίσης παρουσιάζεται η εταιρία που τους υλοποίησε και τη πλατφόρµα στην οποία µπορούν να τρέξουν. 54

55 Περιηγητής (browser) Εταιρία - Δηµιουργός Πλατφόρµα Firefox Mozilla Windows, Linux, Mac OS Internet Explorer Microsoft Windows Safari Apple Mac OS Chrome Google Windows, Linux Lobo - Java Opera Opera Windows, Linux Mac OS, cell phones AI Website Download Microsys Windows icab Alexander Clauss Mac OS Oregan TV browser Oregan Networks embedded platforms Konqueror - Linux, Unix Gallio ANT embedded platforms SurfOffline Bimesoft Windows Qi browser Tao cell phones, pda Chimera Project - Mac OS X-smile XML X-Smiles team 55 Java

56 Περιηγητής (browser) Εταιρία - Δηµιουργός Πλατφόρµα Clue NetClue Java OmniWeb - Mac OS Galeon - Linux, Unix K-Meleon - Windows Escape Espial Java mobile browser OpenWave cell phones Arachne WWW - DOS, Linux Closure - - Arena Yggdrasil Εκδόσεις CSS Η CSS αποτελείται από διάφορες εκδόσεις και profiles. Οι νεότερες εκδόσεις έχουν όλα τα χαρακτηριστικά των παλαιότερων και κάποια καινούρια. Συγκεκριµένα τα επίπεδα είναι τρία: CSS level 1, CSS level 2 και CSS level 3. Τα profiles αποτελούν υποσύνολο ενός η περισσοτέρων επιπέδων της γλώσσας. Σήµερα, έχουµε profiles τα οποία χρησιµοποιούνται σε κινητές συσκευές, εκτυπωτές και συστήµατα τηλεοράσεων. 56

57 CSS level 1: H CSS επιπέδου 1 ήταν η πρώτη έκδοση της γλώσσας που έγινε πρότυπο ύστερα από πρόταση του οργανισµού W3C το Δεκέµβριο του Τα χαρακτηριστικά της είναι τα εξής: Μορφοποίηση των γραµµατοσειρών, όπως έµφαση στα γράµµατα, πλάγια γράµµατα κτλπ. Χρωµατισµός κειµένου, φόντου και άλλων στοιχείων. Μορφοποίηση κειµένου όπως ρύθµιση του κενού µεταξύ των γραµµάτων, των λέξεων και των σειρών του κειµένου. Στοίχηση κειµένου, εικόνων πινάκων και άλλων στοιχείων. Ρύθµιση Αποστάσεων µεταξύ των στοιχείων, και ρύθµιση της θέσης του κάθε στοιχείου. Δυνατότητα για δηµιουργία µοναδικής ταυτότητας για κάθε στοιχείο ή για ένα σύνολο στοιχείων. Ο W3C δεν υποστηρίζει πια το πρότυπο της CSS επιπέδου 1. CSS level 2: Η CSS επιπέδου 2 αναπτύχθηκε από τον οργανισµό W3C και δηµοσιεύθηκε σαν πρόταση το Μάιο του Το δεύτερο επίπεδο της γλώσσας αποτελεί ένα υπερσύνολο της CSS επιπέδου 1 και περιέχει ένα σύνολο νέων χαρακτηριστικών όπως η ρύθµιση απόλυτης, σχετικής και προκαθορισµένης θέσης των στοιχείων και το νέο χαρακτηριστικό z-index µε το οποίο δίνεται η δυνατότητα δηµιουργίας layer στην απεικόνιση. Επίσης σε αυτή την έκδοση της γλώσσας εισήχθησε η υποστήριξη αρχείων media, η υποστήριξη για aural style sheets και κάποιες νέες ιδιότητες στις γραµµατοσειρές όπως είναι η σκία. Αυτή τη στιγµή, ο οργανισµός W3C διατηρεί τη πρόταση της CSS2. 57

58 H έκδοση 2.1 της CSS διορθώνει προβλήµατα που εντοπίστηκαν στην έκδοση 2, διακόπει την υποστήριξη κάποιων χαρακτηριστικών που δεν υποστηρίζονται πλέον από τους περιηγητές, και τέλος προσθέτει στα χαρακτηριστικά της γλώσσας κάποια στοιχεία που υποστηριζόταν µέχρι τώρα από επεκτάσεις (extensions) των περιηγητών. Ενώ η έκδοση αυτή ήταν η πρόταση του οργανισµού W3C για πολλούς µήνες, το Ιούνιο του 2005 µετατράπηκε σε ένα project το οποίο θα επεξεργαζόταν περισσότερο. Τέλος, ορίστηκε ώς υποψήφια πρόταση τις 19 Ιουλίου του CSS level 3: Η CSS επιπέδου 3 βρίσκεται υπό ανάπτυξη από τις 15 Δεκεµβρίου του Ο οργανισµός W3C διατηρεί συνεχώς µια αναφορά γπου περιέχει πληροφορίες για τη διαδικασία της ανάπτυξης προκειµένου να την µελετούν οι σχεδιαστές. Η CSS επιπέδου 3 αποτελείται από διάφορα κοµµάτια (modules) και έχουν κατατεθεί για αυτή ένα σύνολο ξεχωριστών προτάσεων για την εξέλιξή της Πλεονεκτήµατα CSS Το κύριο πλεονέκτηµα της CSS όπως αναφέρθηκε παραπάνω είναι το ότι µια µορφοποίηση µπορεί να εφαρµοστεί σε ένα σύνολο ιστοσελίδων. Αν απαιτούνται αλλαγές στη µορφοποίηση, τότε µε µια επεξεργασία του CSS εγγράφου όλες οι σελίδες του ιστότοπου θα λάβουν την ίδια αλλαγή. Η εναλλακτική αυτού θα ήταν η επεξεργασία κάθε σελίδας χωριστά προκειµένου να γίνει µια αλλαγή. Ως αποτέλεσµα, χρησιµοποιώντας τη CSS και τα υποστηριζόµενα, από τη γλώσσα, style sheets όλη η ευθύνη για τη µορφοποίηση των ιστοσελίδων αναλαµβάνεται από ένα γραφείο (µιας εταιρίας) ή από µόνο ένα άτοµο, ακόµη και για πολυεθνικές εταιρίες µε δεκάδες ιστότοπους. 58

59 1.6.6 Μειονεκτήµατα CSS Πέρα από τα πλεονεκτήµατα της CSS, µπορούµε να παρατηρήσουµε και τα εξής µειονεκτήµατα τα οποία θα πρέπει να αντιµετωπίζουν µε σοβαρότητα και προσοχή οι σχεδιαστές. Θέµατα ταχύτητας. Το να κατεβάσει ο περιηγητής ταυτόχρονα ένα HTML και ένα CSS αρχείο είναι πάντα πιο χρονοβόρο από το να κατεβάσει ένα µόνο αρχείο HTML. Παρ όλα αυτά αυτό δεν είναι τόσο σηµαντικό όταν ο χρήστης θέλει να περιηγηθεί σε ένα σύνολο σελίδων οι οποίες χρησιµοποιούν την ίδια µορφοποίηση (ίδιο αρχείο CSS). Διαφορετική σύνταξη από την HTML. Η CSS αναπτύχθηκε εντελώς ανεξάρτητα από την HTML και χρησιµοποιεί εντελώς διαφορετική σύνταξη. Ως αποτέλεσµα ένα προγραµµατιστής που αναπτύσσει εφαρµογές διαδικτύου θα πρέπει να γνωρίζει δύο διαφορετικούς τρόπους µοροποίησης αντί για έναν. Επίσης η σύνταξη της CSS είναι κάπως αδέξια και όχι τόσο φιλική ως προς τον χρήστη. Απαιτείται η πρόσβαση σε εξωτερικά αρχεία. Εαν αποθηκευτεί ένα έγγραφο HTML στο σκληρό δίσκο δίχως το αρχείο CSS που ορίζει τη µορφοποίησή του τότε η δεύτερη θα χαθεί. Ως αποτέλεσµα το έγγραφο δεν θα εµφανίζεται σωστά όταν ο χρήστης το βλέπει ενώ είναι αποσυνδεδεµένος από το δίκτυο. Με τον ίδιο τρόπο, όλες οι σελίδες των οποίων η µορφοποίηση εξαρτάται από ένα αρχείο CSS, όταν χάσουν τη σύνδεση µε το αρχείο αυτό, δεν θα εµφανίζονται σωστά. Επίσης παράδειγµα) οποιοδήποτε ορίζονται στο άλλο αρχείο υλικό της (φωτογραφίες µορφοποίησης δεν για θα εµφανίζονται. Μπορεί εύκολα να επεξεργαστεί και να ξανα-αποθηκευτεί από τον οποιοδήποτε. Αν και αυτό κάποιοι το θεωρούν προσόν, από µια άλλη σκοπιά µπορεί να θεωρηθεί µειονέκτηµα καθώς δεν υπάρχει στη CSS κάποιο είδος ασφάλειας µιας και είναι ένα σύστηµα βασισµένο σε κείµενο. Ως αποτέλεσµα οποιοσδήποτε που έχει δικαίωµα να διαβάσει 59

60 ή να εγγράψει στο αρχείο µπορεί να διακόψει κάποιες λειτουργίες ή να αλλάξει υπερσυνδέσµους στις ιστοσελίδες. Πολυπλοκότητα σε συστήµατα δηµιουργίας ιστοσελίδων µε templates. Τα CSS αρχεία είναι ενοχλητικά σε πακέτα λογισµικού, όπως το Dreamweaver, που χρησιµοποιούν templates. Αυτό οφείλεται στο ότι ενώ κατα τη δηµιουργία ιστοσελίδων οι υπερσύνδεσµοι είναι οι σωστοί, όταν οι σελίδες ανεβαίνουν στο server οι διαδροµές αυτές µπορεί να αλλάξουν προκαλώντας προβλήµατα στην εµφάνιση τους. Πολυπλοκότητα σε συστήµατα διαχείρισης περιεχοµένου (CMS Content Management Systems) όπως το Joomla, Drupal, Wordpress κτλπ. Η πολυπλοκότητα αυτή οφείλεται στο ότι πρέπει να διατηρούνται σωστά ένα σύνολο από CSS links σε ένα µεγάλο εύρος φακέλων και αρχείων τα οποία αλλάζουν και ανανεώνονται συνεχώς. Τα περισσότερα από τα συστήµατα τέτοιου είδους χρησιµοποιούν CSS αρχεία για τη διαµόρφωση των σελίδων αλλά είναι πολύπλοκα, και µερικές φορές κάποια αλλαγή σε αυτά µπορεί να προκαλέσει δυσάρεστες συνέπειες! Σύνοψη Συνοψίζοντας, η CSS είναι µια markup γλώσσα που αναπτύχθηκε κυριώς για τον διαχωρισµό της πληροφορίας και της µορφοποίησης στις ιστοσελίδες. Η CSS είναι υπεύθυνη για το δεύτερο, δηλαδή για την µορφοποίηση των HTML εγγράφων. Ανάµεσα στα κυριότερα πλεονεκτήµατά της είναι το ότι ένα αρχείο φτάνει προκειµένου να επιβληθεί µια συγκεκριµένη µορφοποίηση σε ένα σύνολο σελίδων ενός ιστότοπου. 60

61 1.7 Microsoft SQL Server Γενικά H Microsoft SQL Server είναι µια σχεσιακή βάση δεδοµένων η οποία έχει αναπτυχθεί από τη Microsoft. Οι δύο πρωταρχικές γλώσσες ερωτηµάτων που χρησιµοποιεί είναι οι T-SQL και ANSI-SQL Ιστορία Βάση της Microsoft SQL Server αποτελεί η Sybase SQL Server η οποία ήταν η λύση της Microsoft στην αγορά των προϊόντων βάσεων δεδοµένων. Με αυτό το τρόπο η Microsoft έγινε ανταγωνίστρια εταιρία µε τις Oracle, IBM και αργότερα µε τη Sybase. Οι εταιρίες Sybase, Microsoft και Ashton-Tate συνεργάστηκαν προκειµένου να δηµιουργήσουν και να προωθήσουν την πρώτη τους σχεσιακή βάση δεδοµένων µε όνοµα SQL Server 1.0 για το λειτουργικό σύστηµα OS/2 το Η έκδοση αυτή είναι ίδια µε την SQL Server 3.0 που τρέχει σε λειτουργικά συστήµατα UNIX και VMS. Η έκδοση 4.2 της SQL Server παρουσιάστηκε γύρω στο 1992 (ήταν διαθέσιµη για το λειτουργικό IBM OS/2 έκδοση 1.3). Στη συνέχεια η έκδοση 4.2 που βασιζόταν σε Windows παρουσιάστηκε µαζί µε τη νέα έκδοση του λειτουργικού Windows NT 3.1. Η Microsoft SQL Server 6.0 είναι η πρώτη έκδοση της βάσης που σχεδιάστηκε αποκλειστικά για τα Windows NT και δεν ήταν σε συνεργασία µε την εταιρία Sybase. Μετά την παρουσίαση των Windows NT, η Sybase και η Microsoft χώρισαν τους δρόµους τους και η κάθεµια ανέπτυξε το δικό της προϊόν, και σχεδίασε µε διαφορετικό τρόπο την προώθηση των βάσεων δεδοµένων τους. Η Microsoft διαπραγµατεύτηκε τα αποκλειστικά δικαιώµατα της SQL Server για το λειτουργικό σύστηµα Windows. Στη συνέχεια η Sybase µετέτρεψε το 61

62 όνοµα της βάσης δεδοµένων που ανέπτυξε από SQL Server σε Adaptive Server Enterptise για να αποφύγει περιπλοκές µε τη βάση δεδοµένων της Microsoft που διατήρησε το ίδιο όνοµα. Έως το 1994, το προϊόν της Microsoft περιείχε τρία σηµειώµατα πνευµατικών δικαιωµάτων της Sybase, γεγονός που δήλωνε την προέλευση του συγκεκριµένου προϊόντος. Αφού χωρίστηκαν οι δρόµοι των δύο εταιριών, πολλές ανεξάρτητες ανανεώσεις του προϊόντος πραγµατοποιήθηκαν. Είναι γεγονός ότι η SQL Server 7.0 αποτελεί µια επανεγγραφή του κώδικα που είχε αναπτύξει η Sybase. Η πρώτη επιτυχία της Microsoft είναι η SQL Server 2000 για την οποία χρησιµοποιήθηκε η αρχιτεκτονική IA-64. Μέσα σε δέκα χρόνια από την εµφάνιση της έκδοσης 2000 της Microsoft SQL Server πραγµατοποιήθηκαν ένα σύνολο από εξελίξεις και αναβαθµίσεις στο λογισµικό αυτό. Συγκεκριµένα δώθηκε µεγάλη σηµασία στην απόδοση, στο εργαλεία IDE του πελάτη και σε ένα σύνολο άλλων βοηθητικών στοιχείων που έρχεται µαζί µε το πακέτο SQL Server Σε αυτά τα στοιχεία περιέχονται τα εξής: ETL (Extract, transform, and load) εργαλεία για εξαγωγή δεδοµένων, αλλαγή αυτών ώστε να ταιριάζουν στις ανάγκες του χρήστη, και φόρτωση αυτών στη βάση. Παράλληλα µέσα στο πακέτο λογισµικού του SQL Server 2005 περιέχεται ένας Server αναφορών, ένας OLAP (OnLine Analytical Processing) και data mining (εξόρυξη δεδοµένων) Server, ένα σύνολο τεχνολογιών επικοινωνίας µεταξύ των διαφορών τµηµάτων του λογισµικού. Συγκεκριµένα παραδείγµατα τέτοιων υπο-προγραµµάτων είναι οι υπηρεσίες ανακοινώσεων και οι µεσίτες υπηρεσιών (Service Brokers) Εκδόσεις Οι εκδόσεις της σχεσιακής βάσης δεδοµένων SQL Server αναπτύχθηκαν αρχικά από διάφορες εταιρίες και στη συνέχεια από τη Microsoft. Μια πλήρης σύνοψη των σταδίων από τα οποία έχουν περάσει οι συγκεκριµένου λογισµικού φαίνεται στον παρακάτων πίνακα: 62 εκδόσεις του

63 Έκδοση Έτος Όνοµα Έκδοσης Κωδικό Όνοµα SQL Server SQL Server SQL Server 4.21 SQLNT SQL Server 6.0 SQL SQL Server 6.5 Hydra SQL Server 7.0 Sphinx SQL Server 7.0 OLAP Tools Plato SQL Server 2000 Shiloh SQL Server 2000 (64-bit Edition) Liberty SQL Server 2005 Yukon SQL Server 2008 Katmai SQL Server 2008 R2 Kilimanjaro (aka KJ) Χαρακτηριστικά Αρχιτεκτονική Το layer protocol υλοποιεί το εξωτερικό επίπεδο του SQL Server. Όλες οι λειτουργίες οι οποίες µπορούν να πραγµατοποιηθουν στον SQL Server επικοινωνούν µεταξύ τους µέσω ενός τύπου που έχει οριστεί από τη Microsoft και ονοµάζεται Tabular Daa Stream (TDS). Το TDS είναι µια εφαρµογή του layer protocol, το οποίο χρησιµοποιείται για να µεταφέρονται τα δεδοµένα µεταξύ του εξυπηρετητή στον οποίο βρίσκεται η βάση δεδοµένων, και του πελάτη. Αρχικά σχεδιάστηκε και αναπτύχθηκε από την εταιρία Sybase για τη σχεσιακή βαση δεδοµένων Sybase SQL Server το 1984, και αργότερα από τη 63

64 Microsoft για το αντίστοιχο προϊόν της µε όνοµα Microsoft SQL Server. Τα TDS πακέτα χρησιµοποιούνται και σε άλλες φυσικές µεταφορές όπως στο πρωτόκολλο TCP/IP, σε τεχνολογίες Named Pipes και διαµοιρασµού µνήµης. Ως αποτέλεσµα, η πρόσβαση στον SQL Server είναι εξίσου εύκολη πάνω από αυτά τα πρωτόκολλα. Τέλος, το SQL Server API είναι διαθέσιµο και µέσω υπηρεσιών διαδικτύου (Web Services). Αποθήκευση Δεδοµένων Η κύρια µονάδα αποθήκευσης δεδοµένων είναι η βάση δεδοµένων. Αυτή αποτελείται από µια συλλογή πινάκων µε γραµµές στις οποίες περιέχονται πληροφορίες συγκεκριµένων τύπων δεδοµένων. Η SQL Server υποστηρίζει διάφορους τύπους δεδοµένων. Σε αυτούς περιέχονται οι πρωταρχικοί τύποι όπως οι ακέραιοι, δεκαδικοί, αριθµοί κινητής υποδιαστολής, χαρακτήρες (και ακολουθίες χαρακτήρων), Varchar (σειρές χαρακτήρων µεταβλητού µήκους), δυαδικούς, κείµενο κ.α. H Microsoft SQL Server επιτρέπει καθορισµένους από το χρήστη τύπους δεδοµένων (UDTs), δηλαδή τύπους οι οποίοι βασίζονται στους πρωταρχικούς τύπους αλλά µπορούν να τροποποιηθούν. Επίσης δηµιουργεί στατιστικά τα οποία είναι διαθέσιµα σαν εικονικοί πίνακες (DMVs). Εκτός από πίνακες, µια βάση δεδοµένων µπορεί να περιέχει και άλλα αντικειµενα όπως είναι οι προβολές (views), οι αποθηκευµένες συναρτήσεις, τα ευρετήρια (indexes),οι περιορισµοί (constraints), και ενα ιστορικό συναλλαγών του πελάτη µε τη βάση. Μια SQL Server βάση δεδοµένων µπορεί να περιέχει 231 αντικείµενα, και µπορεί να δηµιουργήσει πολλαπλά αρχεία µε µέγιστο µέγεθος τα 220 TB. Τα δεδοµένα στη βάση δεδοµένων αποθηκεύονται σε αρχεία µε κατάληξη.mdf. Τα δευτερεύοντα αρχεία δεδοµένων χαρακτηρίζονται από την κατάληξη.ndf και χρησιµοποιούνται για την αποθήκευση προαιρετικών µετα- πληροφοριών. Τα αρχεία αναφορών (log-files) έχουν την κατάληξη.ldf στο τέλος. Ο χώρος αποθήκευσης που δεσµεύεται για µια βάση δεδοµένων χωρίζεται σε αριθµηµένες σελίδες οι οποίες έχουν 8KB µέγεθος η κάθε µία. Η 64

65 σελίδα είναι η βασική µονάδα εισόδου-εξόδου (Ι/Ο) για τις λειτουργίες της SQL Server. Καθε σελίδα αποτελείται από µια επικεφαλίδα 96-bytes η οποία αποθηκεύει µετα-πληροφορίες γύρω από τη σελίδα. Τέτοιες πληροφορίες είναι ο αριθµός της σελίδας, ο τύπος της σελίδας, ο ελεύθερος χώρος που αποµένει σε αυτή και το ID του αντικειµένου στο οποίο ανήκει. Ο τύπος της σελίδας ορίζει τα δεδοµένα που περιέχονται σ' αυτή, τα δεδοµένα που βρίσκονται στη βάση δεδοµένων, το ευρετήριο και τη δεσµευµένη περιοχή η οποία περιέχει πληροφορίες του τρόπου µε τον οποίο οι σελίδες είναι δεσµευµένες σε πίνακες και ευρετήρια. Επίσης ορίζει τις αλλαγές οι οποίες γίνονται σε άλλες σελίδες από τη στιγµή του τελευταίου backup ή της τελευταίας σύνδεσης του χρήστη. Επιπρόσθετα, µπορεί να περιέχει µεγάλους τύπους δεδοµένων όπως εικόνες ή κείµενο. Ενώ η σελίδα είναι η βασική µονάδα για να εκτελεστεί µια λειτουργία εισόδου-εξόδου, ο χώρος στην πραγµατικότητα διαχειρίζεται από µια επέκταση που αποτελείται από οκτώ σελίδες. Ένα αντικείµενο σε µια βάση δεδοµένων µπορεί να επεκταθεί σε οκτώ σελίδες (uniform extent) ή να µοιραστεί τις σελίδες αυτές µε επτά ή περισσότερα, διαφορετικά αντικείµενα (mixed extent). Μια γραµµή σε µια βάση δεδοµένων δεν µπορεί να επεκταθεί σε περισσότερες από µία σελίδες, έτσι έχει περιορισµένο µέγεθος της τάξης των 8KB. Παρ' όλα αυτά εαν το µέγεθος ξεπεράσει τη χωρητικότητα αυτή και η γραµµή του πίνακα περιέχει Varchar ή Varbinary πληροφορία, τότε τα δεδοµένα της γραµµής αυτής επεκτείνονται σε µια καινούρια σελίδα (ή σε µια ακολουθία σελίδων που καλείται Allocation Unit). Σε αυτή την περίπτωση, ένας δείκτης υποδεικνύει που βρίσκεται η πληροφορία. Για φυσική αποθήκευση ενός πίνακα, οι γραµµές του διαχωρίζονται σε ένα σύνολο από κοµµάτια τα οποία αριθµούνται από το ένα έως το n. Το µεγεθος του κάθε κοµµατιού καθορίζεται από τον χρήστη. Το προκαθορισµένο µέγεθος είναι όλες οι γραµµές να αποτελούν ένα κοµµάτι. Ο διαχωρισµός των γραµµών σε κοµµάτια γίνεται προκειµένου να επεκταθεί η βάση δεδοµένων για χρήση σε cluster δηλαδή διαφορετικά κοµµάτια να βρίσκονται σε διαφορετικούς servers. Οι γραµµές αποθηκεύονται σε δοµή B-δέντρου ή σωρού. 65 σε κάθε κοµµάτι Εαν ο πίνακας έχει ένα

66 ευρετηρίο για γρήγορη ανάκτηση γραµµών, οι γραµµές αποθηκεύονται σύµφωνα µε τις τιµές του ευρετηρίου το οποίο ορίζεται από το B-δεντρο. Τα δεδοµένα βρίσκονται στα φύλλα του δέντρου, ενώ οι κόµβοι του δέντρου περιέχουν τις τιµές του ευρετηρίου γνωστοποιώντας έτσι σε ποιο φύλλο βρίσκονται τα δεδοµένα που µπορούν να προσπελαστούν από αυτό τον κόµβο. Εαν το ευρετήριο δεν είναι clustered, οι γραµµές δεν είναι ταξινοµηµένες σύµφωνα µε το ευρετήριο. Μια προβολή ευρετηρίου (indexed view) έχει την ίδια δοµή αποθήκευσης όπως ένας πίνακας ευρετηρίου. Ένας πίνακας δίχως ευρετήριο αποθηκεύεται σε µια δοµή σωρού. Ενδιάµεση µνήµη (Cache) Όλες οι σελίδες που αναφέρθηκαν παραπάνω αποθηκεύονται στην ενδιάµεση (buffer) µνήµη RAM η οποία είναι πιο γρήγορα προσπελάσιµη. Ως αποτέλεσµα ελαχιστοποιείται ο χρόνος που απαιτείται για την προσπέλαση και µεταφορά των πληροφοριών προς και από τον σκληρό δίσκο. Οποιαδήποτε σελίδα 8 KB µπορεί να είναι αποθηκευµένη στη µνήµη. Το σύνολο όλων των σελίδων που αποθηκεύονται σε µια χρονική περίοδο καλείται λανθάνουσα µνήµη (µνήµη cache). Ανάλογα µε το µέγεθος της µνήµης που είναι διαθέσιµο στον εξυπηρετητή, η SQL Server αποφασίζει τον αριθµό των σελίδων που θα αποθηκευτούν στην λανθάνουσα µνήµη του υπολογιστή. Η διαχείριση της µνήµης αυτής γίνεται απο διάφορους έξυπνους αλγόριθµους που έχουν σαν στόχο την βέλτιστη απόδοση. Ο κεντρικός διακοµιστής στον οποίο βασίζεται η τρέχουσα εγκατάσταση του SQL Server είναι υπεύθυνος για να εξασφαλίσει ότι οποιαδήποτε αλλαγή στα στοιχεία πληρούν κάποιες προϋποθέσεις. Συγκεκριµένα χρησιµοποιεί τις συναλλαγές (transactions) µεταξύ των υποσυστηµάτων για να εξασφαλίσει ότι οποιαδήποτε λειτουργία συµβεί, έχει δύο εν δυνάµει αποτελέσµατα τα οποία είναι η αποτυχία ή η επιτυχία. Δηλαδή κάθε διαδικασία δεν πρόκειται να βρεθεί σε ενδιάµεσες καταστάσεις καθώς είτε θα ολοκληρωθεί συνολικά, είτε αποτυγχάνει συνολικά. 66

67 Με τη βοήθεια των συναλλαγών αυτών, ένα σύνολο από εντολές, µπορούν να αποτελέσουν µια οµάδα υπό την προϋπόθεση ότι είτε η εκτέλεση όλων των εντολών θα είναι επιτυχής, είτε η εκτέλεση όλων των εντολών θα είναι µη επιτυχής. Ο κεντρικός SQL εξυπηρετητής επιτρέπει την παράλληλη προσπέλαση της βάσης δεδοµένων από πολλούς χρήστες. Για αυτό το λόγο θα πρέπει να ελέγχεται συνεχώς η ταυτόχρονη προσπέλαση στα κοινά δεδοµένα, προκειµένου να εξασφαλιστεί η ακεραιόητα των στοιχείων. Για παράδειγµα όταν οι πελάτες ενηµερώνουν το ίδιο στοιχείο, ή όταν ένας πελάτης προσπαθεί να αναγνώσει ένα στοιχείο το οποίο ενηµερώνεται παράλληλα από έναν άλλο πελάτη. Ταυτοχρονισµός Όπως αναφέρθηκε παραπάνω πολλοί χρήστες έχουν τη δυνατότητα να χρησιµοποιούν µια βάση δεδοµένων ταυτόχρονα. Προκειµένου η βάση να συγχρονίζεται έτσι αναφέρθηκαν ταυτοχρονισµού: ώστε παραπάνω, ο να µην προκύπτουν παρέχονται απαισιόδοξος δύο τα προβλήµατα τρόποι ταυτοχρονισµός και ελέγχου ο που του αισιόδοξος ταυτοχρονισµός. Κατά τον απαισιόδοξο έλεγχο ταυτοχρονισµού, ο κεντρικός SQL διακοµιστής ελέγχει την ταυτόχρονη πρόσβαση στα δεδοµένα µε τη χρήση κλειδώµατος (locks). Τα κλειδώµατα µπορεί να είναι είτε διαµοιραζόµενα είτε αποκλειστικά. Κατά το αποκλειστικό κλείδωµα, σε ένα µοναδικό χρήστη δίνεται πρόσβαση στα δεδοµένα της βάσης δεδοµένων. Αυτό πραγµατοποιείται συνήθως στην ενηµέρωση των δεδοµένων και ως αποτέλεσµα αποκλείεται η ταυτόχρονη αλλαγή των στοιχείων της βάσης. Κατά το διαµοιραζόµενο κλείδωµα, όταν γίνεται ανάγνωση ενός στοιχείου της βάσης, πολλαπλοί χρήστες µπορούν να διαβάσουν τα στοιχεία τα οποία είναι κλειδωµένα αλλά οι ίδιοι δεν µπορούν να αποκτήσουν αποκλειστικό. 67

68 Το κλείδωµα µπορεί να εφαρµοστεί σε διάφορα τµήµατα της βάσης δεδοµένων. Για παράδειγµα, µπορεί να χρησιµοποιηθεί σε ολόκληρους πίνακες, σε κάποιες σελίδες είτε σε διαφορετικές γραµµές της βάσης. Η διαδικασία αυτή πραγµατοποιείται εξ' ολοκλήρου από τον SQL Server µε χρήση περίπλοκων αλγορίθµων, που έχουν σαν στόχο την βέλτιστη λειτουργία ακόµη και όταν η βάση δεδοµένων χρησιµοποιείται ταυτόχρονα από εκατοντάδες χιλιάδες χρήστες. Μιλώντας µε αριθµούς, ένας διακοµιστής SQL µπορεί να πραγµατοποιήσει έως και ένα εκατοµµύριο συναλλαγές το δευτερόλεπτο µε χρήση των παραπάνω τεχνολογιών. Ένας τέτοιος server µπορεί να λειτουργήσει σε 32 ή 64 bit και υποστηρίζει µέχρι και 256 πυρήνες κεντρικών µονάδων επεξεργασίας (Αν και ο συνήθης αριθµός πυρήνων είναι 8-16). Ανάκτηση Δεδοµένων (Data Mining) Ο συνηθέστερος τρόπος για την ανάκτηση πληροφοριών από µια βάση δεδοµένων είναι η υποβολή ερωτηµάτων (query). Οι ερωτήσεις αυτές γίνονται µε ένα τυποποιηµένο τρόπο ο οποίος χρησιµοποιεί µια γλώσσα εν ονόµατι SQL T-SQL για την υποβολή των ερωτηµάτων. Η γλώσσα αυτή ουσιαστικά είναι µια διάλεκτος SQL που αναπτύχθηκε από τη Microsoft και τη Sybase. Η T-SQL είναι πολύ κοντά στα διεθνή ANSI πρότυπα, σε αντιδιαστολή µε άλλες διαλέκτους όπως η PL-SQL της Oracle που διαφέρει περισσότερα από αυτά. Μια ερώτηση επεξηγεί αναλυτικά τα στοιχεία που ο πελάτης θέλει να ανακτήσει από τη βάση δεδοµένων. Ένα query υποβάλλεται σε επεξεργασία από τον επεξεργαστή ερώτησης. Στη συνέχεια ο τελευταίος είναι υπεύθυνος για τον υπολογισµό των βηµάτων που απαιτούνται για να ανακτηθούν οι πληροφορίες που ζήτησε ο χρήστης από τη βάση δεδοµένων. Το σύνολο των ενεργείων που είναι απαραίτητες για να εκτελεστεί µια ερώτηση ονοµάζεται σχέδιο ερώτησης. Οι τρόποι που µια ερώτηση µπορεί να τεθεί υπό επεξεργασία ποικίλουν. Για παράδειγµα ένα query που ενώνει δύο πίνακες θα µπορούσε να 68

69 λειτουργήσει βρίσκοντας αρχικά τα στοιχεία στον πρώτο πίνακα και µετά ενώνοντάς τα µε τα στοιχεία του δεύτερου πίνακα ή αντίστροφα. Η διαδικασία αυτή πραγµατοποιείται µε απόφαση του SQL Server και όχι του προγραµµατιστή. Συγκεκριµένα το λογισµικό είναι αυτό το οποίο αποφασίζει,µέσω στατιστικών και άλλων στοιχείων που διαθέτει για τους δύο πίνακες, αν πρέπει να ακολουθήσει τη διαδροµή από τον πρώτο πίνακα στον δεύτερο ή αντίστροφα. Το κριτήριο µε το οποίο γίνεται η επιλογή αυτή είναι σαφώς η βέλτιστη απόδοση. Στις συναρτησιακές γλώσσες προγραµµατισµού όπως οι C, Pascal και.νετ ο προγραµµατιστής θα πρέπει να κάνει την απόφαση, γεγονός που τις περισσότερες των περιπτώσεων οδηγεί σε κακή απόδοση. Στο χώρο των βάσεων δεδοµένων όµως ο επεξεργαστής ερώτησης είναι υπεύθυνος για να υποβάλλει την βέλτιστη ερώτηση και όχι ο προγραµµατιστής όπως γίνεται µε χρήση των παραπάνω γλωσσών. O SQL Server παίρνει πολύ περίπλοκες αποφάσεις οι οποίες είναι αποτέλεσµα εκτέλεσης δύσκολων και περίπλοκων αλγόριθµων που έχουν αναπτυχθεί τα τελευταία τριάντα χρόνια αποκλειστικά για το αντικείµενο αυτό. Για να γίνει κατανοητή η πρόοδος που έχει γίνει στο πεδίο αυτό τα τελευταία χρόνια, µπορούµε να αναλογιστούµε ότι οι προηγούµενες εκδόσεις του SQL Server χρειαζόντουσαν φορές περισσότερο χρόνο για την εκτέλεση των υποερωτηµάτων. Γενικά, κάθε καινούρια έκδοση του λογισµικού προσφέρει πιο εξελιγµένους αλγόριθµους οι οποίοι βελτιώνουν την αποτελεσµατικότητα και το χρόνο εκτέλεσης. Τα παραπάνω αναδεικνύουν ένα από τα µεγαλύτερα πλεονεκτήµατα προγραµµατισµού ενός προβλήµατος σε µια βάση δεδοµένων σε σύγκριση µε την υλοποίησή του σε µια γλώσσα προγραµµατισµού όπως η C, Pascal, C++ κτλπ. Βέβαια, δεν µπορούν όλα τα προβλήµατα να εφαρµοστούν σε µια βάση δεδοµένων. Άλλο ένα σηµαντικό χαρακτηριστικό που προσφέρει στους προγραµµατιστές ο SQL Server είναι οι αποθηκευµένες ερωτήσεις (stored procedures). Οι ερωτήσεις αυτές αποτελούν ερωτήσεις µε πραµέτρους T-SQL, οι οποίες αποθηκεύονται στον SQL Server. Μια αποθηκευµένη ερώτηση έχει 69

70 µέγεθος περίπου εκατό έως χιλίων γραµµών και είναι πιο γρήγορα κατασκευάσιµες από ότι οι απλές ακολουθίες SQL ερωτήσεων. Οι stored procedures δέχονται σαν είσοδο από τον χρήστη κάποιες τιµές οι οποίες αντιστοιχούν σε παραµέτρους. Στη συνέχεια παράγεται η έξοδος σαν παράµετρος παραγωγής. Μια stored procedure έχει τη δυνατότητα να καλέσει συναρτήσεις ή άλλες stored procedures. CLR Ο Microsoft SQL Server περιλαµβάνει ένα λογισµικό το οποίο καλείται SQL CLR. Αυτό το κοµµάτι λογισµικού είναι υπεύθυνο για την ενσωµάτωση του.net µέσα στον SQL Server. Αυτό είναι ένα πολύ σηµαντικό χαρακτηριστικό καθώς µε το SQL CLR, οι stored procedures µπορούν να γραφτούν σε οποιαδήποτε από τις γλώσσες που υποστηρίζει η.net πλατφόρµα. Φυσικά µέσα σε αυτό το σύνολο γλωσσών περιλαµβάνεται και η C#. Ως αποτέλεσµα o SQL Server συγκεντρώνει όλα τα πλεονεκτήµατα της πλατφόρµας.net, και υποστηρίζει τη χρήση αυτών µέσα στο περιβάλλον του. Υπηρεσίες Ο Microsoft SQL Server περιλαµβάνει ένα σύνολο από επιπρόσθετες υπηρεσίες. Αν και αυτές δεν είναι απαραίτητες για τη λειτουργία του συστήµατος της βάσης δεδοµένων, παρέχουν ένα σύνολο από ευκολίες οι οποίες αποτελούν το υψηλότερο επίπεδο της διαχείρισης του συστήµατος της βάσης. Αυτές οι υπηρεσίες, τρέχουν είτε σαν µέρος του συστήµατος SQL Server είτε ξεχωριστά σαν υπηρεσίες του λειτουργικού συστήµατος που έχει ο server (στην προκειµένη περίπτωση Windows). Το σηµαντικότερο χαρακτηριστικό όταν λειτουργούν ξεχωριστά είναι ότι είναι διαθέσιµο στους προγραµµατιστές το API για τον έλεγχό τους αλλά και την αλληλεπίδραση µαζί τους. Παρακάτω περιγράφονται οι υπηρεσίες αυτές: Ο µεσίτης Υπηρεσιών (Service Broker) είναι ένα υποσύστηµα στον 70

71 SQL Server ο οποίος είναι υπεύθυνος για την αποστολή και λήψη µηνυµάτων µεταξύ ολοκληρωµένου των υποσυστηµάτων συστήµατος της βάσης του κεντρικού δεδοµένων. Επίσης η συγκεκριµένη υπηρεσία µπορεί να διαχειριστεί και θέµατα αναµονής µηνυµάτων. Τέλος ο µεσίτης υπηρεσιών έχει ανώτερες δυνατότητες προγραµµατισµού στο µέλλον (Scheduling). Οι υπηρεσίες συγχρονισµού χρησιµοποιείται από πραγµατοποιείται ο το (Replication) κενρικό συγχρονισµός του σύστηµα των βάσεων SQL Server προκειµένου να δεδοµένων, είτε ολοκληρωτικά, είτε µόνο ένα υποσύνολο αντικειµένων της βάσης. Ο συγχρονισµός µπορεί να επιτευχθεί µε πέντε διαφορετικούς τρόπους: log shipping, mirroring, replication, back-ups και clustering. Αυτό είναι χρήσιµο σε περιπτώσεις που η κεντρική βάση δεδοµένων καταστραφεί ολοσχαιρώς, καθώς δίνεται η δυνατότητα για αυτόµατη λειτουργία της δευτερεύουσας συγχρονισµένης βάσης δεδοµένων όταν συµβεί κάτι τέτοιο. Οι υπηρεσίες ανάλυσης (Analysis Services) του SQL Server κάνουν διαθέσιµες ικανότητες OLAP και περίπλοκης ανάκτησης δεδοµένων για τις SQL βάσεις δεδοµένων που έχουν περίπλοκη ανάλυση. Αυτό µπορεί να πραγµατοποιηθεί δίχως τη σύνθεση δύσκολων ερωτηµάτων προς τη βάση. Επίσης η µηχανή OLAP υποστηρίζει τα MOLAP, ROLAP, HOLAP εργαλεία ανάλυσης δεδοµένων για την ορθή αποθήκευση των πληροφοριών στη βάση. Οι υπηρεσίες ανάλυσης υποστηρίζει επικοινωνίας που XML τεχνολογίες χρησιµοποιούνται. Τέλος, για οι τα πρωτόκολλα αλγόριθµοι που χρησιµοποιούνται στις υπηρεσίες ανάλυσης είναι οι εξής: δέντρα απόφασης, clustering, Bayes, time series alysis, sequense clustering, γραµµική και λογική ανάλυση και τέλος αλγόριθµοι νευρωνικών δικτύων για χρήση στην εξόρυξη δεδοµένων. Ο SQL Server έχει υπηρεσίες Reporting για τη συγκέντρωση των στοίχειων που παρέχουν οι SQL βάσεις δεδοµένων. Ως αποτέλεσµα, 71

72 υπάρχει η δυνατότητα παραγωγής µιας έκθεσης αναφοράς (Web Report) σχεδόν αυτόµατα χωρίς να έχει προγραµµατιστεί αυτή η λειτουργία σε HTML, CSS και javascript. Οι υπηρεσίες ανακοίνωσης (Notification Services) πρώτη φορά ενσωµατώθηκαν στο λογισµικό του SQL Server στην έκδοση Οι υπηρεσίες ανακοίνωσης δίνουν τη δυνατότητα στους χρήστες να παράγουν s απλά και γρήγορα. Παρ όλα αυτά το χαρακτηριστικό αυτό από την έκδοση 2008 του SQL Server δεν βρίσκεται πια ενσωµατωµένο στο σύστηµα του SQL Server. Τα Integration Services του SQL Server χρησιµοποιούνται για να ενσωµατώσουν τα δεδοµένα από διαφορετικές πηγές δεδοµένων. Χρησιµοποιούνται για τις ETL ικανότητες του SQL Server για τις ανάγκες αποθήκευσης δεδοµένων (data warehousing needs). Οι ETL ικανότητες του SQL Server περιλαµβάνουν την εξαγωγή δεδοµένων από εξωτερικές πηγές, την µετατροπή τους για να ταιριάξουν στις ανάγκες της λειτουργίας, και τέλος η αποθήκευσή τους σε ένα κοινό στόχο (συγκεκριµένα σε βάση δεδοµένων είτε σε αποθήκες πληροφοριών ή αλλιώς data warehouses). Τα Integration Services περιλαµβάνουν εργαλεία GUI για να κατασκευαστούν τα workflows (σύνολο βηµάτων που απαιτούνται) της εξαγωγής δεδοµένων. Με αυτό τον τρόπο δίνεται έµφαση στην λειτουργικότητα για προβλήµατα εξαγωγής δεδοµένων από διαφορετικές πηγές, δηµιουργία ερωτήσεων στα δεδοµένα, µετατροπή δεδοµένων συµπεριλαµβανοµένου της αντιγραφής ή ένωσής τους και στη συνέχεια τη φόρτωση των αλλαγµένων δεδοµένων σε άλλες αποθήκες πληροφοριών. Επίσης, υπάρχει η δυνατότητα αποστολής s µε λεπτοµέρειες για την κατάσταση της κάθε λειτουργίας ανάλογα µε τις επιλογές του χρήστη. Η υπηρεσία αναζήτησης πλήρους κειµένου (Full Text Search service) του SQL Server είναι µια υπηρεσία αναζήτησης πληροφορίας µέσα σε αδόµητο κειµένο (δηλ. όχι xml, html κτλπ). Η υπηρεσία αυτή µπορεί να αναζητήσει πληροφορία µέσα σε οποιαδήποτε γραµµή της βάσης δεδοµένων που έχει δηλωθεί σαν char τύπος. Ενώ αυτή η 72

73 λειτουργία µπορεί να γίνει µε τη λέξη κλειδί LIKE της SQL γλώσσας, χρησιµοποιώντας την υπηρεσία αναζήτησης πλήρους κειµένου η διαδικασία αυτή απλοποιείται. Η υπηρεσία µπορεί να κάνει ταυτοποίηση κειµένου που στηρίζεται σε µια βαθµολογική σκαλά από το µηδέν έως το χίλια. Το κείµενο το οποίο έχει τον υψηλότερο βαθµό σηµαίνει ότι είναι η πιο ακριβής ταυτοποίηση στο προς αναζήτηση κείµενο. Η µηχανή της αναζήτησης πλήρους κειµένου αποτελείται από δύο διεργασίες: την διεργασία Filter Daemon (msftefd.exe) και την διεργασία Search (msftesql.exe). Αυτές οι διεργασίες αλληλεπιδρούν µε τον SQL Server. Η διεργασία της αναζήτησης περιλαµβάνει ένα µηχανισµό που φτιάχνει το ευρετήριο της διαδικασίας που αναφέρθηκε παραπάνω (indexer) και τον επεξεργαστή ερωτηµάτων για το πλήρες, προς αναζήτηση, κείµενο. Ο indexer διαβάζει το κείµενο που βρίσκεται στη βάση δεδοµένων. Επίσης υπάρχει η δυνατότητα αναζήτησης σε binary πληροφορία. Με τη χρήση των ifilters είναι δυνατή η εξόρυξη κειµένου από πχ. ένα αρχείο word το οποίο φυλάσσεται στη βάση δεδοµένων σαν binary πληροφορία. Αφού πραγµατοποιηθεί η εξόρυξη της πληροφορίας, η διεργασία Filter Daemon σπάει το κείµενο σε λέξεις δηµιουργώντας έτσι το ευρετήριο. Στη συνέχεια διαγράφονται από αυτό λέξεις άχρηστης σηµασίας όπως άρθρα, συνδεσµοι κτλπ. που δεν έχουν σηµασία κατά την αναζήτηση πληροφορίας. Με τις σηµαντικές λέξεις του ευρετηρίου δηµιουργείται ένα ανεστραµµένο ευρετήριο στο οποίο δηλώνεται σε ποια γραµµή της βάσης βρίσκεται η κάθε λέξη. Σε περίπτωση αλλαγής κάποιας γραµµής της βάσης, είναι υπεύθυνος ο Συλλέκτης (Gatherer) ώστε να ενηµερώσει το ευρετήριο. Όταν λαµβάνεται ένα ερώτηµα για πλήρες κείµενο από τον επεξεργαστή ερωτηµάτων του SQL Server, µεταβαίνει στον FTS επεξεργαστή ερωτηµάτων που βρίσκεται στη διεργασία αναζήτησης. Ο FTS επεξεργαστής ερωτηµάτων σπάει το ερώτηµα σε λέξεις, αφαιρώντας τα άχρηστα λήµµατα και χρησιµοποιώντας ένα λεξικό όρων για να κατανοήσει διάφορους τύπους µιας λέξης (πχ ρήµατα σε διάφορους χρόνους κτλπ.). Στη συνέχεια συγκρίνεται το ερώτηµα µε 73

74 τις διάφορες λέξεις που βρίσκονται ήδη σε ανεστραµµένο ευρετήριο και προκύπτει η βαθµός ταυτοποίησης. Τα αποτελέσµατα επιστρέφονται στον πελάτη µέσω της διεργασία του SQL Server. Συνοψίζοντας, είναι η υπηρεσία αυτή δίνει τη δυνατότητα αναζήτησης αδόµητης πληροφορίας σε κείµενα Word, pdf µε έµφαση στην απόδοση. Παρακάτω φαίνεται η αρχιτεκτονικής της υπηρεσίας αναζήτησης πλήρους κειµένου. 74

75 Βιβλιογραφία Κεφαλαίου: 1. en.wikipedia.org 2. el.wikipedia.org WROX PRESS, PROFESSIONAL C#, 3rd EDITION 8. HTML & CSS, THE COMPLETE REFERENCE 75

76 76

77 2. ΚΟΙΝΩΝΙΚΑ ΔΙΚΤΥΑ 77

78 78

79 2.1 Ορισµός Κοινωνικών Δικτύων Κοινωνικά δίκτυα είναι σύνολα ανθρώπων οι οποίοι είναι ενταγµένοι σε διάφορες οµάδες, όπως µικρές κοινότητες ή µια γειτονιά. Αν και σε κάποιο κοινωνικό σύνολο µπορεί να είναι µέλος ένα οποιοδήποτε άτοµο, σε οµάδες ανθρώπων όπως συνάδελφοι, φοιτητές και µαθητές είναι πιο διαδεδοµένα τα online κοινωνικά δίκτυα. Αυτό οφείλεται στο ότι τέτοιες κοινωνικές οµάδες αποτελούνται από εκατοµµύρια ανθρώπους οι οποίοι ψάχνουν συνεχώς να γνωρίσουν νέους ανθρώπου, να περισυλλέξουν αλλά και να διαµοιράσουν πληροφορία και εµπειρίες. Γενικά κάποιες από τις πιο δηµοφιλής θεµατικές ενότητες είναι η κηπουρική, η άθληση, η δηµιουργία και ανάπτυξη νέων φιλιών, η ανάπτυξη επαγγελµατικών δεσµών, η εύρεση εργασίας, η συνεργασία µεταξύ επιχειρήσεων, το marketing κ.α. Σε ένα κοινωνικό δίκτυο βέβαια µπορεί να βρεθούν οµάδες ατόµων που ασχολούνται ακόµη και µε πολύ σπάνια θέµατα. Γενικά, τα θέµατα και τα ενδιαφέροντα ποικίλουν σε τέτοια δίκτυα καθώς αποτελούνται από άτοµα που έχουν διάφορες ασχολίες, διαφορετικές κουλτούρες καθώς έρχονται από κάθε γωνιά του κόσµου. Όταν µιλάµε για online κοινωνική δικτύωση, οι ιστότοποι είναι ο κατ' εξοχήν χώρος συνάντησης των οµάδων ανθρώπων. Τέτοιοι διαδικτυακοί χώροι αποκαλούνται κοινωνικοί. Η κοινωνική δικτύωση λειτουργεί σαν µια online κοινότητα από χρήστες του διαδικτύου. Ανάλογα από τον ιστότοπο, τα περισσότερα µέλη της κοινότητας µοιράζονται κοινά ενδιαφέροντα όσον αφορά τις ασχολίες τους, τη θρησκεία τους ή τις πολιτικές πεποιθήσεις τους. Απο τη στιγµή που παρέχεται πρόσβαση σε κάποιον χρήστη στο κοινωνικό δίκτυο αυτός µπορεί να ξεκινήσει να κοινωνικοποιείται. Η διαδικασία αυτή µπορεί να περιλαµβάνει είτε την επίσκεψη στο προφίλ κάποιου άλλου µέλους, είτε την επικοινωνία µαζί του. Αυτά είναι µερικά από τα ωφέλη των online κοινωνικών δικτύων. Άλλο ένα σηµαντικό ώφελος περιλαµβάνει την ποικιλοµορφία, καθώς όπως αναφέρθηκε και πιο πάνω, σε τέτοια δίκτυα συµµετέχουν άτοµα από όλο το κόσµο. Αυτό πρακτικά σηµαίνει ότι παρ' όλο το ότι κάποιος είναι κάτοικος µιας χώρας, µπορεί να αναπτύξει µια online φιλία µε κάποιον σε µια χώρα που 79

80 βρίσκεται ακόµη και σε διαφορετική ήπειρο. Όχι µόνο επιτυγχάνονται γνωριµίες µε ανθρώπους διαφορετικής κουλτούρας αλλά µεταφέρεται και γνώση µεταξύ των ατόµων αυτών σε θέµατα κουλτούρας, γλώσσας κ.α. Όπως αναφέρθηκε, τα κοινωνικά δίκτυα συνήθως αποτελούνται από άτοµα ή οργανισµούς ενδιαφερόντων. Ενώ που συντελούν υπάρχουν µέλη ιστότοποι σε οµάδες κοινωνικών των δικτύων ίδιων που επικεντρώνονται σε συγκεκριµένα θέµατα, υπάρχουν και άλλοι οι οποίοι είναι πολύ γενικοί όσον αφορά τη θεµατολογία τους. Το τελευταίο είδος ιστοτόπων συνήθως αναφέρεται ώς παραδοσιακό κοινωνικό δίκτυο και συνήθως παρέχει δωρεάν εγγραφές. Αυτό σηµαίνει ότι ο κάθε ένας µπορεί να εγγραφεί σαν µέλος, ανεξάρτητα από τα ενδιαφέροντα, τα πιστεύω και τη θρησκεία του ατόµου. Παρ' όλα αυτά όταν ένα άτοµο είναι µέλος ενός τέτοιου ιστότοπου, µπορεί να δηµιουργήσει τη δική του online παρέα και να περιορίσει τα µέλη µε τα οποία δεν µοιράζεται τα ίδια ενδιαφέροντα. Τα διάφορα άτοµα δηµιουργούν σχέσεις µεταξύ των διάφορων θεµατικών αντικειµένων δηµιουργώντας έτσι ένα γράφο όπως φαίνεται παρακάτω: 80

81 Με την κίτρινη τελεία συµβολίζεται το θέµα µε το µεγαλύτερο ενδιαφέρον και οι µπλε γραµµές απεικονίζουν τη σχέση που έχει κάθε µέλος µε κάθε ένα από τα χιλιάδες διαφορετικά θεµατικά αντικείµενα. Όπως σε κάθε ιστότοπο έτσι και στα online κοινωνικά δίκτυα υπάρχουν πολλοί κίνδυνοι που συνδέονται µε το διαµοιρασµό προσωπικών πληροφοριών αλλά και µε τη µετάδοση ιών. Ο πιο συνηθισµένος κίνδυνος βέβαια είναι τα ψεύτικα προφίλ χρηστών στα οποία διάφορα άτοµα ισχυρίζονται ότι είναι κάποια άλλα. Οι κίνδυνοι αυτοί βέβαια πέρα από τα online κοινωνικά δίκτυα υπάρχουν και στις πραγµατικές οµάδες ατόµων. Όπως ακριβώς υπάρχει επιφύλαξη µεταξύ των µελών ενός κοινωνικού συνόλου όπως το σχολείο ή ένας αθλητικός όµιλος, έτσι και σε διαδικτυακές κοινότητες οι χρήστες πρέπει να είναι επιφυλακτικοί και προσεκτικοί. Τα κοινωνικά δίκτυα σήµερα, αποτελούν σοβαρό αντικείµενο έρευνας στις εξής επιστήµες: Κοινωνιολογία, ανθρωπολογία, βιολογία, οικονοµικά, γεωγραφία, επιστήµη πληροφοριών, επιστήµη επικοινωνιολογίας, επιστήµη οργάνωσης, κοινωνική ψυχολογία. Ένα χαρακτηριστικό παράδειγµα της ανάλυσης των κοινωνικών δικτύων εντοπίζεται στον ερευνητικό χώρο τις επιδηµιολογίας. Συγκεκριµένα, ένα τέτοιο δίκτυο βοηθά τους επιστήµονες να κατανοήσουν τον τρόπο µε τον οποίο οι ανθρώπινες επαφές ή συνήθειες εξαπλώνουν ασθένεις όπως το AIDS σε ένα πληθυσµό ανθρώπων. Η επανάσταση σε αυτό τον ερευνητικό χώρο µπορεί να µοντελοποιηθεί µε τη χρήση πρακτόρων οι οποίοι αποτυπώνουν σε βάθος την αλληλεπίδραση των ατόµων. Η αλληλεπίδραση αυτή εξαρτάται από τους κανόνες επικοινωνίας, την εξάπλωση φηµών αλλά και την κοινωνική δοµή. Στην επόµενη σελίδα φαίνεται ένας πίνακας µε τα πιο γνωστά online κοινωνικά δίκτυα: 81

82 Περιγραφή Εγγεγραµµένα Μέλη Παγκόσµια Κατάταξη Επισκεψιµότητας Γενικά Γενικά, microblogging, rss, ανανεώσεις Myspace.com Γενικά Linkedin.com Επαγγελµατική και επιχειρησιακή δικτύωση Flickr.com Διαµοιρασµός και σχολιασµός φωτογραφιών, δικτύωση ατόµων που ασχολούνται µε τη φωτογραφία Orkut.com Γενικά Hi5.com Γενικά Όνοµα Facebook.com Twitter.com 82

83 2.2 Twitter To Twitter είναι ένα κοινωνικό δίκτυο το οποίο ανήκει και λειτουργεί υπό την εταιρία Twitter Inc. Επίσης παρέχει υπηρεσίες microblogging, επιτρέποντας στους χρήστες να στέλνουν και να διαβάζουν µηνύµατα άλλων µελών τα οποία αποκαλούνται tweets. Τα tweets είναι µηνύµατα κειµένου εως 140 χαρακτήρων τα οποία εµφανίζονται στο προφίλ κάθε µέλους. Τα µηνύµατα αυτά, περιορισµένου µεγέθους, εµφανίζονται δηµόσια στον οποιοδήποτε. Παρ' όλα αυτά οι αποστολείς µπορουν να περιορίσουν τη λήψη των µηνυµάτων αυτών µόνο στη λίστα φίλων τους. Οι χρήστες της υπηρεσίας µπορούν να εγγραφούν στη λίστα των tweets ενός άλλου χρήστη. Αυτή η διαδικασία είναι γνωστή ως following και οι χρήστες που είναι εγγραµένοι στη λίστα ονοµάζονται followers. Από το τέλος του 2009, οι χρήστες µπορούν να εγγράφονται και σε λίστες οι οποίες περιέχουν ένα σύνολο tweets άλλων χρηστών. Με αυτό το τρόπο δεν χρειάζεται να εγγράφονται, στη ροή των tweets κάθε χρήστη χωριστά,αλλά µπορούν να παρακολουθούν µια ενιαία λίστα. Όλοι οι χρήστες µπορούν να στέλνουν και να λαµβάνουν tweets µέσω της ιστοσελίδας του twitter αλλά όχι µόνο. Η εταιρία έχει αναπτύξει µια πλατφόρµα µε πολλά web services τα οποία επιτρέπουν εξωτερικές εφαρµογές (πχ εφαρµογές σε smartphone) αλλά και γραπτά µηνύµατα (σε ορισµένες χώρες) να χρησιµοποιούν τις δυνατότητες της ιστοσελίδας. Παρ' όλο το ότι το twitter προσφέρει τις υπηρεσίες του δίχως καµία οικονοµική επιβάρυνση, η ανανέωση ή η λήψη µηνυµάτων µέσω της υπηρεσίας sms επιβάλλει κάποια χρέωση (ανάλογα µε τον πάροχο τηλεφωνίας) στον χρήστη. Η εταιρία που ανέπτυξε το κοινωνικό δίκτυο αυτό βασίζεται στο San 83

84 Bruno της California. Επίσης η Twitter Inc. έχει γραφεία και διακοµιστές στο San Antonio του Τέξας και στη Βοστώνη. Δηµιουργός της υπηρεσίας είναι ο Jack Dorsey ο οποίος κατασκεύασε το twitter.com το Αµέσως ο ιστότοπος αυτός απέκτησε τεράστια φήµη σε όλο το κόσµο και αυτή τη στιγµή είναι εγγεγραµµένοι στην υπηρεσία πάνω από εκατό εκατοµµύρια χρήστες παγκόσµια. Το twitter περιγράφεται σήµερα ως το sms του διαδικτύου. 2.3 Myspace To myspace είναι ένα online κοινωνικό δίκτυο. Προορίζεται για µουσικόφιλους και µουσικούς χωρίς αυτό να σηµαίνει ότι οποιοσδήποτε άλλος χρήστης δεν µπορεί να συµµετέχει µιας και είναι µια ελεύθερη (χωρίς χρέωση) κοινότητα. Τα κεντρικά γραφεία του myspace βρίσκονται στο Beverly Hills στην California όπου διαµοιράζεται το κτήριο µε την συνιδιοκτήτρια εταιρία News Corp Digital Media. Το MySpace έγινε το πιο δηµοφιλές κοινωνικό δίκτυο στις Ηνωµένες Πολιτείες της Αµερικής τον Ιούνιο Τον Απρίλιο του 1998, πέρασε στη δεύτερη σειρά καθώς το facebook κατέκτησε την πρώτη θέση όσον αφορά την επισκεψιµότητα των κοινωνικών δικτύων, παγκόσµια. Το MySpace απασχολεί γύρω στους εργαζόµενους, µετά την απόλυση του 30% του προσωπικού τον Ιούνιο του Η συγκεκριµένη κοινότητα αποτελείται από χρήστες και αποτελεί την πρώτη πηγή πληροφόρησης για καλλιτεχνικές δραστηριότητες. Παράλληλα το MySpace χρησιµοποιείται πολύ συχνά σαν µέσο προώθησης συναυλιών, τραγουδιών κτλπ. Τις 5 Φεβρουαρίου του 2008 το MySpace λάνσαρε µια προγραµµατιστική πλατφόρµα µέσω της οποίας επιτράπηκε η δηµιουργία ενσωµατωµένων, στην υπηρεσία, εφαρµογών. Η δηµοσιεύση για το άνοιγµα της πλατφόρµας έγινε 84

85 δύο εβδοµάδες πριν στα γραφεία του San Francisco. Η MDP (Myspace Developer Platform) βασίζεται στο Open Social API που παρουσιάστηκε από τη Google το Νοέµβριο του Το Open Social API δηµιουργήθηκε για να υποστηρίξει τα ενσωµατωµένες κοινωνικά σ' αυτά, δίκτυα και στο αποτελούσε να µια αναπτύξουν ανταπάντηση εφαρµογές στο FDP (Facebook's Developer Platform) του Facebook. Η πρώτη δοκιµαστική έκδοση της προγραµµατιστικής πλατφόρµας του MySpace έγινε τις 5 Μαρτίου του 2008 µε περίπου εφαρµογές προς την διάθεση όλων των χρηστών της υπηρεσίας. 2.4 FlickR Το FlickR είναι ένα κοινωνικό δίκτυο που συγκεντρώνει ανθρώπους που δείχνουν ενδιαφέρον για τη φωτογραφία. Συγεκριµένα έχει λειτουργίες που περιλαµβάνουν την αποθήκευση φωτογραφιών και video και µια online κοινότητα που δηµιουργήθηκε από την εταιρία Ludicorp. Στη συνέχεια η υπηρεσία αυτή αγοράστηκε από τη Yahoo!. Προκειµένου να γίνει γνωστός ο ιστότοπος σε χρήστες του Internet, εκτός από διαµοιρασµό και αποθήκευση φωτογραφιών, χρησιµοποιήθηκε σε µεγάλο βαθµό από ιδιοκτήτες ιστολογίων (blog authors) για να αποθηκεύουν τις φωτογραφίες που χρησιµοποιούσαν στα άρθρα των σελίδων τους. Το Σεπτέµβριο του 2010 δηµοσιεύθηκε από την εταιρία ότι στους servers της διατηρούνται πάνω από πέντε εκατοµµύρια φωτογραφίες. Το FlickR διατηρεί µια ανοιχτή πλατφόρµα για ανάπτυξη εφαρµογών οι οποίες χρησιµοποιούν δεδοµένα από τον συγκεκριµένο ιστότοπο. Αυτό 85

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

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

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET Δημήτριος Παπαδημητρίου Παπαδημητρίου Δημήτριος - MIS - Παν.Μακεδονίας 1 Microsoft.NET Πλατφόρμα επικοινωνίας ανθρώπων, συστημάτων και

Διαβάστε περισσότερα

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού Κεφάλαιο 6 ο Διαχείριση στοιχείων λογισμικού Διδακτικοί στόχοι Να περιγραφούν οι κύριοι τύποι λογισμικού Να εξεταστεί το λογισμικό συστήματος και τα λειτουργικά συστήματα Να αναλυθούν οι πιο σημαντικές

Διαβάστε περισσότερα

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

Διαβάστε περισσότερα

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟ ΛΑΘΟΣ Σημειώστε αν είναι σωστή ή

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

Διαβάστε περισσότερα

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

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Πρότυπη Εφαρµογή ιαλειτουργικότητας για Φορητές Συσκευές Όνοµα: Κωνσταντίνος Χρηστίδης Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο Αντικείµενο

Διαβάστε περισσότερα

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

Διαβάστε περισσότερα

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Τάξη: Γ Μάθημα: Πληροφορική Εξεταστέα ύλη: Παρ11.1 & 11.2 Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών που περιγράφει τη διαδικασία

Διαβάστε περισσότερα

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

Διαβάστε περισσότερα

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας. Η Πυξίδα Απασχόλησης είναι ένα πλήρως παραμετροποιήσιμο portal που απευθύνεται σε Κέντρα Επαγγελματικής Κατάρτισης, Δήμους, Εκπαιδευτικούς Οργανισμούς και Εταιρίες Εύρεσης Εργασίας, με στόχο τόσο την μηχανογράφηση

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 ELab Π Τ Υ Χ Ι Α

Διαβάστε περισσότερα

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

Ενότητα 1η. Εισαγωγή στην Πληροφορική Ενότητα 1η Εισαγωγή στην Πληροφορική 1.1 Τι είναι Πληροφορική Ένας σύντομος ορισμός για το τι είναι πληροφορική είναι ο παρακάτω: όλα εκείνα που χρειάζεται κανείς για να παράγει, να οργανώνει και να διαχειρίζεται

Διαβάστε περισσότερα

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

Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Αξιολόγηση Υπηρεσιών ιαδικτύου µέσω Περιπτώσεων Μελέτης Κωστής Αϊβαλής Μηχανικός Πληροφορικής TU-Berlin 2/5/2008 ΕΑΠ-ΓΤΠ61-Κωστής Αϊβαλής 1 Εισαγωγή Η ταχύτητα επεξεργασίας των εφαρµογών διαδικτυακών υπηρεσιών

Διαβάστε περισσότερα

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ > ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ - Π.Μ.Σ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΡΙΣΜΟΣ: Το Cloud Computing είναι η ονοµασία της τεχνολογίας η οποία επιτρέπει στους χρήστες να

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

Διαβάστε περισσότερα

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής Εργαλεία και τεχνικές από την πλευρά του πελάτη Java Applet

Διαβάστε περισσότερα

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός Ενότητα 13 Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Προγραµµατισµός Κεφάλαιο 13Α: ηµιουργία Προγραµµάτων Υπολογιστή Κεφάλαιο 13Β: Γλώσσες Προγραµµατισµού και η ιαδικασία Προγραµµατισµού ρ. Παναγιώτης

Διαβάστε περισσότερα

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

Διαβάστε περισσότερα

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να:

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να: CMS Content Management System Σύστημα Διαχείρισης Περιεχομένου Ένα σύστημα διαχείρισης περιεχομένου (CMS) είναι μια συλλογή απο διαδικασίες που χρησιμοποιούνται για τη διαχείριση της ροής εργασίας σε ένα

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

Διαβάστε περισσότερα

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

Διαβάστε περισσότερα

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

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

Διαβάστε περισσότερα

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας µέσω της τεχνολογίας των ιαδοχικών Φύλλων Στυλ (cascading

Διαβάστε περισσότερα

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια. Τον ακριβή προσδιορισμό του προβλήματος. Την ανάπτυξη του αντίστοιχου αλγορίθμου.

Διαβάστε περισσότερα

Εισαγωγή στον προγραμματισμό

Εισαγωγή στον προγραμματισμό Ενότητες: Εισαγωγή στον προγραμματισμό Η έννοια του προγράμματος Ιστορική αναδρομή Φυσικές και τεχνητές γλώσσες Τεχνικές σχεδίασης προγραμμάτων Ιεραρχική Σχεδίαση Τμηματικός Προγραμματισμός Δομημένος προγραμματισμός

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

Διαβάστε περισσότερα

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

Διαβάστε περισσότερα

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

Διαβάστε περισσότερα

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία σημαντικά στάδια: 1. Τον ακριβή προσδιορισμό του προβλήματος. 2. Την ανάπτυξη

Διαβάστε περισσότερα

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

Διαβάστε περισσότερα

A J A X AJAX Γιάννης Αρβανιτάκης

A J A X AJAX Γιάννης Αρβανιτάκης A J A X AJAX Γιάννης Αρβανιτάκης 04/07/08 AJAX Στην πράξη 2 Autocomplete AJAX Στην πράξη 3 Webmail (google, yahoo) AJAX Στην πράξη 4 Flickr AJAX Στην πράξη 5 Google Docs AJAX Στην πράξη 6 Google maps http://maps.google.com/

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

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

Τεχνικός Εφαρμογών Πληροφορικής Τεχνικός Εφαρμογών Πληροφορικής ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Περιεχόμενα 1.Τι είναι η Php; 2.Πως γίνετε η γραφή

Διαβάστε περισσότερα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

Διαβάστε περισσότερα

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη

Γκέγκα Ευρώπη Κωστοπούλου Ειρήνη Γκέγκα Ευρώπη egkegka@it.teithe.gr Κωστοπούλου Ειρήνη eirkost@it.teithe.gr 2 ο σε επισκεψιμότητα των χρηστών στο web καθημερινά Κοινωνικό δίκτυο με τους περισσότερους χρήστες 1 ο σε προτίμηση των φοιτητών

Διαβάστε περισσότερα

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή): 1. Ο Παγκόσμιος Ιστός (world wide web): a. Ταυτίζεται με το Internet b. Είναι υπηρεσία διαχείρισης και πρόσβασης σε

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος

Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά. Νίκος Πασσαράς. Εισηγητής: Πρεζεράκος Γεώργιος ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ανάπτυξη Υπηρεσίας Καταλόγου LDAP με τα στοιχεία του προσωπικού του TEI Πειραιά Νίκος Πασσαράς

Διαβάστε περισσότερα

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML Δικτυακά Πολυμέσα ΙΙ Διάλεξη #2 η : Βασικές έννοιες σχεδιασμού στο web Γαβαλάς Δαμιανός dgavalas@aegean.gr Περιεχόμενα Τρέχον status της HTML Μετάβαση από την HTML στην XHTML Κλέ Καλές πρακτικές συγγραφής

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

Διαβάστε περισσότερα

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 2: Mεταφραστές Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ

Διαβάστε περισσότερα

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ Α) Να γράψετε στο τετράδιό σας τον αριθμό κάθε πρότασης και δίπλα το γράμμα "Σ", αν είναι σωστή, ή το γράμμα "Λ", αν είναι λανθασμένη. (Μονάδες 25) 1. Ένα αδόμητο πρόβλημα είναι ταυτόχρονα και ανοικτό

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 2: Σύστημα Αρχείων Τα προγράμματα που εκτελούνται

Διαβάστε περισσότερα

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

Διαβάστε περισσότερα

Όταν αποθηκεύετε μία παρουσίαση, την ονομάζετε και καθορίζετε πού θα την αποθηκεύσετε

Όταν αποθηκεύετε μία παρουσίαση, την ονομάζετε και καθορίζετε πού θα την αποθηκεύσετε Αποθήκευση μίας παρουσίασης σε μία τοποθεσία σε έναν οδηγό Όταν εργάζεστε με το, η φόρμα εργασίας καταχωρείται στη μνήμη RAM. Πρόκειται για μία προσωρινή μνήμη που χρησιμοποιείται για τις τρέχουσες δραστηριότητες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ Web Services

ΚΕΦΑΛΑΙΟ Web Services ΚΕΦΑΛΑΙΟ Web Services Προϋποθέσεις εγκατάστασης Web Services για το Κεφάλαιο 4.50 1. Κεφάλαιο έκδοση 4.51e build 458 ή νεότερο 2. Internet Information Server (IIS) version 6 ή νεότερος 3. Σε κάποιον υπολογιστή

Διαβάστε περισσότερα

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο Τι είναι ένα σύστημα διαχείρισης περιεχομένου; Παρά την μεγάλη εξάπλωση του διαδικτύου και τον ολοένα αυξανόμενο αριθμό ιστοσελίδων, πολλές εταιρείες ή χρήστες δεν είναι εξοικειωμένοι με την τεχνολογία

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 1 Εισαγωγή στις Βάσεις Δεδομένων Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

Κεφάλαιο 3. Διδακτικοί Στόχοι

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

6. 1 Η έννοια του προγράμματος

6. 1 Η έννοια του προγράμματος 6. 1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, τρία στάδια. 1.Τον ακριβή προσδιορισμό του προβλήματος. 2.Την ανάπτυξη του αντίστοιχου αλγορίθμου. 3.Τη διατύπωση

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

Διαβάστε περισσότερα

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Στέλλα Λάμπουρα Εαρινό εξάμηνο Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

Διαβάστε περισσότερα

Κεφάλαιο 2: Μεταφραστές

Κεφάλαιο 2: Μεταφραστές Κεφάλαιο 2: Μεταφραστές Αρχές Γλωσσών και Προγραμματισμού Λειτουργία Μετάφρασης ΑΡΧΙΚΗ ΓΛΩΣΣΑ (Source) L A ΓΛΩΣΣΑ ΥΛΟΠΟΙΗΣΗΣ ΜΕΤΑΦΡΑΣΤΗ (Implementation) L Y ΤΕΛΙΚΗ ΓΛΩΣΣΑ (Target) L T Αρχικό Πρόγραμμα

Διαβάστε περισσότερα

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα