Ceng 520 Assignments: Homeworks and Projects

Please submit your homeworks (with a README file describing your algorithm and containing information about which libraries you used) to yildiray@srdc.metu.edu.tr.

  • HW #1: The aim of this homework is to make you familiar with XML and Java Technologies. Provide a Java program that takes an XML document and an element value as the arguments. Parse the XML document and search the parse tree for the given element value and print the path to the given value.
    Example:
    Given the following XML document,
    <a>
    <b>
    <c>value1</c>
    <d>value2</d>
    </b>
    </a>
    $> java MyXMLParser xmldoc.xml value1
    The path is: a -> b -> c

    $> java MyXMLParser xmldoc.xml value2
    The path is: a -> b -> d

    Date given: February 21, 2008
    Date Due: March 6, 2008

  • HW #2:

    Develop a toy ontology in Web Ontology Language (OWL). You can use ontology editors such as Protege or Swoop. Make sure that it is in OWL-DL format and for this purpose you can use the validator available here. After that, input this ontology to a reasoner (e.g. Racer, Fact or Pellet) and obtain the new inferred ontology. As a result of this homework, you should submit the followings:

    • The initial ontology: Please develop a new ontology. Of course you can inspire from the exsiting ontologies available from the Internet.
    • The inferred ontology.
    • A document describing the difference between the inferred ontology and the initial ontology.


    Date given: February 21, 2008
    Date Due: March 20, 2008

  • HW #3:

    The aim of this homework is to make you familiar with the Web Service Development. You will implement a document-literal Web Service, which will accept a UBL2.0 Order document, connects to the product database and based on the availability of the product returns a UBL2.0 OrderResponseSimple document. As the database MySQL should be used and the implementation of the product database is completely up to you. Furthermore, on the client side, the obtained OrderResponseSimple document should be converted to HTML by using XSLT.


    Date given: February 21, 2008
    Date Due: March 27, 2008

  • HW #4: Universal Description, Discovery and Integration (UDDI) creates a global, platform-independent, open framework to enable businesses to:
    1) discover each other,
    2) define how they interact over the Internet,
    3) share information in a global registry.
    Write a Java program that will publish and discover a Web service to the UDDI registry. The program take a business name and it's web service name as input, queres the registry and returns the URL of the WSDL (Web Service Description Language) description of the service.
    Useful links are as follows:
    - http://www.uddi.org
    - http://www.w3c.org/TR/wsdl
    Date given: February 21, 2008
    Date Due: May 15, 2008


  • HW #5: Download and install freebXML OMAR registry. After that, write a client program to publish and discover a Web service to the registry. The client should be implemented by using JAXR and the criteria to discover the Web service is up to you.
    Date given: February 21, 2008
    Date Due: May 29, 2008


  • HW #6:

    Write an example Mashup application using AJAX and REST. Useful APIs are available at http://www.programmableweb.com/.

    Date given: February 21, 2008
    Date Due: June 5, 2008


    PROJECT TOPICS:

      The following topics will be assigned to the students.

    • Topic 1: An multi-agent auction platform with web services

      Requirements
      Agent Part: JADE Agent Platform; Usage of directory facilitiator and Publish Subscribe mechanism; Usage of JADE ontologies in Agent2Agent Messaging; Ability to connect to remote agent platforms; One broker agent to manage the auctions, implement publish subscribe mechanism; the others; At least One User Agent providing user an interface to the user to place and respond to bids; the other agents may act according to some policy / or random just to simulate a real auction. ; Bids are either generated through user agents; Auction procedure resembles the procedure in real life. ; Each item to be sold has an 'item id' and 'base price' and 'category'; an agent has to report its areas of interests (namely a list of category ids) as it joins the platform. The agents will be notified of only the auctions of the items that are in their area of interest. Web Services & XML Part:
      Axis Web Services; The user has to be able to query the item through a web service with the given item id . The web service operation will return an XML document conforming some XML schema. The user interface is expected to display the product data with some formatting(XSLT transformations); The storage of item information is left to the implementor
    • Topic 2: Smart Product System based on Radio-frequency Identification (RFID) and EPCglobal Network Standards

      Basically, the system will gather product data (EPC Code, time, place, etc.) from simulated RFID readers and expose them via Web Services. The data format of Web Services will be compliant to EPCglobal standards. A scenario for the system will be developed and demonstrated. Various open source implementations of the EPCglobal standards, such as ACCADA - EPC Network Prototyping Platform, Logic Alloy ALE Server, MIT EPC Net (MENTOR) can be used.
    • Topic 3: Federated Identity Management

      Think about a scenario regarding the Liberty ID-WSF Web Service Framework or Liberty ID-SIS specifications. Sample scenarios (Multiple Website Scenario, Cross-Principle Browser Based Resource Sharing, etc) are provided in the "Liberty ID-WSF Web Service Framework Overview" document. Prepare a presentation and a live demonstration describing and implementing your scenario. Your implementation should be web based and should include more than one actor which federates identity of users. Your scenario and implementation should comply with one or more Liberty ID-WSF or Liberty ID-SIS specifications.
    • Topic 4: Mash-up Application Discovery

      Currently, the mash-up applications are discovered through browser-based searching (e.g. http://www.programmableweb.com/mashups). Develop a framework for programmatic mash-up discovery. For this purpose, develop a mash-up applications ontology and populate this ontology to a registry (possibly, a Web service registry). After that register, a number of mash-up applications to the registry by using this ontology. Please note that in this registration, you need an interface description language for the mash-up applications. To prove the feasibility of the framework, develop a tourism mash-up application by discovering necessary mash-up applications from the registry and combining them automatically or semi-automatically.
    • Topic 5: HL7 v3 WS Profile based messaging between Care2X Systems

      HL7 v3 provides standard messages between healthcare information systems. Furthermore, there is an open-source hospital information system, called Care2X. In this project, you are expected to implement a healthcare scenario among a couple of healthcare institutes using Care2X. The messages exchanged should conform to HL7 v3 and the protocol for the exchange should be Web Services based on HL7 v3 Web Serivces Profile. All the requirements of this profile (basic, addressing, security and reliability) should be taken into account.
    • Topic 6: Business Processes, Mapping From Definition To Execution
      Related Technologies: ebBP BPSS (ebXML Business Process Specification Schema), WS-CDL (Web Services Choreography Description Language), BPEL (Business Process Execution Language)

      The main purpose of the project is to identify the mapping mechanism from an abstract definition of a business process to an executable one. "ebBP BPSS" definition of a given business process will be mapped to the executable definition of the same process in "BPEL". Throughout the mapping process, user can supply necessary information as input to fill the gap between the two languages. The final BPEL code will be executed in any orchestration engine to meet the business process requirements. The web services in the orchestration must not necessarily do the exact job. It will be sufficient to implement the web services that do nothing but able to be invoked.
    • Topic 7: Collaborative P2P Systems

      Develop a collaborative peer-to-peer system using JXTA for the communication and monitoring of critical information about communicating peers (such as location of soldiers and availability of their resources). Investigate and develop necessary mechanisms to provide consistency in this multi-user environment in order to gather most recent information in a feasible duration. Also provide a central station (as a peer) which monitors location of the peers on Google Maps and displays available resources upon request.
    • Topic 8: Implementation of IHE Integration Profiles

      In this project, you are expected to take one of IHE's Integration Profiles as basis (e.g. Patient Identifier Cross Referencing - PIX, Audit Trail and Node Authentication - ATNA, Cross-Enterprise Document Sharing - XDS, etc.), study its transactions and come-up with a real-life scenario in which the profile may be of use. Demonstrate your work by implementing a reasonable *subset* of the addressed transactions. You are strongly encouraged to utilize open-source implementations (e.g. hapi - http://hl7api.sourceforge.net/) and even tools to which your application may serve as a plug-in (e.g. CARE2X - http://www.care2x.org/).
    • Topic 9: ebXML Scenario Implementation

      ebXML is initiated with the aim of creating a single global electronic market and provides e-business framework. One of their use-case scenarios illustrates how to initiate a business collaboration with a business partner. It includes (1) singing up to a ebXML registry with a company profile, (2) querying about a company profile and (3) agreeing on Business Agreement. In this term project you are expected to implement a similar scenario which follow strictly the ebXML spesifications, transactions and document structures.
    • Topic 10: Asynchronous Secure Web Services in Evaluating Credit Applications

      A web service will be developed for evaluating credit applications for banks. The banks will call your web service for evaluating an applicant's credit history and credit worthiness. Once your webservice has researched and evaluated an applicant's credit worthiness, you return a credit worthiness score to the bank, who then decides whether or not to extend credit to the applicant. Your web services should have a single operation and create a single method that takes the applicant's National Identity number as a parameter, together with an attachment of scanned identity card of the applicant and returns the applicant's credit worthiness score. The evaluation process will be composed of three steps: 1- An applicant is checked against an database of bankruptcies. For this a web service will be called which returns the information from the database. 2 -A credit history for the applicant is retrieved from an web service that provides information about an applicant's credit cards, including how many credit cards the client holds and the available credit on each card. 3- The information retrieved in the first two steps is passed to a credit evaluation service that returns a credit score indicating whether the applicant is a good or poor credit risk. All the three services above are not fixed and should be searched from a registry. The web service in step 1, will be a sychronous service while both of the services in step 2 and 3 will be asynchronous. Since your web service includes asynchronous services, it will also be asynchronous itself. Finally, all the web services in the scenario must implement WS-Security. Apache Axis2 should be used for the developing the web services.


    Project Assignment List
    GroupStudentsTopic
    Group1Student1, Student2Topic1

    Student Project Assignment: February 21, 2008
    Survey Report: March 17, 2008
    Presentation of the Project Topics and Envisaged Implementation: March 27, 2008
    Progress Report: April 17, 2008
    Demonstrations and Final Report: May 8, 15, 22, 29 2008


    Last updated on January 02, 2008, by Yildiray Kabak.