INTEROPERABILITY II Electronic Transactions by Koussouris S., Lampathaki F., Askounis D.
The Greek egif www.e-gif.gov.gr (Greek Slides) Νόμος (Ν.3979/2011 ΦΕΚ Α 138/16.06.2011)
H Δομή του Πλαισίου
Πλαίσιο Πιστοποίησης Δημόσιων Διαδικτυακών Τόπων Γενικές Αρχές Δομή και Οργάνωση ΔΔΤ Ηλεκτρονικές Υπηρεσίες και Διαλειτουργικότητα ΔΔΤ Ασφάλεια, Διαθεσιμότητα και Απόδοση ΔΔΤ Κατηγορίες Χρηστών Ονοματοδοσία Παροχή Ηλ. Υπηρεσιών Προδιαγραφές Ασφάλειας Εικαστικά Υπηρεσίες Προστιθέμενης Αξίας Διαθεσιμότητα Νομικά Ζητήματα Περιεχόμενο Διαλειτουργικότητα με Back Office Απόδοση Διάδοση ΔΔΤ Προσβασιμότητα Διαλειτουργικότητα με άλλα Συστήματα Φιλοξενία
Πλαίσιο Διαλειτουργικότητας & Υπηρεσιών Ηλεκτρονικών Συναλλαγών Γενικές Αρχές Οργανωσιακή Διαλ/τητα Σημασιολογική Διαλ/τητα Τεχνολογικά Πρότυπα Ειδικές Προδιαγραφές & Προεκτάσεις Κατηγορίες & Κύκλος Ζωής Προτύπων Πεδίο εφαρμογής Στοιχεία Σημασιολογικής Διαλειτουργικότητας Μοντελοποίηση Υπηρεσιών - Δεδομένων Ηλεκτρονικές Πληρωμές Πρότυπες Αρχιτεκτονικές Συστημάτων ΗΔ Χαρακτηριστικά Υπηρεσιών Βέλτιστες Πρακτικές και Διαδικασίες Παρουσίαση Πληροφορίας Διασύνδεση & Επικοινωνία (WS Stack Standards) Τομεακά Πρότυπα Διακυβερνητικές Υπηρεσίες Οδηγίες για Δημόσιους Φορείς (Διαγωνισμοί) Βέλτιστες Πρακτικές Ανάπτυξης Συστημάτων ΗΔ Βέλτιστες Πρακτικές και Διαδικασίες Μεταδομένα (Μ.Τεκμηρίωσης) Μέσα Πρόσβασης Οδηγίες για Επιχειρήσεις & Πολίτες
Πλαίσιο Ψηφιακής Αυθεντικοποίησης Γενικές Αρχές Ταυτοποίηση Οντοτήτων Αυθεντικοποίηση Οντοτήτων Διαδικασίες Εγγραφής Οντοτήτων Οδηγίες Εφαρμογής και Συμμόρφωση Θεσμικό και Κανονιστικό Πλαίσιο Υπηρεσίες Επιπέδου 0 Μηχανισμοί Αυθεντικοποίησης - Κλειδιά Κατηγορίες Οντοτήτων Επίπεδα Υπηηρεσιών Οδηγίες προς Δημόσιους Φορείς Υπηρεσίες Επιπέδου 1 Τρόποι Εγγραφής Φυσικών Προσώπων Οδηγίες προς Φυσικά & Νομικά Πρόσωπα Ιδιωτικότητα στις Υπηρεσίες ΗΔ Υπηρεσίες Επιπέδου 2 Διακριτικά Αυθεντικοποίησης Τρόποι Εγγραφής Νομικών Προσώπων Συμμόρφωση Φορέων, Υπηρεσιών και ΚΔΠ Επίπεδα Εμπιστοσύνης Υπηρεσιών ΗΔ (0-3) Υπηρεσίες Επιπέδου 3 Διαδικασίες Αυθεντικοποίησης ανά Επίπεδο Διαδικαστικά Ζητήματα, Διαγραφή Παραδείγματα Εφαρμογής ΠΨΑ
Μοντέλο Τεκμηρίωσης Τεκμηρίωση Διαδικασιών Τεκμηρίωση Εγγράφων και Δεδομένων Τεκμηρίωση Διαδικτυακών Υπηρεσιών Πρότυπα Μεταδεδομένων Πρότυπο BPMN & Σημειογραφία Πρότυπα XML & Σημειογραφία Πρότυπα Τεκμηρίωσης Web Services Κεντρικό Σχήμα Μεταδεδομένων (egms) Συμβάσεις Ονοματολογίας Συμβάσεις Ονοματολογίας Μεταδεδομένα Υπηρεσιών Μεταδεδομένα Εγγράφων Μεθοδολογία Ανάπτυξης WS Συμβάσεις Ονοματολογίας
Ληξιαρχείο Διαλειτουργικότητας Web Site ΠΗΔ (public) Ληξιαρχείο Υπηρεσιών & Δεδομένων (restricted) Εργαλεία Μοντελοποίησης Υπηρεσιών (restricted) Εργαλεία Μοντελοποίησης Δεδομένων (restricted) Τρέχουσες Εκδόσεις Πλαισίου (PDF) Υπηρεσίες (Συμβατικές και Ηλεκτρονικές) Σύστημα Enterprise Modelling Σύστημα XML Authoring Επιπλέον Υλικό Πλαισίου (XML, Πρότυπα) Έγγραφα Σύστημα Διαχείρισης CCTS Επιπλέον Υλικό Τεκμηρίωσης - Διάδοσης Πεδία Εγγράφων Φόρμες Σχολίων Κωδικολόγια Σύστημα Διαχείρισης Εκδόσεων αρχείων BPMN Σύστημα Διαχείρισης Εκδόσεων Αρχείων XML
Semantics and Data Interoperability
Need for Semantic Interoperability - I Organization X Organization Y ASCII, XML, Word, PDF,... Need for common syntax!
Need for shared, common understanding Desicion Support Systems Laboratory, NTUA Need for Semantic Interoperability - II Address Χ Street, Number, Postal Code 1 ( ) 1 ($) Χ Δημόσιος Φορέας Α Διεύθυνση Α Last Name Χ Family Name 01 - Greece Χ GR - Greece Δημόσιος Φορέας Β Τμήμα Α
How Semantics are attached to any concept Data 111111111 15-10-2009 Metadata VAT Number Issue Date Context Periodic VAT Declaration
Semantic Representation Elements & Standards ISO, UN, ΕΛΟΤ,... XML, OWL, TXT,... XML, EDI,... Codelists Thesauri Data Types CCTS,... XML Schema, DTD, UML... Dublin Core, egms,... Data Structures Data Schemas Metadata OWL, RDF,... Ontologies
XML Standards Family XML Schema XML Namespace XSL και XSLT XML Signature XML Encryption XML Query XForms XPath Xlink XPointer CSS RDF (Resource Description Framework) MathML GML (Geography Markup Language).
XML Schema Example <?xml version="1.0" encoding="utf-8"?> <book xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xsi:nonamespaceschemalocation="c:\users\teti\deskto p\book.xsd"> </book> Books.xml <title>c# How to program</title> <serial_no>123456789</serial_no> <?xml version="1.0" Books.xsd encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" elementformdefault="qualified" attributeformdefault="unqualified"> <xs:element name="book"> <xs:annotation> <xs:documentation>this is the first example in XSD</xs:documentation> </xs:annotation> <xs:complextype> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="serial_no" type="xs:integer"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema>
Data and Information Modelling (Today) Syntactic Data Representation e.g. Address fields Semantic Data Representation e.g the same information can have synonyms and different meaning Semantic Data Mapping with Lists e.g. Codelists vs. Descriptions (ISO lists, NACE codes, etc )
Data and Information Modelling (Tomorrow) Standard Documents based on XML XML Schemas for Structuring Common, Reusable Data Units with common semantics Semantic Mapping with commonly agreed lists
What it means for any organization Standardization Intermediation
Data Modelling Approach for Greek egov Transactions Build on existing standards! Interoperability Registry Retrieval of Standard Schemas Retrieval of Standard Schemas Organization A Data Exchange Organization B
Data Modelling Principles (Greek egif) Συμμόρφωση με τα πρότυπα W3C XML Schema Definition Language και ISO 15000-5 CCTS (Core Components Technical Specification) Συνέπεια των Σχημάτων με τις πληροφορίες και τα δεδομένα που πραγματικά ανταλλάσσονται Πληρότητα, χωρίς να παραλείπεται κανένας τύπος δεδομένων που χρησιμοποιείται σε έγγραφα Μοναδικότητα έκφρασης της πληροφορίας Διατηρησιμότητα και ευκολία διαχείρισης των Σχημάτων Διασύνδεση με τα Μοντέλα Διαδικασιών Ανεξαρτησία από εργαλεία Σχέση με υπάρχοντα Σχήματα
ISO 15000-5: UN/CEFACT CCTS Core Components Technical Specification Method to develop and reuse common semantic models Standard proposed by UN/CEFACT (United Nations Centre for Trade Facilitation and Electronic Business) and ISO (15000-5) Purpose: To ensure common understanding / semantic in data structures irrespectively of the syntax they comply with To define naming and design rules To create a common library of core components
creating Standardised Data Hierarchies Reusable Components (UN/CCTS) Person Address ID number Identifier
How to create Business Documents BIE (Business Information Entity) a piece of business data or a group of pieces of business data with a unique Business Semantic definition. BBIE (Basic Business Information Entity) that represents a singular business characteristic of a specific Object Class in a specific Business Context. A BBIE has a unique Business Semantic definition. ASBIE(Associated Business Information Entity) represents a complex business characteristic of a specific Object Class in a specific Business Context. An ASBIE has a unique Business Semantic definition. ABIE (Aggregated Business Information Entity) represents a collection of related pieces of business information that together convey a distinct business meaning in a specific Business Context. Definitions from UN/CEFACT Core Components Technical Specification 2.01 and Wikipedia
Context Categories in Electronic Transactions Person (Core Component) Geographic Context Person (Greece) (Business Information Entity) Organization Context Person (Greece; Municipality) (Business Information Entity) Service Context Person (Greece; Municipality; Birth Certificate) (Business Information Entity)
Core Components Template Πρότυπο Φύλλο Καταγραφής Δομικών Συστατικών (Πλαίσιο Ηλεκτρονικής Διακυβέρνησης, www.e-gif.gov.gr)
Example of a Core Component in spreadsheet
Core Component Example in XSD <xs:element name="person" type="cc:personstructure"> <xs:annotation> <xs:documentation xml:lang="en"> <ccts:uniqueid>el00000001</ccts:uniqueid> <ccts:acronym>acc</ccts:acronym> <ccts:dictionaryentryname>person. Details</ccts:DictionaryEntryName> <ccts:version>1.0</ccts:version> <ccts:definition>an individual human being.</ccts:definition> <ccts:objectclassterm>person</ccts:objectclassterm> </xs:documentation> </xs:annotation> </xs:element> <xs:complextype name="personstructure"> <xs:sequence> <xs:element ref="bcc:id" minoccurs="0" maxoccurs="unbounded"> <xs:annotation> <xs:documentation xml:lang="en"> <ccts:uniqueid>el00000002</ccts:uniqueid> <ccts:acronym>bcc</ccts:acronym> <ccts:dictionaryentryname>person.identification.identifier</ccts:dictionaryentryname> <ccts:version>1.0</ccts:version> <ccts:definition>a unique identifier for this person.</ccts:definition> <ccts:objectclassterm>person</ccts:objectclassterm> <ccts:propertyterm>identification</ccts:propertyterm> <ccts:representationterm>identifier</ccts:representationterm> <ccts:cardinality>0..unbounded</ccts:cardinality> </xs:documentation> </xs:annotation> </xs:element>... </xs:sequence> </xs:complextype>
JSON JSON (JavaScript Object Notation) is a lightweight datainterchange format JSON is language independent, "self-describing" and easy to understand JSON is built on two structures: A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array. An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
Technical Interoperability Web Services
Service-oriented Architecture Υποστηρίζει το σχεδιασμό των εφαρμογών με επίκεντρο τις υπηρεσίες Τι είναι οι υπηρεσίες? Αναπαραστάσεις πραγματικών προγραμμάτων, βάσεων δεδομένων ή διαδικασιών, που: καθορίζονται σε σχέση με το τι κάνουν, προσδιορίζονται στα πλαίσια μηνυμάτων που ανταλλάσσονται είναι προσπελάσιμες μέσω δικτύου
Example of Service-oriented Architecture To compact-disc (CD) και το μηχάνημα αναπαραγωγής CD (CD player), το οποίο παρέχει την υπηρεσία της αναπαραγωγής του ήχου του CD Η SOA μας παρέχει τη δυνατότητα να αντικαταστήσουμε ένα μηχάνημα αναπαραγωγής CD με ένα άλλο, διαφορετικού κατασκευαστή και διαφορετικών προδιαγραφών, όπως ένα φορητό μηχάνημα αναπαραγωγής CD, και η υπηρεσία που προσφέρεται σε κάθε περίπτωση να παραμένει η ίδια: η αναπαραγωγή του CD πραγματοποιείται, το μόνο που αλλάζει είναι η ποιότητά της. Όμως εάν υποθέσουμε ότι το συγκεκριμένο σύστημα ακολουθεί κάποια άλλη αρχιτεκτονική, για παράδειγμα την αντικειμενοστραφή, κάθε CD θα είχε δικό του μηχάνημα αναπαραγωγής, από το οποίο δεν θα μπορούσε να αποσπαστεί.
Web Service «Διαδικτυακή Υπηρεσία ονομάζεται μια εφαρμογή λογισμικού, που αναγνωρίζεται από ένα μοναδικό ενιαίο προσδιοριστικό πόρου URI (Uniform Resource Identifier). Το περιβάλλον διεπαφής (interfaces) και τα σημεία πρόσδεσης (bindings) πρέπει να είναι καλά ορισμένα, να περιγραφούν και να ανακαλυφθούν ως δεδομένα XML (artifacts). Μια διαδικτυακή υπηρεσία υποστηρίζει απ ευθείας δοσοληψίες με άλλους πράκτορες με ανταλλαγή μηνυμάτων βασισμένων σε XML μέσω πρωτοκόλλων του διαδικτύου.» World Wide Web Consortium
Web Service «διαθέσιμα δωμάτια» Desicion Support Systems Laboratory, NTUA Πρακτικά πώς αντιλαμβανόμαστε μια Διαδικτυακή Υπηρεσία? Αποτελεί διαδικτυακή υπηρεσία κάθε υπηρεσία που παρέχεται μέσω διαδικτύου, όπως για παράδειγμα η on-line υπηρεσία κράτησης δωματίων που παρέχεται από μια ξενοδοχειακή επιχείρηση μέσω του εξυπηρετητή της εταιρείας στην επίσημη ιστοσελίδα της? ΟΧΙ ΑΠΑΡΑΙΤΗΤΑ... Ταξιδιωτικό Γραφείο Internet Ξενοδοχείο Web Site Η ύπαρξη μιας διαδικτυακής υπηρεσίας κράτησης δωματίων θα έδινε το δικαίωμα σε όλα τα ενημερωτικά τουριστικά sites, αλλά και συνεργαζόμενες επιχειρήσεις να κλείνουν αυτόματα δωμάτιά της. Ταξιδιωτικό Γραφείο Ξενοδοχείο 7/6/2004 172, Internet 286
Βασικά Χαρακτηριστικά Διαδικτυακών Υπηρεσιών Ανεξαρτησία από την πλατφόρμα υλοποίησης, χωρίς να απαιτείται καμία αλλαγή στον μηχανισμό του συστήματος Χρησιμοποίηση ανοικτών προτύπων και ευρέως διαδεδομένων πρωτοκόλλων, όπως XML (extensible Markup Language) και HTTP (HyperText Transfer Protocol) Γρήγορη ανάπτυξη και μειωμένο κόστος ολοκλήρωσης Συσσώρευση τελικών (back-end) υπηρεσιών Δημοσίευση των πληροφοριών που τις αφορούν, οπότε η εύρεση και η χρήση τους γίνονται ταχύτατα Επαναχρησιμοποίηση
Αρχιτεκτονική Διαδικτυακών Υπηρεσιών
Πλεονεκτήματα Web Services Ευκολότερος χειρισμός δεδομένων Απλότητα πρωτοκόλλου επικοινωνίας Απλότητα υποδομής Ευκολία στην επικοινωνία Διαλειτουργικότητα και ευκολία ανάπτυξης νέων εφαρμογών Αλληλεπίδραση μεταξύ υπηρεσιών σε οποιαδήποτε πλατφόρμα και οποιαδήποτε γλώσσα προγραμματισμού Χαλαρή συνδεσιμότητα μεταξύ εφαρμογών Προσαρμογή ήδη υπαρχουσών εφαρμογών στις μεταβαλλόμενες επιχειρησιακές συνθήκες και ανάγκες των πελατών Μικρό κόστος δημιουργίας και χρήσης
Web Services Standards stack Επιπλέον Πρότυπα
Διεπαφές Διαλειτουργικότητας
Τι θα πρέπει να αποφευχθεί; Top-down approach: οι Διαδικτυακές Υπηρεσίες να καλύπτουν τις ανάγκες των αποδεκτών της υπηρεσίας, αλλά να μην υποστηρίζονται επαρκώς από τα Πληροφοριακά Συστήματα του οργανισμού ή απαιτούν τη δημιουργία νέων Πληροφοριακών Συστημάτων από την αρχή. Bottom-up approach: οι Διαδικτυακές Υπηρεσίες απλώς να εξωτερικεύουν όψεις των back-office εφαρμογών του οργανισμού, χωρίς να τοποθετούνται στο συγκεκριμένο πλαίσιο μιας υπηρεσίας Αντίθετα... θα πρέπει να συμβιβάζονται οι επιχειρηματικές ανάγκες και οι παρεχόμενες υπηρεσίες με τις δυνατότητες των Πληροφοριακών Συστημάτων (meet-in-the-middle approach)
Τι χρειάζεται για την τεκμηρίωση μιας Διαδικτυακής Υπηρεσίας? KY.153 Ως καλά ορισμένη Διαδικτυακή Υπηρεσία θεωρείται η Διαδικτυακή Υπηρεσία που τεκμηριώνεται με: Το πλήρες WSDL αρχείο της, με την περιγραφή διεπαφής και υλοποίησης, και τη διεύθυνση που λειτουργεί το web service στο Διαδίκτυο Mεταδεδομένα που σχετίζονται με τον ιδιοκτήτη της Μοντέλο και Μεταδεδομένα της υπηρεσίας στην οποία εντάσσεται XML Σχήματα για τα ανταλλασσόμενα έγγραφα Το UML Ακολουθιακό Διάγραμμα (Sequence Diagram) που αποτυπώνει αναλυτικά τη ροή της
Technical Interoperability APIs
A Surging App Economy Source: Gigaom Research. Sizing the EU app economy 2014 Source: VisionMobile European App Economy 2014
Why provide an API? Source: http://www.slideshare.net/mulesoft/welcome-to-the-api-economy-developing-your-api-strategy
Developers Concerns Data Fragmentation APIs Market Proliferation Source: Musser, J. (2012) Open APIs: What's Hot, What's Not?. http://www.slideshare.net/jmusser/j-musser-apishotnotgluecon2012 >70% Increase in customer/partner reach 50% Increase in number of apps built from API Source: Hurwitz & Associates 2011 API Constant Evolution
What is an API? An Application Programming Interface (API) is a particular set of rules and specifications that a software program can follow to access and make use of the services and resources provided by another particular software program that implements that API. It serves as an interface between different software programs and facilitates their interaction, similar to the way the user interface facilitates interaction between humans and computers. (Wikipedia) Or simpler an API is: an abstraction that is defined by the description of an interface and the behaviour of the interface.
REST Architectural Style Uniform Interface, constraint defines the interface between clients and servers. It simplifies and decouples the architecture, which enables each part to evolve independently. Resource-Based. Manipulation of Resources Through Representations Self-descriptive Messages Hypermedia as the Engine of Application State (HATEOAS) Stateless: the necessary state to handle the request is contained within the request itself, whether as part of the URI, query-string parameters, body, or headers. The URI uniquely identifies the resource and the body contains the state (or state change) of that resource. Cacheable: Responses must therefore, implicitly or explicitly, define themselves as cacheable, or not, to prevent clients reusing stale or inappropriate data in response to further requests. Well-managed caching partially or completely eliminates some client server interactions, further improving scalability and performance. Client-Server Layered System: A client cannot ordinarily tell whether it is connected directly to the end server, or to an intermediary along the way. Intermediary servers may improve system scalability by enabling load-balancing and by providing shared caches. Layers may also enforce security policies. Code on Demand (optional) Source: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
What is good API design? Easy to learn Easy to use, even without documentation Hard to misuse Easy to read and maintain code that uses it Sufficiently powerful to satisfy requirements Easy to extend Appropriate to audience Joshua Bloch, Principal Software Engineer, Google.
API Business Models Source: John Musser (2013) API Business Models. http://www.slideshare.net/jmusser/j-musser-apibizmodels2013?qid=5bff3d74-949a-4c2a-b26ac880b11fb143&v=qf1&b=&from_search=1
API Categories Source: Forrester, Establish your API Design, 2013.
Web APIs Standards REST JSON OAuth
Example Web APIs Source: OPENi Project (2013)
RESTful APIs vs XML Web Services - 1
RESTful APIs vs XML Web Services -2 Source: PwC (2012) The business value of APIs. Technology Forecast 2012. Issue 2.
APIs Stories ebay In 2000, ebay started providing a paid developer program In 2005, ebay provided it for free Mainly used for customer reach and marketing 25% of ebay listings come from their API!
Public APIs are just the top of the iceberg! Electronic Transactions 2014 Web Services & APIs Millions of services and APIs in the enterprise
QUESTIONS etransactions@epu.ntua.gr Dr. Koussouris S. - skous@mail.ntua.gr Dr. Lampathaki F. - flamp@epu.ntua.gr