Document Sample
Assignments Powered By Docstoc
					T-110.5140 Network
Application Frameworks
and XML

   Introduction
   Laboratory environment
   Assignments
      requirements, background,
   Grading and deadlines
   Contact information and office
   Assignment groups

   Two assignments need to be
    completed during this course
   Each assignment is done as pair work
    (you can also do them alone)
   Today we look at the assignments in
   This information will also be available
    on the course homepage
       Also more information on using the lab

   SOAP
   XML-Schema
   Linux
   OpenSwan IPSec support
   JDK
   Java ORB & IIOP, Apache Axis, Xerces
   Machines may be used in the lab (A120)
   You can also use SSH to use the
    computers remotely
       Tentative
CORBA Assignment

   Implementation of a simple web client
    and server using CORBA and IIOP
   CORBA remote operations are used to
    download a file from a server machine.
   Use of IPSEC on top of IP to secure the
   Optional bonus: Keynote 2 trust
    management system certificates

   The goals of this assignment are
      To learn about using ORB, IIOP and
     To familiarize with the IPSec
      architecture on IPv4/IPv6.
     Tostudy CORBA security using
      KeyNote2 and IPSec.

   The assignment is done using JDK and
    Java ORB and IIOP
   IPSec security using Linux and
      Installed on lab computers
   Write the web server and client. Use the idlj IDL
    compiler that comes with Java2.
   Record network interaction between the client and
    server with tcpdump (see 'man tcpdump') when you
    retrieve a file.
   Create IPSec Security Associations
   Record network interaction (protected with
    Encapsulated Security Payload, ESP) between the
    client and server with tcpdump. Compare with the other
   Optional bonus: modify the IPSec setup to use
    KeyNote2 certificates or explain in detail how this could
    be done.

   You need to return:
      Java code for the server and the client
      Compiled classes
      Dump of protected / unprotected
       communication (tcpdump)
      Optional bonus: details how to setup
       Keynote2 certificates
// IDL schema definition for Web server interface.
interface Web_Server
  typedef sequence<octet> Content_Type;
  struct Metadata_Type
    // Status of the <get> operation. These
    // values should map onto the normal HTTP
    // status values, e.g., 200 means success, 404
    // means "file not found," etc.
    short status_;

          // Modification date.
          string modification_date_;

          // Type of content.
          string content_type_;

     // Download the <contents> associated with <pathname>.
     // The <metadata> reports information about the <contents>.
     void get (in string pathname,
               out Content_Type contents,
               out Metadata_Type metadata);
IPSec Configuration

   /etc/ipsec.conf
      create a Security Association
       between the two machines
   Transport-mode or tunnel-mode (ESP,
    Encapsulated Security Payload),
    symmetric keys
   Use manual keying
   There are examples on the web page
    how to use ipsec with sudo
Background material

   CORBA and Java
   IETF IPSec Working Group Charter
   OpenSwan
   Keynote
Questions about the CORBA
   SOAP (formerly called Simple Object Access
    Protocol) is an XML-based lightweight protocol
    for exchanging information in a distributed
   SOAP consists of three parts:
     an envelope for describing what is in a
      message and how the message is
    a set of encoding rules for custom datatypes,
      and a convention for representing Remote
      Procedure Calls (RPC).
    A   binding with HTTP

   In this assignment you need to deploy
    your own simple web service that
    provides text search service for clients
    using Apache Axis.
   Axis is a Java SOAP engine that
    includes a stand-alone server, support
    for WSDL, tools for generating Java
    classes from WSDL descriptions, and
    sample programs.

    The service has a simple index consisting of
     filenames and a number of keywords for each
    The keywords are matched against the search
     word given by the user.
    The service receives three input parameters:
     the number of matching documents that are
     returned, the search word, and a parameter
     indicating whether or not the search is fuzzy
     (partial matching or exact matching).
Requirements II

        The search service returns the filenames
         that have matching keywords in the
         service datafile.
        The datafile contains filenames and each
         filename may have several keywords.
         The filenames are returned either as a
         string separated by whitespaces or as a
         vector of strings.
        You will also need to implement a SOAP
         client for the service that can be used to
         make command-line queries. The client
         prints the results to the screen.
   The goals of this assignment are defined
    as follows:
           To familiarize with SOAP and Web
           To understand concepts such as
            XML-based RPC, WSDL,
            deployment of web services.
           To make SOAP invocations,
            process responses and define
            service interfaces.
           To create a simple Java web
            service and a SOAP client

  Read   and get to know the SOAP
   specification and Apache Axis SOAP API.
  Download Apache Axis and perform the
   installation (set the classpath..).
  Design and implement the service. You
   can start from a WSDL description or by
   writing the service Java interfaces and
  Create a simple command-line SOAP
   application to access the search service.
  Deploy the service, and test your client
   Return:
     The code for the search service
     The code for the client program
     Compiled classes
     A sample output of the client
      accessing the service
     Tcpdump or tcp-monitor (Axis tool)
      output of the traffic
            if you do also the IPSec assignment,
             please compare the dumps
       WSDL and WSDD descriptions of
        your service. WSDL can be machine
