Jiří Kučera

Podobné dokumenty
Bakalářská práce. Rozšíření frameworku pro ověřování kompatibility softwarových komponent

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Automatizace správy linuxové infrastruktury pomocí Katello a Puppet LinuxDays

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. kompatibility komponent v OSGi

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

UJO Framework. revoluční architektura beans. verze

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

ProjectWise V8 XM Edition

Nástroje pro průběžnou integraci a testování

Spring framework 2.0. Roman Pichlík CZJUG

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Systémy pro tvorbu digitálních knihoven

Archivace dat s využitím DÚ CESNET

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Transformace dat: používání syntaxe v SPSS

Důvěryhodný archív v kontextu řešení PilsCom, s.r.o. Vladislav Krásný

Centrální portál knihoven

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Dokument rozchození vývojového prostředí

Java a XML. 10/26/09 1/7 Java a XML

Demoprojekt Damocles 2404

CPAN, tvorba a šíření softwaru v jazyce Perl. Petr Pajas Hejnice 2010

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

MBI - technologická realizace modelu

Robot Operating System. Ing. Zdeněk Materna,

The Lightweight Directory Access Protocol version 3 (LDAPv3) is specified by this set of eleven RFCs:

Testovací metoda. Testovací metoda. public class SimpleTest {

Instalace produktu Ontopia. ver (open-source verze)

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

The installation documentation will help guide you through the process of installing these prerequisites and setting up VuFind.

Obecná reprezentace mimofunkčních charakteristik na komponentách

DEFINICE PRODUKTU, MODULŮ A KOMPONENT TS-ELDAx Smart Trust Electronic Archive

Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Monitorování a diagnostika aplikací v produkčním prostředí Michael Juřek

Architektura aplikace

Testovací protokol čipová karta ACOS5

Knot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

ucetni-program-pohoda.cz Uživatelský návod a nastavení Instalace str. 2 Uživatelské práva str. 3

(Enterprise) JavaBeans. Lekce 7

Vladimír

KIV/PIA 2013 Jan Tichava

KMI / TMA Tvorba mobilních aplikací

Úvod do Web Services

Testovací protokol USB Token Cryptomate

Zabezpečení proti SQL injection

v. 2425a Jak si na PC vypěstovat HTTP (WWW, Web) server a jak ho používat (snadno a rychle) by: Ing. Jan Steringa

Novinky v oblasti SAP Mobility. Martin Zikmund, Presale Mobility Platforms Miroslav Řehoř, Account Executive

KMI / TMA Tvorba mobilních aplikací. 2. seminář ZS 2016/2017 Středa 13:15-15:45

Vybraná zajímavá Lotus Notes řešení použitelná i ve vašich aplikacích. David Marko TCL DigiTrade

Správa verzí souborů na cvičení

Tvorba zásuvných modulů pro Adobe Photoshop. Jiří Skála, 2006

Databázový systém Matylda

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Využití JBoss Fuse ve skandinávské energetice

BPC On Hana embedded. Mibcon. Karel Vydra

Návod k instalaci S O L U T I O N S

Oracle XML DB. Tomáš Nykodým

Použití inteligentních značek s informačními službami

D R U P A L V O J T Ě C H K U S W O J T H A

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

Přehled a definice seznamů

TÉMATICKÝ OKRUH Softwarové inženýrství

Apache Cordova (PhoneGap 3)

SW ATTIS Synchronizace s LDAP serverem

Uživatelský manuál služby edrivesoft společnosti Audit Alliance spol. s r.o. - Vložení nového dokumentu

PDF Creator. Instalace tiskárny pro převod dokumentů do PDF

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Životní cyklus IT systémů

TIA Portal V15.1 SW novinky. siemens.com/tia-portal

Projekt JetConf REST API pro vzdálenou správu

Uživatelský modul. wm-bus Concentrator

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor

13. blok Práce s XML dokumenty v databázi Oracle

Testovací protokol. 1 Informace o testování. 2 Testovací prostředí. 3 Vlastnosti generátoru klíčů. Příloha č. 11. Testovaný generátor: Portecle 1.

Notes and Domino Social Edition 9. David Marko, TCL DigiTrade

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka

Nástroje pro vývoj a publikaci mobilní aplikace v Qt. Martin Straka

Instalace. Návod na instalaci a licencování ESI[tronic] Spuštění instalace z DVD ESI[tronic] 2.0 DVD 1 - soubor Setup.exe. 4.

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Testovací protokol čipová karta Oberthur Id-One Cosmo V5.4

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Archivace relačních databází

Technologie. Osnovy kurzu: Školení správců systému. 1. den, dopolední blok

Internet Information Services (IIS) 6.0

Co je (staro)nového v DSpace

EPLAN Electric P8 2.7 s databázemi na SQL serveru

Testovací protokol USB token etoken PRO 32K

Použití stahovací služby dle INSPIRE v praxi v progamu QGIS

Návrh softwarových systémů - architektura softwarových systémů

RESTful API TAMZ 1. Cvičení 11

Testovací protokol čipová karta etoken PRO SmartCard 32K

Projekt LISp-Miner. M. Šimůnek

Transkript:

Jiří Kučera kalwi@students.zcu.cz

Vývojář komponent Uložit komponentu Spustit testy nad komponentou Rozšíření úložiště (pluginy) Běh testů nad komponentou Generování metadat Uživatel komponent, cílové zařízení Získat seznam dostupných komponent Zjistit nejnovější verzi komponenty Získat popisná metadata komponenty Porovnat kompatibilitu Stáhnout komponentu

RFC-0112 Bundle Repository (draft) Snaha vytvořit centrální repository OBR vs. Maven repository Definuje XML formát pro popis repository a jeho obsahu Službu pro přístup k repository Umožňuje nebo usnadňuje Popis vlastností bundlů Vyhledávání dostupných bundlů Popis a řešení závislostí mezi bundly Deployment bundlů do kontejneru

Převzato z http://felix.apache.org

Artefakty uloženy v adresářové struktuře Obsah repository popisuje XML soubor repository.xml Uložen v kořenovém adresáři Repository lze seskupovat do stromové struktury <repository name='vzorové repository' time='20110131133541.062'> <resource /> <resource /> <referral depth='1' url='http://vnořené.repository/repository.xml' /> </repository> Viz také OSGi BIndex

Popisuje artefakt, jeho vlastnosti a závislosti ID artefaktu symbolicname + version URI cesta k artefaktu Absolutní teoreticky i mimo strukturu repository Relativní vůči adresáři s repository.xml Další proměnné (properties) presentationname, description, size, license... Uživatelsky definovatelné Kategorie Usnadňují vyhledávání artefaktů

<resource id='bundle1/1.0.0' symbolicname='bundle1' version='1.0.0' uri='cz/zcu/kiv/bundle1.jar' presentationname='bundle č. 1'> <description>ukázkový bundle č. 1</description> <size>6477</size> <category id='osgi' /> <category id='spring-dm' /> <capability /> <capability /> <require /> </resource>

Cokoliv, co lze popsat množinou proměnných package, service, execution environment apod. Má název Není to ale ID Na capability se mapují requirements se stejným názvem Proměnné (properties) Název Hodnota Typ string (výchozí), version, uri, long, double, set

<capability name='package'> <p n='package' v='cz.zcu.kiv.jacc' /> <p n='version' t='version' v='1.0.0' /> <p n='uses:' v='org.osgi.framework' /> </capability> <capability name='example'> <p n='some-string' v='this is a string' /> <p n='some-version' t='version' v='1.2.3' /> <p n='some-uri' t='uri' v='this:/is.an.uri/' /> <p n='some-set' t='set' v='values,separated,by,commas' /> <p n='some-long' t='long' v='12345' /> <p n='some-double' t='double' v='123.45' /> </capability>

Požadavek na capability se shodným názvem Vyjádřen jako OSGi (LDAP) filtr RFC 1960 Např. (&(package=cz.zcu.kiv.jacc)(version>=1.0.0)) Proměnné capability musí odpovídat filtru Další možnosti požadavku optional požadavek je pouze volitelný multiple může být použito více řešení požadavku extend obrací model, volí artefakty, pro které může být naopak užitečný, např. jako plugin Popis vysvětlující důvod požadavku

<require name='package' optional='false' multiple='false' extend='false' filter='(&(package=cz.zcu.kiv.jacc)(version>=1.0.0))'> Import package cz.zcu.kiv.kacc; version is equal or greater than 1.0.0 </require> Pozn.: Znaky &, >, <, ' a " je třeba nahradit XML entitami. <require name='example' optional='true' multiple='true' extend='true' filter='(!(some-long=12345))'> Optional extension for all example capabilities whose some-long value is not equal to 12345 </require>

<repository name='příklad' lastmodified='20110131135021.012'> <resource id='bundle1/1.0.0' symbolicname='bundle1' version='1.0.0' uri='bundle1.jar'> <capability name='vlastnost'> <p n='promenna' t='double' v='123.45'> <p n='verze' t='version' v='1.2.3'> </capability> </resource> <resource id='bundle2/1.2.0' symbolicname='bundle2' version='1.2.0' uri='bundle2.jar'> <require filter='(&(promenna>=100.00)(verze=1.2.3))' name='vlastnost' extend='false' optional='false' multiple='false'> </require> </resource> </repository>

Analyzuje závislosti předem určených artefaktů Zjistí requirements, které vůbec žádný artefakt nesplňuje Zjistí requirements, kvůli kterým je vyžadován nějaký artefakt z repository Zjistí artefakt, který má nesplnitelné requirements Zjistí artefakty, které se nacházejí v repository a jsou potřeba k vyřešení závislostí Výsledkem je určení, zda jsou požadavky artefaktů splněny Provede deploy zvolených artefaktů do kontejneru Pokud jsou vyřešeny všechny závislosti

RepositoryAdmin repoadmin =... // Get repo admin service String filter="(&(symbolicname=bundle1)(version>2.0.0))"; Resource resource = repoadmin.discoverresources(filter); Resolver resolver = repoadmin.resolver(); resolver.add(resource); if (resolver.resolve()) { resolver.deploy(true); } else { Requirement[] reqs = resolver.getunsatisfiedrequirements(); for (Requirement req : reqs) { System.out.println("Unable to resolve: " + req); } }

Integrace nástrojů pro kontrolu kompatibility Verzování bundlů Mimofunkční charakteristiky Simulace běhu Možná integrace s Apache ACE Framework pro centrální správu komponent, konfigurace a jiných artefaktů Distribuce artefaktů na cílová zařízení Definuje množinu artefaktů (distribuce), cílová zařízení sama kontrolují nové verze ke stažení

Modulární architektura OSGi Apache Felix Dependency Manager Využívá OBR Reprezentace vložených artefaktů jako OBR Resource Neomezuje použití OBR pouze na OSGi bundly Do OBR ukládá i výsledky běhu testů Rozšiřitelné prostřednictvím pluginů Modifikovaný Chain of Responsibility Výběr pluginů dle priority a informací v OBR

Volání se váže na události lifecycle Paralelní běh pluginů Výhradní běh pluginů modifikujících artefakt Vzájemné závislosti pluginů pořadí volání Nejsou přímo vyjádřené Spuštění možné po splnění určitých requirements Volaný plugin modifikuje OBR metadata, umožní tím spuštění jiného pluginu V případně nerozhodnosti rozhodne priorita

Statická metadata neměnitelná Manifest, Declarative Services, Spring DM Rychlé zjištění statických metadat artefaktu Požadavek na rychlou odezvu UI Pro urychlení možnost hierarchizace indexerů Využití kategorií v OBR Resource Indexer definuje kategorie, které umí nastavit a kategorie podmiňující pro daný indexer Stromová struktura (nebo podobná) Další možné indexery CoSi komponenty, konfigurační soubory, apod.

Vhodnost OBR formátu Požadavky na lifecycle na vnitřní API na vnější API na rozhraní Možná rozšíření (semestrální práce) Indexace OSGi Declarative Services a Spring DM Indexace CoSi komponent Ukládání OBR metadat do DB Webové rozhraní

OSGi RFC-0112 Bundle Repository http://www2.osgi.org/download/rfc-0112_bundlerepository.pdf Apache Felix OSGi Bundle Repository (OBR) http://felix.apache.org/site/apache-felix-osgi-bundle-repository.html OSGi BIndex http://www.osgi.org/repository/bindex RFC 1960 LDAP Search Filters http://www.ietf.org/rfc/rfc1960.txt Apache ACE http://incubator.apache.org/ace/ SVN https://kalwi.eu/svn/crce