Muru: Difference between revisions
Line 324: | Line 324: | ||
==Veebiteenus== | ==Veebiteenus== | ||
==Analüüs== | ===Analüüs=== | ||
====Mis saab olema?==== | ====Mis saab olema?==== | ||
Veebiteenusena on plaanis teha RTSP Proxy. | Veebiteenusena on plaanis teha RTSP Proxy. |
Revision as of 17:10, 17 April 2017
Meeskond Muru
Liige:
- Murdho Savila
XML
XML
Pangakontod koos tehingutega.
<?xml version="1.0" encoding="utf-8"?>
<accounts type="array" order_by="created_at:DESC">
<account>
<id type="integer">476</id>
<customer-id type="integer">115</customer-id>
<refno>867625001039617</refno>
<balance type="decimal">120.0</balance>
<created-at type="dateTime">2015-01-01T15:30:00+02:00</created-at>
<transactions type="array" order_by="transaction_at:ASC" >
<transaction type="account_transaction">
<id type="integer">1994</id>
<account-id type="integer">476</account-id>
<transaction-at type="date">2015-03-06</transaction-at>
<amount type="decimal">150.0</amount>
<account-balance type="decimal">0.0</account-balance>
<debtor-id type="integer">56</debtor-id>
<creditor-id type="integer">115</creditor-id>
<description><![CDATA[Ülekanne]]></description>
<created-at type="dateTime">2015-03-05T22:54:54+02:00</created-at>
</transaction>
<transaction type="account_transaction">
<id type="integer">2013</id>
<account-id type="integer">476</account-id>
<transaction-at type="date">2015-03-07</transaction-at>
<amount type="decimal">-30.0</amount>
<account-balance type="decimal">150.0</account-balance>
<debtor-id type="integer">115</debtor-id>
<creditor-id type="integer">25</creditor-id>
<description><![CDATA[6762593001039618 06.03.15 19:01 Vapiano restoran Sola\\Tallinn \EST]]></description>
<created-at type="dateTime">2015-03-07T06:30:11+02:00</created-at>
</transaction>
</transactions>
</account>
<account>
<id type="integer">351</id>
<customer-id type="integer">78</customer-id>
<refno>867625001030245</refno>
<balance type="decimal">250.0</balance>
<created-at type="dateTime">2014-11-29T11:10:59+02:00</created-at>
<transactions type="array" order_by="transaction_at:DESC">
<transaction type="account_transaction">
<id type="integer">1930</id>
<account-id type="integer">351</account-id>
<transaction-at type="date">2015-02-28</transaction-at>
<amount type="decimal">-120.0</amount>
<account-balance type="decimal">370.0</account-balance>
<debtor-id type="integer">78</debtor-id>
<creditor-id type="integer">11</creditor-id>
<description><![CDATA[6762593001039618 26.02.15 19:31 KAUBAMAJA TALLINN \\TALLINN \EST]]></description>
<created-at type="dateTime">2015-02-28T06:31:42+02:00</created-at>
</transaction>
<transaction type="account_transaction">
<id type="integer">1799</id>
<account-id type="integer">351</account-id>
<transaction-at type="date">2015-02-25</transaction-at>
<amount type="decimal">240.0</amount>
<account-balance type="decimal">130.0</account-balance>
<debtor-id type="integer">101</debtor-id>
<creditor-id type="integer">78</creditor-id>
<description><![CDATA[Võla tasumine]]></description>
<created-at type="dateTime">2015-02-25T06:42:00+02:00</created-at>
</transaction>
</transactions>
</account>
</accounts>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="accounts">
<xs:complexType>
<xs:sequence>
<xs:element name="account" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="customer-id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element type="xs:string" name="refno"/>
<xs:element name="balance">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="created-at">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:dateTime">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="transactions">
<xs:complexType>
<xs:sequence>
<xs:element name="transaction" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="account-id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="transaction-at">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:date">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="amount">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="account-balance">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="debtor-id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="creditor-id">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element type="xs:string" name="description"/>
<xs:element name="created-at">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:dateTime">
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="type" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="type" use="optional"/>
<xs:attribute type="xs:string" name="order_by" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:string" name="type"/>
<xs:attribute type="xs:string" name="order_by"/>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
XSLT => HTML: kontode ja nendega seotud tehingute kuvamine.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/accounts">
<html>
<head>
<title>Accounts with transactions</title>
</head>
<body>
<h2>Accounts with transactions</h2>
<hr/>
<xsl:for-each select="account">
<h3>Account with transactions</h3>
<table border="1">
<tr>
<td>ID</td>
<td><xsl:value-of select="id"/></td>
</tr>
<tr>
<td>Customer ID</td>
<td><xsl:value-of select="customer-id"/></td>
</tr>
<tr>
<td>Refno</td>
<td><xsl:value-of select="refno"/></td>
</tr>
<tr>
<td>Balance</td>
<td><xsl:value-of select="balance"/> €</td>
</tr>
<tr>
<td>Created at</td>
<td><xsl:value-of select="created-at"/></td>
</tr>
</table>
<h4>Account transactions</h4>
<table border="1">
<xsl:for-each select="transactions/transaction">
<tr>
<th>ID</th>
<th>Account ID</th>
<th>Transaction at</th>
<th>Amount (€)</th>
<th>Account balance (€)</th>
<th>Debtor ID</th>
<th>Creditor ID</th>
<th>Description</th>
<th>Created at</th>
</tr>
<tr>
<td><xsl:value-of select="id"/></td>
<td><xsl:value-of select="account-id"/></td>
<td><xsl:value-of select="transaction-at"/></td>
<td><xsl:value-of select="amount"/></td>
<td><xsl:value-of select="account-balance"/></td>
<td><xsl:value-of select="debtor-id"/></td>
<td><xsl:value-of select="creditor-id"/></td>
<td><xsl:value-of select="description"/></td>
<td><xsl:value-of select="created-at"/></td>
</tr>
</xsl:for-each>
</table>
<br/>
<hr/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSLT => XML: kontode viitenumbrite ja jääkide kuvamine (kontojäägi järgi kahanevalt)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/accounts">
<accounts type="array" order_by="balance:DESC">
<xsl:for-each select="account">
<xsl:sort select="balance" order="descending"/>
<account>
<refno>
<xsl:value-of select="refno"/>
</refno>
<balance type="decimal">
<xsl:value-of select="balance"/>
</balance>
</account>
</xsl:for-each>
</accounts>
</xsl:template>
</xsl:stylesheet>
Veebiteenus
Analüüs
Mis saab olema?
Veebiteenusena on plaanis teha RTSP Proxy.
Mis on RTSP?
RTSP protokolli kasutatakse video ja heli voogedastuseks. Näiteks oskavad IP-kaamerad tihti edastada videopilti kasutades RTSP protokolli.
Peamised tugevused
RTSP Proxy eesmärk on toetada infovahetuse protsessi kasutaja ja seadme vahel. Toetamise all peetakse silmas:
- ressursside mõistlik kasutus — ühest kaamerast tulevat pilti saab jagada suurema hulga kasutajate vahel, säilitades ainult ühte ühendust kaameraga;
- parem ligipääsetavus timeout'i petmise näol — rakendused, millel pole võimalik seadistada timeout'i pikkust ühendamisel, võivad enne katkestada, kui ühendus on loodud; plaanitav rakendus lahendab selle olukorra;
- kasutajapõhine RTSP voogude salvestamine — võimaldab keeruliste URLide (nt. rtsp://myuser:mypwd@125.2.5.6.2:6593) salvestamist ja lihtsamate URLidega asendamist
- ülevaade kasutusest — rakendus logib infot voogedastussessioonide kohta ning võimaldab ressursi omanikul teha vastavaid korrektuure (seada piiranguid, suurendada internetikiirust, vms)
Lõpetuseks
RTSP Proxy puhul piisab ühekordsest seadistamisest ning edasi on süsteem kasutusvalmis ka väiksem tehnilise oskusega kasutajale, kellel on huvi videopilti näha, mitte õppida RTSP protokolli iseärasusi ja nende toimimist võrgus.
Klientrakendused
Retsensioonid
Ülesande "XML fail" retsensioon meeskonnale Repi meeskonnalt Muru
Ülesande "XML fail" retsensioon meeskonnale RK meeskonnalt Muru