Axis Installation

   Download and unzip Apache Axis
   Set up your CLASSPATH to contain all the JAR files
    in /xml-axis-10/lib and the xml-axis-10 directory. Note
    that you need to have an XML parser available. You
    can use xercesImpl.jar and xmlParserAPIs.jar from
   Start a simple Axis HTTP server on port 20000 (in a
    separate window) by typing:
       java
        org.apache.axis.transport.http.SimpleAxisServer -
        p 20000
Axis Installation II
   Move to the /xml-axis-10/samples/echo directory and deploy
    the service:
       java org.apache.axis.client.AdminClient -p 20000
   Run the client program:
      java samples.echo.TestClient -p 20000
   The sample program should produce echo test
   You can download the machine generated WSDL
    description by issuing the following URL to a
      http://localhost:20000/axis/services/echo?WSDL
Background material

   TCPMonitor is a useful tool for
    monitoring SOAP requests
       Included with Axis
       java org.apache.axis.utils.tcpmon [listenPort
        targetHost targetPort]
   SOAP
   AXIS
   Web Services Description Language
    (WSDL) 1.1
Questions about the SOAP
XML Schema Assignment

   The XML Schema specifications from
    W3C define an XML language for
    describing the syntax and structure of
    XML documents.
   Schemas can be used to define what,
    where and how XML elements can be
    used. It allows the description of complex
    data types and restrictions on existing
XML Schema Assignment II

     In this assignment you need to create an XML
      schema for a catalog or a library that allows the
      description of items in the catalog.
     The schema contains an item type for basic
      items in the catalog.
     This basic item type is extended in order to
      create custom item types. Create at least one
      custom type in your schema.
   You need to use the following XML Schema features:
         Elements    and attributes
           Extension of complex types.
           References (ref).
           Constraints (cardinality constraints).
           Namespaces and multiple schemas (import).
           Bonus points: groups, keyref, unique
   You need to create an XML instance of this schema that
    demonstrates the features of the schema.
   You also need to validate the XML instance against the
    schema using Xerces from the Apache Group.

   isbn-number (complex type with
    restrictions on format),
   book (basic type),
   dictionary (custom type with enhanced
       extends basic book-schema

   The goals of this assignment are defined
    as follows:
       To familiarize with XML Schema.
       To understand concepts such as
        elements, complex types,
        namespaces, extension.
       To create XML schemas and use
        resources from different schemas.

     Read   and get to know the Schema specification
     Download Xerces for Java and perform the
     Design and create your schema and an XML file
      that is an example of the schema and
      demonstrates the features of the schema.
     Compile a simple test Java program to validate
      the XML file against the schema.
     Run the validation program.

   Return:
     The XML Schema and the XML
      instance document
     The code for the validator
     Compiled classes
     A sample output of the validation
      program indicating that the validation
     Additional bonus: compare XML
      Schemas with DTDs or some other
      schema specification
Backround material

Questions about the XML
Schema assignment?
   Each assignment will be graded with 0, 1, 3 or 5
    points according to the following principle:
       0p: if you do not meet the minimum requirements
        of the exercise
       1p: if the requirements are met, but the
        assignment does not work properly.
       3p: if the requirements are met and the
        assignment is properly done.
       5p: if the requirements are met, the bonus part is
        done, and the assignment is very well done.
Grading II

   You must pass both assignments, that
    is, 0p in the other assignment means
    that you will fail, even if the other
    assignment was graded with 5p.
   The grade for the assignments will be
    formed in the following way:
            2 points equals grade 1
            4 points equals grade 2
            6 points equals grade 3
            8 points equals grade 4
            10 points equals grade 5

   Deadline for first assignment 23.3.
   Deadline for second assignment 15.5
   Grading within approximately 2 weeks of
    the submission
   Submissions in any order
Contact Information

     Send mail to our course address

     Or post a message to the newsgroup:
        opinnot.tik.naf
     Mail about the course
     Office hours for consultation:
        To be announced.

   Assignments are done as pair work
   Each group gets an account and
    password to the laboratory
   Send an email that contains the names
    of the group members

Shared By: