Muru

From ICO wiki
Jump to navigationJump to search

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